<janl@math.uio.no>
<arn_mat@club-internet.fr>
Mots-cl�s : DNS, bind, bind-4, bind-8, named, dialup, ppp, slip, isdn, Internet, domain, name, hosts, resolving, caching
Ce document fait partie du Linux Documentation Project.
(C)opyright 1995-1999 Nicolai Langfeldt. Ne modifiez pas ce document sans en modifier le message de copyright en cons�quence. Vous pouvez distribuer ce document librement sous r�serve de conserver le message de copyright.
J'aimerais remercier Arnt Gulbrandsen qui a tant souffert en relisant les brouillons de ce document et qui a apport� nombre de suggestions pertinentes. Merci �galement � tous ceux qui m'ont envoy� leurs suggestions par courrier �lectronique. Merci beaucoup ! Vous m'aidez vraiment dans ce travail.
Ce document n'est pas destin� � atteindre un jour un �tat final, alors faites-moi part de vos probl�mes ainsi que de vos succ�s, cela me permettra d'am�liorer ce HOWTO. Merci d'envoyer les commentaires et/ou les questions et m�me l'argent � janl@math.uio.no. Si vous m'envoyez un courrier �lectronique, merci de v�rifier que votre adresse de retour est correcte car je re�ois beaucoup de courrier �lectronique. Essayez aussi de lire le chapitre FAQ avant de m'envoyer un mail. Autre chose je (l'auteur) ne parle qu'anglais et norv�gien.
Si vous ne parlez ni l'anglais ni le norv�gien, vous pouvez toujours envoyer vos commentaires en fran�ais au traducteur (arn_mat@club-internet.fr) qui fera suivre.
Si vous voulez traduire ce HOWTO, pr�venez-moi pour que je puisse garder le compte de toutes les langues dans lesquelles il a �t� traduit :-), de plus, cela me permettra de vous tenir au courant des �volutions de ce HowTo.
Ce HOWTO est d�di� � Anne Line Norheim. Pourtant, elle ne le lira sans doute jamais, ce n'est pas du tout son genre.
Ce que ce document est et ce qu'il n'est pas
Le DNS est le Domain Name System. C'est l'ensemble des r�gles
utilis�es par les machines et les logiciels pour �tablir, entre autres choses,
la correspondance entre les noms de machines et les adresses IP, dont chaque
machine sur le net est pourvue. Ce document explique comment d�finir de telles
correspondances � l'aide d'un syst�me Linux. Une correspondance est tout
simplement une relation entre deux objets, dans notre cas un nom de machine,
comme ftp.linux.org
, et l'adresse IP de cette machine,
199.249.150.4
.
Le DNS constitue pour le non-initi� (vous dans le cas pr�sent ;-) une des parties les plus obscures de l'administration de r�seau. Le but de ce HOWTO est d'essayer d'en �claircir quelques aspects. Ce document explique comment configurer un DNS simple. Nous allons commencer avec un serveur de noms qui ne sert qu'� faire cache puis nous continuerons en configurant un serveur DNS primaire pour un domaine. Pour des configurations plus complexes, jetez un coup d'oeil � la section FAQ de ce document. Si vous n'y trouvez pas ce que vous cherchez, vous allez alors devoir lire la Vraie Documentation. Je reviendrai sur ce en quoi consiste la Vraie Documentation dans le chapitre final.
Avant de commencer, vous devez configurer votre machine pour �tre capable
de vous connecter par telnet sur d'autres machines mais aussi pouvoir recevoir
des connexions sur votre machine. Vous devez aussi �tre en mesure de vous
connecter au r�seau par tous les services possibles, et en particulier pouvoir
faire telnet 127.0.0.1
, ce qui revient � vous connecter � votre propre
machine (v�rifiez tout de suite que �a marche !). Il est aussi n�cessaire,
pour commencer, que les fichiers /etc/nnswitch.conf
(ou
/etc/host.conf
), /etc/resolv.conf
et /etc/hosts
soient
correctement configur�s car je n'expliquerai pas ici � quoi ils servent. Si
tout cela n'est pas d�j� configur� et en �tat de marche, lisez le NET-3-HOWTO.
Si vous utilisez une connexion SLIP ou PPP, il est indispensable qu'elle fonctionne. Lisez le PPP HOWTO si ce n'est pas le cas.
Quand je dis ``votre machine'', j'entends la machine sur laquelle vous aller essayer d'installer le DNS, et non pas une autre machine dont vous pourriez vous servir pour acc�der au r�seau.
Je supposerai par la suite que vous ne vous trouvez pas derri�re un firewall qui bloque les requ�tes de r�solution de nom. Si tel est le cas, vous aurez besoin d'une configuration sp�ciale. Reportez-vous alors au chapitre FAQ.
Le service de r�solution de nom sous Unix est assur� par un programme
appel� named
. Il fait partie du paquetage ``bind'', g�r� par Paul Vixie
pour l'Internet Software Consortium. named
est inclus dans la plupart
des distributions de Linux et se trouve le plus souvent install� dans
/usr/sbin/named
. Si vous disposez d'un named
, vous pouvez
vraisemblablement l'utiliser. Si vous n'en avez pas, chargez-en un � partir
d'un site FTP Linux ou allez chercher la derni�re et meilleure version des
sources du programme depuis
ftp.isc.org/isc/bind/src/cur/bind-8/. Ce HowTo parle de bind version
8. L'ancienne version de ce HowTo, a propos de bind 4 est toujours disponible
�
www.math.uio.no/~janl/DNS/ au cas ou vous auriez bind 4. Si la page
man de named
parle de named.conf
vous avec bind 8, si elle parle
(tout a la fin, dans la section FILES) de named.boot
vous avez bind
4. Si vous avez bind 4, et si la s�curit� fait partie de vos pr�occupations,
vous devriez vraiment passer � bind 8.
Le service DNS est une base de donn�es � l'�chelle du r�seau tout entier. Faites donc tr�s attention � ce que vous y introduisez. Si vous y mettez n'importe quoi, vous en retirerez n'importe quoi, et les autres aussi. Conservez votre DNS bien propre, � jour et coh�rent et vous verrez qu'il vous offrira le meilleur de lui-m�me. Apprenez a l'utiliser, l'administrer, le d�bogger et vous ferez partie de ces administrateurs qui emp�chent que le r�seau ne s'�croule sous le poids des syst�mes mal g�r�s.
Dans ce document, je dis des choses qui ne sont pas tout � fait vraies (mais qui le sont toujours au moins � moiti�). Si je le fais, c'est toujours dans le but de rendre les choses plus simples. Tout marchera (probablement ;-) tr�s bien si vous croyez ce que je vous dis.
Astuce : S'ils existent d�j�, faites une copie de sauvegarde de tous les fichiers que je vous demande de modifier. Ainsi, si plus rien ne marche apr�s ce que nous allons faire, vous pourrez toujours revenir au bon vieux temps o� tout marchait bien.
Un premier aper�u de la configuration d'un DNS, tr�s utile pour ceux qui utilisent une connexion en dialup.
Un serveur de noms qui ne sert que de cache trouve la r�ponse aux requ�tes de r�solution de nom et se souvient de cette r�ponse chaque fois qu'on lui posera la m�me question par la suite. Cela r�duira les temps de r�ponse, surtout si vous avez une connexion plut�t lente.
Vous avez tout d'abord besoin du fichier /etc/named.conf
. Ce fichier
est lu au lancement de named
. Pour le moment, il ne doit pas contenir
autre chose que :
// Fichier de config pour un serveur de noms qui ne fait que du cache options { directory "/var/named"; // Enlever les commentaires peut vous aider si vous avez a passer a // travers un firewall et que �a ne marche pas : // query-source port 53; }; zone "." { type hint; file "root.hints"; }; zone "0.0.127.in-addr.arpa" { type master; file "pz/127.0.0"; };
TR�S IMPORTANT : Dans certaines versions de ce document, les fichiers list�s comme ci-dessus pr�sentent un certain nombre de caract�res espace ou tabulation avant le premier caract�re non blanc de la ligne. Ils ne sont pas suppos�s faire partie du fichier. Effacez donc tous les caract�res blancs de d�but de ligne des fichiers que vous copiez-collez � partir de ce HOWTO.
La ligne ``directory
'' indique � named
l'endroit o� il doit
rechercher ses fichiers. Tous les fichiers dont nous parlerons maintenant
auront un chemin relatif relatifs � ce r�pertoire. Ainsi, pz
est un
sous-r�pertoire de /var/named
, c'est a dire
/var/named/pz
. D'apr�s le Linux Filesystem Standard, ce
r�pertoire doit �tre /var/named
.
On trouve � cet endroit le fichier /var/named/root.hints
, qui doit
ressembler � ceci :
; Il se peut qu'il y ait quelques commentaires ici si vous avez d�j� ce ; fichier. de toutes fa�on, ce sont des commentaires, ils ne sont pas ; important du tout. . 6D IN NS G.ROOT-SERVERS.NET. . 6D IN NS J.ROOT-SERVERS.NET. . 6D IN NS K.ROOT-SERVERS.NET. . 6D IN NS L.ROOT-SERVERS.NET. . 6D IN NS M.ROOT-SERVERS.NET. . 6D IN NS A.ROOT-SERVERS.NET. . 6D IN NS H.ROOT-SERVERS.NET. . 6D IN NS B.ROOT-SERVERS.NET. . 6D IN NS C.ROOT-SERVERS.NET. . 6D IN NS D.ROOT-SERVERS.NET. . 6D IN NS E.ROOT-SERVERS.NET. . 6D IN NS I.ROOT-SERVERS.NET. . 6D IN NS F.ROOT-SERVERS.NET. G.ROOT-SERVERS.NET. 5w6d16h IN A 192.112.36.4 J.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.10 K.ROOT-SERVERS.NET. 5w6d16h IN A 193.0.14.129 L.ROOT-SERVERS.NET. 5w6d16h IN A 198.32.64.12 M.ROOT-SERVERS.NET. 5w6d16h IN A 202.12.27.33 A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.4 H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53 B.ROOT-SERVERS.NET. 5w6d16h IN A 128.9.0.107 C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12 D.ROOT-SERVERS.NET. 5w6d16h IN A 128.8.10.90 E.ROOT-SERVERS.NET. 5w6d16h IN A 192.203.230.10 I.ROOT-SERVERS.NET. 5w6d16h IN A 192.36.148.17 F.ROOT-SERVERS.NET. 5w6d16h IN A 192.5.5.241
Souvenez-vous bien de ce que j'ai dit pour les caract�res blancs en t�te de ligne !
Ce fichier donne une description de tous les serveurs de noms du monde qui
se trouvent � la racine (au plus haut niveau) de la hi�rarchie des serveurs de
noms. Il arrive que cette liste change, c'est pourquoi il est essentiel que ce
fichier soit maintenu � jour. Reportez-vous � la section
maintenance pour savoir comment le garder � jour. Le contenu de ce
fichier est d�crit dans la page de man de named
mais cette derni�re
s'adresse plus, � mon humble avis, � ceux qui savent d�j� comment fonctionne
ce programme.
La section suivante de named.conf
est la derni�re partie. Elle sera
expliqu�e dans un chapitre suivant, pour l'instant, cr�ez un fichier appel�
127.0.0
dans le sous r�pertoire pz
:
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. ( 1 ; Serial 8H ; Refresh 2H ; Retry 1W ; Expire 1D) ; Minimum TTL NS ns.linux.bogus. 1 PTR localhost.
Apr�s �a, vous avez besoin d'un fichier /etc/resolv.conf
qui ressemble � peu pr�s � �a :
search subdomain.your-domain.edu your-domain.edu nameserver 127.0.0.1
La ligne search
sp�cifie dans quels domaines il faudra chercher
lorsque vous voudrez vous connecter sur une machine de nom quelconque. La
ligne ``nameserver
'' indique � quelle adresse votre machine peut
contacter un serveur de noms. Si vous voulez indiquer plusieurs serveurs de
nom, mettez une ligne ``nameserver
'' pour chacun. Dans notre cas, il
s'agit de notre propre machine puisque c'est elle qui fait tourner
named
. (Note : named
ne lit jamais ce fichier, c'est le
r�solveur qui utilise named
qui le fait).
Voyons sur un exemple � quoi sert ce fichier : si un client cherche �
contacter foo
, on essaye d'abord foo.subdomain.your-domain.edu
puis foo.your-domain.edu
et enfin foo
. Si un client essaye de
contacter sunsite.unc.edu
, on essaye d'abord
sunsite.unc.edu.subdomain.your-domain.edu
(je sais, c'est stupide, mais
c'est comme �a) puis sunsite.unc.edu.your-domain.edu
et enfin
sunsite.unc.edu
. Faites attention � ne pas mettre trop de noms de
domaine dans la ligne search
car cela prend du temps de tous les
essayer.
Cet exemple suppose que vous appartenez au domaine
subdomain.your-domain.edu
. Votre machine s'appelle alors certainement
your-machine.subdomain.your-domain.edu
. La ligne search ne doit pas
contenir votre TLD (Top Level Domain; edu
dans notre cas). Si vous vous
connectez fr�quemment � des machines dans un autre domaine, vous pouvez
rajouter ce domaine dans la ligne search comme ceci :
search subdomain.your-domain.edu your-domain.edu other-domain.com
et ainsi de suite. �videmment, il faut appliquer cet exemple � de vrais noms de domaines. Remarquez qu'ici il n'y a pas de point � la fin des noms de domaine. C'est important, notez l'absence de points aux fins des noms de domaines.
Ensuite, suivant votre version de la libc, vous allez devoir modifier soit
/etc/nsswitch.conf
, soit /etc/host.conf
. Si vous avez d�j�
nsswitch.conf
, c'est celui-l� que nous allons modifier, sinon ce sera
host.conf
.
/etc/nsswitch.conf
C'est un long fichier qui sp�cifie o� trouver diff�rentes sortes de types
de donn�es, dans quel fichier ou quelle base de donn�es. Il contient
g�n�ralement des commentaires pr�cieux au d�but, que vous auriez tout int�r�t
� lire. Ensuite, trouvez la ligne qui commence par ``hosts:
'', elle doit
ressembler � ceci:
hosts: files dns
Si il n'y a aucune ligne qui commence par ``hosts:
'', mettez celle
ci-dessus. Elle dit que les programmes doivent d'abord regarder dans
/etc/hosts
puis demander au DNS en suivant les indications de
resolv.conf
.
/etc/host.conf
Ce fichier contient certainement plusieurs lignes, dont une doit commencer
par order
et ressembler � �a :
order hosts,bind
Si il n'y a pas de ligne ``order
'', il faut en mettre une. Elle
indique aux routines de r�solution de nom de regarder d'abord dans
/etc/hosts
puis de demander au serveur de noms (que vous avez pr�cis�
dans resolv.conf
comme �tant 127.0.0.1).
Apr�s tout �a, il est temps de d�marrer named
. Si vous utilisez une
connexion en dialup, commencez par vous connecter. Tapez ``ndc start
''
et appuyez sur la touche entr�e, sans donner d'options. Si �a ne marche pas,
essayez plut�t ``/usr/sbin/ndc start
''. Si �a ne marche toujours pas,
jetez un coup d'oeil au chapitre
FAQ. Si vous jetez un
oeil � votre fichier de messages syslog (souvent appel�
/var/adm/messages
, mais regardez �galement dans le r�pertoire
/var/log
ou dans le fichier syslog
) tout en lan�ant named
(faites tail -f /var/adm/messages
), vous devriez voir quelque chose
comme �a :
(les lignes se terminant par \ se continuent sur la ligne suivante)
Feb 15 01:26:17 roke named[6091]: starting. named 8.1.1 Sat Feb 14 \
00:18:20 MET 1998 ^Ijanl@roke.uio.no:/var/tmp/bind-8.1.1/src/bin/named
Feb 15 01:26:17 roke named[6091]: cache zone "" (IN) loaded (serial 0)
Feb 15 01:26:17 roke named[6091]: master zone "0.0.127.in-addr.arpa" \
(IN) loaded (serial 1)
Feb 15 01:26:17 roke named[6091]: listening [127.0.0.1].53 (lo)
Feb 15 01:26:17 roke named[6091]: listening [129.240.230.92].53 (ippp0)
Feb 15 01:26:17 roke named[6091]: Forwarding source address is [0.0.0.0].1040
Feb 15 01:26:17 roke named[6092]: Ready to answer queries.
Si il y a un quelconque message d'erreur, named
donnera le nom du fichier
dans lequel se trouve l'erreur (soit named.conf
, soit root.hints, j'esp�re
:-). Tuez le processus named
et re-v�rifiez ce fichier.
Il est maintenant temps de v�rifier votre configuration. Lancez
nslookup
pour regarder le r�sultat de votre petit travail.
$ nslookup
Default Server: localhost
Address: 127.0.0.1
>
Si vous obtenez ce message, c'est que �a marche. Nous l'esp�rons tous. Si
vous obtenez quoi que ce soit d'autre, revenez en arri�re et v�rifiez
tout. Chaque fois que vous modifiez le fichier named.conf
, il vous faut
relancer named
avec la commande ndc restart
.
Maintenant, vous pouvez entrer une requ�te. Essayez de contacter une
machine proche de vous. pat.uio.no
est proche de moi, � l'Universit�
d'Oslo :
> pat.uio.no
Server: localhost
Address: 127.0.0.1
Name: pat.uio.no
Address: 129.240.2.50
nslookup a demand� � votre named
de rechercher la machine
pat.uio.no
. Il a ensuite contact� un des serveurs de noms mentionn�s
dans root.cache
et a demand� le chemin � suivre. Il peut s'�couler un
certain temps avant que vous obteniez le r�sultat puisqu'il se peut qu'il
recherche tous les domaines list�s dans /etc/resolv.conf
.
Si vous r�essayez, vous obtiendrez ceci :
> pat.uio.no
Server: localhost
Address: 127.0.0.1
Non-authoritative answer :
Name: pat.uio.no
Address: 129.240.2.50
Notez cette fois ci l'apparition de la ligne ``Non-authoritative answer
:
''. Elle veut dire que named
n'a pas acc�d� au r�seau pour obtenir
la r�ponse mais a trouv� l'information dans son cache. Cependant,
l'information cach�e pourrait ne plus �tre � jour. C'est pourquoi vous
�tes inform� de cette possibilit� tr�s improbable par le message
``Non-authoritative answer:
'' Quand nslookup
r�pond ceci la
seconde fois qu'on lui demande un certain h�te, c'est un signe certain que
named
cache bien les informations et que tout marche. Pour sortir de
nslookup
, utilisez la commande ``exit
''.
Dans les grands r�seaux, bien administr�s, des universit�s ou FAI
(Fournisseur d'Acc�s a Internet), vous remarquerez peut-�tre que les
administrateurs r�seau ont mis en place une hi�rarchie de serveurs DNS ce qui
permet de soulager le r�seau interne ainsi que le r�seau vers l'ext�rieur. Il
n'est pas facile de savoir si vous �tes dans un r�seau de ce type. Tout cela
n'est pas tr�s important, mais en utilisant le serveur DNS de votre FAI comme
``forwarder'' vous pouvez rendre les r�ponses plus rapides et all�ger la
charge de votre r�seau. Avec un modem, la diff�rence peut �tre sensible. Pour
am�liorer encore notre exemple, supposons que votre FAI aie deux serveurs de
noms qu'il veux vous faire utiliser, ayant pour adresses IP 10.0.0.1
et
10.1.0.1
. Alors, dans votre fichier named.conf
, dans la section
appel�e ``options'' ins�rez les lignes :
forward first; forwarders { 10.0.0.1; 10.1.0.1; };
Red�marrez votre serveur de noms et testez avec nslookup
. Cela
devrait marcher sans probl�mes.
Maintenant, vous savez comment configurer un named
qui sert de
cache. Servez-vous une bi�re, un verre de lait ou tout ce que vous voudrez
pour f�ter l'�v�nement.
Comment mettre en place votre propre domaine
Avant d'entrer vraiment dans le vif du sujet, il va falloir que je
fasse un brin de th�orie avec quand m�me un petit exemple sur le principe du
service DNS. Et il faudra tout lire, car c'est pour votre bien. Vous devriez
au moins survoler rapidement cette section. Arr�tez le survol quand vous
arrivez � l'endroit o� j'explique le contenu du fichier named.conf
.
Le service DNS est un syst�me organis� de mani�re hi�rarchique, sous forme
d'arbre. La racine est d�sign�e par ``.
'' et s'appelle ``la
racine''. En dessous de .
se trouvent un certain nombre de TLD (Top
Level Domains); les plus connus sont ORG
, COM
, EDU
,
NET
et FR
, mais il y en a beaucoup d'autres. Tout comme un
arbre, il a une racine avec des branches qui en partent. Si vous avez des
connaissances en informatique fondamentale, vous reconna�trez dans le DNS un
arbre de recherche, avec des noeuds, des arr�tes et des feuilles.
Lorsque vous recherchez une machine, la question est pos�e r�cursivement
dans toute la hi�rarchie depuis la racine. Lorsque vous voulez trouver
l'adresse IP de prep.ai.mit.edu
, votre DNS doit trouver un serveur de
noms pour le domaine edu
. Votre DNS demande d'abord � un serveur de
noms de .
(il poss�de d�j� les adresses des serveurs pour .
,
elles sont dans le fichier root.hints
), et le serveur pour .
donne une liste des serveurs d'edu
.
Voici un exemple :
$ nslookup
Default Server: localhost
Address: 127.0.0.1
Interrogeons un serveur situ� � la racine.
> server c.root-servers.net.
Default Server: c.root-servers.net
Address: 192.33.4.12
Positionnons le type de requ�te (Query Type) � NS (Name Server records).
> set q=ns
Posons la question � propos de edu
.
> edu.
Le .
terminal est significatif, il indique � nslookup
que nous
interrogeons que edu
se trouve juste sous .
(et pas dans l'un de
nos sous-domaines, ce qui acc�l�re la recherche).
edu nameserver = A.ROOT-SERVERS.NET
edu nameserver = H.ROOT-SERVERS.NET
edu nameserver = B.ROOT-SERVERS.NET
edu nameserver = C.ROOT-SERVERS.NET
edu nameserver = D.ROOT-SERVERS.NET
edu nameserver = E.ROOT-SERVERS.NET
edu nameserver = I.ROOT-SERVERS.NET
edu nameserver = F.ROOT-SERVERS.NET
edu nameserver = G.ROOT-SERVERS.NET
A.ROOT-SERVERS.NET internet address = 198.41.0.4
H.ROOT-SERVERS.NET internet address = 128.63.2.53
B.ROOT-SERVERS.NET internet address = 128.9.0.107
C.ROOT-SERVERS.NET internet address = 192.33.4.12
D.ROOT-SERVERS.NET internet address = 128.8.10.90
E.ROOT-SERVERS.NET internet address = 192.203.230.10
I.ROOT-SERVERS.NET internet address = 192.36.148.17
F.ROOT-SERVERS.NET internet address = 192.5.5.241
G.ROOT-SERVERS.NET internet address = 192.112.36.4
Nous apprenons ainsi que tous les serveurs ROOT-SERVERS.NET
servent
le domaine edu.
; nous pouvons donc continuer en les interrogeant
tous. Nous continuerons en interrogeant C
. Maintenant, nous voulons
savoir qui sert le niveau suivant du nom de domaine : mit.edu.
:
> mit.edu.
Server: c.root-servers.net
Address: 192.33.4.12
Non-authoritative answer:
mit.edu nameserver = STRAWB.mit.edu
mit.edu nameserver = W20NS.mit.edu
mit.edu nameserver = BITSY.mit.edu
Authoritative answers can be found from:
STRAWB.mit.edu internet address = 18.71.0.151
W20NS.mit.edu internet address = 18.70.0.160
BITSY.mit.edu internet address = 18.72.0.3
strawb
, w20ns
et bitsy
servent tous le domaine
mit
, prenons-en un au hasard et posons-lui la question au sujet d'un
domaine encore plus pr�cis : ai.mit.edu
:
> server W20NS.mit.edu.
On ne distingue pas majuscules et minuscules pour les noms de domaine, et comme j'utilise ma souris pour faire du copier-coller, vous lisez les choses dans ce document telles qu'elles apparaissent sur mon �cran.
Server: W20NS.mit.edu
Address: 18.70.0.160
> ai.mit.edu.
Server: W20NS.mit.edu
Address: 18.70.0.160
Non-authoritative answer:
ai.mit.edu nameserver = ALPHA-BITS.AI.MIT.EDU
ai.mit.edu nameserver = GRAPE-NUTS.AI.MIT.EDU
ai.mit.edu nameserver = TRIX.AI.MIT.EDU
ai.mit.edu nameserver = MUESLI.AI.MIT.EDU
ai.mit.edu nameserver = LIFE.AI.MIT.EDU
ai.mit.edu nameserver = BEET-CHEX.AI.MIT.EDU
ai.mit.edu nameserver = MINI-WHEATS.AI.MIT.EDU
ai.mit.edu nameserver = COUNT-CHOCULA.AI.MIT.EDU
ai.mit.edu nameserver = MINTAKA.LCS.MIT.EDU
Authoritative answers can be found from:
AI.MIT.EDU nameserver = ALPHA-BITS.AI.MIT.EDU
AI.MIT.EDU nameserver = GRAPE-NUTS.AI.MIT.EDU
AI.MIT.EDU nameserver = TRIX.AI.MIT.EDU
AI.MIT.EDU nameserver = MUESLI.AI.MIT.EDU
AI.MIT.EDU nameserver = LIFE.AI.MIT.EDU
AI.MIT.EDU nameserver = BEET-CHEX.AI.MIT.EDU
AI.MIT.EDU nameserver = MINI-WHEATS.AI.MIT.EDU
AI.MIT.EDU nameserver = COUNT-CHOCULA.AI.MIT.EDU
AI.MIT.EDU nameserver = MINTAKA.LCS.MIT.EDU
ALPHA-BITS.AI.MIT.EDU internet address = 128.52.32.5
GRAPE-NUTS.AI.MIT.EDU internet address = 128.52.36.4
TRIX.AI.MIT.EDU internet address = 128.52.37.6
MUESLI.AI.MIT.EDU internet address = 128.52.39.7
LIFE.AI.MIT.EDU internet address = 128.52.32.80
BEET-CHEX.AI.MIT.EDU internet address = 128.52.32.22
MINI-WHEATS.AI.MIT.EDU internet address = 128.52.54.11
COUNT-CHOCULA.AI.MIT.EDU internet address = 128.52.38.22
MINTAKA.LCS.MIT.EDU internet address = 18.26.0.36
Ainsi, muesli.ai.mit.edu
est un serveur de noms pour le domaine
ai.mit.edu
:
> server MUESLI.AI.MIT.EDU
Default Server: MUESLI.AI.MIT.EDU
Address: 128.52.39.7
Changeons le type de requ�te. Nous avons r�ussi � trouver le serveur de
noms, nous allons maintenant demander tout ce que muesli
sait sur le
domaine prep.ai.mit.edu
.
> set q=any
> prep.ai.mit.edu.
Server: MUESLI.AI.MIT.EDU
Address: 128.52.39.7
prep.ai.mit.edu CPU = dec/decstation-5000.25 OS = unix
prep.ai.mit.edu
inet address = 18.159.0.42, protocol = tcp
ftp telnet smtp finger
prep.ai.mit.edu preference = 1, mail exchanger = gnu-life.ai.mit.edu
prep.ai.mit.edu internet address = 18.159.0.42
ai.mit.edu nameserver = beet-chex.ai.mit.edu
ai.mit.edu nameserver = alpha-bits.ai.mit.edu
ai.mit.edu nameserver = mini-wheats.ai.mit.edu
ai.mit.edu nameserver = trix.ai.mit.edu
ai.mit.edu nameserver = muesli.ai.mit.edu
ai.mit.edu nameserver = count-chocula.ai.mit.edu
ai.mit.edu nameserver = mintaka.lcs.mit.edu
ai.mit.edu nameserver = life.ai.mit.edu
gnu-life.ai.mit.edu internet address = 128.52.32.60
beet-chex.ai.mit.edu internet address = 128.52.32.22
alpha-bits.ai.mit.edu internet address = 128.52.32.5
mini-wheats.ai.mit.edu internet address = 128.52.54.11
trix.ai.mit.edu internet address = 128.52.37.6
muesli.ai.mit.edu internet address = 128.52.39.7
count-chocula.ai.mit.edu internet address = 128.52.38.22
mintaka.lcs.mit.edu internet address = 18.26.0.36
life.ai.mit.edu internet address = 128.52.32.80
En commen�ant � partir de .
, nous avons successivement trouv� les
serveurs de noms des diff�rents niveaux du nom de domaine. Si vous aviez
utilis� votre propre serveur DNS � la place de tous ces autres serveurs, votre
named
aurait, bien s�r, cach� toutes ces informations et il n'aurait
plus eu besoin de les redemander pendant un certain temps.
Si l'on revient a l'analogie avec les arbres, chaque ``.
'' dans le
nom est un embranchement. Et chaque nom entre deux .
est une branche de
l'arbre.
Grimpons ensemble dans l'arbre en prenant le nom que nous voulons
(prep.ai.mit.edu
). On part de la racine (.
), on regarde ensuite
dans quelle branche grimper, dans notre cas, edu
. D�s qu'on l'a
trouv�e, on y grimpe en passant par le serveur qui conna�t cette partie du
nom. Ensuite, assis sur la branche edu
, on cherche la branche
mit
(le nom combin� est mit.edu
), puis la branche
ai.mit.edu
. Maintenant, on est sur le bon serveur, au bon
embranchement. La derni�re partie est de trouver prep.ai.mit.edu
, ce
qui est tr�s simple. En informatique fondamentale, on appelle prep
une
feuille de l'arbre.
Un domaine dont on parle beaucoup moins, mais qui n'en est pas moins
important, est in-addr.arpa
. Ce domaine trouve sa place dans la
hi�rarchie des noms de domaine comme un domaine ``normal''.
in-addr.arpa
nous sert � obtenir le nom d'h�te connaissant l'adresse IP
d'une machine. Une chose tr�s importante ici est de bien remarquer que les
adresses IP sont not�es en sens inverse � l'int�rieur du domaine
in-addr.arpa
. Si vous avez l'adresse d'une machine :
192.128.52.43
, named
proc�de exactement comme dans l'exemple de
prep.ai.mit.edu
: il trouve les serveurs pour in-addr.arpa.
,
trouve les serveurs pour 192.in-addr.arpa.
, trouve les serveurs pour
128.192.in-addr.arpa.
, et finalement trouve les serveurs pour
52.128.192.in-addr.arpa.
. On obtient bien ainsi l'information li�e �
43.52.128.192.in-addr.arpa.
Malin, n'est ce pas ? (dites oui). En
fait, la r�solution de noms inverse est assez difficile � admettre les
premi�res ann�es.
� vrai dire, je vous ai menti. Le service DNS ne marche pas vraiment comme �a. Mais ce que je vous ai dit est suffisamment proche de la r�alit�.
Maintenant, nous en sommes � d�finir notre propre domaine bien � nous. Nous
allons cr�er le domaine linux.bogus
et y d�clarer quelques
machines. C'est un nom de domaine totalement factice, afin d'�tre s�r de ne
d�ranger personne dans le Vaste Monde.
Encore une chose avant de commencer. Tous les caract�res ne sont pas admis
dans les noms de machines. On ne doit utiliser que les caract�res de
l'alphabet anglais (a-z), les nombres (0-9) et le tiret ``-''. Utilisez ces
caract�res, majuscules et minuscules sont confondues, donc pat.uio.no
est identique � Pat.UiO.No
.
En fait, nous avons d�j� commenc� � cr�er notre propre domaine avec cette
ligne dans named.conf
:
zone "0.0.127.in-addr.arpa" { type master; file "pz/127.0.0"; };
Notez bien l'absence de ``.
'' � la fin des noms de domaine de ce
fichier. Elle signifie que nous allons d�finir la zone
0.0.127.in-addr.arpa
, que nous sommes son serveur principal et que tout
est stock� dans un fichier appel� pz/127.0.0
. On a d�j� vu ce fichier,
il se pr�sente comme ceci :
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. ( 1 ; Serial 8H ; Refresh 2H ; Retry 1W ; Expire 1D) ; Minimum TTL NS ns.linux.bogus. 1 PTR localhost.
Notez bien le ``.
'' � la fin de tous les noms de domaine complets de
ce fichier, contrairement au fichier named.boot
. Certaines personnes
aiment commencer chaque fichier d�finissant une zone par une directive
$ORIGIN
, mais en fait c'est superflu. L'origine (l'emplacement
dans la hi�rarchie du service DNS) d'un fichier de zone est indiqu�e dans la
zone section du fichier named.conf
. Dans notre cas, c'est
0.0.127.in-addr.arpa
.
Ce ``fichier de zone'' (``zone file''), contient 3 ``resource records''
(RRs) : un SOA RR, un NS RR et un PTR RR. SOA est l'abr�viation de ``Start Of
Authority'' (Origine de l'Autorit�). Le ``@'' est une notation sp�ciale qui
d�signe l'origine. Et comme la colonne ``domain'' de ce fichier donne
0.0.127.in-addr.arpa
, la premi�re ligne signifie donc :
0.0.127.IN-ADDR.ARPA. IN SOA ...
NS est le ``resource records'' pour le serveur de noms (NS = Name Server), Il n'y a pas de @ au d�but de la ligne, il est implicite, puisque la ligne d'avant commence avec un ``@''. Alors, faites-vous une fleur en omettant ce caract�re. Donc, la ligne NS peut aussi s'�crire comme suit :
0.0.127.in-addr.arpa. IN NS ns.linux.bogus
Elle dit au service DNS quelle machine est le serveur de noms pour le
domaine 0.0.127.in-addr.arpa
, c'est ns.linux.bogus
. ns
est le nom habituel des serveurs de noms, tout comme www.
pour les
serveurs Web, mais c'est simplement une habitude, on peut choisir n'importe
quel nom.
Et finalement le PTR dit que l'adresse 1 dans le sous r�seau
0.0.127.in-addr.arpa
, donc 127.0.0.1 est appel� localhost
.
Le champ SOA est le pr�ambule de tous les fichiers de zone, et il
doit y en avoir exactement un dans chaque fichier de zone. Ce champ SOA d�crit
la zone, son origine (une machine appel�e ns.linux.bogus
), qui est
responsable de son contenu (hostmaster@linux.bogus
, vous devriez mettre
votre adresse email � cet endroit), de quelle version du fichier de zone il
s'agit (serial : 1), et quelques autres param�tres pour le cache et les
serveurs DNS secondaires. Quant aux champs restants (refresh,
retry, expire et minimum) utilisez les valeurs
donn�es dans ce HOWTO et tout se passera certainement tr�s bien.
Maintenant, relancez votre named
(avec la commande ndc
restart
) et utilisez nslookup
pour regarder le r�sultat :
$ nslookup
Default Server: localhost
Address: 127.0.0.1
> 127.0.0.1
Server: localhost
Address: 127.0.0.1
Name: localhost
Address: 127.0.0.1
Tout va bien, on arrive � obtenir localhost
� partir de
127.0.0.1. Maintenant, pour le sujet qui nous pr�occupe, le domaine
linux.bogus
, ins�rez une nouvelle zone dans le fichier
named.conf
:
zone "linux.bogus" { notify no; type master; file "pz/linux.bogus"; };
Notez qu'encore une fois il n'y a pas de ``.
'' � la fin des noms de
domaine dans le fichier named.conf
.
Dans le fichier de zone linux.bogus
, nous allons mettre quelques
donn�es totalement factices :
; ; Zone file for linux.bogus ; ; The full zone file ; @ IN SOA ns.linux.bogus. hostmaster.linux.bogus. ( 199802151 ; serial, todays date + todays serial # 8H ; refresh, seconds 2H ; retry, seconds 1W ; expire, seconds 1D ) ; minimum, seconds ; NS ns ; Inet Address of name server MX 10 mail.linux.bogus ; Primary Mail Exchanger MX 20 mail.friend.bogus. ; Secondary Mail Exchanger ; localhost A 127.0.0.1 ns A 192.168.196.2 mail A 192.168.196.4
Il y a deux choses � noter � propos du champ SOA. ns.linux.bogus
doit absolument �tre une vraie machine poss�dant un champ A. Il n'est
pas l�gal d'avoir un champ CNAME pour la machine mentionn�e dans le champ
SOA. Il n'est pas n�cessaire que son nom soit ``ns'', ce peut �tre tout autre
nom valide. La deuxi�me chose � noter c'est que hostmaster.linux.bogus
doit se lire comme hostmaster@linux.bogus
. Ce doit �tre un alias de
mail, ou une v�ritable bo�te aux lettres �lectronique, et la personne qui
maintient le DNS doit la lire r�guli�rement. Tous les mails concernant
l'administration du domaine seront envoy�s � cette adresse. Il n'est pas
obligatoire que le nom soit ``hostmaster'', vous pouvez mettre votre adresse
e-mail personnelle, mais il serait bon que l'adresse ``hostmaster'' fonctionne
aussi.
Il y a un nouveau RR (Resource Record) dans ce fichier, c'est le MX, pour
Mail eXchanger. Il indique aux syst�mes de gestion du courrier �lectronique �
quelle machine envoyer le mail adress� � someone@linux.bogus
, dans
notre cas � mail.linux.bogus
ou mail.friend.bogus
. Le nombre
devant chaque machine est sa priorit� vis-�-vis du champ MX, le RR avec le
num�ro le plus faible (10) correspond � la machine � laquelle le courrier doit
�tre adress� en priorit�. En cas d'�chec, il peut �tre adress� � la machine
qui a le num�ro de priorit� imm�diatement sup�rieur, c'est-�-dire
mail.friend.bogus
qui a une priorit� de 20 dans notre cas.
Relancez named
en tapant ndc restart
. Examinons le r�sultat
avec nslookup :
$ nslookup
> set q=any
> linux.bogus
Server: localhost
Address: 127.0.0.1
linux.bogus
origin = ns.linux.bogus
mail addr = hostmaster.linux.bogus
serial = 199802151
refresh = 28800 (8 hours)
retry = 7200 (2 hours)
expire = 604800 (7 days)
minimum ttl = 86400 (1 day)
linux.bogus nameserver = ns.linux.bogus
linux.bogus preference = 10, mail exchanger = mail.linux.bogus.linux.bogus
linux.bogus preference = 20, mail exchanger = mail.friend.bogus
linux.bogus nameserver = ns.linux.bogus
ns.linux.bogus internet address = 192.168.196.2
mail.linux.bogus internet address = 192.168.196.4
Un examen approfondi vous montrera qu'il y a un bug. En effet, la ligne
linux.bogus preference = 10, mail exchanger = mail.linux.bogus.linux.bogus
est enti�rement fausse. Il devrait y avoir
linux.bogus preference = 10, mail exchanger = mail.linux.bogus
J'ai fait cette erreur d�lib�r�ment, pour voir si vous suiviez :-) En regardant dans le fichier de zone, nous trouvons que dans la ligne
@ MX 10 mail.linux.bogus ; Primary Mail Exchanger
il manque un point. Ou il y a un ``linux.bogus'' de trop. Si, dans un fichier de zone, un nom de machine ne se termine pas par un point, l'origine est ajout�e au nom de la machine. Ainsi, une des deux formes :
MX 10 mail.linux.bogus. ; Primary Mail Exchanger
ou
MX 10 mail ; Primary Mail Exchanger
est correcte. Je pr�f�re la deuxi�me forme parce qu'il y a moins de caract�res � taper. Certains approuveront, d'autres non. Dans un fichier de zone, le nom de domaine doit ou bien �tre �crit et termin� par un point, ou bien ne pas �tre inclus du tout. Dans le dernier cas, le nom de domaine par d�faut est l'origine.
Il faut que j'insiste sur le point suivant : dans le fichier
named.conf
, il ne doit pas y avoir de ``.
'' apr�s les
noms de domaines. Vous ne pouvez pas vous imaginer les ravages qui ont �t�
caus�s pas des ``.
'' en trop ou en moins.
Cela �tant dit, voici le nouveau fichier de zone, avec quelques informations suppl�mentaires :
; ; Zone file for linux.bogus ; ; The full zone file ; @ IN SOA ns.linux.bogus. hostmaster.linux.bogus. ( 199802151 ; serial, todays date + todays serial # 8H ; refresh, seconds 2H ; retry, seconds 1W ; expire, seconds 1D ) ; minimum, seconds ; TXT "Linux.Bogus, your DNS consultants" NS ns ; Inet Address of name server NS ns.friend.bogus. MX 10 mail ; Primary Mail Exchanger MX 20 mail.friend.bogus. ; Secondary Mail Exchanger localhost A 127.0.0.1 gw A 192.168.196.1 HINFO "Cisco" "IOS" TXT "The router" ns A 192.168.196.2 MX 10 mail MX 20 mail.friend.bogus. HINFO "Pentium" "Linux 2.0" www CNAME ns donald A 192.168.196.3 MX 10 mail MX 20 mail.friend.bogus. HINFO "i486" "Linux 2.0" TXT "DEK" mail A 192.168.196.4 MX 10 mail MX 20 mail.friend.bogus. HINFO "386sx" "Linux 1.2" ftp A 192.168.196.5 MX 10 mail MX 20 mail.friend.bogus. HINFO "P6" "Linux 2.1.86"
Il y a un certain nombre de nouveaux RR que nous allons passer en revue :
HINFO (Host INFOrmation), qui est en deux parties, et c'est une bonne habitude
� prendre que d'encadrer chacune de guillemets. La premi�re partie est la
description mat�rielle ou le type de processeur de la machine tandis que la
deuxi�me partie d�crit le logiciel utilis� ou le syst�me d'exploitation de la
machine. ns a pour processeur un Pentium et tourne sous Linux 2.0. Le champ
CNAME (Canonical NAME) sert � donner plusieurs noms � la m�me machine. Par
cons�quent, www
est un alias de ns
.
L'utilisation des champs CNAME est assez controvers�e. Mais il est sage de suivre la r�gle selon laquelle un champ MX, CNAME ou SOA ne doit jamais se r�f�rer � un champ CNAME, toujours se r�f�rer � un champ A, il est donc pr�f�rable de ne pas avoir :
foobar CNAME www ; NON !
En revanche, ceci est correct :
foobar CNAME ns ; Oui !
Il est aussi important de noter qu'un CNAME n'est pas un nom d'h�te l�gal
pour une adresse de courrier �lectronique. webmaster@www.linux.bogus
est une adresse de mail ill�gale avec la configuration ci-dessus. Vous pouvez
�tre s�rs qu'il y a un certain nombre d'administrateurs syst�me dans le Vaste
Monde qui sont tr�s � cheval sur cette r�gle, m�me si avec un CNAME �a marche
pour vous. Une fa�on de contourner le probl�me est d'utiliser des champs A (et
peut-�tre d'autres, comme un champ MX par exemple) � la place :
www A 192.168.196.2
Un certain nombre de gourous-du-bind recommandent de ne pas utiliser de CNAME. Mais les discussions sur le pour et le contre sortent du cadre de ce HOWTO.
Mais comme vous le voyez, ce HowTo ainsi que beaucoup de serveurs ne suivent pas cette r�gle.
Chargez la nouvelle base de donn�es en lan�ant ndc reload
, ce qui
forcera named
� relire ses fichiers de configuration.
$ nslookup
Default Server: localhost
Address: 127.0.0.1
> ls -d linux.bogus
Ceci veut dire que l'on souhaite que tous les champs soient affich�s.
[localhost]
$ORIGIN linux.bogus.
@ 1D IN SOA ns hostmaster (
199802151 ; serial
8H ; refresh
2H ; retry
1W ; expiry
1D ) ; minimum
1D IN NS ns
1D IN NS ns.friend.bogus.
1D IN TXT "Linux.Bogus, your DNS consultants"
1D IN MX 10 mail
1D IN MX 20 mail.friend.bogus.
gw 1D IN A 192.168.196.1
1D IN HINFO "Cisco" "IOS"
1D IN TXT "The router"
mail 1D IN A 192.168.196.4
1D IN MX 10 mail
1D IN MX 20 mail.friend.bogus.
1D IN HINFO "386sx" "Linux 1.0.9"
localhost 1D IN A 127.0.0.1
www 1D IN CNAME ns
donald 1D IN A 192.168.196.3
1D IN MX 10 mail
1D IN MX 20 mail.friend.bogus.
1D IN HINFO "i486" "Linux 1.2"
1D IN TXT "DEK"
ftp 1D IN A 192.168.196.5
1D IN MX 10 mail
1D IN MX 20 mail.friend.bogus.
1D IN HINFO "P6" "Linux 1.3.59"
ns 1D IN A 192.168.196.2
1D IN MX 10 mail
1D IN MX 20 mail.friend.bogus.
1D IN HINFO "Pentium" "Linux 1.2"
Tout va bien. Regardons ce qu'il dit pour www
tout seul :
> set q=any
> www.linux.bogus.
Server: localhost
Address: 127.0.0.1
www.linux.bogus canonical name = ns.linux.bogus
linux.bogus nameserver = ns.linux.bogus
linux.bogus nameserver = ns.friend.bogus
ns.linux.bogus internet address = 192.168.196.2
En d'autres termes, le vrai nom de www.linux.bogus
est
ns.linux.bogus
, et vous avez en plus quelques informations � propos de
ns, en fait, suffisamment pour vous y connecter si vous �tiez un programme.
Bon, on a fait la moiti� du boulot.
�a y est, les programmes peuvent convertir les noms de linux.bogus
en adresses auxquelles ils peuvent se connecter. Maintenant, on a besoin d'une
zone invers�e pour que l'on puisse retrouver le DNS � partir de l'adresse. Ce
nom est utilis� par diff�rents types de serveurs (FTP, IRC, WWW et autres)
pour d�cider s'ils vont discuter avec vous ou non, et s'ils le font, quelle
priorit� ils vont vous donner. Pour un acc�s complet aux services sur
Internet, la zone invers�e est indispensable.
Mettez �a dans votre named.conf
zone "196.168.192.in-addr.arpa" { notify no; type master; file "pz/192.168.196"; };
C'est exactement comme pour le 0.0.127.in-addr.arpa
et le contenu
est similaire :
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. ( 199802151 ; Serial, todays date + todays serial 8H ; Refresh 2H ; Retry 1W ; Expire 1D) ; Minimum TTL NS ns.linux.bogus. 1 PTR gw.linux.bogus. 2 PTR ns.linux.bogus. 3 PTR donald.linux.bogus. 4 PTR mail.linux.bogus. 5 PTR ftp.linux.bogus.
Red�marrez votre named
(ndc restart
) et examinez votre
travail avec nslookup :
> 192.168.196.4 Server: localhost Address: 127.0.0.1 Name: mail.linux.bogus Address: 192.168.196.4
On dirait que c'est bon, on va regarder en d�tails pour s'en assurer :
> ls -d 196.168.192.in-addr.arpa [localhost] $ORIGIN 196.168.192.in-addr.arpa. @ 1D IN SOA ns.linux.bogus. hostmaster.linux.bogus. ( 199802151 ; serial 8H ; refresh 2H ; retry 1W ; expiry 1D ) ; minimum 1D IN NS ns.linux.bogus. 1 1D IN PTR gw.linux.bogus. 2 1D IN PTR ns.linux.bogus. 3 1D IN PTR donald.linux.bogus. 4 1D IN PTR mail.linux.bogus. 5 1D IN PTR ftp.linux.bogus. @ 1D IN SOA ns.linux.bogus. hostmaster.linux.bogus. ( 199802151 ; serial 8H ; refresh 2H ; retry 1W ; expiry 1D ) ; minimum
Pas mal ! Si ce que vous donne nslookup ne ressemble pas a �a, allez a la p�che aux messages d'erreur dans votre syslog. J'ai expliqu� comment faire au tout d�but du chapitre.
Je devrais maintenant faire quelques remarques. Les adresses IP utilis�es
dans les exemples pr�c�dents sont prises dans le bloc des ``r�seaux priv�s'',
c'est � dire des adresses qui ne doivent pas �tre utilis�es publiquement sur
Internet. Donc, il est sage de les avoir utilis�es dans un exemple d'un
HowTo. La deuxi�me chose est la ligne notify no;
. Elle demande �
named
de ne pas informer ses serveur secondaires (les esclaves) quand
l'un de ses fichiers de zone a �t� mis � jour. Depuis Bind-8 named
peut
informer les autres serveurs list�s dans ses champs NS dans le fichier zone,
quand une zone est mise a jour. C'est pratique pour une utilisation normale,
mais pour des exp�riences priv�es cette fonctionnalit� doit �tre mise hors
service, on ne va quand m�me pas polluer Internet avec nos exp�riences, non ?
Bien s�r, ce domaine est tr�s factice, tout comme le sont ses adresses. C'est peut-�tre un peu d�routant pour vous. Un vrai exemple tir� d'un vrai domaine vous attend au grand chapitre suivant.
Il y a quelques trucs qui sont normalement �vit�s avec les lookups qui arrivent souvent quand on met en place des zones invers�s. Avant de continuer, vous avez besoin d'avoir des lookups qui marchent sur vos propres serveurs de noms. Si ce n'est pas le cas, revenez en arri�re et r�parez-le avant de continuer.
Je parlerais des deux probl�mes de lookups invers�s qui sont vu de l'ext�rieur de votre r�seau :
Quand vous demandez � un fournisseur d'acc�s quelques adresses IP ainsi
qu'un nom de domaine, le nom de domaine vous est normalement d�l�gu�. La
d�l�gation consiste en un champ NS
qui vous aide a passer d'un serveur
� l'autre comme je l'ai expliqu� dans le brin de th�orie qui pr�c�de. Vous
l'avez lu, n'est-ce pas ? Si votre zone invers�e ne marche pas, retournez y et
lisez-le. Maintenant.
La zone invers�e a elle aussi besoin d'�tre d�l�gu�e. Si vous avez le
r�seau 192.168.196
avec le domaine linux.bogus
de votre
fournisseur, il devra mettre des champs NS
pour votre zone invers�e
aussi bien que pour votre zone directe. Si vous remontez la cha�ne � partir de
in-addr.arpa
vous trouverez un trou quelque part. Tr�s certainement au
niveau de votre fournisseur. Apr�s avoir trouv� le trou dans la cha�ne,
contactez votre fournisseur et demandez-lui de corriger l'erreur.
C'est un sujet plut�t pointu, mais les sous r�seaux sans classe sont tr�s r�pandus de nos jours et vous en aurez tr�s certainement un si vous n'�tes pas une entreprise assez grande.
Un sous-r�seau sans classe est ce qui sauve Internet de nos jours. Il y a quelques ann�es, il y avait vraiment beaucoup de discussions sur la rar�faction des adresses IP. Les personnes intelligentes de l'IETF (Internet Engineering Task Force, ceux qui maintiennent Internet en �tat de marche) se sont pench�es sur cet �pineux probl�me et ont trouv� une solution. A un certain prix. Le prix est que vous aurez moins qu'un sous r�seau de classe ``C'' et que certaines choses ne marcheront certainement plus. Allez voir Ask Mr DNS (c'est en anglais) pour plus d'explications.
Vous l'avez lu ? Comme je ne vais pas l'expliquer, s'il vous pla�t, allez le lire.
La premi�re partie du probl�me est que votre FAI doit comprendre la
technique d�crite par Mr DNS. Tous les petits FAI ne le comprennent
pas. S'ils n'ont pas bien compris, vous allez avoir � leur expliquer et �
insister. Mais assurez-vous de comprendre vous-m�me en premier lieu ;-). Ils
mettrons ensuite une jolie zone invers�e sur leurs serveurs que vous pourrez
examiner pour savoir si elle est correcte avec nslookup
.
La deuxi�me et derni�re partie du probl�me est que vous devez en comprendre la technique. Si vous n'�tes pas certain, revenez en arri�re et relisez ce document. Ensuite, vous pourrez mettre en place une zone invers�e sans classe comme le d�crit Mr DNS.
Il y a une autre difficult� qui pointe son nez ici. Les vieux r�solveurs
ne seront pas capable de suivre les champs CNAME
dans la cha�ne
de r�solution et n'arriveront pas a r�soudre l'IP de votre machine. Cela peut
entra�ner l'assignation d'une mauvaise classe, la non-r�solution ou quelque
chose dans ce go�t-l�. Si vous butez sur ce genre de probl�me, la seule
solution (que je connaisse) est de demander � votre FAI d'ins�rer vos champs
PTR
dans ses fichiers de zone sans classe plut�t que des champs
CNAME
.
Certains FAI vous proposeront d'autre m�thodes pour g�rer cela, comme des formulaires web o� vous pourrez entrer vos zones invers�es, ou d'autre syst�mes automatis�s.
O� nous allons enfin voir de vrais fichiers de zone
Certains utilisateurs ont sugg�r� que je mette un vrai exemple d'un domaine qui marche dans la r�alit� car mon explication sur la diff�rence entre un vrai domaine et l'exemple bidon ci-dessus n'�tait pas tr�s claire.
J'utilise cet exemple avec la permission de David Bullock de LAND-5. Ces fichiers �taient � jour le 24 Septembre 96, et ont �t� modifi�e pour �tre utilis�s avec les restrictions de bind 8 et quelques extensions de mon cru. Par cons�quent, ils peuvent donc diff�rer de ce que vous pouvez trouver en questionnant les serveurs de nom de LAND-5 aujourd'hui.
Voici les sections pour les deux zones invers�es n�cessaires : le r�seau
127.0.0
, ainsi que le sous-r�seau LAND-5 206.6.177
. Et une ligne
primary pour la forward zone land-5.com
. Notez aussi qu'au lieu de
mettre les fichiers dans le r�pertoire pz
comme dans ce HowTo, il les
met dans le r�pertoire zone
.
// Boot file for LAND-5 name server options { directory "/var/named"; }; zone "." { type hint; file "root.hints"; }; zone "0.0.127.in-addr.arpa" { type master; file "zone/127.0.0"; }; zone "land-5.com" { type master; file "zone/land-5.com"; }; zone "177.6.206.in-addr.arpa" { type master; file "zone/206.6.177"; };
Si vous mettez �a dans votre named.conf
pour jouer avec, PAR
PITI� mettez aussi le ``notify no;
'' dans les zones des deux
land-5.com
pour �viter les accidents.
Souvenez-vous que le contenu de ce fichier peut changer, et celui donn� ici
est assez vieux. Vous feriez mieux d'utiliser un fichier plus r�cent, produit
par le programme dig
.
; <<>> DiG 8.1 <<>> @A.ROOT-SERVERS.NET. ; (1 server found) ;; res options: init recurs defnam dnsrch ;; got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10 ;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13 ;; QUERY SECTION: ;; ., type = NS, class = IN ;; ANSWER SECTION: . 6D IN NS G.ROOT-SERVERS.NET. . 6D IN NS J.ROOT-SERVERS.NET. . 6D IN NS K.ROOT-SERVERS.NET. . 6D IN NS L.ROOT-SERVERS.NET. . 6D IN NS M.ROOT-SERVERS.NET. . 6D IN NS A.ROOT-SERVERS.NET. . 6D IN NS H.ROOT-SERVERS.NET. . 6D IN NS B.ROOT-SERVERS.NET. . 6D IN NS C.ROOT-SERVERS.NET. . 6D IN NS D.ROOT-SERVERS.NET. . 6D IN NS E.ROOT-SERVERS.NET. . 6D IN NS I.ROOT-SERVERS.NET. . 6D IN NS F.ROOT-SERVERS.NET. ;; ADDITIONAL SECTION: G.ROOT-SERVERS.NET. 5w6d16h IN A 192.112.36.4 J.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.10 K.ROOT-SERVERS.NET. 5w6d16h IN A 193.0.14.129 L.ROOT-SERVERS.NET. 5w6d16h IN A 198.32.64.12 M.ROOT-SERVERS.NET. 5w6d16h IN A 202.12.27.33 A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.4 H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53 B.ROOT-SERVERS.NET. 5w6d16h IN A 128.9.0.107 C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12 D.ROOT-SERVERS.NET. 5w6d16h IN A 128.8.10.90 E.ROOT-SERVERS.NET. 5w6d16h IN A 192.203.230.10 I.ROOT-SERVERS.NET. 5w6d16h IN A 192.36.148.17 F.ROOT-SERVERS.NET. 5w6d16h IN A 192.5.5.241 ;; Total query time: 215 msec ;; FROM: roke.uio.no to SERVER: A.ROOT-SERVERS.NET. 198.41.0.4 ;; WHEN: Sun Feb 15 01:22:51 1998 ;; MSG SIZE sent: 17 rcvd: 436
Nous y avons mis juste l'essentiel, le champ SOA obligatoire, et un champ
qui �tablit la correspondance entre 127.0.0.1 et localhost
. Ils sont
tous les deux indispensables. Rien d'autre ne doit figurer dans ce fichier. Il
ne sera probablement jamais n�cessaire de le mettre � jour, � moins que
l'adresse du serveur de noms ou de hostmaster ne change.
@ IN SOA land-5.com. root.land-5.com. ( 199609203 ; Serial 28800 ; Refresh 7200 ; Retry 604800 ; Expire 86400) ; Minimum TTL NS land-5.com. 1 PTR localhost.
Nous trouvons ici le classique et obligatoire champ SOA ainsi que les
champs NS. Nous pouvons voir qu'il y a un serveur de noms secondaire
ns2.psi.net
. C'est comme �a que tout le monde devrait faire :
toujours avoir un serveur secondaire sur un site distant pour faire des
sauvegardes. Nous voyons �galement que le serveur primaire est land-5
,
qui assure tous les services, et que l'administrateur a utilis� des CNAME pour
faire �a (il aurait pu utiliser des champs A).
Comme vous pouvez voir d'apr�s le champ SOA, le fichier de zone a son
origine en land-5.com
, la personne � contacter est
root@land-5.com
. hostmaster
est une autre adresse souvent
utilis�e pour la personne � contacter. Le num�ro de s�rie est au format
obligatoire aaaammjj, avec le num�ro de s�rie dans la journ�e ajout� � la fin;
il s'agit certainement de la sixi�me version du fichier de zone pour la
journ�e du 20 septembre 1996. N'oubliez-pas que le num�ro de s�rie doit
obligatoirement augmenter avec le temps, ici il n'y a qu'un
chiffre pour le num�ro de s�rie dans la journ�e, si bien qu'apr�s 9
modifications il faudra attendre le lendemain pour modifier le fichier �
nouveau. On peut aussi utiliser deux chiffres au lieu d'un seul.
@ IN SOA land-5.com. root.land-5.com. ( 199609206 ; serial, todays date + todays serial # 8H ; refresh, seconds 2H ; retry, seconds 1W ; expire, seconds 1D ) ; minimum, seconds NS land-5.com. NS ns2.psi.net. MX 10 land-5.com. ; Primary Mail Exchanger TXT "LAND-5 Corporation" localhost A 127.0.0.1 router A 206.6.177.1 land-5.com. A 206.6.177.2 ns A 206.6.177.3 www A 207.159.141.192 ftp CNAME land-5.com. mail CNAME land-5.com. news CNAME land-5.com. funn A 206.6.177.2 ; ; Workstations ; ws-177200 A 206.6.177.200 MX 10 land-5.com. ; Primary Mail Host ws-177201 A 206.6.177.201 MX 10 land-5.com. ; Primary Mail Host ws-177202 A 206.6.177.202 MX 10 land-5.com. ; Primary Mail Host ws-177203 A 206.6.177.203 MX 10 land-5.com. ; Primary Mail Host ws-177204 A 206.6.177.204 MX 10 land-5.com. ; Primary Mail Host ws-177205 A 206.6.177.205 MX 10 land-5.com. ; Primary Mail Host ; {Ici 245 lignes ont �t� effac�es} ws-177250 A 206.6.177.250 MX 10 land-5.com. ; Primary Mail Host ws-177251 A 206.6.177.251 MX 10 land-5.com. ; Primary Mail Host ws-177252 A 206.6.177.252 MX 10 land-5.com. ; Primary Mail Host ws-177253 A 206.6.177.253 MX 10 land-5.com. ; Primary Mail Host ws-177254 A 206.6.177.254 MX 10 land-5.com. ; Primary Mail Host
Si vous examinez le serveur de noms de land-5, vous allez voir que les noms
sont de la forme ws_
nombre. Depuis les derni�res versions de
bind 4
, named
fait plus attention aux caract�res plac�s dans
les noms de domaines. Cela ne marcherait pas du tout avec bind-8, c'est pour
�a que j'ai remplac� les ``_'' (soulign�) par des ``-'' (tiret) pour l'exemple
dans ce HowTo.
Une autre chose qu'il faut noter est que les stations de travail n'ont pas de nom personnel, mais plut�t un pr�fixe suivit des deux derniers morceaux de leur adresse IP. Utiliser une telle convention simplifie grandement la maintenance, mais c'est un peu impersonnel, et �a peut agacer vos clients.
Nous voyons aussi que funn.land-5.com
est un alias pour
land-5.com
, mais en utilisant un enregistrement A
, pas un
CNAME
. C'est une bonne chose comme on l'a not� plus haut.
Les commentaires se trouvent juste apr�s le fichier.
@ IN SOA land-5.com. root.land-5.com. ( 199609206 ; Serial 28800 ; Refresh 7200 ; Retry 604800 ; Expire 86400) ; Minimum TTL NS land-5.com. NS ns2.psi.net. ; ; Servers ; 1 PTR router.land-5.com. 2 PTR land-5.com. 2 PTR funn.land-5.com. ; ; Workstations ; 200 PTR ws-177200.land-5.com. 201 PTR ws-177201.land-5.com. 202 PTR ws-177202.land-5.com. 203 PTR ws-177203.land-5.com. 204 PTR ws-177204.land-5.com. 205 PTR ws-177205.land-5.com. ; {Ici 245 lignes ont �t� effac�es} 250 PTR ws-177250.land-5.com. 251 PTR ws-177251.land-5.com. 252 PTR ws-177252.land-5.com. 253 PTR ws-177253.land-5.com. 254 PTR ws-177254.land-5.com.
La zone inverse est la partie de la configuration qui semble poser le plus
de probl�mes. Elle est utilis�e pour trouver le nom d'h�te d'une machine,
connaissant son adresse IP. Exemple : vous �tes un serveur IRC et vous
acceptez des connexions provenant de clients IRC. Cependant, comme vous �tes
un serveur IRC norv�gien, vous ne voulez accepter que les connexions venant de
Norv�ge ou des autres pays scandinaves. Ainsi, lorsqu'un client se connecte
chez vous, la biblioth�que C peut vous dire quelle est l'adresse IP du client,
puisque cette derni�re se trouve dans tous les paquets qui traversent le
r�seau. Ensuite, vous pouvez appeler une fonction connue sous le nom de
gethostbyaddr
qui va rechercher le nom d'une machine connaissant son
adresse IP. gethostbyaddr
va poser la question � un serveur de noms,
qui va alors faire une recherche de la machine dans le DNS. Supposons que la
connexion du client se fasse depuis ws_177200.land-5.com.
L'adresse IP
que la biblioth�que C fournit au serveur IRC est 206.6.177.200.
Pour
retrouver le nom de cette machine, il nous faut trouver
200.177.6.206.in-addr.arpa
. Le serveur de noms va donc d'abord trouver
les serveurs arpa.
, puis les serveurs in-addr.arpa.
, poursuivre
la recherche inverse par 206, puis 6 et finalement trouver le serveur pour la
zone 177.6.206.in-addr.arpa
� LAND-5. C'est ce dernier qui lui dira que
pour 200.177.6.206.in-addr.arpa
nous avons un champ ``PTR
ws_177200.land-5.com
'', ce qui veut dire que le nom qui va avec
206.6.177.200
est ws_177200.land-5.com
. Tout comme l'explication
de la r�solution de prep.ai.mit.edu
, ce sc�nario est un peu id�alis�.
Revenons � l'exemple du serveur IRC. Le serveur n'accepte que les
connexions venant des pays scandinaves, c'est-�-dire *.no
, *.se
,
*.dk
. Le nom ws_177200.land-5.com
ne correspond �videmment pas,
et le serveur va donc refuser la connexion. Si il n'existait pas de
r�solution inverse de 206.2.177.200
au travers de la zone
in-addr.arpa
, le serveur aurait �t� tout � fait incapable de trouver le
nom, et aurait d� se contenter de comparer 206.6.177.200
� *.no
,
*.se
et *.dk
, dont aucun ne correspond.
Certaines personnes vous diront que la r�solution de noms inverse n'est importante que pour les serveurs, ou pas importante du tout. Pas tant que �a : beaucoup de serveurs ftp, news, irc ou m�me certains http (Web) n'acceptent pas les connexions venant de machines dont ils ne peuvent retrouver le nom. C'est pourquoi la r�solution de noms inverse pour les machines est obligatoire.
Garder votre DNS en �tat de marche
En plus des t�ches normales, il y a une t�che de maintenance sp�ciale �
effectuer sur les serveurs de nom. Il s'agit de garder le fichier
root.hints
� jour. La fa�on la plus simple de le faire est d'utiliser
dig. Lancez d'abord dig sans argument, vous obtiendrez le fichier
root.cache
de votre propre serveur. Posez alors la m�me question � un
des serveurs de cette liste avec la commande dig @rootserver
. Vous
remarquerez que ce que vous obtenez ressemble �norm�ment � un fichier
root.hints
, avec quelques chiffres en plus. Ces chiffres
suppl�mentaires sont inoffensifs. Sauvez-le dans un fichier (dig
. @e.root-servers.net >root.hints.new
) et remplacez l'ancien fichier
root.hints
avec.
N'oubliez pas de relancer named
apr�s avoir remplac� ce fichier.
Al Longyear m'a envoy� ce script, qui peut �tre lanc� automatiquement pour
mettre � jour named.hints
. Lancez-le automatiquement � partir de la
crontab et vous pourrez oublier qu'il existe. Ce script suppose que l'alias de
mail `hostmaster' existe. Il faudra sans doute modifier ce fichier pour qu'il
fonctionne chez vous.
#!/bin/sh # # Met a jours les informations du cache du serveur de noms chaque mois. # Ce script est lanc� automatiquement par un cron. # # Original par Al Longyear # Mis a jour pour Bind 8 par Nicolai Langfeldt # Plusieurs erreurs d�couvertes par David A. Ranch # Test avec un ping sugg�r� par Martin Foster # ( echo "To: hostmaster <hostmaster>" echo "From: system <root>" echo "Subject: Mise a jour automatique du fichier root.hints" echo PATH=/sbin:/usr/sbin:/bin:/usr/bin: export PATH cd /var/named # Sommes nous connect�s ? Pingons un serveur de notre FAI case `ping -qnc some.machine.net` in *'100% packet loss'*) echo "PAS de connexion r�seau. root.hints NON mis � jour" echo exit 0 ;; esac dig @rs.internic.net . ns >root.hints.new 2>&1 case `cat root.hints.new` in *NOERROR*) # Ca a march� :;; *) echo "La mise a jour de root.hints a ECHOUE." echo "Voici la sortie de dig :" echo cat root.hints.new exit 0 ;; esac echo "Le fichier root.hints a �t� mis a jour et contient les informations 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� red�marr�, de cette mani�re, la mise a jour est compl�te." echo "L'ancien root.hints s'appelle maintenant /var/named/root.hints.old." ) 2>&1 | /usr/lib/sendmail -t exit 0
Certains d'entre vous ont remarqu�s que le fichier root.hints
est
aussi disponible via ftp depuis l'Internic. S'il vous pla�t, n'utilisez pas le
ftp pour mettre � jour le root.hints
, la m�thode ci dessus est bien
meilleur du point de vue de la nettiquette et de l'Internic.
Cette section �tait au d�part sur l'utilisation de bind-8 �crite par David E. Smith (dave@bureau42.ml.org). Je l'ai �dit�e pour refl�ter le nouveau nom de la section.
Il n'y a pas grand chose � faire, sinon, utiliser named.conf
au lieu
du named.boot
, or bind-8 est distribu� avec un script perl pour
convertir un named.boot
en named.conf
. Exemple de
named.boot
(vieux) pour un serveur qui ne sert que de cache :
directory /var/named cache . root.hints primary 0.0.127.IN-ADDR.ARPA 127.0.0.zone primary localhost localhost.zone
Depuis la ligne de commande, et depuis le r�pertoire
bind8/src/bin/named
(au cas o� vous avez r�cup�r� les sources; si vous
avez eu un paquetage binaire, le script se balade certainement dans le coin),
tapez :
./named-bootconf.pl < named.boot > named.conf
qui cr�e un nouveau named.conf
:
// generated by named-bootconf.pl options { directory "/var/named"; }; zone "." { type hint; file "root.hints"; }; zone "0.0.127.IN-ADDR.ARPA" { type master; file "127.0.0.zone"; }; zone "localhost" { type master; file "localhost.zone"; };
�a marche pour tout ce qui pouvait aller dans un named.boot
, mais,
il ne met pas toutes les nouveaut�s que bind-8 permet. Voici une version plus
compl�te d'un named.conf
qui fait la m�me chose, mais d'une fa�on plus
efficace :
// Voici le fichier de configuration de named (pour BIND 8.1 et ult�rieur). // Il devrait normalement �tre install� dans /etc/named.conf. // Le seul changement fait dans le named.conf d'origine (a part ce commentaire // :) est que la ligne directory a �t� d�comment�e, car j'ai d�j� les fichiers // de zone dans /var/named. options { directory "/var/named"; datasize 20M; }; zone "localhost" IN { type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "127.0.0.zone"; }; zone "." IN { type hint; file "root.hints"; };
Dans le r�pertoire bind8/src/bin/named/test
de la distribution de
bind8, vous trouverez tout �a, ainsi que des fichiers de zone que la majorit�
peuvent prendre et utiliser instantan�ment.
Les formats des fichiers de zone et du root.hints
sont les m�mes,
tout comme les commandes qui les mettent � jour.
Dans cette section, je passe en revue quelques-unes des questions les plus fr�quemment pos�es � propos du DNS et de ce HOWTO. Et je donne m�me les r�ponses ;-) Merci de bien lire cette section avant de m'�crire.
named
me r�clame un fichier named.boot
Vous vous �tes tromp�s de HowTo. allez voir l'ancienne version de ce HowTo, celle qui parle de bind 4, � www.math.uio.no/~janl/DNS/
Voici un indice : forward only;
. Vous aurez probablement aussi
besoin de mettre :
query-source port 53;
dans la partie ``options'' de votre named.conf
comme l'exemple 3 le
sugg�re
serveur qui ne fait que du cache.
www.busy.com
entre plusieurs
machines ?
Cr�ez plusieurs champs A pour www.busy.com et utilisez bind 4.9.3 ou une version plus r�cente, qui supporte les r�ponses � scrutation circulaire. Cela ne marchera pas avec des versions de bind ant�rieures.
Effacez rageusement le fichier root.hints
et cr�ez seulement les
fichiers de zone. Cela veut aussi dire que vous n'aurez pas � cr�er des
nouveaux fichiers hints tout le temps.
Si le serveur primaire a pour adresse 127.0.0.1, mettez une ligne comme
celle-ci dans le fichier named
.conf du serveur secondaire :
zone "linux.bogus" { type slave; file "sz/linux.bogus"; masters { 127.0.0.1; }; };
Vous pouvez mettre plusieurs serveurs ma�tres, ajoutez les sur la ligne masters en les s�parant par un ``;'' (point-virgule)
Il y a trois trucs a savoir :
Ici, je fais tourner named sur la machine qui fait du "Masquerading". J'ai
deux fichiers root.cache, un qui s'appelle root.cache.real et qui contient les
vrais noms des serveurs root, et l'autre qui s'appelle root.cache.fake qui
contient ceci~:
--------------
; root.hints.fake
; Ce fichier ne contient pas d'informations
--------------
Quand je me d�connecte, je copie le fichier root.hints.fake vers root.hints et
je relance named.
Quand je me connecte, je copie root.hints.real et je relance named.
Ces deux manoeuvres sont faites, respectivement, � partir de ip-down et ip-up.
Lorsque je suis d�connect�, named rajoute ceci au fichier messages apr�s la
premi�re requ�te concernant un nom de domaine qu'il ne conna�t pas~:
Jan 28 20:10:11 hazchem named[10147]: No root nameserver for class IN
Ce qui n'est pas tr�s g�nant.
�a marche tr�s bien dans mon cas. Je peux utiliser le serveur de noms pour
les machines locales lorsque je suis d�connect� du Net en �vitant les d�lais
introduits par les timeout li�s � la recherche des noms de domaine ext�rieurs.
Et lorsque je suis connect� au Net, les requ�tes concernant les noms de
domaines ext�rieurs marchent normalement.
J'ai pris l'habitude d'utiliser named sur toutes mes machines qui sont
seulement connect�es � Internet de fa�ons occasionnelles gr�ce � un modem. Le
serveur de noms n'agit qu'en tant que cache, il n'a aucune zone d'autorit� et
demande tout aux serveurs du fichier root.cache. Comme d'habitude avec une
Slackware, named est d�marr� avant nfsd et mountd.
Avec l'une de mes machines (un portable Libretto 30), j'ai eu le probl�me
suivant~: de temps en temps, je pouvais monter ses disques depuis un autre
syst�me connect� sur mon LAN local, mais la plupart du temps, �a ne marchait
pas. Il se passait la m�me chose que ce soit en utilisant PLIP, une carte
Ethernet PCMCIA ou PPP avec une interface s�rie.
Apr�s quelques temps de r�flexions et d'exp�riences, j'ai d�couvert que named
emp�chait nfsd et mountd de s'enregistrer avec portmapper au d�marrage (Je
d�marre ces d�mons au boot d'habitude). Le fait de lancer named apr�s nfsd
et mountd �liminait ce probl�me compl�tement
Comme il n'y a pas de d�savantages � modifier ainsi la s�quence de boot de
cette fa�on, j'encourage tout le monde � en faire de m�me pour �viter des
probl�mes potentiels.
Le cache est enti�rement stock� en m�moire, il n'est pas �crit sur
le disque. Chaque fois que vous tuez named
, le cache est perdu. Il
n'y a aucun moyen de contr�ler le cache. named
g�re le cache
selon quelques r�gles simples, et c'est tout. Vous ne pouvez pas contr�ler
le cache ou sa taille en aucune mani�re. Si vous voulez vraiment le faire,
vous pouvez le faire en bricolant le code de named
. Mais ce n'est pas
recommand�.
named
sauvegarde le contenu du cache entre deux
red�marrage ? Puis-je le forcer � le faire ?
Non, named
ne sauve pas la contenu du cache lorsqu'il
meurt. Cela signifie que le cache est reconstruit � partir de z�ro chaque
fois que vous tuez puis relancez named
. Il n'y a aucun moyen
de forcer named
� sauvegarder le contenu du cache dans un fichier.
Si vous voulez vraiment le faire, vous pouvez le faire en bricolant le code
de named
. Mais, encore une fois, ce n'est pas recommand�.
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.
Documentation et outils
La Vraie Documentation existe. En ligne et imprim�e. Il faut absolument la lire si vous voulez devenir un administrateur DNS du plus haut niveau. Pour ce qui est de la documentation imprim�e, le livre standard est DNS and BIND de C. Liu et P. Albitz chez O'Reilly & Associates, Sebastopol, CA, ISBN 0-937175-82-X. Je l'ai lu, c'est excellent, la deuxi�me �dition est bas�e sur bind 4, la troisi�me sur bind 8. Il y a aussi un chapitre sur le DNS dans TCP/IP Network Administration, de Craig Hunt chez O'Reilly..., ISBN 0-937175-82-X. Un autre passage oblig� pour une Bonne administration de DNS (ou Bonne n'importe quoi, d'ailleurs) est Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig :-) Disponible sous la r�f�rence ISBN 0688052304 entre autres.
En ligne, vous trouverez des trucs sur DNS Resources Directory, www.isc.org/bind.html; Une FAQ, un manuel de r�f�rence (BOG; Bind Operations Guide) aussi bien que des papiers, des descriptions de protocoles et des trucs sur le service DNS (ces documents, ainsi que la majorit�, sinon la totalit� des RFC mentionn�es ci-dessous font partie de la distribution de bind). Je n'ai pas lu la plupart de ces trucs-l�, c'est pourquoi je ne suis pas un Grand Administrateur de DNS. Arnt Gulbrandsen, � l'inverse, a lu le BOG et n'en dit que du bien :-). Le newsgroup comp.protocols.tcp-ip.domains parle de DNS. En compl�ment, il y a un certain nombre de RFC sur le DNS, les plus importantes sont certainement celles-ci :
A. Gulbrandsen, P. Vixie, A DNS RR for specifying the location of services (DNS SRV), October 1996
Y. Rekhter, R. Moskowitz, D. Karrenberg, G. de Groot, E. Lear, Address Allocation for Private Internets, 02/29/1996.
D. Barr, Common DNS Operational and Configuration Errors, 02/28/1996.
B. Barr Errors in RFC 1912, this is available at www.cis.ohio-state.edu/~barr/rfc1912-errors.html
A. Romao, Tools for DNS debugging, 11/03/1994.
C. Farrell, M. Schulze, S. Pleitner, D. Baldoni, DNS Encoding of Geographical Location, 11/01/1994.
R. Ullmann, P. Mockapetris, L. Mamakos, C. Everhart, New DNS RR Definitions, 10/08/1990.
P. Mockapetris, Domain names - implementation and specification, 11/01/1987.
P. Mockapetris, Domain names - concepts and facilities, 11/01/1987.
M. Lottor, Domain administrators operations guide, 11/01/1987.
M. Stahl, Domain administrators guide, 11/01/1987.
C. Partridge, Mail routing and the domain system, 01/01/1986.