O Linux continua tentando o servidor DNS com falha

5

Sempre que um dos servidores em /etc/resolv.conf estiver inacessível, Linux / glibc / o que não for inteligente o suficiente para não tentar novamente por um tempo. Isso resulta em muitos serviços se tornando indisponíveis, porque muitos deles realizam pesquisas reversas em todas as conexões de entrada (como SSH), que são interrompidas pelo tempo limite da primeira consulta do servidor DNS.

Como posso fazer minhas caixas do Ubuntu serem inteligentes sobre os servidores DNS que ele usa? Eu poderia hackar um script bash que é executado a cada minuto que insere uma regra REJECT no iptables para os servidores que não respondem a consultas de escavação, mas eu prefiro não fazê-lo dessa maneira ...

Disseram-me que o Windows faz isso corretamente, BTW.

Editar: eu trabalhei um pouco com isso colocando /etc/resolv.conf (ou /etc/resolvconf/resolv.conf.d/base ):

options timeout:2 rotate

Ainda não é perfeito, mas é mais viável.

    
por Halfgaar 28.12.2012 / 16:39

2 respostas

5

Por que os servidores DNS estão se tornando indisponíveis? Esse é o problema que devemos nos concentrar em consertar ...

Você deve omitir a diretiva rotate se quiser ter uma ordem de repetição determinística. rotate basicamente oferece pesquisas de round-robin, que podem ter resultados indesejáveis em sua situação.

Meu DNS /etc/resolv.conf tende a se parecer com:

search blah.net client.blah.net
options timeout 1
nameserver 172.16.2.14
nameserver 172.16.2.18

Além disso, você do tem a opção de usar um serviço DNS de cache em sua máquina local, ou até mesmo ativar o Daemon de armazenamento em cache do servidor de nomes (nscd). Isso ajudará a compensar os atrasos que acompanham os resolvedores de DNS não confiáveis.

    
por 28.12.2012 / 17:21
3

Ugh. Eu me deparei com esse mesmo problema em meus sistemas. Quando o servidor DNS primário fica offline, o sistema inteiro fica incrivelmente lento na melhor das hipóteses.

Na verdade, fiz uma pergunta semelhante sobre isso há algum tempo: configurações de DNS / resolv.conf para uma falha do servidor DNS primário? . Houve algumas respostas muito boas lá, que você pode achar útil.

Acabei de editar /etc/resolv.conf com valores de tempo limite menores. ( options timeout:1 ) Em grande parte porque era a solução mais fácil, e não a mais eficaz. Essa mudança significa que os servidores gastam menos tempo aguardando por resolvedores mortos. As pesquisas demoram 2 segundos em vez de 10. Isso ainda é terrível se você estiver tentando fazer algo que não seja um lote, mas pelo menos resultou em poucas falhas de serviço.

    
por 28.12.2012 / 16:56