Vous êtes sur la page 1sur 17

Installation et Configuration de DNS sous LINUX

Installation et Configuration de DNS sous


LINUX

Utilisation du DNS
Donc, quand vous utilisez les diffrentes applications mail, news, ftp ... vous faites des
requtes vers un serveur de noms de domaine, celui de votre FAI entre autre, qui va rsoudre
votre requte, en recherchant la machine (ou alias) que vous essayez de contacter, partir des
noms de domaine attribus .
L'attribution des noms de domine (.com, .net, .org, .edu) est gr par la socit Network
Solutions pour le compte de l'Internic .
Cet organisme Internic (rs.internic.net) dispose d'une liste des domaines attribus (root-
servers.net), cette liste est rcuprable sous forme de fichier (named.ca) par
ftp://rs.internic.net/domain/named.ca :
Pour en savoir plus, visitez les sites :
Network Solutions
Internic
ICANN

Mais passons notre rseau :


Je vais dcrire rapidement une configuration (et avec peu d'explication) pour une RedHat et
Bind version 8, pour une autre distribution adaptez les chemins des fichiers, d'initialisation
systme et de configuration de Bind, votre systme:
Pour une installation dtaille consulter le DNS-HOWTO ,vous pouvez le rcuper sur
www.freenix.fr

Installation de Bind
Bind est le standard pour la gestion des noms de domaine et il doit etre install !
La version que je dcris est la 8.2-6 de mars 1999, mais vous pouvez vous en procurez une
plus rcente sur www.isc.org ou sur FTP
N'utilisez pas une ancienne version comme la 4 (voir le DNS-HOWTO) les fichiers et la
syntaxe y sont diffrents .
Vous devez installer les archives (packages RPM ou *.tar.gz) bind et bind-utils :

installer les packages :


rpm -ivh bind-8.x.x..i386.rpm
rpm -ivh bind-utils-8.x.x..i386.rpm
L'installation de Bind aura cre plusieurs fichiers :
Un "daemon" /etc/rc.d/init.d/named
un fichier principal de configuration /etc/named.conf et d'autres fichiers de configuration
dans le rpertoire /var/named :
/var/named/named.ca : contient la liste des serveurs root pour toutes les requtes mondiales ,
/var/named/named.local : contient les paramtres de la machine locale ,
dans ce rpertoire vous ajouterez deux autres fichiers pour chaque domaine :
/var/named/mon_domaine.fr : avec les paramtres pour ce nom de domaine,
/var/named/db.192.x.x : avec les paramtres pour la rsolution inverse de ce nom de domaine.

Il vous faut maintenant lancer ce dmon named au dmarrage de votre systme :

-1-
Installation et Configuration de DNS sous LINUX
vrifiez, si vous avez :
1) /etc/rc.d/rc3.d/K55named , /etc/rc.d/rc5.d/K55named
ou :
2) /etc/rc.d/rc3.d/S55named , /etc/rc.d/rc5.d/S55named
dans le premier cas vous devez remplacer K55named des rpertoires rc3.d et rc5.d par
S55named, avec la commande mv :
mv /etc/rc.d/rc3.d/K55named /etc/rc.d/rc3.d/S55named
mv /etc/rc.d/rc5.d/K55named /etc/rc.d/rc5.d/S55named
dans le second cas vous n'avez rien faire !
Sinon il faut les crer avec la commande ln -s :
Pour finalement obtenir ces scripts :
/etc/rc.d/rc0.d/K45named : ln -s /etc/rc.d/init.d/named /etc/rc.d/rc0.d/K45named
/etc/rc.d/rc1.d/K45named : ln -s /etc/rc.d/init.d/named /etc/rc.d/rc1.d/K45named
/etc/rc.d/rc2.d/K45named : ln -s /etc/rc.d/init.d/named /etc/rc.d/rc2.d/K45named
/etc/rc.d/rc3.d/S55named : ln -s /etc/rc.d/init.d/named /etc/rc.d/rc3.d/S55named
/etc/rc.d/rc4.d/K45named : ln -s /etc/rc.d/init.d/named /etc/rc.d/rc4.d/K45named
/etc/rc.d/rc5.d/S55named : ln -s /etc/rc.d/init.d/named /etc/rc.d/rc35.d/S55named
/etc/rc.d/rc6.d/K45named : ln -s /etc/rc.d/init.d/named /etc/rc.d/rc6.d/K45named
S55named et K45named sont des liens symboliques de /etc/rc.d/init.d/named .
si le niveau 4 (rc4.d) correspond l'initialisation xdm sur votre systme, alors changer
K45named en S55named , K= kill, S= start.
Vous pouvez vous aider du TkSysV pour modifier les RunLevels : Panneau de Control ou
Gestion Runlevel (kde).
Pour faire simple, vous pouvez utiliser les commandes :
chkconfig --level 235 named on
chkconfig --level 0146 named off
ou encore :
chkconfig --add named

Modifier /etc/resolv.conf :
# /etc/resolv.conf
#
search mon_domaine.fr # nom du domaine de votre rseau
nameserver 127.0.0.1 # adresse loopback (localhost)
nameserver 192.168.xxx.x # adresse IP de votre machine (le DNS primaire )
#

Si vous avez des postes Windows sur votre rseau, indiquez leur l'adresse de votre serveur de
noms de domaine :
Panneau de configuration / Rseau / (onglet) DNS .

Lancer le dmon named :


en tapant la commande : /etc/rc.d/init.d/named restart
start pour lancer named la premire fois
restart pour le relancer si named est dj actif
reload pour obliger named relire le fichier de configuration .
stop pour tuer named

Tester Bind :
Tapez la commande (Avec un point la fin ,c'est plus rapide !)
nslookup mon_domaine.fr.

Server: localhost

-2-
Installation et Configuration de DNS sous LINUX
Address: 127.0.0.1

Name: mon_domaine.fr
Addresses: 127.0.0.1
Essayez en tapant nslookup, l'invite (nslookup) vous tapez mon_domaine.fr (e.g Le vtre de
domaine ):
ma_machine:/ $ nslookup
Default Server: localhost
Address: 127.0.0.1

> mon_domaine.fr
Server: localhost
Address: 127.0.0.1

Name: mon_domaine.fr
Addresses: 127.0.0.1

> exit
ma_machine:/ $
Voil, Bind fonctionne, passons sa configuration :

Configuration d'un domaine simple :


Convention d'criture :
Je vais utiliser un exemple concret d'une machine orion sur un rseau Ethernet 192.168.154.0,
relie l'internet par modem et utilisant Worldnet (par exemple) comme FAI :
Cette machine orion sera le serveur (primaire) de nom de domaine avec l'adresse IP
192.168.154.1
Le nom de domaine de ce rseau est linuxpc.fr , les autres machines relies au rseau , sont :
droopy : 192.168.154.2 , cern : 192.168.154.3 , lmsoft : 192.168.154.4
Sur ce rseau, je n'utilise pas de serveur de nom secondaire (machine physique sur le brin
thernet), mais j'utilise localhost (loopback 127.0.0.1)
Le serveur (DNS primaire) est le serveur de nom principal, le serveur (DNS secondaire) est le
serveur de nom secondaire :
Le serveur secondaire est utile sur les gros rseaux, il dchargera le serveur principal lorsque
celui-ci est surcharg ou en panne !
Adapter, videment, le nom des machines, le nom du domaine et les adresses IP votre
rseau !
orion.linuxpc.fr 192.168.154.1
droopy.linuxpc.fr 192.168.154.2
cern.linuxpc.fr 192.168.154.3
lmsoft.linuxpc.fr 192.168.154.4

Configuration et fichiers de zone:


Le principal fichier de configuration est /etc/named.conf, ensuite vous avez besoin de trois
autres fichiers qui sont les fichiers de zone placer dans le rpertoire /var/named/.
Les noms de ces fichiers de zone ont peu d'importance, l'essentiel est qu'ils soient dclars
dans /etc/named.conf, j'ai conserv les noms des fichiers mis en place par l'installation de
bind, mais vous faites votre got :
named.local : Cette zone contient un seul enregistrement qui permet de rsoudre "127.0.0.1"
en localhost
Vous pouvez trs bien utiliser un nom comme localhost.zone, 127.0.0, db0.0.127... etc.
linuxpc.fr : Cette zone dcrit le domaine, c'est dire la liste des adresses IP des machines sur

-3-
Installation et Configuration de DNS sous LINUX
ce domaine (ici linuxpc.fr).
db.192.168.154 : Cette zone va permettre la rsolution inverse des noms de machines sur le
domaine, c'est dire renvoyer le nom de machine partir de l'adresse IP, elle doit donc
contenir galement les noms des machines sur le domaine et leurs adresses IP
correspondantes.

A propos du nom de domaine et plus particulirement du TLD (Top Level Domain), si vous
utilisez un TLD dj attribu sur internet comme, .fr, .com, .org, .net... etc. il est indispensable
d'ajouter "notify no;" dans la dfinition de zone dans votre fichier named.conf, ceci pour
viter tout conflit avec l'internet pendant que vous surfer sur le web ;-)
Le plus indiqu tant de ne pas utiliser un TLD existant mais un autre comme .home, .tux,
.pc.... etc.

Voici mes fichiers de configuration, j'y ai juste chang le nom des machines et du domaine :
Vous n'avez plus qu' faire de mme .
J'ai utilis l'alias "postmaster" comme administrateur du domaine, d'une part parcequ'il a dj
une entre dans /etc/aliases correspondant l'adresse email de "root", d'autre part parceque les
machines de ce domaine grent le courrier et les listes de diffusion .

Le fichier principal :
/etc/named.conf Commentaires </FONT
options { options : contient les options gnrales pour le systme :
directory
directory : dclare le chemin des fichiers de configuration
"/var/named";
// DNS du FAI forward first; Votre FAI (ici worldnet)
Worldnet forwarders { permet l'utilisation de ses DNS
forward first; 195.3.4.1 DNS primaire du FAI
forwarders { 195.3.4.2 DNS secondaire du FAI .
195.3.4.1
Consulter le DNS-HOWTO

195.3.4.2 zone : dfinit les fichiers de zones : ....


}; Les diffrentes zones peuvent etre : root, local, et les noms de domaine de vos
}; rseaux .
zone "." { zone : pour
type hint; "." : pour le fichier des serveurs root (racine)
file "0.0.127.in-addr.arpa" : pour le fichier local du systme
"named.ca"; "linuxpc.fr" : pour le fichier de paramtres de ce domaine
};
"154.168.192.in-addr.arpa " : pour le fichier de paramtres de ce domaine
zone "0.0.127.in- (rsolution inverse)
addr.arpa" {
type master; type master; Indique qu'il s'agit du serveur principal
file notify no; Demande named de ne pas informer ses serveurs secondaires (type
"named.local";
}; slave) :
Lorsque qu'un fichier de zone est mis jour, named informe les autres serveurs
zone "linuxpc.fr" in { lists dans ses champs "NS" du fichier de zone, ce qui pour un rseau local utilisant
notify no; des adresses "privs" (192.168.154.) pertuberai l'Internet avec ce type d'adresses :
type master;
Consulter le DNS-HOWTO
file
"linuxpc.fr";
}; Les commentaires sont introduits par // ou insrs entre /* ..et.. */
/* Supprimer ces commentaires peut aider lorsque vous devez passer travers un
zone "154.168.192.in- firewall et que cela ne fonctionne pas ! */
addr.arpa" in {
notify no;

-4-
Installation et Configuration de DNS sous LINUX

type master;
file
"db.192.168.154";
};
Le fichier des paramtres de la machine locale :
/var/named/named.local Commentaires </FONT
ATTENTION ! Les noms des machines sont en minuscule et les
noms des commandes en Majuscules . Le point . la fin des noms de
domaine est trs important, il indique que le nom de domaine est
@ IN SOA complet (pleinement qualifi).
orion.linuxpc.fr.
postmaster.orion.linuxpc.fr. (
1999112002 ; SOA : Source Of Authority
numro de srie
28800 ; postmaster alias, voir explication plus bas.
rafraichissement = 8 heures 1999112002 numro de srie, voir la description dans le fichier
14400 ; nouvel
essais = 4 heures suivant .
604800 ;
expiration = 7 jours Les 4 lignes suivantes indique le temps en secondes, vous trouverez
86400 ) ; temps ces temps cris sous cette forme:
de vie minimum = 24 heures
NS
8H = 8 heures = 28800 s
orion.linuxpc.fr. 4H = 4 heures = 14400 s
1 PTR localhost. 1W = une semaine = 604800 s
1D = 1 jour = 86400 s

PTR adresse IP inverse, Consulter le DNS-HOWTO


Les fichiers des paramtres d'un nom de domaine :
/var/named/linuxpc.fr Commentaires </FONT
@ IN SOA ATTENTION ! Le point . la fin trs important, il indique que le nom
orion.linuxpc.fr.
de domaine est complet . Le nom des machines en minuscule et le nom
postmaster.orion.linuxpc.fr. (
1999112002 ; des commandes en Majuscules .
numro de srie
28800 ; SOA : nom complet du serveur et adresse de l'administrateur.
rafraichissement postmaster c'est un alias de l'adresse de l'administrateur (la vtre),
14400 ; nouvel
essais vous pouvez utiliser hostmaster, domainmaster ou root ou un autre .
604800 ; Le numro de srie utilis est la date plus la version : 2me version (02)
expiration ralise le 20 novembre (11) 1999, sous la forme anne-mois-jour-
86400 ) ; temps version, pour qu'une prochaine mise jour le 01 12 1999 par exemple
de vie minimum augmente le numro de version et ne le diminue pas.
@ IN NS orion
@ IN NS Les 4 lignes suivantes indique le temps en secondes
orion.linuxpc.fr.
@ IN MX 10 orion NS : serveurs de noms du domaine
@ IN MX 20
orion.linuxpc.fr.
MX : serveurs de mail
; serveurs de noms en local
@ IN A 127.0.0.1 ; CNAME : dfinit des alias : Consulter le DNS-HOWTO
localhost
@ IN A 192.168.154.1 ; Les commentaires sont introduit par ;
serveur principal

; adresses IP des serveurs


locahost IN A 127.0.0.1
orion IN A 192.168.154.1

-5-
Installation et Configuration de DNS sous LINUX

; adresses IP des machines du reseau


droopy IN A 192.168.154.2
cern IN A 192.168.154.3
lmsoft IN A 192.168.154.4

; aliases
www IN CNAME orion
ftp IN CNAME orion
mail IN CNAME orion

/var/named/db.192.168.154 Commentaires </FONT


@ IN SOA orion.linuxpc.fr. ATTENTION au point . la fin des noms de
postmaster.orion.linuxpc.fr. (
domaine (complet) .
1999112002 ; numro de srie
28800 ; rafraichissement
14400 ; nouvel essais NS : indique le serveur de noms principal
604800 ; expiration
86400 ) ; temps de vie 1 IN PTR orion.linuxpc.fr.
minimum
; serveurs de noms 2 IN PTR droopy.linuxpc.fr.
IN NS orion.linuxpc.fr. 3 IN PTR cern.linuxpc.fr.
4 IN PTR lmsoft.linuxpc.fr.
; adresses IP inverses Indique les machines du domaine .
1 IN PTR orion.linuxpc.fr.
2 IN PTR droopy.linuxpc.fr.
3 IN PTR cern.linuxpc.fr.
4 IN PTR lmsoft.linuxpc.fr.

Une bonne ide consiste donner les droits, sur votre fichier de zone, uniquement named et
au groupe named :
chown named.named linuxpc.fr

Tester la configuration :

Commentaires Copie d'cran </FONT


Nous sommes sur le serveur principal orion : orion:/ $ nslookup
Default Server: localhost
tapez nslookup
Address: 127.0.0.1

l'invite de nslookup, tapez votre nom de domaine: linuxpc.fr > linuxpc.fr


L'adresse IP du serveur est affiche en plus de l'adresse Server: localhost
localhost Address: 127.0.0.1

Name: linuxpc.fr
tapez le nom de la machine (serveur): orion Addresses: 192.168.154.1, 127.0.0.1
Le nom complet est affich avec l'adresse IP
> orion
Server: localhost
Vous pouvez essayer avec le nom d'une autre machine .
Address: 127.0.0.1

Name: orion.linuxpc.fr
Address: 192.168.154.1

>

Il est possible de positionner le type de requte , l'aide de > set q=any


> linuxpc.fr
query et de la commande set : Server: localhost
ns = enregistrements relatif au serveur Address: 127.0.0.1
any = tout sur le domaine

-6-
Installation et Configuration de DNS sous LINUX

tapez set q=any pour obtenir toutes les infos sur le domaine
linuxpc.fr internet address =
puis tapez votre nom de domaine : linuxpc.fr
192.168.154.1
linuxpc.fr internet address =
puis votre nom de machine : orion 127.0.0.1
linuxpc.fr preference = 20, mail
Vous devez obtenir le mme affichage, si non il faut vrifier vos exchanger = orion.linuxpc.fr
linuxpc.fr preference = 10, mail
fichiers de configuration et lire le DNS-HOWTO. exchanger = orion.linuxpc.fr
linuxpc.fr nameserver =
vous pouvez essayez avec set q=ns orion.linuxpc.fr
linuxpc.fr
origin = orion.linuxpc.fr
tapez exit pour quitter nslookup . mail addr =
postmaster.orion.linuxpc.fr
serial = 1999112002
refresh = 28800 (8H)
retry = 14400 (4H)
expire = 604800 (1W)
minimum ttl = 86400 (1D)
linuxpc.fr nameserver =
orion.linuxpc.fr
orion.linuxpc.fr internet address
= 192.168.154.1
> orion
Server: localhost
Address: 127.0.0.1

orion.linuxpc.fr internet address


= 192.168.154.1
linuxpc.fr nameserver =
orion.linuxpc.fr
orion.linuxpc.fr internet address
= 192.168.154.1
> exit
orion:/ $

Si bind fonctionne , pour terminer la vrification et si vous avec orion:/ $ nslookup


> set q=any
une connexion internet :
> unc.edu
connectez vous avec votre numroteur Server: localhost
Address: 127.0.0.1
puis tapez nslookup
et ensuite set q=any Non-authoritative answer:
unc.edu nameserver = NCNOC.NCREN.NET
et enfin, par exemple unc.edu unc.edu nameserver = NS2.unc.edu
unc.edu nameserver = NS.unc.edu

bind-utils contient plusieurs utilitaires, vous trouverez des Authoritative answers can be found from:
unc.edu nameserver = NCNOC.NCREN.NET
explications dans le DNS-HOWTO ainsi que les requtes
unc.edu nameserver = NS2.unc.edu
utilisables avec nslookup . unc.edu nameserver = NS.unc.edu
NCNOC.NCREN.NET internet address =
192.101.21.1
NS2.unc.edu internet address =
152.2.253.100
NS.unc.edu internet address =
152.2.21.1
>

Il y a une erreur de configuration?! !


Si vous avez fait une erreur dans un fichier de configuration, il est possible que la requte
(nslookup) s'arrte aprs avoir affich :

-7-
Installation et Configuration de DNS sous LINUX
Server: localhost
Address: 127.0.0.1
et vous ne rcuprez plus l'invite, dans ce cas utilisez [Ctrl] + [C] pour fermer nslookup et
vrifiez les fichiers de configuration de bind :
En dehors des erreurs de saisie, enlevez les blancs (espace) en dbut de ligne et vrifiez que
ce sont bien des tabulations et non des espaces qui sparent les noms des commandes.

Vrifier galement :
/etc/nsswitch.conf doit contenir une ligne hosts:
hosts : files dns
/etc/hosts.conf :
# /etc/hosts.conf
order hosts,bind
multi on
/etc/resolv.conf :
# /etc/resolv.conf
# local
domain linuxpc.fr # dfinit le domaine par dfaut
nameserver 127.0.0.1 # loopback
nameserver 192.168.154.1 # serveur principal
# FAI
search worldnet.fr
nameserver 195.3.4.1 # DNS primaire du FAI
nameserver 195.3.4.2 # DNS secondaire du FAI

Syntaxe utlise dans les fichiers de zone :


Forme et syntaxe :

La forme et la syntaxe que j'utilise (@ IN que j'ai toujours utilis) est certainement une
mauvaise habitude, mais cela fonctionne avec une RedHat 6.0 et Bind 8.2 : Le @ ($ORIGIN)
au dbut d'une ligne pour dfinir une zone n'est pas indispensable ( voir le DNS-HOWTO).
La syntaxe pour Bind 9.1 et Bind 9.2 est diffrente, regardez la section suivante Diffrence de
la version 9 de BIND

SOA :(Start Of Authority ou Origine de l'Autorit) doit tre suivi du nom du serveur
(machine relle et physique) et de l'adresse du responsable qui administre le domaine, ces
deux noms complets de domaine doivent se terminer par un point .

Vous avez not l'importance du point qui caractrise un nom de domaine pleinement qualifi,
si le point est absent la fin du nom de domaine alors le nom du domaine dfinit dans
named .conf (dans la zone correspondante) sera automatiquement ajouter la fin, ce qui dans
notre cas pour "NS orion.linuxpc.fr" donnerai orion.linuxpc.fr.linuxpc.fr ??? mais est
correcte avec "NS orion" et donne orion.linuxpc.fr

postmaster@orion.linuxpc.fr le @ est remplac par un . : postmaster.orion.linuxpc.fr


postmaster.orion.linuxpc.fr , en fait "postmaster" est un alias dclar dans /etc/aliases et
vous pouvez utiliser l'alias qu vous plait, mais il doit correspondre un compte sur la
machine, par exemple si vous utilisez domainmaster.orion.linuxpc.fr /etc/aliases doit
contenir la ligne domainmaster : toto , "toto" tant un compte ayant les droits
d'administration sur la machine et cette adresse sera interprte comme
toto@orion.linuxpc.fr et recevra tout le courrier concernant l'administration du domaine .
ATTENTION ! Chaque fois que vous modifiez le fichier /etc/aliases vous devez taper la
commande newaliases .

-8-
Installation et Configuration de DNS sous LINUX

Le numro de srie : Il est judicieux d'augmenter ce numro aprs chaque nouvelle


modification des fichiers de configuration, aussi le plus parlant est d'utiliser la date suivi d'un
numro de version indiquant le nombre de modif (release), mais ce n'est pas une obligation
vous pouvez simplement mettre 01, 02, 03 ...etc.
Pourquoi utiliser la forme 1999112002 pour le 20 novembre 1999 et non la forme (FR)
2011199902 : Supposez que la prochaine modification (03) soit effectu le 2 dcembre 1999
cela donne 1999120203 > 1999112002, dans le cas (FR) = 0212199903 < 2011199902 .
Ce numro de srie sert synchroniser les serveurs matres et esclaves, il doit donc augmenter
chaque modification de la zone.

NS Ce champ indique le serveur de noms pour la rsolution nom de machine/adresse IP.

IN C'est un mot cl (optionnel) qui indique qu'il s'agit d'une zone INternet.

MX qui indique le serveur de Mail (Xchanger) est suivi d'un nombre: c'est l'indice de
priorit .
Ce nombre indique au gestionnaire de courrier quelle machine envoyer en priorit le
courrier, dans notre cas c'est orion (le plus petit nombre) qui est prioritaire sur
orion.linuxpc.fr. : C'est la mme machine !?
Pour un rseau plus important et/ou un courrier abondant, vous pouvez dsigner plusieurs
machines :

MX 5 orion.linuxpc.fr.
MX 10 droopy.linuxpc.fr.
MX 20 cern.linuxpc.fr.

A Ce champ va retourner l'adresse IP correspondante, par exemple dfinir le nom du serveur


de messagerie (MX) comme "mail.linuxpc.fr" qui correspond au serveur orion
orion.linuxpc.fr que l'on pourra donc atteindre avec mail.linuxpc.fr
mail IN A 192.168.154.1
PTR ce champ permet la rsolution inverse en indiquant par exemple que 1 (154.168.192.in-
addr.arpa) correspond 192.168.154.1
1 IN PTR orion.linuxpc.fr.
notify no : il prfrable d'utiliser ce paramtre pour viter toute pollution de l'Internet avec
vos adresses prives, et plus fortes raisons si vous vous amusez utiliser des adresses
comme 198.32.x.x qui sont attribues .

Nouveauts dans bind-9.x:


Une meilleur scurit, entre autre, avec BIND version 9 mais aussi une syntaxe un peu
diffrente,
DiG 9.1. a remplac "DiG 8.2.",
il est conseill d'utiliser host en remplacement de "nslookup",
"ndc" est remplac par rndc.

Commencez par vrifier que, dans le rpertoire /etc, vous avez bien un fichier rndc.conf et
certainement aussi un fichier rndc.key.
rndc.key contient la cl md5, galement prsente la fin du fichier rndc.conf sous la forme :

key "key" {

-9-
Installation et Configuration de DNS sous LINUX
algorithm hmac-md5;
secret
"QOnXmEIGx0RWeQ0NZ0GtLcQmSDBympnctTaCwPxTjvYYoTUcsXbQAHrZBMtt";
};
Il vous faut ajouter cette cl au dbut de votre fichier /etc/named.conf, 2 cas sont possibles :
_1) /etc/rndc.key existe, alors :
// /etc/named.conf

include "/etc/rndc.key";

controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
_2) vous avez seulement /etc/rndc.conf, alors :
// /etc/named.conf

key "key" {
algorithm hmac-md5;
secret
"QOnXmEIGx0RWeQ0NZ0GtLcQmSDBympnctTaCwPxTjvYYoTUcsXbQAHrZBMtt";
};
controls {
inet 127.0.0.1 allow { localhost; } keys { "key"; };
};
Si vous avez ajout les DNS de votre FAI, donc pour une connexion internet, remplacez
"localhost;" par "any;".

En plus de la syntaxe modifier dans vos fichiers de zone, vous devrez certainement ajouter
dans chaque fichier de zone, comme premire ligne du fichier : $TTL 3h ou $TTL 86400.
Par dfaut les fichiers named.conf et rndc.conf sont lisibles par tous, il faut corriger cela en
donnant les droits sur ces fichiers root ou named et au groupe named, par exemple:
chown root.named named.conf
ou
chown named.named named.conf
et ensuite :
chmod 640 named.conf
Vous faites la mme chose sur tous les fichiers qui contiennent la cl md5.

Sinon le principe reste identique ce que j'ai dcrit plus haut, donc je vous donne ici
simplement le contenu, sans commentaire, des diffrents fichiers de zone et du fichier de
configuration /etc/named.conf.
...ATTENTION ! J'ai effectu les tests en installant des archives Tarball et non des RPMs,
j'ignore donc si les packages RPMs fonctionnent correctement !?

Version 9.1.
Fichier de configuration:
named.conf :
/* /etc/named.conf
* generated by named-bootconf.pl
*/

include "/etc/rndc.key";

options {
directory "/var/named";
/*
* If there is a firewall between you and nameservers you want

- 10 -
Installation et Configuration de DNS sous LINUX
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
// ISP IP Address, Worldnet Provider DNS :
forward first;
forwarders {
195.3.4.1;
195.3.4.2;
};
};

//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { any; } keys { rndckey; };
};

zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "linuxpc.fr" IN {
type master;
file "linuxpc.fr";
};

zone "154.168.192.in-addr.arpa" IN {
type master;
file "db.192.168.154";
};

Fichiers de zone :
named.local:
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum ttl
IN NS localhost.

1 IN PTR localhost.

localhost.zone :
$TTL 86400

- 11 -
Installation et Configuration de DNS sous LINUX
$ORIGIN localhost.
@ 1D IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum

1D IN NS @
1D IN A 127.0.0.1

linuxpc.fr :
$TTL 86400

@ IN SOA orion.linuxpc.fr. postmaster.orion.linuxpc.fr. (


2002031200 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; ttl
)
@ IN NS orion.linuxpc.fr.
@ IN MX 10 mail.linuxpc.fr.
@ IN MX 20 orion.linuxpc.fr.
TXT "linuxpc.fr domaine Linux FR sur PC "

; serveurs de noms
localhost IN A 127.0.0.1
orion IN A 192.168.154.1
mail IN A 192.168.154.1

; adresses IP des machines du reseau


droopy IN A 192.168.154.2
cern IN A 192.168.154.3
lmsoft IN A 192.168.154.4

; aliases
www IN CNAME orion
ftp IN CNAME orion
news IN CNAME orion

db.195.168.154 :
$TTL 86400
@ IN SOA orion.linuxpc.fr. postmaster.orion.linuxpc.fr. (
2002031200 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; ttl
)

; serveurs de noms
@ IN NS orion.linuxpc.fr.

; adresses IP inverses
1 IN PTR orion.linuxpc.fr.
2 IN PTR droopy.linuxpc.fr.
3 IN PTR cern.linuxpc.fr.
4 IN PTR lmsoft.linuxpc.fr.

- 12 -
Installation et Configuration de DNS sous LINUX
Test de bind et de votre config DNS
Pour tester la configuration de votre DNS en remplacement de "nslookup", bien que toujours
disponible, la doc de BIND conseille l'utilisation de host:
host -a orion
host -a linuxpc.fr
host -a www.linuxpc.fr
....etc.

Utilisation de la commande dig


Pour rcuprer le fichier de zone internet (named.ca) le script dcrit plus loin pour "DiG 8.2"
ne fonctionne pas avec la version DiG 9.1.3 de bind-9.1.3.
Utilisez @a.root-servers.net la place de "@rs.internic.net" :
Aprs vous tre connect, pour afficher le contenu de named.ca, tapez simplement:
dig
Pour rcuprer ce fichier named.ca, tapez:
dig @a.root-servers.net > /var/named/named.ca
ou
dig > /var/named/named.root
et comparez le contenu de ces 2 fichiers (named.ca et named.root) qui doit tre identique.
Pour vous amuser, essayez, en remplaant orion par le nom de machine de votre serveur DNS,
cette commande:
dig @a.root-servers.net . orion > ~/named.ca
et regardez le contenu du fichier ~/named.ca,
vous comprendrez pourquoi vous ne pouvez pas utiliser le script de la version 8.2, ni mme
utiliser la commnde :
dig @a.root-servers.net . orion >/var/named/named.ca.new 2>&1
pour mettre jour votre fichier named.ca.

Version 9.2.
NB: Pour la version 9.2. j'ai utilis la forme :
NS orion.linuxpc.fr.
la place de
@ IN NS orion.linuxpc.fr.
et cela fonctionne trs bien !

Un serveur secondaire :
Vous avez un gros rseau (beaucoup de machines et/ou plusieurs domaines) et vous voulez
utiliser un serveur de nom de domaine secondaire : Pour cela, sur la machine (par exemple
droopy.linuxpc.fr) utilise comme serveur secondaire, il suffit de modifier le fichier principal
de configuration de Bind, named.conf, comme suit :
options {
directory "/var/named";
};

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

zone "0.0.127.in-addr.arpa" {
type master;

- 13 -
Installation et Configuration de DNS sous LINUX
file "named.local";
};

zone "linuxpc.fr" in {
notify no;
type slave;
file "linuxpc.fr";
masters { 192.168.154.1; };
};

zone "154.168.192.in-addr.arpa" in {
notify no;
type slave;
file "db.192.168.154";
masters { 192.168.154.1; };
};

Fichier de Zone pour Internet :


Mettre jour son fichier de zone des serveurs root :
Il s'agit de mettre jour le fichier named.ca , pour cela voici un script utilisant dig (utilitaire
inclus dans bind-utils).
Original cris par Al Longyear
Mis a jour pour Bind 8 par Nicolai Langfeldt
Plusieurs erreurs dcouvertes par David A. Ranch
Test avec un ping suggr par Martin Foster
dans le quel j'ai simplement remplacer root.hints par named.ca :
#!/bin/sh
#
# Ce script peut etre lanc automatiquement par un cron chaque mois
# pour mettre jours les informations du cache du serveur de noms :
# e.g aprs l'tablissement de la connexion !
#
(
# remplacez hostmaster par votre alias
echo "To: hostmaster "
echo "From: system "
echo "Subject: Mise a jour automatique du fichier named.ca"
echo

PATH=/sbin:/usr/sbin:/bin:/usr/bin:
export PATH
cd /var/named

# Sommes nous connects ? Pingons un serveur de notre FAI


# remplacer some.machine.net par l'adresse de votre FAI par exemple
case `ping -qnc some.machine.net` in
*'100% packet loss'*)
echo "PAS de connexion rseau. named.ca NON mis jour"
echo
exit 0
;;
esac
# remplacer ns par le nom (machine) de votre serveur
dig @rs.internic.net . ns >named.ca.new 2>&1

case `cat named.ca.new` in


*NOERROR*)
# Ca a march
:;;

- 14 -
Installation et Configuration de DNS sous LINUX
*)
echo "La mise a jour de named.ca a ECHOUE."
echo "Voici la sortie de dig :"
echo
cat named.ca.new
exit 0
;;
esac

echo "Le fichier named.ca a t mis a jour et contient les informations suivantes :"
echo
cat named.ca.new

chown root.root named.ca.new


chmod 444 named.ca.new
rm -f named.ca.old
mv named.ca named.ca.old
mv named.ca.new named.ca
ndc restart
echo
echo "Le serveur de noms a t redmarr, de cette manire, la mise a jour est
complte."
echo "L'ancien named.ca s'appelle maintenant /var/named/named.ca.old."
# Ici il y a de fortes chances pour que vous utilisiez /usr/sbin/sendmail -t
) 2>&1 | /usr/lib/sendmail -t
exit 0
<<Bien que le fichier named.ca soit disponible via ftp depuis l'Internic , du point de vue de la
nettiquette et de l'Internic la mthode ci dessus est bien meilleur pour mettre jour le fichier
named.ca >> DNS-HOWTO.

Personnellement je n'utilise pas ce script, je me connecte une ou deux fois par an avec la
commande :
dig @rs.internic.net . orion >/var/named/named.ca.new 2>&1
Et voil ce que je rcupre :
; <<>> DiG 8.2 <<>> @rs.internic.net . orion
; (1 server found)
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 13
;; QUERY SECTION:
;; orion, type = A, class = IN

;; AUTHORITY SECTION:
. 5d19h24m23s IN NS D.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS E.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS I.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS M.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS L.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS K.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS J.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS B.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS F.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS G.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS C.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS H.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS A.ROOT-SERVERS.NET.

;; ADDITIONAL SECTION:
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
M.ROOT-SERVERS.NET. 5w6d16h IN A 202.12.27.33

- 15 -
Installation et Configuration de DNS sous LINUX
L.ROOT-SERVERS.NET. 5w6d16h IN A 198.32.64.12
K.ROOT-SERVERS.NET. 5w6d16h IN A 193.0.14.129
J.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.10
B.ROOT-SERVERS.NET. 5w6d16h IN A 128.9.0.107
F.ROOT-SERVERS.NET. 5w6d16h IN A 192.5.5.241
G.ROOT-SERVERS.NET. 5w6d16h IN A 192.112.36.4
C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12
H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53
A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.4

;; Total query time: 210 msec


;; FROM: orion.linuxpc.fr to SERVER: rs.internic.net 198.41.0.6
;; WHEN: Mon Dec 01 03:03:00 1999
;; MSG SIZE sent: 24 rcvd: 443
Par curiosit regardez le fichier /var/named/named.ca pour comparer , vous pouvez aussi
regarder ce que contient le fichier /etc/named.boot .

Les logs de Bind :


J'ai modifi le fichier /etc/named.conf pour sparer les "logs" de Bind qui sont volumineux, de faon
obtenir un journal pour les erreurs et un autre pour les messages.

logging {
channel warning {
file "/var/log/dns_warnings" versions 3 size 100k;
severity warning;
print-category yes;
print-severity yes;
print-time yes;
};
channel general_dns {
file "/var/log/dns_logs" versions 3 size 100k;
severity info;
print-category yes;
print-severity yes;
print-time yes;
};
category default { warning; } ;
category statistics { general_dns; } ;
category queries { general_dns; } ;
};

Ces paramtres vont permettrent de crer 2 fichiers, un "dns_warning" pour les erreurs et un
"dns_logs" pour les messages, dans le rpertoire /var/log . Chacun de ces fichiers logs
conservera 3 archives (*.0, *.1, *.2) de 100 Ko maxi

Voil il y aurait encore beaucoup dire, mais vous savez quoi ? Consultez le DNS-HOWTO .

Encore un mot au sujet des alias dans le fichier de zone du nom de domaine
(/var/named/linuxpc.fr) , ces alias par exemple "www orion" va permettre de contacter votre
serveur http (Apache) avec l'url "http://www.linuxpc.fr/" .
De l , pour passer sur le Web, il ne vous reste plus qu' installer et configuer, un systme
RAID, un routeur .....
et en informer le reste du monde . :-))

Mme sur un rseau de 2 ou 3 machines, DNS vous rendra service surtout si vous utilisez
Netscape qui dans certains cas met un temps fou pour conctacter votre serveur web Apache
local .

- 16 -
Installation et Configuration de DNS sous LINUX

- 17 -