IPv6 duerch en OpenVPN-Tunnel: en Tour duerch den Heemrouter
IPv6 stierft oder leeft aus, wann den Tunnel e Präfix vergëtt, deen den Router net kann routeieren. Gitt de Client, de Pool, d'Weiderleedung, de Proxy NDP an den Zeréckwee der Rei no duerch.
Den Laptop huet eng IPv6-Adress, den Tunnel ass iwwer IPv4 op, an trotzdeem feelt all IPv6-Test. Oder nach méi schlëmm: den Test geléngt an den Traffic ass iwwer de Wee vum Provider erausgaang, ouni je an den Tunnel ze kommen. Béid Resultater ginn op eng eenzeg feelend Entscheedung zeréck: kee gouf dem Router e Präfix, deen en zu de Cliente kéint routeieren. Wann een de Wee vum Client no bausse geet, fënnt een, wéi en Deel feelt.
Fänkt do un, wou de Client sëtzt
Kuckt de Client un, ier Dir de Server beréiert. ip -6 addr soll eng Tunneladress aus dem Pool weisen, an ip -6 route soll de gedréckte Präfix weisen, deen op d'Tunnelapparat weist. Wann d'Adress do ass, awer de Wee net, feelt den Push oder de Client huet en ignoréiert. Wann béid net do sinn, huet de Server iwwerhaapt näischt zougewisen.
Da kontrolléiert, wat de Client iwwer d'Aussenwelt mengt. Eng Standardroute iwwer den Tunnel verlaangt de ganzen IPv6-Traffic, wärend eng Route fir 2000::/3 nëmmen globale Unicast verlaangt. Béid kënne richteg sinn, a si beäntweren ënnerschiddlech Froen iwwer d'Ausleeën.
E Client ouni iergendeng IPv6-Standardroute feelt an all ëffentlechem Test, obwuel den Tunnel selwer komplett gesond ass. Dat ass eng Lück an der Politik, keen defekten Tunnel.
Kontrolléiert de Pool, deen de Server wierklech routeiere kann
E Server kann nëmmen aus engem Präfix zouweisen, deen en wierklech kontrolléiert. Wann den ISP e /56 delegéiert, reservéiert een /64 fir den Tunnel an loosst de Rescht fir d'LAN. Wou den ISP op der WAN nëmmen een eenzegt /64 iwwergëtt an näischt weider routeiert, loosst de LAN-Präfix a Rou a gitt dem Tunnel en eenzegaartegen lokale Beräich, andeems Dir akzeptéiert, datt d'Clienten keen globale Sortie hunn.
De Pool an den Push gehéieren zesummen. server-ipv6 2001:db8:80:10::/64 weist Adressen zou, an push "route-ipv6 2000::/3" seet de Clienten, wat se an den Tunnel schécke sollen. 2000::/3 drécken deckt de globale Unicast of an hält link-local- a multicast-Beräicher aus dem Tunnel eraus.
Schreift de gewielte Präfix an den Deploymentsrekord. Wien d'nächst Kéier d'ISP-Iwwerleeferung ännert, muss wëssen, wéi en /64 den Tunnel schonn besetzt.
Schalt d'Weiderleedung fir déi zweet Famill an
IPv4-Weiderleedung heescht net IPv6-Weiderleedung. Setzt net.ipv6.conf.all.forwarding=1 a spigelt alles, wat d'IPv4-FORWARD-Politik schonn erlaabt. Op engem Router, deem seng FORWARD-Kette standardméisseg verwerft, gesäit e feelenden Reegelset genee wéi en douden Tunnel aus.
Den Handshake geléngt, de Client kritt eng Adress, an et kënnt näischt zeréck. Füügt Reegele fir béid Richtungen an fir de WAN-Abschnitt derbäi, well en Tunnel, deen d'LAN erreecht, awer net d'Internet, am drëtten Test feelt. Kuckt no engem feelgeschloenen Versuch d'Zieler vun der Kette un, well eng Reegel, déi ni entsprach huet, ass en anere Problem wéi eng, déi entsprach huet an verwerft.
ip6tables -A FORWARD -i br0 -o tun0 -j ACCEPT
ip6tables -A FORWARD -i tun0 -o br0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -i tun0 -o wan0 -j ACCEPT
Eng Niewewierkung fänkt déi Leit, déi um Enn den Tunnel beschëllegt. Weiderleedung aschalten heescht, de Kernel iwwerspréngt d'Adresskonfiguratioun iwwer Router Advertisement, wann een him net anescht seet, an eng Standardroute, déi sou geléiert gëtt, verschwënnt mat hir. Entweder pinn Dir eng explizit Standardroute op der WAN-Schnittstell, oder Dir setzt accept_ra do bewosst op 2. No all Ännerung bestätegt, datt den Router nach ëmmer en notzbare IPv6-Wee no baussen huet, ier Dir d'Clienten nach eng Kéier test.
Äntwert op Nopesch-Entdeckung, wann uewen net routeiert gëtt
Ausrüstung uewen behandelt de delegéierte /64 heiansdo, wéi wann en zu sengem eegene Link gehéiert, a verweigert all Ënnerpräfix op d'VPN-Këscht ze routeieren. Wann dat geschitt, muss eppes op d'Nopeschefuerderunge fir all Clientadress eenzel äntweren.
OpenVPN weist déi zougewisen Adress un en client-connect-Hook, sou datt d'Entréeë kënne richtegem Pool follegen amplaz enger Lëscht, déi vun Hand gefouert gëtt. Den Hook füügt ip -6 neigh add proxy $ifconfig_pool_remote_ip6 dev eth0 derbäi, an en entspriechenden client-disconnect-Hook hëlt en erem eraus. Ouni dat Ewechhuelen gëtt d'Proxy-Tabelle veraltert an e spéideren Client kann en Entrée ierwen fir eng Adress, déi en ni krut. Bestätegt den Zoustand mat ip -6 neigh show proxy.
Betruecht de Proxy als Noutléisung. Eng statesch Route fir den Tunnel-/64, déi op de Router weist, iwwerlieft Clientwiesselen an brauch iwwerhaapt keen privilegiéierten Shell-Hook.
Verfollegt de Wee no baussen, Hop fir Hop
Test no baussen an dräi Schrëtt: fir d'éischt d'Tunneladress vum Router, dann en LAN-Host an drëttens en ëffentlecht Zil iwwer traceroute6. De Pool gëtt vun der éischter bewise, d'Weiderleedung an d'LAN-Firewall vun der zweeter, an den Zeréckwee iwwer uewen vun der drëtter. All Feeler enkelt d'Sich op een eenzegt Apparat an, amplaz de ganzen Design nach eng Kéier opzemaachen.
Passt op d'MTU vum Tunnel, well d'IPv6-Router um Wee net fir Iech fragmentéieren. Eng ze grouss MTU weist sech als packet-too-big-Feeler a stockende TLS anstatt als propperen Ausfall. Setzt se explizit a testt mat enger Belaaschtung no beim Limite.