secondo nameserver in /etc/resolv.conf non raccolto da wget


14

Il mio resolv.conf è simile al seguente:

; generated by /sbin/dhclient-script
search mcdc
nameserver 10.0.4.48
nameserver 8.8.8.8

se lo faccio nslookup www.google.comfunziona

nslookup www.google.com
;; Got SERVFAIL reply from 10.0.4.48, trying next server
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
www.google.com  canonical name = www.l.google.com.

ma quando arriccio www.google.com, non riesco a risolvere l'host.

Ho provato a eseguire curl sotto strace e ho scoperto che curl stava usando solo il primo nameserver in resolv.conf, non il secondo. Se cambio le due linee del nameserver, www.google.com si risolve, ma i nomi DNS interni no, quindi non è una buona soluzione.

Come posso risolvere resolv.conf per usare entrambi i nameserver?

Risposte:


24

Il comportamento predefinito per resolv.conf e il resolver è provare i server nell'ordine elencato. Il resolver tenterà il prossimo nameserver solo se il primo nameserver scade. La manpage resolv.conf dice:

nameserver Indirizzo IP del server dei nomi

Indirizzo Internet (in notazione a punti) di un server dei nomi su cui dovrebbe essere interrogato il resolver. È possibile elencare fino a MAXNS (attualmente 3, vedi) server dei nomi, uno per parola chiave. Se sono presenti più server, la libreria del resolver li interroga nell'ordine elencato.

E:

(L'algoritmo utilizzato è di provare un server dei nomi e, se la query scade, provare il successivo, fino a quando non si trovano i server dei nomi, quindi riprovare a provare tutti i server dei nomi fino a quando non viene effettuato un numero massimo di tentativi.)

Vedere anche la pagina del manuale del resolver (5) per ulteriori informazioni.

È possibile modificare il comportamento del resolver utilizzando rotate, che eseguirà una query sui server dei nomi in un ordine round robin:

rotate imposta RES_ROTATE in _res.options, che provoca la selezione round robin di nameserver tra quelli elencati. Ciò ha l'effetto di distribuire il carico di query tra tutti i server elencati, anziché fare in modo che tutti i client provino prima il primo server elencato ogni volta.

Tuttavia, nslookup utilizzerà il secondo nameserver se riceve un SERVFAILdal primo nameserver. Dalla manpage nslookup :

[no] fail Provare il nameserver successivo se un nameserver risponde con SERVFAIL o un riferimento (nofail) o termina la query (fail) su tale risposta.

(Impostazione predefinita = nofail)


2

sì, potresti utilizzare l'impostazione "ruota" e il timeout per migliorare le ricerche DNS, di seguito è riportato l'esempio,

Ex:

[root@centos-xxxxxx ~]# cat /etc/resolv.conf
options rotate
options timeout:1
search xyz.abc.local
nameserver 192.168.56.3
nameserver 10.0.2.4

1

10.0.4.48 è un server DNS ricorsivo aka resolver?

O è solo un server autorevole per le tue zone interne?

È necessario impostare un resolver interno che potrebbe contenere anche i dati autorevoli.


0

Quindi, per farlo funzionare come previsto, installare dnsmasq o un altro ripetitore DNS leggero (o un server DNS completo). Vedi Confronto del software del server DNS .

Per dnsmasq la configurazione è semplice come:

server=10.0.4.48
server=8.8.8.8

È inoltre possibile specificare per quali domini utilizzare alcuni DNS. Per esempio:

server=/mcdc/10.0.4.48
server=8.8.8.8

Questo farà cercare dnsmasq *.mcdcnel 10.0.4.48server DNS e in qualsiasi altro 8.8.8.8.

In /etc/resolv.confte basta usare il tuo DNS locale:

nameserver 127.0.0.1

Per maggiori dettagli sulla configurazione di dnsmasq vedi la mia risposta qui: /unix/55090/change-default-dns-on-openvpn-connect/545591#545591 .


-3

Se puoi, lo configurerei in questo modo.

search mcdc
nameserver 127.0.0.1
nameserver 8.8.8.8


6
Quale parte della domanda indica che eseguono un server DNS sulla loro macchina o che vogliono?
Jay,


1
Blake: Notare che 127.0.0.1 è in genere usato solo per sistemi che hanno un demone di memorizzazione nella cache del server dei nomi sull'host locale. Vedi tldp.org/HOWTO/DNS-HOWTO-3.html
Stefan Lasiewski
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.