Upgrading from NSD 3.x to NSD 4

by Wouter C.A. Wijngaards, NLnetLabs, Jul 2012

This document lists the changes in the upgrade from NSD 3 to NSD 4 systems.
(scroll down for the NSD 2.x to NSD 3 upgrade manual).

* nsdc is gone.  You can control the daemon via kill -HUP and kill -TERM,
or you can use nsd-control.

* to setup nsd-control you have to run nsd-control-setup (as root) and enable
remote-control in the nsd.conf file.  It uses SSL to contact the daemon.

* the nsd.conf file from NSD3 can be used for NSD4 (defaults for new stuff).
	* the difffile: setting is no longer used but ignored for
	  backwards compatibility.
	* zones listed in nsd.conf are served.
	* the zonelistfile: setting sets the file where zones that are
	  added dynamically (and can be removed dynamically) are stored.
	* the xfrdir: is used to store temporary zone transfer files.
	* it is possible to define patterns in the nsd.conf file and
	  use the patterns to give config settings for the zones.
	  * patterns accept the same sort of settings which NSD3-zones did.
	  * you can make super-patterns with the include-pattern: setting
	  * the zonefile: statement creates directories when needed, if they
	    do not exist.  In the zonefile: statement you can use %s (and
	    other codes) to use (part of) the name of the zone to generate
	    the pathname of the zonefile.
	  * if there is no zonefile (for slave zones) it is not used.

* nsdc rebuild and so on is gone, use nsd-control reload or kill -HUP.
	* it scans if zonefiles are modified and reads those.
	* you can also specify a zone by name and have nsd read that file.
    * if you nsd-control reconfig it rereads the config file for zones.
* nsdc patch is not necessary
	* the database is edited at runtime.
		* it mmap's the nsd.db file for file I/O, this increases
		  virtual memory usage of NSD with the size of the file.
	* if you like cronjobs, you could have one to nsd-control write
	  and write slave zones that have changed to their zonefile.
* other nsdc commands, reconfig (reread patterns, zones, keys),
  add a zone, delete a zone, and zone transfer control, statistics.



Upgrading from NSD 2.x to NSD 3

by Wouter C.A. Wijngaards, NLnetLabs, Aug 2006

This document lists the changes in the upgrade from NSD 2 to NSD 3 systems.

* The nsdc.conf file is gone. 
	* specify the config file to nsdc by using the -c <file> option.
	* binaries are searched for in the installation bin directory,
	  in the PATH and in the directory of nsdc.sh itself. 
	* other options go into the new nsd.conf file.

* The nsd.masters file is gone, replaced by nsd.conf.
	* Look at nsd.conf.5 manual page to see format.
	* you can list nsd-commandline-options, zones, masters, slaves, keys.
	* TSIG support: please list the TSIG keys in nsd.conf, or do this with
	  include: "keys.conf" and provide additional security for that file.
	* For every zone include lines:
		zone:
			name: "example.com"
			zonefile: "example.com.txt"
	* For secondary zones include in the zone entry:
			request-xfr: <ip of master> <tsig keyname or NOKEY>
			allow-notify: <same as above>
	* For master zones include in the zone entry:
			provide-xfr: <ip of slave> <tsig keyname or NOKEY>
			notify: <same as above>
	* NSD does not provide IXFR, so for secondaries that connect to NSD use
	  request-xfr: AXFR <ip> <key>   that will only use AXFR, not IXFR to
	  request zone transfers.

* No more need for a cron job to do a nsdc update.
	* nsd will update automatically all secondary zones from master.
	* You should never need to do nsdc update or nsdc notify by hand.
	* You can still use a cronjob to do nsdc patch.
	  nsdc patch moves the zone transfer content from temporary storage
	  to the zone files, recompiles the database and reloads nsd.

