Pour résoudre les noms de domaine et les adresses IP, et afin de localiser les machines des réseaux distants, nous avons vu au chapitre Noms logiques et DNS qu’il est plus simple de mémoriser des noms que des nombres, surtout lorsqu’on considère le nombre d’adresses sur Internet. Les ordinateurs, au contraire, n’utilisent que les adresses IP pour communiquer via TCP/IP.
Lorsque vous entrez sur Internet en spécifiant une adresse comme, par exemple, http://www.aidburkina.org, votre navigateur envoie une requête au Serveur de Domaine de votre fournisseur d’accès, qui essaie de déterminer l’adresse IP correspondante. Si votre fournisseur n’est pas l’autorité pour cette zone, il transmet la requête au domaine autorité, jusqu’à ce qu’elle arrive au domaine indiqué.
Cela signifie que chaque serveur de domaine dispose de toutes les informations relatives à la zone qu’il contrôle, et aussi des informations de base sur les autres zones. Quand une requête est envoyée en dehors de la zone d’autorité, le serveur sait au minimum où chercher. Cela signifie que la requête peut avoir à transiter par plusieurs serveurs de domaine avant d’atteindre la destination finale.
Pour l’installation d’un Serveur de Noms de Domaine (DNS), nous utilisons l’application BIND (Berkeley Internet Name Daemon). Au préalable, il est nécessaire d’installer les paquetages bind et named. Durant l’installation, le fichier /etc/named ainsi que répertoire /var/named sont créés.
Nous allons installer le domaine fictif ouaga.bf
| Enregistrement SOA : | Désigne l'autorité pour le domaine, | |
| Enregistrement NS : | Indique le Serveur de Noms pour ce domaine. |
Les enregistrements suivants donnent les informations sur les hôtes du domaine :
| A : | translation nom --> adresse, | |
| PTR : | translation adresse --> nom (translation inverse), | |
| CNAME : | nom canonique (nom officiel de l'hôte), | |
| TXT : | information libre (texte), | |
| RP : | personne responsable. |
Commentaires : les commentaires commencent par un point-virgule et prennent fin avec la ligne.
Enregistrement SOA :
Le premier enregistrement de chaque fichier est l’Autorité Primaire (SOA, Start Of Authority). Cette ligne indique que ce Serveur de Noms est la source primaire d’information sur les hôtes de ce domaine. Notre Serveur de Noms, que nous nommerons ns1, est autorité sur le domaine ouaga.bf du fait de l’enregistrement SOA.
Exemple :
| ouaga.bf. IN SOA ns1.ouaga.bf. | root.ouaga.bf. ( | |
| 1 ; Série pour mise à jour 10800 ; Mise à jour 3 heures 3600 ; Nvelle tentative après 1h 604800 ; Expire après 1 semaine 86400 ) ; Minimum TTL 1 semaine |
Le point à la fin des noms est très important !
Enregistrement NS :
L’enregistrement NS (Name Server) de notre domaine ouaga.bf est :
ouaga.bf. IN NS ns1.ouaga.bf.
ouaga.bf. IN NS ns2.ouaga.bf.
Ces enregistrements indiquent que deux Serveurs de Noms existent pour le domaine ouaga.bf. Les Serveurs de Noms sont installés sur les hôtes ns1 et ns2.
Enregistrements d’adresses et d’alias :
Il reste à indiquer les correspondances adresses —> noms d’hôtes.
A record
; Adresses des hôtes
localhost.ouaga.bf. IN A 127.0.0.1
machine1.ouaga.bf. IN A 192.253.253.2
ns1.ouaga.bf. IN A 192.253.253.3
ns2.ouaga.bf. IN A 192.253.253.4
; Alias
machine2.ouaga.bf. IN CNAME ns1.ouaga.bf.
Dans le premier blocs, le "A" indique une adresse. Le deuxième est la table des alias : nous employons un enregistrement CNAME (nom canonique, nom d’hôte complet).
Enregistrements PTR :
Les enregistrements de type PTR (pointeur) correspondent à enregistrement par hôte. Ils permettent la résolution inverse (retrouver un nom de domaine à partir de l’adresse IP). Les adresses sont inversées, puis "in-addr.arpa" est ajouté.
; Enregistrements PTR
2.249.249.192.in-addr.arpa. IN PTR ns1.ouaga.bf.
3.249.249.192.in-addr.arpa. IN PTR machine1.ouaga.bf.
Etape 1 : Modification du fichier /etc/named.conf afin de spécifier les zones dont notre serveur a autorité ainsi que pour spécifier les adresses DNS spécifiés par notre fournisseur d’accès.
Extrait du fichier de configuration (jupiter.ouaga.bf étant le serveur DNS administrant la zone ouaga.bf) :
options {
directory "/var/named";
forwarders {
212.52.129.34;
};
};
zone "." {
type hint;
file "root.hints";
};
zone "ouaga.bf" {
type master;
file "ouaga.bf";
};
zone "0.0.127.in-addr.arpa" {
notify no;
type master;
file "127.0.0.rev";
};
zone "20.90.196.in-addr.arpa" {
notify no;
type master;
file "196.90.20.rev";
};
Pour définir un serveur DNS secondaire, il faudrait spécifier :
zone "ouaga.bf" {
type slave;
file "ouaga.bf";
masters {192.253.253.3};
};
Etape 2 : Modification du fichier /var/named/named.local : on remplace localhost par ns1.ouaga.bf (excepté pour le dernier localhost de ce fichier).
AT IN SOA jupiter.ouaga.bf. root.ouaga.bf. (
2001042401 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS jupiter.ouaga.bf.
1 IN PTR localhost.
Etape 3 : Création sous /var/named du fichier ouaga.bf contenant :
AT IN SOA jupiter.ouaga.bf. root.ouaga.bf. (
2001042502; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS jupiter.ouaga.bf.
IN MX 5 196.90.20.102
localhost IN A 127.0.0.1 graphisiao IN A 196.90.20.101 nasso IN A 196.90.20.102 hiper IN A 196.90.20.103 onatel IN A 196.90.20.104 jupiter IN A 196.90.20.105 makaya IN A 196.90.20.106 bib IN A 196.90.20.107 lonab IN A 196.90.20.108 ziga IN A 196.90.20.109 cenatrin IN A 196.90.20.110 datasys IN A 196.90.20.111 mars IN A 196.90.20.112 www IN CNAME ziga.ouaga.bf. www.lonab IN CNAME lonab.ouaga.bf. www.chat.lonab IN CNAME lonab.ouaga.bf. chat.lonab IN CNAME lonab.ouaga.bf. www.ziga IN CNAME ziga.ouaga.bf. private.ziga IN CNAME ziga.ouaga.bf. www.private IN CNAME ziga.ouaga.bf. chat.ziga IN CNAME ziga.ouaga.bf. www.chat.ziga IN CNAME ziga.ouaga.bf. forum.ziga IN CNAME ziga.ouaga.bf. www.forum.ziga IN CNAME ziga.ouaga.bf. www.hiper IN CNAME hiper.ouaga.bf. chat.hiper IN CNAME hiper.ouaga.bf. www.chat.hiper IN CNAME hiper.ouaga.bf. www.datasys IN CNAME datasys.ouaga.bf. www.chat.datasys IN CNAME datasys.ouaga.bf. chat.datasys IN CNAME datasys.ouaga.bf. www.cenatrin IN CNAME cenatrin.ouaga.bf. private.cenatrin IN CNAME cenatrin.ouaga.bf. chat.cenatrin IN CNAME cenatrin.ouaga.bf. www.chat.cenatrin IN CNAME cenatrin.ouaga.bf. www.planete IN CNAME planete.ouaga.bf. www.chat.planete IN CNAME planete.ouaga.bf. chat.planete IN CNAME planete.ouaga.bf. www.graphisiao IN CNAME graphisiao.ouaga.bf. www.chat IN CNAME graphisiao.ouaga.bf. chat IN CNAME graphisiao.ouaga.bf. www.mairie IN CNAME graphisiao.ouaga.bf. mairie IN CNAME graphisiao.ouaga.bf. www.mairie IN CNAME graphisiao.ouaga.bf. ouaga IN CNAME graphisiao.ouaga.bf.
Puis dans le fichier /etc/nsswitch.conf on doit avoir à la ligne hosts :
hosts: files dns
Etape 4 : rédémarrage du serveur DNS par la commande /etc/rc.d/init.d/named restart
Pour terminer la mise en oeuvre du serveur DNS, il est nécessaire de modifier le fichier /etc/resolve en y plaçant :
domain ouaga.bf
nameserver 192.249.249.2
Le test du bon fonctionnement de notre serveur DNS s’effectue avec la commande nslookup.