se o servidor dns secundário estiver inativo, o ubuntu não pode resolver

1

Eu estou experimentando com dois servidores DNS locais. Quando eu derrubar o segundo servidor de DNS (ou o primário), não consigo resolver nenhum nome de domínio.

Usando o comando host ou nslookup , recebo o erro de tempo limite:

root@ubuntu:~# host testsrv.lan
;; connection timed out; no servers could be reached
root@ubuntu:~# nslookup testsrv.lan
;; Got recursion not available from 10.0.3.4, trying next server
;; connection timed out; no servers could be reached

Mas quando tento o comando dig , recebo uma resposta correta:

root@ubuntu:~# dig testsrv.lan   
; <<>> DiG 9.9.5-3ubuntu0.2-Ubuntu <<>> testsrv.lan
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7759
;; flags: qr rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;testsrv.lan.           IN  A

;; ANSWER SECTION:
testsrv.lan.        5   IN  A   10.0.3.4

;; Query time: 2 msec
;; SERVER: 10.0.3.4#53(10.0.3.4)
;; WHEN: Thu Jun 04 17:54:28 CET 2015
;; MSG SIZE  rcvd: 56

(o servidor DNS primário é 10.0.3.4 e eu adicionei um recorde: testsrv.lan - > 10.0.3.4)

Eu usei o tcpdump para verificar o que está acontecendo sob o capô: tcpdump -vvv -l -n -i any "udp port 53" Tenho notado que o primeiro servidor está respondendo corretamente à solicitação de DNS do meu host, mas o host está sempre tentando solicitar o segundo servidor e o tempo limite.

O ubuntu (especificamente o serviço resolvconf) deveria ser "tolerante a falhas" quando algum dos dois servidores DNS está inoperante? este é o comportamento padrão ao resolver um nome de domínio? é documentado em algum lugar? podemos mudar?

N.B: Estou usando o servidor do Ubuntu 14.04 e o DNS está configurado usando / etc / network / interface dns-nameservers 10.0.3.4 10.0.3.5

Qualquer ajuda é apreciada. Obrigado.

    
por Amine 05.06.2015 / 01:03

1 resposta

0

Um servidor DNS pode ser configurado para operar de duas maneiras diferentes. Ele funciona como um servidor DNS autoritativo para uma ou mais zonas ou é um resolvedor recursivo de armazenamento em cache. ( Esta resposta tem mais detalhes sobre a diferença.)

É possível configurar um servidor DNS para fazer os dois simultaneamente, mas antes de fazer isso, você precisa entender completamente a diferença entre os dois. Sem uma compreensão suficiente da diferença, é provável que você acabe com uma configuração que faça algo diferente do que você esperava.

O fluxo de uma resolução típica de DNS começa com uma consulta enviada de um cliente para um recursor. O recursor envia consultas para quantos servidores DNS autoritativos forem necessários para enviar uma resposta ao cliente.

Uma possível explicação de por que ela funciona quando os dois servidores estão ativos e não funciona quando um está inativo, é que você configurou um como um recursor e o outro como autoritativo. Quando ambos estão ativos, o cliente pode enviar uma consulta ao recursor, que então pergunta ao autoritativo, e a resposta do autoritativo ao recursor é então enviada ao cliente.

A comunicação entre o cliente e o recursor não se parece exatamente com a comunicação entre o recursor e o autoritativo. Cada consulta DNS tem um bit que indica qual tipo de consulta é. E as respostas do DNS também indicarão se o servidor de resposta é um recursor. Portanto, embora em alguns casos seja possível obter uma resposta para o tipo errado de consulta, tanto o cliente quanto o servidor terão a oportunidade de ver que algo está errado e se recusarão a apresentar uma resposta ao usuário.

Se você deseja configurar um par redundante de servidores DNS, a configuração de um como um recursor e o outro como autoritativo definitivamente não é o que você deseja. Um par redundante significa que você configura um deles para poder fazer o que quiser, e depois configurar o outro da mesma maneira.

Os servidores DNS especificados em sua configuração de rede devem ser recursores. Portanto, se você quiser que esses servidores DNS estejam em /etc/resolv.conf ou algum outro arquivo de configuração de rede em /etc , o que você deseja é um par redundante de recursores.

Além disso, todas as ferramentas host , nslookup e dig , por padrão, enviam consultas adequadas para envio a um recursor. Se você quiser usar essas ferramentas diretamente em um servidor autoritativo, precisará informar a ferramenta, por exemplo, usando dig +norecurse .

    
por 05.06.2015 / 19:58