Estoy ejecutando DNSMasq como servidor DNS local, por lo que puedo resolver *.local.pcfdev.io
(tal y como se comenta aquí Uso de PCF Dev Offline con Mac OS X ). Todo funcionó cuando lo configuré por primera vez.
Un par de días más tarde, después de unos cuantos reinicios de mi MacBook, mientras que fuera de línea ya no puedo resolver cosas como api.local.pcfdev.io
utilizando curl
o ping
. Sin embargo, dig
hace lo correcto.
$ 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
He intentado añadir -AlwaysAppendSearchDomains
como argumento para /usr/sbin/mDNSResponder
en /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
y reiniciar el mDNSResponder con launchctl
pero en vano.
ACTUALIZACIÓN 1
Definitivamente hay algo escuchando en la IP local correcta:
$ 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.
ACTUALIZACIÓN 2
Después de probar la sugerencia de eliminar todos los servidores DNS de las Preferencias de Red excepto 127.0.0.1
No puedo resolver nada. He conseguido sacar algún registro de depuración 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)
También he observado que, como se explica en la respuesta propuesta, nslookup
y dig
no hacen que se registre nada por mDNSResponder
pero otras herramientas ( ping
, curl
).
Así que parece que por la razón que sea dnsmasq
no funciona (puedo establecer una conexión TCP con 127.0.0.1:53
) o mDNSResponder
no lo está usando.
ACTUALIZACIÓN 3
etc/resolve.conf
deja de existir cuando mi adaptador wifi está activo, pero no estoy conectado a una red. ¿Podría ser esto por lo que las herramientas CLI no utilizan el local dnsmasq
¿Servidor?