=head1 nsdiff

=head2 create an "nsupdate" script from DNS zone file differences

The B<nsdiff> program examines the old and new versions of a DNS zone,
and outputs the differences as a script for use by BIND's B<nsupdate>
program. It provides a bridge between static zone files and dynamic
updates.

The B<nspatch> script is a wrapper around C<nsdiff | nsupdate> that
checks and reports errors in a manner suitable for running from B<cron>.

The B<nsvi> script makes it easy to edit a dynamic zone.

=over

I<I've fallen in <3 with nsdiff/nsvi> - JP Mens

=back

If you use BIND 9.7 or 9.8, you can use B<nsdiff> as an alternative
to the DNSSEC C<inline-signing> feature which appeared in BIND 9.9.
The server updates the DNSSEC records dynamically, but you can
continue to manage the unsigned static zone file as before and use
C<`nsdiff | nsupdate`> to push changes to the server.

There are other situations where you have a zone which is partly
dynamic and partly static, for example, a reverse DNS zone mostly
updated by a DHCP server, which also has a few static entries. You can
use B<nsdiff> to update the static part of the zone.

=head2 Dependencies

To run nsdiff you need perl-5.10 or newer, and BIND version 9.7 or
newer, specifically the B<dig>, B<named-compilezone>, and B<nsupdate>
utilities.

=head2 Install

To install, run:

    perl Makefile.PL
    make install

To install in a particular place, use something like

    perl Makefile.pl PREFIX=${HOME}

=head2 Downloads

=over

=item Documentation

The nsdiff homepage is L<https://dotat.at/prog/nsdiff/>

Read the nsdiff manual: L<https://dotat.at/prog/nsdiff/nsdiff.html>

Read the nspatch manual: L<https://dotat.at/prog/nsdiff/nspatch.html>

Read the nsvi manual: L<https://dotat.at/prog/nsdiff/nsvi.html>

=item Code

Download the bare nsdiff perl source: L<https://dotat.at/prog/nsdiff/nsdiff>

Download the source distribution:

=over

=item

L<https://dotat.at/prog/nsdiff/DNS-nsdiff-1.82.tar.gz>

=back

=item Source repositories

You can clone or browse the repository from:

=over

=item

L<git://dotat.at/nsdiff.git>

=item

L<https://dotat.at/cgi/git/nsdiff.git>

=item

L<https://github.com/fanf2/nsdiff.git>

=item

L<https://git.uis.cam.ac.uk/x/uis/ipreg/nsdiff.git>

=back

=back

=head2 Feedback

Please send bug reports or patches to me at <dot@dotat.at>.

You may do anything with nsdiff. It has no warranty.
L<https://creativecommons.org/publicdomain/zero/1.0/>
