Dodajte privatni IPv6 u OpenVPN laboratoriju, jednu kontrolnu tačku po jednu
Zadržite vanjski transport na IPv4 i proširite unutrašnji plan. Pet kontrolnih tačaka: prefiksi, pomoćnik, potisak rute, prosljeđivanje i test sa strane klijenta.
Već imate klijenta koji se povezuje preko IPv4 i dolazi do privatnog IPv4 radnog opterećenja iza servera. Cilj je doći do privatnog IPv6 radnog opterećenja kroz isti tunel bez diranja vanjskog transporta. Taj red je važan: vanjski put ostaje IPv4, a mijenjaju se samo unutrašnji plan adresa, ruta klijenta i povratni put od servera do LAN-a. Pet kontrolnih tačaka, svaka sa nečim konkretnim za provjeru prije nastavka.
Kontrolna tačka prva: veza koja već radi
Povežite klijenta i potvrdite IPv4 put prije nego što bilo šta dodate. Tunel koji radi daje vam osnovnu liniju koja odvaja novu IPv6 grešku od stare problema s povezivanjem. Takođe vam kaže koju instancu servera zaista uređujete.
Zabilježite bazen, topologiju i potisnute rute na koje se već oslanjate. IPv6 rad proširuje tu konfiguraciju; ne zamjenjuje je.
Kontrolna tačka druga: odaberite unutrašnje prefikse
Odaberite ULA /48 za lokaciju i izrežite dva /64 iz njega: jedan za klijente tunela, jedan za LAN segment sa IPv6 radnim opterećenjem. Generirajte 40-bitni globalni ID umjesto kopiranja primjera prefiksa, i provjerite obje podmreže prema svakoj mreži koju lokacija već rutira:
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::1Dva nezavisna /64 sprječavaju da se klijentski bazen izreže iz LAN segmenta, što je važno kasnije kada pišete povratnu rutu. Vrijednosti iznad su jedan razrađen primjer, ne prefiks za ponovnu upotrebu.
Kontrolna tačka treća: dodajte pomoćnik i potisak rute
Pročitajte trenutnu konfiguraciju servera prije nego što bilo šta dopišete. Drugi primjerak postojeće direktive ne spaja se s prvim, a nastala greška imenuje direktivu, a ne IPv6. Uz postojeći IPv4 pomoćnik, dvije linije ga proširuju. Svaka odgovara na drugo pitanje:
server-ipv6 fd73:93bc:b6e9:77::/64
push "route-ipv6 fd73:93bc:b6e9:60::/64"Prva je praktični pomoćnik koji postavlja interfejs i klijentski bazen. Druga imenuje LAN odredište do kojeg klijent treba doći. Davanje IPv6 adrese klijentu ne kaže mu koje mreže postoje iza servera, pa su potrebne obje linije.
Pomoćnik ne koegzistira sa statičnim IPv6 bazenom ni sa nopool. Ako implementacija namjerno dodjeljuje adrese statički, zadržite tu politiku i eksplicitno dizajnirajte IPv6 ekvivalent umjesto brisanja politike da bi se uklopila u primjer.
Kontrolna tačka četvrta: prosljeđivanje i ruta odgovora
Uključite IPv6 prosljeđivanje na serveru kroz vlastitog vlasnika konfiguracije sistema, a ne jednokratnim runtime zapisom koji ćete zaboraviti. Runtime oblik je koristan za brzi test. Trajna konfiguracija pripada u drop-in datoteku koju čita mrežni vlasnik distribucije:
sysctl -w net.ipv6.conf.all.forwarding=1Prosljeđivanje mijenja IPv6 ponašanje hosta mimo rutiranja paketa. Host koji je kao klijent prihvatao Router Advertisements prestaje to činiti na isti način kada počne prosljeđivati. Zato mašina čiji IPv6 uplink zavisi od RA treba jasan plan za taj uplink.
Zatim dajte LAN-u rutu natrag do bazena tunela. IPv6 gateway radnog opterećenja je LAN ruter, a ne VPN server, pa ruta pripada tom ruteru i pokazuje na LAN adresu servera:
ip -6 route add fd73:93bc:b6e9:77::/64 via fd73:93bc:b6e9:60::1Zadržite ICMPv6 tipove koje link treba, uključujući povratnu informaciju o MTU puta. IPv4 firewall pravilo ne podrazumijeva IPv6 pravilo, a potpuno blokiranje IPv6 kvari otkrivanje susjeda na način koji izgleda kao greška rutiranja.
Kontrolna tačka peta: pročitajte klijenta, pa testirajte
Ponovo povežite klijenta i pročitajte adrese koje je zaista dobio umjesto da ih izvodite iz pomoćne adrese servera. Popis interfejsa pokazuje obje familije na istom uređaju:
ip -6 addr show tun0
ip -6 route get fd73:93bc:b6e9:60::20Ruta koja odabere tunel dokazuje da klijent zna kuda poslati paket. Ne dokazuje da ga server prosljeđuje, da LAN ruter ima povratnu rutu ili da aplikacija smije odgovoriti.
Testirajte samu aplikaciju preko svake familije redom, pa ponovite nakon ponovnog povezivanja i nakon restarta hosta. Ruta ili sysctl koji preživi samo do restarta je test, a ne dizajn.
Objavite AAAA zapis tek kada IPv6 put odgovori od kraja do kraja. DNS upitan preko IPv4 još može vratiti IPv6 adresu, pa razrješivo ime nije dokaz da nešto sluša. RFC 4193 ULA smjernice pokrivaju generiranje globalnog ID-a koji čini ove prefikse vašim, a ne kopijom.