Wireguard Jumphost Split Tunnel Routingtroubles
Hallo,
ich hadere gerade mit einem Wireguard Setup, 1 Server 2 Hosts 2 Netzwerke welche sich erreichen sollten.
Ich kann mich sauber verbinden, bekomme von den Clients aus auch vom WG Server 10.13.13.1 eine Antwort,
aber sobald ich von der 192.168.0.0 in die 192.168.123.0 oder umgekehrt was pinge bekomme ich nur noch einen timeout.
Ich kann auch vom Server aus die Netzwerke nicht erreichen, also muss wahrscheinlich hier der Hund vergraben sein.
Übersicht:
Server wg.conf:
Server IP Route:
ClientConfigs
PL1
PL2
Für mein Verständniss sollte das eig. so passen oder übersehe ich was?
grüße
ich hadere gerade mit einem Wireguard Setup, 1 Server 2 Hosts 2 Netzwerke welche sich erreichen sollten.
Ich kann mich sauber verbinden, bekomme von den Clients aus auch vom WG Server 10.13.13.1 eine Antwort,
aber sobald ich von der 192.168.0.0 in die 192.168.123.0 oder umgekehrt was pinge bekomme ich nur noch einen timeout.
Ich kann auch vom Server aus die Netzwerke nicht erreichen, also muss wahrscheinlich hier der Hund vergraben sein.
Übersicht:
Server wg.conf:
[Interface]
Address = 10.13.13.1/24
ListenPort = 51820
PrivateKey = ----
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth+ -j MASQUERADE
[Peer]
# peer_srv
PublicKey = ---
AllowedIPs = 10.13.13.2/32
PersistentKeepalive = 25
[Peer]
# peer_cl1
PublicKey = ----
AllowedIPs = 10.13.13.3/32, 192.168.123.0/24
PersistentKeepalive = 25
[Peer]
# peer_cl2
PublicKey = ----
AllowedIPs = 10.13.13.4/32, 192.168.0.0/24
PersistentKeepalive = 25
Server IP Route:
default via 192.168.64.1 dev eth0
10.13.13.0/24 dev wg0 proto kernel scope link src 10.13.13.1
192.168.0.0/24 dev wg0 scope link
192.168.64.0/20 dev eth0 proto kernel scope link src 192.168.64.2
192.168.123.0/24 dev wg0 scope link
ClientConfigs
PL1
PL2
Für mein Verständniss sollte das eig. so passen oder übersehe ich was?
grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 11148167456
Url: https://administrator.de/contentid/11148167456
Ausgedruckt am: 25.11.2024 um 11:11 Uhr
18 Kommentare
Neuester Kommentar
Wie üblich das überflüssige NAT im VPN Tunnel (iptables). Damit ist kein transparentes Routing über die Netze möglich wegen der NAT Firewall. (Siehe auch WG Tutorial was explizit auf diesen Fehler hinweist!)
Im Mikrotik fehlt der Screenshot mit dem statischen Wireguard Routing Eintrag auf die remoten Netze welcher auch bei dir fehlt und die Verbindung deshalb scheitert! ⚠️ Beachte immer das der Mikrotik kein automatisches Cryptokey Routing supportet!
Keepalives in einem WG Server (VPN Responder, Endpoint) sind unsinnig und solltest du entfernen. Sie gehören ausnahmslos immer nur auf die WG Clients (VPN Initiator)!
Im Mikrotik fehlt der Screenshot mit dem statischen Wireguard Routing Eintrag auf die remoten Netze welcher auch bei dir fehlt und die Verbindung deshalb scheitert! ⚠️ Beachte immer das der Mikrotik kein automatisches Cryptokey Routing supportet!
Keepalives in einem WG Server (VPN Responder, Endpoint) sind unsinnig und solltest du entfernen. Sie gehören ausnahmslos immer nur auf die WG Clients (VPN Initiator)!
Server Config
Config Client CL1
Config Client CL2
Für die Routen auf den Clients dann als GW die 10.13.13.1 eintragen, der kennt ja alle anderen Netze dann bereits.
[Interface]
Address = 10.13.13.1/24
ListenPort = 51820
PrivateKey = ----
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT;
[Peer]
# peer_cl1
PublicKey = ----
AllowedIPs = 10.13.13.3/32, 192.168.123.0/24
[Peer]
# peer_cl2
PublicKey = ----
AllowedIPs = 10.13.13.4/32, 192.168.0.0/24
Config Client CL1
[Interface]
Address = 10.13.13.3/24
PrivateKey = ----
[Peer]
PublicKey = ----
AllowedIPs = 10.13.13.0/24, 192.168.123.0/24
Endpoint = 192.168.68.1:51820
PersistentKeepalive = 25
Config Client CL2
[Interface]
Address = 10.13.13.4/24
PrivateKey = ----
[Peer]
PublicKey = ----
AllowedIPs = 10.13.13.0/24, 192.168.0.0/24
Endpoint = 192.168.68.1:51820
PersistentKeepalive = 25
Für die Routen auf den Clients dann als GW die 10.13.13.1 eintragen, der kennt ja alle anderen Netze dann bereits.
müsste es reichen wenn ich aus dem postUp / postDown dies hier entferne?
Ja das reicht und sollte immer erste Amtshandlung sein. was komisch ist, dass das Interface unknown ist, obwohol das wireguard interface up ist
Du hast hier vermutlich fälschlicherweise das eigene IP Interface als Gateway eingegeben was natürlich dann in die Hose geht. Dort muss logischerweise, wie bei statischen Routen immer üblich, das next Hop Gateway stehen und das ist natürlich dann die interne WG IP Adresse deines Servers (Responder, Endpoint) also 10.13.13.1!Kollege @puderpader hat es oben schon gesagt. Daher rührt auch die fehlerhafte Anzeige im MT.
aber wenn ich versuche auf das jeweils andere Lan Netz zu pingen, geht das in einen Timeout.
Hier wie immer, die übliche Administrator.de Frage, ob das Winblows Clients sind??Wenn ja hast du sicher nicht auf dem Radar das deren lokale Windows Firewall generell IP Pakete aus fremden Netzen blockt und ganz besonders ICMP Traffic (Ping etc.) der generell geblockt ist!
https://www.windowspro.de/wolfgang-sommergut/ping-windows-10-erlauben-gu ...
Tip:
Ping immer die lokalen LAN Port IP Adressen deiner Router (Mikrotik, Server etc.) dort wütet in der Regel keine Winblows Firewall. Klappt das verifiziert das dein Routing.
Das Mikrotik Ping Tool lässt dich sogar die Absender IP angeben im Reiter "Advanced". Hier kannst du dann abwechselnd einmal seine interne WG IP und seine lokale LAN IP angeben um so das Routing aus unterschiedlichen IP Netzen wasserdicht z.B. zum Server usw. zu testen!
Hatte die Subnetze vertauscht, sorry ist korrigiert.
Auch sicherstellen das das IP-Forwarding auf dem Server aktiviert ist.
Auch sicherstellen das das IP-Forwarding auf dem Server aktiviert ist.
Sprich dein WG Client rennt auf dem CRS-326 Switch, richtig?
Mit dessen lokaler LAN IP 192.168.0.250 als Absender IP (Source) im MT Ping Tool sollte im ersten Step alle internen WG Adressen: 10.13.13.1 (Server) und 10.13.13.4 (SXTR) pingbar sein. Ist dem so?
Im zweiten Step (gleiches Source Setting im Ping Tool) sollte auch die lokale LAN IP des SXTR 192.168.123.1 pingbar sein!
Klappt das nicht fehlt ggf. auch hier die statische Route im SXTR auf das 192.168.0.0/24 Netz mit 10.13.13.1 als next Hop. Hast du das geprüft?
Den identischen Test machst du dann ebenso auf der SXTR Seite.
Falls du in den MTs Firewall Settings hast oder iptables, nftables auf dem Debian aktiv ist beachte auch diese.
IP Forwarding (Routing) im Debian Host hast du in der /etc/sysctl.conf mit net.ipv4.ip_forward=1 aktiviert? 🤔
Mit dessen lokaler LAN IP 192.168.0.250 als Absender IP (Source) im MT Ping Tool sollte im ersten Step alle internen WG Adressen: 10.13.13.1 (Server) und 10.13.13.4 (SXTR) pingbar sein. Ist dem so?
Im zweiten Step (gleiches Source Setting im Ping Tool) sollte auch die lokale LAN IP des SXTR 192.168.123.1 pingbar sein!
Klappt das nicht fehlt ggf. auch hier die statische Route im SXTR auf das 192.168.0.0/24 Netz mit 10.13.13.1 als next Hop. Hast du das geprüft?
Den identischen Test machst du dann ebenso auf der SXTR Seite.
Falls du in den MTs Firewall Settings hast oder iptables, nftables auf dem Debian aktiv ist beachte auch diese.
IP Forwarding (Routing) im Debian Host hast du in der /etc/sysctl.conf mit net.ipv4.ip_forward=1 aktiviert? 🤔
Beim Ping auf dem Server immer die Quelladresse/Interface angeben.
Und die Firewalls der Zieldevices customizen wenn diese ICMP aus fremden Subnetzen blocken, Winblows macht das nämlich per Default.
Und die Firewalls der Zieldevices customizen wenn diese ICMP aus fremden Subnetzen blocken, Winblows macht das nämlich per Default.
Des weiteren sollte auf dem Default GW des 192.168.0.0/24 Netzes eine statische Route zum Switch gesetzt werden wenn dieser nicht Default GW für die Clients ist.
Netz 192.168.123.0/24
GW 192.168.0.250
Netz 192.168.123.0/24
GW 192.168.0.250
Des weiteren sollte auf dem Default GW des 192.168.0.0/24 Netzes eine statische Route zum Switch gesetzt werden wenn dieser nicht Default GW für die Clients ist.
Guter Punkt! 👍Das ist sicher relevant, da der CRS Switch das .0.0er LAN laut Zeichnung Layer 2 technisch durchreicht an den RB780 und nicht routet.
Im RB780 müssen dann zwingend 2 statische Routen auf das 10.13.13er und das .123.0er Netz konfiguriert sein sofern er das Default Gateway im .0.0er Netz ist.
Das würde man auch merken wenn man von einem .0.0er Client einmal die lokale Wireguard IP des CRS pingt. Scheitert das, fehlen die Routen!
Allerdings müsste ein o.a. Ping von der SXTR Seite auf die CRS LAN IP .0.250 immer klappen, denn der CRS kennt ja alle remoten Routen. Es würde nur Endgeräte im lokalen .0.0er Netz am CRS betreffen und auch den RB780.
sodass jeder peer sein subnet als Allowed hat und nicht das subnet des gegenüber.
Das ist aus Wireguard Konfigsicht FALSCH! Dort MUSS in den Peers bei beiden Mikrotiks als Allowed IPs IMMER die IP des Serves stehen: 10.13.131! Und analog beim den Mikrotik Server Peers immer die des jeweiligen Mikrotik Peer Gegenübers! So wird ein (Wireguard) Schuh draus...
Du warst jetzt schneller aber wir lassen deine ToDos hier stehen....
OK, rekapitulieren wir noch einmal das Ping Verhalten:
- CRS Seite: Ping Tool mit Absender IP .0.250 kann erfolgreich auf alle 10.13.13er WG Interfaces pingen. Ein Ping auf die SXT LAN IP .123.1 scheitert.
- SXT Seite: Ping Tool mit Absender IP .123.1 kann ebenso erfolgreich auf alle 10.13.13er WG Interfaces pingen. Ein Ping auf die CRS LAN IP .0.250 scheitert.
- Server Seite: Ping auf alle 10.13.13er WG Interfaces klappt. Ping auf die SXT LAN IP .123.1 klappt. Ein Ping auf die CRS LAN IP .0.250 scheitert.
Verdächtig ist das der Server selber zwar die SXT LAN Seite .123.1 pingen kann, nicht aber die LAN Seite des CRS. 🤔
Hier solltest du sicherheitshalber nochmals die Peer Einträge aller Beteiligten checken.
Server:
[Interface]
Address = 10.13.13.1/24
ListenPort = 51820
PrivateKey = ----
[Peer]
# peer_SXT
PublicKey = ----
AllowedIPs = 10.13.13.3/32, 192.168.123.0/24
[Peer]
# peer_CRS
PublicKey = ----
AllowedIPs = 10.13.13.4/32, 192.168.0.0/24
Ein wg show zeigt dann die aktiven Peers
Die statischen Routing Einträge auf den Mikrotiks zum jeweiligen remoten LAN IP Netz müssen beide auf die 10.13.13.1er IP des Servers zeigen. Checke das in der Routing Tabelle IP --> Routes.
Führe auch einmal ein Ping mit dem Ping Tool aus indem du die jeweilige WG IP Adresse als Source nimmst und pingst dann das jeweils remote LAN IP Interface.
- CRS Peer: AllowedIPs = 10.13.13.1/32, 192.168.123.0/24
- SXT Peer: AllowedIPs = 10.13.13.1/32, 192.168.0.0/24
Sollte das dann wider Erwarten immer noch nicht gehen kann es ggf. nur eine Firewall Problematik sein.
Verdächtig ist das der Server das CRS LAN Interface nicht pingen aber das SXT LAN Interface sehr wohl.
Das lässt vermuten das irgendetwas auf dem Tunnel Peer CRS <-> Server nicht korrekt ist?! 🤔