  DNS HOWTO
  Nicolai Langfeldt janl@math.uio.no
  Version 1.3.2 du 3 Juin 1997

  Comment  devenir un administrateur de DNS a la petite semaine. Traduc-
  tion francaise par Julien Vayssiere (jul@mygale.org)

  11..  PPrreeaammbbuullee

  Mots-cles : DNS, bind, named, dialup,  ppp,  slip,  Internet,  domain,
  name, hosts, resolving

  11..11..  AAssppeecctt jjuurriiddiiqquuee

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

  11..22..  RReemmeerrcciieemmeennttss eett aappppeell aauuxx bboonnnneess vvoolloonntteess

  J'aimerais remercier Arnt Gulbrandsen qui a relu le  brouillon  de  ce
  document  un  nombre  incalculable  de  fois  et  a  apporte nombre de
  suggestions pertinentes. Merci egalement a tous ceux qui m'ont  envoye
  leurs suggestions par courrier electronique, merci aussi pour tous les
  billets de banque  que  je  recois.  Merci  beaucoup  !  Vous  m'aidez
  vraiment dans ce travail.

  Ce document n'est pas destine a atteindre un jour un etat final, alors
  mailez-moi vos problemes ainsi que le recit de vos reussites, cela  me
  permettra   d'ameliorer   ce  HOWTO.  Merci  d'envoyer  l'argent,  les
  commentaires et/ou les questions a janl@math.uio.no. Si vous m'envoyez
  un  courrier  electronique,  merci  de  _v_e_r_i_f_i_e_r  que votre adresse de
  retour est correcte car je recois _b_e_a_u_c_o_u_p de  courrier  electronique.
  Essayez  aussi de lire le chapitre ``FAQ'' avant de m'envoyer un mail.

  Si vous voulez traduire ce HOWTO,  prevenez-moi  pour  que  je  puisse
  garder  le  compte  de  toutes  les  langues  dans lesquelles j'ai ete
  traduit :-).

  11..33..  DDeeddiiccaaccee

  Ce HOWTO est dedie a Anne Line Norheim, bien qu'elle ne le  lise  sans
  doute  jamais.  Il ne s'agit pas du tout du genre de fille auquel vous
  pensez.

  22..  IInnttrroodduuccttiioonn..

  CCee qquuee ccee ddooccuummeenntt eesstt eett ccee qquu''iill nn''eesstt ppaass

  Pour ceux qui sont entierement nouveaux dans ce domaine, le DNS est le
  Domain  Name  System.  C'est  l'ensemble  des regles utilisees par les
  machines et les logiciels pour etablir  la  correspondance  entre  les
  noms  de  machines  et  les  adresses IP. Ce document explique comment
  definir de telles correspondances a l'aide  d'un  systeme  Linux.  Une
  correspondance  est tout simplement une association entre deux choses,
  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-initie (vous dans le cas present ;-) une
  des parties les plus obscures de l'administration de reseau. Le but de
  ce  HOWTO  est  d'essayer d'en eclaircir 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'a faire cache puis nous continuerons
  en configurant un serveur DNS  primaire  pour  un  domaine.  Pour  des
  configurations  plus  complexes,  jetez  un  coup  d'oeil a 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 etre
  capable de vous connecter par telnet sur d'autres machines mais  aussi
  pouvoir  recevoir  des  connexions sur votre machine. Vous devez aussi
  etre en mesure de vous connecter  au  reseau  par  tous  les  services
  possibles,  et  en  particulier pouvoir faire telnet 127.0.0.1, ce qui
  revient a vous connecter a votre  propre  machine  (verifiez  tout  de
  suite  que  ca marche !). Il est aussi necessaire, pour commencer, que
  les fichiers /etc/host.conf (ou /etc/nnswitch.conf),  /etc/resolv.conf
  et  /etc/hosts soient correctement configures car je n'expliquerai pas
  ici a quoi ils servent. Si tout cela n'est pas deja  configure  et  en
  etat  de  marche,  lisez le networking/NET-2 HOWTO pour savoir comment
  faire.

  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 acceder au reseau.

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

  Le service de resolution de nom sous Unix est assure par un  programme
  appele  named.  Il  fait partie du paquetage bind, gere par Paul Vixie
  pour l'Internet Software Consortium. Named est inclus dans la  plupart
  des  distributions de Linux et se trouve le plus souvent installe dans
  /usr/sbin/named.  Si   vous   disposez   d'un   named,   vous   pouvez
  vraisemblablement  l'utiliser.  Si vous n'en avez pas, chargez-en un a
  partir d'un site FTP Linux ou allez chercher la derniere et  meilleure
  version  des  sources  du programme depuis ftp.vix.com:/pub/bind, soit
  dans  le  repertoire  release  soit  dans  testing,  suivant  ce   qui
  correspond le mieux a votre maniere de vivre.

  Le  service  DNS  est  une  base de donnees a l'echelle du reseau tout
  entier.  Faites donc tres attention a ce que vous  y  introduisez.  Si
  vous  y  mettez n'importe quoi, vous, et les autres avec, en retirerez
  n'importe quoi.  Conservez votre DNS bien propre, a jour  et  coherent
  et  vous verrez qu'il vous offrira le meilleur de lui-meme. Apprenez a
  l'utiliser, l'administrer, le debugger et vous  ferez  partie  de  ces
  administrateurs qui empechent que le reseau ne s'ecroule sous le poids
  des systemes mal geres.

  Dans ce document, j'enonce deux ou trois choses qui ne sont pas tout a
  fait  vraies  (mais  qui le sont toujours au moins a moitie). Si je le
  fais, c'est toujours dans le but de rendre les  choses  plus  simples.
  Tout  marchera  (probablement  ;-)  tres bien si vous croyez ce que je
  vous dis.

  AAssttuuccee :: Si ils existent deja, faites une copie de sauvegarde de  tous
  les  fichiers  que je vous demande de modifier. Ainsi, si plus rien ne
  marche apres ce que nous allons faire, vous pourrez  toujours  revenir
  au bon vieux temps ou tout marchait bien.

  33..  UUnn SSeerrvveeuurr ddee NNoomm qquuii nnee ffaaiitt qquuee ccaacchhee..

  UUnn  pprreemmiieerr  aappeerrccuu ddee llaa ccoonnffiigguurraattiioonn dd''uunn DDNNSS,, ttrreess uuttiillee ppoouurr cceeuuxx
  qquuii uuttiilliisseenntt uunnee ccoonnnneexxiioonn eenn ddiiaalluupp..

  Un serveur de nom qui ne fait que cache sert a trouver la reponse  aux
  requetes  de  resolution de nom et se souvient de cette reponse chaque
  fois qu'on lui posera la meme question par la suite.

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

  ______________________________________________________________________
  ;  Boot file for caching name server
  ;
  directory /var/named
  ;
  ; type          domain                          source file or host
  cache           .                               root.cache
  primary         0.0.127.in-addr.arpa            pz/127.0.0
  ______________________________________________________________________

  TTRREESS IIMMPPOORRTTAANNTT :: Dans certaines versions de ce document, les  fichiers
  listes  comme  ci-dessus  presentent  un  certain nombre de caracteres
  espace ou tabulation avant le premier caractere non blanc de la ligne.
  Ils  ne  sont  pas supposes faire partie du fichier. EEffffaacceezz ddoonncc ttoouuss
  lleess ccaarraacctteerreess bbllaannccss de debut de ligne des fichiers que vous  copiez-
  collez a partir de ce HOWTO.

  La  ligne  "directory" indique a named l'endroit ou il doit rechercher
  ses fichiers. Tous les fichiers dont nous parlerons maintenant  seront
  relatifs  a  cet  endroit.  D'apres  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
  repertoire doit etre /var/named. Ainsi, pz est un  sous-repertoire  de
  /var/named, i-e /var/named/pz.

  On  trouve  a  cet  endroit le fichier /var/named/root.cache, qui doit
  ressembler a ceci :

  ______________________________________________________________________
   .       518400  NS      D.ROOT-SERVERS.NET.
   .       518400  NS      E.ROOT-SERVERS.NET.
   .       518400  NS      I.ROOT-SERVERS.NET.
   .       518400  NS      F.ROOT-SERVERS.NET.
   .       518400  NS      G.ROOT-SERVERS.NET.
   .       518400  NS      A.ROOT-SERVERS.NET.
   .       518400  NS      H.ROOT-SERVERS.NET.
   .       518400  NS      B.ROOT-SERVERS.NET.
   .       518400  NS      C.ROOT-SERVERS.NET.
  ;
  D.ROOT-SERVERS.NET.     3600000 A       128.8.10.90
  E.ROOT-SERVERS.NET.     3600000 A       192.203.230.10
  I.ROOT-SERVERS.NET.     3600000 A       192.36.148.17
  F.ROOT-SERVERS.NET.     3600000 A       192.5.5.241
  G.ROOT-SERVERS.NET.     3600000 A       192.112.36.4
  A.ROOT-SERVERS.NET.     3600000 A       198.41.0.4
  H.ROOT-SERVERS.NET.     3600000 A       128.63.2.53
  B.ROOT-SERVERS.NET.     3600000 A       128.9.0.107
  C.ROOT-SERVERS.NET.     3600000 A       192.33.4.12
  ______________________________________________________________________

  SSoouuvveenneezz--vvoouuss bbiieenn ddee ccee qquuee jj''aaii ddiitt ppoouurr lleess  ccaarraacctteerreess  bbllaannccss  eenn
  tteettee ddee lliiggnnee !!

  Ce fichier donne une description de tous les serveurs de noms du monde
  qui se trouvent a la racine (au plus haut niveau) de la hierarchie des
  serveurs  de noms. Il arrive que cette liste change, c'est pourquoi il
  est _e_s_s_e_n_t_i_e_l que ce fichier soit maintenu a jour. Reportez-vous a  la
  section  ``maintenance''  pour  savoir  comment  le garder a jour.  Le
  contenu de ce fichier est decrit dans la page de  man  de  named  mais
  cette-derniere  s'adresse  plus,  a mon humble avis, a ceux qui savent
  deja comment fonctionne named.

  La ligne suivante de named.boot est la ligne  primary.   J'expliquerai
  son  role  dans  un  chapitre  ulterieur.  Pour  l'instant,  il s'agit
  simplement d'un fichier appele 127.0.0 situe dans le repertoire pz :

  ______________________________________________________________________
  @               IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                                  1       ; Serial
                                  28800   ; Refresh
                                  7200    ; Retry
                                  604800  ; Expire
                                  86400)  ; Minimum TTL
                          NS      ns.linux.bogus.
  1                       PTR     localhost.
  ______________________________________________________________________

  Apres ca, vous avez besoin d'un fichier /etc/resolv.conf qui ressemble
  a peu pres a ca :

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

  La  ligne  search  specifie  dans  quels  domaines  il faudra chercher
  lorsque vous voudrez vous connecter sur une machine de nom quelconque.
  La  ligne  "nameserver"  indique  a  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
  resolver qui utilise named qui le fait).

  Illustrons ce a quoi  sert  ce  fichier  :  si  un  client  cherche  a
  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  ca)  puis
  sunsite.unc.edu.your-domain.edu   et  enfin  sunsite.unc.edu.   Faites
  attention a 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 frequemment a 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. Evidemment, il faut  appliquer  cet  exemple  a  de
  vrais  noms  de  domaines. Remarquez qu'ici il n'y a pas de point a la
  fin des noms de domaine.

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

  //eettcc//nnsssswwiittcchh..ccoonnff

  C'est  un  long  fichier qui specifie ou trouver differentes sortes de
  types de donnees, dans quel fichier ou  quelle  base  de  donnees.  Il
  contient  generalement  des  commentaires  precieux au debut, que vous
  auriez tout interet a lire tout de suite. Ensuite,  trouvez  la  ligne
  qui commence par "hosts:", elle doit ressembler a 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.

  //eettcc//hhoosstt..ccoonnff

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

  ______________________________________________________________________
   order hosts,bind
  ______________________________________________________________________

  Si  il n'y a pas de ligne "order", il faut en mettre une. Elle indique
  aux routines de resolution de nom de regarder d'abord dans  /etc/hosts
  puis  de  demander  au  serveur  de  noms  (que vous avez precise dans
  resolv.conf comme etant 127.0.0.1). Ces deux  derniers  fichiers  sont
  documentes  dans  la page de man resolv(8) (tapez `man 8 resolv') dans
  la plupart des distributions de Linux. Cette page de man  est,  a  mon
  humble  avis,  largement lisible et tout le monde, a commencer par les
  administrateurs de DNS, devrait l'avoir lue. Faites-le maintenant.  Si
  vous vous dites "je le ferai plus tard", vous n'y reviendrez jamais.

  DDeemmaarrrreerr nnaammeedd..

  Apres  tout  ca,  il est temps de demarrer named. Si vous utilisez une
  connexion en dialup, commencez par vous connecter. Tapez  `ndc  start'
  et  appuyez  sur  la  touche  entree,  sans donner d'options. Si ca ne
  demarre pas, essayez plutot `/usr/sbin/ndc start'.  Si  ca  ne  marche
  toujours  pas,  jetez  un coup d'oeil au chapitre ``FAQ''. Maintenant,
  vous pouvez tester votre configuration. Si vous jetez un oeil a  votre
  fichier  de  messages  syslog  (souvent appele /var/adm/messages, mais
  regardez egalement dans le repertoire  /var/log  ou  dans  le  fichier
  syslog) tout en lancant named (faites tail -f /var/adm/messages), vous
  devrez voir quelque chose comme ca :

       Jun 30 21:50:55 roke named[2258]: starting.  named 4.9.4-REL
       Sun Jun 30 21:29:0 3 MET DST 1996
       janl@roke.slip.ifi.uio.no:/var/tmp/bind/named Jun 30 21:50:55 roke
       named[2258]: cache zone "" loaded (serial 0) Jun 30 21:50:55 roke
       named[2258]: primary zone "0.0.127.in-addr.arpa" loaded (serial 1)

  Si il y a un quelconque message d'erreur,  named  donnera  le  nom  du
  fichier   dans  lequel  se  trouve  l'erreur  (soit  named.boot,  soit
  root.cache,  j'espere  :-).  Tuez  le  processus  named  et  retournez
  verifier ces fichiers.

  Il  est  maintenant temps de lancer nslookup pour regarder le resultat
  de votre petit travail manuel

  $ nslookup
  Default Server: localhost
  Address: 127.0.0.1

  >

  Si vous obtenez ceci, c'est que ca marche. Nous  l'esperons  tous.  Si
  vous  obtenez quoi que ce soit d'autre, revenez en arriere et verifiez
  tout.  Chaque fois que vous modifiez le fichier  named.boot,  il  vous
  faut relancer named avec la commande ndc restart.

  Maintenant,  vous  pouvez entrer une requete. Essayez de contacter une
  machine proche de vous. pat.uio.no est proche de moi,  a  l'Universite
  d'Oslo :

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

       Name:    pat.uio.no
       Address: 129.240.2.50

  nslookup  a demande a votre named de rechercher la machine pat.uio.no.
  Il a  ensuite  contacte  un  des  serveurs  de  noms  mentionnes  dans
  root.cache  et  a  demande  le  chemin  a suivre. Il peut s'ecouler un
  certain temps avant que vous obteniez le resultat puisqu'il  recherche
  tous les domaines listes dans /etc/resolv.conf.

  Si vous reessayez, 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 accede au reseau pour obtenir  la
  reponse  mais  a  trouve  l'information  dans  son  cache.  Cependant,
  l'information cachee _p_o_u_r_r_a_i_t ne plus etre a jour. C'est pourquoi vous
  etes  informe  de  ce  (tres  faible)  danger  par  le  message  `Non-
  authoritative answer:' Quand nslookup  repond  ceci  la  seconde  fois
  qu'on  lui  demande  un certain hote, c'est un signe certain que named
  cache bien les  informations  et  que  tout  marche.  Pour  sortir  de
  nslookup, utilisez la commande `exit'.

  Si  vous avez une connexion en dialup (ppp ou slip), lisez le chapitre
  ``Configuration des connexions en dialup'', il y a des  conseils  pour
  vous.

  Maintenant,  vous  savez  comment  configurer un named qui fait cache.
  Servez-vous une biere, un verre de lait ou tout ce  que  vous  voudrez
  pour feter l'evenement, ca le merite.

  44..  UUnn ddoommaaiinnee _s_i_m_p_l_e

  CCoommmmeenntt mmeettttrree eenn ppllaaccee vvoottrree pprroopprree ddoommaaiinnee

  Avant  d'entrer  _v_r_a_i_m_e_n_t  dans  le vif du sujet, il va falloir que je
  vous fasse un brin de theorie sur le principe du service DNS. Et il va
  falloir  que  vous le lisiez, parce que c'est pour votre bien. Si vous
  ne "voulez" pas, vous devriez au moins le survoler rapidement. Arretez
  le  survol  quand vous en arrivez au point ou j'explique ce qu'il faut
  mettre dans le fichier named.boot.

  Le service DNS est un systeme organise  de  maniere  hierarchique.  Le
  sommet  est  designe par "." et se prononce "root". En dessous de . se
  trouvent un certain nombre de TLD (Top Level Domains), dont  les  plus
  connus  sont  ORG,  COM, EDU et NET, mais il y en a beaucoup d'autres.
  Lorsque vous voulez trouver l'adresse IP de prep.ai.mit.edu, votre DNS
  doit  trouver  un  serveur de noms qui serve le domaine edu. Votre DNS
  demande d'abord a un serveur de noms de  fichier  root.cache),  et  le
  serveur de . donne une liste des serveurs d'edu.

  En voici une illustration :

       $ nslookup
       Default Server: localhost
       Address: 127.0.0.1

  Interrogeons un serveur situe a la racine (root).

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

  Positionnons  le  type  de  requete  (Query  Type)  a  NS (Name Server
  records).

        > set q=ns

  Posons la question a propos de edu.

        > edu.

  Le . terminal  est  significatif,  il  indique  au  serveur  que  nous
  interrogeons  que  edu  se  trouve  juste  sous  .,  ce  qui permet de
  faciliter un peu 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

  Ceci nous dit que les serveurs *.root-servers.net servent  le  domaine
  edu.,  nous pouvons donc continuer 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

  steawb, w20ns et bitsy servent le domaine mit, prenons-en un au hasard
  et posons-lui la question au sujet de ai.mit.edu:

       > server W20NS.mit.edu.

  Les noms de domaine ne  sont  pas  sensibles  a  la  difference  entre
  lettres  minuscules et majuscules, mais comme j'utilise ma souris pour
  faire du copier-coller, vous lisez les choses dans ce document  telles
  qu'elles apparaissent sur mon ecran.

       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 = WHEATIES.AI.MIT.EDU
       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

       Authoritative answers can be found from:
       AI.MIT.EDU      nameserver = WHEATIES.AI.MIT.EDU
       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
       WHEATIES.AI.MIT.EDU     internet address = 128.52.32.13
       WHEATIES.AI.MIT.EDU     internet address = 128.52.35.13
       ALPHA-BITS.AI.MIT.EDU   internet address = 128.52.32.5
       ALPHA-BITS.AI.MIT.EDU   internet address = 128.52.37.5
       GRAPE-NUTS.AI.MIT.EDU   internet address = 128.52.32.4
       GRAPE-NUTS.AI.MIT.EDU   internet address = 128.52.36.4
       TRIX.AI.MIT.EDU internet address = 128.52.32.6
       TRIX.AI.MIT.EDU internet address = 128.52.38.6
       MUESLI.AI.MIT.EDU       internet address = 128.52.32.7
       MUESLI.AI.MIT.EDU       internet address = 128.52.39.7

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

       > server WHEATIES.AI.MIT.EDU.
       Default Server:  WHEATIES.AI.MIT.EDU
       Addresses:  128.52.32.13, 128.52.35.13

  Changeons le type de requete. Nous avons reussi a trouver  le  serveur
  de noms, nous allons maintenant chercher tout ce que wheaties sait sur
  le domaine prep.ai.mit.edu.

  > set q=any
  > prep.ai.mit.edu.
  Server:  WHEATIES.AI.MIT.EDU
  Addresses:  128.52.32.13, 128.52.35.13

  prep.ai.mit.edu CPU = dec/decstation-5000.25    OS = unix
  prep.ai.mit.edu
          inet address = 18.159.0.42, protocol = tcp
           #21 #23 #25 #79
  prep.ai.mit.edu preference = 1, mail exchanger = life.ai.mit.edu
  prep.ai.mit.edu internet address = 18.159.0.42
  ai.mit.edu      nameserver = alpha-bits.ai.mit.edu
  ai.mit.edu      nameserver = wheaties.ai.mit.edu
  ai.mit.edu      nameserver = grape-nuts.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 = life.ai.mit.edu
  ai.mit.edu      nameserver = mintaka.lcs.mit.edu
  life.ai.mit.edu internet address = 128.52.32.80
  alpha-bits.ai.mit.edu   internet address = 128.52.32.5
  wheaties.ai.mit.edu     internet address = 128.52.35.13
  wheaties.ai.mit.edu     internet address = 128.52.32.13
  grape-nuts.ai.mit.edu   internet address = 128.52.36.4
  grape-nuts.ai.mit.edu   internet address = 128.52.32.4
  mini-wheats.ai.mit.edu  internet address = 128.52.32.11
  mini-wheats.ai.mit.edu  internet address = 128.52.54.11
  mintaka.lcs.mit.edu     internet address = 18.26.0.36

  En commencant a partir de .,  nous  avons  successivement  trouve  les
  serveurs  de  noms  des  differents niveaux du nom de domaine. Si vous
  aviez utilise votre propre serveur DNS a la place de tous  ces  autres
  serveurs,  votre named aurait, bien sur, cache toutes ces informations
  et il n'aurait plus eu besoin de les  redemander  pendant  un  certain
  temps.

  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
  hierarchie des noms de domaine comme un domaine "normal". in-addr.arpa
  nous sert a obtenir le  nom  d'hote  connaissant  l'adresse  IP  d'une
  machine.   Une chose tres importante ici est de bien remarquer que les
  adresses IP sont notees en sens inverse a l'interieur du  domaine  in-
  addr.arpa. Si vous avez l'adresse d'une machine : 192.128.52.43, named
  procede 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 liee a 43.52.128.192.in-addr.arpa.

  Malin, n'est-ce-pas ? (dites "oui"). En fait, la  resolution  de  noms
  inverse est assez difficile a admettre les deux premieres annees.

  Pour  dire vrai, je viens de vous mentir. Le service DNS ne marche pas
  vraiment comme je vous  l'ai  expose.  Mais  ca  en  est  suffisamment
  proche.

  NNoottrree pprroopprree ddoommaaiinnee

  Maintenant, nous en sommes a definir notre propre domaine bien a nous.
  Nous allons creer  le  domaine  _l_i_n_u_x_._b_o_g_u_s  et  y  declarer  quelques
  machines.  C'est un nom de domaine totalement factice, afin d'etre sur
  de ne deranger personne dans le Vaste Monde.

  En fait, nous avons deja commence a creer notre  propre  domaine  avec
  cette ligne dans named.boot:

  ______________________________________________________________________
  primary 0.0.127.in-addr.arpa pz/127.0.0
  ______________________________________________________________________

  Notez  bien  l'absence  de  `.'  a  la  fin  des noms de domaine de ce
  fichier. La premiere ligne designe le fichier pz/127.0.0  comme  etant
  celui  qui  definit  le  domaine 0.0.127.in-addr.arpa. Nous avons deja
  configure ce fichier, il se presente comme ceci :

  ______________________________________________________________________
  @               IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                                  1       ; Serial
                                  28800   ; Refresh
                                  7200    ; Retry
                                  604800  ; Expire
                                  86400)  ; Minimum TTL
                          NS      ns.linux.bogus.
  1                       PTR     localhost.
  ______________________________________________________________________

  Notez bien le `.' a la fin de tous les noms de domaine complets de  ce
  fichier,  au contraire du fichier named.boot dont nous parlions un peu
  plus  haut.  Certaines  personnes  aiment  commencer  chaque   fichier
  definissant  une  zone  par  une directive $ORIGIN, mais en fait c'est
  superflu. L'origine (l'emplacement dans la hierarchie du service  DNS)
  d'un  fichier de zone est indiquee dans la colonne `domain' du fichier
  named.boot. 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'abbreviation de
  `Start Of Authority' (Origine d'Autorite). Le  `@'  est  une  notation
  speciale  qui  designe  l'origine.  Et comme la colonne `domain' de ce
  fichier donne 0.0.127.in-addr.arpa, la premiere 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  dit au service DNS quelle est la machine qui est serveur
  de noms pour ce domaine. Enfin, le champ PTR dit que  1  (c'est-a-dire
  1.0.0.127.IN-ADDR.ARPA,  c'est-a-dire 127.0.0.1) est appele localhost.

  Le champ SOA est le preambule de _t_o_u_s les fichiers de zone, et il doit
  y  en avoir exactement un dans chaque fichier de zone, et ce doit etre
  le tout premier champ du fichier.

  Ce champ  SOA  decrit  la  zone,  son  origine  (une  machine  appelee
  linux.bogus),     qui     est     responsable     de    son    contenu
  (hostmaster@linux.bogus), de quelle version  du  fichier  de  zone  il
  s'agit  (serial : 1), et quelques autres choses qui ont a voir avec le
  cache et les serveurs DNS  secondaires.   Pour  les  champs  restants,
  refresh,  retry,  expire et minimum, utilisez les valeurs donnees dans
  ce HOWTO et tout se passera certainement tres bien.

  Le champ NS nous dit qui fait serveur DNS  pour  0.0.127.in-addr.arpa,
  il   s'agit   de   ns.linux.bogus.  Le  champ  PTR  nous  indique  que
  1.0.0.127.in-addr.arpa (c'est-a-dire 127.0.0.1), est connu sous le nom
  localhost.

  Maintenant,  relancez  votre  named  (la  commande est ndc restart) et
  utilisez nslookup pour regarder le resultat de ce que vous avez fait :

       $ 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 a obtenir localhost a partir de 127.0.0.1.
  Maintenant, pour le sujet qui nous preoccupe, le domaine  linux.bogus,
  inserez une nouvelle ligne primary dans named.boot :

  ______________________________________________________________________
  primary linux.bogus pz/linux.bogus
  ______________________________________________________________________

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

  Dans le fichier de  zone  linux.bogus,  nous  allons  mettre  quelques
  donnees totalement factices :

  ______________________________________________________________________
  ;
  ; Zone file for linux.bogus
  ;
  ; Mandatory minimum for a working domain
  ;
  @       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                          199511301       ; serial, todays date + todays serial #
                          28800           ; refresh, seconds
                          7200            ; retry, seconds
                          3600000         ; expire, seconds
                          86400 )         ; minimum, seconds
                  NS      ns.linux.bogus.
                  NS      ns.friend.bogus.
                  MX      10 mail.linux.bogus   ; Primary Mail Exchanger
                  MX      20 mail.friend.bogus. ; Secondary Mail Exchanger

  localhost       A       127.0.0.1
  ns              A       127.0.0.2
  mail            A       127.0.0.4
  ______________________________________________________________________

  Il  y a deux choses a noter a propos du champ SOA. ns.linux.bogus _d_o_i_t
  _a_b_s_o_l_u_m_e_n_t etre une vraie machine possedant un champ A. Il  n'est  pas
  legal  d'avoir un champ CNAME pour la machine mentionnee dans le champ
  SOA. Il n'est pas necessaire que son nom soit `ns', ce peut etre  tout
  autre   nom   valide.   La   deuxieme   chose   a   noter   c'est  que
  hostmaster.linux.bogus doit se lire comme  hostmaster@linux.bogus.  Ce
  doit  etre  un  alias  de  mail,  ou  une  veritable boite aux lettres
  electronique, et la  personne  qui  maintient  le  DNS  doit  la  lire
  regulierement.  Tous  les mails concernant l'administration du domaine
  seront envoyes a cette adresse. Il n'est pas obligatoire  que  le  nom
  soit  `hostmaster', ce peut etre toute autre adresse mail legale, mais
  il faut dans ce cas 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 systemes de gestion du courrier
  electronique  a   quelle   machine   envoyer   le   mail   adresse   a
  someone@linux.bogus,    dans   notre   cas   a   mail.linux.bogus   ou
  mail.friend.bogus.  Le nombre devant chaque machine  est  sa  priorite
  vis-a-vis  du  champ  MX,  le  RR  avec  le numero le plus faible (10)
  correspond a la machine vers laquelle le courrier doit etre adresse en
  priorite.   En cas d'echec, le courrier peut etre adresse a la machine
  qui a le numero  de  priorite  immediatement  superieur,  c'est-a-dire
  mail.friend.bogus qui a une priorite de 20 dans notre cas.

  Relancez  named  en  tapant  ndc  restart.  Examinons le resultat avec
  nslookup :

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

  linux.bogus
          origin = linux.bogus
          mail addr = hostmaster.linux.bogus
          serial = 199511301
          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     nameserver = ns.friend.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
  linux.bogus     nameserver = ns.friend.bogus
  ns.linux.bogus  internet address = 127.0.0.2
  mail.linux.bogus        internet address = 127.0.0.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 entierement fausse. Il devrait y avoir

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

  J'ai  fait  cette erreur deliberement, c'etait juste 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 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 ajoutee 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  prefere  la deuxieme forme parce qu'il y a moins a
  taper.  Dans un fichier de zone, le nom  de  domaine  doit  soit  etre
  ecrit  et termine par un point, ou ne pas etre inclus du tout. Dans ce
  dernier cas, le nom de domaine par defaut est l'origine.

  Il faut que  j'insiste  sur  le  point  suivant  :   dans  le  fichier
  named.boot,  il  ne  doit  _p_a_s  y  avoir  de  points apres les noms de
  domaines. Vous ne pouvez pas vous imaginer combien de fois un  `.'  en
  trop  ou en moins a tout foutu en l'air et a cause de graves prises de
  tete aux gens.

  Cela etant dit, voici  le  nouveau  fichier  de  zone,  avec  quelques
  informations supplementaires :

  ______________________________________________________________________
  ;
  ; Zone file for linux.bogus
  ;
  ; Mandatory minimum for a working domain
  ;
  @       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                          199511301       ; serial, todays date + todays
  serial #
                          28800           ; refresh, seconds
                          7200            ; retry, seconds
                          604800          ; expire, seconds
                          86400 )         ; minimum, seconds

                  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
  ns              A       127.0.0.2
  mail            A       127.0.0.4
  ;
  ; Extras
  ;
  @               TXT     "Linux.Bogus, your DNS consultants"

  ns              MX      10 mail
                  MX      20 mail.friend.bogus.
                  HINFO   "Pentium" "Linux 1.2"
                  TXT     "RMS"
  richard         CNAME   ns
  www             CNAME   ns

  donald          A       127.0.0.3
                  MX      10 mail
                  MX      20 mail.friend.bogus.
                  HINFO   "i486"  "Linux 1.2"
                  TXT     "DEK"

  mail            MX      10 mail
                  MX      20 mail.friend.bogus.
                  HINFO   "386sx" "Linux 1.0.9"

  ftp             A       127.0.0.5
                  MX      10 mail
                  MX      20 mail.friend.bogus.
                  HINFO   "P6" "Linux 1.3.59"
  ______________________________________________________________________

  Vous  prefererez  certainement  changer les trois premiers champs A de
  place afin qu'ils se trouvent a cote de leurs autres champs,  au  lieu
  d'etre en tete du fichier.

  Il  y  a  un  certain  nombre de nouveaux RR que nous allons passer en
  revue : HINFO (Host  INFOrmation),  et  c'est  une  bonne  habitude  a
  prendre que d'encadrer chaque partie de guillemets. La premiere partie
  est la descrition materielle ou le type de processeur  de  la  machine
  tandis que la deuxieme partie decrit le logiciel utilise ou le systeme
  d'exploitation de la machine.  ns a  pour  processeur  un  Pentium  et
  tourne  sous  Linux  1.2.  Le  champ  TXT  est  libre  et  vous pouvez
  l'utiliser  pour  tout  ce  qui  vous  passera  par  la  tete.   CNAME
  (Canonical  NAME)  est  un champ qui permet de donner a chaque machine
  plusieurs noms. Ainsi, richard et www sont des alias pour ns.  Il  est
  important  de  noter que les champs MX, CNAME et SOA ne doivent _j_a_m_a_i_s
  mentionner un CNAME, ils ne doivent mentionner que des noms de machine
  possedant un champ A. Ainsi, il serait faux d'avoir :

  ______________________________________________________________________
   foobar CNAME richard ; NO!
  ______________________________________________________________________

  En revanche, ceci serait correct :

  ______________________________________________________________________
   foobar CNAME ns ; Yes!
  ______________________________________________________________________

  Il  est  aussi  important de noter qu'un CNAME n'est pas un nom d'hote
  legal   pour    une    adresse    de    courrier    electronique.    :
  webmaster@www.linux.bogus  est  une  adresse  de mail illegale avec la
  configuration ci-dessus.  Vous pouvez etre surs qu'il y a  un  certain
  nombre  d'administrateurs  systeme dans le Vaste Monde qui sont tres a
  cheval sur cette regle, meme si elle marche pour vous.  Une  facon  de
  contourner  le  probleme  est  d'utiliser  des  champs A (et peut-etre
  d'autres, comme un champ MX par exemple) a la place :

  ______________________________________________________________________
   www A 127.0.0.2
  ______________________________________________________________________

  Paul Vixie, le gourou dont nous avons deja  parle,  recommande  de  ne
  _j_a_m_a_i_s  utiliser  de CNAME. Envisagez donc _t_r_e_s serieusement de ne pas
  en utiliser.

  Chargez la nouvelle base de donnees en  lancant  ndc  reload,  ce  qui
  forcera named a 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 affiches.

  [localhost]
   linux.bogus.                   SOA   ns.linux.bogus
  hostmaster.linux.bogus. (199511301 28800 7200 604800 86400)
   linux.bogus.                   NS    ns.linux.bogus
   linux.bogus.                   NS    ns.friend.bogus
   linux.bogus.                   MX    10   mail.linux.bogus
   linux.bogus.                   MX    20   mail.friend.bogus
   linux.bogus.                   TXT   "Linux.Bogus, your DNS consultants"
   localhost                      A     127.0.0.1
   mail                           A     127.0.0.4
   mail                           MX    10   mail.linux.bogus
   mail                           MX    20   mail.friend.bogus
   mail                           HINFO 386sx       Linux 1.0.9
   donald                         A     127.0.0.3
   donald                         MX    10   mail.linux.bogus
   donald                         MX    20   mail.friend.bogus
   donald                         HINFO i486        Linux 1.2
   donald                         TXT   "DEK"
   www                            CNAME ns.linux.bogus
   richard                        CNAME ns.linux.bogus
   ftp                            A     127.0.0.5
   ftp                            MX    10   mail.linux.bogus
   ftp                            MX    20   mail.friend.bogus
   ftp                            HINFO P6          Linux 1.3.59
   ns                             A     127.0.0.2
   ns                             MX    10   mail.linux.bogus
   ns                             MX    20   mail.friend.bogus
   ns                             HINFO Pentium     Linux 1.2
   ns                             TXT   "RMS"
   linux.bogus.                   SOA   ns.linux.bogus hostmaster.linux.bogus.
  (199511301 28800 7200 604800 86400)

  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 = 127.0.0.2

  et ns.linux.bogus possede l'adresse 127.0.0.2. Ca a l'air bon aussi.

  OOnn ssee rreellaaxxee

  Bien sur, ce  domaine  est  tres  factice,  tout  comme  le  sont  ses
  adresses.  Ce  peut-etre, malheureusement, un peu deroutant pour vous.
  Un vrai exemple  tire  d'un  vrai  domaine  vous  attend  au  chapitre
  suivant.

  55..  UUnn eexxeemmppllee ttiirree dd''uunn ddoommaaiinnee rreeeell

  OOuu nnoouuss aalllloonnss eennffiinn vvooiirr ddee _v_r_a_i_s ffiicchhiieerrss ddee zzoonnee

  Certains  utilisateurs  ont  suggere que je mette un vrai exemple d'un
  domaine  qui  marche  dans  la  realite  car  mon  explication  de  la
  difference  entre un vrai domaine et l'exemple bidon ci-dessus n'etait
  pas tres claire.

  Une chose importante a propos de cet exemple : ne  l'entrez  _p_a_s  dans
  vos  serveurs  de  nom  !  Ne  l'utilisez que comme reference. Si vous
  voulez  experimentez,  faites-le  avec  l'exemple  du  domain   bogus.
  J'utilise  cet  exemple avec la permission de David Bullock de LAND-5.
  Ces fichiers etaient a jour  le  24  Septembre  96,  et  peuvent  donc
  differer de ce que vous pouvez trouver en questionnant les serveurs de
  nom de LAND-5 aujourd'hui. Et souvenez-vous : enlevez  les  caracteres
  blancs en tete de ligne ;-)

  55..11..  //eettcc//nnaammeedd..bboooott ((oouu //vvaarr//nnaammeedd//nnaammeedd..bboooott))

  Voici  les  deux lignes primary pour les deux zones inverses dont nous
  avons besoin : le reseau 127.0.0, ainsi que le  sous-reseau  206.6.177
  de LAND-5. Et une ligne primary pour la forward zone land-5.com. Notez
  enfin qu'au lieu de mettre les fichiers dans un repertoire appele  pz,
  comme  je  fais  dans ce HOWTO, il les place dans un repertoire appele
  zone.

  ______________________________________________________________________
  ;  Boot file for LAND-5 name server
  ;
  directory /var/named
  ;
  ; type          domain                          source file or host
  cache           .                               root.cache
  primary         0.0.127.in-addr.arpa            zone/127.0.0
  primary         177.6.206.in-addr.arpa          zone/206.6.177
  primary         land-5.com                      zone/land-5.com
  ______________________________________________________________________

  55..22..  //vvaarr//nnaammeedd//rroooott..ccaacchhee

  Souvenez-vous que le contenu de ce  fichier  peut  changer,  et  celui
  donne  ici  est  assez  vieux. Vous feriez mieux d'utiliser un fichier
  plus recent, produit par dig.

  ______________________________________________________________________
  ; <<>> DiG 2.1 <<>>
  ;; res options: init recurs defnam dnsrch
  ;; got answer:
  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6
  ;; flags: qr rd ra; Ques: 1, Ans: 9, Auth: 0, Addit: 9
  ;; QUESTIONS:
  ;;      ., type = NS, class = IN

  ;; ANSWERS:
   .       518357  NS      H.ROOT-SERVERS.NET.
   .       518357  NS      B.ROOT-SERVERS.NET.
   .       518357  NS      C.ROOT-SERVERS.NET.
   .       518357  NS      D.ROOT-SERVERS.NET.
   .       518357  NS      E.ROOT-SERVERS.NET.
   .       518357  NS      I.ROOT-SERVERS.NET.
   .       518357  NS      F.ROOT-SERVERS.NET.
   .       518357  NS      G.ROOT-SERVERS.NET.
   .       518357  NS      A.ROOT-SERVERS.NET.

  ;; ADDITIONAL RECORDS:
  H.ROOT-SERVERS.NET.     165593  A       128.63.2.53
  B.ROOT-SERVERS.NET.     165593  A       128.9.0.107
  C.ROOT-SERVERS.NET.     222766  A       192.33.4.12
  D.ROOT-SERVERS.NET.     165593  A       128.8.10.90
  E.ROOT-SERVERS.NET.     165593  A       192.203.230.10
  I.ROOT-SERVERS.NET.     165593  A       192.36.148.17
  F.ROOT-SERVERS.NET.     299616  A       192.5.5.241
  G.ROOT-SERVERS.NET.     165593  A       192.112.36.4
  A.ROOT-SERVERS.NET.     165593  A       198.41.0.4

  ;; Total query time: 250 msec
  ;; FROM: land-5 to SERVER: default -- 127.0.0.1
  ;; WHEN: Fri Sep 20 10:11:22 1996
  ;; MSG SIZE  sent: 17  rcvd: 312
  ______________________________________________________________________

  ______________________________________________________________________
  ;  Boot file for LAND-5 name server
  ;
  directory /var/named
  ;
  ; type          domain                          source file or host
  cache           .                               root.cache
  primary         0.0.127.in-addr.arpa            zone/127.0.0
  primary         177.6.206.in-addr.arpa          zone/206.6.177
  primary         land-5.com                      zone/land-5.com
  ______________________________________________________________________

  55..33..  //vvaarr//nnaammeedd//zzoonnee//112277..00..00

  Seulement l'essentiel, le champ  SOA  obligatoire,  et  un  champ  qui
  etablit  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 besoin de le mettre a jour, a 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.
  ______________________________________________________________________

  55..44..  //vvaarr//nnaammeedd//zzoonnee//llaanndd--55..ccoomm

  Nous trouvons ici le classique et obligatoire champ SOA ainsi que  les
  champs  NS.  Nous  pouvons  voir qu'il a un serveur de noms secondaire
  ns2.psi.net. C'est comme ca 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 egalement que le serveur primaire est land-5,
  qui  assure  tous  les services, et que l'administrateur a utilise des
  CNAME pour faire ca (il aurait pu utiliser des champs A).

  Comme vous pouvez voir d'apres le champ SOA, le fichier de zone a  son
  origine  a  land-5.com,  la  personne a contacter est root@land-5.com.
  hostmaster est une autre adresse souvent utilisee pour la  personne  a
  contacter. Le numero de serie est au format obligatoire aaaammjj, avec
  le numero de serie  dans  la  journee  ajoute  a  la  fin;  il  s'agit
  certainement  de la sixieme version du fichier de zone pour la journee
  du 20 septembre 1996.  N'oubliez-pas  que  le  numero  de  serie  doit
  _o_b_l_i_g_a_t_o_i_r_e_m_e_n_t  augmenter  de  maniere  monotone,  ici il n'y a qu'un
  chiffre pour le numero de serie dans la journee, si  bien  qu'apres  9
  modifications il faudra attendre le lendemain pour modifier le fichier
  a nouveau. Envisagez d'utiliser deux chiffres au lieu d'un seul.

  ______________________________________________________________________
  @       IN      SOA     land-5.com. root.land-5.com. (
                          199609206       ; serial, todays date + todays serial #
                          10800           ; refresh, seconds
                          7200            ; retry, seconds
                          10800           ; expire, seconds
                          86400 )         ; minimum, seconds
                  NS      land-5.com.
                  NS      ns2.psi.net.
                  MX      10 land-5.com.  ; Primary Mail Exchanger

  localhost       A       127.0.0.1

  router          A       206.6.177.1

  land-5.com.     A       206.6.177.2
  ns              CNAME   land-5.com.
  ftp             CNAME   land-5.com.
  www             CNAME   land-5.com.
  mail            CNAME   land-5.com.
  news            CNAME   land-5.com.

  funn            A       206.6.177.3
  illusions       CNAME   funn.land-5.com.
  @               TXT     "LAND-5 Corporation"

  ;
  ;       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
  ; {Many repetitive definitions deleted - SNIP}
  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
  ______________________________________________________________________

  Une autre chose qu'il faut noter est que les stations de travail n'ont
  pas  de nom personnel, mais plutot un prefixe suivit des deux derniers
  morceaux de leur adresse IP. Utiliser une telle  convention  simplifie
  grandement la maintenance, mais c'est un peu impersonnel.

  55..55..  //vvaarr//nnaammeedd//zzoonnee//220066

  Les commentaires se trouvent apres ce 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.
  3       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.
  ; {Many repetitive definitions deleted - SNIP}
  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 problemes. Elle est utilisee pour trouver le nom d'hote  d'une
  machine connaissant son adresse IP. Exemple : vous etes un serveur IRC
  et vous acceptez des connexions provenant de clients  IRC.  Cependant,
  comme  vous etes un serveur IRC norvegien, vous ne voulez accepter que
  les connexions venant de  Norvege  ou  des  autres  pays  scandinaves.
  Ainsi,  lorsqu'un client se connecte chez vous, la bibliotheque C peut
  vous dire quelle est l'adresse IP du client, puisque cette-derniere se
  trouve  dans  tous les paquets qui traversent le reseau. 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 a 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  bibliotheque 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 a 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 pour l'explication
  de la resolution de prep.ai.mit.edu, tout ceci est legerement  fictif.

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

  Certains gens vous diront que la  resolution  de  noms  inverse  n'est
  importante  que pour les serveurs, ou pas importante du tout. Pas tant
  que ca : beaucoup de serveurs ftp, news, irc ou http (Web) n'acceptent
  _p_a_s les connexions venant de machines dont ils ne peuvent retrouver le
  nom. C'est pourquoi la resolution de noms inverse  pour  les  machines
  est _o_b_l_i_g_a_t_o_i_r_e.

  66..  MMaaiinntteennaannccee

  GGaarrddeerr vvoottrree DDNNSS eenn eettaatt ddee mmaarrcchhee

  En  plus des taches normales, il y a une tache de maintenance speciale
  a effectuer sur les serveurs de nom.  Il s'agit de garder  le  fichier
  root.cache  a jour. La facon 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 meme question a un
  des serveurs de cette liste avec la commande  dig  @rootserver.   Vous
  remarquerez  que ce que vous obtenez ressemble enormement a un fichier
  root.cache,   avec   quelques   chiffres   en   plus.   Ces   chiffres
  supplementaires  sont  inoffensifs.  Sauvez-le  dans un fichier (dig .
  @e.root-servers.net >root.cache.new)  et  remplacez  l'ancien  fichier
  root.cache avec.

  N'oubliez  pas  de  relancer  named  apres  avoir  remplace le fichier
  root.cache.

  Al Longyear m'a envoye ce script qui peut etre  lance  automatiquement
  pour  mettre a jour named.cache. Lancez-le automatiquement a partir de
  la crontab et vous pourrez oublier qu'il existe. Ce script suppose que
  l'alias  de  mail `hostmaster' existe. Il vous faudra modifier quelque
  peu ce fichier pour qu'il fonctionne chez vous.

  ______________________________________________________________________
  #!/bin/sh
  #
  # Update the nameserver cache information file once per month.
  # This is run automatically by a cron entry.
  #
  (
   echo "To: hostmaster <hostmaster>"
   echo "From: system <root>"
   echo "Subject: Automatic update of the named.boot file"
   echo

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

   dig . @rs.internic.net >named.cache.new

   echo "The named.boot file has been updated to contain the following
  information:"
   echo
   cat named.boot.new

   chown root.root named.cache.new
   chmod 444 named.cache.new
   rm -f named.cache.old
   mv named.cache named.cache.old
   mv named.cache.new named.cache
   ndc restart
   echo
   echo "The nameserver has been restarted to ensure that the update is
  complete.
  "
   echo "The previous named.cache file is now called
  /var/named/named.cache.old."
  ) 2>&1 | /usr/lib/sendmail -t
  exit 0
  ______________________________________________________________________

  77..  CCoonnffiigguurraattiioonn aauuttoommaattiiqquuee ppoouurr lleess ccoonnnneexxiioonnss eenn ddiiaalluupp

  Ce chapitre explique comment j'ai configure les choses pour  que  tout
  se  fasse  de  maniere automatique. Le facon dont j'ai procede peut ne
  pas vous convenir du tout, mais ca peut quand  meme  vous  donner  des
  idees. En outre, j'utilise ppp pour faire du dialup alors que beaucoup
  utilisent slip ou cslip, c'est pourquoi votre configuration peut  etre
  totalement differente de la mienne. Mais le programme dip de slip doit
  pouvoir faire beaucoup de ces choses pour vous.

  Normalement, lorsque je ne suis  pas  connecte  au  Net,  mon  fichier
  resolv.conf contient simplement la ligne suivante :

       domain uio.no

  Ca  permet  d'eviter que la librairie de resolution de nom n'essaye de
  se connecter a un serveur de noms qui ne  peut  rien  pour  moi.  Mais
  lorsque  je  me  connecte,  je  veux  demarrer  mon  named et avoir un
  resolv.conf qui ressemble a ceux que nous avons vus  plus  haut.  J'ai
  resolu  ce  probleme  en  gardant deux fichiers 'a la' resolv.conf que
  j'ai appeles resolv.conf.local et  resolv.conf.connected.  Le  dernier
  ressemble au fichier resolv.conf decrit plus haut dans ce document.

  Pour me connecter automatiquement au Net, je lance un script appele

  ______________________________________________________________________
  #!/bin/sh
  echo calling...
  pppd
  ______________________________________________________________________

  pppd  possede un fichier appele options qui lui donne tous les details
  necessaires pour etablir la connexion. Une fois que ma  connexion  ppp
  est  etablie,  le  pppd  lance  un  script appele ip-up (Tout ceci est
  decrit dans la page de man de pppd). Voici un extrait de ce script :

  ______________________________________________________________________
  #!/bin/sh
  interface="$1"
  device="$2"
  speed="$3"
  myip="$4"
  upip="$5"
   ...
  cp -v /etc/resolv.conf.connected /etc/resolv.conf
   ...
  /usr/sbin/named
  ______________________________________________________________________

  C'est ici que je demarre mon named. A la  fermeture  de  la  connexion
  ppp, pppd lance un script appele ip-down :

  ______________________________________________________________________
  #!/bin/sh
  cp /etc/resolv.conf.local /etc/resolv.conf
  read namedpid </var/run/named.pid
  kill $namedpid
  ______________________________________________________________________

  De  cette maniere, les choses sont configurees lors de la connexion et
  deconfigurees a la deconnexion.

  Quelques programmes, je pense en particulier a irc et  talk,  font  un
  peu  trop  de  suppositions,  et  pour  que l'option dcc d'irc ou talk
  puissent fonctionner, il faut  modifier  le  fichier  hosts.  J'insere
  cette ligne dans mon script ip-up :

  ______________________________________________________________________

  cp /etc/hosts.ppp /etc/hosts
  echo $myip roke >>/etc/hosts
  ______________________________________________________________________

  hosts.ppp contient tout simplement

  ______________________________________________________________________
   127.0.0.1 localhost
  ______________________________________________________________________

  C'est la ligne echo qui insere l'adresse IP que j'obtiens pour mon nom
  d'hote (roke). Il faut que vous remplaciez roke par le nom sous lequel
  votre  machine se connait. On peut l'obtenir par la commande hostname.

  Il n'est pas tres malin de faire tourner named lorsque l'on n'est  pas
  connecte  au Net. En effet, named essaye d'envoyer des requetes sur le
  Net et, comme il a un grand timeout, il vous faut attendre ce  timeout
  a  chaque  fois  qu'un de vos programmes essaye de resoudre un nom. Si
  vous utilisez une connexion en dialup, il vous faut demarrer  named  a
  la  connexion  et  l'arreter  lors  de  la  deconnexion.  J'ai recu du
  courrier me disant que le comportement normal  n'etait  pas  celui-la,
  mais  je  n'ai  pas reussi a le faire marcher sans avoir a attendre de
  longs timeouts. Merci de me mailer _t_o_u_s les details si vous  avez  des
  informations plus precises.

  Certaines  personnes utilisent une directive forwarders parce qu'elles
  se trouvent au bout d'une  ligne  tres  lente.  Si  votre  fournisseur
  d'acces  a  des  serveurs de nom aux adresses 1.2.3.4 et 1.2.3.5, vous
  pouvez inserer la ligne suivante :

  ______________________________________________________________________
   forwarders 1.2.3.4 1.2.3.5
  ______________________________________________________________________

  dans le fichier named.boot.  N'oubliez pas, dans ce cas, de laisser le
  fichier named.cache vide.  Ceci vous permettra de diminuer la quantite
  de trafic IP genere par votre machine, et peut-etre accelerer  un  peu
  les  choses.  C'est particulierement important si vous payez au volume
  de donnees transferees.  En plus, ca vous evite d'avoir a maintenir un
  serveur  de  nom pour faire cache : vous n'avez pas a maintenir a jour
  un fichier named.cache qui est desormais vide.

  88..  FFAAQQ

  Dans cette section, je passe en revue quelques-unes des questions  les
  plus  frequemment  posees  a propos du DNS et de ce HOWTO. Et je donne
  meme les reponses ;-) Merci de bien lire cette  section  avant  de  me
  mailer.

  1. Question  :  Comment  utiliser un DNS si l'on se trouve derriere un
     firewall ?

     Voici quelques indices : `forwarders', `slaves', et jetez  un  coup
     d'oeil a la bibliographie qui se trouve a la fin de ce HOWTO.

  2. Question  :  Comment  dire  a  un DNS qu'il doit faire une rotation
     entre un certain nombre d'adresses pour un service donne, comme par
     exemple  si  l'on veut obtenir un effet d'equilibrage de charge sur
     www.busy.site, ou quelque chose du meme genre ?

     Creez plusieurs champs A pour www.busy.com et utilisez  bind  4.9.3
     ou une version plus recente, qui supporte les reponses a scrutation
     circulaire.  Cela  ne  marchera  _p_a_s  avec  des  versions  de  bind
     anterieures.

  3. Mon systeme ne possede pas le programme ndc. Que puis-je faire ?

     Votre  systeme doit avoir une vieille version de bind, certainement
     obsolete. Si la securite est une chose importante pour vous, passez
     a  une  version  recente  de bind tout de suite. Si ce n'est pas le
     cas, vous pouvez vivre sans ndc. Et a la place de lancer ndc start,
     tapez  named.  ndc reload devient ainsi named.reload et ndc restart
     devient ainsi named.restart. Tous ces  programmes  se  trouvent  le
     plus souvent dans /usr/sbin

  4. 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.boot du serveur secondaire :

     ___________________________________________________________________
       secondary     linux.bogus             127.0.0.1       sz/linux.bogus

     ___________________________________________________________________

  5. Je veux faire tourner bind lorsque je suis deconnecte du reseau

     J'ai recu le mail suivant de Ian Clark  <ic@deakin.edu.au>,  ou  il
     explique comment il fait ca :

  Ici, je fais tourner named sur la machine qui fais du
  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.cache.fake
  ; this file contains no information
  --------------

  Quand je me deconnecte, je copie le fichier root.cache.fake vers
  root.cache et je relance named.

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

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

  Lorsque je suis deconnecte, named rajoute ceci au fichier messages apres
  la premiere requete concernant un nom de domaine qu'il ne connait pas :

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

  Ce qui n'est pas tres genant.

  Ca marche tres bien dans mon cas. Je peux utiliser le serveur de noms
  pour les machines locales lorsque je suis deconnecte du Net en evitant
  les delais introduits par les timeout lies a la recherche des noms de
  domaine exterieurs. Et lorsque je suis connecte au Net, les requetes
  concernant les noms de domaines exterieurs marchent normalement.

  6. Ou  est-ce  que le serveur de nom qui fait cache stocke son cache ?
     Puis-je controler la taille de ce cache ?

     Le cache est entierement stocke en memoire, il n'est _p_a_s ecrit  sur
     le  disque. Chaque fois que vous tuez named, le cache est perdu. Il
     n'y a _a_u_c_u_n moyen de controler le cache. Named gere le cache  selon
     quelques  regles  simples,  et  c'est  tout.  Vous  ne  pouvez  pas
     controler le cache ou sa taille en aucune maniere. Si  vous  voulez
     vraiment  le  faire,  vous  pouvez le faire en bricolant le code de
     named. Mais ce n'est pas recommande.

  7. Est-ce que named sauvegarde le contenu du cache entre deux restarts
     ? Puis-je le forcer a le faire ?

     Non,  named  ne sauve _p_a_s la contenu du cache lorsqu'il meurt. Cela
     signifie que le cache est reconstruit a partir de zero chaque  fois
     que  vous  tuez puis relancez named. Il n'y a _a_u_c_u_n moyen de forcer
     named a 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 ce n'est, encore une fois, pas recommande.

  99..  CCoommmmeenntt ddeevveenniirr uunn aaddmmiinniissttrraatteeuurr DDNNSS ddee llaa pplluuss hhaauuttee vvoolleeee

  DDooccuummeennttaattiioonn eett oouuttiillss

  La   Vraie  Documentation  existe.  En  ligne  et  imprimee.  Il  faut
  absolument la lire si vous voulez devenir  un  administrateur  DNS  du
  plus  haut  niveau.   Pour ce qui est de la documentation imprimee, 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. 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 oblige 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. Prisig :-) Disponible sous la reference  ISBN
  0688052304.

  Online,  vous  trouverez  des  trucs sur  <http://www.dns.net/dnsrd/>,
  <http://www.vix.com/isc/bind.html>; Une FAQ, un  manuel  de  reference
  (BOG;   Bind  Operations  Guide)  aussi  bien  que  des  papiers,  des
  descriptions de protocoles et des trucs sur le service DNS.   Je  n'ai
  pas  lu  la  plupart de ces trucs-la, c'est pourquoi je ne suis pas un
  Grand administrateur de DNS.  Arnt Gulbrandsen, a l'inverse, a lu  BOG
  et  n'en  dit  que  du  bien  :-).   Le  newsgroup comp.protocols.tcp-
  ip.domains parle de DNS.  En complement, il y a un certain  nombre  de
  RFC sur le DNS, les plus importantes sont certainement celles-ci :

     RRFFCC 22005522
        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

     RRFFCC 11991188
        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.

     RRFFCC 11991122
        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.

     RRFFCC 11771133
        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.

     RRFFCC 11771122
        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.

     RRFFCC 11118833
        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.

     RRFFCC 11003355
        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.

     RRFFCC 11003344
        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.

     RRFFCC 11003333
        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.

     RRFFCC 11003322
        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.

     RRFFCC 997744
        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.

