Inhalt

6. Wartung

Es gibt einen Punkt, der bei der Administration von Nameservern beachtet werden muss - wenn man mal davon absieht, dass der Nameserver funktionieren sollte - und das ist die Aktualisierung der root.hints-Datei. Der einfachste Weg hierfür ist die Benutzung von dig. Zuerst startet man dig ohne Parameter, dann bekommt man die Datei root.hints, die zum eigenen Server gehört. Dann wird einer der aufgelisteten root-Server mit dig @rootserver befragt. Die Ausgabe dieses Befehls sieht erstaunlicherweise nach einer root.hints-Datei aus. Die Ausgabe wird in einer Datei gespeichert (dig @e.root-servers.net . ns >root.hints.new) und ersetzt dann die alte root.hints-Datei.

Nicht vergessen, im Anschluss an den Austausch der Cache-Datei den named neu zu laden.

Al Longyear hat mir das folgende Skript geschickt, das automatisch die root.hints-Datei aktualisieren kann. Man erstellt einen Eintrag in die Crontab, um es einmal im Monat zu starten und kann es dann vergessen. Das Skript geht davon aus, dass der E-Mail-Versand funktioniert und dass es einen Alias namens »hostmaster« gibt. Es muss noch verändert werden, damit es mit dem eigenen Setup übereinstimmt.

#!/bin/sh
#
# Dieses Skript aktualisiert einmal im Monat die Nameserver-Cache-Datei.
# Es wird durch einen Cron-Eintrag gestartet.
#
# Original von Al Longyear
# An bind8 angepasst von Nicolai Langfeldt
# Verschiedene Problem-Reports durch David A. Ranch
# Ping-Test vorgeschlagen von Martin Foster
# Übersetzung von Thomas "Balu" Walter
#
(
 echo "To: hostmaster <hostmaster>"
 echo "From: system <root>"
 echo "Subject: Automatisches Update der root.hints Datei"
 echo

 PATH=/sbin:/usr/sbin:/bin:/usr/bin:
 export PATH
 cd /var/named

 # Sind wir online? Ein Server beim Provider anpingen...
 case `ping -qnc some.machine.net` in
   *'100% packet loss'*)
        echo "Das Netz ist DOWN. root.hints wurde NICHT upgedated"
        echo
        exit 0
        ;;
 esac

 dig @rs.internic.net . ns >root.hints.new 2>&1

 case `cat root.hints.new` in
   *NOERROR*)
        # Funktioniert...
        :;;
   *)
        echo "Das Update der root.hints Datei ist FEHLGESCHLAGEN."
        echo "Dig hatte die folgende Ausgabe:"
        echo
        cat root.hints.new
        exit 0
        ;;
 esac

 echo "Die root.hints Datei wurde mit den folgenden Einstellungen aktualisiert:"
 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 "Der Nameserver wurde neu gestartet, um das Update abzuschliessen."
 echo "Die ursprüngliche root.hints Datei heisst jetzt /var/named/root.hints.old."
) 2>&1 | /usr/lib/sendmail -t
exit 0

Einige Leser haben mir geschrieben, dass die root.hints-Datei auch per FTP von internic zu bekommen ist. Man sollte aber nicht FTP benutzen, um die Datei zu aktualisieren. Die oben gezeigte Version ist »netter« gegenüber dem Netz und Internic.


Inhalt