macOS High Sierra non sta provando altri server DNS

0

Su uno dei miei laptop che esegue macOS High Sierra, non riesce a risolvere i nomi degli host. Ho specificato due server DNS nelle mie impostazioni di rete. Uno è un server DNS interno e l'altro è 8.8.8.8. Quando provo a risolvere i nomi di host locali che il DNS interno conosce, si risolve correttamente. Ma quando provo a risolvere qualcosa come google.com fallisce.

Vedo che tenta di utilizzare prima il server DNS interno e, poiché non conosce il nome host, ho pensato che avrebbe provato a utilizzare 8.8.8.8 per risolvere il nome host, ma non ha mai provato l'altro server DNS.

Quando provo questo dal mio altro portatile, funziona correttamente vedo

$>nslookup google.com
;; Got SERVFAIL reply from <internal dns>, trying next server
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   google.com
Address: 172.217.5.110

Ma da quello in cui non vedo

$>nslookup google.com
Server:        <internal dns>
Address:    <internal dns>#53

** server can’t find google.com: SERVFAIL

Non c'è alcun tentativo di provare il server DNS 8.8.8.8. Perché sta succedendo? Come posso convincerlo a provare l'altro server DNS se fallisce con uno.

    
posta klanomath 18.03.2018 - 22:41
fonte

1 risposta

3

Primo: nslookup non usa il risolutore DNS del sistema e non si comporta allo stesso modo del risolutore di sistema. Neanche dig o host , quindi nessuno di questi strumenti è utile per verificare come macOS risolve i nomi. Se si desidera utilizzare il risolutore di sistema, utilizzare dscacheutil -q host -a name google.com , ma si noti che utilizza l'intero sistema di risoluzione: appare nella cache locale, / etc / hosts, mDNS (per i nomi .local) e quindi DNS. Oh, e la pagina man per dscacheutil afferma che può svuotare la cache DNS, ma non funziona; usa sudo killall mDNSResponder invece.

Secondo: il risolutore di sistema non esegue un buon (o anche adeguato) lavoro di failover tra i server DNS. Se si elencano più server, si sposteranno le query a tutti loro in una sorta di moda random-round-robin. Se non ottiene una risposta, alla fine scade e prova l'altro. Se riceve una risposta "che non esiste", presuppone che sia corretta e non provi nessun altro server. Di conseguenza, hai davvero bisogno di un singolo server in grado di rispondere a tutte le query, sia interne che esterne.

Ok, c'è una soluzione possibile: puoi puntare il tuo sistema su un server DNS pubblico, quindi creare / etc / resolver / e inserire i file in esso per reindirizzare le query per determinati domini al tuo server interno. A condizione che tu sappia quali domini reindirizzare, cioè. Vedi Apple.SE: "Fai / etc / resolver / files funzionano in Mountain Lion per la risoluzione DNS? ".

    
risposta data 19.03.2018 - 08:16
fonte

Leggi altre domande sui tag