Como o servidor de nomes DNS retrocede?

14

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. Eu assumi que isso seria temporário e começaria a funcionar assim que o TTL de nossos registros NS expirasse (1 hora).

Uma hora mais tarde, eu ainda estava recebendo o tempo limite do DNS em desktops que estavam usando 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:

  1. 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?
  2. Os servidores DNS preferem o servidor DNS principal de um domínio (do SOA record)?
  3. Existe algum algoritmo usado para escolher um servidor de nomes dos registros NS disponíveis? Estou assumindo que isso é específico da implementação, mas talvez haja alguns padrões que se aplicam aqui.
por Belmin Fernandez 31.10.2011 / 03:46

1 resposta

16

Esta é uma irritação infeliz. Vários servidores DNS devem aumentar a confiabilidade, mas, na prática, freqüentemente tem o efeito inverso.

O problema é que o cliente só aguarda tanto tempo por uma resposta, e o servidor aguarda a mesma quantidade de tempo. Digamos que você tenha dois servidores DNS, A e B. Diga A está funcionando e B falhou. Isso acontece:

  1. O cliente se conecta ao servidor de nomes Z e solicita as informações. Z escolhe B e envia uma consulta.

  2. O cliente expira porque o servidor de nomes Z não respondeu.

  3. O cliente tenta o servidor de nomes Y. Y escolhe B e envia uma consulta.

  4. O servidor de nomes z expira e tenta A. Obtém a resposta certa, mas o cliente não está mais esperando.

  5. O cliente expira porque o servidor de nomes Y não respondeu.

  6. O cliente desiste, pois ambos os servidores de nome não respondem.

  7. O servidor de nomes Y expira e tenta A. Obtém a resposta certa, mas o cliente não está mais esperando.

E não há boa solução. Quanto mais tempo você esperar para ver se um servidor de nomes responde, mais tempo você precisa esperar porque o servidor de nomes que você está esperando espera mais. Indiscutivelmente, o problema era que Y e Z não desistiram de B rápido o suficiente.

Essencialmente, se algum de seus servidores de nomes estiver fora, alguns clientes irão, por pura má sorte, expirar porque tentaram apenas os ruins.

No lado positivo, se você tiver dois servidores de nomes e um falhar, cerca de 75% dos servidores de nomes receberão uma resposta, em vez de 0%.

    
por 31.10.2011 / 04:03