Layer 3: Probleme mit wireguard wenn nur IPv4 am WAN vorhanden #286
Labels
No Label
RFC
RFT
WIP
blocked
bsp
bug
build/scripts/tools
duplicate
feature
fixed
layer3
mantis
more details required
needs changes
node
packages/fff
rejected
security
trivial
upstream
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: freifunk-franken/firmware#286
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Wenn an einem Router am WAN nur IPv4 vorhanden ist und man schon einen wireguard offen hat der mit dem Freifunknetz funktioniert wo sowohl v4 als auch v6 konfiguriert ist, man anschließend einen 2. Wireguard konfiguriert mit DNS der sowohl A als auch AAAA hat, dann versucht wireguard dies mit IPv6 (zu sehen wenn man wg eingibt). Dank Blackhole Rule schlägt das zwar fehl so das zumindest der Tunnel nicht durchs Freifunk aufgebaut wird, funktionieren tut er aber natürlich nicht.
Das Problem besteht schon seit Anfang an. Problematisch ist hier, dass für Wireguard nur eine einzelne Adresse für den Peer festgelegt werden kann. Das Auflösen von DNS nach Adresse macht der OpenWrt netifd (afaik) direkt beim Starten des Tunnelinterfaces. Ist zum Zeitpunkt der Namensauflösung eine IPv6 default-Route (?) verfügbar, dann wird AAAA aufgelöst, andernfalls A.
Da eine IPv6 Default Route verfügbar ist sobald wir mit dem Freifunk-Netz verbunden sind, wird ab dann auch immer AAAA aufgelöst, auch wenn der WAN-Anschluss eigentlich gar kein IPv6 verfügbar hat.
Die Problematik des Verhaltens hält sich in Grenzen, da das ganze nur ein Problem ist, wenn nachträglich Tunnel hinzugefügt werden. Wird der Tunnel bereits vor der Verbindung mit dem Freifunk-Franken Netz gestartet, dann ist keine IPv6 Default-Route verfügbar und es wird der A Record aufgelöst.
Das Problem sollte sich zumindest zum Teil mit der Implementierung von #270 lösen, denn dann sind die Freifunk-Routen nicht mehr für den WAN VRF sichtbar.
Damit wir mit wirklich jedem Fall umgehen können, müssten eigentlich regelmäßig beide IP-Protokolle und ggf. mehrere vorhandene Records ausprobiert werden, solange die Wireguard-Verbindung inaktiv ist. Das ist allerdings nicht so einfach, da ein Wireguard keinen Verbindungszustand hat.