| Système de noms de domaines (DNS) |
| Écrit par Cgohann | |||||||||||||||
| 07-02-2008 | |||||||||||||||
|
Internet est constitué d'innombrables réseaux et sous-réseaux, eux même constitués de machines accessibles par leur adresse IP. Il convient qu'il est impensable de mémoriser toutes les adresses IP des machines auxquelles nous voulons accéder. Le système DNS (Domain Name System) a donc été développé pour permettre d'identifier une adresse IP par un nom de domaine. Pour se faire, ce système est mis en œuvre par une base de données distribuée au niveau mondial par un organisme, l'InterNIC.
1 - Historique La motivation essentielle conduisant à la mise en œuvre du système de domaines a été la croissance exponentielle d'Internet :
Au fil du temps, les propositions ont été diverses pour remplacer ce mécanisme, et la plus intéressante a été celle d'un espace de noms hiérarchisé, et dont le principe s'appuierait sur la structure des organismes eux-mêmes, et où les noms utiliseraient le caractère "." pour marquer la frontière entre deux niveaux hiérarchiques. 2 - Éléments du DNS Le DNS a trois composants principaux :
3 - Espace de noms de domaine et enregistrements de ressources L'espace de noms de domaines est une structure arborescente. Chaque nœud et feuille de l'arbre correspond à un ensemble de ressources. Ce mémo ne fera par la suite aucune distinction entre l'utilisation des feuilles et la partie information des nœuds, Le système de domaines ne faisant aucune distinction entre les deux types d'entités. Chaque nœud dispose d'un identifiant, d'une longueur de zéro à 63 octets. Des nœuds "frères" ne peuvent pas avoir le même identifiant, bien que le même identifiant puisse se retrouver dans deux nœuds distincts. L'identifiant nul est réservé pour désigner la racine. Le nom de domaine d'un nœud est constitué de la liste des identifiants de tous les nœuds constituant le chemin entre ce nœud et la racine de l'arbre. Lorsqu'un utilisateur doit entrer un nom de domaine, la longueur de chaque identifiant est omise et les identifiants devront être séparés par des points ("."). Un nom de domaine complet atteignant toujours la racine, la forme écrite exacte de tout domaine pleinement qualifié (FQDN : Fully Qualified Domain Name) se termine par un point. Nous utiliserons cette propriété pour distinguer les cas : - d'une chaîne de caractères représentant un FQDN. Par exemple, "Tartampion.MIT.EDU.". - d'une chaîne de caractères représentant les premiers identifiants d'un nom de domaine incomplet, et devant être complété par l'application locale avec un complément absolu. Par exemple, "Tartampion", à utiliser relativement au domaine MIT.EDU. Pour simplifier les implémentations, le nombre total d'octets composant un nom de domaine pleinement qualifié (FQDN) est limité à 255 octets. Exemple d'espace de noms Dans cet exemple, le domaine racine a trois sous-domaines immédiats : MIL, EDU, et ARPA. Le domaine LCS.MIT.EDU a un sous domaine immédiat appelé XX.LCS.MIT.EDU. Toutes les feuilles sont également des domaines. Un nom de domaine identifie un nœud. À chaque nœud est attribué un ensemble d'informations sur des ressources, lequel peut être vide. L'ensemble d'informations de ressources associé à un nom particulier est composé de quatre enregistrements de ressources séparés (RR : ressource Records). L'ordre des RR dans un ensemble n'est pas significatif, et ne doit pas nécessairement être préservé par les serveurs de noms, les résolveurs, ou tout autre partie du DNS.
A : une adresse d'hôte, il assure la correspondance entre le FQDN et l'adresse IP CNAME : (cannonical name) le nom d'un alias, il associe deux FQDN HINFO : le CPU et l'OS d'un hôte MX : (Mail exchanger) un schéma d'échange de courrier pour ce domaine NS : le serveur de noms pour le domaine PTR : un pointeur vers une autre partie de l'espace de noms de domaines, il associe l'adresse IP et le FQDN SOA : (Start of authority) le début d'une sphère d'autorité IN : le système Internet CH : le système Chaotique Les enregistrements de chaque domaine (RR) possèdent une durée de vie TTL (Time To Live), qui permet aux serveurs intermédiaires de savoir s'il est nécessaire de les revérifier. Le champ TTL définit la durée limite pendant laquelle un RR peut être conservé dans un cache local. RDATA : il indique le type et parfois les données dépendantes de la classe décrivant la ressource. Les informations attendues selon le type d'enregistrement sont : - A : une adresse IP - CNAME : un nom de domaine - MX : une valeur de priorité suivi d'un nom d'hôte - NS : un nom d'hôte - PTR : un nom de domaine - SOA : plusieurs champs 4 - Serveurs de noms de domaine Les serveurs de noms sont dépositaires de l'information qui constitue la base de données des domaines. La base de données est divisée en sections appelées zones, lesquelles sont distribuées sur l'ensemble des serveurs de noms. Comme les serveurs de noms peuvent implémenter des fonctions optionnelles et des sources de données différentes, la tâche essentielle d'un serveur de nom reste de répondre à des requêtes sur ses données propres. Par conception, les serveurs de noms peuvent répondre à ces requêtes d'une manière simple ; la réponse peut toujours être générée à partir des seules données locales, et contiendra soit la réponse à la question posée, soit une référence à un autre serveur de noms plus habilité à avoir l'information demandée. Une zone donnée pourra être accessible à partir de plusieurs serveurs de noms afin d'assurer son accessibilité même en cas de défaillance du serveur ou des liaisons. La base de données de domaines est divisée selon deux méthodes : en classes, et par "découpage" de l'espace des noms de domaines. Les domaines sont gérés par plusieurs entités, d'où la distribution de la base de données au niveau mondial. Chaque entité dispose de deux serveurs DNS pour assurer la continuité du service sinon en cas de crash du serveur il n'y aurait plus que les adresses IP pour accéder au domaine. Une entité unique doit gérer les serveurs racine - le "." de l'arborescence (13 aux USA, 1 au Japon, 1 au Royaume Uni et 1 aux Pays bas). En faisant tomber les serveurs racine la majorité du réseau internet tombe. Les différents serveurs racine sont tous des miroirs les uns des autres. 5 - Résolveurs Les résolveurs sont des programmes qui interfacent les applications utilisateur aux serveurs de noms de domaines. Dans le cas le plus simple, un résolveur reçoit une requête provenant d'une application sous la forme d'un appel d'une fonction en bibliothèque, d'un appel système etc., et renvoie une information sous une forme compatible avec la représentation locale de données du système. Le résolveur est situé sur la même machine que l'application recourant à ses services, mais devra par contre consulter des serveurs de noms de domaines sur d'autres hôtes. Comme un résolveur peut avoir besoin de contacter plusieurs serveurs de noms, ou à l'extrême inverse obtenir les informations directement à partir de son cache local, le temps de réponse d'un résolveur peut varier selon de grandes proportions, depuis quelques millisecondes à plusieurs secondes. L'une des raisons les plus importantes qui justifient l'existence des résolveurs est d'éliminer le temps d'acheminement de l'information depuis le réseau, et de décharger simultanément les serveurs de noms, en répondant à partir des données cachées en local. Il en résulte qu'un cache partagé entre plusieurs processus, utilisateurs, machines, etc., sera incomparablement plus efficace qu'un cache non partagé. L'interface client du résolveur est largement dépendante des conventions de l'hôte local, mais on peut exprimer trois fonctions typiques qui rentrent dans le cadre de cette interface :
Bibliographie [RFC-1034] P. Mockapetris, Domain names - concepts and facilities.
Powered by !JoomlaComment 3.1.0 Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved. |
|||||||||||||||
| < Précédent |
|---|