Estou executando o DNSMasq como um servidor DNS local, para que eu possa resolver *.local.pcfdev.io(conforme discutido aqui Usando o PCF Dev Offline no Mac OS X ). Tudo funcionou quando eu configurei as coisas.
Alguns dias depois, após algumas reinicializações do meu MacBook, enquanto estava offline, não consigo mais resolver coisas como api.local.pcfdev.iousar curlou ping. No entanto, digfaz a coisa certa.
$ 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
Eu tentei adicionar -AlwaysAppendSearchDomainscomo um argumento para /usr/sbin/mDNSResponderem /System/Library/LaunchDaemons/com.apple.mDNSResponder.pliste reiniciado o mDNSResponder com launchctl, mas sem sucesso.
ATUALIZAÇÃO 1
Definitivamente, há algo que escuta no IP local correto:
$ 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.
ATUALIZAÇÃO 2
Depois de tentar a sugestão abaixo de remover todos os servidores DNS das Preferências de rede 127.0.0.1, exceto , não consigo resolver nada. Eu consegui obter algum log de depuração 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)
Também observei isso, conforme explicado na resposta proposta, nslookupe dignão faço com que nada seja registrado mDNSResponder, mas outras ferramentas ( ping, curl) fazem.
Portanto, parece que, por qualquer motivo, dnsmasqnão está funcionando (eu posso estabelecer uma conexão TCP 127.0.0.1:53) ou mDNSRespondernão está usando.
ATUALIZAÇÃO 3
etc/resolve.confdeixa de existir quando meu adaptador wifi está ativo, mas não estou conectado a uma rede. Pode ser por isso que as ferramentas da CLI não usam o dnsmasqservidor local ?
curlou wgetou obtê-los em instrumentos / profiler / depurador e ver o que realmente está acontecendo para causar a não podia erro determinação.