Probleme de rutare IPv6 client/server în cazul în care serverul are atât adresă nativă, cât și adresă tunelizată (Administrarea sistemului, Rețea, Rutare, Ipv6, Tunelizare)

Portablejim a intrebat.
a intrebat.

Am încercat să fac să funcționeze IPv6 pe rețeaua mea OpenVPN de robinet. Serverul are deja IPv6, însă are doar un /64 și cea mai mare gamă disponibilă este un /116 (care rupe autoconf). Primesc un 6-in-4 /48 de la he.net pentru a furniza adrese către VPN-ul meu.

Puncte finale ale tunelului IPv6

Server IPv6 Address:2001:470:xxxx:xxxx::1/64
Client IPv6 Address:2001:470:xxxx:xxxx::2/64

Prefixe IPv6 rutate

Routed 2001:470:yyyy::/48:

Structura mea de rețea (internet => server => client) este:

Internet
 ||
OpenVPN server
eth0 (Native ipv6): 2600:3c01::xxxx:xxxx:xxxx:xxxx/64
he-ipv6 (6-in-4): 2001:470:xxxx:xxxx::2/64
tap0 (VPN): 2001:470:yyyy:zzzz::1/64
 ||
OpenVPN client
wlan0 (ipv4)
tap0 (VPN - autconf): 2001:470:yyyy:zzzz:wwww:wwww:wwww:wwww/64

Config de server:

server # ip -6 route
2001:470:xxxx:xxxx::/64 via :: dev he-ipv6  proto kernel  metric 256 
2001:470:yyyy:zzzz::/64 dev tap0  proto kernel  metric 256 
2600:3c01::xxxx:xxxx:xxxx:xxxx dev eth0  proto kernel  metric 256 
fe80::/64 dev eth0  proto kernel  metric 256 
fe80::/64 dev tap0  proto kernel  metric 256 
fe80::/64 via :: dev he-ipv6  proto kernel  metric 256 
default dev he-ipv6  metric 1024 
default via fe80::xxxx:xxxx:xxxx:xxxx dev tap0  proto kernel  metric 1024  expires 4748sec

Config of client:

client # ip -6 route                                           
2001:470:xxxx:xxxx::/64 via 2001:470:yyyy:zzzz::1 dev tap0  metric 1 
2001:470:yyyy:zzzz::/64 dev tap0  proto kernel  metric 256  expires 86388sec
fe80::/64 dev wlan0  proto kernel  metric 256 
fe80::/64 dev tap0  proto kernel  metric 256 
default via fe80::xxxx:xxxx:xxxx:xxxx dev tap0  proto kernel  metric 1024  expires 5383sec hoplimit 64

Rezultatele ping

Internet => 2600:3c01::xxxx:xxxx:xxxx:xxxx           Works
Internet => 2001:470:yyyy:zzzz::1                    Works
Internet => 2001:470:yyyy:zzzz:wwww:wwww:wwww:wwww   Timed Out

Server => 2600:3c01::xxxx:xxxx:xxxx:xxxx             Works
Server => 2001:470:yyyy:zzzz::1                      Works
Server => 2001:470:yyyy:zzzz:wwww:wwww:wwww:wwww     Works
Server => 2404:6800:4006:802::1011 (ipv6.google.com) Works

Client => 2600:3c01::xxxx:xxxx:xxxx:xxxx             Works
Client => 2001:470:yyyy:zzzz::1                      Works
Client => 2001:470:yyyy:zzzz:wwww:wwww:wwww:wwww     Works
Client => 2404:6800:4006:802::1011 (ipv6.google.com) Destination unreachable: Address unreachable

Care ar trebui să fie rutele pentru ca clientul să poată fi corect online cu ipv6?

Știu că ar trebui să existe o rută implicită pe client pentru dev tap0, însă niciuna dintre gateway-urile pe care le-am încercat nu a funcționat. Am încercat să rezolv acest lucru (atât prin cercetare, cât și prin experimentare), însă nu am găsit o soluție care să funcționeze (deși acest pare să se apropie).

2 răspunsuri
Mike Haboustak

Sunteți sigur că problema este pe client și nu pe server? Rutele clientului par în regulă. O rută de urmărire către ipv6.google.com ajunge la 2001:470:yyyy:zzzz::1? Dacă da, atunci traficul IPv6 folosește VPN-ul ca gateway implicit și rutele clientului sunt în regulă.

Cred că problema poate fi redirecționarea pachetelor între tap0 și he-ipv6 de pe server. Nu sunt foarte familiarizat cu OpenVPN, dar, în mod normal, acest tip de lucru este controlat de politici în plus față de tabelul de rutare.

Cred că OpenVPN folosește iptables și, astfel, permiterea redirecționării în ambele direcții între cele două interfețe ipv6 ar necesita ceva de genul acesta.

iptables -I FORWARD -i tap0 -o he-ipv6 -j ACCEPT
iptables -I FORWARD -i he-ipv6 -o tap0 -j ACCEPT

Portablejim

Am sfârșit prin a schimba configurația și astfel întrebarea nu se mai aplică.

Cu toate acestea, mă gândeam că trebuie să vă asigurați că kernelul a fost configurat pentru a redirecționa pachetele IPv6 pentru toate dispozitivele.