Skrbite, da bo vse delovalo.
Poleg tega, da skrbite, da bo vse delovalo, imate še eno nalogo -
vzdržujte datoteko root.hints točno. To je najenostavneje z
uporabo programa dig. Najprej ga zaženite brez argumentov in dobili
boste root.hints glede na vaš strežnik, nato pa zaženite dig še z
enim od korenskih strežnikov: dig @korenski-strežnik. Izhod, ki ga
dobite, je nova datoteka root.hints. Shranite ga v datoteko (dig
@e.root-servers.net . ns >root.hints.nov) in zamenjajte staro
datoteko root.hints z njo.
Ne pozabite ponovno zagnati named potem, ko ste zamenjali datoteko.
Al Longyear mi je poslal skript za vzdrževanje root.hints, ki
ga lahko poganjate avtomatično - v crontab vpišite vnos, ki ga bo
pognal vsak mesec, nato pa lahko nanj pozabite. Skript predpostavlja,
da imate delujočo elektronsko pošto in da na vašem računalniku obstaja
naslov `hostmaster'. Da bo ustrezala vašim nastavitvam, jo morate
prirediti svojim potrebam.
#!/bin/sh
#
# Posodobimo predpomnilniško datoteko imenskega strežnika enkrat na mesec.
# To skripto samodjeno zaganja vnos v crontabu.
#
# Original je napisal Al Longyear
# Za BIND 8 priredil Nicolai Langfeldt
# David A. Ranch je poročal o različnih možnih napakah
# Test s pingom je predlagal Martin Foster
# Ali named deluje? - test predlagal Erik Bryer.
#
#
(
echo "To: hostmaster <hostmaster>"
echo "From: system <root>"
# Is named up? Check the status of named.
case `ndc status 2>&1` in
*'cannot connect to command channel'*)
echo "named is DOWN. root.hints was NOT updated"
echo
exit 0
;;
esac
PATH=/sbin:/usr/sbin:/bin:/usr/bin:
export PATH
# NOTE: V /var/named smejo pisati le ta skripta in ustrezni uporabniki
# ne bo odprl zmožnosti za zlonamerno prekinitev delovanja strežnika
# ali možnosti za vlom v račun superuporabnika - root.
cd /var/named 2>/dev/null || {
echo "Subject: Cannot cd to /var/named, error $?"
echo
echo "The subject says it all"
exit 1
}
# Smo povezani v internet? Pingajmo strežnik vašega ponudnika
case `ping -qnc 1 some.machine.net 2>&1` in
*'100% packet loss'*)
echo "Subject: root.hints NI posodobljen. Mreža NE DELUJE."
echo
echo "The subject says it all"
exit 1
;;
esac
dig @e.root-servers.net . ns >root.hints.new 2> errors
case `cat root.hints.new` in
*NOERROR*)
# Delovalo je
:;;
*)
echo "Posodobitev datoteke root.hints NI USPELA."
echo
echo "Posodavljanje root.hints ni uspelo"
echo "dig je sporočil sledeče:"
echo
cat root.hints.new errors
exit 1
;;
esac
echo "Subject: Datoteka root.hints je posodobljena"
echo
echo "Datoteka root.hints sedaj vsebuje sledeče podatke:"
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
ndc restart
echo
echo "Imenski strežnik je bil ponovno zagnan in sedaj ve za morebitne spremembe."
echo "Prejšnja datoteka root.hints se zdaj imenuje /var/named/root.hints.old."
) 2>&1 | /usr/lib/sendmail -t
exit 0
Morda ste izvedeli, da je datoteka root.hints na voljo tudi
preko ftp protokola na Internic. Prosim vas, da za posodabljanje
root.hints uporabljate raje dig, ker je ta možnost bolj prijazna
tako do interneta kot do Internica.