Debian logo [inetdoc.LINUX]

3. Installation du service DNS cache-only

On sait que le logiciel à utiliser est appelé Berkeley Internet Name Domain (BIND). On oriente donc la recherche dans la base de données des paquets Debian vers la chaîne de caractère bind*.

saphir:~$ dpkg -l bind*
Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
| État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé
|/ Err?=(aucune)/H=à garder/besoin Réinstallation/X=les deux (État,Err: majuscule=mauvais)
||/ Nom               Version           Description
+++-=================-=================-===========================================
pn  bind              <néant>           (aucune description n'est disponible)
pn  bind-dev          <néant>           (aucune description n'est disponible)
pn  bind-doc          <néant>           (aucune description n'est disponible)
pn  bind9             <néant>           (aucune description n'est disponible)
pn  bind9-doc         <néant>           (aucune description n'est disponible)
ii  bind9-host        9.3.1-2           Version of 'host' bundled with BIND 9.X
pn  bindgraph         <néant>           (aucune description n'est disponible)

Les paquetages à installer à partir de la liste ci-dessus sont : bind9 et bind9-doc. Une fois l'opération # apt-get install bind9 bind9-doc effectuée, on vérifie le résultat.

saphir:~# dpkg -l bind* |grep ^ii
ii  bind9          9.3.1-2        Internet Domain Name Server
ii  bind9-doc      9.3.1-2        Documentation for BIND
ii  bind9-host     9.3.1-2        Version of 'host' bundled with BIND 9.X

On valide l'activité du service à partir de la liste des processus, des ports ouverts en écoute sur le réseau et des messages système. La «singularité» du service DNS provient du nom du processus exécuté : named.

Liste des processus actifs
saphir:~# ps aux |grep named
bind      7503  0.0  0.6  29816  2812 ?     Ssl  09:46   0:00 /usr/sbin/named -u bind
Ports réseau ouverts en écoute
saphir:~# lsof -i |grep named
named     7503     bind   20u  IPv4  13663       UDP localhost.localdomain:domain
named     7503     bind   21u  IPv4  13664       TCP localhost.localdomain:domain (LISTEN)
named     7503     bind   22u  IPv4  13665       UDP 192.168.1.7:domain
named     7503     bind   23u  IPv4  13666       TCP 192.168.1.7:domain (LISTEN)
named     7503     bind   24u  IPv4  13667       UDP *:1072
named     7503     bind   25u  IPv6  13668       UDP *:1073
named     7503     bind   26u  IPv4  13669       TCP localhost.localdomain:953 (LISTEN)
named     7503     bind   27u  IPv6  13670       TCP ip6-localhost:953 (LISTEN)
saphir:~# netstat -autp |grep named
tcp        0      0 192.168.1.7:domain      *:*                LISTEN     7503/named
tcp        0      0 localhost.locald:domain *:*                LISTEN     7503/named
tcp        0      0 localhost.localdoma:953 *:*                LISTEN     7503/named
tcp6       0      0 ip6-localhost:953       *:*                LISTEN     7503/named
udp        0      0 *:1072                  *:*                           7503/named
udp        0      0 192.168.1.7:domain      *:*                           7503/named
udp        0      0 localhost.locald:domain *:*                           7503/named
udp6       0      0 *:1073                  *:*                           7503/named
Messages systèmes
saphir:~# tail -150 /var/log/daemon.log |grep named
May 26 09:46:59 localhost named[7503]: starting BIND 9.3.1 -u bind
May 26 09:46:59 localhost named[7503]: found 1 CPU, using 1 worker thread
May 26 09:46:59 localhost named[7503]: loading configuration from '/etc/bind/named.conf'
May 26 09:46:59 localhost named[7503]: listening on IPv4 interface lo, 127.0.0.1#53
May 26 09:46:59 localhost named[7503]: listening on IPv4 interface wlan0, 192.168.1.7#53
May 26 09:46:59 localhost named[7503]: command channel listening on 127.0.0.1#953
May 26 09:46:59 localhost named[7503]: command channel listening on ::1#953
May 26 09:46:59 localhost named[7503]: zone 0.in-addr.arpa/IN: loaded serial 1
May 26 09:46:59 localhost named[7503]: zone 127.in-addr.arpa/IN: loaded serial 1
May 26 09:46:59 localhost named[7503]: zone 255.in-addr.arpa/IN: loaded serial 1
May 26 09:46:59 localhost named[7503]: zone localhost/IN: loaded serial 1
May 26 09:46:59 localhost named[7503]: running

Comme tout service implanté sur un système GNU/Linux, les fichiers de configuration sont placés dans le répertoire /etc/.

saphir:~# dpkg -L bind9 |grep etc
/etc
/etc/bind
/etc/bind/db.0
/etc/bind/db.255
/etc/bind/db.empty
/etc/bind/zones.rfc1918
/etc/bind/db.127
/etc/bind/db.local
/etc/bind/db.root
/etc/bind/named.conf
/etc/bind/named.conf.local
/etc/bind/named.conf.options
/etc/init.d
/etc/init.d/bind9

De la même façon, les données du services doivent être placées dans le répertoire /var/.

saphir:~# dpkg -L bind9 |grep var
/var
/var/cache
/var/cache/bind1
/var/run
/var/run/bind
/var/run/bind/run2

1

C'est dans le répertoire /var/cache/bind/ que l'on place les fichiers de déclaration des zones sur lesquelles le serveur a autorité. Voir option directory dans le fichier /etc/bind/named.conf.options.

2

C'est dans le fichier /var/run/bind/run/named.pid que l'on retrouve le numéro de processus du service. Cette information est placée là par le script d'initialisation du service (cf. runlevels).

saphir:~# cat /var/run/bind/run/named.pid
7503

Le service DNS, tel qu'il est installé par défaut, est de type cache-only :

  • Il ne contient aucune déclaration de zone. Le répertoire /var/cache/bind/ est vide.

  • La liste des fichiers de configuration indique que le service possède la liste des serveurs racine via le fichier db.root.

  • Le processus étant actif, il va pouvoir prendre en charge les requêtes et mémoriser dans son cache les résultats. Du côté «local», on optimise le traitement des requêtes en ayant recours à ce cache. Du côté «Internet», on surcharge les serveurs racines en les sollicitant directement à chaque nouvelle requête.

C'est le fichier /etc/resolv.conf qui configure le resolver. En partant de la configuration initiale du poste (voir Section 2, « Architecture type de travaux pratiques » ), le resolver fait référence au service DNS du serveur 192.168.1.1 :

saphir:~# cat /etc/resolv.conf
search lan.stri
nameserver 192.168.1.1

On édite ce même fichier pour qu'il fasse référence au service local :

saphir:~# cat /etc/resolv.conf
search lan.stri
nameserver 127.0.0.1

La commande dig est le «couteau suisse» qui va permettre d'effectuer tous les tests de requêtes DNS. On obtient le nom du paquet auquel elle appartient à partir d'une recherche du type :

saphir:~# dpkg -S `which dig`
dnsutils: /usr/bin/dig

Le paquet dsnutils fait partie de l'installation de base. Il est donc présent sur tous les systèmes.