Mac OS X Mountain Lion - Bei der DNS-Auflösung wird bei VPN über eine DFÜ-Verbindung die falsche Reihenfolge verwendet


23

Ich verwende ein MacBook mit Mac OS X 10.8.2 und verbinde mich über VPN mit dem Netzwerk meines Unternehmens. Beim Aufbau der VPN-Verbindung über LAN oder WLAN funktioniert alles prima. Wenn ich jedoch eine DFÜ-Verbindung verwende (Huawei HSDPA USB Stick), werden Hostnamen in Anwendungen (z. B. Webbrowser) nicht korrekt aufgelöst. Kommandozeilen-Tools wie host namewerden die IP-Adresse korrekt auflösen, ping namenicht auflösen.

Unter Verwendung von habe scutil --dnsich die DNS-Konfiguration beim Herstellen einer Verbindung über WLAN im Vergleich zum Einwählen gespeichert. Es gibt einen bemerkenswerten Unterschied in der Suchreihenfolge:

connecting using WLAN:

resolver #1
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 6 (ppp0)
  reach    : Reachable,Transient Connection
  order    : 100000

resolver #2
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 6 (ppp0)
  reach    : Reachable,Transient Connection
  order    : 200000

resolver #3
  domain   : local
  options  : mdns
  timeout  : 5
  order    : 300000

resolver #4
  domain   : 254.169.in-addr.arpa
  options  : mdns
  timeout  : 5
  order    : 300200

resolver #5
  domain   : 8.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300400

resolver #6
  domain   : 9.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300600

resolver #7
  domain   : a.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300800

resolver #8
  domain   : b.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 301000

DNS configuration (for scoped queries)

resolver #1
  nameserver[0] : 192.168.1.1
  if_index : 4 (en0)
  flags    : Scoped
  reach    : Reachable,Directly Reachable Address

resolver #2
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 6 (ppp0)
  flags    : Scoped
  reach    : Reachable,Transient Connection

Die ppp0-Verbindung ist die VPN-Verbindung. Wie Sie sehen, sind zwei Server verbunden, die in der Befehlszeile und in Anwendungen korrekt antworten.

Connecting via UMTS:

resolver #1
  nameserver[0] : 139.7.30.126
  nameserver[1] : 139.7.30.125
  if_index : 6 (ppp0)
  reach    : Reachable,Transient Connection
  order    : 100000

resolver #2
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 7 (ppp1)
  reach    : Reachable,Transient Connection
  order    : 100000

resolver #3
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 7 (ppp1)
  reach    : Reachable,Transient Connection
  order    : 200000

resolver #4
  domain   : local
  options  : mdns
  timeout  : 5
  order    : 300000

resolver #5
  domain   : 254.169.in-addr.arpa
  options  : mdns
  timeout  : 5
  order    : 300200

resolver #6
  domain   : 8.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300400

resolver #7
  domain   : 9.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300600

resolver #8
  domain   : a.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300800

resolver #9
  domain   : b.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 301000

DNS configuration (for scoped queries)

resolver #1
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 7 (ppp1)
  flags    : Scoped
  reach    : Reachable,Transient Connection

resolver #2
  nameserver[0] : 139.7.30.126
  nameserver[1] : 139.7.30.125
  if_index : 6 (ppp0)
  flags    : Scoped
  reach    : Reachable,Transient Connection

Diesmal ist ppp1 die VPN-Verbindung und ppp0 ist die UMTS-Verbindung. Aus den Antwortzeiten der Befehle (unter Verwendung des nicht vorhandenen Hostnamens foo.bar.local) schließe ich, dass pingdie erste hostAuflösungskette verwendet wird , wobei als Abfragekonfiguration der Bereich verwendet wird. pingEs dauert 5 Sekunden, bis "Unbekannter Host" hostzurückgegeben wird. Ich gehe davon aus, dass ping in das 5-Sekunden-Timeout des mdns-Resolvers läuft.

Um mein Problem mit den defekten DNS-Lookups beim Einwählen über VPN über Modem zu beheben, muss ich die Reihenfolge der Resolver ändern. Bisher habe ich keinen Weg gefunden, dies zu tun.

Irgendwelche Ideen willkommen.

Antworten:


7

Ich hatte das gleiche Problem auf meinem Mac und nachdem ich es behoben habe, habe ich herausgefunden, dass es durch FortiClient (VPN-Client) verursacht wurde. Auch wenn FortiClient nicht verbunden war, ist das DNS immer noch im scutil enthalten.

Die Lösung für mich war:

scutil
> list ".*DNS"

Dies zeigt Ihnen eine Liste aller DNS-Konfigurationen, die ungefähr so ​​aussehen:

subKey [0] = State:/Network/Global/DNS <br>
subKey [1] = State:/Network/MulticastDNS<br>
subKey [2] = State:/Network/OpenVPN/DNS<br>
subKey [3] = State:/Network/OpenVPN/OldDNS<br>
subKey [4] = State:/Network/PrivateDNS<br>
subKey [5] = State:/Network/Service/forticlientsslvpn/DNS <br>

So überprüfen Sie, ob alle ausgeführt werden: (bis Sie das problematische Problem gefunden haben)

> get key_name
> d.show

… Und um das Problem zu beheben:

> get key_name
> d.remove ServerAddresses
> set key_name

So sah es auf meinem Rechner aus:

> get State:/Network/Service/forticlientsslvpn/DNS 
> d.show
<dictionary> {
  ServerAddresses : <array> {
    0 : 192.168.30.6
    1 : 192.168.30.15
  }
  SupplementalMatchDomains : <array> {
    0 :
  }
  SupplementalMatchOrders : <array> {
    0 : 100000
  }
}
> d.remove ServerAddresses
> d.show
<dictionary> {
  SupplementalMatchDomains : <array> {
    0 :
  }
  SupplementalMatchOrders : <array> {
    0 : 100000
  }
}
> set State:/Network/Service/forticlientsslvpn/DNS
> exit

3

Versuchen Sie, die Reihenfolge der DNS-Einträge im Bereich "Netzwerkeinstellungen" zu ändern:

  1. Öffnen Sie die SystemeinstellungenNetzwerk .

  2. Wählen Sie in der Liste links Ihren Netzwerkdienst aus.

  3. Entsperren Sie den Einstellungsbereich mit dem Schloss in der unteren linken Ecke.

  4. Klicken Sie auf Erweitert und wählen Sie die Registerkarte DNS .

  5. Ändern Sie die Reihenfolge der DNS-Server, indem Sie sie nach oben / unten ziehen.


2
Dies gibt keine Antwort auf die Frage. Wenn Sie einen Autor kritisieren oder um Klarstellung bitten möchten, hinterlassen Sie einen Kommentar unter seinem Beitrag. Sie können jederzeit Ihre eigenen Beiträge kommentieren. Wenn Sie über eine ausreichende Reputation verfügen, können Sie jeden Beitrag kommentieren .
grg

Das ist ein komischer Kommentar. Das Plakat erwähnte nicht, ob er dies in seiner Frage versucht hatte und es könnte relevant und eine einfache Lösung für sein Problem sein. Schwer zu sagen, ohne dasselbe Setup zu verwenden.
db

2
So wie es formuliert ist, wird es als Aufforderung zur Klarstellung geschrieben - Antworten sollten als Antworten geschrieben werden; Die Kommentare sind der am besten geeignete Ort, um eine Klarstellung anzufordern. Diese Antwort befand sich in der Warteschlange von Low Quality Post, und meiner Meinung nach schien der Aktienkommentar am angemessensten zu sein. In der Tat würde eine Umformulierung als Antwort (und das Hinzufügen von Details wie Screenshots und einer korrekt formatierten Liste von Anweisungen) dies zu einer vollständigen und legitimen Antwort machen.
grg

Das ist lächerlich. Bist du Rainman oder was? Es war eine passiv und demütig ausgesprochene Antwort (da es so offensichtlich ist, dass die Person, die die Frage gestellt hat - die ziemlich geschickt zu sein schien - sie wahrscheinlich ausprobiert hatte, aber nur vergessen hatte, sie in der Frage zu erwähnen). Und wenn Sie meine Vorschläge selbst ausprobiert hätten, würden Sie feststellen, dass höchstwahrscheinlich keine weiteren Schritte über die darin enthaltenen Schritte hinaus (Systemeinstellungen -> Netzwerk) für jemanden erforderlich waren, der über die entsprechenden Kenntnisse des OP verfügt.
db

Wie gesagt, das ist einfach meine Meinung. Ich war übrigens nicht derjenige, der Sie herabgestimmt hat. Ich habe Ihre Antwort so bearbeitet, dass sie weitere Details zu den Schritten enthält. Sie können die Bearbeitung jederzeit rückgängig machen, wenn Sie der Meinung sind, dass sie unangebracht war.
grg

2

Ich habe eine Problemumgehung gefunden: Ihr VPN-DNS wird weiterhin ignoriert, und es wird nur 3G-Dongle-DNS verwendet. Das Hinzufügen Ihres VPN-DNS zur Liste unter der 3G-Schnittstelle reicht jedoch aus. Das Hauptproblem besteht darin, dass der 3G-Konnektivitätsmanager die Konfiguration jedes Mal überschreibt Wenn Sie auf Verbinden klicken, benötigen Sie einen Konnektivitätsmanager, um Radio auf dem 3G-Dongle zu aktivieren. Daher habe ich beide Lösungen in einer Lösung kombiniert:

  1. Stellen Sie eine Verbindung zu Ihrem VPN her und notieren Sie sich Ihren DNS (ich habe 2 auf der Liste). Sie können dies in den Netzwerkeinstellungen → Erweitert → Registerkarte DNS überprüfen. VPN trennen. Sie müssen eine VPN-Verbindung herstellen, da DNS bei der Verbindung dynamisch zugewiesen wird.

  2. Verbinden Sie sich mit Ihrem 3G und machen Sie dasselbe: Schreiben Sie den DNS auf Papier. Dann trennen Sie 3G.

  3. Gehen Sie zu Netzwerkeinstellungen → Klicken Sie auf 3G-Schnittstelle → Erweitert → Registerkarte DNS und klicken Sie unter DNS-Tabelle (die normalerweise leer ist, wenn Sie nicht verbunden sind) auf '+'. Fügen Sie alle DNS-Server hinzu (die von 3G zuerst und später VPN). Klicken Sie auf OK und Übernehmen.

  4. Von nun an , zu 3G, nur schließen Sie USB anschließen und warten , bis Sie die 3G - Abdeckung haben (Sie müssen 3G - Konnektivität Manager öffnen), aber nicht verwenden Sie das mitgelieferte Verbindungsmanager zu verbinden. Wenn die Verbindung automatisch hergestellt wird, gehen Sie zu den Einstellungen und deaktivieren Sie dieses Häkchen. Sie müssen , dass Manager nur Radio einzuschalten auf dem USB - Dongle, sonst nichts.

    Wenn Sie in Ihrem 3G-Manager auf "Verbinden" klicken, wird die Konfiguration auf Ihrer 3G-Schnittstelle überschrieben, und Sie müssen Schritt 3 erneut wiederholen.

  5. Gehen Sie zu Netzwerk → Einstellungen und klicken Sie auf die 3G-Schnittstelle. Klicken Sie dann auf Verbinden. Die Verbindung zu Ihrem 3G wird über die konfigurierten DNS-Server hergestellt (anstatt dynamisch empfangen zu werden), die sowohl das "öffentliche" DNS als auch Ihr VPN-DNS enthalten.

  6. Stellen Sie eine Verbindung zu Ihrem VPN her. Es wird wie erwartet funktionieren.

Sei dir nur bewusst, dass:

  • Wenn sich Ihr VPN-DNS ändert, müssen Sie es manuell ändern. Dies kann auf einfache Weise unter Netzwerk → VPN-Schnittstelle w Erweitert → Registerkarte DNS überprüft werden, da Ihr VPN-DNS der Schnittstelle weiterhin dynamisch zugewiesen wird (obwohl dies von OS X ignoriert wird).

  • Wenn sich Ihr 3G-DNS ändert (unwahrscheinlich), müssen Sie es auch manuell ändern. Wenn etwas schief geht und Sie nicht navigieren können, müssen Sie Ihren 3G-Konnektivitätsmanager durchgehen, auf "Verbinden" klicken und sehen, welche DNS dynamisch zugewiesen werden. Dazu müssen Sie zu Schritt 3 zurückkehren und sie neu konfigurieren.


2

Ich hatte lange das gleiche Problem, aber jetzt hatte ich Zeit, eine Lösung zu finden, die für mich funktioniert. Ich habe die Reihenfolge des DNS-Servers nicht geändert, verwende jedoch permanent den DNS-Server hinter dem VPN.

  1. Verbindung über DFÜ.

  2. Stellen Sie die VPN-Verbindung her und kopieren Sie die DNS-Server-IPs und die Suchdomäne über VPN-Verbindung → Erweitert → DNS.

  3. Trennen Sie die VPN-Verbindung.

  4. Pingen Sie <name>oder <hostname>von Ihrem VPN-Server und notieren Sie die IP.

  5. Trennen Sie die DFÜ-Verbindung.

  6. Duplizieren Sie die DFÜ-Verbindung (z. B. "3G für VPN").

  7. Geben Sie die IP-Adressen und die Suchdomäne auf der Registerkarte DNS der DFÜ-Verbindung ein. Sie werden dauerhaft gespeichert und verwendet.

  8. Stellen Sie über die neue DFÜ-Verbindung eine Verbindung her.

  9. Jetzt haben Sie keinen Zugriff auf die Nameserver (da diese durch das VPN gesichert sind) - Sie müssen die Serveradresse der VPN-Verbindung bearbeiten. Ersetzen Sie den Host durch die IP.

  10. Stellen Sie eine Verbindung über eine VPN-Verbindung her und Sie sollten in der Lage sein, diese zu verwenden.

Hinweis: Im Allgemeinen ändern sich die Hostnamen nicht, die IP-Adressen jedoch. Also, wenn es eines Tages nicht funktioniert, machen Sie die Schritte noch einmal ...


Hallo Alexander, das klang nach einem vielversprechenden Ansatz. Ich hatte jedoch kein Glück, obwohl die Reihenfolge der DNS-Resolver ziemlich gut aussah. Muss nochmal bei unserer IT nachfragen.
user1248552

1

Was du gesagt hast, gab mir einen Hinweis, also habe ich die DNS-IP in der VPN-Verbindung zur DNS-Liste in der Hauptverbindung hinzugefügt (nichts Besonderes, ich benutze nur die grafische Oberfläche für Netzwerkeinstellungen.) Ich bin mir nicht sicher, ob du welche verwendest mit denen wir es zu tun haben ist anders, aber es hat bei mir funktioniert.


1

Dies geschieht immer noch in 10.13.0

Ich habe einen Fehlerbericht mit Apple geöffnet. Es ist nicht normal, dass "ping internalhostname" funktioniert, aber "host internalhostname" oder "nslookup internalhostname" schlagen bei Split-Tunnel-VPNs (Cisco IPSec-basiert oder IKEv2) fehl.

Wie einige bemerkt haben, können Cisco IPsec-Verbindungen sowie IKEv2-Verbindungen im Gegensatz zu L2TP / IPsec nicht mit "Dienstreihenfolge festlegen" priorisiert werden.

Ein weiterer Punkt, den ich ansprechen möchte, ist, dass Cisco IPSec- oder IKEv2-VPNs mit geteiltem Tunnel in ihren erweiterten Einstellungen keine DNS-Server oder Suchdomänen anzeigen, obwohl diese Informationen mit "scutil --dns" angezeigt werden. L2TP / IPsec-VPNs zeigen diese Informationen einwandfrei an.

Es muss etwas geben und Apple muss eine Erklärung / Korrektur geben.


Ich stelle fest, dass dies derzeit bei macOS Ende 2017 der Fall ist. Ein aufgeteilter DNS, der für eine Domain konfiguriert ist, wird nicht berücksichtigt. Ich führe die scutil --dnsobigen Befehle aus und es scheint, dass der DNS aus dem VPN immer der letzte ist und nicht für die Suchdomäne verwendet wird, auch wenn er richtig eingestellt ist.
mcdado

0

Funktioniert nicht in Lion / Mountain Lion, da der lokale DNS-Server immer anstelle des DNS-Servers des Remotenetzwerks verwendet wird, auch wenn Split DNS im VPN-Router korrekt eingerichtet ist.

Wenn Sie jedoch einen Cisco ASA IPSEC-Router verwenden, können Sie die Verwendung der Remote-DNS-Server erzwingen, wenn Sie eine VPN-Verbindung herstellen:

Wenn Sie Cisco ASDM verwenden, gehen Sie zu Konfiguration> Netzwerkzugriff (Client)> Gruppenrichtlinien> (Ihre VPN-Gruppe für OSX / iPhones)> Erweitert> Split-Tunneling

Dort festgelegt: DNS-Namen (Deaktivieren Sie "Erben" und definieren Sie die internen DNS-Domänennamen, z. B. myoffice.local).

Speichern Sie es und vergessen Sie nicht, es für die zukünftige Verwendung im Flash zu speichern.

Wenn Sie die IOS-Befehlszeile verwenden, legen Sie Folgendes fest:

group-policy <your-tunnel-group-name> attributes
 split-dns value myoffice.local
 split-tunnel-all-dns enable`

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.