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 de la distribution vers la
chaîne de caractères qui débute par "bind".
$ aptitude search ?name"(^bind)" p bind9 - Internet Domain Name Server p bind9-doc - Documentation for BIND i bind9-host - Version of 'host' bundled with BIND 9.X p bind9utils - Utilities for BIND p bindfs - mirrors or overlays a local directory with altered permissions p bindgraph - DNS statistics RRDtool frontend for BIND9
Les paquets à installer à partir de la liste ci-dessus sont :
bind9 et bind9-doc. Une
fois l'opération
effectuée, on vérifie le résultat.# aptitude install bind9 bind9-doc
$ aptitude search ~ibind9 i bind9 - Internet Domain Name Server i bind9-doc - Documentation for BIND i bind9-host - Version of 'host' bundled with BIND 9.X i A bind9utils - Utilities for BIND i libbind9-60 - BIND9 Shared Library used by BIND
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.
# ps aux |grep named
bind 917 0.0 2.5 119420 12972 ? Ssl 12:27 0:00 /usr/sbin/named -u bind
En utilisant la commande lsof, on obtient la liste suivante.
# lsof -i |grep named
named 917 bind 20u IPv6 3709 0t0 TCP *:domain (LISTEN)
named 917 bind 21u IPv4 3714 0t0 TCP localhost:domain (LISTEN)
named 917 bind 22u IPv4 3716 0t0 TCP 192.200.0.3:domain (LISTEN)
named 917 bind 23u IPv4 3719 0t0 TCP localhost:953 (LISTEN)
named 917 bind 24u IPv6 3720 0t0 TCP localhost:953 (LISTEN)
named 917 bind 512u IPv6 3708 0t0 UDP *:domain
named 917 bind 513u IPv4 3713 0t0 UDP localhost:domain
named 917 bind 514u IPv4 3715 0t0 UDP 192.200.0.3:domain
En utilisant la commande netstat, on obtient les mêmes informations avec un affichage symétrique.
# netstat -autp |grep named
tcp 0 0 localhost:953 *:* LISTEN 917/named
tcp 0 0 192.200.0.3:domain *:* LISTEN 917/named
tcp 0 0 localhost:domain *:* LISTEN 917/named
tcp6 0 0 localhost:953 [::]:* LISTEN 917/named
tcp6 0 0 [::]:domain [::]:* LISTEN 917/named
udp 0 0 192.200.0.3:domain *:* 917/named
udp 0 0 localhost:domain *:* 917/named
udp6 0 0 [::]:domain [::]:* 917/named
# grep named /var/log/syslog
named[917]: starting BIND 9.7.0-P1 -u bind
May 24 12:27:42 srvr named[917]: built with '--prefix=/usr' <snipped/>
named[917]: adjusted limit on open files from 1024 to 1048576
named[917]: found 1 CPU, using 1 worker thread
named[917]: using up to 4096 sockets
named[917]: loading configuration from '/etc/bind/named.conf'
named[917]: reading built-in trusted keys from file '/etc/bind/bind.keys'
named[917]: using default UDP/IPv4 port range: [1024, 65535]
named[917]: using default UDP/IPv6 port range: [1024, 65535]
named[917]: listening on IPv6 interfaces, port 53
named[917]: listening on IPv4 interface lo, 127.0.0.1#53
named[917]: listening on IPv4 interface eth0, 192.200.0.3#53
named[917]: generating session key for dynamic DNS
named[917]: automatic empty zone: 254.169.IN-ADDR.ARPA
named[917]: automatic empty zone: 2.0.192.IN-ADDR.ARPA
named[917]: automatic empty zone: 255.255.255.255.IN-ADDR.ARPA
named[917]: automatic empty zone: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
named[917]: automatic empty zone: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
named[917]: automatic empty zone: D.F.IP6.ARPA
named[917]: automatic empty zone: 8.E.F.IP6.ARPA
named[917]: automatic empty zone: 9.E.F.IP6.ARPA
named[917]: automatic empty zone: A.E.F.IP6.ARPA
named[917]: automatic empty zone: B.E.F.IP6.ARPA
named[917]: command channel listening on 127.0.0.1#953
named[917]: command channel listening on ::1#953
named[917]: zone 0.in-addr.arpa/IN: loaded serial 1
named[917]: zone 127.in-addr.arpa/IN: loaded serial 1
named[917]: zone 255.in-addr.arpa/IN: loaded serial 1
named[917]: zone localhost/IN: loaded serial 2
named[917]: running
Comme tout service implanté sur un système GNU/Linux, les fichiers de
configuration sont placés dans le répertoire /etc/.
# dpkg -L bind9 |grep etc
/etc
/etc/init.d
/etc/init.d/bind9
/etc/network
/etc/network/if-down.d
/etc/network/if-down.d/bind9
/etc/network/if-up.d
/etc/network/if-up.d/bind9
/etc/ppp
/etc/ppp/ip-up.d
/etc/ppp/ip-up.d/bind9
/etc/ppp/ip-down.d
/etc/ppp/ip-down.d/bind9
/etc/ufw
/etc/ufw/applications.d
/etc/ufw/applications.d/bind9
/etc/bind
/etc/bind/named.conf.default-zones
/etc/bind/named.conf
/etc/bind/zones.rfc1918
/etc/bind/db.127
/etc/bind/db.root
/etc/bind/db.255
/etc/bind/bind.keys
/etc/bind/db.empty
/etc/bind/named.conf.local
/etc/bind/named.conf.options
/etc/bind/db.local
/etc/bind/db.0
/etc/apparmor.d
/etc/apparmor.d/force-complain
/etc/apparmor.d/usr.sbin.named
De la même façon, les données du service doivent être placées dans le
répertoire /var/.
# dpkg -L bind9 |grep var
/var
/var/cache
/var/cache/bind
/var/run
/var/run/named
C'est dans le répertoire /var/cache/bind/ que l'on place les fichiers
contenant les enregistrements ou Resource Records
(RRs). Ces enregistrements correspondent aux zones sur
lesquelles le serveur a autorité. Ce choix de répertoire fait partie des
options du service. Voir l'option directory dans le fichier
/etc/bind/named.conf.options.
L'installation par défaut du paquet de la distribution fournit une configuration de type cache-only :
Il ne contient aucune déclaration de zone. Le fichier
/etc/bind/named.conf.local ne contient que des
commentaires.
Le répertoire /var/cache/bind/ est vide.
Le service peut contacter les serveurs racine. La liste de ces
serveurs est donnée dans le fichier db.root.
Le service étant actif, il peut prendre en charge les requêtes et mémoriser dans son cache les résultats.
Vu du système sur lequel le service est exécuté, on optimise le traitement des requêtes en alimentant puis en utilisant le cache mémoire. Vu de l'Internet, on surcharge les serveurs racines en les sollicitant directement à chaque nouvelle requête.
C'est le fichier /etc/resolv.conf qui sert à
configurer la partie client du service de résolution des noms ; le
resolver. Dans le cas des postes de travaux
pratiques, la configuration initiale du resolver est
prise en charge par le service DHCP.
On doit éditer le fichier /etc/resolv.conf pour
qu'il fasse référence au service de résolution des noms installé sur le
système.
# cat /etc/resolv.conf
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 :
# 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.
Vous êtes ici :