Sto eseguendo DNSMasq come server DNS locale, quindi posso risolvere *.local.pcfdev.io
(come discusso qui Utilizzo di PCF Dev offline con Mac OS X ). Tutto ha funzionato quando ho impostato per la prima volta.
Un paio di giorni dopo, dopo alcuni riavvii del mio MacBook, mentre offline non posso più risolvere cose come api.local.pcfdev.io
usando curl
o ping
. Tuttavia, dig
fa 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 -AlwaysAppendSearchDomains
come argomento a /usr/sbin/mDNSResponder
in /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
e ho riavviato mDNSResponder con launchctl
, ma senza alcun risultato.
UPDATE 1
C'è sicuramente qualcosa in ascolto 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.
UPDATE 2
Dopo aver provato il seguente suggerimento di rimuovere tutti i server DNS da Preferenze di rete ad eccezione di 127.0.0.1
, non riesco a risolvere nulla. Sono riuscito a ottenere il log di debug di 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, nslookup
e dig
non fanno in modo che nulla venga registrato da mDNSResponder
, ma altri strumenti ( ping
, curl
) fanno.
Quindi sembra che per qualsiasi motivo sia dnsmasq
non funzioni (posso stabilire una connessione TCP a 127.0.0.1:53
) o mDNSResponder
non la sta usando.
UPDATE 3
etc/resolve.conf
cessa di esistere quando il mio adattatore wifi è attivo, ma non sono connesso a una rete. Questo potrebbe essere il motivo per cui gli strumenti CLI non utilizzano il server dnsmasq
locale?