Installation et configuration d'un serveur DNS sous Linux


précédentsommairesuivant

I. GENERALITES

I-1. Avènement des noms de domaine

Les ordinateurs sur le réseau IP sont à la base identifiés à partir de leur adresse IP. Ces adresses sont une concaténation de plusieurs nombres compris entre 0 et 255. Les nombres sont séparés par un point. On a par exemple : 192.168.0.37 (IPv4). Retenir les identifiants des machines est alors devenu une tâche difficile, surtout que leur nombre est de plus en plus grand.

C'est pour faciliter les choses que le principe de noms de domaine a été adopté. En fait, il s'agit d'attribuer des noms simples aux machines. Ce principe devrait obéir aux règles fondamentales suivantes :

  • à chaque nom, correspond une adresse IP ;
  • dans un même réseau, un nom ne doit pas être porté par deux machines (adresses IP) différentes ;
  • tous les ordinateurs dans le réseau doivent se reconnaître entre eux par leur nom.

I-2. Définition d'un serveur DNS

Le Domain Name System (ou DNS, système de noms de domaine) est un système permettant d'établir une correspondance entre une adresse IP et un nom de domaine, mais plus généralement de trouver une information à partir d'un nom de domaine. Le serveur qui gère cette correspondance, sur un réseau, est désigné par serveur DNS.
Avant le DNS, la résolution se faisait grâce à un fichier texte appelé hosts, local à chaque ordinateur. Sous UNIX et ses dérivés, il se trouve dans le répertoire /etc. Sous Windows, il se trouve, par défaut, dans %SystemRoot%\system32\drivers\etc. Dans ce fichier, chaque ligne correspond à une adresse IP à laquelle peuvent être associés un ou plusieurs noms de domaine. Il est ainsi évident que ce système pose un problème de maintenance car le fichier doit être recopié sur tous les ordinateurs du réseau.
A l'échelle internet, le fichier hosts était fourni et géré par Arpanet.

Pour palier les insuffisances du système précédent, le DNS fait son apparition en 1983 avec Paul Mockapetris, qui en implémenta la première version alors qu'il travaillait à l'Information Sciences Institute (ISI) de l'Université de la Californie du Sud.

DNS, est aussi un protocole qui est rattaché aux RFC 882, 883, 1034 et 1035. (RFC=Request For Comment, documents de l'IETF (Internet Engineering Task Force) définissant les standards d'Internet.)

Pour le transport des données, le DNS utilise par défaut, le port 53. Les requêtes sont acheminées sous la forme de datagrammes UDP et les transferts de zone sont effectués en TCP.

I-3. Quelques notions fondamentales

I-3-1. Notion de domaine

Un domaine est un ensemble d'ordinateurs reliés dans un réseau, par exemple internet et possédant une caractéristique commune. Le domaine est identifié à un nom, appelé nom de domaine. Ce nom est constitué d'au moins un mot appelé label.

Dans une famille, tous les enfants ont dans leur nom complet, un nom qui vient du père. C'est la même logique pour le nom de domaine, où même un domaine, porte dans son nom le nom du domaine supérieur dont il appartient.
Dans la nomenclature d'un nom de domaine, le domaine supérieur est écrit à droite, et le caractère point (.) sépare le nom du domaine supérieur du nom du domaine inférieur.
Un domaine appartenant à un autre est aussi appelé sous-domaine de ce domaine.

I-3-2. Notion d'hôte

Chaque domaine contient des ordinateurs ou des serveurs. Ce sont eux les hôtes. Les hôtes sont les points finaux de la chaîne. Leurs noms sont qualifiés de Fully Qualified Domain Name (FQDN), c'est-à-dire Nom de Domaine Totalement Qualifié.
La profondeur maximale autorisée pour atteindre l'hôte est de 127 niveaux, et la taille maximale du FQDN est de 255 caractères.

I-3-3. Notion de zone

Une zone est une portion d'un domaine dont l'administration est déléguée à une entité faisant partie ou non de l'organisation.
Le concept de zone est purement au niveau administratif. La déclaration des machines dans un domaine se fait dans les zones. Le fichier qui contient les enregistrements des machines d'une zone est appelée fichier de zone.

I-4. Architecture de fonctionnement sur internet

Le fonctionnement d'internet est assuré par plusieurs serveurs DNS qui interagissent entre eux. Comme présenté en I.1, tous les serveurs (web, messagerie, téléchargement, etc.) sont à la base étiquetés avec leur adresse IP. La facilité d'accéder avec un nom commode est donnée par l'interaction des différents serveurs DNS à travers le monde. Alors comment fonctionnent ils ?
Deux aspects sont à considérer : l'aspect logique et l'aspect physique.

I-4-1. Architecture logique de fonctionnement

D'un point de vue logique, les noms de domaine sont agencés dans une arborescence, voire une hiérarchie. On a au sommet une racine, et une arborescence de noeuds.
Architecture logique de fonctionnement du DNS sur internet

La racine est un point. Elle est gérée par l'ICANN (Internet Corporation for Assigned Names and Numbers). Tous les nœuds fils de la racine sont administrés par cette organisation. Ces nœuds sont appelés Top Level Domain ou TLD. En français, ça donne : domaine de premier niveau.
On distingue trois principaux types de TLD :

  • le TLD spécial .arpa
  • les TLD géographiques ou nationaux
  • les TLD génériques

* Le TLD spécial : c'est un domaine exploité exclusivement pour à des fins techniques. ARPA signifie Address and Routing Parameters Areas, qui veut dire zone des paramètres d'adressage et de routage.

* Les TLD géographiques ou nationaux (cTLD= Country TLD): ce sont des TLD propres à chaque pays du monde. Tous les pays en possèdent un. De façon nationale, ils sont gérés par des bureaux accrédités.
La liste de tous les TLD géographiques est contenue dans les tableaux ci-dessous. Il y en a 250.

Liste des TLD nationaux commençant par A-B-C-D-E-F
TLD Pays TLD Pays TLD Pays TLD Pays
.ac Ile de l'Ascension .ba Bosnie-Herzégovine .ca Canada .de Allemagne
.ad Andorre .bb Barbade .cc Îles Cocos .dj Djibouti
.ae Emirates Arabes Unis .bd Bangladesh .cd République Démocratique du Congo .dk Danemark
.af Afghanistan .be Belgique .cf République Centrafricaine .dm Dominique
.ag Antigua et Barbuda .bf Burkina Faso .cg Congo Brazzaville .do République dominicaine
.ai Anguilla .bg Bulgarie .ch Suisse .dz Algérie (El Djazaïr)
.al Albanie .bh Bahreïn .ci Côte d'Ivoire .ec Equateur
.am Arménie .bi Burundi .ck Îles Cook .ee Estonie
.an Antilles Néerlandaises .bj Bénin .cl Chili .eg Egypte
.ao Angola .bm Bermudes .cm Cameroun .eh Sahara Occidental
.aq Antarctique .bn Brunei .cn Chine .er Erythrée
.ar Argentine .bo Bolivie .co Colombie .es Espagne 
.as Samoa Américaines .br Brésil .co.uk Royaume-Uni .et Ethiopie
.at Autriche .bs Bahamas .cr Costa Rica .eu Union Européenne
.au Australie et îles Ashmore, Carthier et Mer de Corail .bt Bhoutan .cu Cuba .fi Finlande
.aw Aruba .bv Île Bouvet .cv Cap Vert .fj Fidji
.ax Åland .bw Botswana .cx Île Christmas .fk Îles Malouines
.az Azerbaïdjan .by Biélorussie .cy Chypre .fm Micronésie
    .bz Belize .cz République Tchèque .fo Îles Féroé
            .fr France
Liste des TLD nationaux commençant par G-H-I-J-K-L-M
TLD Pays TLD Pays TLD Pays TLD Pays
.ga Gabon .hk Hong-Kong .ke Kenya .ma Maroc
.gb Grande Bretagne .hm Ile Heard et Iles McDonald .kg Kirghizstan .mc Monaco
.gd Grenade .hn Honduras .kh Cambodge .md Moldavie
.ge Géorgie .hr Croatie .ki Kiribati .me Monténégro
.gf Guyane française .ht Haîti .km Union des Comores .mg Madagascar
.gg Guernesey .hu Hongrie .kn Saint-Christophe-et-Niévès .mh Marshall
.gh Ghana .id Indonésie .kp Corée du Nord .mk Macédoine
.gi Gibraltar .ie Irlande .kr Corée du Sud .ml Mali
.gl Groenland .il Israël .kw Kowëit .mm Birmanie
.gm Gambie .im Ile de Man .ky Îles Caïmans .mn Mongolie
.gn Guinée .in Inde .kz Kazakhstan .mo Macao
.gp Guadeloupe .io Territoire britannique de l'Océan Indien .la Laos .mp Îles Mariannes du Nord
.gq Guinée équatoriale .iq Iraq .lb Liban .mq Martinique
.gr Grèce .ir Iran .lc Sainte-Lucie .mr Mauritanie
.gs Géorgie du Sud et les îles Sandwich du Sud .is Islande .li Lichtenstein .ms Montserrat
.gt Guatemala .it Italie .lk Sri Lanka .mt Malte
.gu Guam .je Jersey .lr Libéria .mu Maurice
.gw Guinée-Bissau .jm Jamaïque .ls Lesotho .mv Maldives
.gy Guyana .jo Jordanie .lt Lituanie .mw Malawi
    .jp Japon .lu Luxembourg .mx Mexique
        .lv Lettonie .my Malaisie
        .ly Lybie .mz Mozambique
Liste des TLD nationaux commençant par N-O-P-Q-R-S-T-U-V-W-X-Y-Z
TLD Pays TLD Pays TLD Pays
.na Namibie .sa Arabie Saoudite .ua Ukraine
.nc Nouvelle Calédonie .sb Salomon .ug Ouganda
.ne Niger .sc Seychelles .um Îles mineures éloignées des Etats-Unis
.nf Île Norfolk .sd Soudan .us Etats-Unis
.ng Nigéria .se Suède .uy Uruguay
.ni Nicaragua .sg Singapour .uz Ouzbékistan
.nl Pays-Bas .sh Sainte-Hélène .va Vatican
.no Norvège .si Slovénie .vc Saint-Vincent-et-les-Grenadines
.np Népal .sj Svalbard et Jan Mayen .ve Venezuela
.nr Nauru .sk Slovaquie .vg Îles vierges britanniques
.nu Niue .sl Sierra-Léone .vi Îles vierges américaines
.nz Nouvelle Zélande .sm Saint-Marin .vn Viêt Nam
.om Oman .sn Sénégal .vu Vanuatu
.pa Panama .so Somalie .wf Wallis-et-Futuna
.pe Pérou .sr Suriname .ws Samoa
.pf Polynésie Française .st Sao Tomé-et-Principe .ye Yémen
.pg Papouasie-Nouvelle-Guinée .su CEI (Anciennement Union Soviétique) .yt Mayotte
.ph Philippines .sv Salvador .yu Serbie
.pk Pakistan .sy Syrie .za Afrique du Sud
.po Pologne .sz Swaziland .zm Zambie
.pm Saint-Pierre-et-Miquelon .tc Îles Turques et Caïques .zw Zimbabwe
.pn Pitcairn .td Tchad    
.pr Porto Rico .tf Terres australes et antarctiques françaises    
.ps Autorité palestinienne (Cisjordanie et Bande de Gaza) .tg Togo    
.pt Portugal .th Thaïlande    
.pw Palaos .tj Tadjikistan    
.py Paraguay .tk Tokelau    
.qa Qatar .tl Timor oriental    
.re La Réunion .tm Turkménistan    
.ro Roumanie .tn Tunisie    
.rs Serbie .to Tonga    
.ru Russie .tp Timor oriental (anciennement Timor portugais)    
.rw Rwanda .tr Turquie    
    .tt Trinité-et-Tobago    
    .tv Tuvalu    
    .tw Taïwan    
    .tz Tanzanie    

* Les TLD génériques ou gTLD (Generic TLD): ce sont les autres TLD. On les considère comme 'libres' contrairement aux précédents. Ils sont généralement utilisés par les structures internationales telles que les multinationales, les institutions, les organismes non gouvernementales, etc.
La liste totale des TLD génériques valides en Avril 2009 est présentée dans le tableau ci-dessous. Il y en a 15.

TLD Généralement utilisé par
.com les entreprises à vocation commerciale, mais devenu le plus utilisé, même par d'autres types de structures
.edu les organismes éducatifs (universités, écoles, etc.)
.gov les organismes gouvernementaux
.int les organisations et institutions internationales
.mil les organismes militaires
.net les organismes travaillant dans le réseau, mais devient de plus en plus utilisé comme le .com
.org les structures à but non lucratif
.aero les industries aéronautiques
.biz les entreprises commerciales
.museum les musées
.name les noms de personnages historiques, contemporains ou imaginaires
.info les organisations travaillant dans le secteur de l'information
.coop les coopératives
.pro les professions libérales
.tel les accès simples et centralisés aux coordonnées d'une structure ou même d'un individu (le plus récemment crée : ouvert au grand public depuis le 24 Mars 2009).

I-4-2. Gestion des requêtes DNS sur internet

Quand un ordinateur connecté à internet veut se connecter à un site distant à partir du nom DNS, cela est traduit par une requête DNS qui consiste à résoudre le nom de domaine de ce site.
Pour résoudre ce nom, celui-ci sera lu de la droite vers la gauche. Le premier serveur DNS à être contacté résout le nom ou renvoie la requête à un autre serveur de niveau supérieur, et ainsi de suite.
A l'échelle d'internet, le DNS est une base de données distribuée sur plusieurs milliers de serveurs. Cette base de données porte sur les correspondances entre adresses IP et noms de domaines ou noms d'hôtes. Chaque serveur contient une partie de ces informations. Pour effectuer une correspondance entre un nom et une adresse IP, le serveur DNS regarde dans sa base, si elle n'y est pas, il transfère la demande aux autres serveurs. Mais pour réduire le trafic sur internet, les serveurs DNS gardent en cache, les noms de domaine déjà résolus, pendant un certain délai avant de les rafraîchir.

I-4-3. Serveurs racines du DNS et serveurs du domaine de premier niveau

Les serveurs racines du DNS sont les serveurs DNS qui gèrent les requêtes envoyées au TLD et qui les redirigent vers le serveur du TLD concerné.
Comme mentionné au point précédent, les noms de domaine sont lus de la droite vers la gauche pour être résolu. De façon implicite, l'élément le plus à droite dans un nom de domaine est le caractère point (.). Il est complété par les logiciels serveurs DNS.
A la base, il existe treize serveurs racines du DNS dans le monde, mais n'importe quel opérateur peut en implémenter un. Ces treize serveurs sont ceux qui implémentent le DNS de façon officielle. Ils connaissent tous les domaines de premier niveau. Quand une requête leur parvient, il la transfère au serveur du TLD concerné, et celui-ci la redirige vers le sous-domaine approprié et ainsi de suite jusqu'à ce que le nom soit entièrement résolu.
Par exemple, on veut se connecter à l'hôte siguillaume.developpez.com.
Quand cette requête parvient à un serveur racine de DNS, il contacte le serveur du domaine de premier niveau .com, celui redirige la requête vers le serveur qui gère son sous-domaine developpez.com, et le serveur du sous-domaine identifie l'hôte siguillaume.developpez.com.
Ce parcours est représenté par le schéma suivant :
Image non disponible

La nomenclature des treize serveurs de racine du DNS est présentée par une lettre de l'alphabet comprise entre a et m, qui est placé à gauche des labels : root-servers.net. Le tableau ci-dessous donne leur liste complète.

Nom Adresse IPv4 Localisation Société Logiciel
a.root-servers.net 198.41.0.4 Dulles (Virginie / États-Unis) VeriSign BIND
b.root-servers.net 192.228.79.201 Marina Del Rey (Californie / États-Unis) VeriSign BIND
c.root-servers.net 192.33.4.12 trafic distribué par anycast Cogent Communications BIND
d.root-servers.net 128.8.10.90 College Park (Maryland / Etats-Unis) Université du Maryland BIND
e.root-servers.net 192.203.230.10 Mountain View (Californie / Etats-Unis) NASA BIND
f.root-servers.net 192.5.5.241 trafic distribué par anycast ISC BIND
g.root-servers.net 192.112.36.4 Columbus (Ohio / Etats-Unis) Defense Information Systems Agency BIND
h.root-servers.net 128.63.2.53 Aberdeen (Maryland / Etats-Unis) U.S. Army Research Lab NSD
i.root-servers.net 192.36.148.17 trafic distribué par anycast Autonomica BIND
j.root-servers.net 192.58.128.30 trafic distribué par anycast VeriSign BIND
k.root-servers.net 193.0.14.129 trafic distribué par anycast RIPE-NCC NSD
l.root-servers.net 199.7.83.42 trafic distribué par anycast ICANN NSD
m.root-servers.net 202.12.27.33 trafic distribué par anycast WIDE Project BIND

Comme présenté dans le tableau, la plupart de ces serveurs peuvent être localisés géographiquement, mais certains sont distribués par anycast (technique d'adressage et de routage permettant de rediriger les données vers le serveur le plus proche).

I-4-4. Serveurs du domaine de deuxième niveau et notions de registre

Les serveurs du domaine de deuxième niveau sont les serveurs qui gèrent les sous-domaines des TLD. Chaque TLD connait tous ces sous-domaines. Pour cela, tous les sous-domaines d'un TLD sont gérés (créés, modifiés et supprimés) dans une base de données appelée registre de noms de domaine. En plus de contenir les noms des sous-domaines, les registres ont aussi les références des autorités qui maintiennent chacun d'eux (cf notion de zone).
Les registres sont tenus par des organisations fonctionnant comme des NIC (Network Information Center). Ces organisations peuvent des agences gouvernementales, des fournisseurs d'accès à internet, etc.
Certains registres vendent ou louent directement des noms aux utilisateurs, mais par souci de décentralisation, la plupart d'entre elles vendent par l'intermédiaire de registrars, qui ne sont rien d'autre que des bureaux d'enregistrement et de vente de noms de domaine. Un même registrar peut vendre des sous-domaines de plusieurs domaines différents.

I-5. Architecture de fonctionnement sur intranet

Selon le même principe que sur internet, le serveur DNS peut être aussi utilisé dans un intranet pour faciliter l'exploitation et la maintenance du réseau. Les possibilités offertes en intranet sont :

  • l'administrateur peut donner n'importe quel TLD, et n'importe quel nom à cette adresse, vu que l'intranet est indépendant d'internet ;
  • chaque machine du réseau local peut avoir un nom qui lui est propre.

I-6. Fonctionnement interne du serveur

Il ne s'agit pas ici de décrire l'architecture de fonctionnement des serveurs DNS entre eux, mais plutôt de présenter les différentes étapes que suit un serveur DNS pour reconnaitre l'adresse IP d'une machine à partir d'un nom de domaine donné. Pour mieux comprendre, le fonctionnement présenté ici est spécifique à un cas de fonctionnement en intranet. Sur internet, le fonctionnement est analogue avec d'autres traitements tels que le transfert de requêtes entre serveurs, mais surtout la sécurisation : le III et le IV traite de ces détails.

Le fonctionnement interne du DNS suit les étapes ci-dessous.

  1. Il faut d'abord comprendre que le serveur DNS lit un fichier principal duquel il tire les instructions qu'il doit suivre.
  2. C'est dans ce fichier que sont déclarés tous les fichiers de zone. Ce sont les fichiers de zone qui assurent la correspondance les noms de domaines et les adresses IP. Ils sont classés en deux catégories : les fichiers de résolution directe et les fichiers de résolution inverse. Les fichiers de résolution directe permettent de retrouver l'adresse IP du serveur à partir d'un nom de domaine. Généralement, les fichiers de résolution directe suffisent pour un fonctionnement minimal du serveur DNS.Les fichiers de résolution inverse permettent de retrouver les noms de domaine liés à une adresse IP donnée.
  3. La machine doit être reconnue comme serveur DNS par les autres machines du réseau y compris elle-même.
    Il faut donc l'inscrire comme tel sur les autres machines.

précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Guillaume Sigui. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.