Ubuntu resolv.conf, não vai ao próximo servidor de nomes?

4

Estou usando o Ubuntu 10.04 Desktop, que vem por padrão com o "Network Manager" (o qual eu sou altamente suspeito). Estou tendo um problema com a resolução de zonas DNS em dois diferentes servidores de nomes.

resolv.conf:

$ cat /etc/resolv.conf
#Generated by Network Manager
search example.org
nameserver 10.0.0.20 #public nameserver, contains public.example.org
nameserver 10.0.0.30 #private nameserver, contains private.example.org

E o problema. Qualquer que seja o servidor de nomes listado primeiro, resolve:

$ ping host.public.example.org
PING host.public.example.org (10.0.0.50) 56(84) bytes of data.

O segundo listado não:

$ ping host.private.example.org
ping: unknown host host.private.example.org

Mas está lá:

$ dig @10.0.0.30 host.private.example.org
...
;; ANSWER SECTION:
host.private.example.org.   3600    IN  A   10.0.0.60
...

Se eu inverter a ordem dos servidores de nomes em /etc/resolv.conf, o host.private será acessível e o host.public não. Por quê? Na página man do resolv.conf:

If there are multiple servers, the resolver library queries them in the order listed.

Não é só o ping que tem problemas, eu notei isso quando o Thunderbird não conseguiu receber e-mails porque o registro DNS do servidor de e-mail está no segundo servidor listado. O que eu estou tentando fazer aqui não deveria funcionar?

    
por Cory J 20.08.2010 / 22:44

3 respostas

11

Ahhhh ... isso não funciona assim. Desde que o primeiro servidor de nomes esteja em execução e ativo, todos os pedidos de ligação irão para ele. A única maneira de chegar ao segundo servidor de nomes é se o servidor de nomes anterior na lista morreu e após um tempo limite longo.

Para corrigir o seu problema, acredito que você tenha que criar uma configuração de servidor DNS de cache local e direcionar os servidores de nomes das duas zonas para os dois servidores diferentes. Sua configuração do resolvedor seria então definida para usar o IP do host.

    
por 20.08.2010 / 22:56
5

Esta dica mostra como melhorar as pesquisas de DNS usando vários servidores de nomes. Isso é útil se você já teve seu servidor DNS primário inacessível por qualquer motivo.

Os servidores de nomes estão listados em /etc/resolv.conf, um por linha.

Listagem de código 1: Exemplo /etc/resolv.conf

servidor de nomes 192.168.1.1

servidor de nomes 10.0.0.1

Para melhorar as pesquisas de DNS, adicione vários servidores DNS (de preferência em diferentes sub-redes) e as seguintes opções para /etc/resolv.conf:

Listagem de código 2: Opções do /etc/resolv.conf

opções de rotação

tempo limite das opções: 1

Isso usará o nameserver em rotação e esperará max. 1 segundo para resposta antes de tentar o próximo.

    
por 09.10.2014 / 20:12
0

O servidor de nome público deve responder que o endereço privado não sai. Se for o primeiro e a funcionar, você receberá a resposta pública. Listar o servidor privado primeiro. O servidor público deve ser usado apenas como fallback.

Uma solução no lado do servidor de nomes é usar uma configuração de divisão. Isso serviria os dados privados na rede privada e forneceria apenas os dados públicos do lado público. O servidor público deve oferecer apenas referências (google.com, etc.) na rede privada.

    
por 21.08.2010 / 17:00