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 dig
und nslookup
, und ich kann über sehen, tcpdump
dass diese Tools den lokalen dnsmasq
Server treffen.
Es funktioniert nicht für ping
, curl
und Golang-Binärdateien wie die Cloud Foundry CLI. Diese können Hosts nicht auflösen und versuchen nicht, mit dem lokalen Nameserver zu kommunizieren. dtruss
Wenn ich für die cf
Golang-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 mDNSResponder
und stoppe und etwas länger brauche, um mit fehlzuschlagen , aber trotzdem fehlschlage und ohne zu versuchen, den lokalen Nameserver zu erreichen.mDNSResponderHelper
ping
curl
cannot resolve api.local.pcfdev.io: Unknown host
Irgendwelche Ideen, wie ich macOS dazu bringen kann, meinen lokalen Nameserver zu verwenden, wenn ich offline bin?
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.1
die 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.