Ajustando quanto tempo o Linux leva para efetuar failover no servidor DNS de backup listado em resolv.conf

15

Atualmente estou usando a configuração simples de baunilha linux para resolv.conf... algo como:

nameserver 123.123.123.123
nameserver 8.8.8.8

Quando 123.123.123.123 diminui, as consultas DNS tornam-se impossíveis de serem lentas, presumo que o Linux tente novamente a primeira de cada vez. Existe uma maneira de obter o linux mais inteligente sobre isso? Exames de saúde ou algo assim? Ou entendo mal como resolv.confdeve funcionar?

Adam Terrey
fonte

Respostas:

18

Além da impressionante resposta do ewwhite, alguns adendos.

Você pode adicionar isso em /etc/resolv.conf

options timeout:1 attempts:1 rotate

Os padrões são tempo: 5 tentativas: 2

O que acontece é que a biblioteca do resolvedor tentará usar os servidores de nomes listados /etc/resolv.confde cima para baixo, se nenhuma opção de rotação estiver presente. Se a opção Rodar estiver presente, ele fará uma seleção de rodízio. Se o resolvedor for para o final da lista e o servidor não responder dentro de X segundos (considerando X é o parâmetro de tempo limite), ele repetirá todo o processo de seleção de rodízio novamente por Y-1 vezes (onde Y é o valor das tentativas).

No entanto, um pouco de cautela seria evitar dig e amigos para testar essas opções do resolv.conf. Como eles evitam a biblioteca de resolvedores e perguntam diretamente aos servidores de nomes. getent hosts é o melhor comando para usar. Note que qualquer coisa que use o glibc resolver terá que obedecer ao /etc/resolv.confarquivo.

Soham Chakraborty
fonte
12

Isso é descrito via man resolv.conf.

Tente uma das opções de tempo limite para diminuir o padrão de 5 segundos para talvez 1 segundo ...

options timeout:1
nameserver 123.123.123.123
nameserver 8.8.8.8

Mas, na verdade, o DNS tem tantas resiliências disponíveis que é possível viver sem tempos limite de resolução menor. É possível escolher um DNS público melhor ou executar seu próprio resolvedor interno?

ewwhite
fonte