Migration dd-wrt --> pfsense / Wireguard-spinnt rum

Hi,
ich bin diese Woche von dd-wrt auf pfsense umgestiegen. Hauptgrund war, dass ich zwei Internetleitungen redundant nutzen wollte (und paar andere Sachen noch).
Leider habe ich nun ein grosses Problem mit meinem bisherigen VPN-Setting, dass ich nicht mehr gleich zum Laufen bringen und so für meine Frau und Tochter nicht mehr praktikabel ist - der berühmte WAF…

Netzwerk-Setup

  • pfSense als Haupt-Router. 192.168.1.1
  • Hardware hat 6 LAN-Ports
  • → zwei WAN-Verbindungen (cable und DSL)
  • → ein Bridge-Interface über 4 Ports für das gesamte Heimnetzwerk (keine VLANs) → 192.168.1.0/22
  • WireGuard-Server auf einem Docker-Container hinter dem Router gibt Zugang ins Heimnetz (und Internet). 192.168.1.195 (VIP eines keepalived-Clusters)
  • von aussen erreichbar über dns64-ip und port forwarding
  • alle Services (Nextcloud, Bitwarden, Paperless etc. pp) sind nur lokal im Homelab erreichbar unter einer home64.de-domain
    ==> das lief unter dd-wrt reibungslos und diente dazu mit unseren Handys überall intern Zugriff zu haben und geschützt ins Netz zu gehen. Die WG-Verbindung auf den Handys war einfach immer an.

Seit der Migration geht das nicht mehr beim Wechsel von 5G zu WLAN (und umgekehrt) bzw. wenn beides gleichzeitig an ist. Man kommt dann nicht ins Internet.

Ich habe u.a. den DNS-Resolver auf pfSense mit einem Host-Override eingerichtet, um ***.dns64.de im Heimnetz auf die interne IP des WG-servers 192.168.1.195 umzuleiten.
Das hat es aber nicht gelöst.
Der WG-Tunnel muss (ohne irgendeine Änderung) neu gestartet werden, dann geht es jeweils, wenn entweder 5G oder WLAN an ist. Wenn man wechselt, muss man wieder neu starten, dann geht es auch. (aber das hat eben keinen einen WAF=0 bei meinen Damen!). Wenn beides an ist, geht es nicht.

Ich habe jetzt +4h alles mögliche durchprobiert auf pfsense (Rules, NAT, alles mögliche) auf den clients, selbst auf dem Server, der ja lief/läuft. Habe Verbindungen ganz neu erstellt, DNS-Server-Einstellungen aller Art probiert und bin völlig durch. Auch ChatGPT hab ich sogar probiert - offenbar einfach zu blöd für das Setting auf pfsense. :frowning: :sob:
Ich bin eigentlich sicher, dass es im Grunde ein DNS-Thema ist, weil stand-alone geht es ja jeweils! Aber ich bin im Thema Netzwerk eigentlich nicht sehr fit, das war schon im dd-wrt immer Horror, wenn was nicht lief :frowning:

Hat jemand so ein Setting oder kann mir einfach so aus dem Kopf helfen? :wink:
Ich wäre sehr darauf angewiesen, weil die Mädels morgen wieder ins Büro/Schule müssen…
Sonst muss ich den alten Router wieder ranhängen.

Moin, ist schon ziemlich wuselig, was du da geschrieben hast. Aber was soll der DNS-Rewrite auf den WG-Server bringen? Und den WG intern im LAN laufen zu haben, ist auch unlogisch. Zumal du jetzt mit pfSense den WG auch einfach da drauf machen könntest.

Wie gesagt, unter dd-wrt lief es.
Der Grund, wieso der WG-server auf Docker und im Netz lief war, dass mein router selbst als wg-client an einen VPS-Server im Netz angehängt ist (für policy-based vermeidung von geoblocking). wg-client und server parallel auf dem dd-wrt zu betreiben war mir zu komplex, deshalb den incoming-traffic auf einen docker-wg gelegt.
(Die Verbindung der pfsense auf den geoblock-server im Netz habe ich, das ist kein Problem gewesen)

Ich bin eigentlich davon ausgegangen, dass der Handy-Client, wenn er im WLAN ist halt trotzdem ne Schlaufe dreht ins Netz. Das ist aber für die uses cases meiner Damen völlig egal speedmässig. Seit die pfsense läuft, scheint da aber irgendetwas nicht mehr zu funktionieren.
Aus Beobachtung/try&error habe ich dann ich intern eben direkt auf den docker-wg leiten könnte, ohne die Schlaufe durchs Netz → deshalb der override.
Der geht offenbar auch (ich kann ja per WLAN connecten), aber löst halt das grundsätzliche Problem nicht…

Wenn ich den incoming-tunnel auch direkt auf die pfsense lege, dann kann ich wireguard immer anlassen aufm handy?

Update: Habe es hinbekommen mit dem Tunnel direkt auf der pfsense. Hat noch ein paar Hürden, wenn man dual unterwegs ist und auch sonst an den Einstellungen viel verstellt hat, aber am Schluss läuft es jetzt…

Also Problem behoben?
Dann bitte Post entsprechend kennzeichnen

Also wie du es geschafft hast, dass die Smartphones aus dem WLAN der pfsense eine Wireguard-Verbindung zur DynDNS-Adresse der pfsense herzustellen, durch die auch Traffic geht, würde mich interessieren. Bei mir geht das nämlich nicht.
Die Verbindung wird seitens des Smartpones zwar als aufgebaut angezeigt, also ganz oben rechts ist der kleine Schlüssel zu sehen, aber die pfsense zeigt keine aktive Verbindung an und das Smartphone auch nur ausgehenden aber keinen eingehenden Transfer.


Also falls das bei dir anders aussieht, dann würde es mich sehr interessieren, wie du das geschafft hast.

Das wird wieder das bekannte Hairpin-NAT-Thema sein.

Hi

tja, ich bin jetzt sehr verunsichert.
Ich habe den WG-Tunnel auf der pfsense zuerst auch nicht hinbekommen, dann bin ich genau nach Dennis’ Video vorgegangen (sogar mir dem web-configurator). Im Vergleich dazu musste ich noch die IP des Clients anpassen und habe dann den DNS auf mein pi-hole umgestellt. Ich war der Meinung, dass ich dann alle Tests gemacht habe und es sowohl mit WLAN als auch ohne gelaufen wäre. Also Internet und interne Adressen.

Anschliessend habe ich aber die verwendeten IPs/Ports überall angepasst, weil ich dem web-config da auch nicht komplett vertraue.
Jetzt bin ich tatsächlich auch wieder dort, dass die wg-Verbindung zwar aufgebaut wird und ich auch ins Internet komme, aber die internen Seiten gehen nicht. Pingen kann ich aber lustigerweise.

Habe jetzt auch noch getestet, wenn ich 5G aus habe und nur WLAN an. Dann sieht es aus wie bei Dir. Kein Handshake und keine bilateralen Daten.
(das klappt aber nach wie vor, wenn ich auf den docker-wg gehe mit internem DNS-Resolver-Eintrag und pi-hole als DNS)

Kann mal jemand global antworten, ob ein Setup möglich ist, in dem man wg immer an lassen kann?

Bin jetzt kurz davor noch einen Proxy dazwischen zuschalten, damit die pfsene dann wirklich glaub, dass da externer Traffic kommt.

Das könnte auch einfach nur an der MTU liegen. Das Problem hatte ich auch und war weg nach Absenken der MTU auf 1420 (nur IPv4) und weniger als 1412 (Ipv4 und IPv6 im Tunnel). WireGuard MTU Size 1412 – Best Practices IPv4/IPv6 – MTU Berechnen.

Edit: in meinem Ubuntu Notebook musste ich die MTU sogar auf 1400 senken, damit ich per https mein pfsense- und Nextcloud-Webinterface ereichen kann. Bei Android ging es mit 1420. Keine Ahnung warum Ubuntu sich da anders verhält als Android.

Also am MTU lag es wohl nicht, sondern schon an den Regeln:

Jetzt habe ich es so hinbekommen, dass ich 5G/WLAN an haben kann und den wg-tunnel auch aktiv.
Ich komme ins Heimnetz und ich komme ins Internet. Allerdings habe ich noch nicht rausgefunden, was da genau passiert, ich erhalte nämlich auf ip.me und iplocation.net unterschiedliche Feedbacks zu meiner IP, also ob ich über mein Netz komme oder via 5G. Teilweis im sekundenabstand voneinander abweichend! Hab ich so auch noch nie gesehen, aber lässt sich ausstellen mit killswitch im wireguard.

Einstellungen:
Wireguard-Server 172.18.0.1/24
Handy 172.18.0.2/32
Nameserver 192.168.1.59 (mein pi-hole)
Allowed IP 0.0.0.0/0
pfsense:
Unter NAT/Outbound:
172.18.0.0 >> 192.168.0.0, (Protokoll/Ports: any), Translation: meine LAN-Bridge
172.18.0.0 >> WAN-Out, any
Firewall Rules:
WAN-Gruppe, PASS; IPv4/UDP, eingehend auf wg-Port
wg-Tunnel, Pass, Ipv4, any, any

Du musst vielleicht ein bisschen rumprobieren, weil ich aufgrund des Dual-Wans vielleicht mit anderen Interface/Gateway-Gruppen arbeite.

Im DNS-Resolver unter outgoing Network Interfaces den wg-tunnel auch wählen.
Unter Advanced / Firewall&NAT habe ich Pure NAT an und die NAT Reflection.

Ich hoffe, das sind die relevanten. Hab so viel rumprobiert, dass noch andere Einstellungen ne Rolle spielen könnten…

Dieses NAT ins LAN brauchst du gar nicht unbedingt, da ja die LAN-Geräte sowieso als Default-GW die pfSense haben.
Das mit den wechselnden IPs könnte mit asynchronem Routing zusammenhängen, dass er mal so, mal so ins Internet geht auf der pfSense…

Also in meinem Case „brauch“ ich es wohl. Hat ja genug try&error dahinter jetzt. Geht vielleicht anders/besser, aber Durchbruch ist mal ok.
Habe meine Damen jetzt auch drauf.
Damit aber gesehen, dass die pi-holes wohl noch keine richtige Wirkung entfalten über den Tunnel, Seiten sind zugeballert mit Werbung…