1. G@ss@m@ Page 1
CONFIGURATION DNS SOUS LINUX
(FEDORA 11)
Serveur DNS
Lorsque le nombre de machines devient important sur un réseau local, il est
difficile et peu significatif de les identifier par leur adresse IP. Une première
méthode consiste à utiliser un fichier hosts avec les traductions d’adresses en
dur, mais cette méthode n’est pas souple, en effet, il faut tenir un fichier texte
à jour par machine, le moindre changement sur le réseau devant être répercuté
partout. C’est là qu’un serveur DNS intervient, celui-ci va s’occuper de traduire
les adresses du réseau en quelque chose de plus humain. Par exemple
j’accèderai à mon serveur Fedora 11 non plus par 192.168.1.150, mais par son
nom d’hôte Gassama.
Fichier hosts
Avant d’aborder le vif du sujet, un petit mot sur le fichier hosts. Il se situe sous
/etc/hosts et est de la simple forme : adresse IPnom d’hôteFQDN :
(nomsousdomain.nomdomain)
127.0.0.1 Gassama.gass.sn
Gassamalocalhost.localdomainlocalhost
192.168.1.150 Gassama.gass.sn Gassama
192.168.1.254 gateway.gass.sn gateway
Comment ça marche ?
Le DNS est un service réseau qui s’exécute en permanence sur une machine (un
démon) et qui écoute sur le port standard 53 en UDP et en TCP. Il y a au
minimum un serveur de noms par domaine. En général, on recommande d’en
avoir au moins deux.
Le premier jouera le rôle de Master et le second le rôle de slave, ainsi si le
master tombe en panne le slave pourra continuer à servir les clients.
Type d'enregistrement
On distingue plusieurs types d'enregistrement:
2. G@ss@m@ Page 2
Type A: permet de faire la correspondance nom →adresse IP
Exemple: dans le fichier de résolution directe on met Gassama.gass.sn. IN
A192.168.1.150
Type CNAME: permet de surnommer une machine (fichier direct)
Exemple: www.gass.sn. IN CNAME Gassama.gass.sn.
Type PTR: permet de faire de résolution inverse.
Exemple: 150 IN PTR Gassama.gass.sn.
Type NS: permet de préciser le serveur de nom d'un domaine.
Exemple: gass.sn. IN NS Gassama.gass.sn.
Type SOA: (Start Of Authority) désigne le début unique et oblige d’une zone
Exemple: gass.sn. IN SOA @ Gassama.gass.sn.(
1 ; Serial
1D ; Refresh
1H ; Retry
1W ; Expire
60 ) ; Négative Cache TTL;
Serial: numéro de série, à incrémenter à chaque fois le fichier de configuration
a été modifié. Refresh:
Retry: durée de ressaie de série permettant de voir s'il y a mises à jours
Expire: durée d'expiration
TTL: durée minimale de la validation des informations
Type MX: favorise l'adressage sur un serveur de messagerie
Exemple: Gassama.sn. IN MX 1 Gassama.gass.sn.
Serveur DNS
Le serveur installé sera le cultisme Bind. Il s’agit du programme le plus répandu
et éprouvé en la matière. Le but ici est de l’utiliser pour le réseau local
uniquement, ainsi il ne servira pas à faire la résolution de noms de machines
sur internet, mais servira seulement à faire ce travail sur le réseau local pour
avoir la possibilité d’atteindre telle ou telle machine par son petit nom. Il n’est
pas nécessaire d’acquérir un nom de domaine pour cette architecture. Pour
l’exemple, le réseau s’appellera gass.sn et se fera sur une machine sous
Fedora11.
Installation de Bind
Sous Fedora, on utilise yumpour installer tous les paquets :
# yuminstallbind-*
3. G@ss@m@ Page 3
Configuration du serveur DNS
Le serveur installé, passons à sa configuration. Celle-ci se fait dans le fichier
named.conf sous /etc. Comme on peut le voir, sous Fedora 11, la configuration
de base est bien dans named.conf, mais nous allons peu y toucher car en fin de
fichier, un include renvoie vers un autre fichier named.rfc1912.zones où l’on va
définir nos nouvelles zones.
Fichier named.conf :
Création des fichiers de zone
Les fichiers de zone se trouvent dans “/var/named/”
Pour la résolution directe, on créera le fichier /var/named/gass.sn à partir du
fichier /var/named/named.localhost
Description des différentes parties :
le @ au début de l’enregistrement définit la zone : gass.sn.
4. G@ss@m@ Page 4
la classe, IN, signifie internet.
l’enregistrement SOA (Start Of Authority), nécessaire pour un serveur
maître.
Gassama.gass.sn. le nom pleinement qualifié du serveur de nom. Ne pas
oublier le (point) à la fin, s’agissant d’un nom absolu, il permet à Bind de
remonter au sommet de l’arborescence des noms.
Gassama.gass.sn. il s’agit de l’adresse électronique de l’administrateur
du serveur,avec un. à la place de l’arobase et toujours le point final.
10 : un numéro de série qu’il faut incrémenter à chaque modification du
fichier. Ce numéro permet aux serveurs esclaves de savoir s’il y a du
nouveau. Il est d’usage de choisir un numéro du type yyyymmddxx, xx
étant un numéro que l’on incrémente à chaque changement.
1D : refresh, délai d’attente avant d’aller glaner des informations pour un
serveur esclave.
• 1H : retry, si l’esclave ne trouve pas le maître, il réessaiera au bout du
délai retry.
1W : expire, si au bout du délai expire, il n’est pas parvenu à entrer en
contact avec le serveur maître, il le considère comme inexistant.
3H : minimum, détermine la durée de vie minimum du cache.
Quant à la deuxième partie, il faut différencier plusieurs types
d’enregistrements :
NS : il s’agit simplement du serveur de noms, ici Gassama.gass.sn
A : une adresse IP, Gassama est la machine avec l’IP 192.168.1.152
HINFO : donne des infos sur le serveur. Il y a deux parties entre double-
quottes, les caractéristiques physiques de la machine et son système
d’exploitation.
MX : désigne un serveur de messagerie
CNAME : nom canonique, pour ajouter des aliases à des machines. Dans
cet exemple, si on cherche par exemple imap.Gassama.gass.sn, cela est
dirigé vers Gassama.gass.sn.
Pour la configuration de la résolution inverse, créons le fichier
/var/named/gass.invà partir du fichier /var/named/named.loopback
5. G@ss@m@ Page 5
Toute la première partie est générée automatiquement lors de l’installation, ce
qui nous intéresse est la partie en gras. Nous allons ajouter le domaine gass.sn,
pour cela il faut ajouter ce que l’on appelle une zone DNS et son pendant pour
la résolution inverse (trouver une IP à partir d’un nom d’hôte). Les deux zones
ajoutées sont assez parlantes
: zonegass.sn de type IN (internet) de type master et la zone inverse 1.168.192
(on remarque que c’est l’adresse du réseau à l’envers) suivi de in-addr.arpa (on
ne cherche pas pourquoi, on écrit), toujours de type master. Pour les deux
zones, il y a un cheminvers un fichier, c’est dans ceux-ci que les zones vont être
précisément définies.
Le fichier de zone inverse 192.168.1.152
Le principe est le même, mais pour faire l’inverse, retrouver un nom
pleinement qualifié grâce à une IP. On voit que la première partie avec le SOA
est la même que pour la zone précédente. Il y a le NS et un type PTR qui est un
pointeur. Simple.
Ensuite on nomme namedcomme propriétaire du fichier gass.sn et du fichier
gass.inven tapant lescommandes:
# chownnamed:named gass.sn
# chownnamed:namedgass.inv
Et dans le fichier /etc/named.conf, on ajoute le paramètre ≪ANY» a la ligne:
6. G@ss@m@ Page 6
pour permettre à n'importe quelle adresse IP de se connecter au port 53
Par rapport au fichier disponible après l’installation, il a été rajouté l’adresse IP
du serveur (192.168.1.150) dans la directive listen-on, ceci afin que les
machines du réseau puissent l’atteindre par cette adresse. allow-query permet
de définir quelles machines ou réseau(x) peuvent interroger le serveur, ici tout
le réseau en 192.168.1.0/24. Et enfin, forwarders définit une liste de serveurs
DNS autres à utiliser lorsque notreserveur ne peut résoudre une adresse, ici, ce
sont les IP des DNS d’Orange.
Voilà pour le named.conf, passons au fichier named.rfc1912.zones :
On configure notre résolveur pour qu'il utilise notre serveur DNS dans
/etc/resolv.conf:
Configuration d'un serveur DNS primaire
Nous allons créer une zone directe et inverse pour notre domaine “gass.sn”
Editons le fichier “/etc/named.rfc1912.zones” et ajoutons:
Pour la résolution directe et inverse
7. G@ss@m@ Page 7
Autre Machine : Serveur secondaire
C’est terminé. Le serveur peut être (re)démarré :
# etc/init.d/named restart
Teste de la résolution directe:
Teste de la résolution inverse: