Keine DNS Auslösung mit aktiviertem VPN Client sobald der DNS Resolver aktiviert ist



  • @johndo Ist denn in deiner Testumgebung pfSense direkt mit dem Modem verbunden? Wenn nicht, darfst Du private Netze nicht am WAN blocken.



  • @Bob-Dig

    Hi,

    aktuell hängt diese hinter meiner normalen pfsense und hat eine Regel die alles darf. Habe im WAN Interface die beiden Haken rausgenommen, hat aber für meinen Test keinen Unterschied gemacht.

    804bc9cb-9cb3-455b-a9a7-ab80fa749de5-grafik.png



  • Wenn ich nun folgende Einstellungen auf meiner pfsense mache:

    0fba0f4b-2e34-46cd-ac27-a7992d917a8d-grafik.png

    4192498b-e6eb-4d5b-a977-8e035e35bea0-grafik.png

    ecb51fb7-5f9d-4ff6-a042-0b472467dbd3-grafik.png

    5ec693fc-3a2d-40ad-b852-fbfe3c4a3b9a-grafik.png

    e028899b-37f0-4f13-9adf-2c29df142d6c-grafik.png

    Dann funktioniert auch die DNS Auflösung in das Netzwerk hinter dem VPN Client.



  • @johndo pfBlocker hast Du nicht irgendwo installiert? Denn der, genauer PRI1 ausgehend, blockt teilweise leider die Cloudflare IPs. Besser also noch 8.8.8.8 eintragen. Ich weiß auch nicht, ob eine pfSense hinter einer pfSense wirklich ein geeignetes Testszenario sein kann.


  • LAYER 8 Moderator

    Ich glaube dein ganzes Problem kommt von einer völlig anderen Seite.

    Ich würde aber gerne wissen: du schreibst nach Firmware Reset mit Standard Regeln und Standard Setup, also DNS Resolver an etc. geht das mit dem WG VPN Client mit DNS nicht. Wenn du danach in der letzten Bilderstrecke den DNS abschaltest gehts. Mehr war ja da nicht der Unterschied, oder?

    Ich will aber gern noch wissen: Nach Reset -> wie sieht deine Client Konfig auf dem Windows PC aus? DHCP? Wenn ja, welche Einstellungen wurden gepusht? (DNS etc.) und wie sehen die Einstellungen aus, sobald das WG VPN läuft?

    (Beide Male nen ipconfig /all und ein route print)

    Und wie sehen die Client Einstellungen aus, im letzten Modus wenn du DNS abschaltest?

    Meine Vermutung ist hier der gleiche Nervkram von Windows, der auch OpenVPN betrifft und weshalb es seit einiger Zeit in den OVPN Einstellungen den Haken gibt zum Pushen der Option, dass fremde DNSe während des VPNs verboten sind und nur die der Verbindung genutzt werden dürfen. Windows' DNS ist nämlich nicht der Hellste und wenn ein VPN besteht, was selbst per DHCP einen DNS gepusht hat, dann wird der meistens/oft NACH dem lokalen DNS genutzt. In dem Fall also:

    • Du verbindest per VPN
    • du fragst nach einem internen Namen, den nur der DNS der VPN Verbindung kennt weil interne Namen
    • dein System nutzt aber die pfSense die keine Ahnung von dem Namen hat/haben kann
    • du bekommst ein NXDOMAIN o.ä. zurück

    Ohne DNS Resolver der pfSense hat dein Client dann entweder lokal einstellt DNS Server (nicht per DHCP bekommen) oder gar keinen, bekommt per VPN einen zugewiesen und nutzt den dann präferiert. Tadaa, Antwort auf DNS kommt.

    Problem ist da u.a. die Interface Reihenfolge interner-weise bei Windows (die IDs kann man sich via Powershell und Co anzeigen lassen) und wie dann die DNS Abfragen pro Interface präferiert werden. Wenn du die Watchguard VPN Verbindung priorisierst/prio. kannst (weiß nicht ob die als Interface wie OVPN angelegt wird), dann könnte das Problem genauso verschwinden, weil es dann bei aktiver Verbindung präferiert genutzt wird und ansonsten ignoriert.

    Ist wie gesagt meine Vermutung, mit pfSense hat das nur marginal wenig bis nichts zu tun, sondern eher, wie Windows/Clients die DNS Geschichte handeln und mit mehreren DNS Resolvern/Forwardern klarkommen und ihre Queries streuen.
    Wurde bspw. auch unter Linux ziemlich grausam mit systemd-networkd oder NetworkManager oder oder oder, da sich alle Varianten unterschiedlich verhalten und manche ignorieren gepushte DNSe einfach, andere nutzen sie parallel (mal geht's mal nicht) oder manche priorisieren das dann.

    Vielleicht kannst du da ja noch die Infos nachreichen, würde mich interessieren.

    Grüße



  • @Bob-Dig

    Hi,

    habe soeben mal testweise die Firewall direkt ans Modem gehängt, macht aber keinen Unterschied. Habe es nun wieder über die VMWare laufen sonst geht mein internes Netzwerk nicht so ohne weiteres.



  • @JeGr said in Keine DNS Auslösung mit aktiviertem VPN Client sobald der DNS Resolver aktiviert ist:

    Ich würde aber gerne wissen: du schreibst nach Firmware Reset mit Standard Regeln und Standard Setup, also DNS Resolver an etc. geht das mit dem WG VPN Client mit DNS nicht. Wenn du danach in der letzten Bilderstrecke den DNS abschaltest gehts. Mehr war ja da nicht der Unterschied, oder?

    Hi,

    ja, genau. Letztendlich habe ich die pfsense auf Werkseinstellung zurückgesetzt und habe nur das WAN und LAN Interface konfiguriert. Dann habe ich den DNS Resolver abgeschaltet, der ja Standardmäßig aktiviert ist. Danach geht es einwandfrei.

    Mal unabhängig von meinem Watchguard VPN Client. Wenn ich auf meinem Windows Testclient bei abgeschaltetem DNS Resolver mir mittels:

    ipconfig /release
    ipconfig /renew

    eine neue IP Adresse vom DHCP Server meiner pfsense zuweisen lassen. Dann sieht das so aus:

    8146e895-241a-4e70-ad66-0a57b46fd064-grafik.png

    das erklärt auch warum es dann mit dem Watchguard VPN Client funktioniert. Weil nun als DNS Server direkt 1.1.1.1 sowie 1.0.0.1 von meinem Client verwendet wird und die pfsense außen vor ist. Durch die Standardmäßigen aktiven Firewall-Regeln ist das ja auch erlaubt, sprich mein Client kann direkt die DNS Server im Internet erreichen.

    Wenn ich nun auf der pfsense den DNS Resolver wieder aktiviere:

    1176a5ae-f23d-4221-86d3-5d3045a8db05-grafik.png

    und mache auf meinem Windows Client:

    ipconfig /release
    ipconfig /renew

    dann bekomme ich die pfsense als DNS Server eingetragen:

    fbe3bdca-b185-4c33-8ee7-2ea1f059e0f1-grafik.png



  • Hallo zusammen,

    und nun nochmal mit Watchguard VPN Client.

    pfsense DNS Resolver aktiv, Watchguard VPN Client aktiv:

    c07ed1bd-5f99-469e-8267-bba7b9863992-grafik.png

    7ed616e2-93c5-49b8-9ed0-6ee79cfdb2d9-grafik.png

    pfsense DNS Resolver nicht aktiv, Watchguard VPN Client aktiv:

    4338112f-a4fe-44c9-a03a-980cee5be0c4-grafik.png

    1fec8f2d-aed7-429a-abe8-1748cea952c8-grafik.png



  • @Bob-Dig

    Hi,

    habe auch testweise mal nur den DNS Server 8.8.8.8 eingetragen, macht aber keinen Unterschied.



  • @johndo Ich weiß nicht, ob das hier relevant ist, aber dir ist bewusst, dass der Resolver, so wie er bei dir konfiguriert ist, eh nicht die DNS-Server nutzt, die Du eingetragen hast? Dies würde er nur machen, wenn Du auch das Forwarding enablen würdest. Stattdessen ruft er direkt die DNS-Root-Server an. Wie gesagt, keine Ahnung, ob hier relevant.



  • Hi,

    also wenn ich im DNS Resolver meine Domain aus dem Netzwerk hinter dem Watchguard VPN eintrage dann funktioniert es.

    0ded2b23-3bfd-4c9e-83a5-144c07ca33df-grafik.png

    Klar, weil dann der DNS Resolver dafür nicht verwendet wird.

    Letztendlich wäre das für mich so ok, hauptsache es funktioniert. Allerdings würde mich es schon Interessieren warum das Verhalten so ist wie es ist :)


  • LAYER 8 Moderator

    @johndo said in Keine DNS Auslösung mit aktiviertem VPN Client sobald der DNS Resolver aktiviert ist:

    also wenn ich im DNS Resolver meine Domain aus dem Netzwerk hinter dem Watchguard VPN eintrage dann funktioniert es.

    Das KANN gar nicht funktionieren, sorry :)
    Deine pfSense hat keinerlei Verbindung zu 172.21.4.200. Das heißt sämtliche Anfragen an die Domain die du unter Override eingetragen hast gehen ins Leere. Kannst du das via DNS Test (Diagnostics) auf der pfSense bitte mal testen? Oder hast du auf der pfSense NOCH einen Tunnel auch in die Firma? Ansonsten ist es quatsch und der Override kann eigentlich nie klappen.

    Wenn der Resolver der Sense die Adresse nicht auflösen kann hilft eigentlich nur entweder den Forward Mode reinzumachen - dann würde er weiterleiten auf 1.1.1.1 was du unter "General" konfiguriert hast (und auch dann stellt sich mir die Frage, warum das dann plötzlich funktionieren sollte?) oder so wie ich weiter oben schrieb, den TAP Adapter von der Watchguard auf Windows Seite zu präferieren, dass er den als erstes nutzt wenn ein VPN offen ist und auch dessen DNS Server nutzt.

    Welchen er nutzt siehst du ja, wenn du unter dem Command Prompt oder Powershell "nslookup" eingibst, selbst mit VPN offen wird das potentiell der sein, der die Sense via DHCP verteilt hat, weil Windows das mit parallelem Lookup nicht so drauf hat.

    Da der WG VPN Client wohl nix anderes als ein verkapptes OpenVPN ist (wenn ich den Adapternamen sehe), hat er auch genau das Gleiche Problem wie OpenVPN.
    Da könnte u.a. der alte Tipp mit dem MultiHomed DNS helfen, da du ja wie du sagst die WG VPN Config nicht verändert kannst (oder hast du ggf. eine Text Config und kannst da zusätzlich noch was reineditieren?).

    Ansonsten schau mal hier:

    http://woshub.com/dns-resolution-via-vpn-not-working-windows/

    älterer Artikel, der aber genau den Kern trifft, was auch OpenVPN passiert:

    If you are using Split Tunneling (the “Use default gateway on remote network” option is unchecked) for your VPN connection, you can access the Internet from your local network, but you cannot resolve DNS addresses in the remote VPN network (IPv6 disabling does not help here).
    You must understand that Windows sends a DNS query from the network interface, which has the highest priority (lower value of the interface metric). For example, your VPN connection works in the the Split Tunneling mode (you want to access Internet from your LAN and your corporate resources over VPN).

    Mit einem Get-NetIPInterface | Sort-Object Interfacemetric kann man das abfragen, welche ID welches Interface hat. U.a. ist das auch der Grund, warum es manchmal per OpenVPN Probleme gibt, wenn im Unternehmen ein Proxy (Squid) zum Einsatz kommt. Der wird dann nämlich auch gern mal ignoriert, obwohl er automatisch gepusht wird weil Windows die IfIndex berücksichtigen will.

    Man kann aber manuell den Index herunterstufen und damit die VPN Verbindung bspw. auf 10 stellen (meistens haben LAN/Ethernet 25) und das damit über die lokalen Netze stellen, DANN müsste eigentlich auch dein DNS etc. via VPN der "Tonangeber" sein :)


  • LAYER 8 Moderator

    Das runterstufen kurz für dein Beispiel:

    netsh int ip set interface interface="Ethernet" metric=15
    

    oder

    netsh int ip set interface interface="Ethernet0" metric=35
    

    das LAN hochstufen. Würde aber eher das VPN runterfahren, gerade wenn du mehrere LANs/VLAN/Virtuelle Adapter hast, wäre das sonst etwas nervig.

    Bei mir siehts bspw. so aus:

    PS C:\Users\groh> Get-NetIPInterface | Sort-Object Interfacemetric
    
    ifIndex InterfaceAlias                  AddressFamily NlMtu(Bytes) InterfaceMetric Dhcp     ConnectionState PolicyStore
    ------- --------------                  ------------- ------------ --------------- ----     --------------- -----------
    77      vEthernet (WSL)                 IPv6                  1500              15 Enabled  Connected       ActiveStore
    77      vEthernet (WSL)                 IPv4                  1500              15 Disabled Connected       ActiveStore
    16      ProtonVPN                       IPv4                  1500              25 Enabled  Disconnected    ActiveStore
    9       VirtualBox Host-Only Network #2 IPv4                  1500              25 Disabled Connected       ActiveStore
    13      VirtualBox Host-Only Network #4 IPv4                  1500              25 Disabled Connected       ActiveStore
    7       VirtualBox Host-Only Network #3 IPv4                  1500              25 Disabled Connected       ActiveStore
    26      Ethernet                        IPv4                  1500              25 Enabled  Connected       ActiveStore
    27      OpenVPN 1                       IPv4                  1500              25 Enabled  Disconnected    ActiveStore
    8       OpenVPN 2                       IPv4                  1500              25 Enabled  Disconnected    ActiveStore
    19      LAN-Verbindung* 2               IPv4                  1500              25 Enabled  Disconnected    ActiveStore
    25      LAN-Verbindung* 1               IPv4                  1500              25 Enabled  Disconnected    ActiveStore
    9       VirtualBox Host-Only Network #2 IPv6                  1500              25 Enabled  Connected       ActiveStore
    19      LAN-Verbindung* 2               IPv6                  1500              25 Disabled Disconnected    ActiveStore
    7       VirtualBox Host-Only Network #3 IPv6                  1500              25 Enabled  Connected       ActiveStore
    16      ProtonVPN                       IPv6                  1500              25 Enabled  Disconnected    ActiveStore
    13      VirtualBox Host-Only Network #4 IPv6                  1500              25 Enabled  Connected       ActiveStore
    26      Ethernet                        IPv6                  1500              25 Enabled  Connected       ActiveStore
    27      OpenVPN 1                       IPv6                  1500              25 Enabled  Disconnected    ActiveStore
    25      LAN-Verbindung* 1               IPv6                  1500              25 Enabled  Disconnected    ActiveStore
    8       OpenVPN 2                       IPv6                  1500              25 Enabled  Disconnected    ActiveStore
    18      WLAN                            IPv4                  1500              70 Enabled  Disconnected    ActiveStore
    1       Loopback Pseudo-Interface 1     IPv6            4294967295              75 Disabled Connected       ActiveStore
    1       Loopback Pseudo-Interface 1     IPv4            4294967295              75 Disabled Connected       ActiveStore
    

    Da wäre ich ziemlich doof dran, wenn ich VPN priorisieren will und alle "LAN" Arten hochsetzen müsste ^^

    Außerdem: Wenn ihr v4 und v6 übern Tunnel nutzt, nicht vergessen beides runterzustellen für höhere Prio :)



  • Hi,

    das hat funktioniert! Nachdem ich das hier gemacht haben:

    netsh int ip set interface interface="Ethernet" metric=15
    netsh int ip set interface interface="Ethernet0" metric=35

    geht sofort DNS Auflösung.



  • Hi,

    aber wie kann das Problem nun gelöst werden? Muss dann am VPN Server bzw. VPN Client etwas geändert werden das diese Settings automatisch angezogen werden sobald ich mich einwähle?

    Weil eigentlich wäre das ja nicht meine Aufgabe lokal Einstellungen vorzunehmen damit das VPN funktioniert oder?

    Welche Einstellungen wären das den auf einem OpenVPN Server bei der pfsense? Nur das ich mal einen Anhaltspunkt habe welche Seetings das wären.



  • Hi,

    und nochmal zum Verständnis bezüglich meinem Problem. Das heißt der LAN Adapter mit der niedrigsten Metric wird sozusagen auch für die DNS Auslösung verwendet?

    Das heißt mit dieser Einstellung habe ich meinem LAN Adapter der für den VPN Client verwendet wird, eine niedriger Metric vergeben als der LAN Adapter der für mein lokales Netzwerk verwendet wird?


  • LAYER 8 Moderator

    @johndo said in Keine DNS Auslösung mit aktiviertem VPN Client sobald der DNS Resolver aktiviert ist:

    aber wie kann das Problem nun gelöst werden? Muss dann am VPN Server bzw. VPN Client etwas geändert werden das diese Settings automatisch angezogen werden sobald ich mich einwähle?

    Das ist kein VPN Client/Server/Software oder Firewall Problem, das Problem kommt inhärent aus der Art wie Windows seine DNS Server abfrägt. Linux, MAC oder Unixe verhalten sich da je nach installierten Services gleich oder komplett anders.

    Weil eigentlich wäre das ja nicht meine Aufgabe lokal Einstellungen vorzunehmen damit das VPN funktioniert oder?

    Dein VPN funktioniert. Dein Client fragt nur nicht den internen DNS Server, weil dein OS "zu doof" dazu ist, wenn du ihm nicht sagst "VPN geht vor".

    Welche Einstellungen wären das den auf einem OpenVPN Server bei der pfsense? Nur das ich mal einen Anhaltspunkt habe welche Seetings das wären.

    OpenVPN hat da für Windows eine eigene Einstellung, die sich "block outside DNS" nennt. Sobald eine VPN Verbindung aktiv ist, blockt der Client alle Requests an andere DNS Server als die, die von OpenVPN gepusht worden. Ob der WG Client bzw. Server das auch kann, kann ich dir leider nicht beantworten, den kenne ich nicht.

    und nochmal zum Verständnis bezüglich meinem Problem. Das heißt der LAN Adapter mit der niedrigsten Metric wird sozusagen auch für die DNS Auslösung verwendet?

    Nicht ausschließlich aber primär und da Windows den primären bevorzugt und dort seine Queries hinwirft, landet deine Anfrage bei der Firewall die die internen DNS Namen nicht beantworten kann. Ich vermute, dass bei externer Abfrage entweder eine andere IP zurückkommt oder gar nichts (NXDOMAIN) und du dann deshalb keine Antwort vom Dienst bekommst. Ich bin mir nicht sicher aber ich glaube bei externem DNS (also wenn du dir 1.1.1.1 gibst), dann wird ggf. ein lokaler DNS bevorzugt weil "näher dran" oder es wird vielleicht der Request auch via VPN geschickt und schneller beantwortet als von extern so dass dann die Auflösung klappt. Könnte ein Timing Spiel sein. Die pfSense ist eben mit DNS Resolver für dich am Schnellsten erreichbar und gewinnt eigentlich damit fast immer. Eventuell sind aber die DNS Einträge auch interne IPs (die public abrufbar sind), dann könnte es sein, dass der DNS Resolver diese rausblockt (dafür gibts eine Einstellung wegen DNS Injection etc. die man ggf. abschalten könnte wenn es so wäre).

    Da du aber wahrscheinlich den verwendeten DNS Namen und was an IPs zurückkommt nicht posten möchtest, ist das alles nur Spekulation.

    Das heißt mit dieser Einstellung habe ich meinem LAN Adapter der für den VPN Client verwendet wird, eine niedriger Metric vergeben als der LAN Adapter der für mein lokales Netzwerk verwendet wird?

    Wenn du das Spiel mit "netsh" auf dem PC machst, auf dem du ursprünglich das Problem hattest, ja. Dann setzt du damit die Prio für den VPN Adapter runter (auf wichtiger) als das LAN. Da der VPN Adapter aber nicht-eingewählt dann "offline" bzw "disconnected" ist, gilt er wie ein ausgestecktes Kabel einfach gar nicht und wird ignoriert. Somit hat dein LAN trotzdem wieder höchste Prio, du hast nur dein VPN "noch wichtiger" gemacht wenn es verbunden ist, statt es auf dem gleichen Level wie das LAN zu haben. :)



  • Hi,

    super. Danke an alle!

    Ich versuche mal zu klären ob es eine VPN Server Lösung dafür gibt ähnlich wie bei OpenVPN.

    EDIT:
    Das sagt mir wieder man sollte kein Windows verwenden :). Leider gehts bei mir nicht ohne...


  • LAYER 8 Moderator

    @johndo said in Keine DNS Auslösung mit aktiviertem VPN Client sobald der DNS Resolver aktiviert ist:

    Das sagt mir wieder man sollte kein Windows verwenden :). Leider gehts bei mir nicht ohne...

    Dachte ich früher auch (kein Windows mehr verwenden). Inzwischen mit Windows Terminal Beta und Ubuntu/sonstigen Linux in WSL2 ist das anders. Schafft einfach mehr Freiraum für andere Dinge. Die jungen Kollegen werfen sich da gern noch Linux aufs Laptop, die sitzen dann aber auch mal zwischendurch plötzlich 2h und können nicht arbeiten weil irgend ein Update wieder nicht so lief wie geplant und irgendwas plötzlich rumspinnt ;)

    Irgendwas ist eben immer - man nimmt im Alter dann doch den leichteren Weg :D



  • Hab bei meinem VPN-Anbieter folgendes beobachtet, wenn als DNS Server 8.8.8.8 oder 1.1.1.1 genutzt werden, dann beantwortet der VPN Server selbst die Anfragen.


Log in to reply