fragen stichworte

Wie kann ich IPv6 mit OpenVPN richtig konfigurieren?

Beim Versuch, die OpenVPN-Konfiguration zu finden, die meinen Bedürfnissen entspricht, habe ich dieses -Skript erstellt, um mir bei der Installation auf einem CentOS-System zu helfen. Meine Server-Konfigurationsdatei sieht tatsächlich so aus:

port 1194
proto udp
dev tun
user nobody
group nobody
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 10.8.0.1"
push "dhcp-options DNS 2a04:52c0:101:xxx::1"
push "redirect-gateway def1 bypass-dhcp"
crl-verify crl.pem
ca ca.crt
cert server.crt
key server.key
tls-auth tls-auth.key 0
dh dh4096.pem
auth SHA256
cipher AES-256-CBC
tls-server
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384
status openvpn.log
verb 4

Es funktioniert eigentlich perfekt, aber als ich einen Server @ liteserver.nl gemietet habe und mir ein/64-Subnetz gab, versuchte ich, den OpenVPN-Server so zu konfigurieren, dass jeder Client eine IPv6-Adresse erhält, um mit einer dedizierten IP auf das Internet zuzugreifen . Also folgte ich den Anweisungen auf dieser Seite, um IPv6 für den internen Gebrauch einzurichten. Und diese Seite enthält Anweisungen für einen Server mit einer öffentlichen IPv6-Adresse, die 2001 lautet: db8: 0: abc :: 100/64 und ein geroutetes IPv6-Subnetz (was ich denke, ist wahrscheinlich das, was mir liteserver.nl gegeben hat), das 2001 lautet: db8: 0: 123 ::/64. Da der Unterschied zwischen den Beispieladressen nicht beachtet wurde, habe ich meinen Server mit einer öffentlichen IPv6 (2a04: 52c0: 101: xxx :: 100/64) konfiguriert und den OpenVPN-Clients das gesamte von ihnen angegebene Subnetz (2a04: 52c0: 101: xxx ::/64), so sieht meine server.conf tatsächlich aus:

port 1194
proto udp
dev tun
user nobody
group nobody
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 10.8.0.1"
push "dhcp-options DNS 2a04:52c0:101:xxx::1"
push "redirect-gateway def1 bypass-dhcp"
crl-verify crl.pem
ca ca.crt
cert server.crt
key server.key
tls-auth tls-auth.key 0
dh dh4096.pem
auth SHA256
cipher AES-256-CBC
tls-server
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384
status openvpn.log
verb 4
server-ipv6 2a04:52c0:101:xxx::/64
tun-ipv6
push tun-ipv6
ifconfig-ipv6 2a04:52c0:101:xxx::1 2a04:52c0:101:xxx::2
push "route-ipv6 2a04:52c0:101:xxx::/64"
push "route-ipv6 2000::/3"

Da die IPv4-Konnektivität funktioniert, ist IPv6 jedoch korrekt zugewiesen, aber ich kann nicht mit IPv6 auf das Internet zugreifen (laut test-ipv6.com). Ich frage mich, ob ich zwei/64-Subnetze (eines für das private OpenVPN-Netzwerk) benötige und einen für den VPN-Server selbst, also für ausgehende Verbindungen), um dies richtig zu konfigurieren oder wenn ich etwas verpasst habe ... sowieso würde ich gerne einen VPN-Server mit privater IPv4- und IPv6-Konnektivität und mit einem öffentlichen IPv4 und einem bekommen oder mehr IPv6-Adresse (n). Bitte sag mir, ob das möglich ist und wie das geht. Ich hoffe wirklich, dass mir jemand helfen kann.

Vielen Dank im Voraus.

antworten

Ich denke, Sie müssen NDP-Anfragen an Ihre öffentlichen IPv6-Adressen weiterleiten. Ich habe das nicht persönlich getestet, aber das ist die Theorie:

Ihr ISP sendet Datenverkehr für Ihr gesamtes IPv6-Netzwerk (2a04: 52c0: 101: xxx ::/64) an Ihren Server. Das heißt, wenn jemand im Internet versucht, sich mit einer IP-Adresse in diesem Netzwerk zu verbinden, wird der Datenverkehr an Ihren Server gesendet und erwartet, dass er damit umgehen kann.

Ihr Server hat eine Adresse in diesem Netzwerk (2a04: 52c0: 101: xxx :: 100). Wenn er Datenverkehr an eine andere Adresse empfängt, wird er ignoriert, da es sich nicht um eine Adresse handelt, mit der er sich identifizieren kann. Der Datenverkehr zu den Geräten, die eine von OpenVPN zugewiesene IP-Adresse von diesem Netzwerk erhalten, wird daher auf Ihrem Server beendet.

Damit Ihr Server erkennt, dass er diesen Datenverkehr abrufen und über OpenVPN "down" senden muss, haben Sie zwei Möglichkeiten: Verwenden Sie ein anderes IPv6-Netzwerk für Ihre OpenVPN-Clients (das herkömmliche Routing funktioniert also), oder stellen Sie den Datenverkehr an Ihren Server aktuelles Netzwerk. Die erste ist die beste Option, aber Ihr ISP kann Ihnen nicht mehr als eine/64 zuweisen. Letzteres ist NDP-Proxying, ähnlich wie ARP-Proxying in IPv4.

Durch NDP-Proxying erhält Ihr Server den Verkehr für nicht eigene Adressen und sendet ihn erneut an Clients mit derselben IP-Adresse, die über OpenVPN verbunden sind. Sie müssen dies für jede IP-Adresse in Ihrem Netzwerk tun, die zu einem OpenVPN-Client gehört.

Es gibt andere Antworten im StackExchange-Netzwerk, die dies ausführlich behandeln:

Bitte überprüfen Sie diese Antworten auf eine genauere Erklärung.