II. INSTALLATION ET CONFIGURATION DE BASE▲
II-1. Paquet d'installation▲
Le paquetage qui régit l'installation du serveur DNS sous Linux s'appelle bind. Il existe déjà en plusieurs versions. Il faut aussi dire qu'il existe d'autres paquets qui implémentent le DNS, bind est le plus connu et le plus utilisé. La version courante est le 9.
II-2. Installation▲
Comme tout paquet linux, il existe trois méthodes d'installation, qui sont décrites ici
avec le cas d'Apache. Par exemple, sous Debian, on lance la commande: apt-get install bind9
Après installation, les répertoires /etc/bind/ et /var/bind/ (ou /var/cache/bind/) sont créés. (Ils peuvent être différents sous d'autres distributions).
Ils contiennent les fichiers qui assurent le fonctionnement du serveur DNS.
II-3. Configuration de base▲
II-3-1. Problématique▲
Problème
Créer dans un intranet un domaine sigui.ci. La machine qui doit héberger ce domaine à pour adresse IP 192.168.1.10. Sur ce domaine, sera mis en place deux sous-domaines
l'un pour l'hébergement d'un site web :www.sigui.ci, et l'autre pour héberger un serveur de messagerie : mail.sigui.ci .
Résolution
Comme décrit dans l'architecture de fonctionnement interne, résoudre ce problème, c'est d'abord configuré le fichier principal puis paramétrer les différents fichiers de zone.
II-3-2. Configuration du fichier principal▲
Le fichier principal de configuration de notre serveur est named.conf. Il se situe dans le répertoire /etc/bind/. Cela peut changer selon les distributions. Debian, par exemple, fait la répartition de la configuration entre plusieurs fichiers.
* Paramètres de configuration de base:
Les principaux paramètres de configuration sont :
PARAMETRE | EXPLICATION |
---|---|
options | ouvre les balises pour les options générales de configuration |
directory | pour définir le dossier dans lequel sera sauvegardé les fichiers de zone |
query-source | le port d'écoute du serveur |
forward | option de transfert de la requête vers un autre serveur |
forwarders | serveur DNS de réception des requêtes transférées |
zone | ouvre les balises pour la configuration d'une zone |
type | type de la zone |
file | fichier de configuration de la zone |
Pour obtenir la liste globale de tous les paramètres d'options du BIND, cliquez ici.
* Exemple de configuration (résolution du problème posé):
A l'installation, le fichier named.conf existe déjà avec un contenu. Les options générales y sont déjà définies. On a par exemple :
options { <br/>
directory "/var/bind"; <br/>
query-source port 53; <br/>
forward only; <br/>
forwarders { x.x.x.x;}; <br/>
};
Au contenu existant du fichier principal, on ajoute les lignes suivantes :
#Déclaration du fichier de résolution directe<br/>
zone "sigui.ci" in {<br/>
type master ;<br/>
file "/var/bind/sigui.ci.direct.db" ;<br/>
}<br/>
#Déclaration du fichier de résolution inverse<br/>
zone "1.168.192.in-addr.arpa" in {<br/>
type master ;<br/>
file "/var/bind/sigui.ci.reverse.db";<br/>
}<br/>
Remarque
La nomenclature des fichiers de résolution dépendent exclusivement de celui qui configure. Il doit pouvoir les reconnaitre facilement.
II-3-3. Configuration des fichiers de zone▲
Le répertoire /var/bind/ a certes, été crée pendant l'installation de bind, mais il ne contient encore aucun fichier.
Il faudra alors y créer les fichiers de zone sigui.ci.direct.db et sigui.ci.reverse.db, puis définir les paramètres de configuration
de la zone (domaine) sigui.ci.
* Paramètres de configuration des fichiers de zone
Les principaux paramètres de configuration des fichiers de zone sont :
PARAMETRE | EXPLICATION |
---|---|
SOA | Start Of Authority : démarre la configuration d'une zone. C'est la délégation d'autorité. |
TTL | Time To Live : durée de vie du SOA |
Serial | Numéro de version du fichier, sert à la synchronisation. Généralement, on écrit la date de création de la zone pour composer ce numéro. |
Refresh | Intervalle de temps pour le rafraichissement, sert aussi à la synchronisation entre des serveurs primaires et secondaires, par exemple. |
Retry | Fréquence de ressaie en cas d'échec des rafraichissements. Utilisé par les serveurs secondaires. |
Expire | Principalement utilisé par un serveur secondaire, c'est le temps maximal pendant les informations reçues d'un serveur primaire reste valide. |
Negative Cache TTL | Durée de vie, par défaut dans le cache d'un serveur qui n'a pas d'autorité sur cette zone. |
IN | Désigne l'allocation. Commande utilisé pour attribuer les valeurs aux options. |
NS | Pour définir le nom du serveur de nom de la zone. |
A | Pour attribuer un nom à une machine à partir de son adresse IP. |
MX | Pour définir un serveur de messagerie, la valeur de ce paramètre est accompagnée de la priorité (préférence) de ce serveur. |
CNAME | C'est une option pour donner un alias à une machine déjà définit avec A. |
HINFO | Description d'un hôte, d'une machine. |
TXT | Chaine de caractères, utilisé pour des commentaires |
PTR | Utilisé dans le fichier de résolution inverse, permet d'associer l'adresse IP à un nom. |
* Exemple de configuration des fichiers (résolution du problème posé)
Après leur création, ces fichiers doivent être édités de la façon suivante :
Le premier fichier (résolution directe) sigui.ci.direct.db :
$TTL 604800<br/>
;on délègue l'administration de cette zone à root@sigui.ci<br/>
;@ est remplacé par '.' Dans l'adresse du root<br/>
@ IN SOA sigui.ci. root.sigui.ci. (<br/>
20080605 ; Serial<br/>
604800 ; Refresh<br/>
86400 ; Retry<br/>
2419200 ; Expire<br/>
604800 ) ; Negative Cache TTL<br/>
; Serveur de noms<br/>
@ IN NS sigui.ci.<br/><br/>
; Les serveurs<br/>
www IN A 192.168.1.10<br/>
mail IN A 192.168.1.10<br/>
mail IN MX 10 mail.sigui.ci.<br/>
Le deuxième fichier (résolution inverse) sigui.ci.reverse.db
$TTL 604800<br/>
1.168.192.in-addr.arpa IN SOA sigui.ci. root.sigui.ci. (<br/>
20080605 ; Serial<br/>
604800 ; Refresh<br/>
86400 ; Retry<br/>
2419200 ; Expire<br/>
604800 ) ; Negative Cache TTL<br/>
; Serveur de noms<br/>
@ IN NS sigui.ci.<br/>
; Les machines et les serveurs<br/>
10 IN PTR mail.sigui.ci.<br/>
10 IN PTR www.sigui.ci.<br/>
N.B: Dans les fichiers de configuration des zones, le caractère point virgule ( ;) précède les commentaires.
II-4. Opérations post-configurations▲
Après cette configuration, deux opérations déterminantes sont à poser :
- redémarrer le serveur DNS
- inscrire le serveur comme DNS préféré des machines clientes. Le serveur lui-même doit aussi être configuré comme son propre client.
II-4-1. Redémarrage du serveur▲
La commande de démarrage du serveur varie d'une distribution à une autre.
Sous RedHat et Fedora : /etc/rc.d/init.d/bind9 start
Sous Debian : /etc/init.d/bind9 start
II-4-2. Inscription du serveur▲
Le serveur DNS doit être reconnu par les autres machines comme tel.
Pour les machines du réseau sous Windows :
1-> Aller dans Connexions Réseaux
2-> Choisir Réseau Local
3-> Entrer dans les propriétés du réseau local
4-> Choisir Protocole internet TCP/IP
5-> Ecrire l'adresse IP de la machine qui héberge le serveur DNS dans les champs requis
6-> Valider toutes ses modifications
Pour les machines du réseau sous Linux, il s'agit d'éditer le fichier /etc/resolv.conf selon l'exemple suivant :
search sigui.ci<br/>
nameserver 192.168.37.240<br/>
Il est aussi possible de le faire via une interface graphique sous Linux. Mais la procédure à suivre diffère d'une distribution à une autre.
II-4-3. Tests de configuration▲
Il faut maintenant tester le fonctionnement du serveur. Il existe deux principaux utilitaires qui le permettent : nslookup et dig.
- nslookup permet de retrouver l'adresse IP d'une machine à part de son nom DNS, et l'inverse. Il faut préciser que cela est propre à un
réseau bien donné. Le premier serveur DNS interrogé est celui-ci spécifié dans l'inscription. Sous UNIX, nslookup est de plus en plus obsolète,
mais il reste encore d'actualité sous Windows. Un exemple de résultat obtenu avec nslookup est :
$ nslookup
> www.sigui.ci
Server: 192.168.1.10
Address: 192.168.1.10#53 - dig : analogue à nslookup, il permet de spécifier le type de serveurs ou de machines qu'on veut contacter. Par exemple : dig MX mail.sigui.ci