Delegated Dynamic Domain Name System (DDDNS)

THINGS THAT CAN OR SHOULD BE DONE

 - If we get a BADTIME error, we should adjust our time offset, not the system
   clock (although that would be quite sensible as an option)

 - Log interesting stuff to syslog

 - bind views (report different values for the same name based on which
   destination address was used).  v. messy.

 - Bug: dddns must INSIST on netdate, rdate or ntpdate being available.

 - Bug: all DDDNS queries go to one SOA server

 - Correct operation with bind9 in chroot, where full path names don't work so
   well (such as under SuSE 9 or FC3+) and running as the user 'named'.

 - A high-availability script to ensure that you are always on:
 	1.  If there's no connection, do something about it
	2.  Publish available connections
	3.  Hack ip routing to make sure that we can use all available
	    addresses.

 - A small authorative-only DNS server would be nice to integrate
   with this client.

 - A DDDNS client for Windows would be nice - probably
   incorporating a DNS server. Actually, it would be a waste of
   time. If you're running Windows, you're probably not serious
   enough for this software.  (Sorry, that's just open-source
   zealotry coming out.)

 - dddns --install should ... maybe ... modify named.conf so that
   it does not allow lookups outside of the domain that is
   intended to be public - especially recursive lookups.  To
   block chaos txt version.bind is nice too (currently these
   changes are only suggested - and in the include file, not in
   the zone file).

 - It would be nice to figure out what the good folks at suse.de
   have in mind with the named.d/ directory and to work together
   with that.

 - DDDNS does not need to run as root, but for some unfathomable
   reason it does.  This should be fixed...


THINGS THAT HAVE BEEN DONE

 - we need a hall of TTL shame for software that doesn't respect DNS TTLs.

 - dddns should parse the output of the update -- e.g. if it says 
   NOTAUTH then it shouldn't bother with a clock update.

 - The code to hack out the IP address from the output of "host"
   is really horrid.  It works as far as I know for a couple of
   examples, but it would be nice to replace it with something
   that always works (ie. something really portable)

 - Bug: dddns on Mandrake 10.1 is flaky - the host command produces strange
   output.  Maybe dig will work better?
 
 - Load names from a table [list of config files]

   Failover: name, interface to register otherwise register ...
 	ppp0.domain.com	ppp0 eth2 ppp1
 	ppp1.domain.com	ppp1 eth2 ppp0
 	eth2.domain.com	eth2 ppp0 ppp1

 - It should be easier to run multiple subzones for multiple
   interfaces.

 - It would be nice to have support for multiple DDDNS zones
   simultaneously (e.g. to handle ADSL+Wireless+Cable+ISDN+Modem
   in some kind of load balancing scheme).  Currently there is a
   bit of a name-space collision, which makes this difficult.

 - nsupdate may fail for a number of reasons.  Mostly it actually
   does the update, but thinks that it did not succeed.  There
   should be some error checking/reporting (e.g. using host?)
   >> Now we check whether the update succeeded, and if it did,
   >> we don't do it again.

 - running ntpdate every n hours would be useful
   >> If the update fails, ntpdate (netdate) is run once.

 - failing to send updates if the public information would not change
   would be wonderful.
   >> Done

NEVER GOING TO BE DONE

 - Compatibility with bind8.  Well, I'm not going to do it.  You
   can.
