Hallo zusammen,
ich hoffe der Titel ist aussagekräftig. Ich bin über diese Anleitung hier ins Forum gekommen. Mit 6tunnel lassen sich leider keine Verbindungen mit Wireguard realisieren, weil 6tunnel nur TCP Pakte weiterleiten kann und Wireguard UDP Pakete verwendet. Das Problem in meinem Fall besteht darin, daß man aufgrund der Knappheit von IPv4 Adressen von vielen Providern eine CGNAT IPv4 Adresse zugewiesen bekommt. Auf der Fritzbox wird bei mir eine 100.85.xx.xx Adresse angezeigt. Diese Adressen werden im Internet nicht geroutet analog beispielsweise zu dem 192.168.xx.xx Adressbereich. Details hierzu findet man hier --> https://de.wikipedia.org/wiki/Carrier-grade_NAT
Wenn man die eigene IPv4 Adresse über eine Seite wie z.B. wieistmeineip.de abfragt, wird bei IPv4 eine andere Adresse als die obige angezeigt. Diese Adresse verwendet Dt GF für die Kunden zum Surfen im Internet und die Dienste die IPv4 only sind. Diese eine Adresse müssen sich jedoch mehrere Kunden teilen und daher weiß Deutsche Glasfaser bei IPv4 Anfragen aus dem Internet auch nicht welchem Kunden die jeweils ankommenden Pakete zugeordnet werden müssen. Daher ist man weder über die IPv4 Adresse die in der Fritzbox angezeigt wird noch über die Adresse die bei wieistmeineip.de angezeigt wird aus dem Internet erreichbar. Mein Handymobilnetz (O2) teilt mir unterwegs nur eine IPv4 Adresse zu. Damit konnte ich keine Wireguardverbindung mehr von meinem Handy/Laptop zur Fritzbox aufbauen. Diese benötige ich, weil in meinem Heimnetz nicht alle Geräte IPv6 fähig sind und mir so ein Wechsel des Mobilfunkanbieters auch nicht komplett weitergeholfen hätte.
Um das zu umgehen benötigt man zunächst eine feste und damit erreichbare IPv4 Adresse. Ich habe hierfür einen vServer bei der Firma Ionos gemietet. Das billigste Angebot ohne Extras ist ausreichend und kostet aktuell 1€/Monat zzgl 10€ für die einmalige Einrichtung. Ich will hier keine Werbung machen, jeder andere Anbieter mit dem gleichen Leistungsumfang sollte auch funktionieren.
Bei dem vServer musste ich in der Webverwaltung zunächst ICMP in der Firewall aktivieren, um Ping nutzen zu können. Das ist nur zum testen und kann am Ende wieder deaktiviert werden. Ausserdem musste ich die IPv6 Adresse ebenfalls erst in der Webverwaltung aktivieren. Als OS hab ich das neueste Ubuntu genommen. Den Benutzer "root" sollte man deaktivieren und statt dessen einen neuen Benutzer anlegen und sudo installieren. Anleitungen hierzu findet nach man nach kurzer Suche zuhauf im Internet. Auf dem vServer habe ich nach dem üblichen updaten noch die Pakete socat, net-tools und screen installiert. Letzteres ist optional, ich empfehle es jedoch zur Ersteinrichtung der Weiterleitung. Den vServer ggf rebooten. Per ssh kann man auf dem vServer prüfen ob er jeweils eine Ipv4 und IPv6 Adresse hat. -->
bei mir sieht das dann so aus (die Adresse ist von mir mit x überschrieben):
Man benötigt noch die IPv6 Adresse der Fritzbox und den Port für Wireguard. Der Wireguardport wird scheinbar auf jeder Fritzbox zufällig vergeben und ist vermutlich bei jedem anders. Man findet den Port etwas versteckt in den Fritzboxeinstellungen zu Wireguard. Ich habe eine 5590 Fiber, das ist bei anderen Modellen ggf woanders zu finden. Bei mir ist es unter Internet --> Freigaben --> VPN (Wireguard) dann am Ende der Seite auf "Wireguard-Einstellungen anzeigen". Auf der Infoseite steht unter "Internet-Adresse Ihrer Fritz!Box" hinter dem ":" der Port für Wireguard. Diesen muss man notieren. Die IPv6 Adresse findet man in der Fritzbox bei Internet --> Online-Monitor --> IPv6 Adresse. Relevant ist nur der Teil vor dem "/". Die Adresse sollte mit 2a beginnen. Wenn die Adresse mit fd, fe o.ä. beginnt muss man die Setting zu IPv6 in der Fritzbox überprüfen und ggf. ULA deaktivieren.
In der Webverwaltung von Ionos muss man nun diesen Port in der Firewall des vServers freigeben. Man muss hier unbedingt als Protokoll UDP auswählen.
Auf dem vServer startet man nun eine screen Session mit
und gibt folgendes ein:
Der Aufruf von socat gibt keine Rückmeldung die Weiterleitung ist aber aktiv. Man kann nun die screen Session akoppeln mit
und mit
später wieder aufnehmen.
Das Programm socat wandelt nun auf dem vServer jedes auf dem eingetragenen Port ankommende UDP IPv4 Paket in ein UDP IPv6 Paket um und leitet es an den gewünschten Port der IPv6 Adresse der Fritzbox weiter. Man kann das jetzt schon so laufen lassen und sollte nur aus Sicherheitsgründen alle Ports ausser dem UDP Port für die Weiterleitung wieder in der Firewall des vServers schließen.
Wer keine feste IPv6 Adresse von seinem Provider zugewiesen bekommt muss eine DynDNS Adresse benutzen. Hierbei ist wichtig zu beachten, dass der DynDNS Dienst auf der Fritzbox nur Updates zur IPv6 Adresse veröffentlicht. Sonst kann es passieren, das der DynDNS Updater der Fritzbox die CGNAT Adresse mitschickt und dann würde die Verbindung nicht mehr funktionieren. Ich vermute so ein Problem bei den myfritz Adressen. Mit so einer Adresse hat es bei mir jedenfalls nicht geklappt. Ich nehme für DynDNS den Dienst von All-inkl.de. Die Update URL sieht dann bei mir so aus -->
Man muss zuletzt in der Wireguardsoftware z.B. beim Handy bei Endpoint die IPv4 Adresse/DynDNS des vServers eintragen und ggf auch den Port anpassen. Die Verbindung mit Wireguard der Fritzbox sollte über IPv4 nun wieder klappen.
Das ist noch nicht ideal und man muss diese Lösung noch etwas finetunen, da z,B. bei manchen Leuten die IPv6 Adresse wechselt. Meine Idee war/ist socat in einem shellscript per cronjob alle paar Stunden zu resetten. So eine Lösung könnte man ja evtl auch hier gemeinsam "erarbeiten". Cool wäre auch z.B. eine simple WebGUI in PHP auf der man solche Weiterleitungen einrichten und verwalten kann. Sowas übersteigt allerdings meine Skills und meine verfügbare Freizeit.
Viel Spass beim ausprobieren
ich hoffe der Titel ist aussagekräftig. Ich bin über diese Anleitung hier ins Forum gekommen. Mit 6tunnel lassen sich leider keine Verbindungen mit Wireguard realisieren, weil 6tunnel nur TCP Pakte weiterleiten kann und Wireguard UDP Pakete verwendet. Das Problem in meinem Fall besteht darin, daß man aufgrund der Knappheit von IPv4 Adressen von vielen Providern eine CGNAT IPv4 Adresse zugewiesen bekommt. Auf der Fritzbox wird bei mir eine 100.85.xx.xx Adresse angezeigt. Diese Adressen werden im Internet nicht geroutet analog beispielsweise zu dem 192.168.xx.xx Adressbereich. Details hierzu findet man hier --> https://de.wikipedia.org/wiki/Carrier-grade_NAT
Wenn man die eigene IPv4 Adresse über eine Seite wie z.B. wieistmeineip.de abfragt, wird bei IPv4 eine andere Adresse als die obige angezeigt. Diese Adresse verwendet Dt GF für die Kunden zum Surfen im Internet und die Dienste die IPv4 only sind. Diese eine Adresse müssen sich jedoch mehrere Kunden teilen und daher weiß Deutsche Glasfaser bei IPv4 Anfragen aus dem Internet auch nicht welchem Kunden die jeweils ankommenden Pakete zugeordnet werden müssen. Daher ist man weder über die IPv4 Adresse die in der Fritzbox angezeigt wird noch über die Adresse die bei wieistmeineip.de angezeigt wird aus dem Internet erreichbar. Mein Handymobilnetz (O2) teilt mir unterwegs nur eine IPv4 Adresse zu. Damit konnte ich keine Wireguardverbindung mehr von meinem Handy/Laptop zur Fritzbox aufbauen. Diese benötige ich, weil in meinem Heimnetz nicht alle Geräte IPv6 fähig sind und mir so ein Wechsel des Mobilfunkanbieters auch nicht komplett weitergeholfen hätte.
Um das zu umgehen benötigt man zunächst eine feste und damit erreichbare IPv4 Adresse. Ich habe hierfür einen vServer bei der Firma Ionos gemietet. Das billigste Angebot ohne Extras ist ausreichend und kostet aktuell 1€/Monat zzgl 10€ für die einmalige Einrichtung. Ich will hier keine Werbung machen, jeder andere Anbieter mit dem gleichen Leistungsumfang sollte auch funktionieren.
Bei dem vServer musste ich in der Webverwaltung zunächst ICMP in der Firewall aktivieren, um Ping nutzen zu können. Das ist nur zum testen und kann am Ende wieder deaktiviert werden. Ausserdem musste ich die IPv6 Adresse ebenfalls erst in der Webverwaltung aktivieren. Als OS hab ich das neueste Ubuntu genommen. Den Benutzer "root" sollte man deaktivieren und statt dessen einen neuen Benutzer anlegen und sudo installieren. Anleitungen hierzu findet nach man nach kurzer Suche zuhauf im Internet. Auf dem vServer habe ich nach dem üblichen updaten noch die Pakete socat, net-tools und screen installiert. Letzteres ist optional, ich empfehle es jedoch zur Ersteinrichtung der Weiterleitung. Den vServer ggf rebooten. Per ssh kann man auf dem vServer prüfen ob er jeweils eine Ipv4 und IPv6 Adresse hat. -->
Code:
ip a
bei mir sieht das dann so aus (die Adresse ist von mir mit x überschrieben):
Code:
elvito@ubuntu:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ens6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
altname enp0s6
inet 217.xxx.xxx.xx/32 metric 100 scope global dynamic ens6
valid_lft 517sec preferred_lft 517sec
inet6 2a01:xxxx:xxxx:xxxx::1/128 scope global dynamic noprefixroute
valid_lft 3210sec preferred_lft 2210sec
inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link
valid_lft forever preferred_lft forever
Man benötigt noch die IPv6 Adresse der Fritzbox und den Port für Wireguard. Der Wireguardport wird scheinbar auf jeder Fritzbox zufällig vergeben und ist vermutlich bei jedem anders. Man findet den Port etwas versteckt in den Fritzboxeinstellungen zu Wireguard. Ich habe eine 5590 Fiber, das ist bei anderen Modellen ggf woanders zu finden. Bei mir ist es unter Internet --> Freigaben --> VPN (Wireguard) dann am Ende der Seite auf "Wireguard-Einstellungen anzeigen". Auf der Infoseite steht unter "Internet-Adresse Ihrer Fritz!Box" hinter dem ":" der Port für Wireguard. Diesen muss man notieren. Die IPv6 Adresse findet man in der Fritzbox bei Internet --> Online-Monitor --> IPv6 Adresse. Relevant ist nur der Teil vor dem "/". Die Adresse sollte mit 2a beginnen. Wenn die Adresse mit fd, fe o.ä. beginnt muss man die Setting zu IPv6 in der Fritzbox überprüfen und ggf. ULA deaktivieren.
In der Webverwaltung von Ionos muss man nun diesen Port in der Firewall des vServers freigeben. Man muss hier unbedingt als Protokoll UDP auswählen.
Auf dem vServer startet man nun eine screen Session mit
Code:
screen
und gibt folgendes ein:
Code:
sudo socat UDP4-LISTEN:<Port von Wireguard eintragen>,fork,su=nobody UDP6:[<IPv6 Adresse der Fritzbox oder DynDNS Adresse der Fritzbox>]:<Port von Wireguard>
Der Aufruf von socat gibt keine Rückmeldung die Weiterleitung ist aber aktiv. Man kann nun die screen Session akoppeln mit
Code:
<strg+a> <d>
und mit
Code:
screen -r
später wieder aufnehmen.
Das Programm socat wandelt nun auf dem vServer jedes auf dem eingetragenen Port ankommende UDP IPv4 Paket in ein UDP IPv6 Paket um und leitet es an den gewünschten Port der IPv6 Adresse der Fritzbox weiter. Man kann das jetzt schon so laufen lassen und sollte nur aus Sicherheitsgründen alle Ports ausser dem UDP Port für die Weiterleitung wieder in der Firewall des vServers schließen.
Wer keine feste IPv6 Adresse von seinem Provider zugewiesen bekommt muss eine DynDNS Adresse benutzen. Hierbei ist wichtig zu beachten, dass der DynDNS Dienst auf der Fritzbox nur Updates zur IPv6 Adresse veröffentlicht. Sonst kann es passieren, das der DynDNS Updater der Fritzbox die CGNAT Adresse mitschickt und dann würde die Verbindung nicht mehr funktionieren. Ich vermute so ein Problem bei den myfritz Adressen. Mit so einer Adresse hat es bei mir jedenfalls nicht geklappt. Ich nehme für DynDNS den Dienst von All-inkl.de. Die Update URL sieht dann bei mir so aus -->
Code:
dyndns.kasserver.com/?myip=<ip6addr>
Man muss zuletzt in der Wireguardsoftware z.B. beim Handy bei Endpoint die IPv4 Adresse/DynDNS des vServers eintragen und ggf auch den Port anpassen. Die Verbindung mit Wireguard der Fritzbox sollte über IPv4 nun wieder klappen.
Das ist noch nicht ideal und man muss diese Lösung noch etwas finetunen, da z,B. bei manchen Leuten die IPv6 Adresse wechselt. Meine Idee war/ist socat in einem shellscript per cronjob alle paar Stunden zu resetten. So eine Lösung könnte man ja evtl auch hier gemeinsam "erarbeiten". Cool wäre auch z.B. eine simple WebGUI in PHP auf der man solche Weiterleitungen einrichten und verwalten kann. Sowas übersteigt allerdings meine Skills und meine verfügbare Freizeit.
Viel Spass beim ausprobieren
Zuletzt bearbeitet: