Mac OS X Mountain Lion – DNS-Auflösung verwendet falsche Reihenfolge bei VPN über DFÜ-Verbindung

Ich verwende ein MacBook mit Mac OS X 10.8.2 und verbinde mich über VPN mit meinem Firmennetzwerk. Beim Aufbau der VPN-Verbindung über LAN oder WLAN funktioniert alles super. Wenn ich jedoch eine DFÜ-Verbindung (Huawei HSDPA USB Stick) verwende, werden Hostnamen in Anwendungen (zB Web-Browser) nicht korrekt aufgelöst. Befehlszeilentools wie host namewerden die IP-Adresse korrekt auflösen, ping namewerden nicht aufgelöst.

Mit scutil --dnshabe ich die DNS-Konfiguration bei Verbindung über WLAN vs. DFÜ gedumpt. 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 können, sind zwei Server verbunden und antworten korrekt auf der Befehlszeile und in Anwendungen.

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 die UMTS-Verbindung. Aus den Antwortzeiten der Befehle (unter Verwendung des nicht vorhandenen Hostnamens foo.bar.local) schließe ich, dass pingdie erste Resolver-Kette verwendet wird, während as hostdie bereichsbezogene Abfragekonfiguration verwendet. pingbraucht 5 Sekunden, um "Unbekannter Host" zurückzugeben, meldet hostsich sofort zurück. Ich nehme an, Ping läuft in das 5-Sekunden-Timeout des mdns-Resolvers.

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

Irgendwelche Ideen willkommen.

Antworten (8)

Ich hatte das gleiche Problem auf meinem Mac und nachdem ich es behoben hatte, habe ich herausgefunden, dass es von FortiClient (VPN-Client) verursacht wurde. Selbst als FortiClient getrennt wurde, erschien sein DNS immer noch im scutil.

Die Lösung war für mich:

scutil
> list ".*DNS"

Dies zeigt Ihnen eine Liste aller DNS-Konfigurationen, die in etwa so aussehen wird:

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>

Um jeden von ihnen zu überprüfen, führen Sie Folgendes aus: (bis Sie den problematischen finden)

> get key_name
> d.show

… und um es zu beheben, führen Sie Folgendes aus:

> get key_name
> d.remove ServerAddresses
> set key_name

So sah es auf meiner Maschine 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

Dies geschieht immer noch in 10.13.0

Ich habe einen Fehlerbericht bei Apple geöffnet. Es ist nicht normal, dass „ping internalhostname“ funktioniert, aber „host internalhostname“ oder „nslookup internalhostname“ bei Split-Tunnel-VPNs (Cisco IPSec-basiert oder IKEv2) fehlschlägt.

Wie einige bemerkt haben, können Cisco IPsec-Verbindungen sowie IKEv2-Verbindungen im Gegensatz zu L2TP/IPsec nicht mit „Set service order“ priorisiert werden.

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

Irgendetwas muss nachgeben und Apple muss eine Erklärung/Korrektur liefern.

Ich finde, dass dies derzeit bei macOS Ende 2017 der Fall ist. Ein Split-DNS, das auf einer Domain konfiguriert ist, wird nicht berücksichtigt. Ich führe die scutil --dnsobigen Befehle aus und es scheint, dass das DNS vom VPN immer zuletzt ist und nicht für die Suchdomäne verwendet wird, selbst wenn es richtig eingestellt ist.

Ich habe eine Problemumgehung gefunden: Ihr VPN-DNS wird immer noch ignoriert und nur 3G-Dongle-DNS wird verwendet, aber das Hinzufügen Ihres VPN-DNS zur Liste unter 3G-Schnittstelle reicht aus … Das Hauptproblem ist, dass der 3G-Konnektivitätsmanager die Konfiguration jedes Mal überschreibt Sie klicken auf Verbinden und benötigen den Verbindungsmanager, um Radio auf dem 3G-Dongle zu aktivieren … also habe ich beide Lösungen in einer gemischt:

  1. Verbinden Sie sich mit Ihrem VPN 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 sich mit VPN verbinden, da DNS bei der Verbindung dynamisch zugewiesen wird…

  2. Stellen Sie eine Verbindung zu Ihrem 3G her und machen Sie dasselbe: Schreiben Sie den DNS auf Papier. Trennen Sie dann 3G.

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

  4. Um von nun an eine Verbindung zu 3G herzustellen, stecken Sie einfach Ihren USB-Stick ein und warten Sie, bis Sie 3G-Empfang haben (Sie müssen den 3G-Konnektivitätsmanager öffnen), aber verwenden Sie nicht den mitgelieferten Konnektivitätsmanager, um eine Verbindung herzustellen. Und wenn es automatisch eine Verbindung herstellt, gehen Sie zu den Einstellungen und deaktivieren Sie dieses Häkchen. Sie brauchen diesen Manager nur , um das Radio im USB-Dongle einzuschalten, 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. Es verbindet sich mit Ihrem 3G über die konfigurierten DNS-Server (statt dynamisch empfangen), die sowohl das "öffentliche" DNS als auch Ihr VPN-DNS enthalten.

  6. Verbinden Sie sich mit Ihrem VPN. Es wird wie erwartet funktionieren.

Seien Sie sich nur bewusst, dass:

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

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

Ich hatte lange Zeit 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, aber ich verwende den DNS-Server hinter dem VPN dauerhaft.

  1. Verbinden Sie sich per Einwahl.

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

  3. Trennen Sie die VPN-Verbindung.

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

  5. Trennen Sie die DFÜ-Verbindung.

  6. Duplizieren Sie die DFÜ-Verbindung (z. B. "3G for VPN" nennen).

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

  8. Verbinden Sie sich über die neue DFÜ-Verbindung.

  9. Jetzt haben Sie keinen Zugriff mehr 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. Verbinden Sie sich über eine VPN-Verbindung und Sie sollten sie verwenden können.

Hinweis: Im Allgemeinen ändern sich Hostnamen nicht, aber IPs können. Wenn es also eines Tages nicht funktioniert, wiederholen Sie die Schritte …

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

Versuchen Sie, die Reihenfolge der DNS-Einträge im Einstellungsbereich „Netzwerk“ zu ändern:

  1. Öffnen Sie SystemeinstellungenNetzwerk .

  2. Wählen Sie Ihren Netzwerkdienst in der Liste auf der linken Seite aus.

  3. Entsperren Sie das Einstellungsfenster 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.

Damit ist die Frage nicht beantwortet. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlassen Sie einen Kommentar unter seinem Post - Sie können Ihre eigenen Posts immer kommentieren, und sobald Sie einen ausreichenden Ruf haben, können Sie jeden Post kommentieren .
Das ist ein seltsamer Kommentar. Der Poster erwähnte nicht, ob er dies in seiner Frage versucht hatte und es relevant und eine einfache Lösung für sein Problem sein könnte. Schwer zu sagen, ohne das gleiche Setup zu verwenden.
Wie es formuliert ist, ist es als Bitte um Klarstellung geschrieben - Antworten sollten als Antworten geschrieben werden; Die Kommentare sind der geeignetste Ort, um eine Klarstellung zu erbitten. Diese Antwort befand sich in der Warteschlange für die Überprüfung von Posts mit niedriger Qualität, und meiner Meinung nach schien dieser Aktienkommentar am angemessensten zu sein. Wenn Sie dies als Antwort umformulieren (und Details wie Screenshots und eine ordnungsgemäß formatierte Liste mit Anweisungen hinzufügen), wäre dies eine vollständige und legitime Antwort.
Das ist lächerlich. Bist du Rainman oder was? Es war eine Antwort, die auf passive und bescheidene Weise ausgedrückt wurde (da es so offensichtlich ist, dass die Person, die die Frage stellte – die ziemlich geschickt zu sein schien – es wahrscheinlich versucht hatte, aber nur vergessen hatte, es in der Frage zu erwähnen). Und wenn Sie meine Vorschläge selbst ausprobiert hätten, würden Sie feststellen, dass für jemanden, der so kompetent ist wie das OP, höchstwahrscheinlich keine weiteren Schritte über die enthaltenen Schritte hinaus (Systemeinstellungen -> Netzwerk) erforderlich waren.
Wie gesagt, das ist einfach meine Meinung. Übrigens war ich nicht derjenige, der dich herabgestimmt hat. Ich habe Ihre Antwort bearbeitet, um weitere Details zu den Schritten aufzunehmen. Fühlen Sie sich frei, die Änderung rückgängig zu machen, wenn Sie der Meinung sind, dass sie unangemessen war.
Das ist ein lächerliches Argument. Sollte eine Antwort auf eine komplizierte Programmierfrage abgelehnt werden, weil sie die Grundlagen der OO-Programmierung nicht erklärt? Ich verstehe die meisten Antworten im Abschnitt über Mathematik nicht, sollten sie abgelehnt werden, weil sie die Grundlagen der Transformation von Integralen nicht durchgehen!??

Was Sie gesagt haben, hat mir einen Hinweis gegeben, also habe ich die DNS-IP in der VPN-Verbindung zur DNS-Liste in der Hauptverbindung hinzugefügt (nichts Besonderes, nur die grafische Oberfläche für Netzwerkeinstellungen verwenden). Umgang ist unterschiedlich, aber bei mir hat es funktioniert.

Funktioniert nicht in Lion / Mountain Lion, aufgrund eines Fehlers, der dazu führt, dass immer der lokale DNS-Server anstelle des DNS-Servers des entfernten Netzwerks verwendet wird, selbst 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 Configuration > Network (Client) Access > Group Policies > (Ihre VPN-Gruppe für OSX/iPhones) > Advanced > Split Tunneling

Dort eingestellt: DNS-Namen (Häkchen bei „erben“ entfernen und die internen DNS-Domänennamen definieren, z. B. myoffice.local) Alle DNS-Lookups durch den Tunnel senden: Auf JA stellen (dies ist die wichtige Einstellung)

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`

Sie können dies beheben, indem Sie die Dienstreihenfolge der Netzwerkverbindungen anpassen. Verschieben Sie VPN an den Anfang der Liste und die Resolver-Reihenfolge folgt.

http://support.apple.com/kb/PH14006


Inhalt des Links unter https://web.archive.org/web/20170828193724/https://support.apple.com/kb/PH14006?locale=en_US gefunden und hier dupliziert:

OS X Mavericks: Ändern Sie die Priorität Ihrer Netzwerkverbindungen
Dieser Artikel wurde archiviert und wird nicht mehr von Apple aktualisiert.

Wenn Sie sich auf verschiedene Weise mit dem Internet oder einem Netzwerk verbinden (z. B. über Wi-Fi oder Ethernet), können Sie die Reihenfolge der Netzwerkanschlusskonfigurationen ändern, die Ihr Computer versucht, wenn er eine Verbindung zum Internet oder Netzwerk herstellt.
Wenn beim Versuch, eine Verbindung herzustellen, mehrere aktive Netzwerkportkonfigurationen vorhanden sind, versucht OS X zuerst die Konfiguration ganz oben in der Liste und dann die anderen Portkonfigurationen in absteigender Reihenfolge.

  • Wähle „Apple“ > „Systemeinstellungen“ und klicke auf „Netzwerk“.
  • Wählen Sie „Service-Reihenfolge festlegen“ aus dem Einblendmenü „Aktion“ aus. [Das Zahnradsymbol neben + - ]
  • Ziehen Sie einen Dienst wie Ethernet an den Anfang der Liste.
  • Klicken Sie auf OK und dann auf Übernehmen, um die neuen Einstellungen zu aktivieren.

Wenn Sie sich über ein virtuelles privates Netzwerk (VPN) mit dem Internet verbinden und „Gesamten Datenverkehr über VPN-Verbindung senden“ im Bereich „Erweiterte Optionen“ der VPN-Einstellungen ausgewählt haben, müssen Sie den VPN-Dienst nicht an den Anfang der Seite verschieben Liste.
Erscheinungsdatum: 20. Oktober 2015

Der Artikel ist jetzt weg.