Vous êtes sur la page 1sur 9

Mimiz Blog

Le blog de Mimiz

Home

Crdits

Contactez moi

Installation et configuration dun serveur DNS (Bind9) sur


Ubuntu
mai 14th, 2007 7 Comments
Cet article prsente linstallation et la configuration dun serveur DNS.
Linstallation est faite sur une distribution Ubuntu (6.06 LTS server dans mon cas)

Installation dun serveur DNS (Bind9) sur


Ubuntu
Cet article prsente linstallation et la configuration dun serveur DNS.
Linstallation est faite sur une distribution Ubuntu (6.06 LTS server dans mon cas)

Pr-requis
Savoir ce quest le systme DNS : Dfinition wikipedia
Pour lensemble du guide, nous partirons du principe, que la configuration rseau de votre
serveur est fonctionnelle.
Il est aussi ncessaire davoir certaines bases de lutilisation dun systeme Linux
Enfin, il est important que votre getionnaire de paquet soit configurer et jour. Pour cela je
vous conseille de lire lexcellent guide sur le site de ubuntu-fr.org :
http://doc.ubuntu-fr.org/gestionnaire_de_paquets

Ma configuration
Adresse IP du serveur : 192.168.1.2
Adresse IP de mon routeur (ou de la box ) : 192.168.1.1
Domaine : mondomaine.local
Les noms des ordinateurs et les ip souhaites:

server (ubuntu dapper LTS) => 192.168.1.2

mimiz (ubuntu Feisty) => 192.168.1.5

portable (ubuntu Feisty) => 192.168.1.6

poste2 (windows XP) => 192.168.1.10

Installation
La premire chose faire est dinstaller le paquet bind sur le serveur :
#sudo apt-get install bind

Configuration du serveur
Dans un premier temps, nous allons jeter un coup doeil au fichier de configuration gnral de
bind :
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local
include /etc/bind/named.conf.options ;
// prime the server with knowledge of the root servers
zone . {
type hint;
file /etc/bind/db.root ;
};
// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912
zone localhost {
type master;
file /etc/bind/db.local ;
};
zone 127.in-addr.arpa {
type master;
file /etc/bind/db.127;
};
zone 0.in-addr.arpa {
type master;

file /etc/bind/db.0;
};
zone 255.in-addr.arpa {
type master;
file /etc/bind/db.255;
};
// zone com { type delegation-only; };
// zone net { type delegation-only; };
// From the release notes:
// Because many of our users are uncomfortable receiving undelegated answers
// from root or top level domains, other than a few for whom that behaviour
// has been trusted and expected for quite some length of time, we have now
// introduced the root-delegations-only feature which applies delegation-only
// logic to all top level domains, and to the root domain. An exception list
// should be specified, including MUSEUM and DE , and any other top level
// domains from whom undelegated responses are expected and trusted.
// root-delegation-only exclude { DE ; MUSEUM ; };
include /etc/bind/named.conf.local ;
Vous laurez certainement remarqu, plusieurs fichiers sont inclus, du coup je vous invite
aussi regarder quoi ils ressemblent ne serait-ce que pour savoir ce qui est configur.
La dernire ligne indique linclusion du fichier : /etc/bind/named.conf.local, cest dans ce
fichier que nous allons rajouter les informations de la zone (du domaine) que nous souhaitons
configurer.
Jai, dans le fichier /etc/bind/named.conf.options comme suit :
options {
directory /var/cache/bind ;
// If there is a firewall between you and nameservers you want
// 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 and later use an unprivileged
// port by default.
//query-source address * port 53;
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0s placeholder.
forwarders {
192.168.1.1;
};

auth-nxdomain no; # conform to RFC1035


};
Tout ce passe au niveau de forwarders {, en effet jai mis ici ladresse IP de mon routeur, cela
permet de faire en sorte que si le serveur que nous sommes en train de configurer narrive pas
rsoudre une adresse donne il envoie la requete mon routeur.
Pour chaque domaine, il est ncessaire de configurer deux zones, la zone principale, et la zone
de recherche inverse.
Je ne rentrerais pas dans le dtails mais en gros,

la zone principale permet de faire pointer un nom de domaine pleinement qualifi


(FQDN = Full Qualified Domain Name) sur une adresse IP, pour information un nom
de domaine pleinement qualifi est de la forme : hote.domaine.extension.

la zone de recherche inverse, permet de faire, comme son nom lindique, linverse,
cest--dire de faire pointer une adresse IP sur un FQDN.

Cration de la zone principale


Dans le fichier /etc/bind/named.conf.local nous allons rajouter les informations suivantes :
//
// Do any local configuration here
//
zone mondomaine.local {
type master;
file mondomaine.local.hosts ;
allow-update { none; };
};
Ces informations vont crer le domaine : mondoamaine.local, la zone est de type master
(cest--dire maitre), le fichier qui contiendra le dtails des machines de mon domaine est
/etc/bind/mondomaine.local.hosts, et je nautorise pas de mise jour.
Pour en savoir plus sur la configuration dune zone, je vous invite visiter le site officiel de
bind (http://www.isc.org).
La dernire ligne nest pas indispensable.

Cration de la zone de recherche inverse


Toujours dans le fichier /etc/bind/named.conf.local nous allons rajouter les informations
suivantes :
zone 1.168.192.in-addr.arpa {
type master;
file 1.168.192.in-addr.arpa.zone ;
};

L je crois que vous allez me dire, oulala, cest quoi ce nom ?


Cest en fait assez simple , il sagit en fait de ladresse de votre rseau invers, en gros si les
adresses ip de votre rseau sont de la forme, 192.168.1.X, la zone inverse sera : 1.168.192.inaddr.arpa, la fin (in-addr.arpa).
Pour en savoir plus sur lextension .arpa : http://fr.wikipedia.org/wiki/.arpa

Configuration de la zone principale


Dans la section principale, on a dfini que le fichier /etc/bind/mondomaine.local.hosts
contiendrait la dfinition des htes de notre rseau.
Il faut donc crer ce fichier, et le remplir.
Mais regardons quoi ressemble ce fichier, nous le dtaillerons plus ensuite :
@

IN SOA server.mondomaine.local. webmaster.mondomaine.local. (


2007051401 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expires after 1 week
86400 ) ; minimum TTL of 1 day
@ IN NS server.mondomaine.local.
server IN A 192.168.1.2
mimiz IN A 192.168.1.5
portable IN A 192.168.1.6
poste2 IN A 192.168.1.10
router IN A 192.168.1.1
Voil, voil, voil
Bon a nous dis quoi tout a ?
Un fichier de zone DOIT toujours commencer par la dfinition dun SOA (Start Of Authority)
:
Le @ spcifie la zone dfinie dans le fichier configuration
Ensuite IN prcise quil sadit dune zone Internet, il sagit presque de la valeur par
dfaut, jai bien dis presque , en effet, les cas o vous aurez a prciser un autre type de
zone sont trs rares
Ensuite on prcise le mot cl SOA suivi du FQDN du serveur qui hberge la zone
(server.mondomaine.local.), puis, sur la meme ligne une adresse email de contact
(webmaster.mondomaine.local.).
Dans ce dernier cas, le premier . est considr comme un @ (il sagit dune
convention), vous auriez pu mettre aussi : moi.fai.com.
Attention : Les . la fin de server.mondomaine.local. et webmaster.mondomaine.local.
sont obligatoires !
Ensuite il faut dfinir les lments suivant :

Le numro de srie (serial), gnralement la date du jour suivi dun incrment :


YYYYMMDDxx.

Le temps de rafraichissement (refresh), ici 6 heures.

Le temps entre deux essais (retry), ici 1 heures.

Le temps dexpiration (expire) ici 1 semaine.

La valeur TTL minimum (minimum TTL), ici, 1 jour.

Toutes les valeurs de temps sont prcises en secondes Je vous rassure, ce nest pas
obligatoire, il est possible de prciser 1W pour une semaine, ou encore 1H pour une heure
Tout de suite aprs lenregistrement SOA, il faut prciser le serveur DNS a consulter :
@ IN NS server.mondomaine.local.
En gros, l on dit : la machine server.mondomaine.local est un serveur de nom (NS = Name
server) pour la zone.
Ensuite nous avons la dfinition des machines de notre rseau :
server IN A 192.168.1.2
mimiz IN A 192.168.1.5
portable IN A 192.168.1.6
poste2 IN A 192.168.1.10
router IN A 192.168.1.1
Chaque ligne Prcise :
le nom du pc le type de zone le type denregistrement ladresse IP de la machine
le type denregistrement A (A pour Alias) permet donc de pointer, par exemple, server sur
ladresse ip 192.168.1.2).
Bon arretons nous l pour le moment, nous verrons un peu plus loin dautres type
denregistrement
Mais avant configurons la zone de recherche inverse :

Configuration de la zone de recherche inverse


Comme dans la section prcdente, commenonc par regarder le fichier :
@

IN SOA server.mondomaine.local. webmaster.mondomaine.local. (


2007051401 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expires after 1 week
86400 ) ; minimum TTL of 1 day
@ IN NS server.mondomaine.local
1 IN PTR router.mondomaine.local.
2 IN PTR server.mondomaine.local.
5 IN PTR mimiz.mondomaine.local.
6 IN PTR portable.mondomaine.local.
10 IN PTR poste2.mondomaine.local
Je ne vais pas, ici, r-expliquer le dbut du fichier
Les lignes denregistrements de machine sont un peu diffrentes, en effet, vous remarquerez

que toutes les lignes commencent par un nombre, en fait ce nombre est la fin de ladresse ip
de la machine
Cest en fait ce quil y a aprs : 192.168.1., mon routeur ladresse ip 192.168.1.1 alors jai
mis 1 en face de son FQDN.
Le type denregistrement est PTR.
Bon ben voil, normalement cest bon votre serveur DNS est configur, et bien alors on va
tester.

Configuration des clients


Sous Windows
Je ne dtaillerais pas ici la configuration dun poste client sous Windows (si quelquun veut
bien le faire ce serait sympa
)

Sous Linux
Editez le fichier /etc/resolv.conf, puis reinseignez le comme suit :
domain mondomaine.local
nameserver 192.168.1.2

Test de la configuration
Les outils
Losrque vous avez install le paquet bind sur votre distribution prfre, certains outils ont t
ajouts :

named-checkconf : Permet de tester si vos fichiers de configurations sont correctement


crits

named-checkzone : permet de tester une zone, syntraxe :


#sudo named-checkzone mondomaine.local /etc/bind/mondomaine.local.hosts

nslookup : permet dinterroger un serveur de nom.

dig : permet aussi dinterroger un serveur de nom.

Si les tests de configuration sont correctement passs , redmarrer votre serveur :


#sudo /etc/init.d/bind9 restart

Interrogation du serveur

remi@portable:~$ nslookup
> server 192.168.1.2
Default server: 192.168.1.2
Address: 192.168.1.2#53
> mimiz.mondomaine.local
Server: 192.168.1.2
Address: 192.168.1.2#53
Name: mimiz.monomaine.local
Address: 192.168.1.5
Ou, le serveur bien rsolu mimiz.mondomaine.local en 192.168.1.5 !!
Testons la zone de recher inverse :
remi@portable:~$ nslookup
> server 192.168.1.2
Default server: 192.168.1.2
Address: 192.168.1.2#53
> 192.168.1.6
Server: 192.168.1.2
Address: 192.168.1.2#53
6.1.168.192.in-addr.arpa name = portable.mondomaine.local.
Et bien, cest pas ty cool tout a ?
Tout fonctionne comme il faut !

Utilisation des CNAME


Comme je lai promis un peu plus haut, nous allons voir un autre type denregistrement utile :
le type : CNAME (pour Canonical Name).
Ce type denregistrement permet de faire pointer un nom diffrent sur une machine prcise et
sans passer par ladresse ip
Le meilleur exemple pour ce type denregistrement est le nom dhte : www
On va dire par exemple que votre serveur contient aussi un serveur web, alors dans ce cas ce
serait bien davoir www.mondomaine.local qui pointe sur votre serveur.
Reprenons le fichier de zone principal :
@

IN SOA server.mondomaine.local. webmaster.mondomaine.local. (


2007051401 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expires after 1 week
86400 ) ; minimum TTL of 1 day
@ IN NS server.mondomaine.local.
server IN A 192.168.1.2
mimiz IN A 192.168.1.5
portable IN A 192.168.1.6
poste2 IN A 192.168.1.10

router
www

IN
IN

A 192.168.1.1
CNAME server

Jai donc simplement rajout une ligne assez parlante il me semble, faisons un chti test :
ping www.mondomaine.local
PING server.mondomaine.local (192.168.1.2) 56(84) bytes of data.
64 bytes from server.theodys.net (192.168.1.2): icmp_seq=1 ttl=64 time=0.110 ms
64 bytes from server.theodys.net (192.168.1.2): icmp_seq=2 ttl=64 time=0.109 ms
64 bytes from server.theodys.net (192.168.1.2): icmp_seq=3 ttl=64 time=0.105 ms
64 bytes from server.theodys.net (192.168.1.2): icmp_seq=4 ttl=64 time=0.116 ms
mimiz.theodys.net ping statistics
4 packets transmitted, 4 received, 0% packet loss, time 2997ms
rtt min/avg/max/mdev = 0.105/0.110/0.116/0.004 ms
Vous remarquerez que ladresse ip (et le nom rel) de server ont t renvoys comme il faut.
Amusez vous faire la mme chose avec www.google.com par exemple, et surprise, ca
pointe vers une autre machine