Cours: Administration et sécurité des systèmes et des réseaux Chapitre 2: Configuration de la résolution de nom Omar Cheikhrouhou http://people.coins-lab.org/ocheikhrouhou/ AU: 2013-2014 Omar Cheikhrouhou-ISIMA 1
Objectives généraux A la fin de ce chapitre vous serez capable de: Comprendre l utilité du protocole DNS Expliquer le fonctionnement du protocole DNS Enumérez les différents types d enregistrements DNS Expliquer la résolution de requête DNS AU: 2013-2014 Omar Cheikhrouhou-ISIMA 2
Nom de domaine (1) Qu'est-ce qu'un nom de domaine? Le nom de domaine est une des clés indispensables de l'internet. Il est utilisé dans l'ensemble des services (web, messagerie, etc.). Exemple d'une société nommée "AB-CD". l'adresse de son site web est : http://www.ab-cd.fr sa messagerie électronique est du type : contact@ab-cd.fr Dans toutes ces adresses, il y a une partie commune :
Nom de domaine (2) À quoi correspond...? www. : c'est ce qu'il faut rajouter au nom de domaine pour obtenir le nom du serveur web (www.ab-cd.fr) http:// : suivi du nom du serveur web, c'est l'adresse (URL) du serveur web (http://www.abcd.fr)
Nom de domaine (3) Structure Un nom de domaine est constitué : d'un nom (celui d'une société, d'une marque, d'une association, d'un particulier...) ; et d'une extension (appelée aussi suffixe) :.fr,.de,.ca,.jp,.net,.com,.org, etc.
Nom de domaine (4) Syntaxe Le nom de domaine doit être uniquement composé à partir des caractères suivants : A à Z ; 0 à 9 ; le tiret ; aucune différence n'est faite entre les lettres majuscules et minuscules ; tous les autres caractères ne sont pas admis (accents, apostrophe, etc.)
Gestion des noms de domaine (1) Qui gère les noms de domaine? L'internet est gouverné par une instance internationale qui a délégué à des organismes la gestion de chaque zone (.fr,.uk,.com...). Ces organismes sont appelés NIC ("Network Information Center") ou registre. Il existe actuellement plus de 250 zones réparties en 2 catégories : géographiques (2 lettres) :.fr,.uk,.de,.us... génériques (3 lettres et plus) :.com,.org,.name,.museum...
Gestion des noms de domaine (2) Qui gère les noms de domaine? Exemple: ATI (Agence Tunisien de l Internet) en Tunisie L'AFNIC est le NIC français qui gère actuellement le.fr et le.re (Ile de La Réunion)
Prestataire Internet Pour obtenir un nom de domaine dans une zone, il faut en général s'adresser à un prestataire internet travaillant avec le NIC. Chaque NIC (géographique ou générique) est responsable de la gestion de sa(ses) zone(s). Il est également une source d'information sur le nommage de sa(ses) zone(s).
Nommage Chaque NIC a ses propres règles de nommage. Pour avoir son propre nom de domaine, il faut se conformer aux règles de la zone choisie. Certaines zones (.com,.net, org...) ont adopté une gestion très libérale dont la seule règle est "1er arrivé, 1er servi".
Définition du DNS Le DNS ou Domain Name System assure la résolution de noms de domaines (ou résolution d'adresses) On appelle résolution de noms de domaines (ou résolution d'adresses) la corrélation entre les adresses IP et le nom de domaine associé. Le système nommé Domain Name System (DNS), traduisez Système de nom de domaine, a été mis au point en novembre 1983 par Paul Mockapetris (RFC 882 et RFC 883) Puis révisé en 1987 dans les RFCs 1034 et 1035. Le DNS a fait l'objet depuis de nombreuses RFCs.
Eléments du système DNS (1) Ce système propose : un espace de noms hiérarchique permettant de garantir l'unicité d'un nom dans une structure arborescente 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 (resolvers), c'est-à-dire interroger les serveurs afin de connaître l'adresse IP correspondant à un nom.
L'espace de noms (1) La structuration du système DNS s'appuie sur une structure arborescente dans laquelle sont définis des domaines de niveau supérieurs (appelés TLD, pour Top Level Domains), rattachés à un noeud racine (root, «null») représenté par un point.
L'espace de noms (2) On appelle «domaine» chaque noeud de l'arbre un arbre inversé où chaque noeud 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 (serveur web www) Le mot «nom de domaine» correspond formellement à l'ensemble des étiquettes de nœuds d'une arborescence, à l'exception de l'hôte Chaque nœud de l arbre possède une étiquette (en anglais «label») d'une longueur maximale de 63 caractères.
L'espace de noms (3) L adresse FQDN (Fully Qualified Domain Name, soit Nom de Domaine Totalement Qualifié) est l'ensemble des étiquettes des noeuds d'une arborescence terminé par un point final (appelé aussi absolute domain name) La profondeur maximale de l'arborescence est de 127 niveaux 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
L'espace de noms (4) Partially-Qualified Domain Names (PQDNs): ce nom spécifie partiellement l adresse d une machine dans un réseau N est pas terminé par un point final PQDN sont ambigus par définition, pourquoi les utiliser alors? C est pratique pour un administrateur d un domaine Exemple: computer science department at the University of Widgetopia cs.widgetopia.edu. Les fichiers DNS pointent à chaque machine par son FQDN ex. apple.cs.widgetopia.edu., banana.cs.widgetopia.edu., etc. C est plus facile de dire au SW quand tu vois un nom partiellement spécifié suppose qu il appartienne au domaine cs.widgetopia.edu. Ainsi on pourra appeler seulement les machines apple, banana, etc. Quand le DNS software voit un PQDN tel que kiwi, il va le traiter comme kiwi.cs.widgetopia.edu.
L'espace de noms Terminologie 2 Parfois les termes dans cet arbre inversé sont utilisés de la façon suivante: First-level domains TLD Second-Level Domains: ceux directement connectés aux TLDs Subdomains
Les serveurs de noms (1) Les machines appelées serveurs de nom de domaine permettent d'établir la correspondance entre le nom de domaine et l'adresse IP Chaque domaine possède: un «serveur de noms primaire» (primary domain name server) un serveur de noms secondaire (secondary domaine name server), prend le relais du serveur primaire en cas d'indisponibilité
Les serveurs de noms (2) Le système de nom est une architecture distribuée, où chaque entité est responsable de la gestion de son nom de domaine. Il n'existe pas d'organisme ayant à charge la gestion de l'ensemble des noms de domaines
Les serveurs de noms racine (1) Les serveurs correspondant aux domaines de plus haut niveau (TLD) sont appelés «serveurs de noms racine». Il en existe treize, répartis sur la planète, possédant les noms «a.root-servers.net» à «m.root-servers.net». Un serveur de noms définit une zone Une zone est un ensemble de domaines sur lequel le serveur a autorité Chaque ordinateur doit être configuré avec les adresses d un Domain Name Server primaire et secondaire
Les serveurs de noms racine (2)
Les serveurs de noms racine (3)
Le serveur BIND Le serveur le plus répandu s'appelle BIND (Berkeley Internet Name Domain). Il s'agit d'un logiciel libre disponible sous les systèmes UNIX, développé initialement par l'université de Berkeley en Californie et désormais maintenu par l'isc (Internet Systems Consortium)
Les enregistrements (1) Un DNS est une base de données répartie contenant des enregistrements, appelés RR (Resource Records) Les enregistrements de chaque domaine possèdent une durée de vie, appelée TTL (Time To Live ou espérance de vie) Le TTL permet aux serveurs intermédiaires de connaître la date de péremption des informations et ainsi savoir s'il est nécessaire ou non de la revérifier. TTL spécifie la durée de vie d un enregistrement (record) dans une mémoire cache Une réponse fournie de la mémoire cache d un serveur est marquée non-authoritative
Les enregistrements (2) Exemple d enregistrement Nom de domaine FQDN-> terminé par un point. Si le point est omis, le nom de domaine est relatif PQDN, c'est-à-dire que le nom de domaine principal suffixera le domaine saisi
Les enregistrements (3) Exemple d enregistrement Type : une valeur sur 16 bits Classe : IN (valeur=1)-> internet (TCP/IP) (seule valeur utilisée) RDATA : données correspondant à l'enregistrement
Types d'enregistrements (1) A (valeur du type=1): type de base correspondance entre un nom canonique et une adresse IP. plusieurs enregistrements A correspondent aux différentes machines du réseau (serveurs). CNAME (Canonical Name) (valeur du type=5) : faire correspondre un alias au nom canonique (vrai nom). pour fournir des noms alternatifs aux différents services d'une même machine. Utilisé pour masquer un changement dans la structure des noms (alias est le même pour l utilisateur, CNAME change)
Types d'enregistrements (2) HINFO : un champ uniquement descriptif décrire le matériel (CPU) et le système d'exploitation (OS) d'un hôte. Il est généralement conseillé de ne pas le renseigner pour des raisons de sécurité NS (valeur du type=2) : correspond au serveur de noms ayant autorité sur le domaine.
Types d'enregistrements (3) MX (Mail exchange) (valeur du type=15) : Spécifie le lieu d un serveur responsable de la gestion du courrier d un domaine. Lorsqu'un utilisateur envoie un courrier électronique à une adresse (utilisateur@domaine), le serveur de courrier sortant interroge le serveur de nom ayant autorité sur le domaine afin d'obtenir l'enregistrement MX. Il peut exister plusieurs MX par domaine pour des raisons de redondance Ainsi l'enregistrement MX permet de définir une priorité avec une valeur pouvant aller de 0 à 65 535 :
Types d'enregistrements (4) PTR (valeur du type=12) : un pointeur vers une autre partie de l'espace de noms de domaines (utilisé pour le «reverse resolution»). SOA (Start Of Authority) (valeur du type=6) : Utilisé pour marquer le début d une zone DNS Fournit des détails sur la zone tel que le serveur de nom ayant autorité sur la zone, l'adresse électronique du contact technique (dont le caractère «@» est remplacé par un point).
Load Balancing (1) L Address (A) resource record associe une adresse IP unique à un nom => un seul serveur physique Problème: Pour un grand trafic, le serveur doit manipuler un énorme nombre de requêtes (ex. facebook.com, yahoo.com ) Solution: Load balancing Distribution des requêtes sur plusieurs serveurs
Load Balancing (2) Technique: Création de plusieurs Address (A) resource records pour un seul nom. L authoritative server répond par la liste de toutes les adresses IP. Ce serveur change l ordre de cette liste aléatoirement ou séquentiellement avec chaque requête.
Domaines de haut niveau Il existe deux catégories de TLD (Top Level Domain, soit domaines de plus haut niveau) : Les domaines «génériques», appelés gtld (generic TLD) Les domaines «nationaux», appelés cctld (country code TLD)
Les domaines «génériques» (1) Les gtld sont thématiques Classification selon le secteur d'activité gtld historiques :.arpa domaine temporaire utilisé pour la transition au DNS ARPAnet, le précurseur de l Internet moderne (qui à son tour réfère au United States Defense Advanced Research Projects Agency, ARPA) Aujourd hui ce domaine est utilisé pour le reverse name resolution.com entreprises à vocation commerciale. Ce TLD est devenu le «TLD par défaut», l'acquisition est possible aux particuliers..edu correspond aux organismes éducatifs ;
Les domaines «génériques» (2) gtld historiques (suite) :.gov organismes gouvernementaux.int organisations internationales ;.mil organismes militaires ;.net organismes ayant trait aux réseaux. Ce TLD est devenu depuis quelques années un TLD courant. L'acquisition est possible aux particuliers.org correspond habituellement aux entreprises à but non lucratif Remarque:.edu,.gov,.mil utilisés pour les organismes des Etats-Unis de l Amérique seulement
Les domaines «génériques» (3) nouveaux gtld introduits en novembre 2000 par l'icann.aero l'industrie aéronautique.biz (business) entreprises commerciales.museum correspond aux musées ;.name noms de personnes ou noms de personnages imaginaires ;.info organisations ayant trait à l'information ;.coop correspondant aux coopératives ;.pro correspondant aux professions libérales Remarque: Les gtld les plus utilisés sont toujours.com,.net et.org malgré la création de ces gtld
Autorité hiérarchique (1) L'espace de noms DNS est hiérarchique => une structure d autorité hiérarchique pour le gérer L autorité DNS centrale pour l Internet contrôle la création des TLDs Appelée initialement Network Information Center. Devenue après l Internet Assigned Numbers Authority (IANA) Ces fonctions sont partagées actuellemnet entre l IANA et l Internet Corporation for Assigned Names and Numbers (ICANN)
Autorité hiérarchique (2) IANA/ICANN, délègue l autorité à d autres organisations pour l enregistrement des noms dans les différentes parties de la hiérarchie. IANA/ICANN gère la racine (root) DNS name database: L ensemble de toutes les données décrivant tous les domaines DNS. Cette base de données est aussi hiérarchique et distribuée L hiérarchie des noms et l hiérarchie des autorités ne sont pas exactement les mêmes.
Autorité hiérarchique (3) Ex. Voir Annexe 1 pour la liste complète
Les domaines «nationaux» Les cctld correspondent aux différents pays abréviations des noms de pays définies par la norme ISO 3166 Ex.:.lb,.fr,.uk,.us Voir annexe 2 pour la liste complète ou http://www.iana.org/cctld/cctld-whois.htm
Zones d autorité (1) La structure complète du nom DNS est subdivisés en faisant des cuts Cuts créent des groupes de noeuds contigus. Chaque groupe est appelé «zone of authority ou tout simplement zone. Chaque zone est identifié par le domaine du nœud de plus haut niveau dans la zone (la plus proche de la racine) «Cut» => Indépendance de la gestion des noeuds au-dessous du «cut» de ceux au-dessus
Zones d autorité (2) Ex.
Authoritative Servers Un serveur de nom qui contient l information pour cette zone est dit authoritative pour cette zone. Contient les informations officielles de cette zone Responsable des info de résolution des noms de cette zone Chaque zone DNS possède une paire d authoritative servers: un «serveur de noms primaire» (primary domain name server ou master) mis à jour par un administrateur un serveur de noms secondaire (secondary domaine name server ou slave) prend le relais du serveur primaire en cas d'indisponibilité ou pour la répartition de la charge (grand trafic) (load balancing). mis à jour automatiquement du serveur primaire à l aide du processus «zone transfer»
DNS Name Server Name servers sont les machines chargées principalement de la résolution de noms Ces serveurs sont distribués d une façon hiérarchique Distribution qui reflète la structure d autorité et la structure des noms sans être exactement la même => Base de données distribuée Cette hiérarchie est logique et pas physique
Les Resource records RRs Les serveurs de noms sauvegarde les informations DNS sous forme de Resource records (RRs) Les Resource records (RRs) contiennent un type particulier d information sur un nœud de l arbre DNS.
Représentations des RRs Deux représentations des RRs Binaire pour la communication entre serveurs et resolvers Text master files modifiés pour un administrateur pour la gestion des zones
Types de ResouRce Records Les types de DNS RR sont maintenus dans un fichier à l IANA http://www.iana.org/assignments/dnsparameters Il y a plusieurs douzaines de RRs définis mais seulement quelques un sont utilisés
Résolution de noms de domaine (1) www.xyz.net 1. Requête envoyée au «serveur de nom primaire» A. Si celui-ci possède l'enregistrement dans son cache, il l'envoie à l'application B. Sinon il interroge un serveur racine (dans notre cas un serveur racine correspondant au TLD «.net»)
Résolution de noms de domaine (2) www.xyz.net 2. Le serveur racine renvoie une liste de serveurs de noms faisant autorité sur le domaine (adresses IP des serveurs de noms primaire et secondaire de xyz.net)
Résolution de noms de domaine (3) www.xyz.net 3. serveur de noms primaire du domaine va être interrogé 4. Il retourne l'enregistrement correspondant à l'hôte sur le domaine (dans notre cas www)
Résolution Itérative Le client envoie une requête itérative Réponse par l adresse IP ou le nom d un autre serveur qui contient l information ou est plus proche d elle Le client original doit répéter la requête pour le nouveau serveur
Le client envoie une requête récursive Le serveur répond par l adresse IP ou joue le rôle de client Le client original envoie une seule requête Résolution Récursive
Exemple de résolution de nom
Les applications du DNS (1) Le World Wide Web n est pas la seule application utilisant DNS DNS rend service à toute application pouvant utilisé un nom de domaine FTP, Traceroute, Ping
Les applications du DNS (2)
Le courrier électronique (1) L application qui a toujours utilisé DNS est le courrier électronique Les besoins de cette application 1. E-mail ne va pas exactement à la machine spécifiée dans l adresse mail -> @xyzindustries.com (nom court et pratique) machine -> mail.xyzindustries.com 2. Possibilité de changer le nom de la machine sans changer les e-mails de tout le monde 3. Support de plusieurs serveurs pour gérer les courriers. mail1.xyzindustries.com et mail2.xyzindustries.com,
Le courrier électronique (2) La résolution de nom du courrier électronique est différente des autres applications 1. Resolver initialise la résolution de xyzindustries.com 2. Trouve l authoritative server pour xyzindustries.com qui est ns1.xyzindustries.com 3. ns1.xyzindustries.com trouve le MX record pour xyzindustries.com et répond en indiquant que mail.xyzindustries.com doit être utilisé
Le courrier électronique (3) La résolution de nom du courrier électronique est différente des autres applications 4. mail.xyzindustries.com doit être traduit en adresse IP Pour ne pas avoir deux résolutions séparées le serveur DNS combine ces deux infos. Ex. ns1.xyzindustries.com inclut l A (Address) resource record pour mail.xyzindustries.com dans la section Additional du message DNS envoyé dans l étape 3
Protocoles de la couche Transport DNS utilise TCP et UDP pour envoyer ses messages Les messages classiques sont courts => utilise UDP DNS lui-même gère la détection et la retransmission (2 à 5 sec) des requêtes perdues Limite du message UDP pour DNS est de 512 octets Pour l échange de larges informations tel que le «zone transfer», TCP est utilisé TCP/UDP Port number 53
Le message DNS (1) DNS est une application client/serveur Son comportement est de type requête/réponse Un seul type de message est utilisé pour les deux
Le message DNS (2)
L en-tête du message DNS (1)
L en-tête du message DNS (2) ID (2 octets) Généré par le client Copié par le serveur dans la réponse Q/R (1 bit) 0 Requête 1 Réponse Operation Code (4 bits): Type de la requête généré par le client Copié tel qu il est dans la réponse
L en-tête du message DNS (3) AA (1 bit) 1 réponse d un serveur «authoritative» 0 non-authoritative TC (1 bit) 1 Message Tronqué (avec UDP seulement, Taille max d un message UDP = 512 octets) RD (1 bit): 1 requête réclame un «recursive resolution Valeur inchangée dans la réponse si le serveur le supporte
L en-tête du message DNS (4) RA (1 bit) 1 dans la réponse le serveur supporte «recursive resolution 0 ne le supporte pas => noté par le client pour utilisation future Zero (3 bits) = 0 réservés RC (1 bit): 0 dans les requêtes Code résultat de l analyse de la requête (réussi ou erreur)
L en-tête du message DNS (5) QDCount (2 octets): Nombre de questions dans le champ question ANCount (2 octets): Nombre de RRs dans le champ Answer NSCount (2 octets): Nombre de RRs dans le champ Authority ARCount (2 octets): Nombre de RRs dans le champ Additional
Operation Code
Response Code
DNS Question (1) Qname (taille variable): contient l objet, le domaine ou le zone sujet de la requête
DNS Question (2) Qtype (2 octets): type de question Peut contenir le type de RR demandé (ex. 1 pour A, 2 pour NS, ) pour le domaine mentionné dans Qname Peut aussi contenir un code spécial
DNS Question (3) Qclass (2 octets): La classe du RR Normalement 1 pour IN (Internet) La valeur 255 «anyclass»
Les formats du DNS Resource Record Le serveur DNS met le RR a envoyé au client dans l un des trois champs Answer, Authority et Additional Format standard du DNS RR
Les formats du DNS Resource Record Name (variable) Type (2 octets): ex. 1 pour A, 2 pour NS, etc. Class (2 octets): 1 pour IN TTL: Nb de secondes à maintenir le RR dans la cache de la machine réceptrice RDLength (2 octets): taille en octets du RData RData
Formats du Rdata (1) A / Address Resource Record (Type Value 1) RData contient l adresse IP (32 bits) du nom spécifié NS / Name Server Resource Record (Type Value 2) Rdata = NSDName (taille variable) Name Server Domain Name: Nom du authoritative name server du nom spécifié Si l adresse de ce serveur est disponible un A record» est aussi envoyé dans le champ Additional
Formats du Rdata (2) CName / Canonical Name Resource Record (Type Value 5) RData = CName (taille variable) Canonical Name: Le vrai nom du champ name qui doit être résolu en adresse IP PTR / Pointer Resource Record (Type Value 12) Rdata = PTRDName (taille variable) Pointer Domain Name: un nom de domaine Utilisé pour le reverse address lookups
Formats du Rdata (3) SOA / Start Of Authority Resource Record (Type Value 6) Contient le début du DNS Zone
Formats du Rdata (4) SOA / Start Of Authority Resource Record Subfield Name MName RName Serial Size (bytes) Variable Variable 4 Description Master Name: The name of primary authoritative server for the zone. Responsible Name: The electronic mail address of the person responsible for this zone Serial Number: The serial number, or version number, of the resource record database for this zone. Used to determine when changes have been made to the database to trigger zone transfers
Formats du Rdata (5) SOA / Start Of Authority Resource Record (cont. 1) Subfield Name Refresh Retry Size (bytes) 4 4 Description Refresh Interval: The number of seconds that secondary name servers for this zone will wait between attempts to check for changes made to the zone database on the primary name server Retry Interval: The number of seconds a secondary name server waits before trying again to check with a primary for changes if its previous attempt failed
Formats du Rdata (6) SOA / Start Of Authority Resource Record (cont. 2) Subfield Name Expire Minimum Size (bytes) 4 4 Description Expire Interval: The number of seconds that can elapse between successful contacts with the primary name server before a secondary name server must consider the information it holds stale. Negative Caching TTL: Originally carried the default Time To Live value for records where no explicit TTL value was specified. Now represents the zone s negative cache TTL
Formats du Rdata (7) MX / Mail Exchange Resource Record (Type Value 15) Subfield Name Preference Exchange Size (bytes) 2 Variable Description Preference Value: The preference level for this mail exchange. Lower values signify higher preference. Exchange Domain Name: The domain name of a host willing to provide mail exchange services for this named object.
Formats du Rdata (8) TXT / Text Resource Record (Type Value 16) RData = TXT-Data (taille variable) Text Data: Variable-length descriptive text
Lectures Chapitre 6 (configuration de la résolution de noms) du livre Windows Server 2008 Examen MCTS 70-642 - Configuration d'une infrastructure réseau AU: 2013-2014 Omar Cheikhrouhou-ISIMA 82