Temos dois servidores DNS listados em nosso registro NS. Ontem à noite, um dos nossos servidores DNS caiu. Como esperado, alguns servidores DNS não estavam resolvendo nossos nomes de host. Supus que isso seria temporário e começaria a funcionar assim que o TTL de nossos registros NS expirasse (1 hora).
Mais de uma hora depois, eu ainda recebia o tempo limite do DNS de desktops que usavam os servidores Earthlink, Verizon e OpenDNS. Eu testei para ver se o outro servidor DNS estava respondendo:
dig @ns2.example.com www.example.com +short
Isso funcionou.
Minhas perguntas:
- Alguém tem uma resposta sobre por que outros servidores DNS não estavam atingindo nosso outro servidor DNS mesmo depois que o TTL expirou?
- Os servidores DNS preferem o servidor DNS principal de um domínio (a partir do
SOA
registro)? - Existe algum algoritmo usado para escolher um servidor de nomes nos registros NS disponíveis? Estou assumindo que isso seja específico da implementação, mas talvez haja alguns padrões que se apliquem aqui.
domain-name-system
bind
isp
Belmin Fernandez
fonte
fonte
Respostas:
Esta é uma irritação infeliz. Supõe-se que vários servidores DNS aumentem a confiabilidade, mas, na prática, freqüentemente têm o efeito inverso.
O problema é que o cliente aguarda apenas uma resposta e o servidor aguarda a mesma quantidade de tempo. Digamos que você tenha dois servidores DNS, A e B. Digamos A está funcionando e B falhou. Isto acontece:
O cliente se conecta ao servidor de nomes Z e solicita as informações. Z escolhe B e envia uma consulta.
O tempo limite do cliente expirou porque o servidor de nomes Z não respondeu.
O cliente tenta o servidor de nomes Y. Y escolhe B e envia uma consulta.
O servidor de nomes Z atinge o tempo limite e tenta A. Ele obtém a resposta certa, mas o cliente não está mais esperando.
O tempo limite do cliente expirou porque o servidor de nomes Y não respondeu.
O cliente desiste, pois ambos os servidores de nomes falham em responder.
O servidor de nomes Y expira e tenta A. Ele obtém a resposta certa, mas o cliente não está mais esperando.
E não há boa solução. Quanto mais você esperar para ver se um servidor de nomes responde, mais você precisará esperar, porque o servidor de nomes que você está aguardando espera mais. Indiscutivelmente, o problema era que Y e Z não desistiram de B rápido o suficiente.
Essencialmente, se algum dos seus servidores de nomes estiver fora do ar, alguns clientes, por pura má sorte, expirarão porque tentaram apenas os ruins.
Pelo lado positivo, se você tiver dois servidores de nomes e um falhar, cerca de 75% dos servidores de nomes obterão uma resposta, em vez de 0%.
fonte
Z
) não armazenará em cache qual servidor de nomes ele usou pela última vez que funcionou?