Vous êtes sur la page 1sur 9

Introduction

• Sur Internet une machine est identifiée de manière unique par une
Le système de nommage d’Internet adresse IP (v4 ou/et v6)
• Annuaire Adresse IP / Nom
Domain Name System • Au début (1970-1984) : annuaire complet dans un fichier texte
(/etc/hosts sous Unix):
– Adresse Nom1 Nom2 Nom3
DNS
– Cohérence des noms par diffusion du fichier
• Aujourd’hui ce fichier est encore utilisé pour l’annuaire local
• 1984 : mise en place du DNS
• Géré par ICANN : Internet Corporation for Assigned Names and Number
• En France AFNIC: Association Française pour le Nommage Internet en
Coopération

© P. Sicard - Cours Réseaux Le DNS 1 © P. Sicard - Cours Réseaux Le DNS 2

Introduction Structuration des noms DNS


• Hiérarchique par domaine: www.imag.fr
• Information accessible grâce au DNS – Machine www dans le domaine imag lui-même dans le domaine fr
– Analogie avec les noms de fichier/répertoire à l’envers avec le . à la place de /
– Adresse (V4 ou V6) en fonction du nom
– On omet en général la racine (le point) : www.imag.fr.
– Nom en fonction de l’adresse IP : résolution inverse
– Les majuscules ne sont pas significatives
– Adresse de relai de messagerie
Racine
.

• Système hiérarchique, redondant et distribué


– Arborescence (comme un système de fichier) edu com fr it
– Chaque site est maître de ses données
zone fr
– Dynamique: mise à jour automatique inria imag
Domaine fr

• Bibliographie Domaine et zone imag.fr


www ufrima
– DNS and BIND , Paul Albitz and Cricket Liu

Machines

© P. Sicard - Cours Réseaux Le DNS 3 © P. Sicard - Cours Réseaux Le DNS 4


Terminologie
Une base de données distribuée • Domaine
– Un domaine est la partie de l’arborescence à partir du noeud portant son nom
– Exemple: domaine fr: arborescence à partir du noeud fr
• Une base de donnée est associée à chaque noeud – On parle de sous domaine pour un domaine inclus dans un autre
– Exemple: imag.fr est un sous domaine du domaine fr
• L’ensemble de ces bases de données constitue le DNS
• Zone
• Dans un noeud, on trouve – C’est la base de donnée associée à un noeud

– Les informations permettant de retrouver les noeuds fils • Contenu des bases de donnée associées aux zones
– Noms/Adresses des serveurs de la zone
– Les informations propre au noeud : liste des machines » Exemples:
• Racine: liste des serveurs des domaines de premiers niveaux
– Comme dans un répertoire : des sous répertoires et des fichiers • fr: listes des adresses des serveurs des sous-domaines de fr
• La gestion de chaque noeud peut être effectuée par des entités – Noms/Adresses des machines de ce domaine
différentes • Terminologie de l’AFNIC: Domaine. Suffixe

© P. Sicard - Cours Réseaux Le DNS 5 © P. Sicard - Cours Réseaux Le DNS 6

Domaines de plus haut niveau Domaines existants


• Suffixe ou Top Level Domain(TLD)
• IANA (Internet Assigned Numbers Authority ) gère la zone racine – Génériques internationaux (gTLD) en trois lettres
– Assignation des domaines de plus haut niveau – voir http://fr.wikipedia.org/wiki/Domaine_de_premier_niveau#Sur_Internet
– Exemples créés à l’origine en 1985
• Composante de ICANN
» .com (entreprise multinationale),
– Organisation/société de droit Américaine à but non lucratif
» .org (organisation à but non commercial ),
– Attribution des noms de domaine mondialement
» .info (Service d’informations)
– Depuis 2009 possibilité de nom de domaine en caractère non latin (arabe,
chinois...) » .net (fournisseur d’accès),
– d’autres
• Suffixe ou Top Level Domain(TLD) » .biz (business)

• Par pays (ou Country Code, ccTLD) en deux lettres : » .name (individu)

– .fr, .us, .jp, .be, ... » .pro (professionnels)

© P. Sicard - Cours Réseaux Le DNS 7 © P. Sicard - Cours Réseaux Le DNS 8


Principe de fonctionnement Exemple d’une interrogation DNS
• Application client/serveur
• Serveur DNS Serveur zone racine

• Gère la base de données contenant Requête: serveur fr ?


Serveur DNS "local"
• nom/adresse IP des machines du domaine 2
3 Liste des @ serveurs de fr
• nom/adresse IP des serveurs d’un sous-domaine
• Système robuste par redondance: plusieurs serveurs possèdent la base de Requête: serveur bonjour ? Serveur zone fr.
4
donnée d’un domaine 5 Liste des @ serveurs bonjour
• Client DNS
Requête: machine www.bonjour.fr?
– Resolver: permet l’interrogation d’un serveur
7 6 Serveur zone bonjour.fr.
– Référence à un serveur DNS par défaut “local”
Requête: 8 @IP de www.bonjour.fr
• Interrogation client vers le serveur local machine 1
@ machine
www.bonjour.fr? www.bonjour.fr
– Récursive
– Le client attend la réponse finale
• Interrogations serveur à serveur
Machine utilisateur
– Souvent itératives (mais peuvent aussi être récursives) Client DNS
© P. Sicard - Cours Réseaux Le DNS 9 © P. Sicard - Cours Réseaux Le DNS 10

Interrogations et découpage des Interrogation DNS


zones • Pour une zone : une liste d’adresse de serveurs
• En fait les requêtes successives sur les serveurs sont des requêtes sur – Répartition des interrogations
le nom complet – Requêtes successives si défaillance d’un serveur ou du réseau
– Le serveur répond – Importance de la répartition géographique des serveurs d’une même zone
» soit par l’adresse IP du nom complet demandé
• Mécanisme de cache dans le serveur “local” pour limiter le nombre
» soit par la liste des serveurs pouvant y répondre si il ne connait pas d’interrogations
l’adresse du nom complet demandé
– Evite la surcharge du réseau
• Ceci pour deux raisons – Diminue les délais de réponse

– Les serveurs gérant des zones de «haut niveau» peuvent faire des – Baisse la charge des serveurs de haut niveau
statistiques, recherches... sur les requêtes complètes
• Remplissage du cache lors des requêtes des clients
– Le découpage des zones n’est pas connu par les serveurs DNS
• Durée de vie limitée dans le cache
» Par exemple la zone de truc.fr est peut être géré par les serveurs de .fr
– TTL(Time To Live) spécifié dans les réponses

© P. Sicard - Cours Réseaux Le DNS 11 © P. Sicard - Cours Réseaux Le DNS 12


Serveurs «racine» Type de requêtes

• Gérés par 2 organisations européennes, une japonaise et 9 américaines • Adresse de machines


– Dénoté a pour IPV4
• Racine : 13 «autorités» de nom répartis dans le monde (appelés de A à M)
– Possibilités de plusieurs machines pour un même nom
– Connaissent tous les serveurs de premier niveau (TLD): .fr, .com, ...
» Réponses “circulaires” pour répartir la charge
– SERVEUR “ORIGINE” (ou primaire, ou maitre) géré par IANA/ICANN
– Dénoté aaaa pour IPV6
» A.ROOT-SERVERS.NET
• Nom canonique et alias
– SERVEURS MIROIRS (ou secondaire, ou esclave)
– Plusieurs noms possibles pour une adresse IP
» de B.ROOT-SERVERS.NET à M.ROOT-SERVERS.NET
– Un nom canonique et des alias
• En fait grappe de serveurs pour chaque entité: ~200 serveurs répartis dans – dénoté cname (Canonical Name)
le monde • Serveurs d’une zone ?
• De l’ordre de 20 000 requêtes par seconde sur un serveur – Liste des serveurs d’un domaine
– Dénoté ns

© P. Sicard - Cours Réseaux Le DNS 13 © P. Sicard - Cours Réseaux Le DNS 14

Type de requêtes Implémentation


• Serveur de messagerie • JEEVES : première implémentation du DNS (1984)
– Indique les serveurs SMTP à contacter pour envoyer un courriel à un • BIND (The Berkeley Internet Name Domain) sur BSD Unix
utilisateur d'un domaine donné • Interrogation en UDP ou TCP si la taille des paquets dépasse 512
– Dénoté mx (Mail eXchange) octets
• Echange des bases de données en TCP
• Interrogation inverse
• Client
– Permet de faire une requête inverse : un nom à partir d’une adresse
– à travers les fonctions de programmation comme gethostbyname,
– Dénoté ptr gethostbyaddr...
• Serveur maître d’un domaine – outils associés (host, nslookup...)

– Permet de connaître des informations sur le serveur maître d’un domaine • Serveur processus particulier
– Dénoté soa (Start Of Autority) – Port 53 en TCP ou UDP
– nom: named

© P. Sicard - Cours Réseaux Le DNS 15 © P. Sicard - Cours Réseaux Le DNS 16


Outils DNS Exemple
• nslookup • host -d -t a goedel.e.ujf-grenoble.fr
– nslookup www.google.fr – Trying "goedel.e.ujf-grenoble.fr"
– Changement de serveur : server ns2.nic.fr – ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37230
– mode debug: set debug – ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
– Serveurs d’une zone: set q=ns – ;; QUESTION SECTION:
– Adresses pour un nom: set q=a – ;goedel.e.ujf-grenoble.fr. IN A
– Serveurs de courrier: set q=mx – ;; ANSWER SECTION:
– Nom canonique: set q=cname – goedel.e.ujf-grenoble.fr. 86255 IN A 195.220.82.132
– Visualisation de la base de donnée: ls imag.fr – ;; AUTHORITY SECTION:
• host – e.ujf-grenoble.fr. 913 IN NS cubango.ujf-grenoble.fr.
– Mode debug : -d – e.ujf-grenoble.fr. 913 IN NS colorado.ujf-grenoble.fr.
– Type de requête: -t a , -t ns ... – ;; ADDITIONAL SECTION:
– colorado.ujf-grenoble.fr. 26781 IN A 152.77.2.5
• dig
– cubango.ujf-grenoble.fr. 23685 IN A 193.54.238.51

© P. Sicard - Cours Réseaux Le DNS 17 © P. Sicard - Cours Réseaux Le DNS 18

Exemple Résolution inverse


• host -d -t ns imag.fr
– Trying "imag.fr" • Trouver le nom à partir de l’adresse
– ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53175
• Même principe que pour les noms
– ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 6
• Chaque octet de l’adresse IP est vue comme un sous domaine
– ;; QUESTION SECTION:
• Un domaine TLD particulier : arpa
– ;imag.fr. IN NS
• Sous domaines
– ;; ANSWER SECTION: – in-addr pour les adresses IPv4
– imag.fr. 86400 IN NS ns2.nic.fr.
– ip6 pour les adresses IPv6
– imag.fr. 86400 IN NS dns.inria.fr.
– imag.fr. 86400 IN NS isis.imag.fr. • Exemple: 229.38.88.129.in-addr.arpa
– imag.fr. 86400 IN NS imag.imag.fr.

© P. Sicard - Cours Réseaux Le DNS 19 © P. Sicard - Cours Réseaux Le DNS 20


Exemple de résolution inverse Exemple de résolution inverse
• host -d 195.220.82.136
• hopper.e.ujf-grenoble.fr
– Trying "136.82.220.195.in-addr.arpa"
– ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32544 • 136.82.220.195.in-addr.arpa
– ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4
– ;; QUESTION SECTION:
.
– ;136.82.220.195.in-addr.arpa. IN PTR
– ;; ANSWER SECTION: arpa fr
– 136.82.220.195.in-addr.arpa. 85913 IN PTR hopper.e.ujf-grenoble.fr.
in-addr ip6 ujf-grenoble
– ;; AUTHORITY SECTION:
– 82.220.195.in-addr.arpa. 85913 IN NS cubango.ujf-grenoble.fr. 195 196 e
– 82.220.195.in-addr.arpa. 85913 IN NS soleil.uvsq.fr.
– 82.220.195.in-addr.arpa. 85913 IN NS colorado.ujf-grenoble.fr. 220 221 hopper
– 82.220.195.in-addr.arpa. 85913 IN NS adminpg.inpg.fr.
82
– ;; ADDITIONAL SECTION:
– .... 136

© P. Sicard - Cours Réseaux Le DNS 21 © P. Sicard - Cours Réseaux Le DNS 22

Fichiers “système” de configuration DNS Fichiers “système” de configuration DNS


côté client côté serveur
• Système à la Unix: Fichier /etc/resolv.conf
• Configuration du processus serveur (Système à la Unix)
– Adresse du serveur et suffixe par défaut
– FreeBSD: /etc/namedb/named.conf
» Exemple:
– Unix/solaris/Linux: /etc/named.conf
• search imag.frimag.fr
• nameserver 195.221.224.1 – Contient la liste des zones gérées par le serveur
• nameserver 129.88.30.1 » Nom du domaine
» Nom du fichier “base de donnée”
• Fichier permettant d’activer le client DNS » Type master/slave
– On peut activer ou non la résolution de nom par DNS ou /etc/hosts
– Spécifie l’endroit où se trouve les fichiers “base de donnée”
– FreeBSD: /etc/host.conf
– Unix/solaris: /etc/nsswitch.conf – Contient au moins la base de données des serveurs racines

© P. Sicard - Cours Réseaux Le DNS 23 © P. Sicard - Cours Réseaux Le DNS 24


Le fichier named.conf Le fichier named.conf
options
{ • Directory des fichiers de base de donnée
directory "/var/spool/named"; – /var/spool/named
};
• Zone imag.fr
zone "0.0.127.in-addr.arpa" { – Fichier imag.fr.zone
type master;
file "rev.127.0.0"; – Type esclave
}; – Adresse du maître: 129.88.30.1
zone "imag.fr" { • Zone 224.221.195.in-addr.arpa
type slave;
file "imag.fr.zone"; – Résolution inverse
masters { 129.88.30.1; };
}; • Zone 0.0.127.in-addr.arpa
zone "224.221.195.in-addr.arpa" { – Inclus dans tous les serveurs DNS
type slave;
file "rev.195.221.224"; • Zone racine “.”
masters { 129.88.30.1; };
– Zone indispensable pour effectuer la résolution de premier niveau
};
zone "." { – Fichier named.root
type hint; – Peut être obtenu sur le serveur ftp de FTP.INTERNIC.NET
file "root.cache";
}; Le DNS 25 Le DNS 26
© P. Sicard - Cours Réseaux © P. Sicard - Cours Réseaux

Base de donnée des serveurs racine (root.cache)


; This file holds the information on root name servers needed to Base de donnée de imag.fr
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . <file>" $ORIGIN .
; configuration file of BIND domain name servers). $TTL 7200 ; 2 hours
;
; This file is made available by InterNIC imag.fr IN SOA imag.imag.fr. fr-imag-subdom-admin.imag.fr. (
; under anonymous FTP as 2004040204 ; serial
; file /domain/named.root
; on server FTP.INTERNIC.NET 21600 ; refresh (6 hours)
; -OR- RS.INTERNIC.NET 3600 ; retry (1 hour)
; 3600000 ; expire (5 weeks 6 days 16 hours)
; last update: Dec 12, 2008
; related version of root zone: 2008121200 86400 ; minimum (1 day)
; )
; formerly NS.INTERNIC.NET NS dns.inria.fr.
;
. 3600000 IN NS A.ROOT-SERVERS.NET. NS ns2.nic.fr.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 NS imag.imag.fr.
A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:BA3E::2:30
; NS isis.imag.fr.
; FORMERLY NS1.ISI.EDU A 129.88.30.1
; MX 10 imag.imag.fr.
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201 MX 20 harmonie.imag.fr.
; MX 50 mx-serv.inrialpes.fr.
; FORMERLY C.PSI.NET
; TXT "IMAG BP 53 F-38041 GRENOBLE Cedex 9 (France)"
. 3600000 NS C.ROOT-SERVERS.NET. TXT "Institut d'Informatique et de Mathematiques Appliquees"
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 TXT "or IMAG 46 Av. Felix Viallet F-38031 GRENOBLE Cedex
...etc pour les 13 serveurs de la zone racine
© P. Sicard - Cours Réseaux Le DNS 27 © P. Sicard - Cours Réseaux Le DNS 28
Base de donnée de imag.fr Base de donnée de imag.fr (suite)
$ORIGIN imag.fr.
• $ORIGIN: spécifie le suffixe à ajouter aux noms qui suivent
abricot A 152.77.201.179
• $TTL (Time to Live): durée de vie maximale dans le cache (en seconde) (souvent ~1 jour) MX 10 imag
MX 20 harmonie
• imag.fr: nom d’un domaine MX 50 mx-serv.inrialpes.fr.
abricotier CNAME abricotier.inrialpes.fr.
• SOA (Start Of Authority): spécifie des informations relatives à l’administrateur du domaine abyssin A 129.88.33.45
MX 10 imag
– nom du serveur primaire (imag.imag.fr) suivi du mail de l’administrateur MX 20 harmonie
MX 50 mx-serv.inrialpes.fr.
– Serial (2004040204) : Numéro de version : (aammjjVV) qui permet au serveur acacia2 CNAME acacia2.inrialpes.fr.
secondaire de détecter des modifications acajou CNAME acajou.inrialpes.fr.
Texte

achab A 129.88.33.38
– Refresh (21600)   : (en seconde) période de rafraîchissement (entre deux MX 10 imag
interrogations des secondaires pour mise à jour) MX 20 harmonie
MX 50 mx-serv.inrialpes.fr.
– Retry (3600) : durée minimale entre deux interrogations d’un secondaire suivant $ORIGIN ad.imag.fr.
un échec sv-fede A 129.88.28.100
$ORIGIN imag.fr.
– Expire (3600000)   : durée maximale dans un serveur secondaire au-delà non adagio A 129.88.103.23
garantie MX 10 imag
MX 20 harmonie
– minimum (86400) : durée de conservation d’un enregistrement dans un cache MX 50 mx-serv.inrialpes.fr.
name server
© P. Sicard - Cours Réseaux Le DNS 29 © P. Sicard - Cours Réseaux Le DNS 30

Base de donnée DNS Type de serveurs


• Serveur maître, principal
• Les champs ont le même nom que les types des requêtes
– Sur lequel sont faites les modifications par l’administrateur
• NS indique les serveurs de la zone – Il a l’origine de l’autorité sur une zone (Start Of Autority: SOA)

– Le serveur répondra avec ces informations à une requête ns • Serveur esclave, secondaire
– Interroge et récupère régulièrement les bases de données depuis le serveur maître
• MX indique les serveurs de courriers (protocole SMTP)
– Peut posséder un cache pour minimiser les requêtes (Non authoritative Reponse)
– 1ère colonne : Poids indiquant la priorité dans le cas de plusieurs serveurs de
mail (poids faible -> plus grande priorité)
• Une réponse à une interrogation peut être faite par un serveur primaire
• A indique pour un nom, l’adresse correspondante ou secondaire
• Un serveur peut être secondaire pour certaines zones et primaire pour
• TXT donne des indications textuelles comme l’adresse postale
d’autres
• CNAME donne le nom canonique

© P. Sicard - Cours Réseaux Le DNS 31 © P. Sicard - Cours Réseaux Le DNS 32


Echange des bases de données Sécurité pour le DNS
• Echange classique • DNS central dans le réseau; Gros potentiel d’attaque : redirection
– Un serveur secondaire d’une zone interroge régulièrement le serveur primaire de cette de trafic ...
zone (à l’initiative du secondaire) • Attaque importante détectée pendant l’été 2008 aux USA
– La fréquence de mise à jour est indiqué par la valeur REFRESH dans le SOA » Capture d’ID de requête
– Mise à jour possible de serveur secondaire à primaire mais aussi de secondaire à • Le pirate capture des paquets de requête DNS (connait donc l’ID des requêtes)
secondaire • Envoie la réponse fausse avant le vrai serveur DNS et redirige vers un site
– La version d’une zone est identifiée par son numéro de série (SERIAL). A chaque d’hameçonnage
modification elle est augmentée » Empoisonnement de Cache
– Le serveur secondaire transfert d’abord le SOA de la zone et vérifie le numéro de série • Remplissage du cache d’un serveur par de fausses informations (Nom/IP)
» Si c’est le cas il demande le transfert soit de la base de donnée complète , soit seulement • Exemple
des modifications (transfert incrémental)
– Envoie par le pirate d’une requête à un serveur DNS X sur un nom de
– La récupération de la base de donnée se fait au dessus de TCP machine www.google.fr
– Le pirate prépare des réponses pour répondre à la place de Google.fr au
• Echange sur modification
serveur DNS X
– Pour accélérer la mise à jour des bases de données, un serveur primaire peut notifier – Le serveur DNS X remplit son cache avec une fausse adresse IP
aux serveurs secondaires une modification

© P. Sicard - Cours Réseaux Le DNS 33 © P. Sicard - Cours Réseaux Le DNS 34

Sécurité pour le DNS Le DNS dans la pratique


• Le serveur
• Quelques points de sécurité possibles aujourd’hui: – Fichiers de configuration
– On peut limiter l’envoi des réponses aux requêtes DNS à une liste d’adresses » Unix/linux: /etc/named.conf
IP (celles des machines du domaine par exemple) » Free BSD: /etc/namedb/named.conf

– On peut spécifier un algorithme de chiffrement pour les échanges de base de – Base de données
donnée » Spécifié dans le fichier de configuration

– On peut limiter l’envoi des bases de donnée à une liste d’adresses IP (serveurs – Lancement du serveur
secondaires) » Unix/linux: /etc/rc.d/init/named restart
» Free BSD: named -b /etc/namedb/named.conf
– DNSSEC (normalisé)
» Authentification des serveurs DNS et chiffrement des requêtes et réponse
• le client
– Fichier de spécification du serveur DNS: /etc/resolv.conf
» Augmente la charge du réseau et les calcul sur les clients et serveurs
– Fichier de spécification de la résolution de nom:
» Mise en place dans quelques pays pour certains domaines
» Unix/linux: /etc/nsswitch.conf
» Free BSD: /etc/host.conf

© P. Sicard - Cours Réseaux Le DNS 35 © P. Sicard - Cours Réseaux Le DNS 36