16 votes

Comment fonctionne le repli du serveur de noms DNS ?

Nous avons deux serveurs DNS listés dans notre enregistrement NS. La nuit dernière, un de nos serveurs DNS est tombé en panne. Comme prévu, certains serveurs DNS ne résolvaient pas nos noms d'hôtes. J'ai supposé que ce problème serait temporaire et qu'il se résoudrait une fois que le TTL de nos enregistrements NS aurait expiré (1 heure).

Plus d'une heure plus tard, j'obtenais toujours des interruptions de DNS à partir d'ordinateurs de bureau qui utilisaient des serveurs Earthlink, Verizon et OpenDNS. J'ai testé pour voir si l'autre serveur DNS répondait :

dig @ns2.example.com www.example.com +short

Ça a marché.

Mes questions :

  1. Quelqu'un a-t-il une réponse à la question de savoir pourquoi les autres serveurs DNS n'atteignent pas notre autre serveur DNS même après l'expiration du TTL ?
  2. Les serveurs DNS préfèrent-ils le serveur DNS principal d'un domaine (à partir de la page d'accueil) ? SOA ) ?
  3. Y a-t-il un algorithme utilisé pour choisir un serveur de noms parmi les enregistrements NS disponibles ? Je suppose qu'il s'agit d'une implémentation spécifique, mais il existe peut-être des normes qui s'appliquent ici.

19voto

David Schwartz Points 31009

C'est une irritation regrettable. Les serveurs DNS multiples sont censés augmenter la fiabilité, mais dans la pratique, ils ont souvent l'effet inverse.

Le problème est que le client n'attend qu'un certain temps pour obtenir une réponse, et que le serveur attend à peu près le même temps. Disons que vous avez deux serveurs DNS, A et B. Supposons que A fonctionne et que B est en panne. Voici ce qui se passe :

  1. Le client se connecte au serveur de noms Z et lui demande l'information. Z choisit B et envoie une requête.

  2. Le client s'arrête parce que le serveur de noms Z n'a pas répondu.

  3. Le client essaie le serveur de noms Y. Y choisit B et envoie une requête.

  4. Le serveur de noms Z s'arrête et essaie A. Il obtient la bonne réponse, mais le client n'attend plus.

  5. Le client s'arrête parce que le serveur de noms Y n'a pas répondu.

  6. Le client abandonne, car ses deux serveurs de noms ne répondent pas.

  7. Le serveur de noms Y s'arrête et essaie A. Il obtient la bonne réponse, mais le client n'attend plus.

Et il n'y a pas de bonne solution. Plus vous attendez pour voir si un serveur de noms répond, plus vous devez attendre car le serveur de noms que vous attendez attend lui-même plus longtemps. On peut dire que le problème est que Y et Z n'ont pas abandonné B assez vite.

Essentiellement, si l'un de vos serveurs de noms est hors service, certains clients vont, par pure malchance, perdre leur temps parce qu'ils n'ont essayé que les mauvais serveurs.

Le bon côté des choses, c'est que si vous avez deux serveurs de noms et que l'un d'eux tombe en panne, environ 75 % des serveurs de noms recevront une réponse, au lieu de 0 %.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X