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é ce fichier.
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 faudra sans doute modifier ce fichier pour qu'il
fonctionne chez vous.
#!/bin/sh
#
# Met a jours les informations du cache du serveur de noms chaque mois.
# Ce script est lancé automatiquement par un cron.
#
# Original par Al Longyear
# Mis a jour pour Bind 8 par Nicolai Langfeldt
# Plusieurs erreurs découvertes par David A. Ranch
# Test avec un ping suggéré par Martin Foster
#
(
echo "To: hostmaster <hostmaster>"
echo "From: system <root>"
echo "Subject: Mise a jour automatique du fichier root.hints"
echo
PATH=/sbin:/usr/sbin:/bin:/usr/bin:
export PATH
cd /var/named
# Sommes nous connectés ? Pingons un serveur de notre FAI
case `ping -qnc some.machine.net` in
*'100% packet loss'*)
echo "PAS de connexion réseau. root.hints NON mis à jour"
echo
exit 0
;;
esac
dig @rs.internic.net . ns >root.hints.new 2>&1
case `cat root.hints.new` in
*NOERROR*)
# Ca a marché
:;;
*)
echo "La mise a jour de root.hints a ECHOUE."
echo "Voici la sortie de dig :"
echo
cat root.hints.new
exit 0
;;
esac
echo "Le fichier root.hints 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 noms a été redémarré, de cette manière, la mise a jour est complète."
echo "L'ancien root.hints s'appelle 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
meilleur du point de vue de la nettiquette et de l'Internic.