WireGuard Routing Hölle

HolgerZ

Benutzer
Mitglied seit
28. Sep 2021
Beiträge
6
Punkte für Reaktionen
1
Punkte
9
Hallo, ich habe ein Problem mit dem Routing zwischen zwei DS920+ und weiteren Clients, die alle per WireGuard verbunden sind.
Das Routing zwischen den beiden NAS und den Clients in den selben Netzwerken wie die NAS bekomme ich hin, aber weitere Clients, die per WireGuard auf ein NAS zugreifen, haben keinen Zugriff auf das andere NAS.

Ich habe schon etliche Anleitungen versucht und auf mein Szenario angepasst, aber bisher hat nichts funktioniert.

Leider sind meine Linuxkenntnisse und was das Routing angeht eher begrenzt und vieles was ich lese verstehe ich nicht wirklich. Ich habe jetzt eine Anleitung gefunden, von der ich glaube, sie könnte funktionieren, aber da scheint es ein Problem mit verschiedenen Versionen von iptables zu geben und auf der DS920+ scheint etwas anderes zu laufen, als das was die Anleitung benutzt - an der Stelle bin ich dann leider total überfordert.

Die Anleitung auf die ich mich beziehe findet ihr auf dieser Seite (ich hoffe der Link ist Ok). Auf der Seite gibt es viele tolle Anleitungen zu WireGuard.

INI:
[Interface]
PrivateKey          = <key>
Address             = 10.0.0.1/32
ListenPort          = 51820

SaveConfig          = false


#  WireGuard Routing
Table               = 123

#  IP forwarding
PreUp               = sysctl -w net.ipv4.ip_forward=1

#  default routing for incoming WireGuard packets
PreUp               = ip rule add iif wg0 table 123 priority 456
PostDown            = ip rule del iif wg0 table 123 priority 456

#  routing for packets sent from WireGuard network to this Site
PreUp               = ip rule add to 10.20.0.0/16 table main priority 444
PostDown            = ip rule del to 10.20.0.0/16 table main priority 444

#  routing for packets returning from this Site back to WireGuard network
PostUp              = ip route add 10.0.0.0/16 dev wg0

#  IP masquerading
------------ Hier dürfte das Problem liegen ---------------
PreUp               = iptables -t mangle -A PREROUTING -i wg0 -j MARK --set-mark 0x30
PreUp               = iptables -t nat -A POSTROUTING ! -o wg0 -m mark --mark 0x30 -j MASQUERADE
PostDown            = iptables -t mangle -D PREROUTING -i wg0 -j MARK --set-mark 0x30
PostDown            = iptables -t nat -D POSTROUTING ! -o wg0 -m mark --mark 0x30 -j MASQUERADE

#  Old Site2Site Settings (not routing to second Site)
#PostUp              = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#PostDown            = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE


[Peer]
PublicKey           = <key>
AllowedIPs          = 10.30.0.0/16, 10.0.0.2/32, 10.0.2.0/24

wg-quick up wg0
[#] sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
[#] ip rule add iif wg0 table 123 priority 456
[#] ip rule add to 10.20.0.0/16 table main priority 444
[#] iptables -t mangle -A PREROUTING -i wg0 -j MARK --set-mark 0x30
[#] iptables -t nat -A POSTROUTING ! -o wg0 -m mark --mark 0x30 -j MASQUERADE
iptables v1.8.3 (legacy): Couldn't load match `mark':No such file or directory

Try `iptables -h' or 'iptables --help' for more information.
[#] ip link delete dev wg0
Cannot find device "wg0"
 

Synchrotron

Benutzer
Sehr erfahren
Mitglied seit
13. Jul 2019
Beiträge
5.099
Punkte für Reaktionen
2.067
Punkte
259
Vielleicht mal Tailscale anschauen ?
 

HolgerZ

Benutzer
Mitglied seit
28. Sep 2021
Beiträge
6
Punkte für Reaktionen
1
Punkte
9
Tailscale wollte ich gerne vermeiden, da das ganze Geld kosten würde, schlechtere Performance bieten würde und zusätzlich eine weitere Abhängigkeit mit sich bringen würde.

Dazu habe ich das Routing zumindest im Grunde verstanden - glaube ich. Jetzt fehlt nur noch die konkrete Umsetzung mit iptables. Da es da wohl eine ziemlich große Umstellung gab, ist es für mich sehr schwer geeignete Informationen zu finden, da ich nichtmal weiß was sich geändert hat, wann bzw. mit welcher Version es sich geändert hat, was auf der Synology läuft bzw. Worauf die Anleitung basiert.

Wahrscheinlich würde mir ein Schubs in die richtige Richtung schon reichen. Wie gesagt, habe ich das Routing zwischen den direkten WireGuard Knoten ja bereits hinbekommen. Nur das Routing durch einen Knoten hindurch klappt nicht.

Außerdem bin ich schon so weit, jetzt will ich es auch wissen ;)
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
Nutzt du die Firewall? Ich denke die könnte falsch eingerichtet sein.
 

HolgerZ

Benutzer
Mitglied seit
28. Sep 2021
Beiträge
6
Punkte für Reaktionen
1
Punkte
9
Ich habe die Firewall mal deaktiviert, das Ergebnis ist leider das gleiche.
Da WireGuard aber gar nicht erst startet, dürfte es eher nicht daran liegen.
Problem müsste hier eine Iptables Erweiterung sein. Da steig ich aktuell aber noch gar nicht durch.

Wobei ich auch gestehen muss, dass mir der Unterschied von Firewall und iptables nicht ganz klar ist..
 

Synchrotron

Benutzer
Sehr erfahren
Mitglied seit
13. Jul 2019
Beiträge
5.099
Punkte für Reaktionen
2.067
Punkte
259
Tailscale ist kostenlos bei a) privater Nutzung für b) bis zu 20 Geräte.

Mein WG läuft ohne deren Hilfe, ich wollte es nur nicht unerwähnt lassen.

IpTables ist (etwas verkürzt formuliert) die native Firewall von Linux.
 
  • Like
Reaktionen: diver68


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat