Administration UNIX - Configuration d'un serveur DNS


1. Théorie

2. Le fichier rc.conf

3. Le fichier named.conf et les fichiers de zones

3.1. Introduction
3.2. Chemin du répertoire de configuration
3.3. Zone root
3.4. Zone locale
3.5. Zone de conversion nom vers adresse IP
3.6. Zone de conversion adresse IP vers nom
3.6. Fichier complet named.conf

4. Les fichiers resolv.conf, host.conf et hosts

5. Teste du serveur DNS

6. Plus d'informations

7. Copyright


1. Théorie back

Qu'est-ce qu'un DNS (Domain Name System) ? hé bien, c'est un service qui permet de convertir un nom de machine en une adresse IP. Par exemple, www.adresse.fr est le FQDN (Fullty Qualified Domain Name) de la machine www sur le domaine adresse.fr, et son adresse IP est 192.168.0.154. Un serveur DNS sert donc aux humains, puisqu'il est plus facile de retenir un nom qu'une suite de numéros.

Ce document va donc traiter de l'installation de ce type de serveur, et le serveur utilisé sera BIND v8. Si vous possédez la 4, vous feriez mieux de vous mettre à jour :-).


2. Le fichier rc.conf back

Le serveur BIND est lancé à l'aide de la commande named. Pour que votre serveur soit chargé au démarrage de votre machine, il faut modifier le fichier /etc/rc.conf en lui ajoutant ceci:

# Lancement du serveur DNS
named_enable="YES"
named_program="named"

Une fois ceci fait, il faut configurer le serveur BIND lui-même.


3. Le fichier named.conf et les fichiers de zones back

3.1. Introduction

Il faut maintenant modifier le fichier /etc/namedb/named.conf.

Ce fichier se présente sous la forme d'une succession de paragraphes, le premier servant à configurer le chemin du répertoire de base de configuration de BIND. Les autres définissent chacun une zone. Chaque zone possède ses propres paramètres, ainsi que son propre fichier de configuration dans lequel on définis les adresses des machines contenues dans cette zone (une zone définie généralement un domain).

3.2. Chemin du répertoire de configuration

Nous allons donc d'abord configurer le premier paragraphe comme ceci:

options {
	directory "/etc/namedb";
};

Nous pouvons maintenant configurer les différentes zones.

3.3. Zone root

La première zone à configurer est la zone "root", qui est en fait un pointeur vers un fichier contenant les adresses des serveurs DNS qui régissent l'univers d'Internet. Ces serveurs sont ceux qui sont utilisés pour maintenir à jour les tables de conversion adresse IP vers nom, et inversement. Le deuxième paragraphe est donc le suivant:

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

3.4. Zone locale

La deuxième zone est la zone locale, celle qui permet à la machine de convertir les adresses quand elle parle d'elle-même à elle-même. Voici:

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

Comme vous le voyez, la ligne 3 indique un fichier nommé 127.0.0 qu'il va vous falloir créer dans le répertoire /etc/namedb. Ce fichier contiendra ceci:

@	IN	SOA	votre_domaine.fr. root.votre_domaine.fr. (
		1	; Serial
		8H	; Refresh
		2H	; retry
		1W	; Expire
		1D)	; Minimum TTL
		NS	vote_domaine.fr.
1		PTR	localhost.

3.5. Zone de conversion nom vers adresse IP

Revenons maintenant à votre fichier /etc/namedb/named.conf. Définissions maintenant la zone qui va correspondre à votre_domaine.fr:

zone "votre_domaine.fr" {
	notify no;
	type master;
	file "votre_domaine.fr";
};

La ligne notify no est très importante, c'est elle qui dira si oui ou non vous souhaitez informer les serveurs DNS root d'une éventuelle mise à jour dans leurs tables de correspondance adresse IP - nom de machine. Si vous exécutez votre serveur DNS sur une machine qui est reliée à Internet par modem, il va de soit que ce n'est pas utile (le domaine que vous allez créer sera fictif). Là encore, il faut créer un fichier /etc/namedb/votre_domaine.fr:

@	IN	SOA	votre_machine.votre_domaine.fr. root.votre_machine.votre_domaine.fr. (
			199802151	; serial, todays date + todays serial #
			8H		; refresh, seconds
			2H		; retry, seconds
			1W		; expire; seconds
			1D)		; minimum, seconds
;
		TXT	"Ceci est un descriptif de votre domaine"
		NS	votre_machine.votre_domaine.fr.
		MX	10 votre_serveur_de_mail.votre_domaine.fr. ; Primary Mail Exchanger

localhost			A	127.0.0.1
votre_machine.votre_domaine.fr.	A	192.168.0.1
				HINFO	"Descriptif de votre_machine"
machine2.votre_domaine.fr.	A	192.168.0.2
machine3.votre_domaine.fr.	A	192.168.0.3

Ce fichier servira donc pour la conversion des noms de machines en adresses IP. Si vous comptez utiliser un domaine virtuel (qui n'utiliseras donc pas d'adresses IP routables sur Internet), il vaut mieux utiliser des adresses IP ... non-routables. Utilisez pour cela des adresses du type 192.168.x.x.

Si votre machine possède déjà une adresse IP, et qu'elle n'est pas de ce type, vous devriez la modifier. Editer pour cela le fichier /etc/rc.conf, et modifiez la ligne contenant ifconfig_interface="inet adresse_IP netmask 255.255.255.0" en remplaçant adresse_IP par une adresse du type décrit plus haut. Il faut que cette adresse soit en concordance avec le fichier de zone de votre serveur DNS. De même pour la ligne hostname="votre_machine.votre_domaine.fr".

Revenons à ce fichier de zone. La ligne contenant MX indique le nom du serveur de mail principal de votre domaine. Les lignes à partir de localhost sont les correspondances noms de machines - adresses IP. Le champ HINFO est optionnel, il sert à afficher une description de la machine correspondante lors d'un certain type de requête effectuée avec nslookup. Une fois ajoutées toutes vos machines dans ce fichier, nous pouvons retourner au fichier /etc/named.conf.

3.6. Zone de conversion adresse IP vers nom

Il ne reste plus qu'une zone à ajouter, la zone permettant de convertir les adresses IP en noms de machines:

zone "0.168.192.IN-ADDR.ARPA" {
	notify no;
	type master;
	file "192.168.0";
};

Créez le fichier /etc/namedb/192.168.0:

@	IN	SOA	votre_machine.votre_domaine.fr. root.votre_machine.votre_domaine.fr. (
			1998021151	; Serial, todays date + todays serial
			8H		; Refresh
			2H		; Retry
			1W		; Expire
			1D)		; Minimum TTL
			NS		votre_domaine.votre_domaine.fr.

1		PTR	votre_machine.votre_domaine.fr.
2		PTR	machine2.votre_domaine.fr.
3		PTR	machine3.votre_domaine.fr.

Ce fichier suit à peu près la même logique que le fichier de zone votre_domaine.fr.

Vous pouvez souvegarder maintenant la configuration de named.conf et des autres fichiers, votre serveur DNS est maintenant configuré.

Rechargez les fichiers de configuration du daemon named avec la commande:

prompt$ killall -1 named

3.6. Fichier complet named.conf

Vous pouvez trouver le fichier named.conf ici http://www.chez.com/gomor/Fichiers/dns/named.conf et le fichier de zones ici http://www.chez.com/gomor/Fichiers/dns/zones.txt, avec ma configuration.


4. Les fichiers resolv.conf, host.conf et hosts back

Il faut maintenant dire à vos machines où se trouve le serveurs DNS pour pouvoir l'interroger correctement, lors d'une requête nslookup par exemple.

Editer le fichier /etc/resolv.conf et mettez-y ces deux lignes:

domain votre_domaine.fr
nameserver 192.168.0.1

Puis le fichier /etc/host.conf, qui va servir à dire comment traîter une requête de conversion d'adresse, à savoir soit en interrogeant d'abord le contenu du fichier /etc/hosts, soit en interrogeant le serveur DNS, soit en interrogeant le serveur NIS. Ce fichier décrit donc dans quel ordre traîter la requête. Mettez-y ceci:

# D'abord essayer /etc/hosts
hosts
# Ensuite le serveur DNS
bind

Pour finir, regardez ce que contient le fichier /etc/hosts de vos machines ; il ne faut pas qu'il y ait de contradiction avec le serveur DNS, donc mettez simplement ceci dans ce fichier:

127.0.0.1 localhost

5. Teste du serveur DNS back

Pour tester si votre serveur DNS fonctionne correctement, vous allez utiliser la commande nslookup (oui, je vous en parle depuis le début ;-)).

Tapez donc nslookup au prompt. Il doit vous afficher ceci:

Default Server: votre_machine.votre_domaine.fr
Address: 192.168.0.1
>

Le prompt > qui s'affiche vous permet d'entrer des commandes. Saisissez par exemple, pour tester la conversion nom de machine vers adresse IP: machine2.votre_domaine.fr. Il doit vous afficher:

Server: votre_machine.votre_domaine.fr
Address: 192.168.0.1

Name: machine2.votre_domaine.fr
Address: 192.168.0.2

>

Essayez ensuite la conversion adresse IP vers nom de machine en tapant par exemple: 192.168.0.3. Il doit vous afficher:

Server: votre_machine.votre_domaine.fr
Address: 192.168.0.1

Name: machine3.votre_domaine.fr
Address: 192.168.0.3

>

Si tout va bien, c'est parfait, vous pouvez quitter nslookup avec la commande exit. Autrement, relisez attentivement cette documentation, et si le problème persiste, n'hésitez pas: gomor@gomor.org .

Pour plus d'informations concernant la commande nslookup, vous pouvez taper: man nslookup, c'est très instructif.


6. Plus d'informations back

Pour plus d'informations sur la configuration d'un serveur DNS, vous pouvez consulter le HowTo Linuxien sur disponible sur http://www.linuxstart.com/ (si je ne m'abuse). Pour savoir comment marche exactement la conversion de noms sur Internet, vous pouvez lire les RFC http://www.chez.com/gomor/Fichiers/dns/rfc1034.txt et http://www.chez.com/gomor/Fichiers/dns/rfc1035.txt .


7. Copyright back

Ce document est fournis "tel qu'en l'état" par l'auteur (gomor@gomor.org) et il n'est donné aucune garantie, implicite ou explicite, quant à son utilisation commerciale, professionnelle ou autre.

L'auteur ne peut en aucun cas être tenu pour responsable de quelque dommage ou préjudice direct, indirect, secondaire ou accessoire (y compris les pertes financières dues au manque à gagner, à l'interruption d'activités, ou la perte d'informations et autres) découlant de l'utilisation de la documentation ou de l'impossibilité d'utiliser celle-ci, et dont l'utilisateur accepte l'entière responsabilité.

Par ailleurs, ce document peut être copier partiellement ou entièrement, à condition que l'auteur soit cité, et que son adresse eMail (gomor@gomor.org) soit donnée, dans cette copie.


Dernière mise à jours: Thu Nov 8 21:28:07 CET 2001