mDNSResponder den lokalen DNS-Server verwenden lassen?

Ich möchte verwenden dnsmasq, wenn mein Mac (Sierra) nicht mit einem WLAN-Netzwerk verbunden ist.

Das Konfigurieren von DNS-Servern im Dialogfeld „Erweiterte Netzwerkeinstellungen“ funktioniert gut für digund nslookup, und ich kann über sehen, tcpdumpdass diese Tools den lokalen dnsmasqServer treffen.

Es funktioniert nicht für ping, curlund Golang-Binärdateien wie die Cloud Foundry CLI. Diese können Hosts nicht auflösen und versuchen nicht, mit dem lokalen Nameserver zu kommunizieren. dtrussWenn ich für die cfGolang-Binärdatei verwende , kann ich sehen, wie sie geöffnet wird /etc/hosts. Ich bin mir jedoch nicht sicher, wie ich es erkennen soll, wenn es versucht, mit Nameservern zu sprechen.

Wenn ich die Dienste mDNSResponderund stoppe und etwas länger brauche, um mit fehlzuschlagen , aber trotzdem fehlschlage und ohne zu versuchen, den lokalen Nameserver zu erreichen.mDNSResponderHelperpingcurlcannot resolve api.local.pcfdev.io: Unknown host

Irgendwelche Ideen, wie ich macOS dazu bringen kann, meinen lokalen Nameserver zu verwenden, wenn ich offline bin?

Antworten (1)

Ich denke, mDNSResponder - mit einer laufenden PCF Dev VirtualBox-VM, aber ohne LAN/WLAN - fehlt ein Standard-Gateway oder bekommt das falsche. Wenn Ihre Schnittstellen nicht verbunden sind oder alle Schnittstellen inaktiv sind, ist kein Standard-Gateway vorhanden.

Sie können dies überprüfen mit:

netstat -r -f inet
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
127                localhost          UCS             1        0     lo0
localhost          localhost          UH              5     1380     lo0
192.168.11         link#7             UC              4        0 vboxnet
224.0.0            link#1             UmCS            2        0     lo0
224.0.0.251        link#1             UHmWI           1        0     lo0

Um dies zu umgehen, können Sie Folgendes tun:

Voraussetzung: eine ordnungsgemäße Konfiguration von dnsmasq, wie in Ihrem Q & My a veröffentlicht . Eventuell müssen Sie alle Schnittstellen deaktivieren.

Duplizieren Sie ein Standortprofil in Systemeinstellungen > Netzwerk und benennen Sie es um, z. B. in pcdev with VLAN .

Wählen Sie im linken Bereich eine Schnittstelle (z. B. Wi-Fi) und klicken Sie auf das Zahnrad unten im linken Bereich > Virtuelle Schnittstellen verwalten. Drücke den ⊞-Button und füge ein "Neues VLAN..." hinzu. Benennen Sie es in VLAN um, wählen Sie 1 als Tag und eine Schnittstelle.

Konfigurieren Sie die Schnittstelle: Manuell mit einer beliebigen, aber unbenutzten IP zB 10.228.8.226/Maske 255.255.0.0/Router 10.228.0.1 und DNS-Server 127.0.0.1. Übernehmen Sie die Einstellungen mit der Schaltfläche Apply. IP (+ Mask) und Router müssen sich im selben Netzwerk befinden.

Überprüfen Sie die Routing-Tabelle erneut. Zunächst wird es so aussehen:

netstat -r -f inet
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
10.228/16          link#8             UC              2        0   vlan0
127                localhost          UCS             1        0     lo0
localhost          localhost          UH              4     1380     lo0
192.168.11         link#7             UC              2        0 vboxnet
224.0.0            link#1             UmCS            2        0     lo0
224.0.0.251        link#1             UHmWI           1        0     lo0

aber nach ein paar Sekunden (bis zu 40 Sekunden in meiner Umgebung) sollte es ausgefüllt sein:

netstat -r -f inet
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            10.228.0.1         UGSc            3        0   vlan0
10.228/16          link#8             UCS             2        0   vlan0
10.228.0.1/32      link#8             UCS             2        0   vlan0
10.228.0.1         link#8             UHRLWIir        4        0   vlan0     18
10.228.8.226/32    link#8             UCS             2        0   vlan0
10.228.255.255     ff.ff.ff.ff.ff.ff  UHLWbI          1        3   vlan0
127                localhost          UCS             1        0     lo0
localhost          localhost          UH             26     1494     lo0
192.168.11         link#7             UC              3        0 vboxnet
192.168.11.11      8:0:27:35:78:e2    UHLWIi          2        3 vboxnet   1192
192.168.11.255     ff:ff:ff:ff:ff:ff  UHLWbI          1        3 vboxnet
224.0.0/4          link#8             UmCS            3        0   vlan0
224.0.0.251        1:0:5e:0:0:fb      UHmLWI          1        0   vlan0
239.255.255.250    1:0:5e:7f:ff:fa    UHmLWI          1        3   vlan0
255.255.255.255/32 link#8             UCS             1        0   vlan0

Versuchen Sie nun erneut, api.local.pcfdev.io/tcp.local.pcfdev.io/local.pcfdev.io zu pingen.


Beim Testen hatte ich den Eindruck, dass ein willkürliches IP-Ping ( ping 192.168.11.11, ping 127.0.0.1die Neukonfiguration beschleunigte).


Wenn Sie sich in Reichweite eines bekannten WLANs befinden, wechseln Sie zurück zu Ihrem gemeinsamen Standortprofil .


Dies wurde in einer VMwareFusion Sierra VM und der verschachtelten pcfdev-ubuntu VirtualBox VM getestet (und funktioniert). In dieser Umgebung kann ich eine fehlende WLAN-Verbindung nicht wirklich simulieren, da keine WLAN-Schnittstelle vorhanden ist. Stattdessen habe ich alle Schnittstellen (2 x Ethernet) in der Sierra VM deaktiviert.