Sto eseguendo DNSMasq come server DNS locale, quindi posso risolverlo *.local.pcfdev.io(come discusso qui Utilizzo di PCF Dev Offline con Mac OS X ). Tutto ha funzionato quando ho impostato le cose per la prima volta.
Un paio di giorni dopo, dopo alcuni riavvii del mio MacBook, mentre sono offline non riesco più a risolvere cose come api.local.pcfdev.iousare curlo ping. Tuttavia, digfa la cosa giusta.
$ 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
Ho provato ad aggiungere -AlwaysAppendSearchDomainscome argomento /usr/sbin/mDNSResponderin /System/Library/LaunchDaemons/com.apple.mDNSResponder.pliste ho riavviato mDNSResponder launchctl, ma senza risultati.
AGGIORNAMENTO 1
C'è sicuramente qualcosa che ascolta sull'IP locale giusto:
$ 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.
AGGIORNAMENTO 2
Dopo aver provato il suggerimento seguente di rimuovere tutti i server DNS dalle Preferenze di rete tranne 127.0.0.1, non riesco a risolvere nulla. Sono riuscito a ottenere qualche log di debug da 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)
Ho anche osservato che, come spiegato nella risposta proposta, nslookupe dignon faccio in modo che nulla venga registrato mDNSResponder, ma altri strumenti ( ping, curl) lo fanno.
Quindi sembra che per qualsiasi motivo o dnsmasqnon funzioni (posso stabilire una connessione TCP 127.0.0.1:53) o mDNSRespondernon la sta usando.
AGGIORNAMENTO 3
etc/resolve.confcessa di esistere quando la mia scheda wifi è attiva, ma non sono connesso a una rete. Potrebbe essere questo il motivo per cui gli strumenti della CLI non utilizzano il dnsmasqserver locale ?
curlo wgetli prenderei in strumenti / profiler / debugger e vedrei cosa sta realmente accadendo per causare l'errore non risolto.