J'utilise DNSMasq comme un serveur DNS local, donc je peux résoudre *.local.pcfdev.io
(comme discuté ici Utilisation de PCF Dev Offline avec Mac OS X ). Tout a fonctionné lors de la première mise en place.
Quelques jours plus tard, après quelques redémarrages de mon MacBook, je ne parviens plus à résoudre les problèmes suivants, alors que je suis hors ligne api.local.pcfdev.io
en utilisant curl
o ping
. Cependant, dig
fait ce qu'il faut.
$ 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 -AlwaysAppendSearchDomains
en tant qu'argument pour /usr/sbin/mDNSResponder
en /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
et redémarré le mDNSResponder avec launchctl
mais en vain.
MISE À JOUR 1
Il y a certainement quelque chose qui écoute 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 dans les Préférences réseau, à l'exception des serveurs DNS de l'entreprise. 127.0.0.1
mais je ne peux rien résoudre. J'ai réussi à obtenir un journal de débogage à partir de 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, nslookup
y dig
ne provoquent pas d'enregistrement par mDNSResponder
mais d'autres outils ( ping
, curl
) font.
Il semble donc que pour une raison quelconque, soit dnsmasq
ne fonctionne pas (je peux établir une connexion TCP vers 127.0.0.1:53
) ou mDNSResponder
ne l'utilise pas.
MISE À JOUR 3
etc/resolve.conf
cesse d'exister lorsque mon adaptateur wifi est actif, mais que je ne suis pas connecté à un réseau. Cela pourrait-il être la raison pour laquelle les outils CLI n'utilisent pas l'adresse locale de l'utilisateur ? dnsmasq
serveur ?