WireGuard Routing Hölle

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

HolgerZ

Benutzer
Registriert
28. Sep. 2021
Beiträge
6
Reaktionspunkte
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"
 
Vielleicht mal Tailscale anschauen ?
 
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 ;)
 
Nutzt du die Firewall? Ich denke die könnte falsch eingerichtet sein.
 
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..
 
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
Status
Für weitere Antworten geschlossen.
 

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