Dépannage
Cette section aide à trouver la cause d'éventuels problèmes liés au DNS et à BIND9.
Tests
resolv.conf
The first step in testing BIND9 is to add the nameserver's IP Address to a hosts resolver. The Primary nameserver should be configured as well as another host to double check things. Refer to Configuration de client DNS for details on adding nameserver addresses to your network clients, and afterwards check that the file /etc/resolv.conf contains (for this example):
nameserver 192.168.1.10 nameserver 192.168.1.11
Nameservers that listen at 127.* are responsible for adding their own IP addresses to resolv.conf (using resolvconf). This is done via the file /etc/default/bind9 by changing the line RESOLVCONF=no to RESOLVCONF=yes.
Vous devriez ajouter aussi l'adresse IP du serveur de noms secondaire en cas d'indisponibilité du serveur primaire.
dig
Si vous avez installé le paquet dnsutils, vous pouvez tester votre configuration avec l'utilitaire de recherche DNS dig :
-
Après avoir installé BIND9, utilisez dig sur l'interface loopback pour vous assurer qu'il écoute bien le port 53. Saisissez dans un terminal :
dig -x 127.0.0.1
Vous devriez obtenir un résultat similaire à ce qui suit :
;; Query time: 1 msec ;; SERVER: 192.168.1.10#53(192.168.1.10)
-
Si vous avez configuré BIND9 en tant que serveur de noms de cache, exécutez « dig » sur un domaine extérieur pour vérifier le temps de requête :
dig ubuntu.com
Notez le temps de réponse en fin de résultat :
;; Query time: 49 msec
Ce temps devrait être plus court après un deuxième « dig » :
;; Query time: 1 msec
ping
Envoyez une requête ICMP à l'aide du programme ping afin de démontrer comment des programmes se servent d'un DNS pour résoudre un nom d'hôte. Depuis un terminal, saisissez :
ping example.com
Vous obtiendrez un résultat similaire à ce qui suit si le serveur DNS peut résoudre le nom ns.example.com en une adresse IP :
PING ns.exemple.com (192.168.1.10) 56(84) bytes of data. 64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=0.800 ms 64 bytes from 192.168.1.10: icmp_seq=2 ttl=64 time=0.813 ms
named-checkzone
Un excellent moyen pour tester vos fichiers de zone est d'employer l'utilitaire named-checkzone installé avec le paquet bind9. Cet utilitaire vous permet de vous assurer que la configuration est correcte avant de redémarrer BIND9 et d'appliquer les changements.
-
Afin de vérifier notre fichier exemple de zone directe, entrez ce qui suit dans une ligne de commande :
named-checkzone example.com /etc/bind/db.example.com
Si tout est configuré correctement, vous devriez voir une sortie similaire à :
zone example.com/IN: loaded serial 6 OK
-
De la même façon, afin de vérifier le fichier de zone inverse, entrez :
named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.192
La sortie devrait être semblable à :
zone 1.168.192.in-addr.arpa/IN: loaded serial 3 OK
Le numéro de série de votre fichier de zone sera probablement différent.
Journal
BIND9 has a wide variety of logging configuration options available. There are two main options. The channel option configures where logs go, and the category option determines what information to log.
si aucune option de journalisation n' est configurée l'option par défaut est:
logging { category default { default_syslog; default_debug; }; category unmatched { null; }; };
Cette section décrit comment paramétrer BIND9 pour envoyer les messages de débogage concernant les requêtes DNS vers un fichier distinct.
-
Premièrement, nous devons configurer un canal pour spécifier vers quel fichier envoyer les messages. Modifiez /etc/bind/named.conf.local et ajoutez ce qui suit :
logging { channel query.log { file "/var/log/query.log"; severity debug 3; }; };
-
Ensuite, configurez une catégorie pour envoyer toutes les requêtes DNS au fichier de requêtes:
logging { channel query.log { file "/var/log/query.log"; severity debug 3; }; category queries { query.log; }; };
À noter : l'option debug peut prendre les valeurs 1 à 3. Si aucune valeur n'est spécifiée alors le niveau 1 est le niveau par défaut.
-
Since the named daemon runs as the bind user the /var/log/query.log file must be created and the ownership changed:
sudo touch /var/log/query.log sudo chown bind /var/log/query.log
-
Il faut mettre à jour le profil AppArmor pour que le démon named puisse écrire dans le nouveau fichier journal. Modifiez /etc/apparmor.d/usr.sbin.named en ajoutant :
/var/log/query.log w,
Rechargez ensuite le profil :
cat /etc/apparmor.d/usr.sbin.named | sudo apparmor_parser -r
Pour plus d'informations sur AppArmor , référez-vous à AppArmor
-
Redémarrez maintenant BIND9 pour que les changements prennent effet :
sudo service bind9 restart
Vous devriez voir le fichier /var/log/query.log rempli d'informations de requêtes. Ceci est un exemple simple des options de journalisation de BIND9. Consultez Informations supplémentaires pour plus d'informations sur les options avancées.