WireGuard Multisite-to-Multisite VPN in Debian

Status
Für weitere Antworten geschlossen.

Bob.Dig

Commodore
Registriert
Dez. 2006
Beiträge
4.110
Ich möchte drei Sites (Hosts=Proxmox VEs) untereinander mit einem einzigen WG-Interface verbinden, sprich jeder soll mit jedem verbunden sein über wg0. Dazu habe ich via apt WireGuard installiert. Das Problem ist nun, dass nur ein Host mit den beiden anderen verbunden ist, die anderen zwei nur zu ihm und nicht zu einander. Dabei ist die Config auf allen dreien nahezu identisch.

Bevor ich nun anfange diese zu posten, kennt vielleicht jemand schon das Problem?

Bin nur Laie und Linux Noob
 
Lösung
riversource schrieb:
Ich versteh kein Wort. Vielleicht erklärst du das doch besser anhand deiner Konfigs.
Ok, here we go, exemplarisch eine Site
Code:
[Interface]
Address = 10.159.226.1/24
SaveConfig = true
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o vmbr0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o vmbr0 -j MASQUERADE
ListenPort = 51765
PrivateKey = PrivateKey

[Peer]
PublicKey = PublicKey
PresharedKey = PresharedKey
AllowedIPs = 10.159.226.10/32

[Peer]
PublicKey = PublicKey
PresharedKey = PresharedKey
AllowedIPs = 10.159.226.2/32
Endpoint = Endpoint
PersistentKeepalive = 25
Ein Endpoint ist dynamisch. Hier scheint WG aber immer wieder die IP von sich aus in die Config...
Also du hast 3 Tunnel laufen und das Routing umgebogen oder hast du nur 2 Tunnel laufen und einer der Hosts agiert als Router?

btw die Hosts hängen alle an einer festen IP im RZ und das ist nur ein zusätzlicher Security Layer, oder?
 
Sollte eigentlich kein Problem sein. Man kann mit Wireguard auch problemlos ein "Dreieck" bauen. Man muss nur aufpassen, dass man die Subnetze für die Transfernetze und die Heimnetze sauber auseinander hält.
 
  • Gefällt mir
Reaktionen: Bob.Dig, JumpingCat, redjack1000 und eine weitere Person
klapproth schrieb:
Also du hast 3 Tunnel laufen und das Routing umgebogen oder hast du nur 2 Tunnel laufen und einer der Hosts agiert als Router?
Ich habe kein Routing umgebogen und nur einen Tunnel nach meinem Verständnis zu WireGuard, wobei es faktisch wohl drei sind.
Ergänzung ()

riversource schrieb:
Sollte eigentlich kein Problem sein. Man kann mit Wireguard auch problemlos ein "Dreieck" bauen.
Genau, ich will ein Dreieck und dadurch geroutet wird nichts, nur die Hosts sollen direkt miteinander sprechen. Es soll ein PVE Cluster werden.
 
Zuletzt bearbeitet:
Bob.Dig schrieb:
Genau, ich will ein Dreieck und dadurch geroutet wird nichts, nur die Hosts sollen miteinander sprechen.
Dann muss der Datenverkehr aber geroutet werden.

Bob.Dig schrieb:
Ich habe kein Routing umgebogen und nur einen Tunnel nach meinem Verständnis zu WireGuard, wobei es faktisch wohl drei sind.
Ich versteh kein Wort. Vielleicht erklärst du das doch besser anhand deiner Konfigs.
 
riversource schrieb:
Ich versteh kein Wort. Vielleicht erklärst du das doch besser anhand deiner Konfigs.
Ok, here we go, exemplarisch eine Site
Code:
[Interface]
Address = 10.159.226.1/24
SaveConfig = true
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o vmbr0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o vmbr0 -j MASQUERADE
ListenPort = 51765
PrivateKey = PrivateKey

[Peer]
PublicKey = PublicKey
PresharedKey = PresharedKey
AllowedIPs = 10.159.226.10/32

[Peer]
PublicKey = PublicKey
PresharedKey = PresharedKey
AllowedIPs = 10.159.226.2/32
Endpoint = Endpoint
PersistentKeepalive = 25
Ein Endpoint ist dynamisch. Hier scheint WG aber immer wieder die IP von sich aus in die Config einzutragen? Habe ich wieder herausgelöscht. Keine Ahnung, ob ich "SaveConfig = true" wirklich brauche. Bis jetzt hat sich aber die dynamische IP auch noch nicht geändert.
Ergänzung ()

Oops, ist höchstwahrscheinlich ein Firewall-Problem auf einem Host. Denke, ich hab das Problem also gefunden.
Wenn jemandem noch was im Allgemeinen zur Config aufgefallen ist, ruhig sagen. Ich melde mich nach der Firewallgeschichte wieder.
 
Zuletzt bearbeitet:
Bei so einem Szenario darfst du natürlich kein NAT machen. Wie kommst du denn darauf? Warum sind die IPs so ungleichmäßig vergeben? Warum hat die Address /24, die AllowedIPs aber /32? Das macht Routing Kuddel Muddel. Der erste Peer braucht natürlich auch einen Endpoint, im Zweifel eine dyndns Adresse, die dann auch in Wireguard regelmäßig aktualisiert werden muss (siehe OpenWRT Scripte). Persistent KeepAlive kannst du in dem Szenario nicht verwenden, die drei Peers müssen alle über öffentliche IPs verfügbar sein.

Ich denke, dass du auch Subnetze über deine Tunnel routen musst, um dein Ziel zu erreichen.
 
riversource schrieb:
Bei so einem Szenario darfst du natürlich kein NAT machen. Wie kommst du denn darauf?
Meinst Du diese beiden Lines? Die habe ich nur mit kopiert, ohne zu wissen, was sie machen.
Code:
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o vmbr0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o vmbr0 -j MASQUERADE
Beim Rest verstehe ich deine Skepsis nicht wirklich.
Ergänzung ()

riversource schrieb:
Ich denke, dass du auch Subnetze über deine Tunnel routen musst, um dein Ziel zu erreichen.
Nein, wie gesagt, die drei Hosts müssen nur untereinander direkt kommunizieren können, mehr nicht.
Ergänzung ()

Problem ist gelöst, alle Handshakes sind on, ping geht in alle Richtungen.
Nun müsste die Config nur noch bereinigt werden, sprich die NAT-Regeln raus, also die kompletten zwei Lines?
Und ggf. dieses "SaveConfig = true"?
Ich finde das natürlich raus, wenn ich es einfach versuche, aber sachdienliche Kommentare sind gern gesehen. ;)
 
Zuletzt bearbeitet:
Bob.Dig schrieb:
Meinst Du diese beiden Lines? Die habe ich nur mit kopiert, ohne zu wissen, was sie machen.
Und deshalb sage ich immer: Niemals blind eine Anleitung befolgen. Lesen, verstehen, auf die eigene Situation adaptieren, umsetzen.

Bob.Dig schrieb:
Problem ist gelöst, alle Handshakes sind on, ping geht in alle Richtungen.
Und was hast du geändert? Und ein Ping bedeutet noch nicht, dass deine Services funktionieren.

Bob.Dig schrieb:
Nein, wie gesagt, die drei Hosts müssen nur untereinander direkt kommunizieren können, mehr nicht.
Und die Dienste, die du erreichen willst, lauschen auch alle auf einem dynamischen VPN Interface? Sicher?
 
riversource schrieb:
Und was hast du geändert? Und ein Ping bedeutet noch nicht, dass deine Services funktionieren.
Die Firewall auf dem Host, genauer gesagt gab es dort an anderer Stelle eine Regel, die den WireGurad Port woanders hingeleitet hatte, ein Flüchtigkeitsfehler.

riversource schrieb:
Und die Dienste, die du erreichen willst, lauschen auch alle auf einem dynamischen VPN Interface? Sicher?
Werde ich sehen, aber vermutlich ja. PVE möchte bei der Clustereinrichtung direkt die IPs genannt bekommen. Da ich das aber noch nie gemacht habe, werde ich mich überraschen lassen, aber nicht mehr heute. WG auf Linux alleine hat mich Stunden gekostet.

Was iptables angeht, ich vermute nun, dass ich nur den zweiten Part nicht brauche?
iptables -t nat -A POSTROUTING -o vmbr0 -j MASQUERADE

Wäre nett, wenn Du was dazu sagen könntest. Ich nutze für gewöhnlich nur meine pfSense und klicki bunti.
 
klapproth schrieb:
Darauf würde ich keinen HA Service setzen
HA soll auch nicht laufen, es soll nur einfacher managebar sein, also alles unter einer Adresse.
Ergänzung ()

@riversource Also wenn Du mir mit iptables hilfst, bekommst Du die Lösung gutgeschrieben. ;)
Ergänzung ()

riversource schrieb:
Und die Dienste, die du erreichen willst, lauschen auch alle auf einem dynamischen VPN Interface? Sicher?
Ok, Proxmox akzeptiert das WireGuard Interface nicht. Aber wie macht man es dann via WireGuard?
 
Zuletzt bearbeitet:
Bob.Dig schrieb:
Werde ich sehen, aber vermutlich ja. PVE möchte bei der Clustereinrichtung direkt die IPs genannt bekommen.
Bedenke, dass nach einem Reboot die VPN Interfaces immer erst recht spät verfügbar sind. Bis dahin hat Proxmox vielleicht schon aufgegeben, die IPs zu suchen.

Bob.Dig schrieb:
Was iptables angeht, ich vermute nun, dass ich nur den zweiten Part nicht brauche?
iptables -t nat -A POSTROUTING -o vmbr0 -j MASQUERADE
Ja, die ACCEPT Regel kannst du drin lassen.
 
  • Gefällt mir
Reaktionen: Bob.Dig
riversource schrieb:
Bedenke, dass nach einem Reboot die VPN Interfaces immer erst recht spät verfügbar sind. Bis dahin hat Proxmox vielleicht schon aufgegeben, die IPs zu suchen.
Obwohl mein Vorhaben für mich immer weniger Sinn macht, hab ich doch Blut geleckt. ;)

Die von mir verlinkte Hilfe beschreibt ja weitere Methoden zur Einrichtung von WireGuard. Insbesondere die zweite könnte vielleicht doch den gewünschten Erfolg bringen?
Ergänzung ()

Yupp, sieht so aus, als dass die ganze Arbeit doch nicht umsonst war. Die Einrichtung scheint möglich.

Capture.PNG
 
Zuletzt bearbeitet:
Bob.Dig schrieb:
Die von mir verlinkte Hilfe beschreibt ja weitere Methoden zur Einrichtung von WireGuard. Insbesondere die zweite könnte vielleicht doch den gewünschten Erfolg bringen?
Das musst du ausprobieren, ob auch im Reboot-Fall das Setup jederzeit wieder stabil funktioniert. Wenn Proxmox vor den VPN Interfaces startet, dann könnte sein, dass es das VPN Interface nicht mehr aufnimmt in seine Suche.
 
riversource schrieb:
Wenn Proxmox vor den VPN Interfaces startet, dann könnte sein, dass es das VPN Interface nicht mehr aufnimmt in seine Suche.
Da mache ich mir jetzt weniger Sorgen, da die config nun statisch in "interfaces" ist. Überlege, ob ich Proxmox-like noch eine Bridge dazwischen schalte, wobei ich dafür noch keinen Sinn sehe.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben