Escolar Documentos
Profissional Documentos
Cultura Documentos
Erwan.Mas@nic.fr
Mohsen.Souissi@nic.fr
Système DNS
• Sommaire
• introduction
• arborescence
• architecture
• base de données
• une implémentation du DNS : BIND
• Besoin
• nommer une machine sur le réseau en effectuant
une correspondance entre le nom choisi et le
numéro IP (résolution de nom)
• trouver le nom d 'une machine à partir de son
numéro IP (résolution inverse)
• identifier un groupe de machines ayant des
ressources réseau communes (relais de messagerie,
... )
0 1 ... 255
www.nic.fr. → 192.134.4.11
2 whois.ripe.net. → 193.1.2.133
nic . fr .
racine
séparateur
193
whois = whois.ripe.net
0 1 ... 255
133 = 133.2.1.193.in-addr.arpa
ns1 . nic . fr .
label racine
séparateur
• Analogie
• Résolution inverse
• retrouver à partir d'un numéro IP le nom d'une
machine associée
• l'arborescence se trouve sous le domaine
in-addr.arpa (sous ip6.int pour ipv6)
• l'arborescence est subdivisée à partir de la notation
classique sur 4 octets des numéros IPv4
domaine : 133.2.1.193.in-addr.arpa.
193
whois = whois.ripe.net
0 1 ... 255
133 = 133.2.1.193.in-addr.arpa
• Système client/serveur
• client
• resolver : interface cliente permettant d'interroger un serveur
• les machines clientes pointent généralement vers un serveur
par défaut (/etc/resolv.conf sur Unix)
• serveur
• chaque serveur gère sa propre base de données
• optimisation par des systèmes de cache et de réplication
• Au-dessus d 'IP
• service s'exécutant sur le port 53
droits de super utilisateur ( unix )
• UDP et TCP
(TCP n'est pas réservé qu'au transfert de zone
et est utilisé si la taille de la réponse est supérieure à la limite
d 'un paquet UDP de 512 octets)
• RFC 1035
128.93.3.29
resolver
Int. Récursive
www.inria.fr ? Machine A Int. itérative
• Serveurs
• types de serveurs
• serveur cache
• serveur
• « faisant suivre » (forwarder)
• « esclave » (slave - forwarder-only)
• serveur ayant autorité sur une (plusieurs)
zone(s)
• primaire (source des données)
• secondaire (miroir des données)
• Serveur cache
• éviter la surcharge inutile du réseau
• supprimer les délais du réseau
• amoindrir la charge des autres serveurs
tout serveur possède en général au
minimum un cache
v
www.inria.fr
128.93.3.29
e
→
r inria.fr
serveur
128.93.3.29
resolver
Int. Récursive
www.inria.fr ? Machine A Int. Itérative
r
c e
a s
c fr
o
h serveur
l
e
v
e
r chronos.inria.fr ? inria.fr
serveur
chronos.inria.fr → 128.93.45.201
128.93.45.201
resolver int. récursive
chronos.inria.fr ? int. itérative
Machine A
128.93.3.29
resolver int. récursive
www.inria.fr ? int. itérative
host A
• Remarques
• un serveur peut être à la fois serveur cache et
autoritaire pour des zones : le cache possède alors des
informations locales et non locales
• un serveur peut être à la fois primaire pour des zones
et secondaire pour d'autres zones
• Remarques
• mode de fonctionnement d'un serveur
• récursif
• le serveur résout les requêtes récursives des clients et
garde les informations obtenues dans son cache
• le cache stocke des informations pour lesquelles le
serveur n 'a pas autorité
• serveurs cache de campus par exemple
• Remarques
• mode de fonctionnement d'un serveur
• itératif
• il répond toujours en fonction des données qu'il possède localement
• ne construit pas de cache pour des données non locales .
• une machine cliente (d'utilisateur final) ne doit jamais pointer
sur un serveur de ce type comme serveur par défaut .
• mode permettant de limiter la charge d'un serveur (il ne résout pas toute la
requête)
serveurs de la racine, serveurs ayant autorité pour un grand nombre de
zones
http://www.root-servers.org/
E
F
0
500
1000
1500
2000
2500
94
N
ov
-9
4
Ja
n-
9
M 5
© AFNIC (06/10/03)
ar
-9
M 5
ay
-9
5
Ju
l-9
S 5
ep
-9
N 5
ov
-9
5
Ja
n-
9
M 6
ar
-9
M 6
ay
-9
6
Ju
l-9
S 6
ep
-9
N 6
ov
-9
6
a.root-servers.net
Ja
n-
9
M 7
ar
-9
M 7
ay
-9
7
Ju
l-9
S 7
ep
DNS - 54
-9
7
j.root-servers.net
N
ov
-9
7
Ja
n-
9
M 8
ar
-9
M 8
ay
-9
8
Ju
j.gtld-servers.net
l-9
S 8
ep
-9
N 8
ov
-9
8
Ja
n-
9
M 9
ar
-9
M 9
ay
-9
9
Ju
l-9
S 9
ep
Ari Balogh
-9
N 9
ov
-9
9
Formation 2003
abalogh@netsol.com
Base de données (1)
• Fichier de configuration
• localisation des données
fichier serveurs de la racine
fichiers de zone
• déclaration de l'autorité sur des zones
primaire / secondaire
• mode de fonctionnement général
• récursif/itératif
• « faisant suivre », esclave, ....
• Fichier de zone
• contient les données propres à chaque zone
• consiste en une liste de Resource Records (RR)
• le premier RR doit être le SOA (Start of Authorithy) qui
décrit l'autorité technique de la zone
• directives spéciales
• Directives spéciales
• $ORIGIN
spécifie le nom de domaine à ajouter à des enregistrements
non pleinement qualifiés (non suffixés par un point)
équivalent à :
www. mon-domaine.exemple. IN CNAME serveur. mon-domaine.exemple.
• Directives spéciales
• $TTL (RFC 2308 - bind 8.2)
spécifie le Time To Live par défaut à appliquer aux
enregistrements qui n'ont pas ce paramètre spécifié
dans leur déclaration
valeur [0 - 2147483647]
• Principaux RR - SOA
francis\.dupont.inria.fr.
pour
francis.dupont@inria.fr
zone IN NS serveur-nom1.domaine.
IN NS serveur-nom2.domaine.
machine.domaine. IN A 193.10.20.30
Nota
• un nom en partie droite d'un enregistrement (<données>) ne doit pas
pointer vers un alias
• quand un nom a déjà un CNAME il est interdit de faire figurer d'autres
enregistrements pour ce nom
zone. IN NS alias.zone.
alias.zone. IN CNAME serveur.zone.
nom IN MX 10 nom.relais1.
IN MX 20 nom.relais2.
IN MX 30 nom.relais3.
Exemple :
nom.nic.fr. IN A IP
• zone déléguée
$ORIGIN fille.nic.fr.
$TTL 86400
@ IN SOA ns1.inria.fr.
hostmaster.inria.fr.
(
1997052704 ;serial
86400 ;refresh
21600 ;retry
3600000 ;expire
3600 ;negative ttl
)
IN NS ns1.inria.fr.
IN NS ns.urec.fr.
© AFNIC (06/10/03) DNS - 86 Formation 2003
Délégation et sous domaine (3)
• Utilisation de la glue
• permet d'établir des liens nom IP avec les sous zones
pour la cohérence de l'arbre DNS
• elle n'est nécessaire que dans le cas où les serveurs de la
zone fille sont dans la même arborescence que le domaine
fille.domaine.
• en cas de changement d 'adresse IP il faut modifier la zone
fille et la zone parente
• Historique
• JEEVES : première implémentation du DNS par Paul
Mockapetris (1984)
• BIND (The Berkeley Internet Name Domain)
implémentation suivante sur système 4.3BSD UNIX par
Kevin Dunlap
• Aujourd'hui
• BIND maintenu par Paul Vixie avec l 'Internet Software
Consortium
• Deux parties
• la partie serveur de noms : implémentée par la
commande named (ou in.named) et named-xfer (ou
in.named-xfer) pour les transferts de zone
• la partie client : bibliothèque C (libresolv.a ou
libresolv.so.x) avec laquelle sont liées toutes les
applications utilisant le DNS. Cette bibliothèque
contient notamment une version de getaddrinfo
(3) et getnameinfo(3) qui utilisent le DNS.
• 9.1.3
• Support de DNSSEC,TSIG
• Support de IP v6
• Enregistrements Spécifiques
• Requêtes
• Extension du protocole DNS IXFR,...
• Système de vue pour les zones
• Support des systèmes multiprocesseur
zone "0.0.127.in-addr.arpa" {
// zone primaire
type master;
file "db.localrev";
};
• Relancer le serveur
• kill -HUP pid
• Debugger
• Dump du contenu du cache kill -INT pid
• le résultat est dans un fichier named_dump.db
• Passage en mode debug avec trace dans le fichier
named.run kill -USR1 pid
• chaque nouvelle utilisation de cette commande augmente
le niveau de début
• arrêt de ce mode kill -USR2 pid
http://www.gnu.org/licenses/licenses.html#FDL