Root hints updates

Timothe Litt litt at acm.org
Thu Sep 6 12:06:45 UTC 2012


In doing some system administration, I realized that I have a tool that
might be
generally useful - ISC is welcome to add it to contribs.  Hopefully the
attachment
will make it through the mailing list server.

This is a script to automagically update the root hints file.  There are a
bunch of these floating around the internet; most don't work; those that do
don't work well.  I wrote this several years ago; it's worked for me.

It will FTP the new file - or, if you value speed over comments, will
fabricate
a copy from the existing root servers - yes, it will deal with the case
that a root server is renumbered or returns partial data.  It acts as a
SYS V init script so that it runs on every boot; It's smart enough to
requeue itself hourly if it fails to get data.  It verifies FTP transfers.

It also runs as a cron job monthly to catch any updates.  It will log
actions
to syslog; will also send mail if you like.  It preserves file ownership and
the timestamp of last download.  It knows to run rndc reconfig when it gets
a new file. (And not when nothing has changed.)  

I did some cleanup for this release, but the core logic has run for several
years on Fedora and random embedded Linuxes.  For me, it's install & forget.

README:
Install it (or create a link to it) in /etc/init.d/ as update_root.  E.g. if
it's 
in /usr/local/sbin, then  
   ln -sf ../../../usr/local/sbin/update_root /etc/init.d/ 
Then execute
  /etc/init.d/update_root setup 
and 
  /etc/init.d/update_root  

Create a /etc/sysconfig/update_root file if you want a non-default
configuration.
The most useful configuration variables are:

# Undefined uses FTP (default)
#USEDNS=yes 
# Root file name
HINT=ROOT.HINT
# named control address (undef for none)
NAMEDRNDC="127.0.0.1"
# Root file owner
DEFAULTOWNER="named:named" (When there's no file; normally copies from old)
# Define for e-mail recipient (default is undef => none)
#TO=hostmaster at example.com
# Cron directories
CRONMONTHLY="/etc/cron.monthly"
CRONHOURLY="/etc/cron.hourly"
# No IPV6?  This may speed FTP connections.
WGET="$WGET -4"

Other parameters are in the first ~80 lines of the script.

The script commands are:
  start - check for update (default if no command)
  setup - run chkconfig and link to monthly queue (don't if you use crontab)
  status - list current file

One caution: Do not copy the script using copy & paste; there are places
where
literal tabs and spaces are important.  [Some environments have very limited
regexps.]

It's freely redistributable, with the usual caveat that there is no warranty
or
promise of support & that you use it at your own risk.

Enjoy.


Timothe Litt
ACM Distinguished Engineer
---------------------------------------------------------
This communication may not represent the ACM or my employer's views,
if any, on the matters discussed. 

 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: update_root
Type: application/octet-stream
Size: 9390 bytes
Desc: not available
URL: <https://lists.isc.org/pipermail/bind-users/attachments/20120906/f38f973c/attachment.obj>


More information about the bind-users mailing list