Recherchez sur tout Techno-Science.net
       
Techno-Science.net : Suivez l'actualité des sciences et des technologies, découvrez, commentez
 A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | +
Domain Name System
Pile de protocoles
Application
Présentation
Session
Transport
Réseau
Liaison de données
Physique (La physique (du grec φυσις, la nature) est étymologiquement la « science de la nature ». Dans un sens général et ancien, la...)
Modèle OSI

Le Domain Name System (Le Domain Name System (ou DNS, système de noms de domaine) est un service permettant d'établir une correspondance entre une adresse IP et un nom de...) (ou DNS, système de noms de domaine) est un système permettant d'établir une correspondance (La correspondance est un échange de courrier généralement prolongé sur une longue période. Le terme désigne des...) entre une adresse IP (Une adresse IP (avec IP pour Internet Protocol) est le numéro qui identifie chaque ordinateur connecté à Internet, ou plus généralement et précisément,...) et un nom de domaine (Dans le système de noms de domaine, un nom de domaine (NDD en notation abrégée française ou DN pour Domain Name en anglais) est un identifiant de domaine internet.) et, plus généralement, de trouver une information à partir d'un nom de domaine.

Associer une adresse (Les adresses forment une notion importante en communication, elles permettent à une entité de s'adresser à une autre parmi un ensemble d'entités....) IP et un nom de domaine

Les ordinateurs connectés à un réseau IP, par exemple Internet (Internet est le réseau informatique mondial qui rend accessibles au public des services variés comme le courrier électronique, la messagerie instantanée et le World Wide Web, en...), possèdent tous une adresse IP. Ces adresses sont numériques afin d'être plus facilement traitées par une machine. Selon IPv4 (L'Internet Protocol version 4 ou IPv4 est la première version d'IP à avoir été largement déployée, et forme encore la base (en 2007) de l'Internet. Elle est...), elles prennent la forme xxx.yyy.zzz.aaa, où xxx, yyy, zzz et aaa sont quatre nombres variant entre 0 et 255 (en système décimal). Selon IPv6 (IPv6 (Internet Protocol version 6) est un protocole réseau sans connexion de la couche 3 du modèle OSI.), les IP sont de la forme aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh, où a, b, c, d, e, f, g et h représentent des caractères au format hexadécimal. Il n'est évidemment pas simple pour un humain de retenir ce numéro lorsque l'on désire accéder à un ordinateur (Un ordinateur est une machine dotée d'une unité de traitement lui permettant d'exécuter des programmes enregistrés. C'est un ensemble de circuits électroniques permettant de...) d'Internet. C'est pourquoi un mécanisme est nécessaire pour permettre d'associer à une adresse IP un nom intelligible, humainement plus simple à retenir, appelé nom de domaine. Résoudre un nom de domaine, comme par exemple fr.wikipedia.org, c'est trouver l'adresse IP qui lui est associée.

Fichier ( Un fichier est un endroit où sont rangées des fiches. Cela peut-être un meuble, une pièce, un bâtiment, une base de données informatique. Par exemple : fichier des patients d'un...) HOSTS

Avant DNS, la résolution devait se faire grâce à un fichier texte appelé HOSTS, local à chaque ordinateur. Sous UNIX, il se trouve dans le répertoire /etc. Sous Windows (Windows est une gamme de systèmes d'exploitation produite par Microsoft, principalement destinées aux machines compatibles PC. C'est le remplaçant...), il se trouve dans %SYSTEMROOT%/SYSTEM32/DRIVERS/ETC. Dans ce fichier, chaque ligne correspond à une adresse IP à laquelle peuvent être associés un ou plusieurs noms de domaine. Ce système pose un problème évident de maintenance : il est difficile d'ajouter de nouveaux noms et le fichier doit être échangé entre tous les ordinateurs du réseau. C'est pourquoi le DNS fut inventé en 1983 par Paul Mockapetris (Paul V. Mockapetris est un ingénieur à l'origine du DNS (Domain Name System), une architecture qu'il proposa en 1983 dans le RFC 882 et RFC 883 alors qu'il travaillait à l'Information Sciences...).

Résolution et résolution inverse (En mathématiques, l'inverse d'un élément x d'un ensemble muni d'une loi de composition interne · notée multiplicativement, est un...) avec DNS

Avec DNS, la résolution se fait par l'intermédiaire d'un serveur. Quand un utilisateur souhaite accéder à un site, comme par exemple www.free.fr, son ordinateur émet une requête spéciale à un serveur DNS, demandant 'Quelle est l'adresse de www.free.fr ?'. Le serveur répond en retournant l'adresse IP du serveur, qui est dans ce cas-ci, 212.27.48.10.

Il est également possible de poser la question inverse, à savoir 'Quel est le nom de domaine de telle adresse IP ?'. On parle alors de résolution inverse.

Plusieurs noms de domaine peuvent pointer vers une même adresse IP et réciproquement.

Technique du DNS Round-Robin (L'anglicisme round-robin est utilisée dans plusieurs contextes.)

Lorsqu'un service génère un trafic important, celui-ci peut faire appel à la technique du DNS Round-Robin (en français tourniquet), qui consiste à associer plusieurs adresses IP à un nom de domaine. Les différentes versions de Wikipedia, comme fr.wikipedia.org par exemple, sont associées à plusieurs adresses IP : 207.142.131.247, 207.142.131.248, 207.142.131.235, 207.142.131.236, 207.142.131.245 et 207.142.131.246. Une rotation circulaire entre ces différentes adresses permet ainsi de répartir la charge (La charge utile (payload en anglais ; la charge payante) représente ce qui est effectivement transporté par un moyen de transport donné, et qui donne lieu à un paiement...) générée par ce trafic important, entre les différentes machines, ayant ces adresses IP. Il faut cependant nuancer cette répartition car elle n'a lieu qu'à la résolution du nom d'hôte et reste par la suite en cache sur les différents resolvers (client DNS).

Fully Qualified Domain Name

Les noms d'hôtes sont identifiés de manière unique grâce à leur FQDN (Fully Qualified Domain Name, ou Nom de Domaine Pleinement Qualifié). Ils ont le format hôte.domaine.tld. où hôte correspond au nom d'hôte de la machine et domaine.tld. au domaine auquel l'hôte appartient (tld signifie ici Top Level Domain, ou Domaine de niveau supérieur, c'est-à-dire l'ensemble (En théorie des ensembles, un ensemble désigne intuitivement une collection d’objets (les éléments de l'ensemble), « une multitude qui peut...) des domaines situés directement sous la racine -root .- comme .fr. .com. ou bien .org.). fr.wikipedia.org., par exemple, est composé du domaine générique org, du domaine déposé wikipedia et du nom d'hôte fr.

Le point (Graphie) final bien que facultatif dans la plupart des commandes est en fait indispensable. En effet, soit une machine ayant pour FQDN machine.toto.tata., la pinguer en utilisant la commande (Commande : terme utilisé dans de nombreux domaines, généralement il désigne un ordre ou un souhait impératif.) ping (Ping (acronyme de Packet INternet Groper) est le nom d'une commande informatique (développée par Mike Muuss) permettant d'envoyer une requête ICMP 'Echo' d'une...) machine.toto.tata ne pose pas de problème. Pourtant ce n'est pas le bon FQDN. Pinguer plutôt ping machine.toto.tata. serait plus juste et fonctionne tout (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou l'univers.) aussi bien (y compris dans les browsers Internet, taper http://fr.wikipedia.org ou http://fr.wikipedia.org. n'a aucune différence, l'implémentation de la pile TCP/IP se charge de rajouter le point dans la requete DNS nécessaire à la résolution de nom. L'oubli de ce point dans certaines versions de BIND peut au contraire causer de plus grosses conséquences. En effet, spécifier dans un fichier de zone (exemple celui de la zone toto.tata.) que l'hôte machine.toto.tata a pour adresse IP 1.2.3.4 (cf. enregistrement A) revient à spécifier que la machine a pour FQDN machine.toto.tata.toto.tata..

Un système réparti

Il existe des centaines de milliers de serveurs DNS dans le monde (Le mot monde peut désigner :) entier. Chaque serveur DNS n'a en réalité à sa disposition qu'un ensemble d'informations restreint.

Quand notre serveur DNS (par exemple, celui de notre fournisseur d'accès à Internet) doit trouver l'adresse IP de fr.wikipedia.org, une certaine communication (La communication concerne aussi bien l'homme (communication intra-psychique, interpersonnelle, groupale...) que l'animal (communication intra- ou inter- espèces) ou la machine (télécommunications,...) s'instaure alors avec d'autres serveurs DNS. Tout d'abord, notre serveur demande à des serveurs DNS peu nombreux appelés serveurs racine quels serveurs peuvent lui répondre pour la zone org. Parmi ceux-ci, notre serveur va en choisir un pour savoir quel serveur est capable de lui répondre pour la zone wikipedia.org. C'est ce dernier qui pourra lui donner l'adresse IP de fr.wikipedia.org.

Cependant, ce processus de résolution de nom est long. C'est pourquoi, la plupart des serveurs DNS (et notamment ceux des Fournisseurs d'accès à Internet) font aussi office de DNS cache : ils gardent en mémoire la réponse d'une résolution de nom afin de ne pas effectuer ce long processus à nouveau ultérieurement.

Un nom de domaine peut utiliser plusieurs serveurs DNS. Généralement, les noms de domaines en utilisent deux : un secondaire et un primaire. Seuls ces derniers peuvent fournir une réponse valable à tout instant (L'instant désigne le plus petit élément constitutif du temps. L'instant n'est pas intervalle de temps. Il ne peut donc être considéré comme une durée.). On parle de réponse faisant autorité (authoritative answer en anglais). Les serveurs des Fournisseurs d'accès à Internet quant à eux fournissent des réponses qui ne sont pas nécessairement à jour (Le jour ou la journée est l'intervalle qui sépare le lever du coucher du Soleil ; c'est la période entre deux nuits, pendant...), à cause du cache mis en place. On parle alors de réponse ne faisant pas autorité (non-authoritative answer en anglais).

Pour trouver le nom de domaine d'une IP, on utilise le même principe. Dans un nom de domaine, la partie la plus générale est à droite: org dans fr.wikipedia.org. Dans une adresse ip, c'est le contraire: 213 est la partie la plus générale de 213.228.0.42. Pour conserver une logique (La logique (du grec logikê, dérivé de logos (λόγος), terme inventé par Xénocrate signifiant à la fois raison, langage, et raisonnement) est dans...) cohérente, on inverse l'ordre des quatre termes de l'adresse et on la concatène au pseudo domaine in-addr.arpa.. Ainsi, par exemple, pour trouver le nom de domaine de l'adresse IP 213.228.0.42, on résout 42.0.228.213.in-addr.arpa, qui est un pointeur vers www.free.fr.

Cette architecture (L’architecture peut se définir comme l’art de bâtir des édifices.) garantit au réseau Internet une certaine sécurité. Quand un serveur DNS tombe, le bon fonctionnement de la résolution de nom n'est pas remis en cause. De plus, elle permet de mettre à jour (Le jour ou la journée est l'intervalle qui sépare le lever du coucher du Soleil ; c'est la période entre deux nuits, pendant laquelle les rayons du Soleil éclairent le ciel. Son...) l'adresse IP associée à un nom de domaine dans le monde entier facilement et assez rapidement (un délai de 48 heures est généralement suffisant).

Principaux enregistrements DNS

Les principaux enregistrements définis par un DNS sont :

  • A record ou address record qui fait correspondre un nom d'hôte à une adresse IPv4 (Une adresse IPv4 est une adresse IP dans la version 4 du protocole IP (IPv4). Cette adresse permet d'identifier chaque machine connectée sur un réseau informatique utilisant le protocole...) de 32 bits.
  • AAAA record ou IPv6 address record qui fait correspondre un nom d'hôte à une adresse IPv6 (Cet article décrit le Format d'une Adresses IPv6. Pour l'IPv6 en général, voir l'article généraliste.) de 128 bits.
  • CNAME record ou canonical name record qui permet de faire d'un domaine un alias vers un autre. Cet alias hérite de tous les sous-domaines de l'original.
  • MX record ou mail exchange record qui définit les serveurs de mail pour ce domaine.
  • PTR record ou pointer record qui associe une adresse IP à un enregistrement de nom de domaine.
  • NS record ou name server record qui définit les serveurs DNS de ce domaine.
  • SOA record ou Start (STart était un magazine américain traitant de l'informatique et du jeu vidéo, dédié plus particulièrement à l'Atari ST. C'est un spin-off du magazine...) Of Authority record qui donne les informations générales de la zone : serveur principal, email de contact, différentes durées dont celle d'expiration, numéro de série de la zone.
  • SRV record qui généralise la notion de MX record, standardisé dans la RFC 2782.
  • NAPTR record qui donne accès à des règles de réécriture de l'information, permettant des correspondances assez lâches entre un nom de domaine et une ressource. Il est spécifié dans la RFC 3403.
  • TXT record permet à un administrateur d'insérer un texte quelconque dans un enregistrement DNS. Par exemple, cet enregistrement était utilisé pour implémenter la spécification Sender Policy Framework (Un framework est un espace de travail modulaire. C'est un ensemble de bibliothèques et de conventions permettant le développement rapide d'applications. Il fournit suffisamment de...).

D'autres types d'enregistrements servent (Servent est la contraction du mot serveur et client.) simplement à donner des informations (par exemple, un LOC record - rarissime - indique l'emplacement physique d'un hôte).

MX record

Une entrée DNS MX indique les serveurs SMTP à contacter pour envoyer un e-mail à un utilisateur d'un domaine donné. Sous Unix on peut récupérer les entrées MX correspondant à un domaine à l'aide du programme host(1) (entre autres). Par exemple:

 
 $ host (Le fichier hosts est un fichier utilisé par le système d'exploitation d'un ordinateur lors de l'accès à Internet. Il contient...) -v -t MX wikimedia.org 
 [...] 
 ;; QUESTION SECTION: 
 ;wikimedia.org.                 IN      MX 
 ;; ANSWER SECTION: 
 wikimedia.org.          3600    IN      MX      50 mormo.org. 
 wikimedia.org.          3600    IN      MX      10 mail.wikimedia.org. 
 

On voit que les e-mails envoyé à une adresse en @wikimedia.org sont en fait envoyés au serveur mormo.org ou mail.wikimedia.org. Le nombre (La notion de nombre en linguistique est traitée à l’article « Nombre grammatical ».) précédent le serveur représente la priorité. Normalement on est censé utiliser le serveur avec la priorité numérique la plus petite.

Les entrées MX sont rendues obsolètes par les entrées SRV qui permettent de faire la même chose mais pour tous les services, pas juste SMTP (l'e-mail). L'avantage des entrées SRV par rapport aux entrées MX est aussi qu'elles permettent de choisir un port arbitraire pour chaque service ainsi que de faire de la répartition de charge plus efficacement. L'inconvénient c'est qu'il existe encore peu de programmes clients qui gèrent les entrées SRV.

NAPTR record

Peu répandus à l'heure (L'heure est une unité de mesure  :) actuelle (ils sont surtout utilisés par ENUM). Ils décrivent une réécriture d'une clé (un nom de domaine) en URI. Par exemple, dans ENUM (ENUM, spécifié dans le RFC 3761, est un mécanisme permettant d'utiliser un numéro de téléphone comme clé de recherche dans le DNS pour trouver la manière de joindre une...), des enregistrements NAPTR peuvent être utilisés pour trouver l'adresse de courrier électronique d'une personne, connaissant son numéro de téléphone (qui sert de clé à ENUM).

SOA record

Cet enregistrement permet d'indiquer le serveur de nom faisant autorité, un contact technique et des paramètres d'expiration. Ces paramètres sont dans l'ordre :

Serial 
indique un numéro de version pour la zone. Ce nombre doit être incrémenté à chaque modification du fichier zone. On utilise par convention une date au format yyyymmddhhmm
Refresh 
le nombre de secondes entre les demandes de mise à jour réalisées depuis le serveur secondaire ou les serveurs esclaves.
Retry 
le nombre de secondes que doivent attendre le serveur secondaire ou les serveurs esclaves lorsque leur précédente requête a échouée.
Expire 
le nombre de secondes après laquelle la zone est considérée comme gelée si le secondaire ou les esclaves ne peuvent joindre le serveur primaire.
Minimum 
utilisé pour déterminer la durée de vie (La vie est le nom donné :) minimum du fichier de zone.

Exemple d'une entrée SOA

 
 maboite.com.   IN SOA  serveur.example.com contact.example.com ( 
 200612301905  ;serial (version) 
 3600          ;refresh period 
 900           ;retry refresh this often 
 604800        ;expiration period 
 3600          ;minimum TTL 
 ) 
 

Les versions récentes de BIND (named) acceptent les suffixes M, H, D ou W pour indiquer un interval de temps (Le temps est un concept développé par l'être humain pour appréhender le changement dans le monde.) en minutes ( Forme première d'un document : Droit : une minute est l'original d'un acte. Cartographie géologique ; la minute de terrain est la carte originale, au crayon, levée sur le terrain. ...), heures, jours ou semaines respectivement.

Sécurité du DNS

Comme beaucoup de protocoles Internet, le DNS a été conçu sans se préoccuper de la sécurité. Il ne faut donc pas se fier au DNS pour arriver sur le bon serveur et c'est pour cela que des protocoles comme SSH font leur propre vérification (via la cryptographie). Les principales failles du DNS (décrites dans le RFC 3833) sont :

  • Interception du paquet (requête ou réponse) et émission d'un autre paquet à sa place,
  • Fabrication d'une réponse (les serveurs DNS acceptent trop facilement des réponses puisque seul un numéro de requête, très petit, sert d'authentification),
  • Trahison par un serveur (le secondaire hors-site d'un domaine peut par exemple passer (Le genre Passer a été créé par le zoologiste français Mathurin Jacques Brisson (1723-1806) en 1760.) sous le contrôle de personnes malintentionnées) ou corruption de données,
  • et le traditionnel déni de service.

DNSSEC

Pour contrer ces vulnérabilités, le protocole DNSSEC a été développé.

Hébergeur de noms de domaine

  • DynDNS (DynDNS est un service américain permettant à des utilisateurs qui utilisent une adresse IP dynamique de disposer quand même d'un nom de domaine.) est l'un des plus connus.
  • ZoneEdit permet de gérer les DNS de plusieurs domaines.
Source: Wikipédia publiée sous licence CC-BY-SA 3.0.

Vous pouvez soumettre une modification à cette définition sur cette page. La liste des auteurs de cet article est disponible ici.