Vous êtes sur la page 1sur 9

THEORIE SUR LE DNS

1) Gnralit sur le DNS


* L'adressage sur un rseau TCP/IP est bas sur des nombres de 32 bits (tout au moins dans l'IPV4). Ce sont les adresses IP des ordinateurs relis en rseau. Ces adresses IP sont bien adapts pour les traitements par les ordinateurs mais difficilement mmorisables par les humains qui prfrent de simples noms ou chanes de noms spars par le caractre ".". La rsolution des noms consiste convertir les noms des machines en adresses IP. * Lorsqu'une application a besoin de trouver l'adresse IP d'un hte donn, elle fait appel aux fonctions gethostbyname et gethostbyaddr. Par tradition ces fonctions sont regroupes avec quelques autres fonctions de la mme famille, dans une bibliothque spcialise (sous linux, l'ensemble est intgr dans la bibliothque standard libc). On fait rfrence ces fonctions en parlant de resolver. * Il existe trois mthodes principales pour convertir les noms des machines en adresses IP : - La plus simple utilise une table de correspondances entre les noms de machines et leurs adresses IP, table qui est stocke dans le fichier /etc/hosts. Cette mthode n'est utilisable que sur de petits rseaux locaux grs par un seul administrateur et n'ayant aucun accs au monde extrieur. Nous donnons cidessous un exemple de fichier /etc/hosts.
# Exemple de fichier /etc/hosts 127.0.0.1 localhost.misfu.com localhost 192.168.1.1 benins1.misfu.com benins1 192.168.1.2 benins2.misfu.com benins2 192.168.1.11 beninc1.misfu.com beninc1

- Le Network Information System (NIS) est la deuxime mthode. Dveloppe par Sun Microsystems, cette mthode constitue une solution au problme des rseaux composs d'une trs grande quantit de systmes. On l'appelle aussi Yellow Pages (YP) ou pages jaunes pour des raisons historiques. Le NIS conserve le fichier hosts ainsi que certaines informations, dans une base de donnes sur une machine matre depuis laquelle les clients peuvent rcuprer tout moment ce dont ils ont besoin. Son inconvnient : il faut stocker et maintenir la base de donnes hosts de manire centralise et la distribuer tous les serveurs.

- En 1984, une nouvelle mthode de rsolution des noms fut adopte. Il s'agit du Domain Name System (DNS). Il fut l'oeuvre de Paul Mockapetris et rgle simultanment les deux problmes prcdemment voqus.

Le DNS organise les noms d'htes en une hirarchie de domaines. Un domaine est un regroupement logique de machines ; c'est un ensemble de sites qui ont une certaine relation entre eux. Ils peuvent former un rseau particulier (toutes les machines d'un campus par exemple), ou bien tous appartenir une organisation particulire (comme le gouvernement franais) ou encore, tre proches gographiquement parlant.

L'ensemble des domaines de l'internet (on parle de l'espace de nommage) est reprsent par une arborescence comme ci-dessous.

Tout en haut de cette arborescence, l'entre dnote par un simple point ("."), correspond la racine et est appele root domain. Sous la racine, on trouve les domaines de 1er niveau (Top Level Domains - TLD) tiquets com, edu, gov, int, mil, org, net et des codes d'tats ou de pays normaliss sur 2 lettres (par exemple fr pour la France). En fonction de sa position dans la hirarchie, un domaine peut tre appel de 1er niveau, second niveau ou de 3me niveau. Le nom complet d'un domaine (Fully Qualified Domain Name - FQDN) est la concatnation des tiquettes rencontres sur le plus court chemin menant du nud considr la racine. Ainsi antadiop.edu est un domaine drivant de edu.

Le domaine in-addr.arpa Le principe de la rsolution de nom, consiste affecter un nom dhte une adresse IP. On parle de rsolution de nom directe. Le processus inverse doit pouvoir galement tre mis en uvre. On parle de rsolution de nom inverse ou reverse. Le processus doit fournir, pour une adresse IP, le nom correspondant. Pour cela il y a une zone particulire, in-addr.arpa, qui permet la rsolution inverse dadresse IP.

Par exemple, pour le rseau 192.168.1.0, on crera une zone inverse dans le domaine in-addr.arpa. La zone de recherche inverse dans le domaine deviendra : 1.168.192.in-addr.arpa. Cette zone devra rpondre pour toutes les adresses dclares dans la tranche 192.168.1.0 192.168.1.254. On inscrira dans cette zone tous les nuds du rseau pour lesquels on dsire que la rsolution inverse fonctionne. Un serveur de nom peut, pratiquement, fonctionner sans la dfinition de cette zone tant que le rseau nest pas reli linternet. Si cela tait le cas, il faudrait dclarer cette zone, sans quoi, des services comme la messagerie lectronique, ne pourrait fonctionner correctement, notamment causes des rgles anti-spam

2) Fichiers, structure et contenus


Sur linux nous allons utiliser deux types de fichiers : 1. le fichier named.conf, qui dcrit la configuration gnrale du serveur DNS 2. les fichiers qui contiennent les enregistrements de ressources pour la zone dans /var/named. Les enregistrements ont une structure et un rle. Les types d'enregistrements qui enrichissent une base de donnes DNS sont de plusieurs types, dont voici les principaux:

Enregistrement de type SOA (Start Of Authority) : Indique lautorit sur la zone. Ces enregistrements contiennent toutes les informations pour le domaine, par exemple le dlai de mise jour des bases de donnes entre serveurs de noms primaires et secondaires, le nom du responsable du site. Enregistrements de type NS (Name Server) : Ces enregistrements donnent les adresses des serveurs de noms pour le domaine. Enregistrement de type A (Adresse) : Ces enregistrements permettent de dfinir les nuds fixes du rseau (ceux qui ont des adresses IP statiques). Serveurs, routeurs, switchs?

Enregistrements de type MX (Mail eXchanger) : Ils servent pour dclarer les serveurs de messagerie. Enregistrements de type CNAME (Canonical Name) : Ils permettent de dfinir des alias sur des nuds existants. Enregistrement de type PTR (Pointeur) : Ils permettent la rsolution de nom inverse dans le domaine in-addr.arpa. Il est linverse de A

Structure des enregistrements Structure dun enregistrement SOA : Chaque fichier commence par un enregistrement de type SOA. stage.org. heure de modification) 10800 : rafrachissement (en secondes donc 3h) 3600 : nouvel essai (galement en sec) 604800 : Obsolte aprs une semaine 86400) : TTL minimal de 1 jour IN SOA ns1.stage.org. hostmaster.stage.org. 20001210011 : numro de srie (anne mois jour et

Caractristiques des diffrentes informations :

SOA Start Of Authority, enregistrement qui contient les informations de synchronisation des diffrents serveurs de nom. stage.org, donne le nom de la zone. hostmaster.stage.org : la personne qui est responsable de la zone. Le premier point sera remplac par l'arobase (@) pour envoyer un courrier lectronique. En gnral postmaster, est un alias de messagerie lectronique vers ladministrateur du DNS. Cela deviendra hostmaster@stage.org. Numro de srie sous la forme AAAAMMJJNN, sert identifier la dernire modification sur le serveur de nom matre. Ce numro sera utilis par les serveurs de nom secondaires pour synchroniser leurs bases. Si le numro de srie du serveur de nom primaire est suprieur celui des serveurs de noms secondaire, alors le processus de synchronisation suppose que l'

administrateur apport une modification sur le serveur matre et les bases sont synchronises.

Rafrachissement : Intervalle de temps donn en seconde pour indiquer au serveur la priode de test de la validit de ses donnes. Retray : Intervalle de temps avant ritration si lessai prcdent n' pas fonctionn. Expire : Temps au bout duquel le serveur ne remplit plus sa mission sil n' pu contacter le serveur matre pour mettre jour ses donnes. TTL : Time To Live, dure de vie des enregistrements. Plus la dure de vie est courte, plus ladministrateur est susceptible de considrer que ses bases sont jour, par contre cela augmente le trafic sur le rseau.

Enregistrement de type NS pour le domaine stage.org: stage.org. IN NS ns1.stage.org. stage.org. IN NS ns2.stage.org.

Enregistrements de type A : Nous devons dcrire la correspondance Nom / Adresse ns1.stage.org. IN A 192.168.1.1 ns2.stage.org. IN A 192.168.1.2 localhost.stage.org. IN A 127.0.0.1

S' il y avait d' autres htes sur la zone, il faudrait les dfinir ici. Enregistrements de type CNAME : Ce sont les alias (Canonical Name). Une requte du type http://www.stage.org sera adresse ns1.stage.org, puisque www est un alias de ns1. ns1.stage.org. IN CNAME www.stage.org. ns2.stage.org. IN CNAME ftp.stage.org.

Enregistrement de type PTR : Il serviront la rsolution de nom inverse.

1.1.168.192.in-addr.arpa. IN PTR ns1.stage.org. 2.1.168.192.in-addr.arpa. IN PTR ns2.stage.org.

Serveur primaire et serveur secondaire Le serveur matre (primaire) dispose dun fichier d' information sur la zone. Le ou les serveurs esclaves (secondaires) obtiennent les informations partir d' un serveur primaire ou d' un autre serveur esclave. Il y a transfert de zone. Les serveurs matres et esclaves ont autorit sur la zone.

Le cache L' organisation d' internet est assez hirarchique. Chaque domaine dispose de son propre serveur de nom. Chaque zone de niveau suprieur (edu, org, fr...) dispose galement de serveurs de nom de niveau suprieur. Le service DNS installe une liste de serveurs de noms de niveaux suprieurs. Cette liste permet votre serveur de rsoudre les noms qui sont extrieurs votre zone. Le serveur enrichit son cache avec tous les noms rsolus. Si votre rseau rseau n' est pas reli internet, vous n' avez pas besoin d' activer cette liste.

Voici un exemple de fichier comment du fichier named.conf pour le domaine fictif stage.org, d'adresse 192.168.1.0. # fichier named.conf pour le domaine stage.org # Indication du chemin o sont localiss les fichiers de la base de donnes options { directory "/var/named"; forwarders { suprieur 0.0.0.0; }; # Indiquer un serveur dns de niveau

auth-nxdomain no; };

# RFC1035

# pour le fichier de cache du serveur de nom zone "." in { type hint; file "db.root"; }; # pour la recherche directe dans le domaine, on utilise le fichier stage.org zone "stage.org" in { type master; }; # pour la recherche de zone inverse (reverse) on utilise le fichier stage.rev zone "1.168.192.in-addr.arpa" in { type master; addr.arpa file "stage.rev"; }; # pour la rsolution de nom sur localhost zone "local" in { type master; 127.0.0.1 file "local.host"; # correspondances nom, adresse IP }; # rappel : la machine locale porte toujours l'adresse localhost 127.0.0.1 # rsolution inverse sur cette zone # la description est dans local.host # nous sommes serveur de # serveur primaire de 1.168.192.in# nous sommes serveur primaire de ce domaine file "stage.hosts"; # les correspondances nom, adresse IP

zone "0.0.127.in-addr.arpa" in { type master; addr.arpa file "local.rev"; }; # serveur primaire de 0.0.127.in-