PLAN
PRESENTATION
Le Domain Name System (ou DNS, système de nom de domaine) est un service qui permet
d'établir une correspondance entre une adresse IP et un nom de domaine.
Ce nom de
domaine est composé de plusieurs parties et se lit de droite à gauche.
Par exemple :
« www.spiderwork.net. » se lira de la sorte :
- le « . » de fin représente la racine
- le « .net » est le domaine de premier niveau (TLD : Top Level Domain)
- le « .spiderwork » est le nom de domaine à proprement
- le « www » est le nom de machine qui offre le service. Ce nom dépend de l'administrateur qui choisit comment appeler ses machines.
Dans cet article vous sera présentée l'implémentation Linux appelé « Bind » de ce service, qui représente à elle seule environ 70% des DNS présents sur le web.
INSTALLATION
Comme pour la plupart des logiciels Linux l'installation peut s'effectuer à partir des
sources ou depuis les paquetages de votre distribution.
L'installation depuis ces
derniers a le mérite d'être simple et rapide, c'est pour cela qu'elle vous sera détaillée
ici.
Elle consiste en l'installation de 2 paquetages :
- bind
- bind-util
Le premier contient le serveur et le second un ensemble d'outils permettant d'effectuer
des requêtes sur celui-ci.
Une fois installé vous pouvez démarrer le serveur via la
commande : « named -c /etc/named.conf ».
CONFIGURATION
Fichier principal :
Séparé en plusieurs fichiers (named.conf, named.conf.local, named.conf.options) incluse
dans le fichier named.conf par la directive « include nomFichier » ou d'un
seul tenant le fichier peut être séparé en 2 parties.
La première contenant les
directives d'exécution et la seconde contenant les zones.
L'exemple suivant est un
fichier d'un seul tenant ou les 2 parties sont explicitement présentées :
//DIRECTIVES D'EXÉCUTIONS
//configuration des log
logging {
category
lame-servers{null;};
category cname{null;};
}
//options
options {
directory « /etc/bind »;
//repertoire des fichiers de configuration
version « SECRET »;
//masquer la version de bind
forward first;
//votre serveur répond le premier
forwarders {
212.27.40.240;
212.27.40.241;
}
auth-domain no;
}
//DECLARATION DES ZONES
//les servers root
zone « . » {
type hint;
file « /etc/bind/db.root »;
}
//la zone localhost
zone « localhost » {
type
master;
file « /etc/bind/db.local »;
}
//la zone inverse localhost
zone « 127.in-addr.arpa »{
type master;
file « /etc/bind/db.127 »;
}
//la zone inverse réseau
zone « 0.in-addr.arpa » {
type master;
file « /etc/bind/db.0 »;
}
//la zone inverse broadcast
zone « 255.in-addr.arpa »{
type master;
file « /etc/bind/db.255 »;
}
//la zone de recherche de votre domaine
zone « mondomaine.fr » {
type master;
file
« /etc/bind/db.mondomaine.fr »;
}
//la zone inverse de votre domaine
zone « 0.168.192.in-addr.arpa » {
type master;
file
« /etc/bind/db.192.168.0 »;
}
Une fois le fichier de configuration créé il vous faut créer et renseigner l'ensemble des fichiers de zone.
Zone directe de recherche
;entête quelconque de fichier
$TTL 86400; tps en seconde au dela duquel les
dns tiers ne doivent pas garder les enregistrements de votre zone en cache.(on met 1
journée)
;s'en suit l'enregistrement de début d'autorité (SOA : Start Of Authority)
@ IN SOA
ns0.mondomaine.fr admin.mondomaine.fr (
2010110101;
serial, par convention constituée de la date du jour AAAAMMJJ + le nbr de fois
dont il a été modifié ce jour-là
28800; refresh, intervalle de temps en seconde durant lequel le serveur
secondaire attend avant de verifier l'enregistrement SOA du serveur DNS primaire
300; retry, intervalle de temps
qu'attendent les serveurs secondaires avant de réessayer une requête vers le serveur
primaire si ce dernier n'est pas accessible.
1209600; expire, c'est l'intervalle de temps en
seconde durant lequel les serveurs DNS secondaires attendent avant de rejeter les
informations de zones s'ils n'ont pas contacté le serveur DNS primaire.
86400; Time To Live, duré minimum
du TTL d'un enregistrement DNS de la zone.
;declaration d'un serveur de noms(NS) et d'un serveur de mail
@ IN NS
ns0.mondomaine.fr;
@ IN MX 10 ns0.mondomaine.fr;
;enregistrement de type A (dns correspondant à l'IP)
@ IN A 192.168.0.1
ns0 IN 1
192.168.0.1
;enregistrement des alias
www IN CNAME ns0
ftp IN CNAME ns0
pop IN CNAME ns0
smtp
IN CNAME ns0
mail IN CNAME ns0
Zone de recherche inversé
$TTL 86400
@ IN SOA ns0.mondomaine.fr admin.mondomaine.fr (
2010111001;serial
604800;refresh
86400;retry
2419200;expire
604800);Negative cache TTL
@ IN NS ns0.mondomaine.fr
;le RR (ressource record) PTR permet
de définir le nom associé à l'adresse ip
1 IN PTR ns0.mondomaine.fr
Détail des enregistrements :
1 hote 2 classe 3 type (4 priorités)
5 valeur
ns0 IN A
192.168.0.1
www IN CNAME ns0
1 soit une machine (nom), soit toutes les machines de la zone(@(remplace le nom de la
zone))
2 IN
3 type d'enregistrement
4 la priorité (la plus basse l'emporte sur
une requête de meme type)
5 donnée à enregistrer
Type d'enregistrement :
A : Hôte local, utilisé pour lier un nom de domaine à une adresse IP
PTR :
Pointeur(PTR), utilisé pour lier une adresse IP avec un nom de domaine
NS : Serveur
de nom, utilisé pour lier un nom de domaine avec le nom d'un ordinateur
CNAME : nom
canonique, utilisé pour lier un nom de domaine canonique avec un autre nom principal ou
canonique.
MX : Serveur de messagerie(MX), utilisé pour lier un nom de domaine avec
le nom d'un ordinateur qui échange ou transmet le courrier.
Le fichier /etc/resolv.conf :
Vous devez indiquer le domaine auquel vous appartenez et l'adresse IP du serveur DNS à
tester, exemple :
search mondomaine.fr
nameserver 127.0.01
DNS secondaire :
Le DNS secondaire sert à répondre aux requêtes que le DNS primaire ne peut traiter,
principalement dans le cas d'une surcharge ou d'une panne de ce dernier.
La
configuration est la même sauf que les zones ne sont pas créées, mais copiées.
Ajouter
ces lignes au fichier /etc/named.conf :
zone « mondomaine.fr »
{
type slave;
file « /etc/bind/db.slave.mondomaine.fr »;
masters {
192.168.0.1;
}
}
zone « 0.168.192.in-addr.arpa » {
type
slave;
file « /etc/bind/db.slave.192.168.0 »;
masters {
192.168.0.1;
}
}
Dans cet exemple, le serveur recopiera les fichiers de zone du
serveur DNS primaire qui se trouve à l'adresse 192.168.0.1.
Une fois installé vous pouvez démarrer le serveur via la commande : « named -c /etc/named.conf ».
TESTER VOTRE SERVEUR
- outils serveurs :
- Vérifier la configuration via les commandes suivantes :
« named-checkconf /etc/named.conf »
« named-checkconf -z » - Vérifier vos zones :
« named-checkzone mondomaine.fr /etc/bind/db.mondomaine.fr »
« named-checkzone mondomaine.fr /etc/bind/db.192.168.0 »
- Vérifier la configuration via les commandes suivantes :
- la commande host
- Tester la recherche directe :
« host ns0 » : doit retourner 192.168.0.1 - Tester la recherche inversé :
- Tester la recherche directe :
« host 192.168.0.1 » : doit retourner ns0.mondomaine.fr
- Tester les alias :
« host www » : doit retourner 192.168.0.1
- la commande nslookup
- afficher l'aide avec « help » :
- « set type=NS » pour avoir la liste des entre de type NS
- « set q=mx » pour avoir le mail exchanger
- « mondomaine.fr » pour tester le domaine mondomaine.fr
LIENS
http://www.isc.org/software/bind/faq
http://www.aidoweb.com/tutoriaux/installer-configurer-serveur-dns-bind-9-641
http://irp.nain-t.net/doku.php/160dns:30_construire_un_dns
http://www.linux-kheops.com/doc/redhat72/rhl-rg-fr-7.2/s1-bind-configuration.html