[Erledigt] Freetz LAN-LAN-Kopplung über WireGuard

Casturdy

Neuer User
Mitglied seit
8 Aug 2018
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Hallo,

hat hier schon jemand Freetz mit dem WireGuard Patch zum Laufen bekommen?
Ich habe den Freetz trunk, FRITZ!OS Version 06.93, auf zwei 7490er Fritzboxen installiert und versuche gerade eine LAN-LAN-Kopplung einzurichten.
Leider komme ich nur so weit, dass sich der Tunnel zwischen den beiden Boxen aufbaut, also 10.0.0.1 und 10.0.0.2, nicht zwischen 192.168.1.X und 192.168.2.X.

Die Konfiguration sieht so aus:

Box 1:
Netz: 192.168.1.0/24
WG-IP-Adresse: 10.0.0.1/24

Code:
[Interface]
PrivateKey = uKjthUdw/in2HOdkMK2UP6qFSvUy9SH7GUor7pqKVHE=
ListenPort = 51820

[Peer]
PublicKey = xb+DdwDUKIBaOsVRnoI4/cQEpc07cwrbF1MhClp87Q0=
Endpoint = test1.xyz.de:51820
AllowedIPs = 10.0.0.0/24, 192.168.2.0/24

Box 2:
Netz: 192.168.2.0/24
WG-IP-Adresse: 10.0.0.2/24

Code:
[Interface]
PrivateKey = eLdQZPe3GHXmr0v7DPGlqUCTOff3LgsDzGu9zdZP0kE=
ListenPort = 51820

[Peer]
PublicKey = doMqPQcm69mZappJ32XolmOy++U/eQm4ANMdDgac4hc=
Endpoint = test2.xyz.de:51820
AllowedIPs = 10.0.0.0/24, 192.168.1.0/24
Bei beiden ist dazu auch noch internet_forwardrules = "udp 0.0.0.0:51820 0.0.0.0:51820"; in die ar7.cfg eingetragen.
Ich habe hier im Forum schon gelesen, dass man statt der internet_forwardrules die voip_forwardrules benutzen soll, allerdings funktioniert damit nicht einmal der Tunnel zwischen den beiden Boxen.

Das sich die beiden Netze nicht sehen liegt bestimmt an der Firewall, ich weiß bloß nicht, wo ich da noch was einstellen kann.
In der vpn.cfg gibt es einen accesslist-Eintrag, aber dieser wird ja auch nur beim aktiven VPN-Zugang benutzt.
Weiß zufällig jemand, wo man sonst einen ähnlichen Eintrag vornehmen kann, der für WireGuard funktionieren würde?
 

Shirocco88

Aktives Mitglied
Mitglied seit
4 Jan 2016
Beiträge
870
Punkte für Reaktionen
67
Punkte
28
Leider komme ich nur so weit, dass sich der Tunnel zwischen den beiden Boxen aufbaut, also 10.0.0.1 und 10.0.0.2, nicht zwischen 192.168.1.X und 192.168.2.X.

Wie sieht denn die Routing-Table aus ?
einfach "netstat -rn" eingeben und Output posten
 

Casturdy

Neuer User
Mitglied seit
8 Aug 2018
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Box 1:
Code:
0.0.0.0         0.0.0.0         0.0.0.0         U         0 0          0 dsl
2.200.XXX.XX    0.0.0.0         255.255.255.255 UH        0 0          0 dsl
10.0.0.0        0.0.0.0         255.255.255.0   U         0 0          0 wg0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 lan
176.95.16.210   0.0.0.0         255.255.255.255 UH        0 0          0 dsl
176.95.16.251   0.0.0.0         255.255.255.255 UH        0 0          0 dsl
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 lan
192.168.179.0   0.0.0.0         255.255.255.0   U         0 0          0 guest
192.168.180.1   0.0.0.0         255.255.255.255 UH        0 0          0 dsl
192.168.180.2   0.0.0.0         255.255.255.255 UH        0 0          0 dsl

Box 2:
Code:
0.0.0.0         0.0.0.0         0.0.0.0         U         0 0          0 dsl
10.0.0.0        0.0.0.0         255.255.255.0   U         0 0          0 wg0
91.106.128.141  0.0.0.0         255.255.255.255 UH        0 0          0 dsl
91.106.XXX.X    0.0.0.0         255.255.254.0   U         0 0          0 dsl
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 lan
192.168.2.0     0.0.0.0         255.255.255.0   U         0 0          0 lan
192.168.180.1   0.0.0.0         255.255.255.255 UH        0 0          0 dsl
192.168.180.2   0.0.0.0         255.255.255.255 UH        0 0          0 dsl
192.168.189.0   0.0.0.0         255.255.255.0   U         0 0          0 guest

Die eine Box ist direkt hinter einer CPE, die andere ist direkt als VDSL2 Modem/Router an der Dose.

EDIT:
Also ich habe gerade testweise die normale LAN-LAN-Kopplung (Internet -> Freigaben -> VPN) eingerichtet.
An der Ausgabe von netstat ändert sich da, nach erfolgreicher Kopplung, überhaupt nichts.
Einzig wg0 ist weg, was aber daran liegt, dass ich WireGuard ausgeschaltet habe.
Das Ganze scheint über eine ganz andere Schiene zu laufen.

//edit by stoney: Vollzitat von darüber entfernt
 
Zuletzt bearbeitet:

Casturdy

Neuer User
Mitglied seit
8 Aug 2018
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Also, ich habe WireGuard mal mit gleicher Konfiguration zwischen VMs laufen lassen, es funktioniert einwandfrei.
Dort wird, zusätzlich zu der 10.0.0.0 wg0 Route, automatisch auch noch eine 192.168.X.0 wg0 Route gesetzt.

VM1:
Code:
10.0.0.0        0.0.0.0         255.255.255.0   U         0 0          0 wg0
192.168.2.0     0.0.0.0         255.255.255.0   U         0 0          0 wg0

VM2:
Code:
10.0.0.0        0.0.0.0         255.255.255.0   U         0 0          0 wg0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 wg0

Warum setzt Freetz nur die erste 10.0.0.0 Route und ignoriert die zweite?
Bug?

Kann ich die fehlende Route irgendwo nachtragen, sodass sie reboots überlebt?
 

Whoopie

Aktives Mitglied
Mitglied seit
19 Okt 2004
Beiträge
864
Punkte für Reaktionen
9
Punkte
18
Hi,

als ich das damals in Freetz eingebaut habe, habe ich an eine LAN-LAN-Kopplung nicht gedacht, sondern eher an Roadwarrior-Szenarien.

Da nicht das wg-quick Skript verwendet wird (da es bash-basiert ist), um Wireguard zu konfigurieren, werden die Routen für die Netze unter "AllowedIPs" nicht automatisch hinzugefügt.

Du kannst die Routen aber m.E. in der rc.custom (unter 'Freetz' im Webinterface) eintragen, damit sie nach einem Reboot vorhanden sind.

Gruß,
Whoopie
 

Casturdy

Neuer User
Mitglied seit
8 Aug 2018
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Alles klar, und danke, dass du es eingebaut hast.


Bei der rc.custom steht jetzt aber:
Warnung: Konfiguration in der aktuellen Sicherheitsstufe nicht verfügbar!

Ist die Methode mit echo 0 > /tmp/flash/mod/security && modsave nicht mehr aktuell?
Nach dem Ausführen dieser kriege ich da immer noch die gleiche Meldung angezeigt.


EDIT:
Geht doch, ich habe bloß bei der falschen Box geschaut.

Naja, ich habe es mal testweise manuell eingegeben:

Box1:
Code:
ip route add 192.168.1.0/24 via 10.0.0.2 dev wg0

Box2:
Code:
ip route add 192.168.2.0/24 via 10.0.0.1 dev wg0

Jetzt läuft es.

Der Durchsatz hat sich im Vergleich zur Fritzbox eigenen LAN-LAN-Kopplung gleich verfünffacht.
Wenn das jetzt noch einigermaßen stabil läuft, dann war es den Aufwand auf jeden Fall wert.

EDIT2:

Ich habe das gerade eingetragen und neu gestartet.
Der Tunnel wurde nach dem Booten gleich aufgebaut.
Damit ist das Thema erledigt.

Vielen Dank!

### Zusammenführung Doppelpost by stoney ###

Einen Hacken hat die Sache:
Die in rc.custom gesetzte Route überlebt den Neustart von WireGuard nicht.
Wenn man also die WireGuard Konfiguration ändert und übernehmen klickt, dann muss man die Route auch wieder manuell setzen, oder die Box neu starten.
Es ist also nicht die beste Lösung, aber zum Testen reicht es erst mal.

Außerdem habe ich noch PersistentKeepalive = 25 in die Konfiguration eingetragen, damit der Tunnel nicht gleich wieder zusammenbricht, sonst hat man wieder das o.g. Problem.
 
Zuletzt bearbeitet von einem Moderator:

Whoopie

Aktives Mitglied
Mitglied seit
19 Okt 2004
Beiträge
864
Punkte für Reaktionen
9
Punkte
18
Kannst du mal folgenden Patch testen?

Code:
Index: files/root/etc/init.d/rc.wireguard
===================================================================
--- files/root/etc/init.d/rc.wireguard    (Revision 14785)
+++ files/root/etc/init.d/rc.wireguard    (Arbeitskopie)
@@ -13,6 +13,9 @@
     ip address add $WIREGUARD_IP dev wg0
     wg setconf wg0 /tmp/flash/wireguard/wireguard.conf
     ip link set wg0 up
+    wg show wg0 allowed-ips | while read peer ip; do
+        for i in $ip; do ip route add $i dev wg0; done
+    done
     echo 'done.'
 }

Es fehlt allerdings noch die Überprüfung, ob eine "more specific route" schon von einer "less specific route" abgedeckt wird, z.B. wenn in AllowedIPs 10.0.0.3/32 steht und das Subnetz 10.0.0.0/24 ist, dann wird trotzdem eine Route für 10.0.0.3 hinzugefügt. Ausserdem muss noch 0.0.0.0/0 rausgefiltert werden.

Danke und Gruß,
Whoopie
 
Zuletzt bearbeitet:

Casturdy

Neuer User
Mitglied seit
8 Aug 2018
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Klar kann ich das, aber wahrscheinlich erst am Montag, vorher komme ich nicht dazu.

Ich wollte Freetz sowieso noch mal mit dem aktuellen WireGuard snapshot bauen.
Die Performance soll ja schon mit dem letzten gestiegen sein: Link
Und den 0.0.20180809 gibt es seit einigen Stunden auch schon.

Außerdem wollte ich noch die MTU anpassen, nachdem ich das hier gelesen habe: Link

Ich klatsche hier dann einen EDIT ran, wenn ich alles getestet habe.
 

Shirocco88

Aktives Mitglied
Mitglied seit
4 Jan 2016
Beiträge
870
Punkte für Reaktionen
67
Punkte
28
Der Durchsatz hat sich im Vergleich zur Fritzbox eigenen LAN-LAN-Kopplung gleich verfünffacht.
verwendet WireGuard-VPN keine Compression ?
Hinweis: bei AVM-VPN kann man dies in vpn.cfg per phase2ss= comp-no bzw. comp-all aus- bzw. einschalten.
 

prisrak1

Mitglied
Mitglied seit
14 Mai 2017
Beiträge
441
Punkte für Reaktionen
45
Punkte
28
wäre super, wenn eine richtige Anleitung jemand zur Verfügung stellen könnte. Was man zum Beispiel überall eingeben müsste. Konfiguration etc. zum Beispiel wie bei Oppen VPN. Vielen Dank im Voraus. Würde auch gerne testen.
 

Casturdy

Neuer User
Mitglied seit
8 Aug 2018
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
verwendet WireGuard-VPN keine Compression ?
Nein, soweit ich weiß nicht: Link
Klingt auch so als wäre es nicht geplant: Link

Aber danke für den Hinweis, ich werde auch das noch mal testen.

Würde auch gerne testen.
Also wenn du es jetzt testen willst, dann brauchst du eigentlich nur den Thread lesen.
Alles, was dieses Setup betrifft, ist hier schon drin.

Eine Schritt für Schritt Anleitung kann ich auch schreiben, wird aber warten müssen.

EDIT:
Kannst du mal folgenden Patch testen?
Ich habe den Patch gerade ausprobiert.
Nach dem Start der Box wird keine 192.168.X.0 Route angelegt.

Wenn ich den Dienst neu starte, wird Folgendes angezeigt:
Code:
ip: RTNETLINK answers: File exists
Liegt wahrscheinlich an dem 10.0.0.0 Eintrag, der ja zuvor ohne Weiteres zutun bereits angelegt wurde.
Außerdem dauert der Neustart des Dienstes geschätzt 20 Sekunden, die 192.168.X.0 Route ist dann aber auch angelegt.

Wenn man das mit dem rc.custom Eintrag kombiniert, dann hätte man eine fast funktionierende Lösung, wenn da nicht Folgendes wäre:
Manchmal wird beim Neustart die WireGuard-Konfiguration überhaupt nicht geladen.
WireGuard hört dann auf einen zufälligen Port, weder IPs noch Schlüssel sind bei der wg Ausgabe zu sehen.
Die /tmp/flash/wireguard/wireguard.conf ist zu dem Zeitpunk von wg setconf wohl noch nicht lesbar.


Ich habe es mir jetz einfach gemacht und die benötigten Routen an Stelle des Patches direkt in die rc.wireguard eingetragen:
Code:
ip route add 192.168.2.0/24 via 10.0.0.1 dev wg0
Das funktioniert bisher am besten.
Die Route wird sowohl beim Start der Box als auch beim Neustart von WireGuard angelegt.
Außerdem dauert der Neustart des WireGuard Dienstes nicht mehr als eine Sekunde.

EDIT2:
Ich habe die Boxen jetzt noch einige Male neu gestartet.
Das Problem der nicht eingelesen Konfiguration scheint immer dann aufzutreten, wenn keine Internetverbindung besteht.
Da der Verbindungsaufbau beim DSL-Anschluss recht langsam ist, tritt das Problem hier besonders häufig auf.

EDIT3:
Hinweis: bei AVM-VPN kann man dies in vpn.cfg per phase2ss= comp-no bzw. comp-all aus- bzw. einschalten.
Ich habe das eben mal versucht.
Wenn ich comp-no setze, speichere und die Box neu starte, wird, warum auch immer, keine Verbindung mehr aufgebaut.
Deswegen kann ich dazu auch keine Übertragungsraten posten.

Aber hier mal ein paar Vergleiche mit dem default comp-all.
Code:
        ipsec       wireguard
curl:   0,97 MB/s    2,77 MB/s
smb:    0,66 MB/s    2,54 MB/s
scp:    0,98 MB/s    2,68 MB/s

Das sind durchschnittliche Maximalwerte bei jeweils 5 Durchläufen.
Maximaler Upload der Leitung sind 3,1 MB/s.
Da es eine DSL-Leitung ist, schwanken die Werte ordentlich hin und her, ipsec kommt aber nie über 1,0 MB/s.

Also, fünffacher Durchsatz ist es nicht, dreifacher trifft es schon eher.
 
Zuletzt bearbeitet:

mj084

Mitglied
Mitglied seit
17 Mrz 2006
Beiträge
357
Punkte für Reaktionen
0
Punkte
16
Ich buddel das Teil mal aus hier:eek:

Hat hier jemand aktuelle Erkenntnisse, ob eine LAN-LAN-Kopplung zwischen 2 FritzBoxen mittels WireGuard mittlerweile problemlos funktioniert?
 

WileC

Mitglied
Mitglied seit
28 Nov 2007
Beiträge
368
Punkte für Reaktionen
11
Punkte
18
Hast du schonmal ans "onlinechanged" gedacht? .. hier das "ip route" ausführen lassen, immer wenn die Box online geht?
 

mj084

Mitglied
Mitglied seit
17 Mrz 2006
Beiträge
357
Punkte für Reaktionen
0
Punkte
16
An was? Was soll "onlinechanged" sein?
 

mj084

Mitglied
Mitglied seit
17 Mrz 2006
Beiträge
357
Punkte für Reaktionen
0
Punkte
16
So ich konnte zumindest den Tunnel einmal kurz aufbauen, und nach Hinzufügen der Route waren die entfernten Netze auch erreichbar.

Leider ist seitdem Neustart der 7490 keine Verbindung mehr möglich...
 
Zuletzt bearbeitet:

WileC

Mitglied
Mitglied seit
28 Nov 2007
Beiträge
368
Punkte für Reaktionen
11
Punkte
18
"onlinechanged" ist das Event, welches durchgeführt wird, wenn einmal die Box offline geht (hier können Skripte ausgeführt werden) und wenn dann die Box wieder online ist (auch dann werden wieder Skripte ausgeführt).
 

mj084

Mitglied
Mitglied seit
17 Mrz 2006
Beiträge
357
Punkte für Reaktionen
0
Punkte
16
Oh sorry, ich hatte nen Typo drin - meinte die 7490 von AVM...
Trotzdem danke :)
 

Erhalten Sie 3CX für 1 Jahr kostenlos!

Gehostet, in Ihrer privaten Cloud oder on-Premise! Ganz ohne Haken. Geben Sie Ihren Namen und Ihre E-Mail an und los geht´s:

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.
oder via

IPPF im Überblick

Neueste Beiträge

Website-Sponsoren


Kontaktieren Sie uns bei Interesse