DNS HOWTO

Nicolai Langfeldt <janl@math.uio.no>
Traduction fran�aise par Mathieu Arnold <arn_mat@club-internet.fr>

   Version 2.2, du 11 f�vrier 1999
     _________________________________________________________________

   _Comment devenir un administrateur de DNS � la petite semaine._
     _________________________________________________________________

1. Pr�ambule

   Mots-cl�s : DNS, bind, bind-4, bind-8, named, dialup, ppp, slip, isdn,
   Internet, domain, name, hosts, resolving, caching

   Ce document fait partie du _Linux Documentation Project_.

1.1 Aspect juridique

   (C)opyright 1995-1999 Nicolai Langfeldt. Ne modifiez pas ce document
   sans en modifier le message de copyright en cons�quence. Vous pouvez
   distribuer ce document librement sous r�serve de conserver le message
   de copyright.

1.2 Remerciements et appel aux bonnes volont�s

   J'aimerais remercier Arnt Gulbrandsen qui a tant souffert en relisant
   les brouillons de ce document et qui a apport� nombre de suggestions
   pertinentes. Merci �galement � tous ceux qui m'ont envoy� leurs
   suggestions par courrier �lectronique. Merci beaucoup ! Vous m'aidez
   vraiment dans ce travail.

   Ce document n'est pas destin� � atteindre un jour un �tat final, alors
   faites-moi part de vos probl�mes ainsi que de vos succ�s, cela me
   permettra d'am�liorer ce HOWTO. Merci d'envoyer les commentaires et/ou
   les questions et m�me l'argent � janl@math.uio.no. Si vous m'envoyez
   un courrier �lectronique, merci de _v�rifier_ que votre adresse de
   retour est correcte car je re�ois _beaucoup_ de courrier �lectronique.
   Essayez aussi de lire le chapitre FAQ avant de m'envoyer un mail.
   Autre chose je (l'auteur) ne parle qu'anglais et norv�gien.

   Si vous ne parlez ni l'anglais ni le norv�gien, vous pouvez toujours
   envoyer vos commentaires en fran�ais au traducteur
   (arn_mat@club-internet.fr) qui fera suivre.

   Si vous voulez traduire ce HOWTO, pr�venez-moi pour que je puisse
   garder le compte de toutes les langues dans lesquelles il a �t�
   traduit :-), de plus, cela me permettra de vous tenir au courant des
   �volutions de ce HowTo.

1.3 D�dicace

   Ce HOWTO est d�di� � Anne Line Norheim. Pourtant, elle ne le lira sans
   doute jamais, ce n'est pas du tout son genre.

2. Introduction.

   _Ce que ce document est et ce qu'il n'est pas_

   Le DNS est le _Domain Name System_. C'est l'ensemble des r�gles
   utilis�es par les machines et les logiciels pour �tablir, entre autres
   choses, la correspondance entre les noms de machines et les adresses
   IP, dont chaque machine sur le net est pourvue. Ce document explique
   comment d�finir de telles correspondances � l'aide d'un syst�me Linux.
   Une correspondance est tout simplement une relation entre deux objets,
   dans notre cas un nom de machine, comme ftp.linux.org, et l'adresse IP
   de cette machine, 199.249.150.4.

   Le DNS constitue pour le non-initi� (vous dans le cas pr�sent ;-) une
   des parties les plus obscures de l'administration de r�seau. Le but de
   ce HOWTO est d'essayer d'en �claircir quelques aspects. Ce document
   explique comment configurer un DNS _simple_. Nous allons commencer
   avec un serveur de noms qui ne sert qu'� faire cache puis nous
   continuerons en configurant un serveur DNS primaire pour un domaine.
   Pour des configurations plus complexes, jetez un coup d'oeil � la
   section FAQ de ce document. Si vous n'y trouvez pas ce que vous
   cherchez, vous allez alors devoir _lire_ la Vraie Documentation. Je
   reviendrai sur ce en quoi consiste la Vraie Documentation dans le
   chapitre final.

   Avant de commencer, vous devez configurer votre machine pour �tre
   capable de vous connecter par telnet sur d'autres machines mais aussi
   pouvoir recevoir des connexions sur votre machine. Vous devez aussi
   �tre en mesure de vous connecter au r�seau par tous les services
   possibles, et en particulier pouvoir faire telnet 127.0.0.1, ce qui
   revient � vous connecter � votre propre machine (v�rifiez tout de
   suite que �a marche !). Il est aussi n�cessaire, pour commencer, que
   les fichiers /etc/nnswitch.conf (ou /etc/host.conf), /etc/resolv.conf
   et /etc/hosts soient correctement configur�s car je n'expliquerai pas
   ici � quoi ils servent. Si tout cela n'est pas d�j� configur� et en
   �tat de marche, lisez le NET-3-HOWTO.

   Si vous utilisez une connexion SLIP ou PPP, il est indispensable
   qu'elle fonctionne. Lisez le PPP HOWTO si ce n'est pas le cas.

   Quand je dis ``votre machine'', j'entends la machine sur laquelle vous
   aller essayer d'installer le DNS, et non pas une autre machine dont
   vous pourriez vous servir pour acc�der au r�seau.

   Je supposerai par la suite que vous ne vous trouvez pas derri�re un
   firewall qui bloque les requ�tes de r�solution de nom. Si tel est le
   cas, vous aurez besoin d'une configuration sp�ciale. Reportez-vous
   alors au chapitre FAQ.

   Le service de r�solution de nom sous Unix est assur� par un programme
   appel� named. Il fait partie du paquetage ``bind'', g�r� par Paul
   Vixie pour l'Internet Software Consortium. named est inclus dans la
   plupart des distributions de Linux et se trouve le plus souvent
   install� dans /usr/sbin/named. Si vous disposez d'un named, vous
   pouvez vraisemblablement l'utiliser. Si vous n'en avez pas, chargez-en
   un � partir d'un site FTP Linux ou allez chercher la derni�re et
   meilleure version des sources du programme depuis
   ftp.isc.org/isc/bind/src/cur/bind-8/. Ce HowTo parle de bind version
   8. L'ancienne version de ce HowTo, a propos de bind 4 est toujours
   disponible � www.math.uio.no/~janl/DNS/ au cas ou vous auriez bind 4.
   Si la page man de named parle de named.conf vous avec bind 8, si elle
   parle (tout a la fin, dans la section FILES) de named.boot vous avez
   bind 4. Si vous avez bind 4, et si la s�curit� fait partie de vos
   pr�occupations, vous devriez vraiment passer � bind 8.

   Le service DNS est une base de donn�es � l'�chelle du r�seau tout
   entier. Faites donc tr�s attention � ce que vous y introduisez. Si
   vous y mettez n'importe quoi, vous en retirerez n'importe quoi, et les
   autres aussi. Conservez votre DNS bien propre, � jour et coh�rent et
   vous verrez qu'il vous offrira le meilleur de lui-m�me. Apprenez a
   l'utiliser, l'administrer, le d�bogger et vous ferez partie de ces
   administrateurs qui emp�chent que le r�seau ne s'�croule sous le poids
   des syst�mes mal g�r�s.

   Dans ce document, je dis des choses qui ne sont pas tout � fait vraies
   (mais qui le sont toujours au moins � moiti�). Si je le fais, c'est
   toujours dans le but de rendre les choses plus simples. Tout marchera
   (probablement ;-) tr�s bien si vous croyez ce que je vous dis.

   _Astuce :_ S'ils existent d�j�, faites une copie de sauvegarde de tous
   les fichiers que je vous demande de modifier. Ainsi, si plus rien ne
   marche apr�s ce que nous allons faire, vous pourrez toujours revenir
   au bon vieux temps o� tout marchait bien.

3. Un Serveur de Noms qui ne sert que de cache.

   _Un premier aper�u de la configuration d'un DNS, tr�s utile pour ceux
   qui utilisent une connexion en dialup._

   Un serveur de noms qui ne sert que de cache trouve la r�ponse aux
   requ�tes de r�solution de nom et se souvient de cette r�ponse chaque
   fois qu'on lui posera la m�me question par la suite. Cela r�duira les
   temps de r�ponse, surtout si vous avez une connexion plut�t lente.

   Vous avez tout d'abord besoin du fichier /etc/named.conf. Ce fichier
   est lu au lancement de named. Pour le moment, il ne doit pas contenir
   autre chose que :
     _________________________________________________________________

// Fichier de config pour un serveur de noms qui ne fait que du cache

options {
        directory "/var/named";

        // Enlever les commentaires peut vous aider si vous avez a passer a
        // travers un firewall et que �a ne marche pas :

        // query-source port 53;
};

zone "." {
        type hint;
        file "root.hints";
};

zone "0.0.127.in-addr.arpa" {
        type master;
        file "pz/127.0.0";
};
     _________________________________________________________________

   _TR�S IMPORTANT : _Dans certaines versions de ce document, les
   fichiers list�s comme ci-dessus pr�sentent un certain nombre de
   caract�res espace ou tabulation avant le premier caract�re non blanc
   de la ligne. Ils ne sont pas suppos�s faire partie du fichier.
   _Effacez donc tous les caract�res blancs_ de d�but de ligne des
   fichiers que vous copiez-collez � partir de ce HOWTO.

   La ligne ``directory'' indique � named l'endroit o� il doit rechercher
   ses fichiers. Tous les fichiers dont nous parlerons maintenant auront
   un chemin relatif relatifs � ce r�pertoire. Ainsi, pz est un
   sous-r�pertoire de /var/named, c'est a dire /var/named/pz. D'apr�s le
   _Linux Filesystem Standard_, ce r�pertoire doit �tre /var/named.

   On trouve � cet endroit le fichier /var/named/root.hints, qui doit
   ressembler � ceci :
     _________________________________________________________________

; Il se peut qu'il y ait quelques commentaires ici si vous avez d�j� ce
; fichier. de toutes fa�on, ce sont des commentaires, ils ne sont pas
; important du tout.

.                       6D IN NS        G.ROOT-SERVERS.NET.
.                       6D IN NS        J.ROOT-SERVERS.NET.
.                       6D IN NS        K.ROOT-SERVERS.NET.
.                       6D IN NS        L.ROOT-SERVERS.NET.
.                       6D IN NS        M.ROOT-SERVERS.NET.
.                       6D IN NS        A.ROOT-SERVERS.NET.
.                       6D IN NS        H.ROOT-SERVERS.NET.
.                       6D IN NS        B.ROOT-SERVERS.NET.
.                       6D IN NS        C.ROOT-SERVERS.NET.
.                       6D IN NS        D.ROOT-SERVERS.NET.
.                       6D IN NS        E.ROOT-SERVERS.NET.
.                       6D IN NS        I.ROOT-SERVERS.NET.
.                       6D IN NS        F.ROOT-SERVERS.NET.

G.ROOT-SERVERS.NET.     5w6d16h IN A    192.112.36.4
J.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.10
K.ROOT-SERVERS.NET.     5w6d16h IN A    193.0.14.129
L.ROOT-SERVERS.NET.     5w6d16h IN A    198.32.64.12
M.ROOT-SERVERS.NET.     5w6d16h IN A    202.12.27.33
A.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.4
H.ROOT-SERVERS.NET.     5w6d16h IN A    128.63.2.53
B.ROOT-SERVERS.NET.     5w6d16h IN A    128.9.0.107
C.ROOT-SERVERS.NET.     5w6d16h IN A    192.33.4.12
D.ROOT-SERVERS.NET.     5w6d16h IN A    128.8.10.90
E.ROOT-SERVERS.NET.     5w6d16h IN A    192.203.230.10
I.ROOT-SERVERS.NET.     5w6d16h IN A    192.36.148.17
F.ROOT-SERVERS.NET.     5w6d16h IN A    192.5.5.241
     _________________________________________________________________

   _Souvenez-vous bien de ce que j'ai dit pour les caract�res blancs en
   t�te de ligne !_

   Ce fichier donne une description de tous les serveurs de noms du monde
   qui se trouvent � la racine (au plus haut niveau) de la hi�rarchie des
   serveurs de noms. Il arrive que cette liste change, c'est pourquoi il
   est essentiel que ce fichier soit maintenu � jour. Reportez-vous � la
   section maintenance pour savoir comment le garder � jour. Le contenu
   de ce fichier est d�crit dans la page de man de named mais cette
   derni�re s'adresse plus, � mon humble avis, � ceux qui savent d�j�
   comment fonctionne ce programme.

   La section suivante de named.conf est la derni�re partie. Elle sera
   expliqu�e dans un chapitre suivant, pour l'instant, cr�ez un fichier
   appel� 127.0.0 dans le sous r�pertoire pz :
     _________________________________________________________________

@               IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                                1       ; Serial
                                8H      ; Refresh
                                2H      ; Retry
                                1W      ; Expire
                                1D)     ; Minimum TTL
                        NS      ns.linux.bogus.
1                       PTR     localhost.
     _________________________________________________________________

   Apr�s �a, vous avez besoin d'un fichier /etc/resolv.conf qui ressemble
   � peu pr�s � �a :
     _________________________________________________________________

search subdomain.your-domain.edu your-domain.edu
nameserver 127.0.0.1
     _________________________________________________________________

   La ligne search sp�cifie dans quels domaines il faudra chercher
   lorsque vous voudrez vous connecter sur une machine de nom quelconque.
   La ligne ``nameserver'' indique � quelle adresse votre machine peut
   contacter un serveur de noms. Si vous voulez indiquer plusieurs
   serveurs de nom, mettez une ligne ``nameserver'' pour chacun. Dans
   notre cas, il s'agit de notre propre machine puisque c'est elle qui
   fait tourner named. (Note : named ne lit jamais ce fichier, c'est le
   _r�solveur_ qui utilise named qui le fait).

   Voyons sur un exemple � quoi sert ce fichier : si un client cherche �
   contacter foo, on essaye d'abord foo.subdomain.your-domain.edu puis
   foo.your-domain.edu et enfin foo. Si un client essaye de contacter
   sunsite.unc.edu, on essaye d'abord
   sunsite.unc.edu.subdomain.your-domain.edu (je sais, c'est stupide,
   mais c'est comme �a) puis sunsite.unc.edu.your-domain.edu et enfin
   sunsite.unc.edu. Faites attention � ne pas mettre trop de noms de
   domaine dans la ligne search car cela prend du temps de tous les
   essayer.

   Cet exemple suppose que vous appartenez au domaine
   subdomain.your-domain.edu. Votre machine s'appelle alors certainement
   your-machine.subdomain.your-domain.edu. La ligne search ne doit pas
   contenir votre TLD (Top Level Domain; edu dans notre cas). Si vous
   vous connectez fr�quemment � des machines dans un autre domaine, vous
   pouvez rajouter ce domaine dans la ligne search comme ceci :
     _________________________________________________________________

search subdomain.your-domain.edu your-domain.edu other-domain.com
     _________________________________________________________________

   et ainsi de suite. �videmment, il faut appliquer cet exemple � de
   vrais noms de domaines. Remarquez qu'ici il n'y a pas de point � la
   fin des noms de domaine. C'est important, notez l'absence de points
   aux fins des noms de domaines.

   Ensuite, suivant votre version de la libc, vous allez devoir modifier
   soit /etc/nsswitch.conf, soit /etc/host.conf. Si vous avez d�j�
   nsswitch.conf, c'est celui-l� que nous allons modifier, sinon ce sera
   host.conf.

   _/etc/nsswitch.conf_

   C'est un long fichier qui sp�cifie o� trouver diff�rentes sortes de
   types de donn�es, dans quel fichier ou quelle base de donn�es. Il
   contient g�n�ralement des commentaires pr�cieux au d�but, que vous
   auriez tout int�r�t � lire. Ensuite, trouvez la ligne qui commence par
   ``hosts:'', elle doit ressembler � ceci:
     _________________________________________________________________

hosts: files dns
     _________________________________________________________________

   Si il n'y a aucune ligne qui commence par ``hosts:'', mettez celle
   ci-dessus. Elle dit que les programmes doivent d'abord regarder dans
   /etc/hosts puis demander au DNS en suivant les indications de
   resolv.conf.

   _/etc/host.conf_

   Ce fichier contient certainement plusieurs lignes, dont une doit
   commencer par order et ressembler � �a :
     _________________________________________________________________

order hosts,bind
     _________________________________________________________________

   Si il n'y a pas de ligne ``order'', il faut en mettre une. Elle
   indique aux routines de r�solution de nom de regarder d'abord dans
   /etc/hosts puis de demander au serveur de noms (que vous avez pr�cis�
   dans resolv.conf comme �tant 127.0.0.1).

3.1 D�marrer named.

   Apr�s tout �a, il est temps de d�marrer named. Si vous utilisez une
   connexion en dialup, commencez par vous connecter. Tapez ``ndc start''
   et appuyez sur la touche entr�e, sans donner d'options. Si �a ne
   marche pas, essayez plut�t ``/usr/sbin/ndc start''. Si �a ne marche
   toujours pas, jetez un coup d'oeil au chapitre FAQ. Si vous jetez un
   oeil � votre fichier de messages syslog (souvent appel�
   /var/adm/messages, mais regardez �galement dans le r�pertoire /var/log
   ou dans le fichier syslog) tout en lan�ant named (faites tail -f
   /var/adm/messages), vous devriez voir quelque chose comme �a :

   (les lignes se terminant par \ se continuent sur la ligne suivante)

Feb 15 01:26:17 roke named[6091]: starting.  named 8.1.1 Sat Feb 14 \
  00:18:20 MET 1998 ^Ijanl@roke.uio.no:/var/tmp/bind-8.1.1/src/bin/named
Feb 15 01:26:17 roke named[6091]: cache zone "" (IN) loaded (serial 0)
Feb 15 01:26:17 roke named[6091]: master zone "0.0.127.in-addr.arpa" \
  (IN) loaded (serial 1)
Feb 15 01:26:17 roke named[6091]: listening [127.0.0.1].53 (lo)
Feb 15 01:26:17 roke named[6091]: listening [129.240.230.92].53 (ippp0)
Feb 15 01:26:17 roke named[6091]: Forwarding source address is [0.0.0.0].1040
Feb 15 01:26:17 roke named[6092]: Ready to answer queries.

   Si il y a un quelconque message d'erreur, named donnera le nom du
   fichier dans lequel se trouve l'erreur (soit named.conf, soit
   root.hints, j'esp�re :-). Tuez le processus named et re-v�rifiez ce
   fichier.

   Il est maintenant temps de v�rifier votre configuration. Lancez
   nslookup pour regarder le r�sultat de votre petit travail.

$ nslookup
Default Server: localhost
Address: 127.0.0.1

>

   Si vous obtenez ce message, c'est que �a marche. Nous l'esp�rons tous.
   Si vous obtenez quoi que ce soit d'autre, revenez en arri�re et
   v�rifiez tout. Chaque fois que vous modifiez le fichier named.conf, il
   vous faut relancer named avec la commande ndc restart.

   Maintenant, vous pouvez entrer une requ�te. Essayez de contacter une
   machine proche de vous. pat.uio.no est proche de moi, � l'Universit�
   d'Oslo :

> pat.uio.no
Server: localhost
Address: 127.0.0.1

Name:    pat.uio.no
Address: 129.240.2.50

   nslookup a demand� � votre named de rechercher la machine pat.uio.no.
   Il a ensuite contact� un des serveurs de noms mentionn�s dans
   root.cache et a demand� le chemin � suivre. Il peut s'�couler un
   certain temps avant que vous obteniez le r�sultat puisqu'il se peut
   qu'il recherche tous les domaines list�s dans /etc/resolv.conf.

   Si vous r�essayez, vous obtiendrez ceci :

> pat.uio.no
Server: localhost
Address: 127.0.0.1

Non-authoritative answer :
Name: pat.uio.no
Address: 129.240.2.50

   Notez cette fois ci l'apparition de la ligne ``Non-authoritative
   answer :''. Elle veut dire que named n'a pas acc�d� au r�seau pour
   obtenir la r�ponse mais a trouv� l'information dans son cache.
   Cependant, l'information cach�e _pourrait_ ne plus �tre � jour. C'est
   pourquoi vous �tes inform� de cette possibilit� tr�s improbable par le
   message ``Non-authoritative answer:'' Quand nslookup r�pond ceci la
   seconde fois qu'on lui demande un certain h�te, c'est un signe certain
   que named cache bien les informations et que tout marche. Pour sortir
   de nslookup, utilisez la commande ``exit''.

3.2 Le rendre encore meilleur

   Dans les grands r�seaux, bien administr�s, des universit�s ou FAI
   (Fournisseur d'Acc�s a Internet), vous remarquerez peut-�tre que les
   administrateurs r�seau ont mis en place une hi�rarchie de serveurs DNS
   ce qui permet de soulager le r�seau interne ainsi que le r�seau vers
   l'ext�rieur. Il n'est pas facile de savoir si vous �tes dans un r�seau
   de ce type. Tout cela n'est pas tr�s important, mais en utilisant le
   serveur DNS de votre FAI comme ``forwarder'' vous pouvez rendre les
   r�ponses plus rapides et all�ger la charge de votre r�seau. Avec un
   modem, la diff�rence peut �tre sensible. Pour am�liorer encore notre
   exemple, supposons que votre FAI aie deux serveurs de noms qu'il veux
   vous faire utiliser, ayant pour adresses IP 10.0.0.1 et 10.1.0.1.
   Alors, dans votre fichier named.conf, dans la section appel�e
   ``options'' ins�rez les lignes :
     _________________________________________________________________

           forward first;
           forwarders {
                10.0.0.1;
                10.1.0.1;
            };
     _________________________________________________________________

   Red�marrez votre serveur de noms et testez avec nslookup. Cela devrait
   marcher sans probl�mes.

3.3 F�licitations !

   Maintenant, vous savez comment configurer un named qui sert de cache.
   Servez-vous une bi�re, un verre de lait ou tout ce que vous voudrez
   pour f�ter l'�v�nement.

4. Un domaine _simple_

   _Comment mettre en place votre propre domaine_

4.1 Mais avant tout, un brin de th�orie

   Avant d'entrer _vraiment_ dans le vif du sujet, il va falloir que je
   fasse un brin de th�orie avec quand m�me un petit exemple sur le
   principe du service DNS. Et il faudra tout lire, car c'est pour votre
   bien. Vous devriez au moins survoler rapidement cette section. Arr�tez
   le survol quand vous arrivez � l'endroit o� j'explique le contenu du
   fichier named.conf.

   Le service DNS est un syst�me organis� de mani�re hi�rarchique, sous
   forme d'arbre. La racine est d�sign�e par ``.'' et s'appelle ``la
   racine''. En dessous de . se trouvent un certain nombre de TLD (_Top
   Level Domains_); les plus connus sont ORG, COM, EDU, NET et FR, mais
   il y en a beaucoup d'autres. Tout comme un arbre, il a une racine avec
   des branches qui en partent. Si vous avez des connaissances en
   informatique fondamentale, vous reconna�trez dans le DNS un arbre de
   recherche, avec des noeuds, des arr�tes et des feuilles.

   Lorsque vous recherchez une machine, la question est pos�e
   r�cursivement dans toute la hi�rarchie depuis la racine. Lorsque vous
   voulez trouver l'adresse IP de prep.ai.mit.edu, votre DNS doit trouver
   un serveur de noms pour le domaine edu. Votre DNS demande d'abord � un
   serveur de noms de . (il poss�de d�j� les adresses des serveurs pour
   ., elles sont dans le fichier root.hints), et le serveur pour . donne
   une liste des serveurs d'edu.

   Voici un exemple :

$ nslookup
Default Server: localhost
Address: 127.0.0.1

   Interrogeons un serveur situ� � la racine.

> server c.root-servers.net.
Default Server: c.root-servers.net
Address: 192.33.4.12

   Positionnons le type de requ�te (Query Type) � NS (Name Server
   records).

> set q=ns

   Posons la question � propos de edu.

> edu.

   Le . terminal est significatif, il indique � nslookup que nous
   interrogeons que edu se trouve juste sous . (et pas dans l'un de nos
   sous-domaines, ce qui acc�l�re la recherche).

edu     nameserver = A.ROOT-SERVERS.NET
edu     nameserver = H.ROOT-SERVERS.NET
edu     nameserver = B.ROOT-SERVERS.NET
edu     nameserver = C.ROOT-SERVERS.NET
edu     nameserver = D.ROOT-SERVERS.NET
edu     nameserver = E.ROOT-SERVERS.NET
edu     nameserver = I.ROOT-SERVERS.NET
edu     nameserver = F.ROOT-SERVERS.NET
edu     nameserver = G.ROOT-SERVERS.NET
A.ROOT-SERVERS.NET      internet address = 198.41.0.4
H.ROOT-SERVERS.NET      internet address = 128.63.2.53
B.ROOT-SERVERS.NET      internet address = 128.9.0.107
C.ROOT-SERVERS.NET      internet address = 192.33.4.12
D.ROOT-SERVERS.NET      internet address = 128.8.10.90
E.ROOT-SERVERS.NET      internet address = 192.203.230.10
I.ROOT-SERVERS.NET      internet address = 192.36.148.17
F.ROOT-SERVERS.NET      internet address = 192.5.5.241
G.ROOT-SERVERS.NET      internet address = 192.112.36.4

   Nous apprenons ainsi que tous les serveurs ROOT-SERVERS.NET servent le
   domaine edu.; nous pouvons donc continuer en les interrogeant tous.
   Nous continuerons en interrogeant C. Maintenant, nous voulons savoir
   qui sert le niveau suivant du nom de domaine : mit.edu. :

> mit.edu.
Server:  c.root-servers.net
Address:  192.33.4.12

Non-authoritative answer:
mit.edu nameserver = STRAWB.mit.edu
mit.edu nameserver = W20NS.mit.edu
mit.edu nameserver = BITSY.mit.edu

Authoritative answers can be found from:
STRAWB.mit.edu  internet address = 18.71.0.151
W20NS.mit.edu   internet address = 18.70.0.160
BITSY.mit.edu   internet address = 18.72.0.3

   strawb, w20ns et bitsy servent tous le domaine mit, prenons-en un au
   hasard et posons-lui la question au sujet d'un domaine encore plus
   pr�cis : ai.mit.edu :

> server W20NS.mit.edu.

   On ne distingue pas majuscules et minuscules pour les noms de domaine,
   et comme j'utilise ma souris pour faire du copier-coller, vous lisez
   les choses dans ce document telles qu'elles apparaissent sur mon
   �cran.

Server:  W20NS.mit.edu
Address:  18.70.0.160

> ai.mit.edu.
Server:  W20NS.mit.edu
Address:  18.70.0.160

Non-authoritative answer:
ai.mit.edu      nameserver = ALPHA-BITS.AI.MIT.EDU
ai.mit.edu      nameserver = GRAPE-NUTS.AI.MIT.EDU
ai.mit.edu      nameserver = TRIX.AI.MIT.EDU
ai.mit.edu      nameserver = MUESLI.AI.MIT.EDU
ai.mit.edu      nameserver = LIFE.AI.MIT.EDU
ai.mit.edu      nameserver = BEET-CHEX.AI.MIT.EDU
ai.mit.edu      nameserver = MINI-WHEATS.AI.MIT.EDU
ai.mit.edu      nameserver = COUNT-CHOCULA.AI.MIT.EDU
ai.mit.edu      nameserver = MINTAKA.LCS.MIT.EDU

Authoritative answers can be found from:
AI.MIT.EDU      nameserver = ALPHA-BITS.AI.MIT.EDU
AI.MIT.EDU      nameserver = GRAPE-NUTS.AI.MIT.EDU
AI.MIT.EDU      nameserver = TRIX.AI.MIT.EDU
AI.MIT.EDU      nameserver = MUESLI.AI.MIT.EDU
AI.MIT.EDU      nameserver = LIFE.AI.MIT.EDU
AI.MIT.EDU      nameserver = BEET-CHEX.AI.MIT.EDU
AI.MIT.EDU      nameserver = MINI-WHEATS.AI.MIT.EDU
AI.MIT.EDU      nameserver = COUNT-CHOCULA.AI.MIT.EDU
AI.MIT.EDU      nameserver = MINTAKA.LCS.MIT.EDU
ALPHA-BITS.AI.MIT.EDU   internet address = 128.52.32.5
GRAPE-NUTS.AI.MIT.EDU   internet address = 128.52.36.4
TRIX.AI.MIT.EDU internet address = 128.52.37.6
MUESLI.AI.MIT.EDU       internet address = 128.52.39.7
LIFE.AI.MIT.EDU internet address = 128.52.32.80
BEET-CHEX.AI.MIT.EDU    internet address = 128.52.32.22
MINI-WHEATS.AI.MIT.EDU  internet address = 128.52.54.11
COUNT-CHOCULA.AI.MIT.EDU        internet address = 128.52.38.22
MINTAKA.LCS.MIT.EDU     internet address = 18.26.0.36

   Ainsi, muesli.ai.mit.edu est un serveur de noms pour le domaine
   ai.mit.edu :

> server MUESLI.AI.MIT.EDU
Default Server:  MUESLI.AI.MIT.EDU
Address:  128.52.39.7

   Changeons le type de requ�te. Nous avons r�ussi � trouver le serveur
   de noms, nous allons maintenant demander tout ce que muesli sait sur
   le domaine prep.ai.mit.edu.

> set q=any
> prep.ai.mit.edu.
Server:  MUESLI.AI.MIT.EDU
Address:  128.52.39.7

prep.ai.mit.edu CPU = dec/decstation-5000.25    OS = unix
prep.ai.mit.edu
        inet address = 18.159.0.42, protocol = tcp
          ftp  telnet  smtp  finger
prep.ai.mit.edu preference = 1, mail exchanger = gnu-life.ai.mit.edu
prep.ai.mit.edu internet address = 18.159.0.42
ai.mit.edu      nameserver = beet-chex.ai.mit.edu
ai.mit.edu      nameserver = alpha-bits.ai.mit.edu
ai.mit.edu      nameserver = mini-wheats.ai.mit.edu
ai.mit.edu      nameserver = trix.ai.mit.edu
ai.mit.edu      nameserver = muesli.ai.mit.edu
ai.mit.edu      nameserver = count-chocula.ai.mit.edu
ai.mit.edu      nameserver = mintaka.lcs.mit.edu
ai.mit.edu      nameserver = life.ai.mit.edu
gnu-life.ai.mit.edu     internet address = 128.52.32.60
beet-chex.ai.mit.edu    internet address = 128.52.32.22
alpha-bits.ai.mit.edu   internet address = 128.52.32.5
mini-wheats.ai.mit.edu  internet address = 128.52.54.11
trix.ai.mit.edu internet address = 128.52.37.6
muesli.ai.mit.edu       internet address = 128.52.39.7
count-chocula.ai.mit.edu        internet address = 128.52.38.22
mintaka.lcs.mit.edu     internet address = 18.26.0.36
life.ai.mit.edu internet address = 128.52.32.80

   En commen�ant � partir de ., nous avons successivement trouv� les
   serveurs de noms des diff�rents niveaux du nom de domaine. Si vous
   aviez utilis� votre propre serveur DNS � la place de tous ces autres
   serveurs, votre named aurait, bien s�r, cach� toutes ces informations
   et il n'aurait plus eu besoin de les redemander pendant un certain
   temps.

   Si l'on revient a l'analogie avec les arbres, chaque ``.'' dans le nom
   est un embranchement. Et chaque nom entre deux . est une branche de
   l'arbre.

   Grimpons ensemble dans l'arbre en prenant le nom que nous voulons
   (prep.ai.mit.edu). On part de la racine (.), on regarde ensuite dans
   quelle branche grimper, dans notre cas, edu. D�s qu'on l'a trouv�e, on
   y grimpe en passant par le serveur qui conna�t cette partie du nom.
   Ensuite, assis sur la branche edu, on cherche la branche mit (le nom
   combin� est mit.edu), puis la branche ai.mit.edu. Maintenant, on est
   sur le bon serveur, au bon embranchement. La derni�re partie est de
   trouver prep.ai.mit.edu, ce qui est tr�s simple. En informatique
   fondamentale, on appelle prep une _feuille_ de l'arbre.

   Un domaine dont on parle beaucoup moins, mais qui n'en est pas moins
   important, est in-addr.arpa. Ce domaine trouve sa place dans la
   hi�rarchie des noms de domaine comme un domaine ``normal''.
   in-addr.arpa nous sert � obtenir le nom d'h�te connaissant l'adresse
   IP d'une machine. Une chose tr�s importante ici est de bien remarquer
   que les adresses IP sont not�es en sens inverse � l'int�rieur du
   domaine in-addr.arpa. Si vous avez l'adresse d'une machine :
   192.128.52.43, named proc�de exactement comme dans l'exemple de
   prep.ai.mit.edu : il trouve les serveurs pour in-addr.arpa., trouve
   les serveurs pour 192.in-addr.arpa., trouve les serveurs pour
   128.192.in-addr.arpa., et finalement trouve les serveurs pour
   52.128.192.in-addr.arpa. . On obtient bien ainsi l'information li�e �
   43.52.128.192.in-addr.arpa. Malin, n'est ce pas ? (dites oui). En
   fait, la r�solution de noms inverse est assez difficile � admettre les
   premi�res ann�es.

   � vrai dire, je vous ai menti. Le service DNS ne marche pas vraiment
   comme �a. Mais ce que je vous ai dit est suffisamment proche de la
   r�alit�.

4.2 Notre propre domaine

   Maintenant, nous en sommes � d�finir notre propre domaine bien � nous.
   Nous allons cr�er le domaine linux.bogus et y d�clarer quelques
   machines. C'est un nom de domaine totalement factice, afin d'�tre s�r
   de ne d�ranger personne dans le Vaste Monde.

   Encore une chose avant de commencer. Tous les caract�res ne sont pas
   admis dans les noms de machines. On ne doit utiliser que les
   caract�res de l'alphabet anglais (a-z), les nombres (0-9) et le tiret
   ``-''. Utilisez ces caract�res, majuscules et minuscules sont
   confondues, donc pat.uio.no est identique � Pat.UiO.No.

   En fait, nous avons d�j� commenc� � cr�er notre propre domaine avec
   cette ligne dans named.conf:
     _________________________________________________________________

zone "0.0.127.in-addr.arpa" {
        type master;
        file "pz/127.0.0";
};
     _________________________________________________________________

   Notez bien l'absence de ``.'' � la fin des noms de domaine de ce
   fichier. Elle signifie que nous allons d�finir la zone
   0.0.127.in-addr.arpa, que nous sommes son serveur principal et que
   tout est stock� dans un fichier appel� pz/127.0.0. On a d�j� vu ce
   fichier, il se pr�sente comme ceci :
     _________________________________________________________________

@               IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                                1       ; Serial
                                8H      ; Refresh
                                2H      ; Retry
                                1W      ; Expire
                                1D)     ; Minimum TTL
                        NS      ns.linux.bogus.
1                       PTR     localhost.
     _________________________________________________________________

   Notez bien le ``.'' � la fin de tous les noms de domaine complets de
   ce fichier, contrairement au fichier named.boot. Certaines personnes
   aiment commencer chaque fichier d�finissant une zone par une directive
   $ORIGIN, mais en fait c'est superflu. L'origine (l'emplacement dans la
   hi�rarchie du service DNS) d'un fichier de zone est indiqu�e dans la
   zone section du fichier named.conf. Dans notre cas, c'est
   0.0.127.in-addr.arpa.

   Ce ``fichier de zone'' (``zone file''), contient 3 ``resource
   records'' (RRs) : un SOA RR, un NS RR et un PTR RR. SOA est
   l'abr�viation de ``Start Of Authority'' (Origine de l'Autorit�). Le
   ``@'' est une notation sp�ciale qui d�signe l'origine. Et comme la
   colonne ``domain'' de ce fichier donne 0.0.127.in-addr.arpa, la
   premi�re ligne signifie donc :

0.0.127.IN-ADDR.ARPA. IN SOA ...

   NS est le ``resource records'' pour le serveur de noms (NS = Name
   Server), Il n'y a pas de @ au d�but de la ligne, il est implicite,
   puisque la ligne d'avant commence avec un ``@''. Alors, faites-vous
   une fleur en omettant ce caract�re. Donc, la ligne NS peut aussi
   s'�crire comme suit :

0.0.127.in-addr.arpa.   IN      NS      ns.linux.bogus

   Elle dit au service DNS quelle machine est le serveur de noms pour le
   domaine 0.0.127.in-addr.arpa, c'est ns.linux.bogus. ns est le nom
   habituel des serveurs de noms, tout comme www. pour les serveurs Web,
   mais c'est simplement une habitude, on peut choisir n'importe quel
   nom.

   Et finalement le PTR dit que l'adresse 1 dans le sous r�seau
   0.0.127.in-addr.arpa, donc 127.0.0.1 est appel� localhost.

   Le champ SOA est le pr�ambule de _tous_ les fichiers de zone, et il
   doit y en avoir exactement un dans chaque fichier de zone. Ce champ
   SOA d�crit la zone, son origine (une machine appel�e ns.linux.bogus),
   qui est responsable de son contenu (hostmaster@linux.bogus, vous
   devriez mettre votre adresse email � cet endroit), de quelle version
   du fichier de zone il s'agit (serial : 1), et quelques autres
   param�tres pour le cache et les serveurs DNS secondaires. Quant aux
   champs restants (_refresh_, _retry_, _expire_ et _minimum_) utilisez
   les valeurs donn�es dans ce HOWTO et tout se passera certainement tr�s
   bien.

   Maintenant, relancez votre named (avec la commande ndc restart) et
   utilisez nslookup pour regarder le r�sultat :

$ nslookup

Default Server:  localhost
Address:  127.0.0.1

> 127.0.0.1
Server:  localhost
Address:  127.0.0.1

Name:    localhost
Address:  127.0.0.1

   Tout va bien, on arrive � obtenir localhost � partir de 127.0.0.1.
   Maintenant, pour le sujet qui nous pr�occupe, le domaine linux.bogus,
   ins�rez une nouvelle zone dans le fichier named.conf :
     _________________________________________________________________

zone "linux.bogus" {
        notify no;
        type master;
        file "pz/linux.bogus";
};
     _________________________________________________________________

   Notez qu'encore une fois il n'y a pas de ``.'' � la fin des noms de
   domaine dans le fichier named.conf.

   Dans le fichier de zone linux.bogus, nous allons mettre quelques
   donn�es totalement factices :
     _________________________________________________________________

;
; Zone file for linux.bogus
;
; The full zone file
;
@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                        199802151       ; serial, todays date + todays serial #
                        8H              ; refresh, seconds
                        2H              ; retry, seconds
                        1W              ; expire, seconds
                        1D )            ; minimum, seconds
;
                NS      ns              ; Inet Address of name server
                MX      10 mail.linux.bogus     ; Primary Mail Exchanger
                MX      20 mail.friend.bogus.   ; Secondary Mail Exchanger
;
localhost       A       127.0.0.1
ns              A       192.168.196.2
mail            A       192.168.196.4
     _________________________________________________________________

   Il y a deux choses � noter � propos du champ SOA. ns.linux.bogus _doit
   absolument_ �tre une vraie machine poss�dant un champ A. Il n'est pas
   l�gal d'avoir un champ CNAME pour la machine mentionn�e dans le champ
   SOA. Il n'est pas n�cessaire que son nom soit ``ns'', ce peut �tre
   tout autre nom valide. La deuxi�me chose � noter c'est que
   hostmaster.linux.bogus doit se lire comme hostmaster@linux.bogus. Ce
   doit �tre un alias de mail, ou une v�ritable bo�te aux lettres
   �lectronique, et la personne qui maintient le DNS doit la lire
   r�guli�rement. Tous les mails concernant l'administration du domaine
   seront envoy�s � cette adresse. Il n'est pas obligatoire que le nom
   soit ``hostmaster'', vous pouvez mettre votre adresse e-mail
   personnelle, mais il serait bon que l'adresse ``hostmaster''
   fonctionne aussi.

   Il y a un nouveau RR (Resource Record) dans ce fichier, c'est le MX,
   pour Mail eXchanger. Il indique aux syst�mes de gestion du courrier
   �lectronique � quelle machine envoyer le mail adress� �
   someone@linux.bogus, dans notre cas � mail.linux.bogus ou
   mail.friend.bogus. Le nombre devant chaque machine est sa priorit�
   vis-�-vis du champ MX, le RR avec le num�ro le plus faible (10)
   correspond � la machine � laquelle le courrier doit �tre adress� en
   priorit�. En cas d'�chec, il peut �tre adress� � la machine qui a le
   num�ro de priorit� imm�diatement sup�rieur, c'est-�-dire
   mail.friend.bogus qui a une priorit� de 20 dans notre cas.

   Relancez named en tapant ndc restart. Examinons le r�sultat avec
   nslookup :

$ nslookup
> set q=any
> linux.bogus
Server:  localhost
Address:  127.0.0.1

linux.bogus
        origin = ns.linux.bogus
        mail addr = hostmaster.linux.bogus
        serial = 199802151
        refresh = 28800 (8 hours)
        retry   = 7200 (2 hours)
        expire  = 604800 (7 days)
        minimum ttl = 86400 (1 day)
linux.bogus     nameserver = ns.linux.bogus
linux.bogus     preference = 10, mail exchanger = mail.linux.bogus.linux.bogus
linux.bogus     preference = 20, mail exchanger = mail.friend.bogus
linux.bogus     nameserver = ns.linux.bogus
ns.linux.bogus  internet address = 192.168.196.2
mail.linux.bogus        internet address = 192.168.196.4

   Un examen approfondi vous montrera qu'il y a un bug. En effet, la
   ligne

  linux.bogus preference = 10, mail exchanger = mail.linux.bogus.linux.bogus

   est enti�rement fausse. Il devrait y avoir

  linux.bogus preference = 10, mail exchanger = mail.linux.bogus

   J'ai fait cette erreur d�lib�r�ment, pour voir si vous suiviez :-) En
   regardant dans le fichier de zone, nous trouvons que dans la ligne

@ MX 10 mail.linux.bogus ; Primary Mail Exchanger

   il manque un point. Ou il y a un ``linux.bogus'' de trop. Si, dans un
   fichier de zone, un nom de machine ne se termine pas par un point,
   l'origine est ajout�e au nom de la machine. Ainsi, une des deux
   formes :
     _________________________________________________________________

                MX      10 mail.linux.bogus.    ; Primary Mail Exchanger
     _________________________________________________________________

   ou
     _________________________________________________________________

                MX      10 mail                 ; Primary Mail Exchanger
     _________________________________________________________________

   est correcte. Je pr�f�re la deuxi�me forme parce qu'il y a moins de
   caract�res � taper. Certains approuveront, d'autres non. Dans un
   fichier de zone, le nom de domaine doit ou bien �tre �crit et termin�
   par un point, ou bien ne pas �tre inclus du tout. Dans le dernier cas,
   le nom de domaine par d�faut est l'origine.

   Il faut que j'insiste sur le point suivant : dans le fichier
   named.conf, il ne doit _pas_ y avoir de ``.'' apr�s les noms de
   domaines. Vous ne pouvez pas vous imaginer les ravages qui ont �t�
   caus�s pas des ``.'' en trop ou en moins.

   Cela �tant dit, voici le nouveau fichier de zone, avec quelques
   informations suppl�mentaires :
     _________________________________________________________________

;
; Zone file for linux.bogus
;
; The full zone file
;
@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                        199802151       ; serial, todays date + todays serial #
                        8H              ; refresh, seconds
                        2H              ; retry, seconds
                        1W              ; expire, seconds
                        1D )            ; minimum, seconds
;
                TXT     "Linux.Bogus, your DNS consultants"
                NS      ns              ; Inet Address of name server
                NS      ns.friend.bogus.
                MX      10 mail         ; Primary Mail Exchanger
                MX      20 mail.friend.bogus. ; Secondary Mail Exchanger

localhost       A       127.0.0.1

gw              A       192.168.196.1
                HINFO   "Cisco" "IOS"
                TXT     "The router"

ns              A       192.168.196.2
                MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "Pentium" "Linux 2.0"
www             CNAME   ns

donald          A       192.168.196.3
                MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "i486"  "Linux 2.0"
                TXT     "DEK"

mail            A       192.168.196.4
                MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "386sx" "Linux 1.2"

ftp             A       192.168.196.5
                MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "P6" "Linux 2.1.86"
     _________________________________________________________________

   Il y a un certain nombre de nouveaux RR que nous allons passer en
   revue : HINFO (Host INFOrmation), qui est en deux parties, et c'est
   une bonne habitude � prendre que d'encadrer chacune de guillemets. La
   premi�re partie est la description mat�rielle ou le type de processeur
   de la machine tandis que la deuxi�me partie d�crit le logiciel utilis�
   ou le syst�me d'exploitation de la machine. ns a pour processeur un
   Pentium et tourne sous Linux 2.0. Le champ CNAME (Canonical NAME) sert
   � donner plusieurs noms � la m�me machine. Par cons�quent, www est un
   alias de ns.

   L'utilisation des champs CNAME est assez controvers�e. Mais il est
   sage de suivre la r�gle selon laquelle un champ MX, CNAME ou SOA ne
   doit _jamais_ se r�f�rer � un champ CNAME, toujours se r�f�rer � un
   champ A, il est donc pr�f�rable de ne pas avoir :
     _________________________________________________________________

foobar          CNAME   www                     ; NON !
     _________________________________________________________________

   En revanche, ceci est correct :
     _________________________________________________________________

foobar          CNAME   ns                      ; Oui !
     _________________________________________________________________

   Il est aussi important de noter qu'un CNAME n'est pas un nom d'h�te
   l�gal pour une adresse de courrier �lectronique.
   webmaster@www.linux.bogus est une adresse de mail ill�gale avec la
   configuration ci-dessus. Vous pouvez �tre s�rs qu'il y a un certain
   nombre d'administrateurs syst�me dans le Vaste Monde qui sont tr�s �
   cheval sur cette r�gle, m�me si avec un CNAME �a marche pour vous. Une
   fa�on de contourner le probl�me est d'utiliser des champs A (et
   peut-�tre d'autres, comme un champ MX par exemple) � la place :
     _________________________________________________________________

www             A       192.168.196.2
     _________________________________________________________________

   Un certain nombre de gourous-du-bind recommandent de ne _pas_ utiliser
   de CNAME. Mais les discussions sur le pour et le contre sortent du
   cadre de ce HOWTO.

   Mais comme vous le voyez, ce HowTo ainsi que beaucoup de serveurs ne
   suivent pas cette r�gle.

   Chargez la nouvelle base de donn�es en lan�ant ndc reload, ce qui
   forcera named � relire ses fichiers de configuration.

$ nslookup
Default Server:  localhost
Address:  127.0.0.1

> ls -d linux.bogus

   Ceci veut dire que l'on souhaite que tous les champs soient affich�s.

[localhost]
$ORIGIN linux.bogus.
@                       1D IN SOA       ns hostmaster (
                                        199802151       ; serial
                                        8H              ; refresh
                                        2H              ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                        1D IN NS        ns
                        1D IN NS        ns.friend.bogus.
                        1D IN TXT       "Linux.Bogus, your DNS consultants"
                        1D IN MX        10 mail
                        1D IN MX        20 mail.friend.bogus.
gw                      1D IN A         192.168.196.1
                        1D IN HINFO     "Cisco" "IOS"
                        1D IN TXT       "The router"
mail                    1D IN A         192.168.196.4
                        1D IN MX        10 mail
                        1D IN MX        20 mail.friend.bogus.
                        1D IN HINFO     "386sx" "Linux 1.0.9"
localhost               1D IN A         127.0.0.1
www                     1D IN CNAME     ns
donald                  1D IN A         192.168.196.3
                        1D IN MX        10 mail
                        1D IN MX        20 mail.friend.bogus.
                        1D IN HINFO     "i486" "Linux 1.2"
                        1D IN TXT       "DEK"
ftp                     1D IN A         192.168.196.5
                        1D IN MX        10 mail
                        1D IN MX        20 mail.friend.bogus.
                        1D IN HINFO     "P6" "Linux 1.3.59"
ns                      1D IN A         192.168.196.2
                        1D IN MX        10 mail
                        1D IN MX        20 mail.friend.bogus.
                        1D IN HINFO     "Pentium" "Linux 1.2"

   Tout va bien. Regardons ce qu'il dit pour www tout seul :

> set q=any
> www.linux.bogus.
Server:  localhost
Address:  127.0.0.1

www.linux.bogus canonical name = ns.linux.bogus
linux.bogus     nameserver = ns.linux.bogus
linux.bogus     nameserver = ns.friend.bogus
ns.linux.bogus  internet address = 192.168.196.2

   En d'autres termes, le vrai nom de www.linux.bogus est ns.linux.bogus,
   et vous avez en plus quelques informations � propos de ns, en fait,
   suffisamment pour vous y connecter si vous �tiez un programme.

   Bon, on a fait la moiti� du boulot.

4.3 La zone invers�e

   �a y est, les programmes peuvent convertir les noms de linux.bogus en
   adresses auxquelles ils peuvent se connecter. Maintenant, on a besoin
   d'une zone invers�e pour que l'on puisse retrouver le DNS � partir de
   l'adresse. Ce nom est utilis� par diff�rents types de serveurs (FTP,
   IRC, WWW et autres) pour d�cider s'ils vont discuter avec vous ou non,
   et s'ils le font, quelle priorit� ils vont vous donner. Pour un acc�s
   complet aux services sur Internet, la zone invers�e est indispensable.

   Mettez �a dans votre named.conf
     _________________________________________________________________

zone "196.168.192.in-addr.arpa" {
        notify no;
        type master;
        file "pz/192.168.196";
};
     _________________________________________________________________

   C'est exactement comme pour le 0.0.127.in-addr.arpa et le contenu est
   similaire :
     _________________________________________________________________

@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                        199802151 ; Serial, todays date + todays serial
                        8H      ; Refresh
                        2H      ; Retry
                        1W      ; Expire
                        1D)     ; Minimum TTL
                NS      ns.linux.bogus.

1               PTR     gw.linux.bogus.
2               PTR     ns.linux.bogus.
3               PTR     donald.linux.bogus.
4               PTR     mail.linux.bogus.
5               PTR     ftp.linux.bogus.
     _________________________________________________________________

   Red�marrez votre named (ndc restart) et examinez votre travail avec
   nslookup :
     _________________________________________________________________

> 192.168.196.4
Server:  localhost
Address:  127.0.0.1

Name:    mail.linux.bogus
Address:  192.168.196.4
     _________________________________________________________________

   On dirait que c'est bon, on va regarder en d�tails pour s'en assurer :
     _________________________________________________________________

> ls -d 196.168.192.in-addr.arpa
[localhost]
$ORIGIN 196.168.192.in-addr.arpa.
@                       1D IN SOA       ns.linux.bogus. hostmaster.linux.bogus.
 (
                                        199802151       ; serial
                                        8H              ; refresh
                                        2H              ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                        1D IN NS        ns.linux.bogus.
1                       1D IN PTR       gw.linux.bogus.
2                       1D IN PTR       ns.linux.bogus.
3                       1D IN PTR       donald.linux.bogus.
4                       1D IN PTR       mail.linux.bogus.
5                       1D IN PTR       ftp.linux.bogus.
@                       1D IN SOA       ns.linux.bogus. hostmaster.linux.bogus.
 (
                                        199802151       ; serial
                                        8H              ; refresh
                                        2H              ; retry
                                        1W              ; expiry
                                        1D )            ; minimum
     _________________________________________________________________

   Pas mal ! Si ce que vous donne nslookup ne ressemble pas a �a, allez a
   la p�che aux messages d'erreur dans votre syslog. J'ai expliqu�
   comment faire au tout d�but du chapitre.

4.4 Pr�cautions d'usage

   Je devrais maintenant faire quelques remarques. Les adresses IP
   utilis�es dans les exemples pr�c�dents sont prises dans le bloc des
   ``r�seaux priv�s'', c'est � dire des adresses qui ne doivent pas �tre
   utilis�es publiquement sur Internet. Donc, il est sage de les avoir
   utilis�es dans un exemple d'un HowTo. La deuxi�me chose est la ligne
   notify no;. Elle demande � named de ne pas informer ses serveur
   secondaires (les esclaves) quand l'un de ses fichiers de zone a �t�
   mis � jour. Depuis Bind-8 named peut informer les autres serveurs
   list�s dans ses champs NS dans le fichier zone, quand une zone est
   mise a jour. C'est pratique pour une utilisation normale, mais pour
   des exp�riences priv�es cette fonctionnalit� doit �tre mise hors
   service, on ne va quand m�me pas polluer Internet avec nos
   exp�riences, non ?

   Bien s�r, ce domaine est tr�s factice, tout comme le sont ses
   adresses. C'est peut-�tre un peu d�routant pour vous. Un vrai exemple
   tir� d'un vrai domaine vous attend au grand chapitre suivant.

4.5 Pourquoi est-ce que les lookup invers�s ne marchent pas ?

   Il y a quelques trucs qui sont normalement �vit�s avec les lookups qui
   arrivent souvent quand on met en place des zones invers�s. Avant de
   continuer, vous avez besoin d'avoir des lookups qui marchent sur vos
   propres serveurs de noms. Si ce n'est pas le cas, revenez en arri�re
   et r�parez-le avant de continuer.

   Je parlerais des deux probl�mes de lookups invers�s qui sont vu de
   l'ext�rieur de votre r�seau :

  La zone inverse n'est pas d�l�gu�e.

   Quand vous demandez � un fournisseur d'acc�s quelques adresses IP
   ainsi qu'un nom de domaine, le nom de domaine vous est normalement
   d�l�gu�. La d�l�gation consiste en un champ NS qui vous aide a passer
   d'un serveur � l'autre comme je l'ai expliqu� dans le brin de th�orie
   qui pr�c�de. Vous l'avez lu, n'est-ce pas ? Si votre zone invers�e ne
   marche pas, retournez y et lisez-le. Maintenant.

   La zone invers�e a elle aussi besoin d'�tre d�l�gu�e. Si vous avez le
   r�seau 192.168.196 avec le domaine linux.bogus de votre fournisseur,
   il devra mettre des champs NS pour votre zone invers�e aussi bien que
   pour votre zone directe. Si vous remontez la cha�ne � partir de
   in-addr.arpa vous trouverez un trou quelque part. Tr�s certainement au
   niveau de votre fournisseur. Apr�s avoir trouv� le trou dans la
   cha�ne, contactez votre fournisseur et demandez-lui de corriger
   l'erreur.

  Vous avez un sous-r�seau sans classe

   C'est un sujet plut�t pointu, mais les sous r�seaux sans classe sont
   tr�s r�pandus de nos jours et vous en aurez tr�s certainement un si
   vous n'�tes pas une entreprise assez grande.

   Un sous-r�seau sans classe est ce qui sauve Internet de nos jours. Il
   y a quelques ann�es, il y avait vraiment beaucoup de discussions sur
   la rar�faction des adresses IP. Les personnes intelligentes de l'IETF
   (Internet Engineering Task Force, ceux qui maintiennent Internet en
   �tat de marche) se sont pench�es sur cet �pineux probl�me et ont
   trouv� une solution. A un certain prix. Le prix est que vous aurez
   moins qu'un sous r�seau de classe ``C'' et que certaines choses ne
   marcheront certainement plus. Allez voir Ask Mr DNS (c'est en anglais)
   pour plus d'explications.

   Vous l'avez lu ? Comme je ne vais pas l'expliquer, s'il vous pla�t,
   allez le lire.

   La premi�re partie du probl�me est que votre FAI doit comprendre la
   technique d�crite par _Mr DNS_. Tous les petits FAI ne le comprennent
   pas. S'ils n'ont pas bien compris, vous allez avoir � leur expliquer
   et � insister. Mais assurez-vous de comprendre vous-m�me en premier
   lieu ;-). Ils mettrons ensuite une jolie zone invers�e sur leurs
   serveurs que vous pourrez examiner pour savoir si elle est correcte
   avec nslookup.

   La deuxi�me et derni�re partie du probl�me est que vous devez en
   comprendre la technique. Si vous n'�tes pas certain, revenez en
   arri�re et relisez ce document. Ensuite, vous pourrez mettre en place
   une zone invers�e sans classe comme le d�crit _Mr DNS_.

   Il y a une autre difficult� qui pointe son nez ici. Les vieux
   r�solveurs _ne seront pas_ capable de suivre les champs CNAME dans la
   cha�ne de r�solution et n'arriveront pas a r�soudre l'IP de votre
   machine. Cela peut entra�ner l'assignation d'une mauvaise classe, la
   non-r�solution ou quelque chose dans ce go�t-l�. Si vous butez sur ce
   genre de probl�me, la seule solution (que je connaisse) est de
   demander � votre FAI d'ins�rer vos champs PTR dans ses fichiers de
   zone sans classe plut�t que des champs CNAME.

   Certains FAI vous proposeront d'autre m�thodes pour g�rer cela, comme
   des formulaires web o� vous pourrez entrer vos zones invers�es, ou
   d'autre syst�mes automatis�s.

5. Un exemple tir� d'un domaine r�el

   _O� nous allons enfin voir de vrais fichiers de zone_

   Certains utilisateurs ont sugg�r� que je mette un vrai exemple d'un
   domaine qui marche dans la r�alit� car mon explication sur la
   diff�rence entre un vrai domaine et l'exemple bidon ci-dessus n'�tait
   pas tr�s claire.

   J'utilise cet exemple avec la permission de David Bullock de LAND-5.
   Ces fichiers �taient � jour le 24 Septembre 96, et ont �t� modifi�e
   pour �tre utilis�s avec les restrictions de bind 8 et quelques
   extensions de mon cru. Par cons�quent, ils peuvent donc diff�rer de ce
   que vous pouvez trouver en questionnant les serveurs de nom de LAND-5
   aujourd'hui.

   Voici les sections pour les deux zones invers�es n�cessaires : le
   r�seau 127.0.0, ainsi que le sous-r�seau LAND-5 206.6.177. Et une
   ligne primary pour la forward zone land-5.com. Notez aussi qu'au lieu
   de mettre les fichiers dans le r�pertoire pz comme dans ce HowTo, il
   les met dans le r�pertoire zone.

5.1 /etc/named.conf (ou /var/named/named.conf)
     _________________________________________________________________

// Boot file for LAND-5 name server

options {
        directory "/var/named";
};

zone "." {
        type hint;
        file "root.hints";
};

zone "0.0.127.in-addr.arpa" {
        type master;
        file "zone/127.0.0";
};

zone "land-5.com" {
        type master;
        file "zone/land-5.com";
};

zone "177.6.206.in-addr.arpa" {
        type master;
        file "zone/206.6.177";
};
     _________________________________________________________________

   Si vous mettez �a dans votre named.conf pour jouer avec, _PAR PITI�_
   mettez aussi le ``notify no;'' dans les zones des deux land-5.com pour
   �viter les accidents.

5.2 /var/named/root.hints

   Souvenez-vous que le contenu de ce fichier peut changer, et celui
   donn� ici est assez vieux. Vous feriez mieux d'utiliser un fichier
   plus r�cent, produit par le programme dig.
     _________________________________________________________________

; <<>> DiG 8.1 <<>> @A.ROOT-SERVERS.NET.
; (1 server found)
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13
;; QUERY SECTION:
;;      ., type = NS, class = IN

;; ANSWER SECTION:
.                       6D IN NS        G.ROOT-SERVERS.NET.
.                       6D IN NS        J.ROOT-SERVERS.NET.
.                       6D IN NS        K.ROOT-SERVERS.NET.
.                       6D IN NS        L.ROOT-SERVERS.NET.
.                       6D IN NS        M.ROOT-SERVERS.NET.
.                       6D IN NS        A.ROOT-SERVERS.NET.
.                       6D IN NS        H.ROOT-SERVERS.NET.
.                       6D IN NS        B.ROOT-SERVERS.NET.
.                       6D IN NS        C.ROOT-SERVERS.NET.
.                       6D IN NS        D.ROOT-SERVERS.NET.
.                       6D IN NS        E.ROOT-SERVERS.NET.
.                       6D IN NS        I.ROOT-SERVERS.NET.
.                       6D IN NS        F.ROOT-SERVERS.NET.

;; ADDITIONAL SECTION:
G.ROOT-SERVERS.NET.     5w6d16h IN A    192.112.36.4
J.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.10
K.ROOT-SERVERS.NET.     5w6d16h IN A    193.0.14.129
L.ROOT-SERVERS.NET.     5w6d16h IN A    198.32.64.12
M.ROOT-SERVERS.NET.     5w6d16h IN A    202.12.27.33
A.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.4
H.ROOT-SERVERS.NET.     5w6d16h IN A    128.63.2.53
B.ROOT-SERVERS.NET.     5w6d16h IN A    128.9.0.107
C.ROOT-SERVERS.NET.     5w6d16h IN A    192.33.4.12
D.ROOT-SERVERS.NET.     5w6d16h IN A    128.8.10.90
E.ROOT-SERVERS.NET.     5w6d16h IN A    192.203.230.10
I.ROOT-SERVERS.NET.     5w6d16h IN A    192.36.148.17
F.ROOT-SERVERS.NET.     5w6d16h IN A    192.5.5.241

;; Total query time: 215 msec
;; FROM: roke.uio.no to SERVER: A.ROOT-SERVERS.NET.  198.41.0.4
;; WHEN: Sun Feb 15 01:22:51 1998
;; MSG SIZE  sent: 17  rcvd: 436
     _________________________________________________________________

5.3 /var/named/zone/127.0.0

   Nous y avons mis juste l'essentiel, le champ SOA obligatoire, et un
   champ qui �tablit la correspondance entre 127.0.0.1 et localhost. Ils
   sont tous les deux indispensables. Rien d'autre ne doit figurer dans
   ce fichier. Il ne sera probablement jamais n�cessaire de le mettre �
   jour, � moins que l'adresse du serveur de noms ou de hostmaster ne
   change.
     _________________________________________________________________

@               IN      SOA     land-5.com. root.land-5.com. (
                                199609203       ; Serial
                                28800   ; Refresh
                                7200    ; Retry
                                604800  ; Expire
                                86400)  ; Minimum TTL
                        NS      land-5.com.

1                       PTR     localhost.
     _________________________________________________________________

5.4 /var/named/zone/land-5.com

   Nous trouvons ici le classique et obligatoire champ SOA ainsi que les
   champs NS. Nous pouvons voir qu'il y a un serveur de noms secondaire
   ns2.psi.net. C'est comme �a que tout le monde devrait faire :
   _toujours_ avoir un serveur secondaire sur un site distant pour faire
   des sauvegardes. Nous voyons �galement que le serveur primaire est
   land-5, qui assure tous les services, et que l'administrateur a
   utilis� des CNAME pour faire �a (il aurait pu utiliser des champs A).

   Comme vous pouvez voir d'apr�s le champ SOA, le fichier de zone a son
   origine en land-5.com, la personne � contacter est root@land-5.com.
   hostmaster est une autre adresse souvent utilis�e pour la personne �
   contacter. Le num�ro de s�rie est au format obligatoire aaaammjj, avec
   le num�ro de s�rie dans la journ�e ajout� � la fin; il s'agit
   certainement de la sixi�me version du fichier de zone pour la journ�e
   du 20 septembre 1996. N'oubliez-pas que le num�ro de s�rie doit
   _obligatoirement_ augmenter avec le temps, ici il n'y a qu'un chiffre
   pour le num�ro de s�rie dans la journ�e, si bien qu'apr�s 9
   modifications il faudra attendre le lendemain pour modifier le fichier
   � nouveau. On peut aussi utiliser deux chiffres au lieu d'un seul.
     _________________________________________________________________

@       IN      SOA     land-5.com. root.land-5.com. (
                        199609206       ; serial, todays date + todays serial #
                        8H              ; refresh, seconds
                        2H              ; retry, seconds
                        1W              ; expire, seconds
                        1D )            ; minimum, seconds
                NS      land-5.com.
                NS      ns2.psi.net.
                MX      10 land-5.com.  ; Primary Mail Exchanger
                TXT     "LAND-5 Corporation"

localhost       A       127.0.0.1

router          A       206.6.177.1

land-5.com.     A       206.6.177.2
ns              A       206.6.177.3
www             A       207.159.141.192

ftp             CNAME   land-5.com.
mail            CNAME   land-5.com.
news            CNAME   land-5.com.

funn            A       206.6.177.2

;
;       Workstations
;
ws-177200       A       206.6.177.200
                MX      10 land-5.com.   ; Primary Mail Host
ws-177201       A       206.6.177.201
                MX      10 land-5.com.   ; Primary Mail Host
ws-177202       A       206.6.177.202
                MX      10 land-5.com.   ; Primary Mail Host
ws-177203       A       206.6.177.203
                MX      10 land-5.com.   ; Primary Mail Host
ws-177204       A       206.6.177.204
                MX      10 land-5.com.   ; Primary Mail Host
ws-177205       A       206.6.177.205
                MX      10 land-5.com.   ; Primary Mail Host
; {Ici 245 lignes ont �t� effac�es}
ws-177250       A       206.6.177.250
                MX      10 land-5.com.   ; Primary Mail Host
ws-177251       A       206.6.177.251
                MX      10 land-5.com.   ; Primary Mail Host
ws-177252       A       206.6.177.252
                MX      10 land-5.com.   ; Primary Mail Host
ws-177253       A       206.6.177.253
                MX      10 land-5.com.   ; Primary Mail Host
ws-177254       A       206.6.177.254
                MX      10 land-5.com.   ; Primary Mail Host
     _________________________________________________________________

   Si vous examinez le serveur de noms de land-5, vous allez voir que les
   noms sont de la forme ws__nombre_. Depuis les derni�res versions de
   bind 4, named fait plus attention aux caract�res plac�s dans les noms
   de domaines. Cela ne marcherait pas du tout avec bind-8, c'est pour �a
   que j'ai remplac� les ``_'' (soulign�) par des ``-'' (tiret) pour
   l'exemple dans ce HowTo.

   Une autre chose qu'il faut noter est que les stations de travail n'ont
   pas de nom personnel, mais plut�t un pr�fixe suivit des deux derniers
   morceaux de leur adresse IP. Utiliser une telle convention simplifie
   grandement la maintenance, mais c'est un peu impersonnel, et �a peut
   agacer vos clients.

   Nous voyons aussi que funn.land-5.com est un alias pour land-5.com,
   mais en utilisant un enregistrement A, pas un CNAME. C'est une bonne
   chose comme on l'a not� plus haut.

5.5 /var/named/zone/206.6.177

   Les commentaires se trouvent juste apr�s le fichier.
     _________________________________________________________________

@               IN      SOA     land-5.com. root.land-5.com. (
                                199609206       ; Serial
                                28800   ; Refresh
                                7200    ; Retry
                                604800  ; Expire
                                86400)  ; Minimum TTL
                        NS      land-5.com.
                        NS      ns2.psi.net.
;
;       Servers
;
1       PTR     router.land-5.com.
2       PTR     land-5.com.
2       PTR     funn.land-5.com.
;
;       Workstations
;
200     PTR     ws-177200.land-5.com.
201     PTR     ws-177201.land-5.com.
202     PTR     ws-177202.land-5.com.
203     PTR     ws-177203.land-5.com.
204     PTR     ws-177204.land-5.com.
205     PTR     ws-177205.land-5.com.
; {Ici 245 lignes ont �t� effac�es}
250     PTR     ws-177250.land-5.com.
251     PTR     ws-177251.land-5.com.
252     PTR     ws-177252.land-5.com.
253     PTR     ws-177253.land-5.com.
254     PTR     ws-177254.land-5.com.
     _________________________________________________________________

   La zone inverse est la partie de la configuration qui semble poser le
   plus de probl�mes. Elle est utilis�e pour trouver le nom d'h�te d'une
   machine, connaissant son adresse IP. Exemple : vous �tes un serveur
   IRC et vous acceptez des connexions provenant de clients IRC.
   Cependant, comme vous �tes un serveur IRC norv�gien, vous ne voulez
   accepter que les connexions venant de Norv�ge ou des autres pays
   scandinaves. Ainsi, lorsqu'un client se connecte chez vous, la
   biblioth�que C peut vous dire quelle est l'adresse IP du client,
   puisque cette derni�re se trouve dans tous les paquets qui traversent
   le r�seau. Ensuite, vous pouvez appeler une fonction connue sous le
   nom de gethostbyaddr qui va rechercher le nom d'une machine
   connaissant son adresse IP. gethostbyaddr va poser la question � un
   serveur de noms, qui va alors faire une recherche de la machine dans
   le DNS. Supposons que la connexion du client se fasse depuis
   ws_177200.land-5.com. L'adresse IP que la biblioth�que C fournit au
   serveur IRC est 206.6.177.200. Pour retrouver le nom de cette machine,
   il nous faut trouver 200.177.6.206.in-addr.arpa. Le serveur de noms va
   donc d'abord trouver les serveurs arpa., puis les serveurs
   in-addr.arpa., poursuivre la recherche inverse par 206, puis 6 et
   finalement trouver le serveur pour la zone 177.6.206.in-addr.arpa �
   LAND-5. C'est ce dernier qui lui dira que pour
   200.177.6.206.in-addr.arpa nous avons un champ ``PTR
   ws_177200.land-5.com'', ce qui veut dire que le nom qui va avec
   206.6.177.200 est ws_177200.land-5.com. Tout comme l'explication de la
   r�solution de prep.ai.mit.edu, ce sc�nario est un peu id�alis�.

   Revenons � l'exemple du serveur IRC. Le serveur n'accepte que les
   connexions venant des pays scandinaves, c'est-�-dire *.no, *.se, *.dk.
   Le nom ws_177200.land-5.com ne correspond �videmment pas, et le
   serveur va donc refuser la connexion. Si il n'existait _pas_ de
   r�solution inverse de 206.2.177.200 au travers de la zone
   in-addr.arpa, le serveur aurait �t� tout � fait incapable de trouver
   le nom, et aurait d� se contenter de comparer 206.6.177.200 � *.no,
   *.se et *.dk, dont aucun ne correspond.

   Certaines personnes vous diront que la r�solution de noms inverse
   n'est importante que pour les serveurs, ou pas importante du tout. Pas
   tant que �a : beaucoup de serveurs ftp, news, irc ou m�me certains
   http (Web) n'acceptent _pas_ les connexions venant de machines dont
   ils ne peuvent retrouver le nom. C'est pourquoi la r�solution de noms
   inverse pour les machines est _obligatoire_.

6. Maintenance

   _Garder votre DNS en �tat de marche_

   En plus des t�ches normales, il y a une t�che de maintenance sp�ciale
   � effectuer sur les serveurs de nom. Il s'agit de garder le fichier
   root.hints � jour. La fa�on la plus simple de le faire est d'utiliser
   dig. Lancez d'abord dig sans argument, vous obtiendrez le fichier
   root.cache de votre propre serveur. Posez alors la m�me question � un
   des serveurs de cette liste avec la commande dig @rootserver. Vous
   remarquerez que ce que vous obtenez ressemble �norm�ment � un fichier
   root.hints, avec quelques chiffres en plus. Ces chiffres
   suppl�mentaires sont inoffensifs. Sauvez-le dans un fichier (dig .
   @e.root-servers.net >root.hints.new) et remplacez l'ancien fichier
   root.hints avec.

   N'oubliez pas de relancer named apr�s avoir remplac� ce fichier.

   Al Longyear m'a envoy� ce script, qui peut �tre lanc� automatiquement
   pour mettre � jour named.hints. Lancez-le automatiquement � partir de
   la crontab et vous pourrez oublier qu'il existe. Ce script suppose que
   l'alias de mail `hostmaster' existe. Il faudra sans doute modifier ce
   fichier pour qu'il fonctionne chez vous.
     _________________________________________________________________

#!/bin/sh
#
# Met a jours les informations du cache du serveur de noms chaque mois.
# Ce script est lanc� automatiquement par un cron.
#
# Original par Al Longyear
# Mis a jour pour Bind 8 par Nicolai Langfeldt
# Plusieurs erreurs d�couvertes par David A. Ranch
# Test avec un ping sugg�r� par Martin Foster
#
(
 echo "To: hostmaster <hostmaster>"
 echo "From: system <root>"
 echo "Subject: Mise a jour automatique du fichier root.hints"
 echo

 PATH=/sbin:/usr/sbin:/bin:/usr/bin:
 export PATH
 cd /var/named

 # Sommes nous connect�s ? Pingons un serveur de notre FAI
 case `ping -qnc some.machine.net` in
   *'100% packet loss'*)
        echo "PAS de connexion r�seau. root.hints NON mis � jour"
        echo
        exit 0
        ;;
 esac

 dig @rs.internic.net . ns >root.hints.new 2>&1

 case `cat root.hints.new` in
   *NOERROR*)
        # Ca a march�
        :;;
   *)
        echo "La mise a jour de root.hints a ECHOUE."
        echo "Voici la sortie de dig :"
        echo
        cat root.hints.new
        exit 0
        ;;
 esac

 echo "Le fichier root.hints a �t� mis a jour et contient les informations suiv
antes :"
 echo
 cat root.hints.new

 chown root.root root.hints.new
 chmod 444 root.hints.new
 rm -f root.hints.old
 mv root.hints root.hints.old
 mv root.hints.new root.hints
 ndc restart
 echo
 echo "Le serveur de noms a �t� red�marr�, de cette mani�re, la mise a jour est
 compl�te."
 echo "L'ancien root.hints s'appelle maintenant /var/named/root.hints.old."
) 2>&1 | /usr/lib/sendmail -t
exit 0
     _________________________________________________________________

   Certains d'entre vous ont remarqu�s que le fichier root.hints est
   aussi disponible via ftp depuis l'Internic. S'il vous pla�t,
   n'utilisez pas le ftp pour mettre � jour le root.hints, la m�thode ci
   dessus est bien meilleur du point de vue de la nettiquette et de
   l'Internic.

7. Passer de la version 4 � la version 8

   Cette section �tait au d�part sur l'utilisation de bind-8 �crite par
   David E. Smith (dave@bureau42.ml.org). Je l'ai �dit�e pour refl�ter le
   nouveau nom de la section.

   Il n'y a pas grand chose � faire, sinon, utiliser named.conf au lieu
   du named.boot, or bind-8 est distribu� avec un script perl pour
   convertir un named.boot en named.conf. Exemple de named.boot (vieux)
   pour un serveur qui ne sert que de cache :
     _________________________________________________________________

directory /var/named
cache   .                                       root.hints
primary 0.0.127.IN-ADDR.ARPA                    127.0.0.zone
primary localhost                               localhost.zone
     _________________________________________________________________

   Depuis la ligne de commande, et depuis le r�pertoire
   bind8/src/bin/named (au cas o� vous avez r�cup�r� les sources; si vous
   avez eu un paquetage binaire, le script se balade certainement dans le
   coin), tapez :
     _________________________________________________________________

./named-bootconf.pl < named.boot > named.conf
     _________________________________________________________________

   qui cr�e un nouveau named.conf :
     _________________________________________________________________

// generated by named-bootconf.pl

options {
        directory "/var/named";
};

zone "." {
        type hint;
        file "root.hints";
};

zone "0.0.127.IN-ADDR.ARPA" {
        type master;
        file "127.0.0.zone";
};

zone "localhost" {
        type master;
        file "localhost.zone";
};
     _________________________________________________________________

   �a marche pour tout ce qui pouvait aller dans un named.boot, mais, il
   ne met pas toutes les nouveaut�s que bind-8 permet. Voici une version
   plus compl�te d'un named.conf qui fait la m�me chose, mais d'une fa�on
   plus efficace :
     _________________________________________________________________

// Voici le fichier de configuration de named (pour BIND 8.1 et ult�rieur).
// Il devrait normalement �tre install� dans /etc/named.conf.
// Le seul changement fait dans le named.conf d'origine (a part ce commentaire
// :) est que la ligne directory a �t� d�comment�e, car j'ai d�j� les fichiers
// de zone dans /var/named.

options {
        directory "/var/named";
        datasize 20M;
};

zone "localhost" IN {
        type master;
        file "localhost.zone";
};

zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "127.0.0.zone";
};

zone "." IN {
        type hint;
        file "root.hints";
};
     _________________________________________________________________

   Dans le r�pertoire bind8/src/bin/named/test de la distribution de
   bind8, vous trouverez tout �a, ainsi que des fichiers de zone que la
   majorit� peuvent prendre et utiliser instantan�ment.

   Les formats des fichiers de zone et du root.hints sont les m�mes, tout
   comme les commandes qui les mettent � jour.

8. Questions et R�ponses

   Dans cette section, je passe en revue quelques-unes des questions les
   plus fr�quemment pos�es � propos du DNS et de ce HOWTO. Et je donne
   m�me les r�ponses ;-) Merci de bien lire cette section avant de
   m'�crire.

    1. Mon named me r�clame un fichier named.boot
       Vous vous �tes tromp�s de HowTo. allez voir l'ancienne version de
       ce HowTo, celle qui parle de bind 4, � www.math.uio.no/~janl/DNS/
    2. Question : Comment utiliser un DNS si l'on se trouve derri�re un
       firewall ?
       Voici un indice : forward only;. Vous aurez probablement aussi
       besoin de mettre :
         _____________________________________________________________

  query-source port 53;
         _____________________________________________________________

       dans la partie ``options'' de votre named.conf comme l'exemple 3
       le sugg�re serveur qui ne fait que du cache.
    3. Question : Comment dire � un DNS qu'il doit faire une rotation
       entre un certain nombre d'adresses pour un service donn�, par
       exemple si l'on veut obtenir �quilibrer la charge de www.busy.com
       entre plusieurs machines ?
       Cr�ez plusieurs champs _A_ pour www.busy.com et utilisez bind
       4.9.3 ou une version plus r�cente, qui supporte les r�ponses �
       scrutation circulaire. Cela ne marchera _pas_ avec des versions de
       bind ant�rieures.
    4. Je veux mettre en place un serveur DNS sur un Intranet (ferm�).
       Comment faire ?
       Effacez rageusement le fichier root.hints et cr�ez seulement les
       fichiers de zone. Cela veut aussi dire que vous n'aurez pas �
       cr�er des nouveaux fichiers hints tout le temps.
    5. Comment mettre en place un serveur secondaire ?
       Si le serveur primaire a pour adresse 127.0.0.1, mettez une ligne
       comme celle-ci dans le fichier named.conf du serveur secondaire :
         _____________________________________________________________

  zone "linux.bogus" {
        type slave;
        file "sz/linux.bogus";
        masters { 127.0.0.1; };
  };
         _____________________________________________________________

       Vous pouvez mettre plusieurs serveurs ma�tres, ajoutez les sur la
       ligne masters en les s�parant par un ``;'' (point-virgule)
    6. Je veux faire tourner bind lorsque je suis d�connect� du r�seau
       Il y a trois trucs a savoir :
          + J'ai re�u le mail suivant de Ian Clark <ic@deakin.edu.au>, o�
            il explique comment il fait �a :


Ici, je fais tourner named sur la machine qui fait du "Masquerading". J'ai
deux fichiers root.cache, un qui s'appelle root.cache.real et qui contient les
vrais noms des serveurs root, et l'autre qui s'appelle root.cache.fake qui
contient ceci~:

--------------
; root.hints.fake
; Ce fichier ne contient pas d'informations
--------------

Quand je me d�connecte, je copie le fichier root.hints.fake vers root.hints et
je relance named.

Quand je me connecte, je copie root.hints.real et je relance named.

Ces deux manoeuvres sont faites, respectivement, � partir de ip-down et ip-up.

Lorsque je suis d�connect�, named rajoute ceci au fichier messages apr�s la
premi�re requ�te concernant un nom de domaine qu'il ne conna�t pas~:

Jan 28 20:10:11 hazchem named[10147]: No root nameserver for class IN

Ce qui n'est pas tr�s g�nant.

�a marche tr�s bien dans mon cas.  Je peux utiliser le serveur de noms pour
les machines locales lorsque je suis d�connect� du Net en �vitant les d�lais
introduits par les timeout li�s � la recherche des noms de domaine ext�rieurs.
Et lorsque je suis connect� au Net, les requ�tes concernant les noms de
domaines ext�rieurs marchent normalement.

          + J'ai aussi re�u des informations sur la fa�on dont bind
            interagit avec NFS et le portmapper sur une machine qui est
            le plus souvent d�connect�e de la part de Karl-Max Wanger :


J'ai pris l'habitude d'utiliser named sur toutes mes machines qui sont
seulement connect�es � Internet de fa�ons occasionnelles gr�ce � un modem. Le
serveur de noms n'agit qu'en tant que cache, il n'a aucune zone d'autorit� et
demande tout aux serveurs du fichier root.cache.  Comme d'habitude avec une
Slackware, named est d�marr� avant nfsd et mountd.

Avec l'une de mes machines (un portable Libretto 30), j'ai eu le probl�me
suivant~: de temps en temps, je pouvais monter ses disques depuis un autre
syst�me connect� sur mon LAN local, mais la plupart du temps, �a ne marchait
pas. Il se passait la m�me chose que ce soit en utilisant PLIP, une carte
Ethernet PCMCIA ou PPP avec une interface s�rie.

Apr�s quelques temps de r�flexions et d'exp�riences, j'ai d�couvert que named
emp�chait nfsd et mountd de s'enregistrer avec portmapper au d�marrage (Je
d�marre ces d�mons au boot d'habitude).  Le fait de lancer named apr�s nfsd
et mountd �liminait ce probl�me compl�tement

Comme il n'y a pas de d�savantages � modifier ainsi la s�quence de boot de
cette fa�on, j'encourage tout le monde � en faire de m�me pour �viter des
probl�mes potentiels.

          + Enfin, il y a quelques informations sur le sujet chez Ask Mr
            DNS. C'est a propos de bind 4, vous aurez donc � l'adapter
            pour que cela fonctionne avec bind 8.
    7. O� le serveur de noms qui fait que du cache stocke-t-il son
       cache ? Puis-je contr�ler la taille de ce cache ?
       Le cache est enti�rement stock� en m�moire, il n'est _pas_ �crit
       sur le disque. Chaque fois que vous tuez named, le cache est
       perdu. Il n'y a _aucun_ moyen de contr�ler le cache. named g�re le
       cache selon quelques r�gles simples, et c'est tout. Vous ne pouvez
       pas contr�ler le cache ou sa taille en aucune mani�re. Si vous
       voulez vraiment le faire, vous pouvez le faire en bricolant le
       code de named. Mais ce n'est pas recommand�.
    8. Est-ce que named sauvegarde le contenu du cache entre deux
       red�marrage ? Puis-je le forcer � le faire ?
       Non, named ne sauve _pas_ la contenu du cache lorsqu'il meurt.
       Cela signifie que le cache est reconstruit � partir de z�ro chaque
       fois que vous tuez puis relancez named. Il n'y a _aucun_ moyen de
       forcer named � sauvegarder le contenu du cache dans un fichier. Si
       vous voulez vraiment le faire, vous pouvez le faire en bricolant
       le code de named. Mais, encore une fois, ce n'est pas recommand�.
    9. Comment je fais pour obtenir un domaine ? Je veux mettre en place
       mon domaine appel� (par exemple) linux-rulez.net. Comment puis-je
       me faire assigner ce domaine ?
       Contactez votre FAI. Ils seront en mesure de vous aider pour tout
       �a. Notez toutefois que vous aurez certainement � payer quelque
       chose.

9. Comment devenir un administrateur DNS de haut vol

   _Documentation et outils_

   La Vraie Documentation existe. En ligne et imprim�e. Il faut
   absolument la lire si vous voulez devenir un administrateur DNS du
   plus haut niveau. Pour ce qui est de la documentation imprim�e, le
   livre standard est _DNS and BIND_ de C. Liu et P. Albitz chez O'Reilly
   & Associates, Sebastopol, CA, ISBN 0-937175-82-X. Je l'ai lu, c'est
   excellent, la deuxi�me �dition est bas�e sur bind 4, la troisi�me sur
   bind 8. Il y a aussi un chapitre sur le DNS dans _TCP/IP Network
   Administration_, de Craig Hunt chez O'Reilly..., ISBN 0-937175-82-X.
   Un autre passage oblig� pour une Bonne administration de DNS (ou Bonne
   n'importe quoi, d'ailleurs) est _Zen and the Art of Motorcycle
   Maintenance_ by Robert M. Pirsig :-) Disponible sous la r�f�rence ISBN
   0688052304 entre autres.

   En ligne, vous trouverez des trucs sur DNS Resources Directory,
   www.isc.org/bind.html; Une FAQ, un manuel de r�f�rence (BOG; Bind
   Operations Guide) aussi bien que des papiers, des descriptions de
   protocoles et des trucs sur le service DNS (ces documents, ainsi que
   la majorit�, sinon la totalit� des RFC mentionn�es ci-dessous font
   partie de la distribution de bind). Je n'ai pas lu la plupart de ces
   trucs-l�, c'est pourquoi je ne suis pas un Grand Administrateur de
   DNS. Arnt Gulbrandsen, � l'inverse, a lu le BOG et n'en dit que du
   bien :-). Le newsgroup comp.protocols.tcp-ip.domains parle de DNS. En
   compl�ment, il y a un certain nombre de RFC sur le DNS, les plus
   importantes sont certainement celles-ci :

   _RFC 2052_
          A. Gulbrandsen, P. Vixie, _A DNS RR for specifying the location
          of services (DNS SRV)_, October 1996

   _RFC 1918_
          Y. Rekhter, R. Moskowitz, D. Karrenberg, G. de Groot, E. Lear,
          _Address Allocation for Private Internets_, 02/29/1996.

   _RFC 1912_
          D. Barr, _Common DNS Operational and Configuration Errors_,
          02/28/1996.

   _RFC 1912 Errors_
          B. Barr _Errors in RFC 1912_, this is available at
          www.cis.ohio-state.edu/~barr/rfc1912-errors.html

   _RFC 1713_
          A. Romao, _Tools for DNS debugging_, 11/03/1994.

   _RFC 1712_
          C. Farrell, M. Schulze, S. Pleitner, D. Baldoni, _DNS Encoding
          of Geographical Location_, 11/01/1994.

   _RFC 1183_
          R. Ullmann, P. Mockapetris, L. Mamakos, C. Everhart, _New DNS
          RR Definitions_, 10/08/1990.

   _RFC 1035_
          P. Mockapetris, _Domain names - implementation and
          specification_, 11/01/1987.

   _RFC 1034_
          P. Mockapetris, _Domain names - concepts and facilities_,
          11/01/1987.

   _RFC 1033_
          M. Lottor, _Domain administrators operations guide_,
          11/01/1987.

   _RFC 1032_
          M. Stahl, _Domain administrators guide_, 11/01/1987.

   _RFC 974_
          C. Partridge, _Mail routing and the domain system_, 01/01/1986.