Voeg private IPv6 by 'n OpenVPN-lab, een kontrolepunt op 'n slag
Hou die buitenste vervoer op IPv4 en brei die binneplan uit. Vyf kontrolepunte: prefikse, helper, roete-stoot, deurstuur en 'n kliënttoets.
Jy het reeds 'n kliënt wat oor IPv4 verbind en 'n private IPv4-werklading agter die bediener bereik. Doel: bereik 'n private IPv6-werklading deur dieselfde tonnel sonder om die buitenste vervoer te raak. Die buitenste pad bly IPv4; net die binne-adresplan, die kliëntroete en die LAN-terugpad verander. Vyf kontrolepunte, elk met iets konkreets om na te kyk.
Kontrolepunt een: die verbinding wat reeds werk
Verbind die kliënt en bevestig die IPv4-pad voordat jy iets byvoeg. 'n Werkende tonnel gee jou 'n basislyn wat 'n nuwe IPv6-fout van 'n ou verbindingsprobleem skei. Dit wys ook watter bedienerinstansie jy werklik wysig.
Let op die poel, die topologie en die gestuurde roetes waarop jy reeds staatmaak. Die IPv6-werk brei daardie konfigurasie uit; dit vervang dit nie.
Kontrolepunt twee: kies die binne-prefikse
Kies 'n ULA /48 vir die perseel en sny twee /64's daaruit: een vir tonnelkliënte, een vir die LAN-segment met die IPv6-werklading. Genereer die 40-bis globale ID eerder as om 'n voorbeeldprefiks te kopieer, en kontroleer albei subnette teen elke netwerk wat die perseel reeds routeer:
Outer transport: IPv4 OpenVPN UDP
IPv4 pool: 10.90.0.0/24
IPv6 VPN pool: fd73:93bc:b6e9:77::/64
IPv6 LAN: fd73:93bc:b6e9:60::/64
Server LAN IPv6: fd73:93bc:b6e9:60::1Twee onafhanklike /64's keer dat die kliëntpoel uit die LAN-segment gesny word, wat later saak maak wanneer jy die terugroete skryf. Die waardes hierbo is een uitgewerkte voorbeeld, nie 'n prefiks om te hergebruik nie.
Kontrolepunt drie: voeg die helper en die roete-stoot by
Lees die huidige bedienerkonfigurasie voordat jy iets byvoeg. 'n Tweede kopie van 'n bestaande richtlijn smelt nie met die eerste saam nie, en die fout noem die richtlijn eerder as IPv6. Met die bestaande IPv4-helper in plek, brei twee reels dit uit. Elkeen antwoord 'n ander vraag:
server-ipv6 fd73:93bc:b6e9:77::/64
push "route-ipv6 fd73:93bc:b6e9:60::/64"Die eerste is 'n geriefshelper wat die koppelvlak en die kliëntpoel instel. Die tweede noem die LAN-bestemming wat die kliënt moet bereik. Om 'n kliënt 'n IPv6-adres te gee, sê nie vir hom watter netwerke agter die bediener bestaan nie, dus is albei reels nodig.
Die helper bestaan nie saam met 'n statiese IPv6-poel of met nopool. As die ontplooiing adresse doelbewus staties toeken, hou daardie beleid en ontwerp die IPv6-ekwivalent eksplisiet eerder as om die beleid te skrap om by 'n voorbeeld te pas.
Kontrolepunt vier: deurstuur en die antwoordroete
Skakel IPv6-deurstuur op die bediener aan deur die stelsel se eie konfigurasie-eienaar, nie met 'n eenmalige runtime-skryf wat jy sal vergeet nie. Die runtime-vorm is nuttig vir 'n vinnige toets. Blyn konfigurasie hoort in 'n drop-in-lêer wat die verspreiding se netwerk-eienaar lees:
sysctl -w net.ipv6.conf.all.forwarding=1Deurstuur verander die gasheer se IPv6-gedrag verder as om pakkette te routeer. 'n Gasheer wat Router Advertisements as kliënt aanvaar het, stop op dieselfde manier sodra hy deurstuur. 'n Masjien wie se IPv6-oplink van RAs afhang, het dus 'n eksplisiete plan vir daardie oplik nodig.
Gee die LAN dan 'n roete terug na die tonnelpoel. Die werklading se IPv6-gateway is die LAN-router, nie die VPN-bediener nie, so die roete hoort op daardie router en wys na die bediener se LAN-adres:
ip -6 route add fd73:93bc:b6e9:77::/64 via fd73:93bc:b6e9:60::1Behou die ICMPv6-tipes wat die skakel nodig het, insluitend pad-MTU-terugvoer. 'n IPv4-firewallreel impliseer nie 'n IPv6 een nie, en 'n volledige IPv6-blokkeer breek buurontdekking op maniere wat soos 'n roeteerfout lyk.
Kontrolepunt vyf: lees die kliënt, dan toets
Verbind die kliënt weer en lees die adresse wat hy werklik ontvang het, eerder as om hulle uit die bediener se helperadres af te lei. Die koppelvlaklys wys albei families op dieselfde toestel:
ip -6 addr show tun0
ip -6 route get fd73:93bc:b6e9:60::20'n Roete wat die tonnel kies, bewys die kliënt weet waarheen om die pakket te stuur. Dit bewys nie dat die bediener dit deurstuur, dat die LAN-router die terugroete het, of dat die toepassing mag antwoord nie.
Toets die toepassing self oor elke familie op sy beurt, en herhaal dit na 'n herverbinding en na 'n gasheer-herbegin. 'n Roete of sysctl wat net tot herbegin oorleef, is 'n toets, nie 'n ontwerp nie.
Publiseer eers 'n AAAA-rekord sodra die IPv6-pad end-tot-end antwoord. DNS oor IPv4 kan steeds 'n IPv6-adres teruggee, so 'n oplosbare naam is nie bewys dat iets luister nie. Die RFC 4193 ULA-leiding dek die generering van die globale ID wat hierdie prefikse joune maak eerder as 'n kopie.