Comment les clients DNS choisissent-ils une adresse IP lorsqu'ils obtiennent plusieurs réponses?

25

Lorsqu'un serveur DNS recherche une adresse IP pour un client et qu'il reçoit une liste de plusieurs serveurs DNS à interroger, comment en choisit-il un? De même, lorsqu'un client DNS reçoit une liste de plusieurs adresses IP pour un nom de domaine complet, comment en choisit-il une? Est-il spécifique à l'implémentation ou est-il couvert par un RFC?

bpfinn
la source

Réponses:

18

Un serveur DNS qui résout une requête peut prioriser l'ordre dans lequel il utilise les serveurs répertoriés en fonction des données de temps de réponse historiques (RFC1035 section 7.2). Il peut également être priorisé par un sous-réseau plus proche (j'ai vu cela dans RFC mais je ne me souviens pas lequel). Si aucun historique ou priorité de sous-réseau n'est disponible, il peut choisir au hasard ou simplement choisir le premier. J'ai vu des implémentations de serveur DNS faire diverses combinaisons de ce qui précède.

Un programme client qui choisit une adresse IP dans une liste (d'enregistrements A / AAAA) essaiera généralement les adresses dans l'ordre où elles ont été renvoyées par le serveur DNS (round robin). Si le client ne peut pas se connecter à la première adresse IP renvoyée, il doit essayer la seconde et ainsi de suite. Par exemple, tous les principaux navigateurs le font, mais de nombreux autres programmes clients Internet "oublient" cette étape et échouent s'ils ne peuvent pas se connecter à la première adresse IP.

Jesper
la source
4

RFC 1794 Couvre la question Round Robin que vous posez.

En ce qui concerne les réponses, la plupart des clients DNS utiliseront la première adresse IP de la liste, certains effectuent des calculs de sous-réseau pour déterminer laquelle est la plus proche, d'autres choisissent au hasard, mais la plupart dépendent du serveur DNS pour envoyer la liste.

Mark Turner
la source
3

Cela dépend du client - d'une importance particulière pour quiconque gère une boutique Windows est le fait que Vista \ Windows Server 2008 choisira l'adresse en utilisant un mécanisme différent (si la pile ipv6 est installée) pour les versions antérieures de Windows qui choisiraient la première adresse . Dans de nombreux cas, cela signifie qu'ils choisiront toujours le même, c'est-à-dire qu'ils "n'honoreront" pas les réponses DNS à tour de rôle de la même manière que les versions antérieures. Il y a une explication détaillée de cela dans cet article de blog technet .

L'article lié indique que Windows 7 et Server 2008 R2 modifient à nouveau ce comportement par défaut, mais je ne trouve rien pour le sauvegarder.

Il convient également de souligner qu'il s'agit du comportement conforme aux normes pour ipv6 pour autant que je sache, bien que je serais très heureux de découvrir que j'avais tort.

Helvick
la source