Sonntag, 20. August 2017

IPv6 Tunnel mit OpenVPN auf pfSense

IPv6 Roadwarrior Server-Tunnel

Vorwort

In diesem Beitrag zeige ich kurz auf wie man seinen bestehenden OpenVPN Tunnel mit der IPv6 Unterstützung aufrüstet.
IPv6 steht auch heute noch in den Mobilen Netzwerken der Schweizer Carrier nicht als Internet Transport zur Verfügung. Leider darf man sagen, würde es doch gerade in diesen genateten Netzwerken einen wesentlichen Benefit bringen.
Überhaupt ist IPv6 das Protokoll der Stunde. Hier geht noch was.
OpenVPN bietet seit der Version 2.3.0 offiziell die IPv6 Unterstützung an und natürlich ist bei pfSense das auch gleich dabei. Daher hier ein kleines how-to um seinen Tunnel zu ergänzen.







IPv6 auf dem Server aktivieren

Ich davon aus, dass man bereits einen bestehenden (und funktionierenden) OpenVPN Roadwarrior Zugang hat. Falls nicht, hier die Wegleitung für solch einen Tunnel.
Zudem muss man natürlich einen funktionierenden IPv6 Zugang auf der pfSense Maschine haben.
Mit pfSense 2.3 oder 2.4 ist eigentlich bereits alles schon vorhanden.

Und zwar muss man im OpenVPN Server unter Tunnel Settings ein IPv6 Tunnel Network zur Verfügung stellen.
Analog zu den IPv4 Regeln, darf sich dieses Netzwerk nicht mit einem bestehenden im System überschneiden. Mit IPv6 sollte das kein Problem sein. Im Beispiel verwende ich einfach eines der /64 Netze aus dem /48 Block welchen ich vom Provider habe. [1] [2]
Zu schreiben ist der Eintrag in der CIDR Netz-Notation also zB. 2a02:121f:abcd:1234::/64 
Das Netz muss aber kein 64er sein. Es darf in diesem Fall auch mal kleiner sein.


Weiter ist es möglich, den OpenVPN Clients einen IPv6 DNS Server mitzugeben.
In meinem Beispiel mache ich dies nicht, da der vorhandene IPv4 DNS Server auch IPv6 Einträge übermittelt.
Bei einem IPv6 only Tunnel oder bei einem IPv4 Server welcher diese Einträge nicht übermittelt, wäre dies aber nötig.
Der DNS Eintrag kann auch ein öffentlich erreichbarer Server sein, zB. die Google DNS:


Wer jetzt möchte, dass der IPv6 Internet Traffic (und damit der Zugang zur IPv6 Welt aus IPv4 only Netzen) über den Tunnel geroutet wird, muss noch eine Push Route hinzufügen.
Die Markierung des Redirect Gateways hat bis jetzt auf IPv6 noch keinen Einfluss.
Aber auch dies ist schnell erledigt indem man einfach " push "route-ipv6 2000::/3"; " als Custom Option einfügt. Damit werden alle aktuell öffentlich zugeteilten IPv6 Adressen erreichbar.




Somitt wäre dann auch der OpenVPN Server Teil erledigt. Nicht zu vergessen, ist jetzt noch die Firewall Regeln anzupassen. Und zwar ist unter Firewall > Rules >Tab OpenVPN im Minimum eine any to any IPv6 Regeln nötig. Natürlich kann man das dann auch wesentlich strikter handhaben.

OpenVPN IPv6 Client

Der offizielle VPN Client für Mac und Windows enthält bereits die nötige IPv6 Unterstützung. Einfach über den Client Export herunterladen und gut ist.
Bei Android Geräten kann ich OpenVPN für Android empfehlen. Auch bei diesem Client lassen sich die Einstellungen und Zertifikate über den Client Export ab pfsense integrieren.
Bei Android einfach noch eine Anmerkung: Falls der Tunnel aufgebaut wird, ein IPv6 Checker über den Browser aber keine Konnektivität anzeigt, kann es eben am Browser selber liegen. So habe ich die Erfahrung gemacht, dass der Chrome Browser erst ab Android 8.0 100% zufrieden mit der Konnektivität über den IPv6 Tunnel ist. Alternativen welche immer funktioniert haben, wäre zB der Firefox für Android.

Bei Fragen oder Anregungen steht wie immer die Disqus Kommentarfunktion zur Verfügung.