Page suivantePage pr�c�denteTable des mati�res

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

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

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

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


// Fichier de config pour un serveur de noms qui ne fait que du cache
options {
 directory "/var/named";
 // Enlever les commentaires peut vous aider si vous avez a passer a
 // travers un firewall et que �a ne marche pas :
 // query-source port 53;
};
zone "." {
 type hint;
 file "root.hints";
};
zone "0.0.127.in-addr.arpa" {
 type master;
 file "pz/127.0.0";
};

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

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

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


; Il se peut qu'il y ait quelques commentaires ici si vous avez d�j� ce
; fichier. de toutes fa�on, ce sont des commentaires, ils ne sont pas
; important du tout.
.                       6D IN NS        G.ROOT-SERVERS.NET.
.                       6D IN NS        J.ROOT-SERVERS.NET.
.                       6D IN NS        K.ROOT-SERVERS.NET.
.                       6D IN NS        L.ROOT-SERVERS.NET.
.                       6D IN NS        M.ROOT-SERVERS.NET.
.                       6D IN NS        A.ROOT-SERVERS.NET.
.                       6D IN NS        H.ROOT-SERVERS.NET.
.                       6D IN NS        B.ROOT-SERVERS.NET.
.                       6D IN NS        C.ROOT-SERVERS.NET.
.                       6D IN NS        D.ROOT-SERVERS.NET.
.                       6D IN NS        E.ROOT-SERVERS.NET.
.                       6D IN NS        I.ROOT-SERVERS.NET.
.                       6D IN NS        F.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.     5w6d16h IN A    192.112.36.4
J.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.10
K.ROOT-SERVERS.NET.     5w6d16h IN A    193.0.14.129
L.ROOT-SERVERS.NET.     5w6d16h IN A    198.32.64.12
M.ROOT-SERVERS.NET.     5w6d16h IN A    202.12.27.33
A.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.4
H.ROOT-SERVERS.NET.     5w6d16h IN A    128.63.2.53
B.ROOT-SERVERS.NET.     5w6d16h IN A    128.9.0.107
C.ROOT-SERVERS.NET.     5w6d16h IN A    192.33.4.12
D.ROOT-SERVERS.NET.     5w6d16h IN A    128.8.10.90
E.ROOT-SERVERS.NET.     5w6d16h IN A    192.203.230.10
I.ROOT-SERVERS.NET.     5w6d16h IN A    192.36.148.17
F.ROOT-SERVERS.NET.     5w6d16h IN A    192.5.5.241

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

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

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


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

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


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

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

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

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


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

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

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

/etc/nsswitch.conf

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


hosts: files dns

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

/etc/host.conf

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


order hosts,bind

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

3.1 D�marrer named.

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

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

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

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

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

$ nslookup
Default Server: localhost
Address: 127.0.0.1>

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

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

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

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

Si vous r�essayez, vous obtiendrez ceci :

> pat.uio.no
Server: localhost
Address: 127.0.0.1
Non-authoritative answer :
Name: pat.uio.no
Address: 129.240.2.50

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

3.2 Le rendre encore meilleur

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


 forward first;
 forwarders {
 10.0.0.1;
 10.1.0.1;
 };

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

3.3 F�licitations !

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


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:34