Comme nous venons de le voir il est difficile d'imaginer oublier de mettre en place un dns. Certes pour ce qui concerne internet, notre fournisseur en dispose d'un et nous pouvons nous ratacher à lui. Mais pour ce qui concerne notre réseau c'est une paire de manche.
VERSION des produits necessaires : un package BIND 4.x (Ne pas utiliser BIND 8 dont la configuration differe).
Avant de partir dans la configuration du dns configurons notre serveur pour utiliser notre futur dns.
Premier fichier à preparer dire ou se trouve le dns :
-rw-r--r-- 1 root root 259 Sep 29 21:16 /etc/resolv.conf # # /etc/resolv.conf # # search sortilege.net nameserver 192.168.1.1
ou l'on indique sortilege.net puisqu'il sagit de notre domaine.
ou l'on indique 192.168.1.1 puisqu'il sagit de l'adresse ip de notre machine qui fait tourner le serveur dns.
Maintenant nous allons lui indiquer nos preferences. En effet dans les notions sur le dns nous avions signalé qu'avant l'on utilisait un fichier pour faire la correspondance entre adresse IP et nom. Ce fichier existe toujours et nous l'avons meme utilisé, il sagit du fichier host. Nous allons donc indiquer à notre poste d'utiliser en priorité le fichier host et si il n'arrive pas à trouver la correspondance alors seulement de faire appels au dns.
-rw-r--r-- 1 root root 26 Sep 20 19:06 /etc/host.conf #/etc/host.conf order hosts bind multi on
Nous voila maintenant pret à passer à l'attaque :)
Configurer les 2 fichiers avec une distribution n'est pas tres difficile. host.conf et configuré ainsi de base dans 99% des distributions et pour resolv.conf :
Aller sur Administration du système
Aller sur Configurater le réseau
Aller sur Configuration du serveur de nom
vous allez voir apparaitre :
x x
x Souhaitez-vous avoir accès à un serveur de x
x noms? x
x x
tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu
x < Oui > < Non > x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
Aller sur oui
x x
x Liste des adresses IP: x
x :192.168.1.1 : x
x x
x Liste des domaines: x
x :sortilege.net : x
x x
tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu
x < Continuer > < Annuler > x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
Remplir liste des adresses IP avec l'adresse IP du serveur
Remplir la liste des domaines avec notre domaine.
Continuer puis vous quittez YaST.
fini, passons au choses serieuses :)
Pour installer notre dns nous aurrons besoin d'une information tres importante. Les adresses IP du dns de notre fournisseur d 'acces Internet. Pour l'exemple nous utiliserons les valeurs : 194.2.0.20 et 194.2.0.50
Commencons par le fichier que gere named (Nom du programme qui s'occupe du dns).
-rw-r--r-- 1 root root 465 Oct 11 09:49 /etc/named.boot ; etc/named.boot ; fichier de configuration du dns. ; directory /var/named cache . root.cache primary sortilege.net zone/sortilege.net primary 1.168.192.IN-ADDR.ARPA zone/sortilege.net.rev forwarders 194.2.0.20 194.2.0.50
IMPORTANT : Vous remarquerez que dans le fichier named.boot l'on utilise traditionellement des ; a la place des # pour les commentaires.
Indique à named ou se trouve le repertoire de configuration de named.
Cette ligne va nous permettre d'indiquer au dns comment contacter les domaines de premier niveau. En verité nous ne en servirons pas. Pourquoi ? tout simplement parceque notre fai dispose d'un dns qui sait deja faire tout cela pour nous. Alors pourquoi nous fatiguer ? Nous sommes tout de meme obliger de le specifier dans named.boot meme si nous verrons plus loin que le fichier est vide
Il y a 2 lignes primary elles indiquent les fichiers de configuration pour le domaine dont nous avons la charge. Pourquoi 2 ? parcequ'il faut un dns pour convertir une adresse ip en nom et un pour convertir le nom en ip.
la ligne forwarders est elle tres importantes. Elle permet de renvoyer toutes les demandes de conversion d'adresse qui ne concerne pas notre réseau local vers le dns de notre fai. Pour cela il suffit d'indiquer forwarders suivit des adresses ip du dns de notre fai.
Avant de continuer jettons un coup d'oeil sur les 2 lignes primary pour bien les comprendre.
primary sortilege.net zone/sortilege.net
Indique qu'il sagit d'un serveur indique le nom du domaine indique le
primaire dont nous avons la nom du fichier contenant
charge les informations pour notre
réseau local
La deuxieme ligne primary est plus complexe en apparence. Néanmoins pas d'affolement c'est juste une question technique. Elle permet de transformer une adresse ip en nom.
primary 1.168.192.IN-ADDR.ARPA zone/sortilege.net.rev
Nous retrouvons la definition l'adresse ip du domaine sous nom du
comme serveur primaire une forme particuliere (cf en dessous) fichier contenant les
pour notre réseau local
L'adresse ip dans cette ligne est présentée sous une forme etrange. Regardez bien 1.168.192 Cela devrait vous rappelez qquelque chose non ?
C'est en effet l'adresse ip de notre domaine mais inversée. C'est necessaire pour que notre dns fonctionne. Comme il est tout aussi necessaire de terminer l'adresse ip par .IN-ADDR.ARPA
Voici un fichier qui pour notre type de dns sera particulierement agréable à configurer.
-rw-r--r-- 1 root root 2766 Oct 11 09:53 /var/named/root.cache # # FICHIER VIDE #
Bizarre il est vide ? Pourquoi tout simplement parceque nous renvoyons toutes les demandes qui ne concernent pas notre réseau local vers le dns de notre fai. C'est donc a lui de se debrouiller pour nous trouver une solution. Nous le laisserons donc vide.
Les 2 fichiers ont une structure grosso modo identique. Il sont constitués de commandes (que l'on nomme RR pour Resource Record). Les 2 disposent d'une entete permetant d'indiquer des parametres. Je ne vais pas entrer dans les details de maniere précise :
Voyons donc cette entete :
@ IN SOA polgara.sortilege.net. root.sortilege.net. (
199811301 ; serial, todays date + todays
28800 ; refresh, seconds
7200 ; retry, seconds
3600000 ; expire, seconds
86400 ) ; minimum, seconds
NS polgara.sortilege.net.
MX 5 polgara
Il sagit d'indiquer ici que nous sommes la racine et le proprietaire du domaine que nous utilisons, en l'occurence sortilege.net. Le @ marque justement le fait que nous soyons la racine.
@ IN SOA polgara.sortilege.net. root.sortilege.net.
RR racine RR indiquant que Nom du serveur Adresse Email de la
nous sommes responsable personne qui gere
du domaine en question. le dns
Cette ligne permet d'indiquer le nom du serveur dns ainsi que l'email de la personne qui gere le dns pour les erreurs. Vous remarquez que la forme de l'adresse email de la personne qui gere le dns n'est pas standard. En effet en lieu et place du @ traditionel nous trouvons un point. Pas d'affolement c'est juste la norme pour un fichier de description de réseau.
Les valeurs qui sont entre ( ) sont utilisées entre autre lorsque l'on place un dns secondaire. Ce qui n'est pas notre cas. Donc vous pouvez les recopier tels que.
NS polgara.sortilege.net. Cette ligne permet d'indiquer au dns,le nom (et donc l'adresse :-) du serveur dns.
IMPORTANT : Lorsque l'on travaille sur les fichiers du dns, il faut se souvenir que : LORSQUE L'ON ECRIT LE NOM COMPLET IL DOIT TOUJOURS SE TERMINER PAR UN '. ' ET LORSQUE L'ON N'ECRIT QUE LE NOM D'HOTE IL NE DOIT JAMAIS Y AVOIR DE '.' A LA FIN. C'EST UNE DES PRINCIPALES CAUSES D'ERREUR LORSQUE L'ON MET EN PLACE UN DNS.
MX 5 polgara
Cette ligne utilise un RR MX. A quoi sert il ? Simplement a indiquer le nom de l'ordinateur qui fait tourner le serveur de courrier. En effet le dns et le courrier ont des élèments communs au niveau configuration. A noter que je peux ecrire mx 5 polgara.sortilege.net. A condition de ne pas oublier le point à la fin. C'est la meme chose.
C'est le fichier qui permetra au dns de repondre si il a besoin de connaitre l'adresse ip d'un nom.
-rw-r--r-- 1 root root 2766 Oct 11 09:53 /var/named/sortilege.net.rev
@ IN SOA polgara.sortilege.net. root.sortilege.net. (
199811301 ; serial, todays date + todays
28800 ; refresh, seconds
7200 ; retry, seconds
3600000 ; expire, seconds
86400 ) ; minimum, seconds
NS polgara.sortilege.net.
1 PTR polgara.sortilege.net.
2 PTR proxy
3 PTR www
20 PTR merlin.sortilege.net.
21 PTR dragon
22 PTR gandal.sortilege.net.
23 PTR polgara.sortilege.net.
Ce fichier est en fait tres simple. je ne reviens pas sur l'entete puisque nous en avons parlé juste avant. Pour chaque adresse ip nous placons :
l'adresse ip d'hote le rr PTR puis le nom d'hote ou le nom d'hote.nom.de.domaine.
(En pensant à terminer par un point".")
C'est le fichier qui permetra au dns de repondre un nom lorsque il recevra une adresse IP.
-rw-r--r-- 1 root root 2766 Oct 11 09:53 /var/named/sortilege.net
@ IN SOA polgara.sortilege.net. root.sortilege.net. (
199811301 ; serial, todays date + todays
28800 ; refresh, seconds
7200 ; retry, seconds
3600000 ; expire, seconds
86400 ) ; minimum, seconds
NS polgara.sortilege.net.
MX 5 polgara
polgara IN A 192.168.1.1
news CNAME polgara
mail CNAME polgara.sortilege.net.
proxy IN A 192.168.1.2
MX 5 polgara
www IN A 192.168.1.3
MX 5 polgara
merlin IN A 192.168.1.20
MX 5 polgara
dragon IN A 192.168.1.21
MX 5 polgara
gandalf IN A 192.168.1.22
MX 5 polgara
belgarath IN A 192.168.1.23
MX 5 polgara
Le fichier ressemble beaucoup au précendant. Il y juste quelques differences :
Chaque hote est présenté par une ou plusieurs lignes. Il commence obligatoirement par :
nom de l'hote le rr IN A puis l'adresse IP
Pour les poste clients vous pouvez ajouter le rr MX pour eviter un eventuel envoi de courrier au postes clients. Ainsi tout mail ayant pour nom de domaine celui d'un hote serait renvoyé au serveur.
Vous notez aussi qu'en dessous de l'enregistrement du serveur nous ajoutons des RR cname. A quoi vont ils servir ? Tout simplement a creer des sortes d'alias. Avec eux a chaque fois que notre dns recevra une demande pour mail.sortilege.net il repondra par l'adresse de polgara. Cela nous permetra par la suite de faire passer par exemple un service (comme le mail) sur une autre machine sans avoir à aller modifier les postes clients.
J'ai volontairement placé des fois le juste le nom d'hote et d'autres fois le nom d'hote+domaine+point pour bien vous rappeler de faire attention. En effet c'est une des causes les plus frequentes d'erreur dans la mise en place d'un dns.
Il y a également d'autres rr qui pourront vous aider dans la gestion et l'evolution de votre réseau. Je vous conseille de vous reportez (lorsque vous commencerez a bien connaitre le sujet) aux livres indiqués plus bas.
A FAIRE DANS LE CADRE D'UN NOUVEAU DOCUMENTS SI J'ARRIVE A TERMINER CELUI LA UN JOUR.
Voici les commandes de base pour lancer le dns.
pour lancer le dns
pour arreter le dns
pour relancer le dns
indique si le dns est déja en fonction
Commencons par lancer notre dns :
merlin:/root # ndc start Name Server Started
Le dns enregistre ses messages d'erreurs dans /var/log/messages, si l'on va regarder vous devriez trouver quelque chose dans le genre
polgara:~ # tail /var/log/messages Oct 26 03:42:09 merlin named[2202]: starting Oct 26 03:42:09 merlin named[2202]: cache zone "" loaded (serial 0) Oct 26 03:42:09 merlin named[2202]: primary zone "1.168.192.IN-ADDR.ARPA" loaded (serial 199810111) Oct 26 03:42:09 merlin named[2202]: primary zone "sortilege.net" loaded (serial 199811301) Oct 26 03:42:09 merlin named[2203]: Ready to answer queries.
Si il y a une erreur de syntaxe dans vos fichiers de configuration les messages ressembleront plus à :
Oct 26 03:47:57 merlin named[2236]: starting Oct 26 03:47:57 merlin named[2236]: cache zone "" loaded (serial 0) Oct 26 03:47:57 merlin named[2236]: sortilege.net.rev: Line 9: Unknown type: PT. Oct 26 03:47:57 merlin named[2236]: sortilege.net.rev: line 9: database format error (PT) Oct 26 03:47:57 merlin named[2236]: primary zone "1.168.192.IN-ADDR.ARPA" rejected due to errors (serial 199810111) Oct 26 03:47:57 merlin named[2236]: primary zone "sortilege.net" loaded (serial 199811301) Oct 26 03:47:57 merlin named[2237]: Ready to answer queries.
Nous verrions qu'il y a une erreur dans le fichier sortilege.net.rev à la ligne 9 Il ne nous resterait plus qu'a editer le fichier, corriger, puis relancer le dns.
polgara:~ # ndc restart Name Server ReStarted
Le Dns DOIT TOUJOURS etre relancé apres une modification des fichiers de configuration.
Consultez la documentation sur les procedures d'initialisation disponible http://www.linux-france.com
Sous SuSE pour que le dns soit lancé à chaque demarrage du système aller dans le fichier /etc/rc.config
-rw-r--r-- 1 root root 24663 Jul 3 22:46 rc.config chercher la ligne : # start the named (package bind)? You have to configure the named first, # before you can start it (man named). # START_NAMED=yes Mettre yes à la place de no puis sauver.
Le programme nslookup va nous permettre de tester le dns.
polgara:~ # nslookup Default Server: polgara.sortilege.net Address: 192.168.1.1 >
Il attend maintenant nos questions.
Nous n'avons plus qu'a saisir les adresses ip de notre réseau et les noms de notre réseau pour voir si il fait bien les conversions :
> 192.168.1.20 Server: polgara.sortilege.net Address: 192.168.1.1 Name: merlin.sortilege.net Address: 192.168.1.20 > gandalf Server: polgara.sortilege.net Address: 192.168.1.1 Name: gandalf.sortilege.net Address: 192.168.1.22 >
N'hesitez pas à consulter les documentations annexes pour avoir plus d'info. N'oubliez pas que je ne vous donne que les commandes de base. Apres c'est à vous de faire l'effort de lire des documents specifiques à chaque domaine pour bien comprendre comment et pourquoi il faut faire tels ou tels chose.