Estoy ejecutando DNSMasq como un servidor DNS local, por lo que puedo resolver *.local.pcfdev.io
(como se explica aquí Uso de PCF Dev Offline con Mac OS X ). Todo funcionó cuando configuré las cosas por primera vez.
Un par de días después, después de algunos reinicios de mi MacBook, sin conexión ya no puedo resolver cosas como api.local.pcfdev.io
usar 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 se reinicia el mDNSResponder con launchctl
, pero fue 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 siguiente sugerencia de eliminar todos los servidores DNS de las Preferencias de red 127.0.0.1
, excepto , no puedo resolver nada. Logré sacar algunos registros 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 observé eso como se explica en la respuesta propuesta, nslookup
y dig
no hago que se registre nada mDNSResponder
, pero otras herramientas ( ping
, curl
) lo hacen.
Por lo tanto, parece que, por cualquier motivo, dnsmasq
no funciona (puedo establecer una conexión TCP 127.0.0.1:53
) o mDNSResponder
no lo está utilizando.
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 esta la razón por la cual las herramientas CLI no usan el dnsmasq
servidor local ?
curl
o wget
o recibirlos en los instrumentos / perfilador / depurador y ver lo que está sucediendo realmente a hacer que el error no podía resolver.