=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.84.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>

=back

=back

=head2 Feedback

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

Any contribution that you want included in `nsdiff` must be licensed
under 0BSD and/or MIT-0, and must include a `Signed-off-by:` line to
certify that you wrote it or otherwise have the right to pass it on
as a open-source patch, according to the Developer's Certificate of
Origin 1.1.

=over

=item

0BSD: L<https://opensource.org/license/0BSD>

=item

MIT-0 L<https://opensource.org/license/mit-0>

=item

DCO: L<https://developercertificate.org>

=back

=head2 Licence

Permission is hereby granted to use, copy, modify, and/or
distribute this software for any purpose with or without fee.

This software is provided 'as is', without warranty of any kind.
In no event shall the authors be liable for any damages arising
from the use of this software.

SPDX-License-Identifier: 0BSD OR MIT-0
