1 SEN Cours DNS SERVEUR DNS 1. Introduction Les ordinateurs connectés au réseau Internet communiquent en utilisant un protocole appelé TCP/IP. Chaque ordinateur est identifié avec une adresse numérique de 32 bits, exemple : 195.56.22.223. La notation numérique pour identifier les machines n'est pas commode pour l'utilisateur qui a du mal à retenir une longue suite de chiffres. Il est plus aisé de leur attribuer des noms qui vont servir à les identifier. www.wikipedia.fr est plus facile à retenir que 78.109.84.114. Les machines ne communiquant entre elles qu'avec leurs adresses numériques, il est donc nécessaire de disposer d'un service de mise en correspondance nom / adresse IP qui permette aussi bien de trouver l'adresse IP d'une machine à partir de son nom (résolution de nom) que de retrouver le nom à partir de l'adresse IP (résolution inverse). Ce service mis au point en novembre 1983 par Paul Mockapetris est le DNS (Domain Name System) Ce système propose : Un espace de noms hiérarchique permettant de garantir l'unicité d'un nom dans une structure arborescente, à la manière des systèmes de fichiers. Un système de serveurs distribués permettant de rendre disponible l'espace de noms. Un système de clients permettant de « résoudre » les noms de domaines, c'est-à-dire interroger les serveurs afin de connaître l'adresse IP correspondant à un nom. 2. L’espace de noms www.wikipedia.fr. Le DNS considère le réseau comme une arborescence de domaines. . fr de it … edu wikipedia onisep www www Racine org net com … Domaine de 1 niveau TLD Domaine de 2éme niveau SLD ftp Lycée des Métiers Jacques Prévert Combs – la – Ville Section de BAC PRO Systèmes électroniques numériques Machines 1 1 SEN Cours DNS La racine (root) qui constitue le sommet de l'arbre ; elle est représentée par un point "." Des nœuds qui représentent des domaines et sont identifiés chacun par un label (exemple : fr, nl, sn, com, etc...). Les informations concernant les éléments de chaque nœud sont stockées dans une base de données propre au nœud et gérée par celui-ci. Un nom de domaine est obtenu par concaténation de labels de nœuds de l'arbre de nommage séparés par des points ".". Les caractères autorisés pour les labels sont "A ... Z", "a ... z", "0 ... 9", "-"; aucune différence n'est faite entre les caractères majuscules et minuscules. Le label d'un nœud de l'arbre doit être unique pour le niveau dans lequel se situe le nœud. La longueur maximale permise pour un label est de 63 caractères, la profondeur maximale de l'arborescence est de 127 niveaux, mais la longueur totale pour un nom de domaine est limitée à 255 caractères. L'ensemble des noms de domaine constitue ainsi un arbre inversé où chaque nœud est séparé du suivant par un point " . " L'extrémité d'une branche est appelée hôte, et correspond à une machine ou une entité du réseau. Le nom d'hôte qui lui est attribué doit être unique dans le domaine ou sous-domaine considéré. A titre d'exemple le serveur web d'un domaine porte généralement le nom www. Le nom absolu correspondant à l'ensemble des étiquettes des nœuds d'une arborescence, séparées par des points, et terminé par un point final. Appelé adresse FQDN (Fully Qualified Domain Name, soit Nom de Domaine Totalement Qualifié). La profondeur maximale de l'arborescence est de 127 niveaux et la longueur maximale d'un nom FQDN est de 255 caractères. L'adresse FQDN permet de repérer de façon unique une machine sur le réseau des réseaux. Exemple : www.wikipedia.fr. représente une adresse FQDN. 3. Qui gère les noms de domaines C’est l’organisme ICANN (Internet Corporation for Assigned Names and Numbers) qui supervise l’attribution des noms de domaine de premier niveau TLD (Top Level Domain) Liste des TLD existants : http://www.iana.org/domains/root/db Les TLD peuvent être subdivisés en deux catégories : les domaines de premier niveau nationaux ou ccTLD (country-code TLD) et les domaines de premier niveau génériques gTLD (generic TLD). gTLD .com Organisations commerciales .edu Écoles, universités (accréditées aux Etats-Unis) .gov Organisations gouvernementales américaines .mil Organismes militaires américains .net Organismes spécialisés dans les réseaux .int Organisations gouvernementales internationales .org Organismes à but non lucratif ( www.icann.org/tr/french.html ) .fr .uk … ccTLD france united Kingdom Pour la France, l’AFNIC (Association Française pour le Nommage Internet en Coopération) est l’organisme en charge de la gestion administrative et technique des noms de domaine en .fr et .re (Réunion) .yt, .pm, .wf ou .tf Pour obtenir un nom de domaine , l’utilisateur final doit s’adresser à un bureau d’enregistrement (registrar en anglais) qui est une société prestataire de service (fournisseur d'accès à Internet, hébergeur, agence web, etc.) accréditée par l'Afnic pour la création des adresses Internet ou noms de domaine en .fr, .re, .yt, .pm, .wf et .tf. Il est l’intermédiaire obligatoire entre le client final et l'Afnic pour toute demande de dépôt d’un nom de domaine. Lycée des Métiers Jacques Prévert Combs – la – Ville Section de BAC PRO Systèmes électroniques numériques 2 1 SEN Cours DNS Il existe aujourd’hui environ 400 bureaux d'enregistrement accrédités par l’Afnic proposant l’achat de nom de domaine en .fr, .re, .yt, .pm, .wf et .tf. Exemple OVH.com, Gandi.net, Nordnet, 1&1. Le registrar est responsable de la maintenance de la base de données des noms de domaine réservés auprès de lui, ainsi que de la mise à jour de la base de données des registres qu'il représente. De ces mises à jour dépend le fonctionnement du système DNS. 4. Les serveurs de noms Chaque domaine possède un serveur de noms de domaines, appelé « serveur de noms primaire » (primary domain name server), ainsi qu'un serveur de noms secondaire (secondary domaine name server), permettant de prendre le relais du serveur de noms primaire en cas d'indisponibilité. Le serveur primaire contient toutes les informations sur la zone qu’il gère, on dit qu’il fait : autorité Chaque serveur de nom est déclaré dans un serveur de nom de domaine de niveau immédiatement supérieur, ce qui permet implicitement une délégation d'autorité sur les domaines. Le système de nom est une architecture distribuée, où chaque entité est responsable de la gestion de son nom de domaine Registry Registrar Gestion des TLD VeriSign.inc 1&1 13 serveurs racines x serveur de 1er niveau x serveur de 2eme niveau Registry ICANN VeriSign.inc Cogent University California NASA US Army .com .net … ….. … 298 T LD .com .net .org .gov … … .fr .de .be .uk .. lyceemetierscombs.net …. …. www.lyceemetierscombs.net = 213.165.76.214 Registry Registrar Afnic Gandi 5 serveurs de 1er niveau 5 serveurs de 2éme niveau .fr .re www.wikipedia.fr = 78.109.84.114 Wikipedia.fr …. Lycée des Métiers Jacques Prévert Combs – la – Ville Section de BAC PRO Systèmes électroniques numériques 3 1 SEN Cours DNS Serveurs root / Serveurs racines La racine (root) occupe une place fondamentale dans l'arbre de nommage ; elle contient les références de tous les serveurs de domaines de premier niveau (TLD). Compte tenu de son importance primordiale pour le fonctionnement d'Internet, la racine est réalisée à travers 13 serveurs répartis dans le monde et qui, par un système de réplication, contiennent la même information. Les serveurs root sont identifiés par les lettres de A à M et appartiennent tous au même domaine ROOT-SERVERS.NET Le serveur d'origine est géré par VeriSign Global Registry Services Les autres serveurs en sont des serveurs miroirs et sont administrés par les institutions suivantes : Hostname IP Addresses Manager a.root-servers.net 198.41.0.4, 2001:503:ba3e::2:30 VeriSign, Inc.(USA) b.root-servers.net 192.228.79.201, 2001:500:84::b University of Southern California (ISI) (USA) c.root-servers.net 192.33.4.12, 2001:500:2::c Cogent Communications (USA) d.root-servers.net 199.7.91.13, 2001:500:2d::d University of Maryland (USA) e.root-servers.net 192.203.230.10 NASA (Ames Research Center) (USA) f.root-servers.net 192.5.5.241, 2001:500:2f::f Internet Systems Consortium, Inc. (USA) g.root-servers.net 192.112.36.4 US Department of Defense (NIC) (USA) h.root-servers.net 198.97.190.53, 2001:500:1::53 US Army (Research Lab) (USA) i.root-servers.net 192.36.148.17, 2001:7fe::53 Netnod (Suède) j.root-servers.net 192.58.128.30, 2001:503:c27::2:30 VeriSign, Inc. (USA) k.root-servers.net 193.0.14.129, 2001:7fd::1 RIPE NCC (UK, Europe) l.root-servers.net 199.7.83.42, 2001:500:3::42 ICANN (USA) m.root-servers.net 202.12.27.33, 2001:dc3::35 WIDE Project (Japon) Afin d’assurer le bon maintien du service, ces serveurs sont en réalité redondés, soit localement, soit de manière répartie. Dans ce dernier cas, la technique de routage Anycast est utilisée afin d’associer l’adresse IP d’un serveur racine à plusieurs machines éloignées géographiquement permettant de répartir la charge des requêtes en toute transparence. Par exemple, le serveur racine « c.root-servers.org » est géré par la société Cogent et est en réalité composé de 8 serveurs répartis sur la planète. Pour plus d’information sur les serveurs roots vous pouvez consulter le site http://root-servers.org/ Tous les serveurs racines Lycée des Métiers Jacques Prévert Combs – la – Ville Section de BAC PRO Systèmes électroniques numériques 4 1 SEN Cours DNS Le serveur racine « c.root-servers.org » Serveurs de 1er niveau gérés par l’Afnic Serveurs de 2eme niveau gérés par le prestataire Gandi.net pour la zone fr 5. Les requêtes DNS Le DNS étant une architecture distribuée, il y a deux approches pour un serveur quant à la façon de répondre aux requêtes : récursive : un premier serveur ne possédant pas la réponse à la requête qui lui est soumise prend la requête à son compte, détermine un second serveur compétent et transmet la requête. Il continue ensuite de contacter d'autres serveurs en fonction des réponses retournées, jusqu'à ce qu'il puisse apporter la réponse complète ; itérative : un premier serveur ne possédant pas la réponse fournit au client la meilleure réponse qu'il connaisse. Le client effectue alors lui-même de nouvelles requêtes pour résoudre. Dans le mode récursif, le serveur prend tout le processus de résolution à sa charge pour apporter une réponse définitive. Dans le mode itératif, le serveur ne fait qu'orienter le client vers d'autres serveurs adaptés. Une interrogation DNS type implique de manière générale quelques acteurs ayant des rôles différents : un client aussi appelé « résolveur » privilégiant une interrogation récursive vers un ou plusieurs serveurs caches (configurés manuellement ou spécifiés dans un bail DHCP...) et d'interpréter leurs réponses. Il n'a pas l'intelligence suffisante pour suivre les différentes réponses et laisse cette tâche aux serveurs de noms locaux ou précisés dans la configuration réseau. Ces derniers feront alors les opérations nécessaires pour fournir une réponse finale ; un serveur de noms interrogé, obligé de répondre complètement à la requête envoyée par le client. Dans le cas contraire, il doit envoyer une réponse précisant que la donnée requise ou le nom demandé n'existe pas. Lycée des Métiers Jacques Prévert Combs – la – Ville Section de BAC PRO Systèmes électroniques numériques 5 1 SEN Cours DNS Ce serveur ne fait pas nécessairement autorité sur les informations demandées et pose donc les questions à d'autres serveurs (en mode itératif ou récursif). Dans le cas le plus complet, il demandera d'abord aux serveurs racine, puisque par définition chaque serveur de noms connaît les noms et les adresses des serveurs racines. un serveur de cache DNS qui est souvent commun au serveur récursif et qui prend en charge de fournir des réponses complètes. Il a une bonne vue de l'ensemble des requêtes et donc des optimisations possibles ; d'autres serveurs DNS, dont un serveur DNS autorité pour la ressource demandée dont la réponse sera transmise au client par le serveur récursif précédent. serveur DNS racine (.) 3 4 5 serveur DNS de 1er niveau 6 Serveur DNS du FAI 7 8 9 2 serveur DNS de 2eme niveau 1 10 Serveur DNS de l’entreprise Ordinateur client L’utilisateur veut consulter le site www.wikipedia.fr 11 serveur web de wikipedia Le schéma ci-dessus reprend le processus complet d'une résolution. Les étapes sont les suivantes : Le serveur de noms de l’entreprise reçoit une requête récursive (1) en provenance d'un poste client pour résoudre www.wikipedia.fr. Comme il ne fait pas autorité pour la zone, et que l’adresse ne se trouve pas dans le cache DNS, il effectue une demande récursive auprès du serveur DNS de cache de son fournisseur d’accès Internet (2). Le serveur DNS du fournisseur d’accès Internet ne trouve pas l’adresse dans son cache, il effectue alors une requête itérative auprès des serveurs racine (3). Un serveur racine répond en disant de contacter le serveur gérant le premier niveau du domaine fr, car il est en mode itératif, il lui fournit l’adresse IP du serveur (4). Lycée des Métiers Jacques Prévert Combs – la – Ville Section de BAC PRO Systèmes électroniques numériques 6 1 SEN Cours DNS Le serveur DNS du FAI continue le processus de résolution car il est en mode récursif et interroge donc le serveur DNS de 1er niveau (5), pour résoudre www.wikipedia.fr ; Le serveur DNS de premier niveau répond en disant de contacter le serveur gérant le second niveau du domaine wikipedia.fr, il lui fournit l’adresse IP du serveur (6). Le serveur DNS de cache contacte alors le serveur DNS de second niveau avec une demande itérative (7). Le serveur DNS de second niveau répond avec autorité en fournissant l’adresse IP pour le nom www.wikipedia.fr (8). L’adresse est maintenant résolue. Le serveur DNS de cache du fournisseur Internet renvoie la réponse auprès du serveur de cache de l’entreprise (9) après l’avoir stockée dans son cache. Elle sera utilisée pour les demandes ultérieures et restera dans le cache pendant la durée de vie (TTL) de l’enregistrement. Le serveur DNS de cache de l’entreprise renvoie la réponse auprès du client (10) après l’avoir stockée dans son cache. Elle sera utilisée pour les demandes ultérieures et restera dans le cache pendant la durée de vie (TTL) de l’enregistrement. Le choix de ces modes de configuration est primordial et a de très fortes implications dans l'architecture DNS. De manière générale, les serveurs racines ainsi que les serveurs publics doivent être en mode itératif, tandis que des serveurs au cœur des réseaux d'opérateurs ou permettant de résoudre un nom depuis un Intranet doivent offrir le service récursif pour les utilisateurs clients ou internes uniquement. 6. Les enregistrements Le serveur primaire contient toutes les informations sur la zone qu’il gère, on dit qu’il fait : autorité Chaque zone est configurée dans un fichier $TTL 604800 ; (1w) $ORIGIN wikipedia.fr. ; Informations générales @ IN SOA a.dns.gandi.net. 1331295204 10800 3600 604800 10800 ) hostmaster.gandi.net ( ; Serial ; Refresh (3h) ; Retry (1h) ; Expire (7d) ; Negative Cache TTL (1h) ; ; Enregistrements du domaine, des sous-domaines et correspondances IP @ @ www blog 10800 10800 10800 10800 IN IN IN IN NS MX A CNAME a.dns.gandi.net. 10 spool.mail.gandi.net 78.109.84.114 www TTL : (Time to Live) Ce TTL est la durée pendant laquelle les informations sont conservées en cache. Ce délai passé, une nouvelle demande devra être faite au serveur. Le TTL est défini ici sur 1 semaine ORIGIN : est une variable qui définie la valeur de @ SOA : donne les infos de la zone, comme le serveur DNS principal, l'adresse mail de l'administrateur de la zone NS : correspond au serveur de noms ayant autorité sur le domaine. MX : (Mail eXchange) : correspond au serveur de gestion du courrier A : il s'agit du type de base établissant la correspondance entre un nom canonique et une adresse IP. CNAME :(Canonical Name) : il permet de faire correspondre un alias au nom canonique. Il est particulièrement utile pour fournir des noms alternatifs correspondant aux différents services d'une même machine Lycée des Métiers Jacques Prévert Combs – la – Ville Section de BAC PRO Systèmes électroniques numériques 7 1 SEN Cours DNS 7. Le serveur DNS BIND Le serveur DNS BIND (Berkley Internet Naming Daemon), est le serveur DNS le plus utilisé sur Internet. Il peut être utilisé de différentes manières. Les configurations les plus fréquentes sont : Serveur cache Serveur maître Serveur esclave Serveurs hybrides Serveurs furtifs Serveurs Récursifs / Non récursifs Les fichiers de configuration de BIND sont stockés sous : /etc/bind/ 8. Les commandes associées aux DNS Commande dos nslookup indique les enregistrements A et CNAME du domaine fourni en argument connus du serveur DNS configuré. ipconfig /flushdns vide le cache de la résolution DNS ipconfig /displaydns affiche le contenu du cache de la résolution dns. Lycée des Métiers Jacques Prévert Combs – la – Ville Section de BAC PRO Systèmes électroniques numériques 8