Garder votre DNS en état de marche
En plus des tâches normales, il y a une tâche de maintenance spéciale à effectuer sur les serveurs de nom. Il s'agit de garder le fichier root.hints à jour. La façon la plus simple de le faire est d'utiliser dig. Lancez d'abord dig sans argument, vous obtiendrez le fichier root.cache de votre propre serveur. Posez alors la même question à un des serveurs de cette liste avec la commande dig @rootserver. Vous remarquerez que ce que vous obtenez ressemble énormément à un fichier root.hints, avec quelques chiffres en plus. Ces chiffres supplémentaires sont inoffensifs. Sauvez-le dans un fichier (dig . @e.root-servers.net >root.hints.new) et remplacez l'ancien fichier root.hints avec.
N'oubliez pas de relancer named après avoir remplacé le fichier root.hints.
Al Longyear m'a envoyé ce script, qui peut être lancé automatiquement pour mettre à jour named.hints. Lancez-le automatiquement à partir de la crontab et vous pourrez oublier qu'il existe. Ce script suppose que l'alias de mail `hostmaster' existe. Il vous faudra modifier quelque peu ce fichier pour qu'il fonctionne chez vous.
#!/bin/sh
#
# Update the nameserver cache information file once per month.
# This is run automatically by a cron entry.
#
# Original par Al Longyear
# Mis a jour pour Bind 8 par Nicolai Langfeldt
# probleme avec SERVFAIL decouvert par David A. Ranch
#
(
echo "To: hostmaster <hostmaster>"
echo "From: system <root>"
echo "Subject: Automatic update of the named.conf file"
echo
export PATH=/sbin:/usr/sbin:/bin:/usr/bin:
cd /var/named
dig @rs.internic.net . ns >root.hints.new
case `cat root.hints.new` in
*SERVFAIL*)
echo "La mise a jour de named.conf a ECHOUE."
echo "Voici l'erreur que DIG a donné :"
echo
cat root.hints.new
exit 0
esac
echo "Le fichier named.conf a été mis a jour et contient les informations suivantes :"
echo
cat root.hints.new
chown root.root root.hints.new
chmod 444 root.hints.new
rm -f root.hints.old
mv root.hints root.hints.old
mv root.hints.new root.hints
ndc restart
echo
echo "Le serveur de nom a ete redemarre, de cette maniere, la mise a jour est complete."
echo "L'ancien root.hints s'appele maintenant /var/named/root.hints.old."
) 2>&1 | /usr/lib/sendmail -t
exit 0
Certains d'entre vous ont remarqués que le fichier root.hints est aussi disponible via ftp depuis l'Internic. S'il vous plaît, n'utilisez pas le ftp pour mettre à jour le root.hints, la méthode ci dessus est bien plus pratique.