  DNS HOWTO
  Nicolai Langfeldt <janl@math.uio.no>
  <arn_mat@club-internet.fr>
  Version 2.2, du 11 fvrier 1999

  Comment devenir un administrateur de DNS  la petite semaine.
  ______________________________________________________________________

  Table des matires


  1. Prambule

     1.1 Aspect juridique
     1.2 Remerciements et appel aux bonnes volonts
     1.3 Ddicace

  2. Introduction.

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

     3.1 Dmarrer named.
     3.2 Le rendre encore meilleur
     3.3 Flicitations !

  4. Un domaine

     4.1 Mais avant tout, un brin de thorie
     4.2 Notre propre domaine
     4.3 La zone inverse
     4.4 Prcautions d'usage
     4.5 Pourquoi est-ce que les lookup inverss ne marchent pas ?
        4.5.1 La zone inverse n'est pas dlgue.
        4.5.2 Vous avez un sous-rseau sans classe

  5. Un exemple tir d'un domaine rel

     5.1 /etc/named.conf (ou /var/named/named.conf)
     5.2 /var/named/root.hints
     5.3 /var/named/zone/127.0.0
     5.4 /var/named/zone/land-5.com
     5.5 /var/named/zone/206.6.177

  6. Maintenance

  7. Passer de la version 4  la version 8

  8. Questions et Rponses

  9. Comment devenir un administrateur DNS de haut vol



  ______________________________________________________________________

  11..  PPrraammbbuullee

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


  Ce document fait partie du _L_i_n_u_x _D_o_c_u_m_e_n_t_a_t_i_o_n _P_r_o_j_e_c_t.




  11..11..  AAssppeecctt jjuurriiddiiqquuee

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


  11..22..  RReemmeerrcciieemmeennttss eett aappppeell aauuxx bboonnnneess vvoolloonntts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 problmes ainsi que de vos succs, cela me
  permettra d'amliorer ce HOWTO. Merci d'envoyer les commentaires et/ou
  les questions et mme l'argent  janl@math.uio.no. Si vous m'envoyez
  un courrier lectronique, merci de _v__r_i_f_i_e_r que votre adresse de
  retour est correcte car je reois _b_e_a_u_c_o_u_p 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 norvgien.


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


  Si vous voulez traduire ce HOWTO, prvenez-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1..33..  DDddiiccaaccee

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


  22..  IInnttrroodduuccttiioonn..

  CCee qquuee ccee ddooccuummeenntt eesstt eett ccee qquu''iill nn''eesstt ppaass


  Le DNS est le _D_o_m_a_i_n _N_a_m_e _S_y_s_t_e_m. C'est l'ensemble des rgles
  utilises 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 dfinir de telles correspondances  l'aide d'un systme 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 prsent ;-) une
  des parties les plus obscures de l'administration de rseau. Le but de
  ce HOWTO est d'essayer d'en claircir quelques aspects. Ce document
  explique comment configurer un DNS _s_i_m_p_l_e. 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 _l_i_r_e 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 rseau par tous les services
  possibles, et en particulier pouvoir faire telnet 127.0.0.1, ce qui
  revient  vous connecter  votre propre machine (vrifiez tout de
  suite que a marche !). Il est aussi ncessaire, pour commencer, que
  les fichiers /etc/nnswitch.conf (ou /etc/host.conf), /etc/resolv.conf
  et /etc/hosts soient correctement configurs car je n'expliquerai pas
  ici  quoi ils servent. Si tout cela n'est pas dj 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 accder au rseau.


  Je supposerai par la suite que vous ne vous trouvez pas derrire un
  firewall qui bloque les requtes de rsolution de nom. Si tel est le
  cas, vous aurez besoin d'une configuration spciale. Reportez-vous
  alors au chapitre ``FAQ''.


  Le service de rsolution de nom sous Unix est assur par un programme
  appel named. Il fait partie du paquetage ``bind'', gr 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 dernire 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 scurit fait partie de vos
  proccupations, vous devriez vraiment passer  bind 8.


  Le service DNS est une base de donnes  l'chelle du rseau tout
  entier. Faites donc trs 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 cohrent et
  vous verrez qu'il vous offrira le meilleur de lui-mme. Apprenez a
  l'utiliser, l'administrer, le dbogger et vous ferez partie de ces
  administrateurs qui empchent que le rseau ne s'croule sous le poids
  des systmes mal grs.


  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 ;-) trs bien si vous croyez ce que je vous dis.


  AAssttuuccee :: S'ils existent dj, faites une copie de sauvegarde de tous
  les fichiers que je vous demande de modifier. Ainsi, si plus rien ne
  marche aprs ce que nous allons faire, vous pourrez toujours revenir
  au bon vieux temps o tout marchait bien.


  33..  UUnn SSeerrvveeuurr ddee NNoommss qquuii nnee sseerrtt qquuee ddee ccaacchhee..

  UUnn pprreemmiieerr aappeerruu ddee llaa ccoonnffiigguurraattiioonn dd''uunn DDNNSS,, ttrrss uuttiillee ppoouurr cceeuuxx
  qquuii uuttiilliisseenntt uunnee ccoonnnneexxiioonn eenn ddiiaalluupp..


  Un serveur de noms qui ne sert que de cache trouve la rponse aux
  requtes de rsolution de nom et se souvient de cette rponse chaque
  fois qu'on lui posera la mme question par la suite. Cela rduira les
  temps de rponse, surtout si vous avez une connexion plutt 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";
  };
  ______________________________________________________________________




  TTRRSS IIMMPPOORRTTAANNTT :: Dans certaines versions de ce document, les fichiers
  lists comme ci-dessus prsentent un certain nombre de caractres
  espace ou tabulation avant le premier caractre non blanc de la ligne.
  Ils ne sont pas supposs faire partie du fichier. EEffffaacceezz ddoonncc ttoouuss
  lleess ccaarraaccttrreess bbllaannccss de dbut 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 rpertoire. Ainsi, pz est un sous-
  rpertoire de /var/named, c'est a dire /var/named/pz. D'aprs le _L_i_n_u_x
  _F_i_l_e_s_y_s_t_e_m _S_t_a_n_d_a_r_d, ce rpertoire 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 dj ce
  ; fichier. de toutes faon, 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
  ______________________________________________________________________




  SSoouuvveenneezz--vvoouuss bbiieenn ddee ccee qquuee jj''aaii ddiitt ppoouurr lleess ccaarraaccttrreess bbllaannccss eenn
  ttttee ddee lliiggnnee !!


  Ce fichier donne une description de tous les serveurs de noms du monde
  qui se trouvent  la racine (au plus haut niveau) de la hirarchie 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 dcrit dans la page de man de named mais
  cette dernire s'adresse plus,  mon humble avis,  ceux qui savent
  dj comment fonctionne ce programme.


  La section suivante de named.conf est la dernire partie. Elle sera
  explique dans un chapitre suivant, pour l'instant, crez un fichier
  appel 127.0.0 dans le sous rpertoire 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.
  ______________________________________________________________________




  Aprs a, vous avez besoin d'un fichier /etc/resolv.conf qui ressemble
   peu prs  a :


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




  La ligne search spcifie 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__s_o_l_v_e_u_r 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 frquemment  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 dj
  nsswitch.conf, c'est celui-l que nous allons modifier, sinon ce sera
  host.conf.


  //eettcc//nnsssswwiittcchh..ccoonnff


  C'est un long fichier qui spcifie o trouver diffrentes sortes de
  types de donnes, dans quel fichier ou quelle base de donnes. Il
  contient gnralement des commentaires prcieux au dbut, que vous
  auriez tout intrt  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.


  //eettcc//hhoosstt..ccoonnff


  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 rsolution de nom de regarder d'abord dans
  /etc/hosts puis de demander au serveur de noms (que vous avez prcis
  dans resolv.conf comme tant 127.0.0.1).


  33..11..  DDmmaarrrreerr nnaammeedd..

  Aprs tout a, il est temps de dmarrer named. Si vous utilisez une
  connexion en dialup, commencez par vous connecter. Tapez ``ndc start''
  et appuyez sur la touche entre, sans donner d'options. Si a ne
  marche pas, essayez plutt ``/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 rpertoire /var/log
  ou dans le fichier syslog) tout en lanant 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'espre :-). Tuez le processus named et re-vrifiez ce
  fichier.


  Il est maintenant temps de vrifier votre configuration. Lancez
  nslookup pour regarder le rsultat 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'esprons tous.
  Si vous obtenez quoi que ce soit d'autre, revenez en arrire et
  vrifiez 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 requte. 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 mentionns dans
  root.cache et a demand le chemin  suivre. Il peut s'couler un
  certain temps avant que vous obteniez le rsultat puisqu'il se peut
  qu'il recherche tous les domaines lists dans /etc/resolv.conf.



  Si vous ressayez, 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 accd au rseau pour
  obtenir la rponse mais a trouv l'information dans son cache.
  Cependant, l'information cache _p_o_u_r_r_a_i_t ne plus tre  jour. C'est
  pourquoi vous tes inform de cette possibilit trs improbable par le
  message ``Non-authoritative answer:'' Quand nslookup rpond ceci la
  seconde fois qu'on lui demande un certain hte, c'est un signe certain
  que named cache bien les informations et que tout marche. Pour sortir
  de nslookup, utilisez la commande ``exit''.


  33..22..  LLee rreennddrree eennccoorree mmeeiilllleeuurr

  Dans les grands rseaux, bien administrs, des universits ou FAI
  (Fournisseur d'Accs a Internet), vous remarquerez peut-tre que les
  administrateurs rseau ont mis en place une hirarchie de serveurs DNS
  ce qui permet de soulager le rseau interne ainsi que le rseau vers
  l'extrieur. Il n'est pas facile de savoir si vous tes dans un rseau
  de ce type. Tout cela n'est pas trs important, mais en utilisant le
  serveur DNS de votre FAI comme ``forwarder'' vous pouvez rendre les
  rponses plus rapides et allger la charge de votre rseau. Avec un
  modem, la diffrence peut tre sensible.  Pour amliorer 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 appele
  ``options'' insrez les lignes :


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




  Redmarrez votre serveur de noms et testez avec nslookup. Cela devrait
  marcher sans problmes.


  33..33..  FFlliicciittaattiioonnss !!

  Maintenant, vous savez comment configurer un named qui sert de cache.
  Servez-vous une bire, un verre de lait ou tout ce que vous voudrez
  pour fter l'vnement.


  44..  UUnn ddoommaaiinnee ssiimmppllee

  CCoommmmeenntt mmeettttrree eenn ppllaaccee vvoottrree pprroopprree ddoommaaiinnee


  44..11..  MMaaiiss aavvaanntt ttoouutt,, uunn bbrriinn ddee tthhoorriiee

  Avant d'entrer _v_r_a_i_m_e_n_t dans le vif du sujet, il va falloir que je
  fasse un brin de thorie avec quand mme 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. Arrtez
  le survol quand vous arrivez  l'endroit o j'explique le contenu du
  fichier named.conf.


  Le service DNS est un systme organis de manire hirarchique, sous
  forme d'arbre. La racine est dsigne par ``.'' et s'appelle ``la
  racine''. En dessous de . se trouvent un certain nombre de TLD (_T_o_p
  _L_e_v_e_l _D_o_m_a_i_n_s); 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 reconnatrez dans le DNS un arbre de
  recherche, avec des noeuds, des arrtes et des feuilles.


  Lorsque vous recherchez une machine, la question est pose
  rcursivement dans toute la hirarchie 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 possde dj 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 requte (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 acclre 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
  prcis : 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 requte. Nous avons russi  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 commenant  partir de ., nous avons successivement trouv les
  serveurs de noms des diffrents niveaux du nom de domaine. Si vous
  aviez utilis votre propre serveur DNS  la place de tous ces autres
  serveurs, votre named aurait, bien sr, 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. Ds qu'on l'a trouve, on
  y grimpe en passant par le serveur qui connat 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 dernire partie est de
  trouver prep.ai.mit.edu, ce qui est trs simple. En informatique
  fondamentale, on appelle prep une _f_e_u_i_l_l_e 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
  hirarchie des noms de domaine comme un domaine ``normal''.  in-
  addr.arpa nous sert  obtenir le nom d'hte connaissant l'adresse IP
  d'une machine. Une chose trs importante ici est de bien remarquer que
  les adresses IP sont notes en sens inverse  l'intrieur du domaine
  in-addr.arpa. Si vous avez l'adresse d'une machine : 192.128.52.43,
  named procde 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 lie  43.52.128.192.in-addr.arpa.
  Malin, n'est ce pas ?  (dites oui). En fait, la rsolution de noms
  inverse est assez difficile  admettre les premires annes.


   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
  ralit.


  44..22..  NNoottrree pprroopprree ddoommaaiinnee

  Maintenant, nous en sommes  dfinir notre propre domaine bien  nous.
  Nous allons crer le domaine linux.bogus et y dclarer quelques
  machines. C'est un nom de domaine totalement factice, afin d'tre sr
  de ne dranger personne dans le Vaste Monde.


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


  En fait, nous avons dj commenc  crer 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 dfinir 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 dj vu ce fichier, il
  se prsente 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 dfinissant une zone par une directive
  $ORIGIN, mais en fait c'est superflu. L'origine (l'emplacement dans la
  hirarchie du service DNS) d'un fichier de zone est indique 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'abrviation de ``Start Of Authority'' (Origine de l'Autorit). Le
  ``@'' est une notation spciale qui dsigne l'origine. Et comme la
  colonne ``domain'' de ce fichier donne 0.0.127.in-addr.arpa, la
  premire 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 dbut de la ligne, il est implicite,
  puisque la ligne d'avant commence avec un ``@''. Alors, faites-vous
  une fleur en omettant ce caractre. 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 rseau
  0.0.127.in-addr.arpa, donc 127.0.0.1 est appel localhost.


  Le champ SOA est le prambule de _t_o_u_s les fichiers de zone, et il doit
  y en avoir exactement un dans chaque fichier de zone. Ce champ SOA
  dcrit la zone, son origine (une machine appele 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 paramtres
  pour le cache et les serveurs DNS secondaires. Quant aux champs
  restants (_r_e_f_r_e_s_h, _r_e_t_r_y, _e_x_p_i_r_e et _m_i_n_i_m_u_m) utilisez les valeurs
  donnes dans ce HOWTO et tout se passera certainement trs bien.


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




  $ 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 proccupe, le domaine linux.bogus,
  insrez 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
  donnes 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 _d_o_i_t
  _a_b_s_o_l_u_m_e_n_t tre une vraie machine possdant un champ A. Il n'est pas
  lgal d'avoir un champ CNAME pour la machine mentionne dans le champ
  SOA. Il n'est pas ncessaire que son nom soit ``ns'', ce peut tre
  tout autre nom valide. La deuxime chose  noter c'est que
  hostmaster.linux.bogus doit se lire comme hostmaster@linux.bogus. Ce
  doit tre un alias de mail, ou une vritable bote aux lettres
  lectronique, et la personne qui maintient le DNS doit la lire
  rgulirement. Tous les mails concernant l'administration du domaine
  seront envoys  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 systmes 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 numro 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
  numro de priorit immdiatement suprieur, c'est--dire
  mail.friend.bogus qui a une priorit de 20 dans notre cas.


  Relancez named en tapant ndc restart. Examinons le rsultat 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 entirement fausse. Il devrait y avoir



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





  J'ai fait cette erreur dlibrment, 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 ajoute 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 prfre la deuxime forme parce qu'il y a moins de
  caractres  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 dfaut est l'origine.


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


  Cela tant dit, voici le nouveau fichier de zone, avec quelques
  informations supplmentaires :









  ______________________________________________________________________
  ;
  ; 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
  premire partie est la description matrielle ou le type de processeur
  de la machine tandis que la deuxime partie dcrit le logiciel utilis
  ou le systme 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 mme machine. Par consquent, www est un
  alias de ns.


  L'utilisation des champs CNAME est assez controverse. Mais il est
  sage de suivre la rgle selon laquelle un champ MX, CNAME ou SOA ne
  doit _j_a_m_a_i_s se rfrer  un champ CNAME, toujours se rfrer  un
  champ A, il est donc prfrable 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'hte
  lgal pour une adresse de courrier lectronique.
  webmaster@www.linux.bogus est une adresse de mail illgale avec la
  configuration ci-dessus. Vous pouvez tre srs qu'il y a un certain
  nombre d'administrateurs systme dans le Vaste Monde qui sont trs 
  cheval sur cette rgle, mme si avec un CNAME a marche pour vous. Une
  faon de contourner le problme 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 _p_a_s 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 rgle.


  Chargez la nouvelle base de donnes en lanant 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 affichs.








  [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4..33..  LLaa zzoonnee iinnvveerrsse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 inverse pour que l'on puisse retrouver le DNS  partir de
  l'adresse. Ce nom est utilis par diffrents types de serveurs (FTP,
  IRC, WWW et autres) pour dcider s'ils vont discuter avec vous ou non,
  et s'ils le font, quelle priorit ils vont vous donner. Pour un accs
  complet aux services sur Internet, la zone inverse 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.
  ______________________________________________________________________




  Redmarrez 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 dtails 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 pche aux messages d'erreur dans votre syslog. J'ai expliqu
  comment faire au tout dbut du chapitre.


  44..44..  PPrrccaauuttiioonnss dd''uussaaggee

  Je devrais maintenant faire quelques remarques. Les adresses IP
  utilises dans les exemples prcdents sont prises dans le bloc des
  ``rseaux privs'', c'est  dire des adresses qui ne doivent pas tre
  utilises publiquement sur Internet. Donc, il est sage de les avoir
  utilises dans un exemple d'un HowTo. La deuxime 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
  lists 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 expriences prives cette fonctionnalit doit tre mise hors
  service, on ne va quand mme pas polluer Internet avec nos
  expriences, non ?


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


  44..55..  PPoouurrqquuooii eesstt--ccee qquuee lleess llooookkuupp iinnvveerrssss nnee mmaarrcchheenntt ppaass ??

  Il y a quelques trucs qui sont normalement vits avec les lookups qui
  arrivent souvent quand on met en place des zones inverss. 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 arrire
  et rparez-le avant de continuer.


  Je parlerais des deux problmes de lookups inverss qui sont vu de
  l'extrieur de votre rseau :
  44..55..11..  LLaa zzoonnee iinnvveerrssee nn''eesstt ppaass ddllgguuee..

  Quand vous demandez  un fournisseur d'accs quelques adresses IP
  ainsi qu'un nom de domaine, le nom de domaine vous est normalement
  dlgu. La dlgation consiste en un champ NS qui vous aide a passer
  d'un serveur  l'autre comme je l'ai expliqu dans le brin de thorie
  qui prcde. Vous l'avez lu, n'est-ce pas ? Si votre zone inverse ne
  marche pas, retournez y et lisez-le. Maintenant.


  La zone inverse a elle aussi besoin d'tre dlgue. Si vous avez le
  rseau 192.168.196 avec le domaine linux.bogus de votre fournisseur,
  il devra mettre des champs NS pour votre zone inverse aussi bien que
  pour votre zone directe. Si vous remontez la chane  partir de in-
  addr.arpa vous trouverez un trou quelque part. Trs certainement au
  niveau de votre fournisseur. Aprs avoir trouv le trou dans la
  chane, contactez votre fournisseur et demandez-lui de corriger
  l'erreur.


  44..55..22..  VVoouuss aavveezz uunn ssoouuss--rrsseeaauu ssaannss ccllaassssee

  C'est un sujet plutt pointu, mais les sous rseaux sans classe sont
  trs rpandus de nos jours et vous en aurez trs certainement un si
  vous n'tes pas une entreprise assez grande.


  Un sous-rseau sans classe est ce qui sauve Internet de nos jours. Il
  y a quelques annes, il y avait vraiment beaucoup de discussions sur
  la rarfaction des adresses IP. Les personnes intelligentes de l'IETF
  (Internet Engineering Task Force, ceux qui maintiennent Internet en
  tat de marche) se sont penches sur cet pineux problme et ont
  trouv une solution. A un certain prix. Le prix est que vous aurez
  moins qu'un sous rseau 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 plat,
  allez le lire.


  La premire partie du problme est que votre FAI doit comprendre la
  technique dcrite par _M_r _D_N_S. 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-mme en premier
  lieu ;-). Ils mettrons ensuite une jolie zone inverse sur leurs
  serveurs que vous pourrez examiner pour savoir si elle est correcte
  avec nslookup.


  La deuxime et dernire partie du problme est que vous devez en
  comprendre la technique. Si vous n'tes pas certain, revenez en
  arrire et relisez ce document.  Ensuite, vous pourrez mettre en place
  une zone inverse sans classe comme le dcrit _M_r _D_N_S.


  Il y a une autre difficult qui pointe son nez ici. Les vieux
  rsolveurs _n_e _s_e_r_o_n_t _p_a_s capable de suivre les champs CNAME dans la
  chane de rsolution et n'arriveront pas a rsoudre l'IP de votre
  machine. Cela peut entraner l'assignation d'une mauvaise classe, la
  non-rsolution ou quelque chose dans ce got-l. Si vous butez sur ce
  genre de problme, la seule solution (que je connaisse) est de
  demander  votre FAI d'insrer vos champs PTR dans ses fichiers de
  zone sans classe plutt que des champs CNAME.

  Certains FAI vous proposeront d'autre mthodes pour grer cela, comme
  des formulaires web o vous pourrez entrer vos zones inverses, ou
  d'autre systmes automatiss.


  55..  UUnn eexxeemmppllee ttiirr dd''uunn ddoommaaiinnee rreell

  OO nnoouuss aalllloonnss eennffiinn vvooiirr ddee _v_r_a_i_s ffiicchhiieerrss ddee zzoonnee


  Certains utilisateurs ont suggr que je mette un vrai exemple d'un
  domaine qui marche dans la ralit car mon explication sur la
  diffrence entre un vrai domaine et l'exemple bidon ci-dessus n'tait
  pas trs 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 modifie
  pour tre utiliss avec les restrictions de bind 8 et quelques
  extensions de mon cru. Par consquent, ils peuvent donc diffrer de ce
  que vous pouvez trouver en questionnant les serveurs de nom de LAND-5
  aujourd'hui.


  Voici les sections pour les deux zones inverses ncessaires : le
  rseau 127.0.0, ainsi que le sous-rseau 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 rpertoire pz comme dans ce HowTo, il
  les met dans le rpertoire zone.


  55..11..  //eettcc//nnaammeedd..ccoonnff ((oouu //vvaarr//nnaammeedd//nnaammeedd..ccoonnff))



  ______________________________________________________________________
  // 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, PPAARR PPIITTII
  mettez aussi le ``notify no;'' dans les zones des deux land-5.com pour
  viter les accidents.


  55..22..  //vvaarr//nnaammeedd//rroooott..hhiinnttss

  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 rcent, 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5..33..  //vvaarr//nnaammeedd//zzoonnee//112277..00..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 ncessaire 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5..44..  //vvaarr//nnaammeedd//zzoonnee//llaanndd--55..ccoomm

  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 : _t_o_u_j_o_u_r_s
  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'aprs 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 utilise pour la personne 
  contacter. Le numro de srie est au format obligatoire aaaammjj, avec
  le numro de srie dans la journe ajout  la fin; il s'agit
  certainement de la sixime version du fichier de zone pour la journe
  du 20 septembre 1996. N'oubliez-pas que le numro de srie doit
  _o_b_l_i_g_a_t_o_i_r_e_m_e_n_t augmenter avec le temps, ici il n'y a qu'un chiffre
  pour le numro de srie dans la journe, si bien qu'aprs 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 effaces}
  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__n_o_m_b_r_e. Depuis les dernires versions de bind
  4, named fait plus attention aux caractres placs 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 plutt un prfixe 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..55..  //vvaarr//nnaammeedd//zzoonnee//220066..66..117777

  Les commentaires se trouvent juste aprs 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 effaces}
  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 problmes. Elle est utilise pour trouver le nom d'hte 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 norvgien, vous ne voulez
  accepter que les connexions venant de Norvge ou des autres pays
  scandinaves. Ainsi, lorsqu'un client se connecte chez vous, la
  bibliothque C peut vous dire quelle est l'adresse IP du client,
  puisque cette dernire se trouve dans tous les paquets qui traversent
  le rseau. 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 bibliothque 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 rsolution de
  prep.ai.mit.edu, ce scnario est un peu idalis.


  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 _p_a_s de
  rsolution 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 rsolution 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 mme certains
  http (Web) n'acceptent _p_a_s les connexions venant de machines dont ils
  ne peuvent retrouver le nom. C'est pourquoi la rsolution de noms
  inverse pour les machines est _o_b_l_i_g_a_t_o_i_r_e.



  66..  MMaaiinntteennaannccee

  GGaarrddeerr vvoottrree DDNNSS eenn ttaatt ddee mmaarrcchhee


  En plus des tches normales, il y a une tche de maintenance spciale
   effectuer sur les serveurs de nom. Il s'agit de garder le fichier
  root.hints  jour. La faon 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 mme question  un
  des serveurs de cette liste avec la commande dig @rootserver. Vous
  remarquerez que ce que vous obtenez ressemble normment  un fichier
  root.hints, avec quelques chiffres en plus. Ces chiffres
  supplmentaires 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 aprs 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 dcouvertes par David A. Ranch
  # Test avec un ping suggr 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 connects ? Pingons un serveur de notre FAI
   case `ping -qnc some.machine.net` in
     *'100% packet loss'*)
          echo "PAS de connexion rseau. 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 suivantes :"
   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 redmarr, de cette manire, la mise a jour est complte."
   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 remarqus que le fichier root.hints est
  aussi disponible via ftp depuis l'Internic. S'il vous plat,
  n'utilisez pas le ftp pour mettre  jour le root.hints, la mthode ci
  dessus est bien meilleur du point de vue de la nettiquette et de
  l'Internic.


  77..  PPaasssseerr ddee llaa vveerrssiioonn 44  llaa vveerrssiioonn 88

  Cette section tait au dpart sur l'utilisation de bind-8 crite par
  David E. Smith (dave@bureau42.ml.org). Je l'ai dite pour reflter 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 rpertoire
  bind8/src/bin/named (au cas o vous avez rcupr 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 cre 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 nouveauts que bind-8 permet. Voici une version
  plus complte d'un named.conf qui fait la mme chose, mais d'une faon
  plus efficace :


  ______________________________________________________________________
  // Voici le fichier de configuration de named (pour BIND 8.1 et ultrieur).
  // 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 dcommente, car j'ai dj 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 rpertoire 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 instantanment.
  Les formats des fichiers de zone et du root.hints sont les mmes, tout
  comme les commandes qui les mettent  jour.


  88..  QQuueessttiioonnss eett RRppoonnsseess

  Dans cette section, je passe en revue quelques-unes des questions les
  plus frquemment poses  propos du DNS et de ce HOWTO. Et je donne
  mme les rponses ;-) Merci de bien lire cette section avant de
  m'crire.


  1. Mon named me rclame un fichier named.boot


     Vous vous tes tromps 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 derrire 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
  suggre ``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 ?


     Crez plusieurs champs AA pour www.busy.com et utilisez bind 4.9.3
     ou une version plus rcente, qui supporte les rponses  scrutation
     circulaire. Cela ne marchera _p_a_s avec des versions de bind
     antrieures.


  4. Je veux mettre en place un serveur DNS sur un Intranet (ferm).
     Comment faire ?


     Effacez rageusement le fichier root.hints et crez seulement les
     fichiers de zone. Cela veut aussi dire que vous n'aurez pas  crer
     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 matres, ajoutez les sur la
  ligne masters en les sparant par un ``;'' (point-virgule)


  6. Je veux faire tourner bind lorsque je suis dconnect du rseau


     Il y a trois trucs a savoir :


    J'ai reu 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 dconnecte, 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 dconnect, named rajoute ceci au fichier messages aprs la
       premire requte concernant un nom de domaine qu'il ne connat pas~:

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

       Ce qui n'est pas trs gnant.

       a marche trs bien dans mon cas.  Je peux utiliser le serveur de noms pour
       les machines locales lorsque je suis dconnect du Net en vitant les dlais
       introduits par les timeout lis  la recherche des noms de domaine extrieurs.
       Et lorsque je suis connect au Net, les requtes concernant les noms de
       domaines extrieurs marchent normalement.





    J'ai aussi reu des informations sur la faon dont bind interagit
     avec NFS et le portmapper sur une machine qui est le plus souvent
     dconnecte de la part de Karl-Max Wanger :

       J'ai pris l'habitude d'utiliser named sur toutes mes machines qui sont
       seulement connectes  Internet de faons occasionnelles grce  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 dmarr avant nfsd et mountd.

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

       Aprs quelques temps de rflexions et d'expriences, j'ai dcouvert que named
       empchait nfsd et mountd de s'enregistrer avec portmapper au dmarrage (Je
       dmarre ces dmons au boot d'habitude).  Le fait de lancer named aprs nfsd
       et mountd liminait ce problme compltement

       Comme il n'y a pas de dsavantages  modifier ainsi la squence de boot de
       cette faon, j'encourage tout le monde  en faire de mme pour viter des
       problmes 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 contrler la taille de ce cache ?


     Le cache est entirement stock en mmoire, il n'est _p_a_s crit sur
     le disque. Chaque fois que vous tuez named, le cache est perdu. Il
     n'y a _a_u_c_u_n moyen de contrler le cache. named gre le cache selon
     quelques rgles simples, et c'est tout. Vous ne pouvez pas
     contrler le cache ou sa taille en aucune manire. 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
     redmarrage ?  Puis-je le forcer  le faire ?


     Non, named ne sauve _p_a_s la contenu du cache lorsqu'il meurt. Cela
     signifie que le cache est reconstruit  partir de zro chaque fois
     que vous tuez puis relancez named. Il n'y a _a_u_c_u_n 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9..  CCoommmmeenntt ddeevveenniirr uunn aaddmmiinniissttrraatteeuurr DDNNSS ddee hhaauutt vvooll

  DDooccuummeennttaattiioonn eett oouuttiillss


  La Vraie Documentation existe. En ligne et imprime. Il faut
  absolument la lire si vous voulez devenir un administrateur DNS du
  plus haut niveau.  Pour ce qui est de la documentation imprime, le
  livre standard est _D_N_S _a_n_d _B_I_N_D 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 deuxime dition est base sur bind 4, la troisime sur
  bind 8. Il y a aussi un chapitre sur le DNS dans _T_C_P_/_I_P _N_e_t_w_o_r_k
  _A_d_m_i_n_i_s_t_r_a_t_i_o_n, 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 _Z_e_n _a_n_d _t_h_e _A_r_t _o_f _M_o_t_o_r_c_y_c_l_e
  _M_a_i_n_t_e_n_a_n_c_e by Robert M. Pirsig :-) Disponible sous la rfrence ISBN
  0688052304 entre autres.


  En ligne, vous trouverez des trucs sur DNS Resources Directory,
  www.isc.org/bind.html; Une FAQ, un manuel de rfrence (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 mentionnes 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
  complment, il y a un certain nombre de RFC sur le DNS, les plus
  importantes sont certainement celles-ci :



     RRFFCC 22005522
        A. Gulbrandsen, P. Vixie, _A _D_N_S _R_R _f_o_r _s_p_e_c_i_f_y_i_n_g _t_h_e _l_o_c_a_t_i_o_n
        _o_f _s_e_r_v_i_c_e_s _(_D_N_S _S_R_V_), October 1996


     RRFFCC 11991188
        Y. Rekhter, R. Moskowitz, D. Karrenberg, G. de Groot, E. Lear,
        _A_d_d_r_e_s_s _A_l_l_o_c_a_t_i_o_n _f_o_r _P_r_i_v_a_t_e _I_n_t_e_r_n_e_t_s, 02/29/1996.


     RRFFCC 11991122
        D. Barr, _C_o_m_m_o_n _D_N_S _O_p_e_r_a_t_i_o_n_a_l _a_n_d _C_o_n_f_i_g_u_r_a_t_i_o_n _E_r_r_o_r_s,
        02/28/1996.


     RRFFCC 11991122 EErrrroorrss
        B. Barr _E_r_r_o_r_s _i_n _R_F_C _1_9_1_2, this is available at www.cis.ohio-
        state.edu/~barr/rfc1912-errors.html


     RRFFCC 11771133
        A. Romao, _T_o_o_l_s _f_o_r _D_N_S _d_e_b_u_g_g_i_n_g, 11/03/1994.


     RRFFCC 11771122
        C. Farrell, M. Schulze, S. Pleitner, D. Baldoni, _D_N_S _E_n_c_o_d_i_n_g _o_f
        _G_e_o_g_r_a_p_h_i_c_a_l _L_o_c_a_t_i_o_n, 11/01/1994.


     RRFFCC 11118833
        R. Ullmann, P. Mockapetris, L. Mamakos, C. Everhart, _N_e_w _D_N_S _R_R
        _D_e_f_i_n_i_t_i_o_n_s, 10/08/1990.

     RRFFCC 11003355
        P. Mockapetris, _D_o_m_a_i_n _n_a_m_e_s _- _i_m_p_l_e_m_e_n_t_a_t_i_o_n _a_n_d _s_p_e_c_i_f_i_c_a_t_i_o_n,
        11/01/1987.


     RRFFCC 11003344
        P. Mockapetris, _D_o_m_a_i_n _n_a_m_e_s _- _c_o_n_c_e_p_t_s _a_n_d _f_a_c_i_l_i_t_i_e_s,
        11/01/1987.


     RRFFCC 11003333
        M. Lottor, _D_o_m_a_i_n _a_d_m_i_n_i_s_t_r_a_t_o_r_s _o_p_e_r_a_t_i_o_n_s _g_u_i_d_e, 11/01/1987.


     RRFFCC 11003322
        M. Stahl, _D_o_m_a_i_n _a_d_m_i_n_i_s_t_r_a_t_o_r_s _g_u_i_d_e, 11/01/1987.


     RRFFCC 997744
        C. Partridge, _M_a_i_l _r_o_u_t_i_n_g _a_n_d _t_h_e _d_o_m_a_i_n _s_y_s_t_e_m, 01/01/1986.














































