dnsmasq non funziona su Mac OS Sierra

6

Sto eseguendo dnsmasq su un MBP 2016 con Mac OS Sierra (10.12.1) ma non riesco a eseguire il ping di qualsiasi indirizzo .dev nonostante abbia quella che credo sia la configurazione corretta. L'esecuzione di dig fa tornare l'output sensato.

/usr/local/etc/dnsmasq.conf

resolv-file=/usr/local/etc/resolv-dnsmasq.conf
address=/.dev/127.0.0.1

/ etc / resolver / dev

nameserver 127.0.0.1

/usr/local/etc/resolv-dnsmasq.conf

nameserver 8.8.8.8
nameserver 8.8.4.4

L'elenco dei miei server DNS in Preferenze di Sistema ha una sola voce che punta a 127.0.0.1.

Quando eseguo scavare su un indirizzo .dev ottengo il seguente output:

; <<>> DiG 9.11.0-P1 <<>> test.dev
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36126
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;test.dev.          IN  A

;; ANSWER SECTION:
test.dev.       0   IN  A   127.0.0.1

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Dec 19 23:13:20 PST 2016
;; MSG SIZE  rcvd: 42

Sono in grado di caricare siti esterni come google.com perfettamente, ma se provo ad accedere a un server web locale o addirittura a pingare un indirizzo .dev fallisce.

L'aiuto sarebbe apprezzato!

    
posta Steve 20.12.2016 - 08:17
fonte

1 risposta

4

Il demone dnsmasq non è configurato correttamente.

Il tuo resolver esterno funziona: tutte le query a non- dev host / domini vengono inoltrate a server DNS di terze parti con la riga resolv-file=/usr/local/etc/resolv-dnsmasq.conf - nel tuo caso il file configurato contiene due Google pubbliche Server DNS.

Tuttavia, il tuo risolutore interno non risolve i nomi interni.

La riga address=/.dev/127.0.0.1 o meglio address=/dev/127.0.0.1 reindirizzerà qualsiasi richiesta * .dev all'host 127.0.0.1. Non è necessario un resolver interno e il server dei nomi interno definito in / etc / resolver / dev è inutile.

Confronta questo con l'esempio nel file dnsmasq.conf:

# Add domains which you want to force to an IP address here.
# The example below send any host in double-click.net to a local
# web-server.
#address=/double-click.net/127.0.0.1

Qualsiasi query per * .double-click.net verrà reindirizzata a 127.0.0.1 e a un sito Web arbitrario servito presso localhost.

Consiglio vivamente di definire un file hosts.config e inserire / definire tutti gli host necessari lì:

Aggiungi una riga addn-hosts=/usr/local/etc/hosts/hosts.conf in dnsmasq.conf. Quindi aggiungi una cartella con sudo mkdir /usr/local/etc/hosts e crea un file hosts.conf

sudo nano /usr/local/etc/hosts/hosts.conf

con il seguente contenuto:

127.0.0.1   localhost
127.0.0.1   test.dev
127.0.0.1   test2.dev
...

Dopo aver salvato il file, ricarica il demone dnsmasq.

Se si desidera utilizzare IP diversi per i nomi host, ad esempio:

127.0.0.1   localhost
127.0.0.2   test.dev
127.0.0.3   test2.dev
...

dovresti aggiungere ulteriori IP con:

sudo ifconfig lo0 alias 127.0.0.2 up
sudo ifconfig lo0 alias 127.0.0.3 up
...
    
risposta data 20.12.2016 - 22:55
fonte

Leggi altre domande sui tag