segundo servidor de nomes no /etc/resolv.conf não capturado pelo wget

14

Meu resolv.conf fica assim:

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

se eu fizer nslookup www.google.comisso funciona

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.

mas quando enrolado em www.google.com, ele não pode resolver o host.

Tentei rodar curl sob strace e encontrei curl usando o primeiro servidor de nomes no resolv.conf, não o segundo. Se eu alternar as duas linhas de servidor de nomes, o www.google.com será resolvido, mas os nomes DNS internos não, portanto, essa não é uma boa solução alternativa.

Como posso corrigir o resolv.conf para usar os dois servidores de nomes?

benhsu
fonte

Respostas:

24

O comportamento padrão do resolv.conf e do resolvedor é tentar os servidores na ordem listada. O resolvedor só tentará o próximo servidor de nomes se o primeiro servidor de tempo limite expirar. A página de manual resolv.conf diz:

servidor de nomes Endereço IP do servidor de nomes

Endereço da Internet (em notação de ponto) de um servidor de nomes que o resolvedor deve consultar. Até MAXNS (atualmente 3, consulte) servidores de nomes podem estar listados, um por palavra-chave. Se houver vários servidores, a biblioteca do resolvedor os consultará na ordem listada.

E:

(O algoritmo usado é tentar um servidor de nomes e, se a consulta atingir o tempo limite, tente o próximo, até os servidores sem nome, e repita a tentativa de todos os servidores de nome até que seja feito um número máximo de tentativas).

Consulte também a página de manual do resolvedor (5) para obter mais informações.

Você pode alterar o comportamento do resolvedor usando rotate, que consultará os servidores de nomes em uma ordem round-robin:

rotate define RES_ROTATE em _res.options, o que causa a seleção round robin de servidores de nomes dentre os listados. Isso tem o efeito de espalhar a carga de consulta entre todos os servidores listados, em vez de fazer com que todos os clientes experimentem o primeiro servidor listado primeiro todas as vezes.

No entanto, o nslookup usará o segundo servidor de nomes se receber um SERVFAILdo primeiro servidor de nomes. Na página de manual do nslookup :

[no] falhar Tente o próximo servidor de nomes se um servidor de nomes responder com SERVFAIL ou uma referência (nofail) ou encerrar a consulta (falha) em tal resposta.

(Padrão = nofail)

Stefan Lasiewski
fonte
2

sim, você pode usar a opção "girar" e definir o tempo limite para melhorar as pesquisas de DNS. Abaixo está o exemplo,

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
atormentar
fonte
1

10.0.4.48 é um servidor DNS recursivo, também conhecido como resolvedor?

Ou é apenas um servidor autorizado para suas zonas internas?

Você deve configurar um resolvedor interno que também possa estar mantendo seus dados oficiais.

Michuelnik
fonte
0

Portanto, para que funcione conforme o esperado, instale o dnsmasq ou outro repetidor DNS leve (ou um servidor DNS completo). Consulte Comparação de software de servidor DNS .

Para o dnsmasq, a configuração é tão simples quanto:

server=10.0.4.48
server=8.8.8.8

Você também pode especificar quais domínios em que algum DNS deve ser usado. Por exemplo:

server=/mcdc/10.0.4.48
server=8.8.8.8

Isso fará com que o dnsmasq procure *.mcdcno 10.0.4.48servidor DNS e em qualquer outro servidor 8.8.8.8.

Em /etc/resolv.confvocê apenas use seu DNS local:

nameserver 127.0.0.1

Para obter mais detalhes sobre a instalação do dnsmasq, consulte minha resposta aqui: /unix/55090/change-default-dns-on-openvpn-connect/545591#545591 .

Nux
fonte
-3

Se você puder, eu o configuraria dessa maneira.

search mcdc
nameserver 127.0.0.1
nameserver 8.8.8.8

Blake
fonte
6
Qual parte da pergunta indica que eles executam um servidor DNS em sua máquina ou desejam?
21412 Jay
1
Blake: Observe que 127.0.0.1 geralmente é usado apenas para sistemas que possuem um daemon de armazenamento em cache do servidor de nomes no host local. Veja tldp.org/HOWTO/DNS-HOWTO-3.html
Stefan Lasiewski,