mécanisme de résolution D’adresse
les résolveurs de noms de domaine déterminent les serveurs de noms de domaine responsables du nom de domaine en question par une séquence de requêtes commençant par l’étiquette de domaine la plus à droite (niveau supérieur).,
un résolveur DNS qui implémente l’approche itérative mandatée par la RFC 1034; dans ce cas, le résolveur consulte trois serveurs de noms pour résoudre le nom de domaine complet « www.wikipedia.org ».
pour le bon fonctionnement de son résolveur de noms de domaine, un hôte réseau est configuré avec un cache initial (indices) des adresses connues des serveurs de noms racine. Les conseils sont mis à jour périodiquement par un administrateur en récupérant un ensemble de données à partir d’une source fiable.,
en Supposant que le résolveur n’a pas d’enregistrements mis en cache pour accélérer le processus, le processus de résolution commence par une requête à l’un des serveurs racine. Dans un fonctionnement typique, les serveurs racine ne répondent pas directement, mais répondent par une référence à des serveurs plus faisant autorité, par exemple, une requête pour « www.wikipedia.org » est référé aux serveurs de l’organisation. Le résolveur interroge maintenant les serveurs auxquels il fait référence et répète itérativement ce processus jusqu’à ce qu’il reçoive une réponse faisant autorité. Le diagramme illustre ce processus pour l’hôte qui est nommé par le nom de domaine complet « www.wikipedia.org ».,
ce mécanisme imposerait une charge de trafic importante aux serveurs racine, si chaque résolution sur Internet nécessitait de commencer à la racine. En pratique, la mise en cache est utilisée dans les serveurs DNS pour décharger les serveurs racine, et par conséquent, les serveurs de noms racine ne sont impliqués que dans une fraction relativement faible de toutes les demandes.
serveur de noms récursif et de mise en cache
en théorie, les serveurs de noms faisant autorité sont suffisants pour le fonctionnement d’Internet., Cependant, avec uniquement des serveurs de noms faisant autorité, chaque requête DNS doit commencer par des requêtes récursives à la zone racine du système de noms de domaine et chaque système utilisateur devrait implémenter un logiciel résolveur capable de fonctionner récursivement.
pour améliorer l’efficacité, réduire le trafic DNS sur Internet et augmenter les performances dans les applications des utilisateurs finaux, le système de noms de domaine prend en charge les serveurs de cache DNS qui stockent les résultats des requêtes DNS pendant une période déterminée dans la configuration (time-to-live) de l’enregistrement de nom de domaine en question.,En règle générale, ces serveurs DNS de mise en cache implémentent également l’algorithme récursif nécessaire pour résoudre un nom donné en commençant par la racine DNS jusqu’aux serveurs de noms faisant autorité du domaine interrogé. Avec cette fonction implémentée dans le serveur de noms, les applications utilisateur gagnent en efficacité dans la conception et le fonctionnement.
la combinaison de la mise en cache DNS et des fonctions récursives dans un serveur de noms n’est pas obligatoire; les fonctions peuvent être implémentées indépendamment dans des serveurs à des fins spéciales.
les fournisseurs de services Internet fournissent généralement des serveurs de noms récursifs et de mise en cache à leurs clients., En outre, de nombreux routeurs réseau domestiques implémentent des caches DNS et des récurseurs pour améliorer l’efficacité du réseau local.
résolveurs DNS
le côté client du DNS est appelé un résolveur DNS. Un résolveur est responsable d’initier et de séquencer les requêtes qui conduisent finalement à une résolution complète (traduction) de la ressource Recherchée, par exemple, la traduction d’un nom de domaine en une adresse IP. Les résolveurs DNS sont classés par une variété de méthodes de requête, telles que récursive, non récursive et itérative. Un processus de résolution peut utiliser une combinaison de ces méthodes.,
dans une requête non récursive, un résolveur DNS interroge un serveur DNS qui fournit un enregistrement pour lequel le serveur fait autorité, ou il fournit un résultat partiel sans interroger d’autres serveurs. Dans le cas d’un résolveur DNS de mise en cache, la requête non récursive de son cache DNS local fournit un résultat et réduit la charge sur les serveurs DNS en amont en mettant en cache les enregistrements de ressources DNS pendant une période de temps après une réponse initiale des serveurs DNS en amont.
dans une requête récursive, un résolveur DNS interroge un seul serveur DNS, qui peut à son tour interroger d’autres serveurs DNS au nom du demandeur., Par exemple, un simple résolveur stub exécuté sur un routeur domestique effectue généralement une requête récursive vers le serveur DNS exécuté par le FAI de l’utilisateur. Une requête récursive est une requête pour laquelle le serveur DNS répond complètement à la requête en interrogeant d’autres serveurs de noms selon les besoins. Dans une opération typique, un client émet une requête récursive à un serveur DNS récursif de mise en cache, qui émet ensuite des requêtes non récursives pour déterminer la réponse et envoyer une seule réponse au client., Le résolveur, ou un autre serveur DNS agissant récursivement pour le compte du résolveur, négocie l’utilisation du service récursif en utilisant des bits dans les en-têtes de requête. Les serveurs DNS ne sont pas requis pour prendre en charge les requêtes récursives.
la procédure de requête itérative est un processus dans lequel un résolveur DNS interroge une chaîne d’un ou plusieurs serveurs DNS. Chaque serveur renvoie le client au serveur suivant de la chaîne, jusqu’à ce que le serveur actuel puisse résoudre complètement la demande. Par exemple, une résolution possible de www.example.com interrogerait un serveur racine global, puis un serveur « com », et enfin un « example.com » serveur.,
dépendances circulaires et enregistrements collés
les serveurs de noms dans les délégations sont identifiés par leur nom plutôt que par leur adresse IP. Cela signifie qu’un serveur de noms de résolution doit émettre une autre demande DNS pour connaître l’adresse IP du serveur auquel il a été référé. Si le nom donné dans la délégation est un sous-domaine du domaine pour lequel la délégation est fournie, il existe une dépendance circulaire.
dans ce cas, le serveur de noms fournissant la délégation doit également fournir une ou plusieurs adresses IP pour le serveur de noms faisant autorité mentionné dans la délégation., Cette information est appelée colle. Le serveur de noms délégant fournit cette colle sous forme d’enregistrements dans la section supplémentaire de la réponse DNS, et fournit la délégation dans la section autorité de la réponse. Un enregistrement glue est une combinaison du serveur de noms et de l’adresse IP.
par exemple, si le serveur de noms faisant autorité pour example.org est ns1.example.org, un ordinateur essayant de résoudre www.example.org première résolution ns1.example.org. comme ns1 est contenu dans example.org, cela nécessite de résoudre example.org d’abord, qui présente une dépendance circulaire., Pour briser la dépendance, le serveur de noms pour l’organisation de domaine de premier niveau inclut glue avec la Délégation pour example.org. les enregistrements de colle sont des enregistrements d’adresse qui fournissent des adresses IP pour ns1.example.org. le résolveur utilise une ou plusieurs de ces adresses IP pour interroger l’un des serveurs faisant autorité du domaine, ce qui lui permet de terminer la requête DNS.
mise en cache des enregistrements
Une pratique courante dans l’implémentation de la résolution de noms dans les applications consiste à réduire la charge sur les serveurs du système de noms de domaine en mettant en cache les résultats localement ou dans des hôtes de résolveurs intermédiaires., Les résultats obtenus à partir d’une requête DNS sont toujours associés à la durée de vie (TTL), un délai d’expiration après lequel les résultats doivent être ignorés ou actualisés. Le TTL est défini par l’administrateur du serveur DNS faisant autorité. La période de validité peut varier de quelques secondes à des jours, voire des semaines.
en raison de cette architecture de mise en cache distribuée, les modifications apportées aux enregistrements DNS ne se propagent pas immédiatement dans tout le réseau, mais nécessitent que tous les caches expirent et soient actualisés après la durée de vie. RFC 1912 transmet des règles de base pour déterminer les valeurs de TTL appropriées.,
certains résolveurs peuvent remplacer les valeurs TTL, car le protocole prend en charge la mise en cache jusqu’à soixante-huit ans ou aucune mise en cache. La mise en cache négative, c’est-à-dire la mise en cache du fait de l’Inexistence d’un enregistrement, est déterminée par les serveurs de noms faisant autorité pour une zone qui doit inclure L’enregistrement Start of Authority (SOA) lorsqu’il n’existe aucune donnée du type demandé. La valeur du champ minimum de L’enregistrement SOA et le TTL du SOA lui-même sont utilisés pour établir le TTL pour la réponse négative.,
recherche Inversée
Une recherche DNS inversée est une requête DNS pour les noms de domaine lorsque l’adresse IP est connue. Plusieurs noms de domaine peuvent être associés à une adresse IP. Le DNS stocke les adresses IP sous forme de noms de domaine en tant que noms spécialement formatés dans les enregistrements de pointeur (PTR) dans le domaine de premier niveau de l’infrastructure arpa. Pour IPv4, le domaine est in-addr.arpa. pour IPv6, le domaine de recherche inverse est ip6.arpa. l’adresse IP est représentée sous la forme d’un nom dans la représentation d’octet ordonnée inverse pour IPv4 et dans la représentation de grignotage ordonnée inverse pour IPv6.,
lors d’une recherche inversée, le client DNS convertit l’adresse dans ces formats avant d’interroger le nom d’un enregistrement PTR suivant la chaîne de délégation comme pour toute requête DNS. Par exemple, en supposant que L’adresse IPv4 208.80.152.2 est affectée à Wikimedia, elle est représentée comme un nom DNS dans l’ordre inverse: 2.152.80.208.in-addr.arpa. lorsque le résolveur DNS obtient une requête de pointeur (PTR), il commence par interroger les serveurs racine, qui pointent vers les serveurs D’American Registry for Internet Numbers (ARIN 208.in-addr.arpa zone. Les serveurs d’ARIN déléguent 152.80.208. in-addr.,arpa à Wikimedia auquel le résolveur envoie une autre requête pour 2.152.80.208.in-addr.arpa, ce qui se traduit par une réponse faisant autorité.
Client recherche
DNS séquence de résolution
généralement, les Utilisateurs ne peuvent pas communiquer directement avec un résolveur DNS. Au lieu de cela, la résolution DNS s’effectue de manière transparente dans des applications telles que les navigateurs web, les clients de messagerie électronique et d’autres applications Internet., Lorsqu’une application fait une demande qui nécessite une recherche de nom de domaine, ces programmes envoient une demande de résolution au résolveur DNS dans le système d’exploitation local, qui à son tour gère les communications requises.
le résolveur DNS aura presque invariablement un cache (voir ci-dessus) contenant des recherches récentes. Si le cache peut fournir la réponse à la demande, le résolveur renverra la valeur dans le cache au programme qui a fait la demande. Si le cache ne contient pas la réponse, le résolveur enverra la demande à un ou plusieurs serveurs DNS désignés., Dans le cas de la plupart des utilisateurs à domicile, le fournisseur de services Internet auquel la machine se connecte fournira généralement ce serveur DNS: un tel utilisateur aura soit configuré l’adresse de ce serveur manuellement, soit autorisé DHCP à la définir; cependant, lorsque les administrateurs de systèmes ont configuré les systèmes pour utiliser leurs propres serveurs DNS, leurs résolveurs DNS pointent vers des serveurs de noms gérés séparément de l’organisation. Dans tous les cas, le serveur de noms ainsi interrogé suivra le processus décrit ci-dessus, jusqu’à ce qu’il trouve un résultat ou non., Il renvoie ensuite ses résultats au résolveur DNS; en supposant qu’il a trouvé un résultat, le résolveur met dûment en cache ce résultat pour une utilisation future et remet le résultat au logiciel qui a initié la demande.
résolveurs cassés
certains grands FAI ont configuré leurs serveurs DNS pour violer les règles, par exemple en désobéissant aux TTL, ou en indiquant qu’un nom de domaine n’existe pas simplement parce qu’un de ses serveurs de noms ne répond pas.
certaines applications telles que les navigateurs web maintiennent un cache DNS interne pour éviter les recherches répétées via le réseau., Cette pratique peut ajouter une difficulté supplémentaire lors du débogage des problèmes DNS car elle obscurcit l’historique de ces données. Ces caches utilisent généralement des temps de mise en cache très courts de l’ordre d’une minute.
Internet Explorer représente une exception notable: les versions JUSQU’à IE 3.x cache les enregistrements DNS pendant 24 heures par défaut. Internet Explorer 4.X et les versions ultérieures (JUSQU’à IE 8) diminuent la valeur de délai d’attente par défaut à une demi-heure, qui peut être modifiée en modifiant la configuration par défaut.
lorsque Google Chrome détecte des problèmes avec le serveur DNS, il affiche un message d’erreur spécifique.,
Autres applications
Le Système de Nom de Domaine comprend plusieurs autres fonctions et caractéristiques.
les noms D’hôte et les adresses IP ne doivent pas correspondre dans une relation individuelle. Plusieurs noms d’hôte peuvent correspondre à une seule adresse IP, ce qui est utile dans l’hébergement virtuel, dans lequel de nombreux sites web sont servis à partir d’un seul hôte. Alternativement, un nom d’hôte unique peut se résoudre en plusieurs adresses IP pour faciliter la tolérance aux pannes et la répartition de la charge sur plusieurs instances de serveur dans une entreprise ou sur Internet mondial.,
DNS sert à d’autres fins en plus de traduire les noms en adresses IP. Par exemple, les agents de transfert de courrier utilisent le DNS pour trouver le meilleur serveur de messagerie pour livrer le courrier électronique: un enregistrement MX fournit un mappage entre un domaine et un échangeur de courrier; cela peut fournir une couche supplémentaire de tolérance aux pannes et de répartition de la charge.
le DNS est utilisé pour le stockage et la distribution efficaces des adresses IP des hôtes de messagerie blacklistés., Une méthode courante consiste à placer l’adresse IP de l’hôte sujet dans le sous-domaine d’un nom de domaine de niveau supérieur et à résoudre ce nom en un enregistrement indiquant une indication positive ou négative.
Par exemple:
les serveurs de messagerie peuvent interroger la liste noire.exemple pour savoir si un hôte spécifique se connectant à eux est dans la liste noire. Bon nombre de ces listes noires, basées sur un abonnement ou gratuites, sont disponibles pour être utilisées par les administrateurs de messagerie et les logiciels anti-spam.,
pour assurer la résilience en cas de panne d’ordinateur ou de réseau, plusieurs serveurs DNS sont généralement fournis pour la couverture de chaque domaine. Au niveau supérieur du DNS mondial, treize groupes de serveurs de noms racine existent, avec des « copies » supplémentaires d’entre eux distribués dans le monde entier via l’adressage anycast.
le DNS dynamique (DDNS) met à jour un serveur DNS avec une adresse IP client à la volée, par exemple, lors d’un déplacement entre FAI ou points chauds mobiles, ou lorsque l’adresse IP change administrativement.