Le service de nom : DNS
Cyril Rabat
Master 2 ASR - Info09115 - Architecture des réseaux d’entreprise
2012-2013
Cours n°8
DNS : schéma de nommage, protocole
Version 29 septembre 2012
Table des matières
1 Présentation du DNS Introduction
L’espace de nommage
2 La base de données DNS Resource record Les zones
3 Le protocole DNS Format des messages Les requêtes
4 Sécurité et fiabilité du DNS
Présentation du DNS
Table des matières
1 Présentation du DNS Introduction
L’espace de nommage
2 La base de données DNS Resource record Les zones
3 Le protocole DNS Format des messages Les requêtes
4 Sécurité et fiabilité du DNS
Présentation du DNS Introduction
Motivations
Problème
Pour communiquer avec un hôte TCP/IP, il est nécessaire de connaître son adresse IP
Exemple de l’Université de Reims
194.57.104.111
194.57.104.110 194.57.105.60 194.57.105.10
Comment récupérer l’adresse IP d’un hôte à partir de son nom ?
•••
Présentation du DNS Introduction
Motivations
Problème
Pour communiquer avec un hôte TCP/IP, il est nécessaire de connaître son adresse IP
Solution
Pour éviter l’utilisation directe des adresses IP, un nom est associé aux hôtes
Exemple de l’Université de Reims
194.57.105.10
194.57.104.110 cas.univ−reims.fr annuaires.univ−reims.fr
194.57.105.60
ebureau.univ−reims.fr 194.57.104.111 www.univ−reims.fr
Comment récupérer l’adresse IP d’un hôte à partir de son nom ?
•••
Présentation du DNS Introduction
Motivations
Problème
Pour communiquer avec un hôte TCP/IP, il est nécessaire de connaître son adresse IP
Solution
Pour éviter l’utilisation directe des adresses IP, un nom est associé aux hôtes
Exemple de l’Université de Reims
194.57.105.10
194.57.104.110 cas.univ−reims.fr annuaires.univ−reims.fr
194.57.105.60
ebureau.univ−reims.fr 194.57.104.111 www.univ−reims.fr
Comment récupérer l’adresse IP d’un hôte à partir de son nom ?
•••
Présentation du DNS Introduction
Historique
Description
Jusqu’en 1984 : la transcription des noms d’hôtes en adresses IP s’appuie sur une table de correspondance
Cette table est contenue dans un fichier texte, maintenue par le NIC (pour Network Information Center)
,→ Ce fichier est transféré par FTP à l’ensemble des hôtes Sous Unix, utilisation d’un fichier localhosts :
Présent sur chaque machine (/etc/hosts)
Fichier texte contenant des correspondances IP / nom Problèmes de ce type de solutions :
Difficultés de mise à jour
Taille des fichiers avec l’explosion d’Internet
Présentation du DNS Introduction
Le DNS
Généralités
Le DNS pourDomain Name Systemest un système décentralisé de gestion de noms et d’adresses (RFC 1034 et 1035)
C’est un schéma de nommage, un système de base de données distribué et un protocole
Propriétés
Système distribué: coopération d’un très grand nombre de serveurs administrés de manière autonome
Fiable : résistance aux pannes et redondance, réplication des bases Efficace : trafic et réponses locaux le plus possible, forte répartition des données, agglomération et mécanisme de cache
Extensible : différents types de mapping et d’informations, forte indépendance de chaque partie élémentaire de la base
Présentation du DNS Introduction
Fonctionnement général
répartie Base de données requête
réponse
demandeur requête
réponse
Programme Cache
Hôte Serveur DNS
Resolver
Explications
Le client DNS (appelé resolver) est un programme de typedaemon Il permet de résoudre les correspondances nom/adresse lorsqu’une application le demande :
Soit la réponse est en cache
Soit leresolverinterroge un serveur de nom distant
Présentation du DNS Introduction
Nom de domaine et URL
À ne pas confondre
m u n i v−r e i s . f r .
w w w / / : p t t h
nom de la machine extension
URL nom de domaine
m
chemin ressource
/ p r o f i l s / e t u d i a n t . h t l
URL pourUniform Resource Locator appelé aussiadresse Web ,→ Correspond à une ressource Internet
URL absolue : nom complet Nom de domaine :
nom + extension (ou suffixe) + sous-domaine Insensible à la casse
Composé uniquement des caractères A à Z, 0 à 9, “-”
,→Nationalisation des noms de domaine avec l’IDN (utilisation d’alphabets nationaux)
Présentation du DNS L’espace de nommage
Structure arborescente des noms
Espace de nommage
L’espace de nommage est architecturé suivant un arbre Une seule racine :
,→ L’arbre de nommage est globalementunique Un nom est composé au maximum de 255 caractères Au maximum 127 niveaux, 1 à 63 caractères par niveau
. org
wikipedia com
www
arpa in−addr
194 57 104 113 fr
univ−reims
www ebureau
Présentation du DNS L’espace de nommage
Composants d’un nom d’hôte
Description Label :
Chaque nœud de l’arbre est identifié par un label de 1 à 63 octets ,→Sauf la racine qui a un label de 0
Un label est unique sur un niveau donné Le label de la racine est “.”
Nom d’hôte :
Chemin d’un nœud vers la racine
,→Constitué par une succession de labels séparés par un “.”
Maximum de 255 octets “.” compris Appelé en DNS leDomain Name
Un nom complet avec “.” final est appelé FQDN : ,→ PourFully Qualified Domain Name
Présentation du DNS L’espace de nommage
TLD : Top-Level Domains (1/2)
Description
Nœuds de premier niveau dans l’arbre DNS :
,→ Co-supervisés par l’IAB et IANA, INTERNIC et ICANN Deux types : les gTLD et les ccTLD
Les gTLD
TLD génériques (gTLD pour generic TLD) : Historiques : .com, .edu, .gov, .int, .mil, .net, .org
Créés après 2000 : .aero, .biz, .coop, .info, .museum, .name, .pro Créés après 2005 : .cat, .jobs, .mobi, .travel, .asia, .mail, .post, .tel. . . Il existe 2 types de gTLD :
sTLD (sponsored TLD) réservé à une communauté :
,→L’accès restreint est géré par une agence privée ou des organisations ,→Exemples: .asia, .gov, .edu. . .
LesunsponsoredTLD
Présentation du DNS L’espace de nommage
TLD : Top-Level Domains (2/2)
Les ccTLD
TLD nationaux (ccTLD pourcountry code TLD) Liste normalisée ISO3166 ≈2500 pays
Gestion confiée à des organismes nationaux (Registry) Commercialisée par des organismes privés (Registrar) Exemple : en France, c’est l’AFNIC (.fr)
Quelques TLD particuliers
.arpa : gTLD historique réutilisé pour des mécanismes spécifiques tels que le reverse DNSou ENUM
.example, .test, .invalid : expérimentation et documentation .localhost : TLD conventionnel mais non officiel pour localhost=127.0.0.1
La base de données DNS
Table des matières
1 Présentation du DNS Introduction
L’espace de nommage
2 La base de données DNS Resource record Les zones
3 Le protocole DNS Format des messages Les requêtes
4 Sécurité et fiabilité du DNS
La base de données DNS Resource record
Le typage des informations partagées par DNS
Description
Un même nom DNS peut être associé à plusieurs données de types différents :
Adresse IPv4, adresse IPv6, relais de messagerie. . .
Un même nom peut avoir plusieurs valeurs différentes pour un même type : ,→Plusieurs machines associées à un même nom (redondance)
Les données sont stockées dans une base de données répartie
L’ensemble des informations de la base de données DNS est structuré autour desResource Record
Resource records
www.l.google.com, IN, AAAA, 2a00:1450:4007:800::68 www.l.google.com, IN, A, 66.249.92.104
www.google.fr, IN, CNAME, www.google.com www.google.com, IN, CNAME, www.l.google.com
Serveur DNS Base de données
La base de données DNS Resource record
RR : Resource Record
Description des champs
{ Nom-Domaine Type Classe TTL Longueur Données} Nom-Domaine : nom absolu de l’espace de nommage DNS (FQDN) Type : type des données
A : traduction nom/adresse PTR : traduction adresse/nom CNAME : nom canonique (alias)
MX : Mail eXchange (serveur de messagerie) NS : nom du serveur de nom pour le domaine SOA : début d’une zone d’autorité
Classe : généralement IN pour Internet
TTL : durée de vie de l’objet dans les caches en secondes Longueur : longueur des données
Données : valeur de l’objet (associée au type)
La base de données DNS Les zones
Le découpage en zones
Description
L’ensemble de la base de données est divisée en zones ,→ Distribuées sur les serveurs de noms
Le découpage est réalisé : Par classe
Suivant des coupes dans l’espace de noms
L’ensemble des nœuds interconnectés est appelé une zone Unesphère d’autorisationest associée à cette zone : ,→ L’ensemble des nœuds dépendent de cette sphère
zone .
.fr
.com .org
univ−reims annuaires
ebureau www
La base de données DNS Les zones
Description d’une zone
Description
Chaque zone possède au moins un nœud et plus particulièrement celui de plus haut niveau :
,→ C’est le nœud le plus proche de la racine ,→ Souvent utilisé pour identifier la zone
Les données d’une zone sont organisées en 4 parties : Les données générales sur chaque nœud de la zone Les données définissant le nœud supérieur de la zone Les données qui décrivent les sous-zones
Les données permettant d’accéder aux serveurs des sous-zones Rappel: toutes ces données sont stockées dans des RR Une zone est entièrement définie à l’aide d’un jeu de RR Plus particulièrement :
Des RR identifiant chaque serveur de nom de la zone (type NS) Un RR de type SOA qui décrit les paramètres de gestion de la zone
La base de données DNS Les zones
Organisation d’une zone (1/2)
Serveur primaire
Serveur d’autorité de la zone
Chaque zone possède un seul serveur primaire Possède un fichier de zone :
,→ L’ensemble des correspondances entre noms et adresses IP des hôtes de sa zone
Serveur secondaire Il permet :
De répondre à des requêtes
De prendre le relais du serveur primaire en cas de panne
Obtient des données de zone via le réseau à partir d’un serveur de nom détenant l’autorité pour la zone considérée
,→ Transfert de zone
La base de données DNS Les zones
Organisation d’une zone (2/2)
Serveur cache
Constitue sa base de données à partir des réponses de serveurs de noms
Chaque enregistrement à une durée de vie limitée Il n’a aucune autorité sur le domaine :
Pas responsable de la mise-à-jour des données Mais peut répondre aux requêtes de clients
Au final . . .
Le primaire est obligatoire
Le secondaire et le serveur cache sont facultatifs
La base de données DNS Les zones
Les serveurs racines
Description
Serveur cache connaissant l’ensemble des serveurs de noms ayant autorité sur tous les domaines racines (.fr, .com. . . )
Actuellement 13 serveurs racines associés à une lettre de A à M Les serveurs racines peuvent être répartis physiquement dans différents lieux géographiques
,→ Le serveur J est réparti dans 70 locations
,→ Le serveur D est uniquement à l’Université du Maryland Les différents serveurs sont en fait des miroirs
La base de données DNS Les zones
Localisation des serveurs racines (1/2)
http://www.root-servers.org
La base de données DNS Les zones
Localisation des serveurs racines (2/2)
http://www.root-servers.org
La base de données DNS Exercices
Questionnaire
Il est possible d’avoir plusieurs RR . . .
. . . avec le même nom de domaine et de types différents . . . avec le même nom de domaine et le même type . . . qui ne diffèrent que par les données
. . . avec les mêmes données mais avec un domaine différent
La base de données DNS Exercices
Questionnaire
Il est possible d’avoir plusieurs RR . . .
. . . avec le même nom de domaine et de types différents . . . avec le même nom de domaine et le même type . . . qui ne diffèrent que par les données
. . . avec les mêmes données mais avec un domaine différent Précisions
Resource records
www.l.google.com, IN, AAAA, 2a00:1450:4007:800::68 www.l.google.com, IN, A, 66.249.92.104
www.google.fr, IN, CNAME, www.google.com www.google.com, IN, CNAME, www.l.google.com
Serveur DNS Base de données
Le protocole DNS
Table des matières
1 Présentation du DNS Introduction
L’espace de nommage
2 La base de données DNS Resource record Les zones
3 Le protocole DNS Format des messages Les requêtes
4 Sécurité et fiabilité du DNS
Le protocole DNS Format des messages
Le format général des messages
Nombre d’autorités
Partie autorités Parties informations sup.
Nombre d’informations sup.
Partie réponses
Nombre de réponses Identification
Nombre de questions
Paramètres
Partie questions
1 16 32
Explications
Identification: permet d’associer les réponses aux requêtes Paramètres: indique l’opération (cf ci-après)
Nombre de questions,réponses,autorités etinformations sup. : nombre de questions/réponses/autorités/informations supplémentaires dans la partie correspondante
Le protocole DNS Format des messages
Le champ paramètre
Rd Ra Zéro Rcode 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 QR OPCode Aa Tc
Explications
QR : 0 pour question, 1 pour réponse
OPCode: opération (0 pour résolution standard, 1 pour résolution inverse)
Aa: autorité de réponse (0 par d’autorité, 1 autorité sur le domaine) TC : message tronqué (1) ou non (0)
Rd: récursivité demandée (1) ou non (0) Ra : récursivité disponible (1) ou non (0) RCode: indique s’il y a une erreur (0 si aucune)
Le protocole DNS Format des messages
La partie questions
Nom de domaine
Type demande Classe demande
Explications
Nom de domaine :
Le nom de domaine dont on cherche l’adresse
Chaque label est codé sous la forme “longueur”, “label”
Exemple :
10 u n i v - r e i m s 2 f r 0
Type de demande: nature de la demande 1 pour Type A (adresse IPv4)
2 pour Type NS (nom de domaine de l’hôte ayant autorité sur le domaine concerné)
5 pour CNAME (nom canoniqueiealias) 28 pour AAAA (adresse IPv6) . . .
Classe de demande : généralement à 1 (pour Internet→ IN)
Le protocole DNS Format des messages
La partie réponse
Long. champ.
Type
ressources
Nom de domaine Classe TTL
Ressources
Explications
Nom de domaine,Type et Classe: voir la partie questions TTL: la durée de vie de la réponse
Longueur champs resources : la longueur du champ ressources Resources: les données correspondant au type
L’adresse IP
Le nom de l’alias . . .
Idem pour les parties autorités et informations supplémentaires
Le protocole DNS Les requêtes
DNS dans le modèle OSI
Le modèle OSI
2 1 3 4 5 6 7
UDP
IP HTTP
Ethernet
ICMP TCP
DNS
ARP
NNTP IMAP SMTP POP3
DHCP
Le protocole DNS Les requêtes
TCP vs UDP
Description
Le protocole DNS utilise le protocole UDP pour le transport des messages :
,→ Gain de performances par rapport à TCP
Cependant, la taille maximum des messages est limitée à 512o de données (hors en-tête de 12o)
Si le message est trop gros :
Le message est tronqué à 512o et le bitTcest mis à 1 Le client peut alors émettre une nouvelle requête avec TCP Le port utilisé est 53 pour UDP et pour TCP
À noter que le transfert de zone est obligatoirement en TCP
Le protocole DNS Les requêtes
Exemple d’une requête DNS
Requête
Exemple avecnslookup www.google.fr La requête générée : www.google.fr. A IN
Réponse
Partie questions :www.google.fr A IN Partie réponses :
www.google.fr CNAME IN 26354 16 www.google.com www.google.com CNAME IN 112226 8 www.l.google.com
www.l.google.com A IN 241 4 66.249.92.104
Le protocole DNS Les requêtes
Mode itératif (1/2)
Serveur DNS cache
Serveur DNSroot
de zone Serveur DNS
3 − requête
6 − réponse 5 − requête
4 − réponse 2 − réponse
1 − requête
Description
La réponse contient soit la réponse demandée, soit l’adresse du prochain serveur à interroger
Plus simple du côté serveur
Le protocole DNS Les requêtes
Mode itératif (2/2)
Configuration de plusieurs serveurs DNS
Comme vu précédemment, plusieurs serveurs sont en charge du DNS dans une zone
Si un seul serveur est spécifié :
,→ En cas de panne, le système est inutilisable Avec plusieurs serveurs spécifiés :
,→ Si le premier ne répond pas, le second est intérrogé, etc. . .
Exemple
Soit le domaine univ-reims.fr
Serveur primaire : cleo.univ-reims.fr Serveur secondaire :anne.univ-reims.fr
Le protocole DNS Les requêtes
Mode récursif (1/2)
Serveur DNS cache
Serveur DNSroot
de zone Serveur DNS
6 − réponse
5 − réponse 4 − requête 3 − réponse
2 − requête
1 − requête
Description
C’est le serveur qui se charge de répercuter la requête Le serveur joue alors le rôle du resolver
Le protocole DNS Les requêtes
Mode récursif (2/2)
Partie de l’espace de nommage
zone d’autorité flits
india ai robot
cs eng yale edu
cs vu oce
nl
fluit
Exemple d’une requête
Un resolver surflits.cs.vu.nl souhaite connaître l’adresse IP de l’hôtelinda.cs.yale.edu
1 Interrogation decs.vu.nl
2 Interrogation deedu-server.net
3 Interrogation deyale.edu
4 Interrogation decs.yale.edu
Le protocole DNS Les requêtes
Requêtes inverses (1/2)
Problématique
Comment obtenir le nom associé à une adresse IP ? Les noms de domaine sont indépendants de l’adressage IP Faut-il interroger tous les domaines ?
Résolution
Utilisation du domaine in-addr.arpa
Pour récupérer le nom associé à l’adresse A.B.C.D : ,→ Envoi d’une requête sur D.C.B.A.in-addr.arpa.
La ou les réponses sont constituées de champs de type PTR
Le protocole DNS Les requêtes
Requêtes inverses (2/2)
Exemple
www.google.fr
’.’
arpa in−addr
0 105 255
0 39 255
0 125 255
255
0 74
Et IPv6 ?
Exemple de cleo.univ-reims.fr (2001:660:4601:1100::4) :
,→0.0.0.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.1.1.0.6.4.0.6.6.0.1.0.0.2.ip6.arpa
Sécurité et fiabilité du DNS
Table des matières
1 Présentation du DNS Introduction
L’espace de nommage
2 La base de données DNS Resource record Les zones
3 Le protocole DNS Format des messages Les requêtes
4 Sécurité et fiabilité du DNS
Sécurité et fiabilité du DNS
Le déni de service
Définition : déni de service
Résultat d’une attaque dont le but est d’empêcher le bon
fonctionnement d’un service afin d’empêcher les utilisateurs d’y accéder
Exemple: attaque sur les serveurs racines de octobre 2002
Au bout de l’attaque réalisée par déni de service, 7 serveurs sur les 13 serveurs racines ont vu leurs
performances se dégrader
Service attaqué Internet
Pirate
infectée
infectée Machine
infectée
Machine Machine
infectée Machine
00 0 11 1
00 0 11 1
00 0 11 1 00
0 11 1
00 0 11 1
000000 111111
0000 00 1111 11 0000 1111 00 00 00 0
11 11 11 1
Sécurité et fiabilité du DNS
L’anycast
Principe de l’anycast
Permet d’associer une adresse IP à plusieurs machines physiques Lorsqu’une requête est émise vers une adresse anycast, elle est transmise à la destination la plus proche
Cette technique a été associée au DNS (RFC 3258) Des serveurs racines peuvent ainsi être dupliqués :
La charge est répartie sur plusieurs machines physiques
Cela permet de limiter les effets d’une attaque par déni de service
Sécurité et fiabilité du DNS
Fragilité du DNS
Description
Sans le DNS, une bonne partie des applications d’Internet sont paralysées :
,→ Cible de nombreuses attaques
Ces attaques sont facilitées grâce au reverse DNS: ,→ De nombreuses informations peuvent être récupérées
Le transfert de zone permet de récupérer toutes les informations d’une zone !
Autre attaque, la pollution du cache DNS : ,→ Envoyer de fausses réponses aux serveurs DNS
Vers des solutions
1 Blocage du transfert de zone depuis l’extérieur
2 Crypter et assurer l’authenticité des échanges
Bibliographie/ressources
Bibliographie/ressources
Bibliographie
Réseaux & Télécoms, Claude Servin, Dunod Réseaux, Andrew Tanenbaum, Pearson Education DNS & BIND, Paul Albitz et Cricket Liu, O’Reilly
Ressources
www.afnic.fr : l’Association Française pour le Nommage Internet en Coopération (gestion du .fr et .re)
http://www.frameip.com/dns/ : un article très complet sur le DNS gTLD : RFC 1591
DNS : RFC 1034 et 1035