avenga
Goto Top

Wireguard IPv6 im Tunnel verwenden - Verbindung klappt aber keine Daten

Hallo,
nachdem ich dank dieses Forum´s mein Wireguard von außen per IPv6 erreichen kann und mein Netzwerk Zuhause per IPv4 ansprechen kann, habe ich versucht einen DS Tunnel zu bauen.

Wie man sieht klappt die Verbindung per IPv6 (rosa Kasten) - aber am Handy wird nichts empfangen bzw. am Server wird nichts gesendet.
Das Handy (Telekom) kann IPv4+IPv6 über LTE.

Nun stehe ich wieder auf´m Schlauch.

Bild1: meine Server Konfig
Bild2: Status wg0

Handy Config:
Interface
...
Adresses = 192.168.99.2/24, fd42:42:42::2/64

Peer
...
Allowed IPs = 0.0.0.0/0, ::/0

Bitte nicht über den ersten Peer wundern, das ist ein IPv4 Peer der zwei Netzwerke permanent verbindet (und auch funktioniert).


Ziel ist es, dass ich von unterwegs wahlweise per IPv4 oder IPv6 auf´s Heimnetzwerk zugreife und immer DS habe und als DNS mein Pi Hole nutzen kann.

IPv6 Fw ist aktiviert.

MfG
wg
wg1

Content-Key: 559360

Url: https://administrator.de/contentid/559360

Ausgedruckt am: 28.03.2024 um 08:03 Uhr

Mitglied: aqui
aqui 20.03.2020, aktualisiert am 31.03.2021 um 11:36:39 Uhr
Goto Top
Kannst du mit einem dedizierten v4 Ping denn wenigstens direkt zw. Client und Server pingen ?
Wenn du nur via IPv6 verbunden bist was ja der Standard ist da dein Server ja gar nicht mit einer öffentlichen v4 Adresse erreichbar ist muss dann der Server dem Client eine gültige v4 verpassen. Ist das der Fall ?
Kannst du mit ifconfig diese beiden virtuellen VPN IP Interfaces sehen wenn der Client aktiv ist ?

Das WG Tutorial hast du gelesen ?
Merkzettel: VPN Installation mit Wireguard
Mitglied: Avenga
Avenga 20.03.2020 aktualisiert um 17:46:56 Uhr
Goto Top
Ich kriege Zuhause echtes DS, bin also über eine IPv4 (per Myfritz) erreichbar.
IPv6 über dynv6.net direkt am Raspberry - was auch klappt wenn der WG Tunnel rein über IPv4 läuft.

Wenn ich mich am Handy per IPv4 verbinde ist alles i.O., zumindest IPv4 klappt dann, IPv6 nicht.

Mit ifconfig kann ich überhaupt keinen Clienten sehen, egal wer (funktionierend) online ist, siehe Bild:
2


Wenn ich per Handy über IPv4 verbunden bin, dann kann ich sowohl die interne IPv4 als auch die IPv6 anpingen:
ping

Trotzdem geht kein IPv6 über´n Tunnel.

Ist denn soweit alles korrekt in meiner Konfig ?
Gibt es noch irgendwelche Fallstricke ?

Oder es liegt bloß am Handy.
Mitglied: Avenga
Avenga 21.03.2020 um 12:39:14 Uhr
Goto Top
Ich habe herausgefunden dass "net.ipv6.conf.all.forwarding=1" das Problem verursacht.

Sobald IPv6 Fw aktiv ist spinnt der Raspberry -> der Login im SSH dauert 10-20s und der Tunnel ist nicht mehr per IPv6 erreichbar.

Es scheint also kein direktes WG Problem zu sein, sondern mit dem IPv6 Fw.

Wenn ich das wieder ausschalte ist der Tunnel per IPv6 erreichbar und die SSH Passworteingabe ist sofort da.
Mitglied: aqui
aqui 21.03.2020 aktualisiert um 14:19:28 Uhr
Goto Top
Sobald IPv6 Fw aktiv ist spinnt der Raspberry
Nein, der RasPi "spinnt" ganz sicher nicht ! Adressierungs Problem vermutlich !
Wenn du Dual Stack mit IPv6 aktivierst haben per Definition IPv6 Connections immer Priorität ! Stimmt dann deine IPv6 Konfiguration und Adressierung insbesondere DNS nicht kommt es zu diesen Timeouts wenn IPv6 Ziele nicht erreichbar sind. Erst nach den Timeouts wird dann IPv4 versucht.
Das ist bei allen Dual Stack Clients auf der Welt so.
Vermutlich also ein Dual Stack Adressierungsproblem ?!
Mitglied: Avenga
Avenga 21.03.2020 um 14:38:42 Uhr
Goto Top
Hier hat beschreibt jemand das gleiche Problem:

Link

Enabling IPv6 forwarding will disable IPv6 autoconf. Usually you want routers (devices that forward) to have static addresses.
Mitglied: aqui
aqui 21.03.2020 aktualisiert um 14:43:03 Uhr
Goto Top
Usually you want routers (devices that forward) to have static addresses.
Was ja absolut richtig ist. face-wink
Vermutlich aber bei IPv6 Kunden, die mit dynamischer Prefix Delegation alle naslang eine neue IPv6 Adresse vom Provider bekommen, dann nicht durchzuhalten ist.
Mitglied: Avenga
Avenga 21.03.2020 um 14:54:55 Uhr
Goto Top
Genau, wie kriege ich es also hin, dass die FritzBox dem Raspberry die sich änderende IPv6 zuteilt und gleichzeitig IPv6 Fw aktiv ist ?
Mitglied: aqui
aqui 21.03.2020 um 15:07:47 Uhr
Goto Top
Das geht einzig nur wenn dein Router die IPv6 Prefix Delegation per DHCPv6 an die Clients mit einem /64 Prefix weiterreicht. Eine FritzBox kann das. Der Endgeräte Port muss dann als DHCPv6 Client arbeiten
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=w ...
Mitglied: Avenga
Avenga 29.05.2020 um 09:46:39 Uhr
Goto Top
Die Lösung war doch sehr einfach:

Zuerst lässt man sich eine HW-IPv6 Adresse geben in:

mit: nano /etc/dhcpcd.conf
slaac hwaddr
# OR generate Stable Private IPv6 Addresses based from the DUID
#slaac private
Nun bekommt man 3 IPv6 Adressen mit der gleichen Endung (aus der MAC Adresse).

Anschließend trägt man eine davon ein, und zwar die private, die sich nicht ändert:
# Example static IP configuration:
interface eth0
static ip_address=192.168.***/24
static ip6_address=fd00:****/64                                                                    
static routers=192.168.***
static domain_name_servers=127.0.0.1

Nun kann man net.ipv6.conf.all.forwarding=1 aktivieren, ohne dass es Ärger gibt.
Die anderen beiden IPv6 Adressen werden trotzdem zugeteilt, die öffentliche braucht man ja unbedingt.

Anschließend kann man die wg0.conf anpassen:
ich habe für Wireguard einfach mal fd08: genommen.

[Interface]
Address = 192.168.99.1/24, fd08::1/64
ListenPort = 51820
PrivateKey = ***

PostUp = iptables -A FORWARD -i %i -j ACCEPT
PostUp = iptables -A FORWARD -o %i -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostUp = ip6tables -A FORWARD -i %i -j ACCEPT
PostUp = ip6tables -A FORWARD -o %i -j ACCEPT
PostUp = ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

PostDown = iptables -D FORWARD -i %i -j ACCEPT
PostDown = iptables -D FORWARD -o %i -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PostDown = ip6tables -D FORWARD -i %i -j ACCEPT
PostDown = ip6tables -D FORWARD -o %i -j ACCEPT
PostDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE


[Peer]
PublicKey = ***
AllowedIPs = 192.168.99.2/32, fd08::2/128
[Peer]
PublicKey = ***
AllowedIPs = 192.168.99.3/32, fd08::3/128
[Peer]
PublicKey = ***
AllowedIPs = 192.168.99.4/32, fd08::4/128
[Peer]
PublicKey = ***
AllowedIPs = 192.168.99.5/32, fd08::5/128

Bei den Clienten entsprechend auch anpassen:
Schnittstelle:
Adressen: 192.168.99.2/24, fd08::2/64
DNS Server sowohl PiHole IPv4 als auch IPv6 wenn gewünscht.
Teilnehmer:
Erlaubte IPs: 0.0.0./0, ::/0
Mitglied: aqui
aqui 29.05.2020 um 19:20:19 Uhr
Goto Top
ich habe für Wireguard einfach mal fd08: genommen.
Ist aber sinnfrei und doppelt gemoppelt, da du ja dann auch die fe80... Local Link belassen könntest. Da dann zusätzlich noch eine 3fach Adressierung zu verwenden verwirrt ja nur. Aber egal...
Zudem die auch noch nicht einmal besonders intelligent gewählt ist, denn den 64 Bit Prefix sollte man wenn dann schon etwas individueller wählen um Überscheindungen sicher zu vermeiden. Z.B.:
fd08:dead:beef:cafe::1 /64
oder //
fd08:cafe:bade:affe::1 /64