OpenVPN-Clients verfügen über keine Konnektivität über IPv6

649
Kevin Abraham

Ich versuche, einem OpenVPN-Server die Unterstützung für IPv6-Tunnel hinzuzufügen (dh Clients können über VPN auf das IPv6-Internet zugreifen).

Der Router, auf dem OpenVPN (Netgear WNDR4500v1 mit Tomato v1.28-140) ausgeführt wird, verfügt über IPv6 über Hurricane Electric (sowohl routed / 64 als auch routed / 48). 2001: xxxx: 7: 3b3 :: 2 ist die WAN-IPv6-Adresse. 2001: xxxx: 8: 3b3 :: 1/64 wird an die LAN-Schnittstelle (br0) geroutet - 2001: xxxx: e1ca :: / 48 wird an die OpenVPN-Schnittstelle geroutet (tun21)

IPv6 funktioniert vom LAN aus, test-ipv6.com gibt 10/10 zurück.

Ich kann von einem Client über IPv4 oder IPv6 eine Verbindung zum OpenVPN-Server herstellen, und der Client erhält eine v6-Adresse im Präfix 2001: xxxx: e1ca :: / 48. Der Client hat jedoch überhaupt keine IPv6-Konnektivität. Ich habe dies mit mehreren Clients (Tunnelblick / macOS, OpenVPN für Android, OpenVPN Connect / iOS) ausprobiert. test-ipv6.com sagt "Keine IPv6-Adresse gefunden". Dies wird auch in den Serverprotokollen angezeigt:

SM-N910V/2610:xxxx:7f97 MULTI: bad source address from client [2610:xxxx:7f97], packet dropped 

Ich habe mir das OpenVPN-IPv6-Wiki sowie den Leitfaden von Jacob D Evans unter anderem angesehen. Die Server / Client-Konfigurationen befinden sich unten.

Server-Konfiguration:

# Automatically generated configuration daemon server 192.168.2.0 255.255.255.0 proto udp port 1194 dev tun21 cipher AES-256-CBC comp-lzo adaptive keepalive 15 60 verb 3 push "route 192.168.1.0 255.255.255.0" push "dhcp-option DNS 192.168.1.1" push "redirect-gateway def1" tls-auth static.key 0 ca ca.crt dh dh.pem cert server.crt key server.key status-version 2 status status  # Custom Configuration proto udp6  topology subnet push "topology subnet"  server-ipv6 2001:xxxx:e1ca::/64 push "route-ipv6 2001:xxxx:8:3b3::/64" push "route-ipv6 2001:xxxx:e1ca::/48"  push "comp-lzo adaptive" verb 4  auth sha256 

Client-Konfiguration:

client dev tun  remote vpn.server.com 1194 udp6 float nobind  persist-key persist-tun  remote-cert-tls server cipher AES-256-CBC key-direction 1 auth sha256  explicit-exit-notify comp-lzo adaptive pull  <ca>...</ca> <cert>...</cert> <key>...</key> <tls-auth>...</tls-auth> 

ip -6 route vor dem Verbinden mit dem VPN:

2001:xxxx:7:3b3::2 via fe80::6c5:a4ff:feea:9cc1 dev enp0s3 proto static metric 100 pref medium 2610:xxxx::/64 dev enp0s3 proto ra metric 100 pref medium fe80::6c5:a4ff:feea:9cc1 dev enp0s3 proto static metric 100 pref medium fe80::/64 dev enp0s3 proto kernel metric 100 pref medium fe80::/64 dev enp0s3 proto kernel metric 256 pref medium default via fe80::6c5:a4ff:feea:9cc1 dev enp0s3 proto ra metric 100 pref medium 

ip -6 route nach dem Verbinden mit dem VPN:

2001:xxxx:7:3b3::2 via fe80::6c5:a4ff:feea:9cc1 dev enp0s3 proto static metric 100 pref medium 2001:xxxx:8:3b3::/64 via 2001:xxxx:e1ca::1 dev tun0 proto static metric 50 pref medium 2001:xxxx:e1ca::1 dev tun0 proto kernel metric 50 pref medium 2001:xxxx:e1ca::1 dev tun0 proto kernel metric 256 pref medium 2001:xxxx:e1ca::1000 dev tun0 proto kernel metric 50 pref medium 2001:xxxx:e1ca::/48 via 2001:xxxx:e1ca::1 dev tun0 proto static metric 50 pref medium 2610:xxxx::/64 dev enp0s3 proto ra metric 100 pref medium fe80::6c5:a4ff:feea:9cc1 dev enp0s3 proto static metric 100 pref medium fe80::/64 dev enp0s3 proto kernel metric 100 pref medium fe80::/64 dev enp0s3 proto kernel metric 256 pref medium default dev tun0 proto static metric 50 pref medium default via fe80::6c5:a4ff:feea:9cc1 dev enp0s3 proto ra metric 100 pref medium 

ip -6 route Nach dem Ausführen der von @grawity geposteten Befehle:

default from 2001:xxxx:e1ca::/64 dev tun0 metric 1024 pref medium default from 2610:xxxx::/64 via 2610:xxxx::1 dev enp0s3 metric 1024 pref medium 2001:xxxx:7:3b3::2 via fe80::6c5:a4ff:feea:9cc1 dev enp0s3 proto static metric 100 pref medium 2001:xxxx:8:3b3::/64 via 2001:xxxx:e1ca::1 dev tun0 proto static metric 50 pref medium 2001:xxxx:e1ca::1 dev tun0 proto kernel metric 50 pref medium 2001:xxxx:e1ca::1 dev tun0 proto kernel metric 256 pref medium 2001:xxxx:e1ca::1000 dev tun0 proto kernel metric 50 pref medium 2001:xxxx:e1ca::/48 via 2001:xxxx:e1ca::1 dev tun0 proto static metric 50 pref medium 2610:xxxx::/64 dev enp0s3 proto ra metric 100 pref medium fe80::6c5:a4ff:feea:9cc1 dev enp0s3 proto static metric 100 pref medium fe80::/64 dev enp0s3 proto kernel metric 100 pref medium fe80::/64 dev enp0s3 proto kernel metric 256 pref medium default dev tun0 proto static metric 50 pref medium default via fe80::6c5:a4ff:feea:9cc1 dev enp0s3 proto ra metric 100 pref medium 

Hat jemand eine Idee, was los ist?

OpenVPN-Protokolle: https://gist.github.com/abraha2d/f339ff163dd93e20ba3b499c69d6abe3

0
Der OV-Server kann also über IPv6 kommunizieren, der Client jedoch nicht? - Wurden dem Client-Computer IPv6-Adressen zugewiesen, und handelt es sich um einen Dual-Stack-Client (_ie_: IPv4 und IPv6)? Ist das Routing von IPv6-Paketen in der Routerkonfiguration deaktiviert, da dies verhindern kann, dass Netzwerkcomputer über IPv6-Pakete miteinander kommunizieren können? Y Treehugger Cymru vor 5 Jahren 0
@YTreehuggerCymru Der Client erhält vom OpenVPN-Server eine IPv6-Adresse (2001: xxxx: e1ca :: 1000). Der Client ist definitiv Dual-Stack, da IPv6 außerhalb des VPN einwandfrei funktioniert (laut test-ipv6.com). IPv6-Routing ist in der Routerkonfiguration aktiviert. Kevin Abraham vor 5 Jahren 0
Alles, was mir in den Sinn kommt, sind Fragen, die sich auf lokale Netzwerke beziehen: OpenVPN ist in Bezug auf diese ein absolut Ungewöhnliches, und ich musste zu einem 10.200.0-Subnetz wechseln, da meine Implementierung von OV mit 192.168-Subnetzen nicht gut funktionieren würde. Y Treehugger Cymru vor 5 Jahren 0
@YTreehuggerCymru Ich dachte, IPv6 würde solche Probleme nicht haben, da Adressen überall eindeutig sind. Mein Bauch sagt mir, dass die "MULTI: schlechte Quelladresse" der Schlüssel zum Lösen dieses Problems ist. Vielleicht übersehen ich einige Konfigurationsdetails? Kevin Abraham vor 5 Jahren 0
Verfügen Sie über einen einfachen Linux-Client, und können Sie ihn mit einigen zusätzlichen Routen testen, die nachträglich durch Hinzufügen der Verbindung nachgebaut wurden? (Verbinden und dann `ip route add :: / 0 von 2001: xxxx: e1ca :: / 64 dev tun0` * und *` ip route add :: / 0 von 2610: xxx / 64 über dev eth0`.) grawity vor 5 Jahren 0
Beim zweiten Befehl habe ich `2610: xxxx :: 1` durch` ersetzt`und` enp0s3` anstelle von `eth0`. Hat nichts geändert, IPv6 funktioniert immer noch nicht. Kevin Abraham vor 5 Jahren 0
@grawity Ich habe die Frage mit den Routen vor / nach dem Verbindungsaufbau zum VPN aktualisiert Kevin Abraham vor 5 Jahren 0
Ich gehe zurück über Ihre ursprüngliche Frage und fange an zu glauben, dass dies überhaupt nichts mit OV zu tun hat: test-ipv6.com sagt, dass keine IPv6-Adresse gefunden wurde. Sie sagt mir, dass Sie ein Netzwerkproblem haben könnten (wahrscheinlich im Router Konfiguration unter Berücksichtigung der Vielzahl von Clients, die Sie zum Testen verwendet haben). Können Sie Details zur IPv6-Konfiguration Ihres Routers angeben? Y Treehugger Cymru vor 5 Jahren 0
@YTreehuggerCymru Der Router, auf dem OpenVPN ausgeführt wird, hat Tomato Shibby v1.28-140 installiert. Ich habe die HE IPv6-Tunneldetails in die Seite "Basic IPv6" aufgenommen. Ich verwende die Seite VPN-Tunneling> OpenVPN-Server, um OpenVPN zu konfigurieren, wodurch die Konfigurationsdatei oben generiert wird. Ich musste 'ip6tables -I INPUT 1 -p udp --dport 1194 -j ACCEPT' zur Firewall-Registerkarte von Scripts hinzufügen, da das OpenVPN-GUI das nicht akzeptiert. Ich kann mir nicht wirklich etwas anderes vorstellen, das von einer Standardinstallation von Tomato nicht standardisiert ist. Welche weiteren Details werden benötigt? Kevin Abraham vor 5 Jahren 0
Ich verwende derzeit Draytek (proprietär, kein DD-WRT oder Brauch), aber was Sie getan haben, sieht gut aus. In meinem Fall und als letzter Ausweg würde ich auf "Hello World" und das Anbringen von Informationen zurückgreifen. dh: Alle Firewalls und ähnliches löschen und eine absolut grundlegende Verbindung (mit IPv6) herstellen und von dort aus gehen. Wenn das immer noch nicht klappt, haben Sie zumindest viele Möglichkeiten beseitigt Y Treehugger Cymru vor 5 Jahren 0
Dies sind meine absoluten Grundlagenausschnitte für IPv4 (nicht sicher über die IPv6-Konfiguration, also werde ich das nachschlagen und später testen), aber es sollte einfach sein, sie zu ändern: // dev tun remote 10.200.0.6 ifconfig 10.200.0.1 10.200 .0.2 secret static.key-Chiffre AES-256-CBC persist-tun persist-key // dev tun remote 10.200.0.5 ifconfig 10.200.0.2 10.200.0.1 Benutzer niemand Gruppe niemand secret statisch.key Chiffre AES-256-CBC persist-tun Persist-Schlüssel Y Treehugger Cymru vor 5 Jahren 0
@YTreehuggerCymru Glauben Sie, dass es einen Unterschied machen würde, wenn ich den OV-Server auf einen Computer innerhalb des LANs verlegte? Auf diese Weise kann ich die neueste Version und dergleichen verwenden und habe mehr Kontrolle über die Konfiguration. Die Maschine würde Linux ausführen. Ich denke, alles was ich tun müsste, ist 1194 / tcp port-forward und auch eine / 64 routen. Ich könnte deine Konfig wahrscheinlich genau neu erstellen und sehen, ob das funktioniert. Kevin Abraham vor 5 Jahren 0
Ich entschuldige mich dafür, dass ich nicht wieder in Kontakt gekommen bin (Kampagnenarbeit hält mich beschäftigter, als ich es mir gewünscht hätte). Ich denke, es ist definitiv etwas, das Sie versuchen sollten, Ihre Konfiguration vom Router auf eine Maschine zu verschieben, um eine Maschinenkonfiguration durchzuführen. Ich habe oft festgestellt, dass Router-Implementierungen eine ungerade Funktionalität haben, sich nicht wie erwartet verhalten oder bestimmte Parameter benötigen, um sich als solche zu verhalten erwartet, außerdem sind die Bibliotheken von der Firmware abhängig und können daher veraltet sein. Der Code, den ich Ihnen gegeben habe, sollte für IPv4 funktionieren. Möglicherweise ist ein neuerer Algorithmus verfügbar. Y Treehugger Cymru vor 5 Jahren 0
So erstellen Sie den statischen Schlüssel (Linux, Befehlszeile): openvpn --genkey --secret static.key ... und eine eigene Beobachtung in Bezug auf IP-Adressen: Die beiden _ifconfig_-IP-Adressen, die OV beim Verbindungsaufbau verwendet nicht auf meinem Router konfiguriert, und ich muss meinen Router absolut nicht neu konfigurieren, um sie verwenden zu können, da sie Teil des gleichen Subnetzes 255.255.255.0 sind wie die beiden anderen 10.200.0-Adressen (10.200.0.5 und 10.200.0.6), damit OpenVPN sie über den OpenVPN-Adapter und DHCP verwenden kann. Y Treehugger Cymru vor 5 Jahren 0
Der Schlüssel dazu ist, ein grundlegendes Setup in Gang zu setzen, das dann als IPv6 und nicht nur als IPv4 verwendet werden kann. Anschließend können Sie Ihre Anforderungen für das, was Sie möchten, hinzufügen und testen, um herauszufinden, wo etwas kaputt geht. An diesem Punkt werden Sie hoffentlich in der Lage sein, genau zu bestimmen, was wo was kaputtgemacht hat, und in der Lage sein, es zu beheben. Anschließend kann die Konfiguration wieder auf den Router verschoben werden. An diesem Punkt wissen Sie genau, ob Ihr Router im Gegensatz zur Maschine ein Problem verursacht. Y Treehugger Cymru vor 5 Jahren 0
@YTreehuggerCymru Ich werde das tun und hier aktualisieren, wie es geht. Kevin Abraham vor 5 Jahren 0
Gut, ich habe das auch nicht vergessen. Y Treehugger Cymru vor 5 Jahren 0

1 Antwort auf die Frage

0
Michael Hampton

In Ihrer Serverkonfiguration fehlt eine Push-Option.

Du hast:

push "redirect-gateway def1" 

Sie müssen auch die ipv6Option haben, dh:

push "redirect-gateway def1 ipv6" 
Ich habe es mit / ohne die Option "push" redirect-gateway def1 ipv6 "` versucht. Keine Änderung. Kevin Abraham vor 5 Jahren 0