Next Previous Contents

6. Configurer le dns. (COMPLET DNS/PRIMAIRE SECT TEST A COMPLETER)

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.

6.1 Préparer l'implantation du dns avec les fichiers de base.

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

search

ou l'on indique sortilege.net puisqu'il sagit de notre domaine.

nameserver

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 :)

6.2 Preparer l'implantation du dns avec une distribution.

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 :)

6.3 Installer un dns primaire.

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

Le fichier named.boot

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.

directory

Indique à named ou se trouve le repertoire de configuration de named.

cache

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

primary

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.

forwarders

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

le fichier /var/named/root.cache

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.

l'entete de /var/named/zone/sortilege.net et /var/named/zone/sortilege.net.rev

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.

Le fichier /var/named/zone/sortilege.net.rev

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".")

le fichier /var/named/sortilege.net

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.

6.4 Et si je veux installer un dns secondaire ?

A FAIRE DANS LE CADRE D'UN NOUVEAU DOCUMENTS SI J'ARRIVE A TERMINER CELUI LA UN JOUR.

6.5 Lancer le dns

Voici les commandes de base pour lancer le dns.

ndc start

pour lancer le dns

ndc stop

pour arreter le dns

ndc restart

pour relancer le dns

ndc status

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.

Faire en sorte que notre dns soit lancer à chaque demarrage.

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.

6.6 Tester notre dns.

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
>

Faire CTRL+D pour quitter. Voila notre dns est en fonction.

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.


Next Previous Contents