nsdiff icon indicating copy to clipboard operation
nsdiff copied to clipboard

create nsupdate script from zone file differences

=head1 nsdiff

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

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

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

The B 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 as an alternative to the DNSSEC C 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 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, B, and B 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 Lhttps://dotat.at/prog/nsdiff/

Read the nsdiff manual: Lhttps://dotat.at/prog/nsdiff/nsdiff.html

Read the nspatch manual: Lhttps://dotat.at/prog/nsdiff/nspatch.html

Read the nsvi manual: Lhttps://dotat.at/prog/nsdiff/nsvi.html

=item Code

Download the bare nsdiff perl source: Lhttps://dotat.at/prog/nsdiff/nsdiff

Download the source distribution:

=over

=item

Lhttps://dotat.at/prog/nsdiff/DNS-nsdiff-1.85.tar.gz

=back

=item Source repositories

You can clone or browse the repository from:

=over

=item

Lgit://dotat.at/nsdiff.git

=item

Lhttps://dotat.at/cgi/git/nsdiff.git

=item

Lhttps://github.com/fanf2/nsdiff.git

=back

=back

=head2 Feedback

Please send bug reports or patches to me at [email protected].

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: Lhttps://opensource.org/license/0BSD

=item

MIT-0 Lhttps://opensource.org/license/mit-0

=item

DCO: Lhttps://developercertificate.org

=back

=head2 Licence

Copyright 2011-2024 Tony Finch [email protected]

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