J'exécute DNSMasq en tant que serveur DNS local, donc je peux résoudre *.local.pcfdev.io(comme indiqué ici Utilisation de PCF Dev hors ligne avec Mac OS X ). Tout a fonctionné quand j'ai mis les choses en place.
Quelques jours plus tard, après quelques redémarrages de mon MacBook, hors ligne, je ne peux plus résoudre des problèmes comme l' api.local.pcfdev.ioutilisation de curlou ping. Cependant, digfait la bonne chose.
$ dig api.local.pcfdev.io
; <<>> DiG 9.8.3-P1 <<>> api.local.pcfdev.io
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46877
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;api.local.pcfdev.io. IN A
;; ANSWER SECTION:
api.local.pcfdev.io. 0 IN A 192.168.11.11
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Sep 6 10:17:44 2016
;; MSG SIZE rcvd: 53
$ curl api.local.pcfdev.io
curl: (6) Could not resolve host: api.local.pcfdev.io
J'ai essayé d'ajouter -AlwaysAppendSearchDomainscomme argument à /usr/sbin/mDNSResponderin /System/Library/LaunchDaemons/com.apple.mDNSResponder.plistet redémarré le mDNSResponder avec launchctl, mais en vain.
MISE À JOUR 1
Il y a certainement quelque chose à écouter sur la bonne IP locale:
$ nslookup api.local.pcfdev.io
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: api.local.pcfdev.io
Address: 192.168.11.11
$ ping api.local.pcfdev.io
ping: cannot resolve api.local.pcfdev.io: Unknown host
$ telnet 192.168.11.11 80
Trying 192.168.11.11...
Connected to 192.168.11.11.
Escape character is '^]'.
HTTP/1.1 400 Bad Request
Connection closed by foreign host.
MISE À JOUR 2
Après avoir essayé la suggestion ci-dessous de supprimer tous les serveurs DNS des préférences réseau sauf 127.0.0.1, je ne peux rien résoudre. J'ai réussi à me déconnecter du débogage mDNSResponder:
mDNSResponder[91]: 74: DNSServiceCreateConnection START PID[32612](ping)
mDNSResponder[91]: 74: Error socket 75 created 00000000 00000001
mDNSResponder[91]: 74: DNSServiceQueryRecord(15000, 0, api.local.pcfdev.io., Addr) START PID[32612]()
mDNSResponder[91]: 74: Error socket 75 closed 00000000 00000001 (0)
mDNSResponder[91]: 74: DNSServiceQueryRecord(api.local.pcfdev.io., Addr) ADD 0 api.local.pcfdev.io. Addr
mDNSResponder[91]: 74: Cancel 00000000 00000001
mDNSResponder[91]: 74: DNSServiceQueryRecord(api.local.pcfdev.io., Addr) STOP PID[32612]()
mDNSResponder[91]: 74: DNSServiceCreateConnection STOP PID[32612](ping)
J'ai également observé cela comme expliqué dans la réponse proposée, nslookupet digne cause rien à enregistrer mDNSResponder, mais d'autres outils ( ping, curl) le font.
Il semble donc que pour une raison quelconque, cela dnsmasqne fonctionne pas (je peux établir une connexion TCP 127.0.0.1:53) ou mDNSResponderne l'utilise pas.
MISE À JOUR 3
etc/resolve.confcesse d'exister lorsque mon adaptateur wifi est actif, mais je ne suis pas connecté à un réseau. Serait-ce la raison pour laquelle les outils CLI n'utilisent pas le dnsmasqserveur local ?
curlou wgetou les obtiendrais dans des instruments / profileur / débogueur et verrais ce qui se produit réellement pour causer l'erreur ne pourrait pas résoudre.