Manteniéndolo en funcionamiento.
Hay una tarea de mantenimiento que tienes que realizar con
named
, además de mantenerlo en funcionamiento.
Esta tarea es mantener el archivo root.hints
actualizado. La forma más fácil es usar
dig
, primero ejecuta dig
sin argumentos,
conseguirás root.hints
de acuerdo con tu propio
servidor. Entonces pregunta a alguno de los servidores raíz
listados con dig @rootserver
. Podrás observar
que la salida se parece terriblemente al archivo
root.cache
excepto por un par de números
extras. Esos números no ocasionan problemas. Guárdalo
en un archivo (dig @e.root-servers.net . ns
>root.hints.nuevo
) y sustituye el antiguo
root.hints
con él.
Recuerda reiniciar named
después de
sustituir el archivo caché.
Al Longyear me envió este script que puede ser ejecutado
automáticamente para actualizar root.cache
,
instala una entrada en el crontab
para ejecutarlo una
vez al mes y olvídate. El script supone que trabajas con
correo y que el alias de mail hostmaster
está
definido. Debes editarlo para ajustarlo a tu
configuración.
#!/bin/sh # # Actualizacion del cache del servidor de nombres una vez al mes. # Esto es ejecutado automaticamente mediante una entrada de cron # # Original de Al Longyear# Actualizado para BIND 8 por Nicolai Langfeldt # Varias condiciones de error notificadas por David A. Ranch # Test ping test sugerido por Martin Foster # named activo sugerido por Erik Bryer. # ( echo "To: hostmaster <hostmaster>" echo "From: system <root>" # ¿Está named activo? Verifica el estado de named. case `ndc status 2>&1` in *'refused'*) echo "named está inactivo. root.hints NO actualizado" echo exit 0 ;; esac PATH=/sbin:/usr/sbin:/bin:/usr/bin: export PATH # NOTA: /var/named tiene que tener permiso de escritura sólo para los usuarios válidos del guion # podrá ocasionar oportunidades de comprometer el sistema o ataques DOS. cd /var/named 2>/dev/null || { echo "Subject: No puedo ir a /var/named, error $?" echo echo "El motivo lo dice todo" exit 1 } # ¿Estamos en red? Hace ping a un servidor del tu ISP case `ping -qnc 1 some.machine.net 2>&1` in *'100% packet loss'*) echo "Subject: root.hints NO actualizado. La red no está activa." echo echo "El motivo lo dice todo" exit 1 ;; esac dig @e.root-servers.net . ns >root.hints.new 2> errors case `cat root.hints.new` in *NOERROR*) # funciona :;; *) echo "Subject: la actualización de root.hints ha FALLADO." echo echo "La actualización de root.hints ha fallado" echo "Este es el informe de errores de dig:" echo cat root.hints.new errors exit 1 ;; esac echo "Subject: El fichero root.hints se ha actualizado" echo echo "El fichero root.hints se ha actualizado y contiene la siguiente información:" echo cat root.hints.new chown root.root root.hints.new chmod 444 root.hints.new rm -f root.hints.old errors mv root.hints root.hints.old mv root.hints.new root.hints rndc reload echo echo "El servidor de nombres se ha reiiniciado para asegurarnos que la actualización es completa." echo "El anterior fichero root.hints file ahora se llama/var/named/root.hints.old." ) 2>&1 | /usr/lib/sendmail -t exit 0
Alguno de vosotros puede haber observado que el archivo
root.hints
está también disponible
mediante ftp en Internic. Por favor NO utilice ftp para
actualizar root.cache
, el método anterior es
mucho más amistoso con la red.