![]() |
SIG 11 | ARTICLES | DOCUMENTS | MEMBRES | LIENS |
UN SERVEUR DE NOMS DE DOMAINES AVEC BIND 9vérifier si tout va bienNamed est un daemon timide, qui, par défaut, ne se signale guère que par quelques lignes dans
/var/log/messages : Dec 27 17:51:27 superathlon named[4635]: starting BIND 9.2.0rc3 -u named Dec 27 17:51:27 superathlon named[4635]: using 1 CPU déc 27 17:51:27 superathlon named: named startup succeeded Dec 27 17:51:27 superathlon named[4640]: loading configuration from '/etc/named.conf' Dec 27 17:51:27 superathlon named[4640]: no IPv6 interfaces found Dec 27 17:51:27 superathlon named[4640]: listening on IPv4 interface lo, 127.0.0.1#53 Dec 27 17:51:27 superathlon named[4640]: listening on IPv4 interface eth0, 192.168.200.20#53 Dec 27 17:51:27 superathlon named[4640]: command channel listening on 127.0.0.1#953 Dec 27 17:51:27 superathlon named[4640]: zone 0.0.127.in-addr.arpa/IN: loaded serial 1997022700 Dec 27 17:51:27 superathlon named[4640]: zone 200.168.192.in-addr.arpa/IN: loaded serial 2001121702 Dec 27 17:51:27 superathlon named[4640]: zone mondomicile.local/IN: loaded serial 2001122303 Dec 27 17:51:27 superathlon named[4640]: zone localhost/IN: loaded serial 2001122400 Dec 27 17:51:27 superathlon named[4640]: runningIl a démarré, a chargé ses fichiers de zones, et attend les requêtes sur le port 53 : à priori, tout va bien. La manière la plus simple, et la seule qui fonctionne sur tous les systèmes, de s'en assurer est d'effectuer un ping avec le nom d'une machine du réseau ; autant utiliser un des alias de superathlon : ping moregroup Mais ping ne peut pas interroger la base de Bind : il se sert seulement du DNS pour trouver l'adresse de l'ordinateur qui répondra à sa requête. On dispose pour ce faire d'un certain nombre d'utilitaires sous UNIX, regroupés dans le paquetage bind-utils, le plus connu, et le plus ancien, étant nslookup : mais à la commande nslookup midgard, la réponse de Bind 9 est inattendue : Note : nslookup is deprecated and may be removed from futures releases. Consider using the 'dig' or 'host' programms instead. Run nslookup with the '-sil[ent]' option to prevent this message from appearing. Server: 192.168.200.20 Address: 192.168.200.20#53 midgard.mondomicile.local canonical name = superathlon.mondomicile.local Name: superathlon.mondomicile.local Address: 192.168.200.20Abandonnons-donc nslookup, et tournons-nous vers host. interroger la base de bindLa syntaxe de host est on ne peut plus simple, puisqu'un élémentaire host alienaffiche : alien.mondomicile.local has address 192.168.200.19Naturellement, la résolution inverse marche aussi : host 192.168.200.19 19.200.168.192.in-addr.arpa domain name pointer alien.mondomicile.local.Et pour les enregistrements de type CNAME, hôtes virtuels pointant vers un hôte réel, on obtient : host midgard midgard.mondomicile.local is an alias for superathlon.mondomicile.local. superathlon.mondomicile.local has address 192.168.200.20Si l'on renseigne le paramètre -t pour type, host est en mesure d'afficher les autres informations contenues dans la base, comme l'enregistrement HINFO du serveur : host -t hinfo superathlon superathlon.mondomicile.local host information "AMD Athlon 1Ghz" "Linux Mandrake 8.1"Un autre paramètre disponible est le classique -v : en mode bavard, host n'épargne aucun détail : host -v bravek6Enfin, -a affiche la totalité des informations disponibles, en mode bavard : host -a superathlonEt si l'on souhaite interroger un autre serveur que celui auquel on accède par défaut, il suffit de préciser son adresse à la suite du nom de l'hôte recherché, comme ceci : host alien 192.168.200.21 Donc, ça marche ; c'est normal, on a tout fait pour. Mais il peut être intéressant d'étudier le comportement de
host face à une erreur : modifions par exemple l'adresse IP d'alien en 192.168.200., et observons le
résultat : host alien Trying "alien.mondomicile.local" Trying "alien" ;; connection timed out; no servers could be reachedLa réponse est sibylline : host n'ayant pas trouvé l'information demandée dans la base de notre DNS, il a cherché sans succès à en contacter un autre, et fait part de son échec. Que l'on modifie, dans named.conf, le nom de la zone ou celui du fichier associé, et une requête avec host produira le même message d'erreur. Et dans chaque cas, Bind démarre sans broncher : tout au plus prévient-il de l'impossibilité de trouver son fichier de zone.
Quant à DIG, le dernier utilitaire disponible, je serai sûrement en mesure d'en parler quand j'aurai compris comment il marche. aller plus loinCe document n'avait d'autre but que d'expliquer aussi simplement que possible la mise en oeuvre de Bind sur un réseau
privé. Le DNS est généralement considéré comme une matière relativement complexe, et son usage universel s'accompagne
d'une considérable production documentaire.
Denis Berger, 4 janvier 2002 |
SIG 11 | DOCUMENTS | L' INTRO | LES ELEMENTS | LA CONFIGURATION | LES ZONES |