Compare commits

...
212 Commits
Author SHA1 Message Date
Michael McNally 1896343049 Minor tone edits during review with Vicky 2020-07-09 22:48:16 +00:00
Ondřej Surý 42f8f17627 Merge branch 'ondrej/update-pregenerated-manpages' into 'main'
Fixup the manpages after ddns-confgen.rst -> tsig-keygen.rst rename

See merge request isc-projects/bind9!3817
2020-07-08 10:19:15 +00:00
Ondřej SurýandOndřej Surý 3da9909430 Fail the build if it updates any of the files in the git repository
There are still some pregenerated files left in the git
repository (cleaned up during `make maintainer-clean`) and we currently
don't notice if any of those needs to be updated in the git repository
because we ignore changes in the repository done during the build.

This commit adds a safeguard that fails the build job if the contents of
the git repository gets modified during the build.
2020-07-08 11:05:24 +02:00
Ondřej SurýandOndřej Surý 514ab2cc4f Fixup the manpages after ddns-confgen.rst -> tsig-keygen.rst rename
There were some missing bits in the other rst files and Makefile.am(s)
that didn't reflect the rename of the main document.  Also add
ddns-confgen.8 manpage.
2020-07-08 11:05:24 +02:00
Mark Andrews 1dd265df8f Merge branch '2011-off-by-one-error-in-dns_rdatatype_attributes' into 'main'
Resolve "Off-by-one error in dns_rdatatype_attributes?"

Closes #2011

See merge request isc-projects/bind9!3820
2020-07-08 03:01:05 +00:00
Mark Andrews 092a159dcd Adjust range limit of unknown meta types 2020-07-08 02:04:16 +00:00
Mark Andrews 13321a20ce Merge branch '2009-update-isc-logo-in-documentation' into 'main'
Resolve "Update ISC logo in documentation"

Closes #2009

See merge request isc-projects/bind9!3811
2020-07-08 02:00:31 +00:00
Mark Andrews 875a637eeb Update ISC logo 2020-07-08 02:00:11 +00:00
Mark Andrews bb60192f70 Merge branch '1475-convert-header-attributes-to-atomic' into 'main'
Convert header->attributes to stdatomic

Closes #1475

See merge request isc-projects/bind9!3750
2020-07-08 01:24:10 +00:00
Mark Andrews adf7cb4ba7 Add CHANGES note for [GL #1475] 2020-07-08 10:50:52 +10:00
Ondřej SurýandMark Andrews 81d4230e60 Update STALE and ANCIENT header attributes atomically
The ThreadSanitizer found a data race when updating the stale header.
Instead of trying to acquire the write lock and failing occasionally
which would skew the statistics, the dns_rdatasetheader_t.attributes
field has been promoted to use stdatomics.  Updating the attributes in
the mark_header_ancient() and mark_header_stale() now uses the cmpxchg
to update the attributes forfeiting the need to hold the write lock on
the tree.  Please note that mark_header_ancient() still needs to hold
the lock because .dirty is being updated in the same go.
2020-07-08 10:50:52 +10:00
Mark Andrews ef41dc097b Merge branch 'ondrej/add-16-bit-stdatomic-shims' into 'main'
Make the stdatomic shim and mutexatomic type complete

See merge request isc-projects/bind9!3816
2020-07-08 00:26:26 +00:00
Mark Andrews bccea5862d Make the stdatomic shim and mutexatomic type complete
The stdatomic shims for non-C11 compilers (Windows, old gcc, ...) and
mutexatomic implemented only and minimal subset of the atomic types.
This commit adds 16-bit operations for Windows and all atomic types as
defined in standard.
2020-07-08 09:39:02 +10:00
Evan Hunt f34b179d12 Merge branch '1998-fully-rename-tsig-keygen' into 'main'
use 'tsig-keygen' as the primary name for the tool

Closes #1998

See merge request isc-projects/bind9!3801
2020-07-06 09:00:26 +00:00
Evan Hunt ba52377b37 use 'tsig-keygen' as the primary name for the tool
'ddns-confgen' is now an alias for 'tsig-keygen', rather than
the other way around.
2020-07-06 01:41:52 -07:00
Mark Andrews 858082de51 Merge branch '1990-bad-isc_mem_put-size' into 'main'
Resolve "Bad  isc_mem_put size."

Closes #1990

See merge request isc-projects/bind9!3790
2020-07-06 00:53:13 +00:00
Mark Andrews c2c333e3f3 Bad isc_mem_put() size when an invalid type was specified in a ssu rule. 2020-07-06 10:33:27 +10:00
Mark Andrews 4e7cca965c Merge branch '1991-cleanup-redundant-non-null-check' into 'main'
Resolve "Cleanup redundant non-NULL check."

Closes #1991

See merge request isc-projects/bind9!3791
2020-07-06 00:14:42 +00:00
Mark Andrews 2fa2dbd5fb remove redundant rctx != NULL check 2020-07-05 23:52:19 +00:00
Matthijs Mekking 2995024458 Merge branch '1988-windows-rndc-dnssec-status-bad-output' into 'main'
Increase rndc output buffer size for rndc dnssec -status

Closes #1988

See merge request isc-projects/bind9!3802
2020-07-03 13:13:05 +00:00
Matthijs MekkingandMatthijs Mekking 9347e7db7e Increase "rndc dnssec -status" output size
BUFSIZ (512 bytes on Windows) may not be enough to fit the status of a
DNSSEC policy and three DNSSEC keys.

Set the size of the relevant buffer to a hardcoded value of 4096 bytes,
which should be enough for most scenarios.
2020-07-03 12:14:53 +02:00
Ondřej Surý ee5b77ccb0 Merge branch '1925-additional-text-edits-to-bind-arm' into 'main'
Resolve "Additional text edits to BIND ARM"

Closes #1925

See merge request isc-projects/bind9!3800
2020-07-03 07:20:48 +00:00
Suzanne GoldlustandOndřej Surý 4cd6be18d3 Add missing named.conf man page 2020-07-03 09:02:41 +02:00
Suzanne GoldlustandOndřej Surý 056f12eb34 Final text edits to BIND 9 ARM in this round of updates 2020-07-03 09:02:15 +02:00
Ondřej Surý 494d1246eb Merge branch 'ondrej/dont-fail-system-test-on-missing-pytest' into 'main'
Don't fail the system tests when shutdown test is missing pytest

See merge request isc-projects/bind9!3795
2020-07-02 15:14:57 +00:00
Ondřej Surý f8b5958d28 Don't fail the system tests when shutdown test is missing pytest 2020-07-02 16:55:55 +02:00
Michał Kępień 78a4ed3132 Merge branch '1627-add-changes-entry' into 'main'
Add CHANGES entry for #1627

Closes #1627

See merge request isc-projects/bind9!3794
2020-07-02 09:20:21 +00:00
Michał Kępień dee2b3c7c8 Add CHANGES entry for #1627 2020-07-02 11:19:30 +02:00
Ondřej Surý b72dae7445 Merge branch '1883-text-edits-in-pkcs11-rst' into 'main'
Resolve "Text edits in pkcs11.rst"

Closes #1883

See merge request isc-projects/bind9!3591
2020-07-02 09:06:17 +00:00
Suzanne GoldlustandOndřej Surý 28be579424 Content and grammar edits to pkcs11.rst 2020-07-02 11:01:29 +02:00
Ondřej Surý 04536dd32e Merge branch 'ondrej/1915-update-input-files-for-manpages' into 'main'
Update the generated files after the source manpages update

See merge request isc-projects/bind9!3793
2020-07-02 08:53:55 +00:00
Ondřej Surý 9ab86d0da2 Update the generated files after the source manpages update 2020-07-02 10:53:16 +02:00
Ondřej Surý f16152acf4 Merge branch 'sgoldlust-1915-edits-to-man-pages-for-bind-arm-patch-16656' into 'main'
Edits to man pages for BIND 9 ARM

Closes #1915

See merge request isc-projects/bind9!3676
2020-07-02 08:48:17 +00:00
Suzanne GoldlustandOndřej Surý 78af7e54e6 Text edits to manual paages
This commit updates the wording in following man pages:

* ddns-confgen.rst
* delv.rst
* dig.rst
* dnssec-dsfromkey.rst
* dnssec-importkey.rst
* dnssec-keyfromlabel.rst
* dnssec-keygen.rst
* dnssec-revoke.rst
* dnssec-settime.rst
* dnssec-signzone.rst
* dnssec-verify.rst
* dnstap-read.rst
* filter-aaaa.rst
* host.rst
* mdig.rst
* named-checkconf.rst
* named-checkzone.rst
* named-nzd2nzf.rst
* named.conf.rst
* named.rst
* nsec3hash.rst
* nsupdate.rst
* pkcs11-destroy.rst
* pkcs11-keygen.rst
* pkcs11-list.rst
* pkcs11-tokens.rst
* rndc-confgen.rst
* rndc.rst
2020-07-02 10:35:58 +02:00
Ondřej Surý a8faf4f7cb Merge branch '1915-edits-to-man-pages-for-bind-arm' into 'main'
Resolve "Edits to man pages for BIND ARM"

Closes #1915

See merge request isc-projects/bind9!3644
2020-07-02 08:19:07 +00:00
Suzanne GoldlustandOndřej Surý 1efa88cf09 Text and formatting edits to various manual pages.
Follwing manual pages have been updated: rndc.conf.rst, rndc.rst
nsec3hash.rst, dnstap-read.rst, named-nzd2nzf.rst, mdig.rst,
named-rrchecker.rst, dnssec-revoke.rst, dnssec-cds.rst,
dnssec-keyfromlabel.rst, and dnssec-keygen.rst
2020-07-02 10:11:01 +02:00
Ondřej Surý 6008d77359 Merge branch '1951-add-bind-version-number-to-introduction-rst-file' into 'main'
Resolve "Add BIND version number to introduction.rst file"

Closes #1951

See merge request isc-projects/bind9!3710
2020-07-02 08:05:13 +00:00
Suzanne GoldlustandOndřej Surý a4549f89bf Add release statement to introduction.rst
(and remove duplicate copyright statement)
2020-07-02 09:57:29 +02:00
Ondřej Surý c94124cd89 Merge branch '1940-removing-more-references-to-master-and-slave-in-bind-arm' into 'main'
Resolve "Removing more references to "master" and "slave" in BIND ARM"

Closes #1940

See merge request isc-projects/bind9!3692
2020-07-02 07:53:13 +00:00
Suzanne GoldlustandOndřej Surý 42386f3d9f Updates to .rst files to remove more references to "master" and "slave" 2020-07-02 09:47:27 +02:00
Ondřej Surý c4fcafe072 Merge branch '1925-additional-text-edits-to-bind-arm' into 'main'
Resolve "Additional text edits to BIND ARM"

Closes #1925

See merge request isc-projects/bind9!3679
2020-07-02 07:37:56 +00:00
Suzanne GoldlustandOndřej Surý 5aa5ad5abc Various text edits and fixes to the documentation 2020-07-02 09:35:27 +02:00
Evan Hunt e1d42c5f87 Merge branch 'placeholder' into 'main'
add a placeholder for GL #330 in v9_11_sub

See merge request isc-projects/bind9!3789
2020-07-02 01:39:17 +00:00
Evan Hunt 1dbaaa0d7c add a placeholder for GL #330 in v9_11_sub 2020-07-01 18:37:18 -07:00
Ondřej Surý 0577dffe7c Merge branch '1987-fix-formatting-error-in-man-pages-section-of-bind-arm' into 'main'
Resolve "Fix formatting error in man pages section of BIND ARM"

Closes #1987

See merge request isc-projects/bind9!3785
2020-07-01 21:46:00 +00:00
Suzanne GoldlustandOndřej Surý e3e787bc14 Fix formatting of See Also section header 2020-07-01 23:45:04 +02:00
Matthijs Mekking 7b63138de2 Merge branch '1939-rumoured-kasp-intermittent-failures' into 'main'
Fix kasp test set_keytime

Closes #1939

See merge request isc-projects/bind9!3780
2020-07-01 21:17:59 +00:00
Matthijs Mekking 24e07ae98e Fix kasp test set_keytime
While the creation and publication times of the various keys
in this policy are nearly at the same time there is a chance that
one key is created a second later than the other.

The `set_keytimes_algorithm_policy` mistakenly set the keytimes
for KEY3 based of the "published" time from KEY2.
2020-07-01 22:42:29 +02:00
Evan Hunt 529262925e Merge branch '1948-primaries-synonym' into 'main'
Resolve "add synonym for 'masters'"

Closes #1948

See merge request isc-projects/bind9!3703
2020-07-01 20:30:10 +00:00
Evan Hunt 565f99f9e5 CHANGES, release note 2020-07-01 11:13:44 -07:00
Evan Hunt e43b3c1fa1 further tidying of primary/secondary terminology in system tests
this changes most visble uses of master/slave terminology in tests.sh
and most uses of 'type master' or 'type slave' in named.conf files.
files in the checkconf test were not updated in order to confirm that
the old syntax still works. rpzrecurse was also left mostly unchanged
to avoid interference with DNSRPS.
2020-07-01 11:12:12 -07:00
Evan Hunt 68c384e118 use primary/secondary terminology in 'rndc zonestatus' 2020-07-01 11:11:34 -07:00
Evan Hunt f619708bbf prevent "primaries" lists from having duplicate names
it is now an error to have two primaries lists with the same
name. this is true regardless of whether the "primaries" or
"masters" keywords were used to define them.
2020-07-01 11:11:34 -07:00
Evan Hunt 424a3cf3cc add "primary-only" as a synonym for "master-only"
update the "notify" option to use RFC 8499 terminology as well.
2020-07-01 11:11:34 -07:00
Evan Hunt 16e14353b1 add "primaries" as a synonym for "masters" in named.conf
as "type primary" is preferred over "type master" now, it makes
sense to make "primaries" available as a synonym too.

added a correctness check to ensure "primaries" and "masters"
cannot both be used in the same zone.
2020-07-01 11:11:34 -07:00
Evan Hunt 4ea6bb7257 Merge branch 'each-rndc-netmgr-pt1.5' into 'main'
Fix socket closing races.

Closes #1660

See merge request isc-projects/bind9!3781
2020-07-01 17:04:51 +00:00
Evan HuntandWitold Kręcicki 233f134a4f Don't destroy a non-closed socket, wait for all the callbacks.
We erroneously tried to destroy a socket after issuing
isc__nm_tcp{,dns}_close. Under some (race) circumstances we could get
nm_socket_cleanup to be called twice for the same socket, causing an
access to a dead memory.
2020-07-01 17:35:10 +02:00
Witold Kręcicki 896db0f419 Fix possible race in isc__nm_tcpconnect.
There's a possibility of race in isc__nm_tcpconnect if the asynchronous
connect operation finishes with all the callbacks before we exit the
isc__nm_tcpconnect itself we might access an already freed memory.
Fix it by creating an additional reference to the socket freed at the
end of isc__nm_tcpconnect.
2020-07-01 13:52:12 +00:00
Witold Kręcicki 25f84ffc68 Add missing libisc.def definitions, netmgr version of isc_sockettype_t. 2020-07-01 13:52:12 +00:00
Ondřej Surý 7500fb9319 Merge branch '1968-cleanup-dead-nodes-fix' into 'main'
rbtdb: cleanup_dead_nodes should ignore alive nodes on the deadlist

Closes #1968

See merge request isc-projects/bind9!3773
2020-07-01 13:34:54 +00:00
Ondřej Surý 4c12709da4 Add CHANGES and release note for #1968 2020-07-01 15:11:44 +02:00
Witold KręcickiandOndřej Surý c8f2d55acf rbtdb: cleanup_dead_nodes should ignore alive nodes on the deadlist 2020-07-01 15:11:07 +02:00
Ondřej Surý dbd03ce112 Merge branch '1862-insist-in-query-c' into 'main'
Fix assertion failure when server is under load and root zone is not yet loaded.

Closes #1862

See merge request isc-projects/bind9!3572
2020-07-01 10:56:38 +00:00
Ondřej Surý ee43457811 Add release notes for #1862 2020-07-01 12:26:17 +02:00
Witold KręcickiandOndřej Surý 4897c87716 Add CHANGES note for #1862 2020-07-01 12:25:51 +02:00
Witold KręcickiandOndřej Surý b4f3fafcff Fix assertion failure during startup when the server is under load.
When we're coming back from recursion fetch_callback does not accept
DNS_R_NXDOMAIN as an rcode - query_gotanswer calls query_nxdomain in
which an assertion fails on qctx->is_zone. Yet, under some
circumstances, qname minimization will return an DNS_R_NXDOMAIN - when
root zone mirror is not yet loaded. The fix changes the DNS_R_NXDOMAIN
answer to DNS_R_SERVFAIL.
2020-07-01 12:25:36 +02:00
Ondřej Surý ee7bc2163f Merge branch 'ondrej/update-rndc.conf-manpage' into 'main'
Commit the regenerated rndc.conf.5in manual page

See merge request isc-projects/bind9!3777
2020-07-01 10:18:55 +00:00
Ondřej Surý c5b63e14bc Commit the regenerated rndc.conf.5in manual page 2020-07-01 12:14:29 +02:00
Ondřej Surý 6b8a548732 Merge branch '1747-fix-race-in-rndc-when-shutting-down' into 'main'
Resolve "BIND 9.16.1 does core dump when stopped"

Closes #1747

See merge request isc-projects/bind9!3740
2020-07-01 10:14:05 +00:00
Ondřej Surý 605209402f Add CHANGES and release not for #1747 2020-07-01 11:59:01 +02:00
Diego FronzaandOndřej Surý 042e509753 Added test for the fix
This test ensures that named will correctly shutdown
when receiving multiple control connections after processing
of either "rncd stop" or "kill -SIGTERM" commands.

Before the fix, named was crashing due to a race condition happening
between two threads, one running shutdown logic in named/server.c
and other handling control logic in controlconf.c.

This test tries to reproduce the above scenario by issuing multiple
queries to a target named instance, issuing either rndc stop or kill
-SIGTERM command to the same named instance, then starting multiple rndc
status connections to ensure it is not crashing anymore.
2020-07-01 11:59:01 +02:00
Ondřej Surý be6cc53ec2 Don't continue opening a new rndc connection if we are shutting down
Due to lack of synchronization, whenever named was being requested to
stop using rndc, controlconf.c module could be trying to access an already
released pointer through named_g_server->interfacemgr in a separate
thread.

The race could only be triggered if named was being shutdown and more
rndc connections were ocurring at the same time.

This fix correctly checks if the server is shutting down before opening
a new rndc connection.
2020-07-01 08:44:56 +02:00
Evan Hunt 402e16546d Merge branch '1936-blackhole-fix' into 'main'
Resolve "blackhole ACL broken"

Closes #1936

See merge request isc-projects/bind9!3751
2020-07-01 02:41:02 +00:00
Evan Hunt 08401e38c1 CHANGES, release note 2020-06-30 17:31:29 -07:00
Evan Hunt 23c7373d68 restore "blackhole" functionality
the blackhole ACL was accidentally disabled with respect to client
queries during the netmgr conversion.

in order to make this work for TCP, it was necessary to add a return
code to the accept callback functions passed to isc_nm_listentcp() and
isc_nm_listentcpdns().
2020-06-30 17:29:09 -07:00
Evan Hunt e3ee138098 update the acl system test to include a blackhole test case
this ACL was previously untested, which allowed a regression to
go undetected.
2020-06-30 17:29:09 -07:00
Matthijs Mekking 3970e6e832 Merge branch '1612-rndc-dnssec-status' into 'main'
Resolve "Get current state of DNSSEC keys (kasp) via rndc"

Closes #1612

See merge request isc-projects/bind9!3717
2020-06-30 09:12:48 +00:00
Matthijs Mekking e273b95a8b Update notes, changes for #1612 2020-06-30 09:51:22 +02:00
Matthijs Mekking 19ce9ec1d4 Output rndc dnssec -status
Implement the 'rndc dnssec -status' command that will output
some information about the key states, such as which policy is
used for the zone, what keys are in use, and when rollover is
scheduled.

Add loose testing in the kasp system test, the actual times are
already tested via key file inspection.
2020-06-30 09:51:04 +02:00
Matthijs Mekking e1ba1bea7c Implement dummy 'rndc dnssec -status' command
Add the code and documentation required to provide DNSSEC signing
status through rndc.  This does not yet show any useful information,
just provide the command that will output some dummy string.
2020-06-30 09:51:04 +02:00
Matthijs Mekking 9e03f8e8fe Move dst key printtime in separate function
I'd like to use the same functionality (pretty print the datetime
of keytime metadata) in the 'rndc dnssec -status' command.  So it is
better that this logic is done in a separate function.

Since the stdtime.c code have differernt files for unix and win32,
I think the "#ifdef WIN32" define can be dropped.
2020-06-30 09:51:04 +02:00
Matthijs Mekking 9724b6f68d Merge branch 'matthijs-one-more-rfc4592-test' into 'main'
Add one more RFC 4592 test

See merge request isc-projects/bind9!3764
2020-06-30 07:01:47 +00:00
Matthijs Mekking f0b5eb03bb Add one more RFC 4592 test
This deals with the SRV example.
2020-06-30 05:22:24 +00:00
Mark Andrews 37213cb994 Merge branch 'marka-fixup-dnstap-test' into 'main'
Fix the dnstap roll test

See merge request isc-projects/bind9!3756
2020-06-29 22:28:46 +00:00
Mark Andrews b3215125ea Fix the dnstap roll test by:
* fixing the find call.
* checking that we rolled a file.
2020-06-30 08:27:58 +10:00
Evan Hunt 01176a8e7a Merge branch 'placeholder' into 'main'
placeholder

See merge request isc-projects/bind9!3767
2020-06-29 20:23:30 +00:00
Evan Hunt add6d07921 placeholder 2020-06-29 13:22:42 -07:00
Ondřej Surý dfe4cbbcca Merge branch 'ondrej/fix-manpages-in-rtd' into 'main'
Fix the manpages TOC in the BIND 9 ARM

See merge request isc-projects/bind9!3765
2020-06-29 17:40:37 +00:00
Ondřej Surý b51d10608e Fix miscellaneous little bugs in RST formatting 2020-06-29 19:39:03 +02:00
Ondřej Surý 5c56a0ddbc Add missing rndc.conf header that was breaking manpages section
The rndc.conf main header was missing the header markup and that was
breaking the TOC for all manpages in the ARM because sphinx-build
incorrectly remembered the markup for subheader to be ~~~~ instead of
----.
2020-06-29 19:37:18 +02:00
Michał Kępień ac9de68750 Merge branch 'mnowak/add-new-releases' into 'main'
Add Ubuntu 20.04, Fedora 32, Alpine 3.12, OpenBSD 6.7, and FreeBSD 11.4

See merge request isc-projects/bind9!3503
2020-06-29 10:42:22 +00:00
Michał Kępień 1be15f5900 Fix build-time GSSAPI detection on Tumbleweed
The "krb5-devel" package on openSUSE Tumbleweed installs the
"krb5-config" binary into a custom prefix, which prevents BIND's
"configure" script from autodetecting it.  Fix by specifying the path to
the "krb5-config" binary using --with-gssapi.
2020-06-29 12:08:19 +02:00
Michal NowakandMichał Kępień 18f97b9af2 Update FreeBSD 11 to 11.4 2020-06-29 12:08:19 +02:00
Michal NowakandMichał Kępień eff79ab20c Update to Alpine Linux 3.12 2020-06-29 12:08:19 +02:00
Michal NowakandMichał Kępień 374660fd37 Update to OpenBSD 6.7 2020-06-29 12:08:19 +02:00
Michal NowakandMichał Kępień 27c8bc1750 Drop Bionic 2020-06-29 12:08:19 +02:00
Michal NowakandMichał Kępień c3e259a8c9 Add Ubuntu 20.04 Focal Fossa, update Fedora to 32 2020-06-29 12:08:19 +02:00
Michał Kępień 58f89dfff8 Merge branch 'michal/fix-libdns-cflags' into 'main'
Fix libdns CFLAGS

See merge request isc-projects/bind9!3759
2020-06-29 08:29:19 +00:00
Michał Kępień 0975eeedd7 Fix libdns CFLAGS
Since lib/dns/include/dns/view.h unconditionally defines dnstap-related
fields in struct dns_view (and includes <dns/dnstap.h>), care must be
taken to ensure that any source file which includes <dns/view.h> gets
built with a set of CFLAGS which allows <dns/dnstap.h> to be properly
processed (particularly its <fstrm.h> and <protobuf-c/protobuf-c.h>
conditional dependencies which are only included for dnstap-enabled
builds).  Ensure that by making LIBDNS_CFLAGS include DNSTAP_CFLAGS when
building with dnstap support.

The same reasoning applies for LMDB_CFLAGS.
2020-06-29 10:23:23 +02:00
Michał Kępień bf0229caad Fix restoring CFLAGS and LIBS in AX_LIB_LMDB()
The AX_LIB_LMDB() macro attempts to test the potential LMDB installation
path provided to it by temporarily updating CFLAGS and LIBS, calling
AC_SEARCH_LIBS(), and then restoring CFLAGS and LIBS to their original
values.  However, including certain statements (e.g. "break") in the
arguments provided to the AX_LIB_LMDB() macro may cause an early exit
from it, in which case CFLAGS and LIBS will be left polluted.  Fix by
resetting CFLAGS and LIBS to their original values before executing the
commands provided as AX_LIB_LMDB() arguments.
2020-06-29 10:23:23 +02:00
Matthijs Mekking 5cc856095b Merge branch '1876-kasp-test-wait-for-reconfig' into 'main'
Resolve "kasp: algnum migration test does not wait long enough."

Closes #1876

See merge request isc-projects/bind9!3588
2020-06-29 06:01:54 +00:00
Matthijs Mekking a47192ed5b kasp tests: fix wait for reconfig done
The wait until zones are signed after rndc reconfig is broken
because the zones are already signed before the reconfig.  Fix
by having a different way to ensure the signing of the zone is
complete.  This does require a call to the "wait_for_done_signing"
function after each "check_keys" call after the ns6 reconfig.

The "wait_for_done_signing" looks for a (newly added) debug log
message that named will output if it is done signing with a certain
key.
2020-06-26 08:43:45 +00:00
Matthijs Mekking cf76d839ae kasp tests: Replace while loops with retry_quiet 2020-06-26 08:43:45 +00:00
Evan Hunt e8e7effc19 Merge branch 'each-changes' into 'main'
add missing CHANGES notes

See merge request isc-projects/bind9!3757
2020-06-26 08:16:03 +00:00
Evan Hunt 4280344d21 add missing CHANGES notes
CHANGES notes were accidentally omitted from the previous merge.
2020-06-26 01:14:30 -07:00
Evan Hunt d35101e433 Merge branch 'each-netmgr-fix-shutdown-crash' into 'main'
clean up outerhandle when a tcpdns socket is disconnected

See merge request isc-projects/bind9!3726
2020-06-26 07:49:46 +00:00
Evan Hunt 591b79b597 Make netmgr tcpdns send calls asynchronous
isc__nm_tcpdns_send() was not asynchronous and accessed socket
internal fields in an unsafe manner, which could lead to a race
condition and subsequent crash. Fix it by moving tcpdns processing
to a proper netmgr thread.
2020-06-26 00:19:42 -07:00
Witold KręcickiandEvan Hunt 1cf65cd882 Fix a shutdown race in netmgr udp
We need to mark the socket as inactive early (and synchronously)
in the stoplistening process; otherwise we might destroy the
callback argument before we actually stop listening, and call
the callback on bad memory.
2020-06-26 00:19:42 -07:00
Evan Hunt 3704c4fff2 clean up outerhandle when a tcpdns socket is disconnected
this prevents a crash when some non-netmgr thread, such as a
recursive lookup, times out after the TCP socket is already
disconnected.
2020-06-26 00:19:42 -07:00
Evan Hunt bcbc7e2b10 Merge branch '1952-yaml-ipv6' into 'main'
append "0" to IPv6 addresses ending in "::" when printing YAML

Closes #1952

See merge request isc-projects/bind9!3714
2020-06-26 01:56:29 +00:00
Evan Hunt a8baf79e33 append "0" to IPv6 addresses ending in "::" when printing YAML
such addresses broke some YAML parsers.
2020-06-25 16:42:13 -07:00
Mark Andrews 5d3a7aadb8 Merge branch '1689-bind-stops-dnskey-lookup-in-get_dst_key-when-a-key-with-unsupported-algorithm-is-found-first' into 'main'
Resolve "BIND stops DNSKEY lookup in get_dst_key() when a key with unsupported algorithm is found first"

Closes #1689

See merge request isc-projects/bind9!3736
2020-06-25 12:40:45 +00:00
Matthijs Mekking c6345fffe9 Add todo in dnssec system test for [GL #1689]
Add a note why we don't have a test case for the issue.

It is tricky to write a good test case for this if our tools are
not allowed to create signatures for unsupported algorithms.
2020-06-25 13:46:36 +02:00
Mark AndrewsandMatthijs Mekking e195d4608a Add Release Note for [GL #1689] 2020-06-25 13:46:36 +02:00
Mark AndrewsandMatthijs Mekking b733bd6555 Add CHANGES for [GL #1689] 2020-06-25 13:46:36 +02:00
Mark AndrewsandMatthijs Mekking d475f3aeed The validator could fail when select_signing_key/get_dst_key failed
to select the signing key because the algorithm was not supported
and the loop was prematurely aborted.
2020-06-25 13:43:45 +02:00
Mark Andrews 30b85fe4a8 Merge branch '1969-silence-cppcheck-warnings' into 'main'
Resolve "Silence CPPCHECK warnings"

Closes #1969

See merge request isc-projects/bind9!3741
2020-06-25 07:01:05 +00:00
Mark Andrews abe2c84b1d Suppress cppcheck warnings:
cppcheck-suppress objectIndex
cppcheck-suppress nullPointerRedundantCheck
2020-06-25 12:04:36 +10:00
Mark Andrews 0cf25d7f38 Add INSIST's to silence cppcheck warnings 2020-06-25 12:04:36 +10:00
Mark Andrews ee135d8946 Remove now redundant check for state != NULL 2020-06-25 12:04:36 +10:00
Mark Andrews 51f08d2095 Address potential thread issues:
Assign and then check node for NULL to address another thread
changing radix->head in the meantime.

Move 'node != NULL' check into while loop test to silence cppcheck
false positive.

Fix pointer != NULL style.
2020-06-25 12:04:36 +10:00
Mark Andrews 6d5fde62a3 Merge branch '1965-bin-named-unix-os-c-warning-s-directive-output-may-be-truncated-on-openindiana' into 'main'
Resolve "bin/named/unix/os.c warning: '%s' directive output may be truncated on OpenIndiana"

Closes #1965

See merge request isc-projects/bind9!3737
2020-06-24 23:22:08 +00:00
Mark Andrews 4bc3de070f Resize unamebuf[] to avoid warnings about snprintf() not having
enough buffer space.  Also change named_os_uname() prototype so
that it is now returning (const char *) rather than (char *).  If
uname() is not supported on a UNIX build prepopulate unamebuf[]
with "unknown architecture".
2020-06-24 23:21:36 +00:00
Michał Kępień 1844b47eb3 Merge branch '1970-fix-libtool-initialization' into 'main'
Fix libtool initialization

Closes #1970

See merge request isc-projects/bind9!3742
2020-06-24 09:28:01 +00:00
Michał Kępień a7982d14dd Fix libtool initialization
The LT_INIT() call in configure.ac is effectively a no-op because it is
preceded by a call to AC_PROG_LIBTOOL(), which is the previous name of
LT_INIT() used in older libtool versions.  Replace AC_PROG_LIBTOOL()
with AC_PATH_PROG() to look for libtool in PATH without initializing it,
which is the originally intended behavior.

Without this change, --enable-static is used by default, which causes a
plain ./configure invocation to fail because static linking is now
disallowed.  Drop --disable-static from the ./configure invocations used
in GitLab CI to test this scenario continuously.
2020-06-24 10:07:57 +02:00
Ondřej Surý 6f9a87fdf6 Merge branch '1933-disable-static-linking' into 'main'
Disable and disallow static linking

Closes #1933

See merge request isc-projects/bind9!3697
2020-06-23 13:28:06 +00:00
Ondřej SurýandMichał Kępień 7f24d4b476 Add CHANGES and release note for #1933 2020-06-23 15:16:02 +02:00
Ondřej SurýandOndřej Surý a7bed56845 Disable and disallow static linking
Linking BIND 9 programs and libraries statically disables several
important features:

  * dlopen() - relied on by dynamic loading of modules, dlz, and dyndb,

  * RELRO (read-only relocations) and ASLR (address space layout
    randomization) - security features which are important for any
    program interacting with the network and/or user input.

Disable and disallow linking BIND 9 binaries statically, thus enforcing
dlopen() support and allowing use of RELRO and ASLR by default.
2020-06-23 15:16:02 +02:00
Mark Andrews 789e5f4a4b Merge branch 'u/fanf2/dnstap-roll' into 'main'
Fix `rndc dnstap -roll N`

See merge request isc-projects/bind9!3728
2020-06-23 10:27:34 +00:00
Mark Andrews 81d15bc967 Add Release Note for [GL !3728] 2020-06-23 20:20:39 +10:00
Mark Andrews ce776e79ed Add CHANGES for [GL !3728] 2020-06-23 20:20:39 +10:00
Mark Andrews a289a57c7f Check that 'rndc dnstap -roll <value>' works 2020-06-23 20:20:39 +10:00
Tony FinchandMark Andrews 7c07129a51 Fix rndc dnstap -roll N
The `rndc` argument was always overridden by the static configuration,
because the logic for handling the number of dnstap files to retain
was both backwards and a bit redundant.
2020-06-23 20:20:39 +10:00
Michal Nowak e8fa9986bd Merge branch 'mnowak/do-not-build-gzip-tarball' into 'main'
Do not create gzip tarball

See merge request isc-projects/bind9!3734
2020-06-23 07:48:58 +00:00
Michal Nowak c76c826fdb Do not create gzip tarball
'make dist' does not need to create gzip tarball as we always ship the
XZ one.
2020-06-22 21:04:18 +02:00
Ondřej Surý b4221e2595 Merge branch 'ondrej/disable-maintainer-mode-in-ci' into 'main'
Disable rebuilding miscellaneous documentation source files when not in maintainer mode

See merge request isc-projects/bind9!3733
2020-06-22 17:01:41 +00:00
Ondřej Surý 7ff77bb676 Enable maintainer mode by default only when building from git
When maintainer mode is enabled (./configure --enable-maintainer-mode)
it enables rebuild of documentation source files that require extra
tools to be installed or compiled.  For a convenience, those files are
already committed into the repository and their rebuild is not required
to build BIND 9 from sources.
2020-06-22 14:26:07 +02:00
Ondřej Surý 5f530bd1f9 Remove the last bits of '// not configured' from doc/misc/options 2020-06-22 14:08:53 +02:00
Ondřej Surý 36e4090c70 Update pregenerated dig.1in and rndc-confgen.8in 2020-06-22 14:08:53 +02:00
Ondřej Surý 8b18d8f3bc Disable the double configure and build step in docs CI job
The documentation now can be build even when the BIND 9 source tree
hasn't been built yet allowing no-arch builds.
2020-06-22 14:08:53 +02:00
Ondřej Surý 28575abd93 Rebuild the manpages sources only when in maintainer mode
Similarly, the manpage sources will get rebuild only when in maintainer
mode because they require sphinx-build to be available locally and that
might not be always the case.
2020-06-22 14:08:53 +02:00
Ondřej Surý b1093533ef Rebuild the file in doc/misc only when in maintainer mode
The files in doc/misc requires all the BIND 9 libraries to be built
before the documentation can be built.  One of the extra automake
features is maintainer mode that allows to conditionally build and clean
files that require special tools.  Make use of the automake maintainer
mode to not rebuild the files in doc/misc under normal circumstances.
2020-06-22 14:08:53 +02:00
Ondřej Surý c9c84af3c9 Merge branch 'each-shorten-tests' into 'main'
reorder system tests to shorten runtime

See merge request isc-projects/bind9!3727
2020-06-22 12:06:10 +00:00
Evan HuntandOndřej Surý a9154f2aab reorder system tests to shorten runtime
if tests that take a particularly long time to complete
(serve-stale, dnssec, rpzrecurse) are run first, a parallel
run of the system tests can finish 1-2 minutes faster.
2020-06-22 12:05:32 +00:00
Ondřej Surý 8e4afd31e9 Merge branch '1898-doc/misc/options-should-be-independent-on-configure' into 'main'
Remove // not configured when generating doc/misc/options

Closes #1898

See merge request isc-projects/bind9!3731
2020-06-22 11:44:39 +00:00
Ondřej Surý b82ff5b738 Remove // not configured when generating doc/misc/options
The doc/misc/options is used to generate a file describing all
configuration options. Currently, the file contents could differ
based on ./configure option which is kind of suboptimal.

We already removed the "// not configured" from the options.active, and
this time we remove generation of the string altogether.
2020-06-22 11:44:05 +00:00
Ondřej Surý c3510ca6a3 Merge branch '1949-checknames' into 'main'
"check-names primary" and "check-names secondary" were ignored

Closes #1949

See merge request isc-projects/bind9!3702
2020-06-22 11:14:54 +00:00
Ondřej Surý eaafae2766 Add CHANGES and release note for #1949 2020-06-22 12:33:54 +02:00
Evan HuntandOndřej Surý ba31b189b4 "check-names primary" and "check-names secondary" were ignored
these keywords were added to the parser as synonyms for "master"
and "slave" but were never hooked in to the configuration of named,
so they were ignored. this has been fixed and the option is now
checked for correctness.
2020-06-22 12:32:32 +02:00
Ondřej Surý 783e3f922a Merge branch '1627-address-race-in-zone-maintenance' into 'main'
address race between zone_maintenance and dns_zone_setview_helper

Closes #1627

See merge request isc-projects/bind9!3669
2020-06-22 10:26:29 +00:00
Mark AndrewsandOndřej Surý 67c8f7329d Address race between zone_maintenance and dns_zone_setview_helper
There was a possible NULL dereference due to data race between accessing
zone->view and zone->view->adb.
2020-06-22 12:20:51 +02:00
Evan Hunt 5238433f78 Merge branch 'each-rndc-netmgr-pt1' into 'main'
client-side TCP

Closes #1958

See merge request isc-projects/bind9!3723
2020-06-19 22:19:10 +00:00
Evan Hunt 8b9e2d33a2 CHANGES 2020-06-19 12:33:26 -07:00
Evan Hunt 75c985c07f change the signature of recv callbacks to include a result code
this will allow recv event handlers to distinguish between cases
in which the region is NULL because of error, shutdown, or cancelation.
2020-06-19 12:33:26 -07:00
Evan Hunt 5191ec8f86 implement isc_nm_cancelread()
The isc_nm_cancelread() function cancels reading on a connected
socket and calls its read callback function with a 'result'
parameter of ISC_R_CANCELED.
2020-06-19 12:33:26 -07:00
Evan Hunt 870204fe47 shorten the sleep in isc_nm_destroy()
when isc_nm_destroy() is called, there's a loop that waits for
other references to be detached, pausing and unpausing the netmgr
to ensure that all the workers' events are run, followed by a
1-second sleep. this caused a delay on shutdown which will be
noticeable when netmgr is used in tools other than named itself,
so the delay has now been reduced to a hundredth of a second.
2020-06-19 12:32:43 -07:00
Evan HuntandWitold Kręcicki abbb79f9d1 implement isc_nm_tcpconnect()
the isc_nm_tcpconnect() function establishes a client connection via
TCP.  once the connection is esablished, a callback function will be
called with a newly created network manager handle.
2020-06-19 09:41:37 +02:00
Witold Kręcicki cd79b49538 allow tcpdns sockets to self-reference while connected
A TCPDNS socket creates a handle for each complete DNS message.

Previously, when all the handles were disconnected, the socket
would be closed, but the wrapped TCP socket might still have
more to read.

Now, when a connection is established, the TCPDNS socket creates
a reference to itself by attaching itself to sock->self. This
reference isn't cleared until the connection is closed via
EOF, timeout, or server shutdown. This allows the socket to remain
open even when there are no active handles for it.
2020-06-19 09:39:50 +02:00
Evan HuntandWitold Kręcicki 5ea26ee1f1 modify reference counting within netmgr
- isc__nmhandle_get() now attaches to the sock in the nmhandle object.
  the caller is responsible for dereferencing the original socket
  pointer when necessary.
- tcpdns listener sockets attach sock->outer to the outer tcp listener
  socket. tcpdns connected sockets attach sock->outerhandle to the handle
  for the tcp connected socket.
- only listener sockets need to be attached/detached directly. connected
  sockets should only be accessed and reference-counted via their
  associated handles.
2020-06-19 09:39:50 +02:00
Evan HuntandWitold Kręcicki 9e740cad21 make isc_nmsocket_{attach,detach}{} functions private
there is no need for a caller to reference-count socket objects.
they need tto be able tto close listener sockets (i.e., those
returned by isc_nm_listen{udp,tcp,tcpdns}), and an isc_nmsocket_close()
function has been added for that. other sockets are only accessed via
handles.
2020-06-19 09:39:50 +02:00
Mark Andrews be032d64ff Merge branch 'marka-placeholder' into 'main'
placeholder for [GL #1955]

See merge request isc-projects/bind9!3720
2020-06-19 02:20:25 +00:00
Mark Andrews 642279dd8f placeholder for [GL #1955] 2020-06-19 12:16:57 +10:00
Michał Kępień 943d9ab85c Merge branch 'michal/fix-abi-check-job-in-gitlab-ci' into 'main'
Fix ABI check job in GitLab CI

See merge request isc-projects/bind9!3715
2020-06-18 08:56:01 +00:00
Michał Kępień 31f73efee5 Fix ABI check job in GitLab CI
Since the reference BIND version for the ABI check job which is run for
the main branch is now 9.17.2, autoreconf needs to be run before
./configure as the latter is no longer present in the Git repository.
2020-06-18 10:52:54 +02:00
Michał Kępień 1f39f593d5 Merge branch 'v9_17_2-release' into 'main'
[CVE-2020-8618] [CVE-2020-8619] Merge 9.17.2 release branch

See merge request isc-projects/bind9!3711
2020-06-18 08:20:56 +00:00
Michał Kępień a4bb843075 Set up release notes for BIND 9.17.3 2020-06-18 10:10:02 +02:00
Michał Kępień 18560109a2 Bump BIND_BASELINE_VERSION for ABI checks 2020-06-18 10:10:02 +02:00
Evan HuntandMichał Kępień 59cbde7df6 Merge branch 'prep-release' into master 2020-06-18 10:03:18 +02:00
Michał Kępień 3c213f96f3 Update BIND version to 9.17.2 2020-06-18 10:03:18 +02:00
Michał Kępień d6084fde0a Add a CHANGES marker 2020-06-18 10:03:17 +02:00
Michał Kępień 4809a16431 Merge branch 'security-master-docs' into 'security-master'
Prepare documentation for BIND 9.17.2

See merge request isc-private/bind9!172
2020-06-18 10:03:05 +02:00
Michał Kępień a8bc003d1b Update library API versions 2020-06-18 10:03:05 +02:00
Michał Kępień 12aa6a0308 Tweak and reword release notes 2020-06-18 10:03:05 +02:00
Michał Kępień 861d824f56 Add release note for #1859 2020-06-18 10:03:05 +02:00
Michał Kępień 0d991837a2 Add release note for #1842 2020-06-18 10:03:05 +02:00
Michał Kępień b932982903 Add release note for #1834 2020-06-18 10:03:05 +02:00
Michał Kępień 4c730f6d49 Add release note for #1812 2020-06-18 10:03:05 +02:00
Michał Kępień e8a9a9b800 Add release note for #1714 2020-06-18 10:03:05 +02:00
Michał Kępień 9e8a2a8150 Add release note for #83 2020-06-18 10:03:05 +02:00
Michał Kępień 11d8177c99 Reorder release notes 2020-06-18 10:03:00 +02:00
Michał Kępień 06bc27fb0e Merge branch 'security-wildcard-test-marka' into security-master 2020-06-18 09:59:20 +02:00
Michał Kępień 2c90cfdcdd Prepare release notes for BIND 9.17.2 2020-06-18 09:59:20 +02:00
Michał Kępień 4e7f7f99b6 Merge branch 'security-new_reference-insist' into security-master 2020-06-18 09:59:20 +02:00
Mark AndrewsandMichał Kępień 7c7a0fb029 Add CHANGES note 2020-06-18 09:59:20 +02:00
Michał Kępień 4963d557f1 Tweak and reword recent CHANGES entries 2020-06-18 09:59:20 +02:00
Michał Kępień 9924fc106f Merge branch '1850-cleanup-client_allocsendbuf' into security-master 2020-06-18 09:59:20 +02:00
Mark AndrewsandMichał Kępień 7f928f4afb Add CHANGES entry for #1718 2020-06-18 09:59:20 +02:00
Mark AndrewsandMichał Kępień 3632b3c282 Add checking RFC 4592 responses examples to wildcard system test 2020-06-18 09:59:20 +02:00
Mark AndrewsandMichał Kępień 8e88a6f0ad Add release note for #1718 2020-06-18 09:59:20 +02:00
Mark AndrewsandMichał Kępień 0854f63114 Remove INSIST from from new_reference
RBTDB node can now appear on the deadnodes lists following the changes
to decrement_reference in 176b23b6cd to
defer checking of node->down when the tree write lock is not held.  The
node should be unlinked instead.
2020-06-18 09:59:20 +02:00
Mark AndrewsandMichał Kępień ed4b69abb8 Add release notes for #1850 2020-06-18 09:59:19 +02:00
Mark AndrewsandMichał Kępień 381351fcd4 Add CHANGES entry for #1850 2020-06-18 09:59:19 +02:00
Mark AndrewsandMichał Kępień 924e141a15 Adjust NS_CLIENT_TCP_BUFFER_SIZE and cleanup client_allocsendbuf
NS_CLIENT_TCP_BUFFER_SIZE was 2 byte too large following the
move to netmgr add associated changes to lib/ns/client.c and
as a result an INSIST could be trigger if the DNS message being
constructed had a checkpoint stage that fell in those two extra
bytes.  Adjusted NS_CLIENT_TCP_BUFFER_SIZE and cleaned up
client_allocsendbuf now that the previously reserved 2 bytes
are no longer used.
2020-06-18 09:59:19 +02:00
Ondřej Surý 3a5a508a0b Merge branch 'ondrej/switch-the-default-branch-name-to-main' into 'main'
Adjust the GitLab CI scripts for new default branch name

See merge request isc-projects/bind9!3706
2020-06-17 12:12:07 +00:00
Ondřej Surý b36cd06a0b Adjust the GitLab CI scripts for new default branch name 2020-06-17 14:10:54 +02:00
Ondřej Surý 4124a1294e Merge branch '1950-placeholder' into 'master'
Add CHANGES placeholder for #1950

Closes #1950

See merge request isc-projects/bind9!3705
2020-06-17 10:40:25 +00:00
Ondřej Surý a0fbe46216 Add CHANGES placeholder for #1950 2020-06-17 12:39:05 +02:00
Ondřej Surý 2473e3b21e Merge branch '1943-remove-references-to-blacklist-and-whitelist-in-bind-arm' into 'master'
Resolve "Remove references to "blacklist" and "whitelist" in BIND ARM"

Closes #1943

See merge request isc-projects/bind9!3693
2020-06-16 19:57:41 +00:00
Suzanne GoldlustandOndřej Surý 4a04fb68cd Update logging-categories.rst and reference.rst
Remove references to "blacklist" and "whitelist"
2020-06-16 19:53:36 +00:00
Ondřej Surý 3210a4275c Merge branch '1932-text-corrections-in-readme-md' into 'master'
Resolve "Text corrections in README.md"

Closes #1932

See merge request isc-projects/bind9!3686
2020-06-16 19:35:44 +00:00
Suzanne GoldlustandOndřej Surý 075ccbd6b5 Various text edits and corrections to README.md 2020-06-16 19:35:44 +00:00
Ondřej Surý 6dfdb148c1 Merge branch '1931-fix-out-of-order-rfcs-in-general-rst-file-of-bind-arm' into 'master'
Resolve "Fix out-of-order RFCs in general.rst file of BIND ARM"

Closes #1931

See merge request isc-projects/bind9!3685
2020-06-16 19:30:44 +00:00
Suzanne GoldlustandOndřej Surý acb4742182 Fix two RFCs that were out of numerical order 2020-06-16 19:30:18 +00:00
Ondřej Surý 43cb581a95 Merge branch '1945-system-clang-tsan-has-bad-symbolizer' into 'master'
Set the TSAN symbolizer path directly, the indirection via env doesn't work

Closes #1945

See merge request isc-projects/bind9!3696
2020-06-16 08:49:08 +00:00
Ondřej Surý 39107365a7 Set the TSAN symbolizer path directly, the indirection via env doesn't work 2020-06-16 09:58:49 +02:00
Ondřej Surý 1c79e15f9b Merge branch '1474-threadsanitizer-data-race-lib-dns-message-c' into 'master'
Add missing acquire memory barrier in isc_nmhandle_unref

Closes #1474

See merge request isc-projects/bind9!3689
2020-06-16 06:57:21 +00:00
Ondřej Surý 1013c0930e Add missing acquire memory barrier in isc_nmhandle_unref
The ThreadSanitizer uses system synchronization primitives to check for
data race.  The netmgr handle->references was missing acquire memory
barrier before resetting and reusing the memory occupied by isc_nmhandle_t.
2020-06-11 13:01:26 +02:00
Mark Andrews 50d3344ca5 Merge branch 'marka-dsset-refs' into 'master'
The dsset returned by dns_keynode_dsset() was not thread safe

Closes #1926

See merge request isc-projects/bind9!3687
2020-06-11 06:07:21 +00:00
Mark Andrews f97889a51a Add release note for [GL #1926] 2020-06-11 16:04:28 +10:00
Mark Andrews 9d89244ba2 Add CHANGES note [GL #1926] 2020-06-11 16:04:28 +10:00
Mark Andrews ff4fc3f8dc val->keynode is no longer needed 2020-06-11 16:03:11 +10:00
Mark Andrews e5b2eca1d3 The dsset returned by dns_keynode_dsset needs to be thread safe.
- clone keynode->dsset rather than return a pointer so that thread
  use is independent of each other.
- hold a reference to the dsset (keynode) so it can't be deleted
  while in use.
- create a new keynode when removing DS records so that dangling
  pointers to the deleted records will not occur.
- use a rwlock when accessing the rdatalist to prevent instabilities
  when DS records are added.
2020-06-11 16:02:09 +10:00
578 changed files with 10463 additions and 8127 deletions
+51 -51
View File
@@ -18,7 +18,6 @@ variables:
CONFIGURE: ./configure
CLANG: clang-10
SCAN_BUILD: scan-build-10
SYMBOLIZER: /usr/lib/llvm-10/bin/llvm-symbolizer
ASAN_SYMBOLIZER_PATH: /usr/lib/llvm-10/bin/llvm-symbolizer
CLANG_FORMAT: clang-format-10
@@ -26,7 +25,7 @@ variables:
# Pass run-time flags to AddressSanitizer to get core dumps on error.
ASAN_OPTIONS_COMMON: abort_on_error=1:disable_coredump=0:unmap_shadow_on_exit=1
TSAN_OPTIONS_COMMON: "second_deadlock_stack=1 history_size=7 log_exe_name=true log_path=tsan external_symbolizer_path=$SYMBOLIZER"
TSAN_OPTIONS_COMMON: "second_deadlock_stack=1 history_size=7 log_exe_name=true log_path=tsan external_symbolizer_path=/usr/lib/llvm-10/bin/llvm-symbolizer"
TARBALL_EXTENSION: xz
@@ -76,8 +75,8 @@ stages:
# Alpine Linux
.alpine-3.11-amd64: &alpine_3_11_amd64_image
image: "$CI_REGISTRY_IMAGE:alpine-3.11-amd64"
.alpine-3.12-amd64: &alpine_3_12_amd64_image
image: "$CI_REGISTRY_IMAGE:alpine-3.12-amd64"
<<: *linux_amd64
# CentOS
@@ -124,8 +123,8 @@ stages:
# Fedora
.fedora-31-amd64: &fedora_31_amd64_image
image: "$CI_REGISTRY_IMAGE:fedora-31-amd64"
.fedora-32-amd64: &fedora_32_amd64_image
image: "$CI_REGISTRY_IMAGE:fedora-32-amd64"
<<: *linux_amd64
# Ubuntu
@@ -134,8 +133,8 @@ stages:
image: "$CI_REGISTRY_IMAGE:ubuntu-xenial-amd64"
<<: *linux_amd64
.ubuntu-bionic-amd64: &ubuntu_bionic_amd64_image
image: "$CI_REGISTRY_IMAGE:ubuntu-bionic-amd64"
.ubuntu-focal-amd64: &ubuntu_focal_amd64_image
image: "$CI_REGISTRY_IMAGE:ubuntu-focal-amd64"
<<: *linux_amd64
# Base image
@@ -159,7 +158,7 @@ stages:
- tags
- web
- schedules
- master@isc-projects/bind9
- main@isc-projects/bind9
- /^v9_[1-9][0-9]$/@isc-projects/bind9
.precheck: &precheck_job
@@ -182,7 +181,6 @@ stages:
--disable-maintainer-mode \
--enable-developer \
--with-libtool \
--disable-static \
--with-cmocka \
--with-libxml2 \
--with-json-c \
@@ -203,6 +201,7 @@ stages:
- make -j${BUILD_PARALLEL_JOBS:-1} -k all V=1
- test -z "${RUN_MAKE_INSTALL}" || make install
- test -z "${RUN_MAKE_INSTALL}" || sh util/check-make-install
- if test "$(git status --porcelain | grep -Ev '\?\?' | wc -l)" -gt "0"; then git status --short; exit 1; fi
needs:
- job: autoreconf
artifacts: true
@@ -485,9 +484,6 @@ docs:
- test -n "${OOT_BUILD_WORKSPACE}" && mkdir "${OOT_BUILD_WORKSPACE}" && cd "${OOT_BUILD_WORKSPACE}"
script:
- *configure
- make -j${BUILD_PARALLEL_JOBS:-1} -k maintainer-clean V=1
- *configure
- make -j${BUILD_PARALLEL_JOBS:-1} -k all V=1
- make -j${BUILD_PARALLEL_JOBS:-1} -k doc V=1
needs:
- job: autoreconf
@@ -507,33 +503,33 @@ push:docs:
- job: docs
artifacts: false
script:
- curl -X POST -F token=$GITLAB_PAGES_DOCS_TRIGGER_TOKEN -F ref=master $GITLAB_PAGES_DOCS_TRIGGER_URL
- curl -X POST -F token=$GITLAB_PAGES_DOCS_TRIGGER_TOKEN -F ref=main $GITLAB_PAGES_DOCS_TRIGGER_URL
only:
- master@isc-projects/bind9
- main@isc-projects/bind9
- /^v9_[1-9][0-9]$/@isc-projects/bind9
# Jobs for regular GCC builds on Alpine Linux 3.11 (amd64)
# Jobs for regular GCC builds on Alpine Linux 3.12 (amd64)
gcc:alpine3.11:amd64:
gcc:alpine3.12:amd64:
variables:
CC: gcc
CFLAGS: "${CFLAGS_COMMON}"
EXTRA_CONFIGURE: "--enable-dnstap"
<<: *alpine_3_11_amd64_image
<<: *alpine_3_12_amd64_image
<<: *build_job
system:gcc:alpine3.11:amd64:
<<: *alpine_3_11_amd64_image
system:gcc:alpine3.12:amd64:
<<: *alpine_3_12_amd64_image
<<: *system_test_job
needs:
- job: gcc:alpine3.11:amd64
- job: gcc:alpine3.12:amd64
artifacts: true
unit:gcc:alpine3.11:amd64:
<<: *alpine_3_11_amd64_image
unit:gcc:alpine3.12:amd64:
<<: *alpine_3_12_amd64_image
<<: *unit_test_job
needs:
- job: gcc:alpine3.11:amd64
- job: gcc:alpine3.12:amd64
artifacts: true
# Jobs for regular GCC builds on CentOS 6 (amd64)
@@ -825,7 +821,7 @@ gcc:tumbleweed:amd64:
variables:
CC: gcc
CFLAGS: "${CFLAGS_COMMON}"
EXTRA_CONFIGURE: "--with-libidn2 --with-python"
EXTRA_CONFIGURE: "--with-libidn2 --with-python --with-gssapi=/usr/lib/mit/bin/krb5-config"
<<: *tumbleweed_latest_amd64_image
<<: *build_job
@@ -867,28 +863,28 @@ unit:gcc:xenial:amd64:
- job: gcc:xenial:amd64
artifacts: true
# Jobs for regular GCC builds on Ubuntu 18.04 Bionic Beaver (amd64)
# Jobs for regular GCC builds on Ubuntu 20.04 Focal Fossa (amd64)
gcc:bionic:amd64:
gcc:focal:amd64:
variables:
CC: gcc
CFLAGS: "${CFLAGS_COMMON} -Og"
EXTRA_CONFIGURE: "--with-libidn2"
<<: *ubuntu_bionic_amd64_image
<<: *ubuntu_focal_amd64_image
<<: *build_job
system:gcc:bionic:amd64:
<<: *ubuntu_bionic_amd64_image
system:gcc:focal:amd64:
<<: *ubuntu_focal_amd64_image
<<: *system_test_job
needs:
- job: gcc:bionic:amd64
- job: gcc:focal:amd64
artifacts: true
unit:gcc:bionic:amd64:
<<: *ubuntu_bionic_amd64_image
unit:gcc:focal:amd64:
<<: *ubuntu_focal_amd64_image
<<: *unit_test_job
needs:
- job: gcc:bionic:amd64
- job: gcc:focal:amd64
artifacts: true
# Jobs for ASAN builds on Debian 10 "buster" (amd64)
@@ -1075,54 +1071,56 @@ unit:gcc:softhsm2.4:
- job: gcc:softhsm2.4
artifacts: true
# Jobs for PKCS#11-enabled GCC builds on Fedora 31 (amd64)
# Jobs for PKCS#11-enabled GCC builds on Fedora 32 (amd64)
gcc:softhsm2.6:
variables:
CC: gcc
CFLAGS: "${CFLAGS_COMMON} -O1"
EXTRA_CONFIGURE: "--with-libidn2 --enable-native-pkcs11 --with-pkcs11=/usr/lib64/pkcs11/libsofthsm2.so"
<<: *fedora_31_amd64_image
<<: *fedora_32_amd64_image
<<: *build_job
system:gcc:softhsm2.6:
<<: *fedora_31_amd64_image
<<: *fedora_32_amd64_image
<<: *system_test_job
needs:
- job: gcc:softhsm2.6
artifacts: true
unit:gcc:softhsm2.6:
<<: *fedora_31_amd64_image
<<: *fedora_32_amd64_image
<<: *unit_test_job
needs:
- job: gcc:softhsm2.6
artifacts: true
# Jobs for Clang builds on FreeBSD 11.3 (amd64)
# Jobs for Clang builds on FreeBSD 11.4 (amd64)
clang:freebsd11.3:amd64:
clang:freebsd11.4:amd64:
variables:
CFLAGS: "${CFLAGS_COMMON}"
USER: gitlab-runner
# Temporarily disable LMDB support [GL #1976]
EXTRA_CONFIGURE: "--without-lmdb"
<<: *freebsd_amd64
<<: *build_job
system:clang:freebsd11.3:amd64:
system:clang:freebsd11.4:amd64:
<<: *freebsd_amd64
<<: *system_test_job
variables:
USER: gitlab-runner
TEST_PARALLEL_JOBS: 4
needs:
- job: clang:freebsd11.3:amd64
- job: clang:freebsd11.4:amd64
artifacts: true
unit:clang:freebsd11.3:amd64:
unit:clang:freebsd11.4:amd64:
<<: *freebsd_amd64
<<: *unit_test_job
needs:
- job: clang:freebsd11.3:amd64
- job: clang:freebsd11.4:amd64
artifacts: true
# Jobs for Clang builds on FreeBSD 12.1 (amd64)
@@ -1130,7 +1128,8 @@ unit:clang:freebsd11.3:amd64:
clang:freebsd12.1:amd64:
variables:
CFLAGS: "${CFLAGS_COMMON}"
EXTRA_CONFIGURE: "--enable-dnstap"
# Temporarily disable LMDB support [GL #1976]
EXTRA_CONFIGURE: "--enable-dnstap --without-lmdb"
USER: gitlab-runner
<<: *freebsd_amd64
<<: *build_job
@@ -1152,22 +1151,22 @@ unit:clang:freebsd12.1:amd64:
- job: clang:freebsd12.1:amd64
artifacts: true
# Jobs for Clang builds on OpenBSD 6.6 (amd64)
# Jobs for Clang builds on OpenBSD 6.7 (amd64)
clang:openbsd6.6:amd64:
clang:openbsd6.7:amd64:
variables:
CC: clang
USER: gitlab-runner
<<: *openbsd_amd64
<<: *build_job
system:clang:openbsd6.6:amd64:
system:clang:openbsd6.7:amd64:
<<: *openbsd_amd64
<<: *system_test_job
variables:
USER: gitlab-runner
needs:
- job: clang:openbsd6.6:amd64
- job: clang:openbsd6.7:amd64
artifacts: true
only:
- schedules
@@ -1353,12 +1352,13 @@ abi-check:
variables:
CC: gcc
CFLAGS: "${CFLAGS_COMMON} -Og"
BIND_BASELINE_VERSION: v9_17_1
BIND_BASELINE_VERSION: v9_17_2
script:
- *configure
- make -j${BUILD_PARALLEL_JOBS:-1} V=1
- git clone --branch "${BIND_BASELINE_VERSION}" --depth 1 https://gitlab.isc.org/isc-projects/bind9.git refbind
- cd refbind/
- autoreconf -fi
- *configure
- make -j${BUILD_PARALLEL_JOBS:-1} V=1
- cd ..
@@ -1370,5 +1370,5 @@ abi-check:
- "abi-*.dump"
expire_in: "1 week"
only:
- master@isc-projects/bind9
- main@isc-projects/bind9
- /^v9_[1-9][0-9]$/@isc-projects/bind9
+132 -45
View File
@@ -1,72 +1,160 @@
5461. [bug] The header STALE attribute was not being updated with
the write lock being held leading to incorrect
statistics. Convert the header attributes to use atomic
operations. [GL #1475]
5460. [cleanup] tsig-keygen was previously an alias for
ddns-confgen and was documented in the ddns-confgen
man page. This has been reversed; tsig-keygen is
now the primary name. [GL #1998]
5459. [bug] Bad isc_mem_put() size when an invalid type was
specified in a update-policy rule. [GL #1990]
5458. [bug] Prevent a theoretically possible NULL dereference caused
by a data race between zone_maintenance() and
dns_zone_setview_helper(). [GL #1627]
5457. [placeholder]
5456. [func] Added "primaries" as a synonym for "masters" in
named.conf, and "primary-only" as a synonym for
"master-only" in the parameters to "notify",
in order to bring terminology up to date with
RFC 8499. [GL #1948]
5455. [bug] `named` could crash when cleaning dead nodes
in lib/dns/rbtdb.c that have been reused meanwhile.
[GL #1968]
5454. [bug] Address a startup crash happening when server is
under load and root zone is not yet loaded. [GL #1862]
5453. [bug] `named` would crash on shutdown when new `rndc`
connection is received at the same time as
shutting down. [GL #1747]
5452. [bug] The "blackhole" ACL was accidentally disabled with
respect to client queries. [GL #1936]
5451. [func] Add 'rndc dnssec -status' command. [GL #1612]
5450. [placeholder]
5449. [bug] Fix a socket shutdown race in netmgr udp. [GL #1938]
5448. [bug] Fix a race condition in isc__nm_tcpdns_send().
[GL #1937]
5447. [bug] IPv6 addresses ending in "::" could break YAML
parsing. A "0" is now appended to such addresses
in YAML output from dig, mdig, delv, and dnstap-read.
[GL #1952]
5446. [bug] The validator could fail to accept a properly signed
RRset if an unsupported algorithm appeared earlier in
the DNSKEY RRset than a supported algorithm. It could
also stop if it detected a malformed public key.
[GL #1689]
5445. [cleanup] Disable and disallow static linking. [GL #1933]
5444. [bug] 'rndc dnstap -roll <value>' was not limiting the
number of saved files to <value>. [GL !3728]
5443. [bug] The "primary" and "secondary" keywords, when used
as parameters for "check-names", were not
processed correctly and were being ignored. [GL #1949]
5442. [func] Add support for outgoing TCP connections in netmgr.
[GL #1958]
5441. [placeholder]
5440. [placeholder]
5439. [bug] The dsset returned by dns_keynode_dsset() was not
thread safe. [GL #1926]
--- 9.17.2 released ---
5438. [bug] Fix a race in TCP accepting code. [GL #1930]
5437. [bug] Fix a data race in resolver log_formerr. [GL #1808]
5437. [bug] Fix a data race in lib/dns/resolver.c:log_formerr().
[GL #1808]
5436. [placeholder]
5436. [security] It was possible to trigger an INSIST when determining
whether a record would fit into a TCP message buffer.
(CVE-2020-8618) [GL #1850]
5435. [placeholder]
5435. [tests] Add RFC 4592 responses examples to the wildcard system
test. [GL #1718]
5434. [placeholder]
5434. [security] It was possible to trigger an INSIST in
lib/dns/rbtdb.c:new_reference() with a particular zone
content and query patterns. (CVE-2020-8619) [GL #1111]
[GL #1718]
5433. [placeholder]
5432. [bug] Check the question section when processing AXFR, IXFR
and SOA replies when transfer a zone in. [GL #1683]
5432. [bug] Check the question section when processing AXFR, IXFR,
and SOA replies when transferring a zone in. [GL #1683]
5431. [func] Reject DS records at the zone apex when loading
master files. Log but otherwise ignore attempts to
add DS records at the zone apex via UPDATE. [GL #1798]
5430. [doc] Update docs - with netmgr we're creating separate
socket for each IPv6 interface, just as with IPv4.
5430. [doc] Update docs - with netmgr, a separate listening socket
is created for each IPv6 interface (just as with IPv4).
[GL #1782]
5429. [cleanup] Move BIND binaries which are neither daemons nor
administrative programs to $bindir. [GL #1724]
5428. [bug] Cleanup GSSAPI resources in nsupdate only after taskmgr
5428. [bug] Clean up GSSAPI resources in nsupdate only after taskmgr
has been destroyed. Thanks to Petr Menšík. [GL !3316]
5427. [placeholder]
5426. [bug] Don't fail when setting SO_INCOMING_CPU on the socket
5426. [bug] Don't abort() when setting SO_INCOMING_CPU on the socket
fails. [GL #1911]
5425. [func] The default value of "max-stale-ttl" has been change
5425. [func] The default value of "max-stale-ttl" has been changed
from 1 week to 12 hours. [GL #1877]
5424. [bug] With kasp, when creating a successor key, the goal
5424. [bug] With KASP, when creating a successor key, the "goal"
state of the current active key (predecessor) was not
changed and thus was never is removed from the zone.
[GL #1846]
changed and thus never removed from the zone. [GL #1846]
5423. [bug] Fix a bug in keymgr_key_has_successor: it would
return a false positive if any other key in the
keyring has a successor. [GL #1845]
5423. [bug] Fix a bug in keymgr_key_has_successor(): it incorrectly
returned true if any other key in the keyring had a
successor. [GL #1845]
5422. [bug] When using dnssec-policy, print correct keytiming
5422. [bug] When using dnssec-policy, print correct key timing
metadata. [GL #1843]
5421. [bug] Fixed a race that could cause named to crash when
looking up the nodename of an RBT node if the tree
was modified. [GL #1857]
5421. [bug] Fix a race that could cause named to crash when looking
up the nodename of an RBT node if the tree was modified.
[GL #1857]
5420. [bug] Add missing isc_{mutex,conditional}_destroy calls
5420. [bug] Add missing isc_{mutex,conditional}_destroy() calls
that caused a memory leak on FreeBSD. [GL #1893]
5419. [func] "dig +qid=<num>" sets the query ID to an arbitrary
value. "configure --enable-singletrace" allows
trace logging of a single query when QID is set to 0.
[GL #1851]
5419. [func] Add new dig command line option, "+qid=<num>", which
allows the query ID to be set to an arbitrary value.
Add a new ./configure option, --enable-singletrace,
which allows trace logging of a single query when QID is
set to 0. [GL #1851]
5418. [bug] delv failed to parse deprecated trusted-keys style
5418. [bug] delv failed to parse deprecated trusted-keys-style
trust anchors. [GL #1860]
5417. [cleanup] The code determining the advertised UDP buffer size in
outgoing EDNS queries has been refactored to improve its
clarity. [GL #1868]
5416. [bug] Fix a lock order inversion in unix/socket.c. [GL #1859]
5416. [bug] Fix a lock order inversion in lib/isc/unix/socket.c.
[GL #1859]
5415. [test] Address race in dnssec system test that led to
test failures. [GL #1852]
@@ -78,22 +166,21 @@
5413. [test] Address race in autosign system test that led to
test failures. [GL #1852]
5412. [bug] 'provide-ixfr no;' fail to return up-to-date responses
5412. [bug] 'provide-ixfr no;' failed to return up-to-date responses
when the serial was greater than or equal to the
current serial. [GL #1714]
5411. [cleanup] Refactoring of TCP accept code to use a single accept()
and pass the accepted socket to child threads for
processing. [GL !3320]
5411. [cleanup] TCP accept code has been refactored to use a single
accept() and pass the accepted socket to child threads
for processing. [GL !3320]
5410. [func] Add the ability to specify per-type record count
limits in an "update-policy" statement, which
are enforced when adding records via UPDATE.
[GL #1657]
5410. [func] Add the ability to specify per-type record count limits,
which are enforced when adding records via UPDATE, in an
"update-policy" statement. [GL #1657]
5409. [performance] When looking up NSEC3 data in a zone database, skip
the check for empty non-terminal nodes; the NSEC3
tree doesn't have any. [GL #1834]
5409. [performance] When looking up NSEC3 data in a zone database, skip the
check for empty non-terminal nodes; the NSEC3 tree does
not have any. [GL #1834]
5408. [protocol] Print Extended DNS Errors if present in OPT record.
[GL #1835]
@@ -101,13 +188,13 @@
5407. [func] Zone timers are now exported via statistics channel.
Thanks to Paul Frieden, Verizon Media. [GL #1232]
5406. [func] Added a new logging category, "rpz-passthru". It allows
RPZ passthru actions to be logged into a separate
channel. [GL #54]
5406. [func] Add a new logging category, "rpz-passthru", which allows
RPZ passthru actions to be logged in a separate channel.
[GL #54]
5405. [bug] 'named-checkconf -p' could include spurious text
in server-addresses statements due to an uninitialized
DSCP value. [GL #1812]
5405. [bug] 'named-checkconf -p' could include spurious text in
server-addresses statements due to an uninitialized DSCP
value. [GL #1812]
5404. [bug] 'named-checkconf -z' could incorrectly indicate
success if errors were found in one view but not in a
+2 -2
View File
@@ -6,8 +6,8 @@ on every aspect of the mission - including mentorship, teaching, and connecting
people.
Diversity is one of our huge strengths, but it can also lead to communication
issues and unhappiness. To that end, we have a few ground rules that we ask
people to adhere to. This code applies equally to the core development team, open source contributors and those
issues and unhappiness. To that end, we have a few ground rules to which we expect
people to adhere. This code applies equally to the core development team, open source contributors and those
seeking help and guidance.
This isn't an exhaustive list of things that you can't do. Rather, take it in
+10
View File
@@ -42,6 +42,16 @@ LIBDNS_CFLAGS = \
LIBDNS_LIBS = \
$(top_builddir)/lib/dns/libdns.la
if HAVE_DNSTAP
LIBDNS_CFLAGS += \
$(DNSTAP_CFLAGS)
endif HAVE_DNSTAP
if HAVE_LMDB
LIBDNS_CFLAGS += \
$(LMDB_CFLAGS)
endif HAVE_LMDB
LIBNS_CFLAGS = \
-I$(top_srcdir)/lib/ns/include
+6 -6
View File
@@ -42,16 +42,16 @@ offer support on a "best effort" basis for some.
### Regularly tested platforms
As of Mar 2020, BIND 9.17 is fully supported and regularly tested on the
As of Jul 2020, BIND 9.17 is fully supported and regularly tested on the
following systems:
* Debian 9, 10
* Ubuntu LTS 16.04, 18.04
* Fedora 31
* Ubuntu LTS 16.04, 20.04
* Fedora 32
* Red Hat Enterprise Linux / CentOS 7, 8
* FreeBSD 11.3, 12.1
* OpenBSD 6.6
* Alpine Linux
* FreeBSD 11.4, 12.1
* OpenBSD 6.7
* Alpine Linux 3.12
The amd64, i386, armhf and arm64 CPU architectures are all fully supported.
+70 -70
View File
@@ -28,26 +28,26 @@
### <a name="intro"/> Introduction
BIND (Berkeley Internet Name Domain) is a complete, highly portable
implementation of the DNS (Domain Name System) protocol.
implementation of the Domain Name System (DNS) protocol.
The BIND name server, `named`, is able to serve as an authoritative name
server, recursive resolver, DNS forwarder, or all three simultaneously. It
The BIND name server, `named`, can act as an authoritative name
server, recursive resolver, DNS forwarder, or all three simultaneously. It
implements views for split-horizon DNS, automatic DNSSEC zone signing and
key management, catalog zones to facilitate provisioning of zone data
throughout a name server constellation, response policy zones (RPZ) to
protect clients from malicious data, response rate limiting (RRL) and
recursive query limits to reduce distributed denial of service attacks,
and many other advanced DNS features. BIND also includes a suite of
and many other advanced DNS features. BIND also includes a suite of
administrative tools, including the `dig` and `delv` DNS lookup tools,
`nsupdate` for dynamic DNS zone updates, `rndc` for remote name server
administration, and more.
BIND 9 began as a complete re-write of the BIND architecture that was
BIND 9 began as a complete rewrite of the BIND architecture that was
used in versions 4 and 8. Internet Systems Consortium
([https://www.isc.org](https://www.isc.org)), a 501(c)(3) public benefit
([https://www.isc.org](https://www.isc.org)), a 501(c)(3) US public benefit
corporation dedicated to providing software and services in support of the
Internet infrastructure, developed BIND 9 and is responsible for its
ongoing maintenance and improvement. BIND is open source software
ongoing maintenance and improvement. BIND is open source software
licensed under the terms of the Mozilla Public License, version 2.0.
For a summary of features introduced in past major releases of BIND,
@@ -65,19 +65,19 @@ For information about supported platforms, see [PLATFORMS](PLATFORMS.md).
### <a name="help"/> Reporting bugs and getting help
To report non-security-sensitive bugs or request new features, you may
open an Issue in the BIND 9 project on the
open an issue in the BIND 9 project on the
[ISC GitLab server](https://gitlab.isc.org) at
[https://gitlab.isc.org/isc-projects/bind9](https://gitlab.isc.org/isc-projects/bind9).
Please note that, unless you explicitly mark the newly created Issue as
"confidential", it will be publicly readable. Please do not include any
Please note that, unless you explicitly mark the newly created issue as
"confidential," it will be publicly readable. Please do not include any
information in bug reports that you consider to be confidential unless
the issue has been marked as such. In particular, if submitting the
contents of your configuration file in a non-confidential Issue, it is
advisable to obscure key secrets: this can be done automatically by
the issue has been marked as such. In particular, if submitting the
contents of your configuration file in a non-confidential issue, it is
advisable to obscure key secrets; this can be done automatically by
using `named-checkconf -px`.
If the bug you are reporting is a potential security issue, such as an
If you are reporting a bug that is a potential security issue, such as an
assertion failure or other crash in `named`, please do *NOT* use GitLab to
report it. Instead, send mail to
[security-officer@isc.org](mailto:security-officer@isc.org) using our
@@ -86,11 +86,12 @@ to our key can be found at
[https://www.isc.org/pgpkey](https://www.isc.org/pgpkey).) Please do not
discuss the bug on any public mailing list.
For a general overview of ISC security policies, read the Knowledge Base
For a general overview of ISC security policies, read the Knowledgebase
article at [https://kb.isc.org/docs/aa-00861](https://kb.isc.org/docs/aa-00861).
Professional support and training for BIND are available from
ISC at [https://www.isc.org/support](https://www.isc.org/support).
ISC. Contact us at [https://www.isc.org/contact](https://www.isc.org/contact)
for more information.
To join the __BIND Users__ mailing list, or view the archives, visit
[https://lists.isc.org/mailman/listinfo/bind-users](https://lists.isc.org/mailman/listinfo/bind-users).
@@ -102,7 +103,7 @@ may also want to join the __BIND Workers__ mailing list, at
### <a name="contrib"/> Contributing to BIND
ISC maintains a public git repository for BIND; details can be found
at [http://www.isc.org/git/](http://www.isc.org/git/).
at [https://www.isc.org/sourceaccess/](https://www.isc.org/sourceaccess/).
Information for BIND contributors can be found in the following files:
- General information: [CONTRIBUTING.md](CONTRIBUTING.md)
@@ -112,16 +113,15 @@ Information for BIND contributors can be found in the following files:
Patches for BIND may be submitted as
[merge requests](https://gitlab.isc.org/isc-projects/bind9/merge_requests)
in the [ISC GitLab server](https://gitlab.isc.org) at
at [https://gitlab.isc.org/isc-projects/bind9/merge_requests](https://gitlab.isc.org/isc-projects/bind9/merge_requests).
on the [ISC GitLab server](https://gitlab.isc.org).
By default, external contributors don't have ability to fork BIND in the
GitLab server, but if you wish to contribute code to BIND, you may request
By default, external contributors do not have the ability to fork BIND on the
GitLab server; if you wish to contribute code to BIND, you may request
permission to do so. Thereafter, you can create git branches and directly
submit requests that they be reviewed and merged.
If you prefer, you may also submit code by opening a
[GitLab Issue](https://gitlab.isc.org/isc-projects/bind9/issues) and
[GitLab issue](https://gitlab.isc.org/isc-projects/bind9/issues) and
including your patch as an attachment, preferably generated by
`git format-patch`.
@@ -130,15 +130,15 @@ including your patch as an attachment, preferably generated by
BIND 9.17 is the newest development branch of BIND 9. It includes a
number of changes from BIND 9.16 and earlier releases. New features include:
* New option "max-ixfr-ratio" to limit the size of outgoing IXFR responses
* The new option `max-ixfr-ratio` to limit the size of outgoing IXFR responses
before falling back to full zone transfers.
* "rndc nta -d" and "rndc secroots" now include "validate-except" entries
* `rndc nta -d` and `rndc secroots` now include `validate-except` entries
when listing negative trust anchors.
### <a name="build"/> Building BIND
### <a name="build"/> Building BIND 9
Minimally, BIND requires a UNIX or Linux system with an ANSI C compiler,
basic POSIX support, and a 64-bit integer type. BIND also requires the
At a minimum, BIND requires a Unix or Linux system with an ANSI C compiler,
basic POSIX support, and a 64-bit integer type. BIND also requires the
`libuv` asynchronous I/O library, and a cryptography provider library
such as OpenSSL or a hardware service module supporting PKCS#11. On
Linux, BIND requires the `libcap` library to set process privileges,
@@ -148,15 +148,15 @@ for details on other libraries that may be required to support
optional features.
Successful builds have been observed on many versions of Linux and
UNIX, including RHEL/CentOS, Fedora, Debian, Ubuntu, SLES, openSUSE,
Unix, including RHEL/CentOS, Fedora, Debian, Ubuntu, SLES, openSUSE,
Slackware, Alpine, FreeBSD, NetBSD, OpenBSD, macOS, Solaris,
OpenIndiana, OmniOS CE, HP-UX, and OpenWRT.
BIND is also available for Windows Server 2012 R2 and higher. See
BIND 9 is also available for Windows Server 2012 R2 and higher. See
`win32utils/build.txt` for details on building for Windows
systems.
To build on a UNIX or Linux system, use:
To build on a Unix or Linux system, use:
$ autoreconf -fi (if you are building in the git repository)
$ ./configure
@@ -165,7 +165,7 @@ To build on a UNIX or Linux system, use:
If you're planning on making changes to the BIND 9 source, you should run
`make depend`. If you're using Emacs, you might find `make tags` helpful.
Several environment variables that can be set before running `configure` will
Several environment variables, which can be set before running `configure`,
affect compilation. Significant ones are:
|Variable|Description |
@@ -182,21 +182,21 @@ command:
#### <a name="macos"> macOS
Building on macOS assumes that the "Command Tools for Xcode" is installed.
This can be downloaded from
Building on macOS assumes that the "Command Tools for Xcode" are installed.
These can be downloaded from
[https://developer.apple.com/download/more/](https://developer.apple.com/download/more/)
or, if you have Xcode already installed, you can run `xcode-select
--install`. (Note that an Apple ID may be required to access the download
or, if you have Xcode already installed, you can run
`xcode-select--install`. (Note that an Apple ID may be required to access the download
page.)
#### <a name="dependencies"> Dependencies
To build BIND you need to following packages installed:
To build BIND you need to have the following packages installed:
libuv
pkg-config / pkgconfig / pkgconf
To build BIND from the git repository you will need the following tools
To build BIND from the git repository, you need the following tools
installed:
autoconf (includes autoreconf)
@@ -212,7 +212,7 @@ To build shared libraries, specify `--with-libtool` on the `configure`
command line.
For the server to support DNSSEC, you need to build it with crypto support.
To use OpenSSL, you should have OpenSSL 1.0.2e or newer installed. If the
To use OpenSSL, you should have OpenSSL 1.0.2e or newer installed. If the
OpenSSL library is installed in a nonstandard location, specify the prefix
using `--with-openssl=<PREFIX>` on the configure command line. To use a
PKCS#11 hardware service module for cryptographic operations, specify the
@@ -225,15 +225,15 @@ least one of the following libraries: `libxml2`
[https://github.com/json-c/json-c](https://github.com/json-c/json-c).
If these are installed at a nonstandard location, then:
* for `libxml2`, specify the prefix using `--with-libxml2=/prefix`,
* for `libxml2`, specify the prefix using `--with-libxml2=/prefix`.
* for `json-c`, adjust `PKG_CONFIG_PATH`.
To support compression on the HTTP statistics channel, the server must be
linked against `libzlib`. If this is installed in a nonstandard location,
linked against `libzlib`. If this is installed in a nonstandard location,
specify the prefix using `--with-zlib=/prefix`.
To support storing configuration data for runtime-added zones in an LMDB
database, the server must be linked with liblmdb. If this is installed in a
database, the server must be linked with `liblmdb`. If this is installed in a
nonstandard location, specify the prefix using `with-lmdb=/prefix`.
To support MaxMind GeoIP2 location-based ACLs, the server must be linked
@@ -250,8 +250,8 @@ and BIND must be configured with `--enable-dnstap`.
Certain compiled-in constants and default settings can be decreased to
values better suited to small machines, e.g. OpenWRT boxes, by specifying
`--with-tuning=small` on the `configure` command line. This will decrease
memory usage by using smaller structures, but will degrade performance.
`--with-tuning=small` on the `configure` command line. This decreases
memory usage by using smaller structures, but degrades performance.
On Linux, process capabilities are managed in user space using
the `libcap` library, which can be installed on most Linux systems via
@@ -264,54 +264,54 @@ to handle files bigger than 2GB. This can be done by using
Support for the "fixed" rrset-order option can be enabled or disabled by
specifying `--enable-fixed-rrset` or `--disable-fixed-rrset` on the
configure command line. By default, fixed rrset-order is disabled to
configure command line. By default, fixed rrset-order is disabled to
reduce memory footprint.
The `--enable-querytrace` option causes `named` to log every step of
processing every query. The `--enable-singletrace` option turns on the
processing every query. The `--enable-singletrace` option turns on the
same verbose tracing, but allows an individual query to be separately
traced by setting its query ID to 0. These options should only be enabled
traced by setting its query ID to 0. These options should only be enabled
when debugging, because they have a significant negative impact on query
performance.
`make install` will install `named` and the various BIND 9 libraries. By
`make install` installs `named` and the various BIND 9 libraries. By
default, installation is into /usr/local, but this can be changed with the
`--prefix` option when running `configure`.
You may specify the option `--sysconfdir` to set the directory where
configuration files like `named.conf` go by default, and `--localstatedir`
to set the default parent directory of `run/named.pid`. `--sysconfdir`
to set the default parent directory of `run/named.pid`. `--sysconfdir`
defaults to `$prefix/etc` and `--localstatedir` defaults to `$prefix/var`.
### <a name="testing"/> Automated testing
A system test suite can be run with `make check`. The system tests require
A system test suite can be run with `make check`. The system tests require
you to configure a set of virtual IP addresses on your system (this allows
multiple servers to run locally and communicate with one another). These
multiple servers to run locally and communicate with each other). These
IP addresses can be configured by running the command
`bin/tests/system/ifconfig.sh up` as root.
Some tests require Perl and the `Net::DNS` and/or `IO::Socket::INET6` modules,
and will be skipped if these are not available. Some tests require Python
and the `dnspython` module and will be skipped if these are not available.
and are skipped if these are not available. Some tests require Python
and the `dnspython` module and are skipped if these are not available.
See bin/tests/system/README for further details.
Unit tests are implemented using the CMocka unit testing framework. To build
Unit tests are implemented using the CMocka unit testing framework. To build
them, use `configure --with-cmocka`. Execution of tests is done by the automake
parallel test driver; unit tests are also run by `make check`.
### <a name="doc"/> Documentation
The *BIND 9 Administrator Reference Manual* is included with the source
distribution, in DocBook XML, HTML, and PDF format, in the `doc/arm`
directory.
The *BIND 9 Administrator Reference Manual* (ARM) is included with the source
distribution, and in .rst format, in the `doc/arm`
directory. HTML and PDF versions are automatically generated and can
be viewed at [https://bind9.readthedocs.io/en/latest/index.html](https://bind9.readthedocs.io/en/latest/index.html).
Some of the programs in the BIND 9 distribution have man pages in their
directories. In particular, the command line options of `named` are
documented in `bin/named/named.8`.
Man pages for some of the programs in the BIND 9 distribution
are also included in the BIND ARM.
Frequently (and not-so-frequently) asked questions and their answers
can be found in the ISC Knowledge Base at
can be found in the ISC Knowledgebase at
[https://kb.isc.org](https://kb.isc.org).
Additional information on various subjects can be found in other
@@ -320,8 +320,8 @@ Additional information on various subjects can be found in other
### <a name="changes"/> Change log
A detailed list of all changes that have been made throughout the
development BIND 9 is included in the file CHANGES, with the most recent
changes listed first. Change notes include tags indicating the category of
development of BIND 9 is included in the file CHANGES, with the most recent
changes listed first. Change notes include tags indicating the category of
the change that was made; these categories are:
|Category |Description |
@@ -339,12 +339,12 @@ the change that was made; these categories are:
| [cleanup] | Minor corrections and refactoring |
| [doc] | Documentation |
| [contrib] | Changes to the contributed tools and libraries in the 'contrib' subdirectory |
| [placeholder] | Used in the master development branch to reserve change numbers for use in other branches, e.g. when fixing a bug that only exists in older releases |
| [placeholder] | Used in the master development branch to reserve change numbers for use in other branches, e.g., when fixing a bug that only exists in older releases |
In general, [func] and [experimental] tags will only appear in new-feature
releases (i.e., those with version numbers ending in zero). Some new
In general, [func] and [experimental] tags only appear in new-feature
releases (i.e., those with version numbers ending in zero). Some new
functionality may be backported to older releases on a case-by-case basis.
All other change types may be applied to all currently-supported releases.
All other change types may be applied to all currently supported releases.
#### Bug report identifiers
@@ -354,7 +354,7 @@ and referred to entries in the "bind9-bugs" RT database, which was not open
to the public. More recent entries use the form `[GL #NNN]` or, less often,
`[GL !NNN]`, which, respectively, refer to issues or merge requests in the
GitLab database. Most of these are publicly readable, unless they include
information which is confidential or security sensitive.
information which is confidential or security-sensitive.
To look up a GitLab issue by its number, use the URL
[https://gitlab.isc.org/isc-projects/bind9/issues/NNN](https://gitlab.isc.org/isc-projects/bind9/issues).
@@ -384,7 +384,7 @@ GitLab instance, which is not visible to the public.
* This product includes software developed by the OpenSSL Project for use
in the OpenSSL Toolkit.
[http://www.OpenSSL.org/](http://www.OpenSSL.org/)
[https://www.OpenSSL.org/](https://www.OpenSSL.org/)
* This product includes cryptographic software written by Eric Young
(eay@cryptsoft.com)
* This product includes software written by Tim Hudson (tjh@cryptsoft.com)
(eay@cryptsoft.com).
* This product includes software written by Tim Hudson (tjh@cryptsoft.com).
+7 -3
View File
@@ -185,7 +185,7 @@ configure_zone(const char *vclass, const char *view, const cfg_obj_t *zconfig,
const char *zname;
const char *zfile = NULL;
const cfg_obj_t *maps[4];
const cfg_obj_t *mastersobj = NULL;
const cfg_obj_t *primariesobj = NULL;
const cfg_obj_t *inviewobj = NULL;
const cfg_obj_t *zoptions = NULL;
const cfg_obj_t *classobj = NULL;
@@ -279,8 +279,12 @@ configure_zone(const char *vclass, const char *view, const cfg_obj_t *zconfig,
* Is the redirect zone configured as a slave?
*/
if (strcasecmp(cfg_obj_asstring(typeobj), "redirect") == 0) {
cfg_map_get(zoptions, "masters", &mastersobj);
if (mastersobj != NULL) {
cfg_map_get(zoptions, "primaries", &primariesobj);
if (primariesobj == NULL) {
cfg_map_get(zoptions, "masters", &primariesobj);
}
if (primariesobj != NULL) {
return (ISC_R_SUCCESS);
}
}
+28 -28
View File
@@ -35,62 +35,62 @@ Description
~~~~~~~~~~~
``named-checkconf`` checks the syntax, but not the semantics, of a
``named`` configuration file. The file is parsed and checked for syntax
errors, along with all files included by it. If no file is specified,
``named`` configuration file. The file, along with all files included by it, is parsed and checked for syntax
errors. If no file is specified,
``/etc/named.conf`` is read by default.
Note: files that ``named`` reads in separate parser contexts, such as
``rndc.key`` and ``bind.keys``, are not automatically read by
``named-checkconf``. Configuration errors in these files may cause
``named`` to fail to run, even if ``named-checkconf`` was successful.
``named-checkconf`` can be run on these files explicitly, however.
However, ``named-checkconf`` can be run on these files explicitly.
Options
~~~~~~~
**-h**
Print the usage summary and exit.
``-h``
This option prints the usage summary and exits.
**-j**
When loading a zonefile read the journal if it exists.
``-j``
When loading a zonefile, this option instructs ``named`` to read the journal if it exists.
**-l**
List all the configured zones. Each line of output contains the zone
name, class (e.g. IN), view, and type (e.g. master or slave).
``-l``
This option lists all the configured zones. Each line of output contains the zone
name, class (e.g. IN), view, and type (e.g. primary or secondary).
**-c**
Check "core" configuration only. This suppresses the loading of
``-c``
This option specifies that only the "core" configuration should be checked. This suppresses the loading of
plugin modules, and causes all parameters to ``plugin`` statements to
be ignored.
**-i**
Ignore warnings on deprecated options.
``-i``
This option ignores warnings on deprecated options.
**-p**
Print out the ``named.conf`` and included files in canonical form if
``-p``
This option prints out the ``named.conf`` and included files in canonical form if
no errors were detected. See also the ``-x`` option.
**-t** directory
Chroot to ``directory`` so that include directives in the
``-t directory``
This option instructs ``named`` to chroot to ``directory``, so that ``include`` directives in the
configuration file are processed as if run by a similarly chrooted
``named``.
**-v**
Print the version of the ``named-checkconf`` program and exit.
``-v``
This option prints the version of the ``named-checkconf`` program and exits.
**-x**
When printing the configuration files in canonical form, obscure
``-x``
When printing the configuration files in canonical form, this option obscures
shared secrets by replacing them with strings of question marks
('?'). This allows the contents of ``named.conf`` and related files
to be shared MDASH for example, when submitting bug reports MDASH
(``?``). This allows the contents of ``named.conf`` and related files
to be shared - for example, when submitting bug reports -
without compromising private data. This option cannot be used without
``-p``.
**-z**
Perform a test load of all master zones found in ``named.conf``.
``-z``
This option performs a test load of all zones of type ``primary`` found in ``named.conf``.
filename
The name of the configuration file to be checked. If not specified,
``filename``
This indicates the name of the configuration file to be checked. If not specified,
it defaults to ``/etc/named.conf``.
Return Values
+107 -106
View File
@@ -43,163 +43,164 @@ configuring them into a name server.
``named-compilezone`` is similar to ``named-checkzone``, but it always
dumps the zone contents to a specified file in a specified format.
Additionally, it applies stricter check levels by default, since the
dump output will be used as an actual zone file loaded by ``named``.
It also applies stricter check levels by default, since the
dump output is used as an actual zone file loaded by ``named``.
When manually specified otherwise, the check levels must at least be as
strict as those specified in the ``named`` configuration file.
Options
~~~~~~~
**-d**
Enable debugging.
``-d``
This option enables debugging.
**-h**
Print the usage summary and exit.
``-h``
This option prints the usage summary and exits.
**-q**
Quiet mode - exit code only.
``-q``
This option sets quiet mode, which only sets an exit code to indicate
successful or failed completion.
**-v**
Print the version of the ``named-checkzone`` program and exit.
``-v``
This option prints the version of the ``named-checkzone`` program and exits.
**-j**
When loading a zone file, read the journal if it exists. The journal
file name is assumed to be the zone file name appended with the
string ``.jnl``.
``-j``
When loading a zone file, this option tells ``named`` to read the journal if it exists. The journal
file name is assumed to be the zone file name with the
string ``.jnl`` appended.
**-J** filename
When loading the zone file read the journal from the given file, if
it exists. (Implies -j.)
``-J filename``
When loading the zone file, this option tells ``named`` to read the journal from the given file, if
it exists. This implies ``-j``.
**-c** class
Specify the class of the zone. If not specified, "IN" is assumed.
``-c class``
This option specifies the class of the zone. If not specified, ``IN`` is assumed.
**-i** mode
Perform post-load zone integrity checks. Possible modes are
``"full"`` (default), ``"full-sibling"``, ``"local"``,
``"local-sibling"`` and ``"none"``.
``-i mode``
This option performs post-load zone integrity checks. Possible modes are
``full`` (the default), ``full-sibling``, ``local``,
``local-sibling``, and ``none``.
Mode ``"full"`` checks that MX records refer to A or AAAA record
(both in-zone and out-of-zone hostnames). Mode ``"local"`` only
Mode ``full`` checks that MX records refer to A or AAAA records
(both in-zone and out-of-zone hostnames). Mode ``local`` only
checks MX records which refer to in-zone hostnames.
Mode ``"full"`` checks that SRV records refer to A or AAAA record
(both in-zone and out-of-zone hostnames). Mode ``"local"`` only
Mode ``full`` checks that SRV records refer to A or AAAA records
(both in-zone and out-of-zone hostnames). Mode ``local`` only
checks SRV records which refer to in-zone hostnames.
Mode ``"full"`` checks that delegation NS records refer to A or AAAA
record (both in-zone and out-of-zone hostnames). It also checks that
Mode ``full`` checks that delegation NS records refer to A or AAAA
records (both in-zone and out-of-zone hostnames). It also checks that
glue address records in the zone match those advertised by the child.
Mode ``"local"`` only checks NS records which refer to in-zone
hostnames or that some required glue exists, that is when the
nameserver is in a child zone.
Mode ``local`` only checks NS records which refer to in-zone
hostnames or verifies that some required glue exists, i.e., when the
name server is in a child zone.
Mode ``"full-sibling"`` and ``"local-sibling"`` disable sibling glue
checks but are otherwise the same as ``"full"`` and ``"local"``
Modes ``full-sibling`` and ``local-sibling`` disable sibling glue
checks, but are otherwise the same as ``full`` and ``local``,
respectively.
Mode ``"none"`` disables the checks.
Mode ``none`` disables the checks.
**-f** format
Specify the format of the zone file. Possible formats are ``"text"``
(default), ``"raw"``, and ``"map"``.
``-f format``
This option specifies the format of the zone file. Possible formats are ``text``
(the default), ``raw``, and ``map``.
**-F** format
Specify the format of the output file specified. For
``named-checkzone``, this does not cause any effects unless it dumps
``-F format``
This option specifies the format of the output file specified. For
``named-checkzone``, this does not have any effect unless it dumps
the zone contents.
Possible formats are ``"text"`` (default), which is the standard
textual representation of the zone, and ``"map"``, ``"raw"``, and
``"raw=N"``, which store the zone in a binary format for rapid
loading by ``named``. ``"raw=N"`` specifies the format version of the
raw zone file: if N is 0, the raw file can be read by any version of
``named``; if N is 1, the file can be read by release 9.9.0 or
higher; the default is 1.
Possible formats are ``text`` (the default), which is the standard
textual representation of the zone, and ``map``, ``raw``, and
``raw=N``, which store the zone in a binary format for rapid
loading by ``named``. ``raw=N`` specifies the format version of the
raw zone file: if ``N`` is 0, the raw file can be read by any version of
``named``; if N is 1, the file can only be read by release 9.9.0 or
higher. The default is 1.
**-k** mode
Perform ``"check-names"`` checks with the specified failure mode.
Possible modes are ``"fail"`` (default for ``named-compilezone``),
``"warn"`` (default for ``named-checkzone``) and ``"ignore"``.
``-k mode``
This option performs ``check-names`` checks with the specified failure mode.
Possible modes are ``fail`` (the default for ``named-compilezone``),
``warn`` (the default for ``named-checkzone``), and ``ignore``.
**-l** ttl
Sets a maximum permissible TTL for the input file. Any record with a
TTL higher than this value will cause the zone to be rejected. This
``-l ttl``
This option sets a maximum permissible TTL for the input file. Any record with a
TTL higher than this value causes the zone to be rejected. This
is similar to using the ``max-zone-ttl`` option in ``named.conf``.
**-L** serial
When compiling a zone to "raw" or "map" format, set the "source
serial" value in the header to the specified serial number. (This is
expected to be used primarily for testing purposes.)
``-L serial``
When compiling a zone to ``raw`` or ``map`` format, this option sets the "source
serial" value in the header to the specified serial number. This is
expected to be used primarily for testing purposes.
**-m** mode
Specify whether MX records should be checked to see if they are
addresses. Possible modes are ``"fail"``, ``"warn"`` (default) and
``"ignore"``.
``-m mode``
This option specifies whether MX records should be checked to see if they are
addresses. Possible modes are ``fail``, ``warn`` (the default), and
``ignore``.
**-M** mode
Check if a MX record refers to a CNAME. Possible modes are
``"fail"``, ``"warn"`` (default) and ``"ignore"``.
``-M mode``
This option checks whether a MX record refers to a CNAME. Possible modes are
``fail``, ``warn`` (the default), and ``ignore``.
**-n** mode
Specify whether NS records should be checked to see if they are
addresses. Possible modes are ``"fail"`` (default for
``named-compilezone``), ``"warn"`` (default for ``named-checkzone``)
and ``"ignore"``.
``-n mode``
This option specifies whether NS records should be checked to see if they are
addresses. Possible modes are ``fail`` (the default for
``named-compilezone``), ``warn`` (the default for ``named-checkzone``),
and ``ignore``.
**-o** filename
Write zone output to ``filename``. If ``filename`` is ``-`` then
write to standard out. This is mandatory for ``named-compilezone``.
``-o filename``
This option writes the zone output to ``filename``. If ``filename`` is ``-``, then
the zone output is written to standard output. This is mandatory for ``named-compilezone``.
**-r** mode
Check for records that are treated as different by DNSSEC but are
semantically equal in plain DNS. Possible modes are ``"fail"``,
``"warn"`` (default) and ``"ignore"``.
``-r mode``
This option checks for records that are treated as different by DNSSEC but are
semantically equal in plain DNS. Possible modes are ``fail``,
``warn`` (the default), and ``ignore``.
**-s** style
Specify the style of the dumped zone file. Possible styles are
``"full"`` (default) and ``"relative"``. The full format is most
suitable for processing automatically by a separate script. On the
other hand, the relative format is more human-readable and is thus
suitable for editing by hand. For ``named-checkzone`` this does not
cause any effects unless it dumps the zone contents. It also does not
``-s style``
This option specifies the style of the dumped zone file. Possible styles are
``full`` (the default) and ``relative``. The ``full`` format is most
suitable for processing automatically by a separate script.
The relative format is more human-readable and is thus
suitable for editing by hand. For ``named-checkzone``, this does not
have any effect unless it dumps the zone contents. It also does not
have any meaning if the output format is not text.
**-S** mode
Check if a SRV record refers to a CNAME. Possible modes are
``"fail"``, ``"warn"`` (default) and ``"ignore"``.
``-S mode``
This option checks whether an SRV record refers to a CNAME. Possible modes are
``fail``, ``warn`` (the default), and ``ignore``.
**-t** directory
Chroot to ``directory`` so that include directives in the
``-t directory``
This option tells ``named`` to chroot to ``directory``, so that ``include`` directives in the
configuration file are processed as if run by a similarly chrooted
``named``.
**-T** mode
Check if Sender Policy Framework (SPF) records exist and issues a
``-T mode``
This option checks whether Sender Policy Framework (SPF) records exist and issues a
warning if an SPF-formatted TXT record is not also present. Possible
modes are ``"warn"`` (default), ``"ignore"``.
modes are ``warn`` (the default) and ``ignore``.
**-w** directory
chdir to ``directory`` so that relative filenames in master file
$INCLUDE directives work. This is similar to the directory clause in
``-w directory``
This option instructs ``named`` to chdir to ``directory``, so that relative filenames in master file
``$INCLUDE`` directives work. This is similar to the directory clause in
``named.conf``.
**-D**
Dump zone file in canonical format. This is always enabled for
``-D``
This option dumps the zone file in canonical format. This is always enabled for
``named-compilezone``.
**-W** mode
Specify whether to check for non-terminal wildcards. Non-terminal
``-W mode``
This option specifies whether to check for non-terminal wildcards. Non-terminal
wildcards are almost always the result of a failure to understand the
wildcard matching algorithm (:rfc:`1034`). Possible modes are ``"warn"``
(default) and ``"ignore"``.
wildcard matching algorithm (:rfc:`1034`). Possible modes are ``warn``
(the default) and ``ignore``.
zonename
The domain name of the zone being checked.
``zonename``
This indicates the domain name of the zone being checked.
filename
The name of the zone file.
``filename``
This is the name of the zone file.
Return Values
~~~~~~~~~~~~~
+4 -4
View File
@@ -20,11 +20,11 @@ libconfgen_la_SOURCES = \
util.c \
unix/os.c
sbin_PROGRAMS = ddns-confgen rndc-confgen
sbin_PROGRAMS = tsig-keygen rndc-confgen
install-exec-hook:
ln -f $(DESTDIR)$(sbindir)/ddns-confgen \
$(DESTDIR)$(sbindir)/tsig-confgen
ln -f $(DESTDIR)$(sbindir)/tsig-keygen \
$(DESTDIR)$(sbindir)/ddns-confgen
uninstall-hook:
-rm -f $(DESTDIR)$(sbindir)/tsig-confgen
-rm -f $(DESTDIR)$(sbindir)/ddns-confgen
+34 -38
View File
@@ -41,79 +41,75 @@ by hand. Alternatively, it can be run with the ``-a`` option to set up a
``rndc.key`` file and avoid the need for a ``rndc.conf`` file and a
``controls`` statement altogether.
Arguments
~~~~~~~~~
Options
~~~~~~~
**-a**
Do automatic ``rndc`` configuration. This creates a file ``rndc.key``
in ``/etc`` (or whatever ``sysconfdir`` was specified as when BIND
``-a``
This option sets automatic ``rndc`` configuration, which creates a file ``rndc.key``
in ``/etc`` (or a different ``sysconfdir`` specified when BIND
was built) that is read by both ``rndc`` and ``named`` on startup.
The ``rndc.key`` file defines a default command channel and
authentication key allowing ``rndc`` to communicate with ``named`` on
the local host with no further configuration.
Running ``rndc-confgen -a`` allows BIND 9 and ``rndc`` to be used as
drop-in replacements for BIND 8 and ``ndc``, with no changes to the
existing BIND 8 ``named.conf`` file.
If a more elaborate configuration than that generated by
``rndc-confgen -a`` is required, for example if rndc is to be used
remotely, you should run ``rndc-confgen`` without the ``-a`` option
and set up a ``rndc.conf`` and ``named.conf`` as directed.
remotely, run ``rndc-confgen`` without the ``-a`` option
and set up ``rndc.conf`` and ``named.conf`` as directed.
**-A** algorithm
Specifies the algorithm to use for the TSIG key. Available choices
are: hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256, hmac-sha384 and
``-A algorithm``
This option specifies the algorithm to use for the TSIG key. Available choices
are: hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256, hmac-sha384, and
hmac-sha512. The default is hmac-sha256.
**-b** keysize
Specifies the size of the authentication key in bits. Must be between
``-b keysize``
This option specifies the size of the authentication key in bits. The size must be between
1 and 512 bits; the default is the hash size.
**-c** keyfile
Used with the ``-a`` option to specify an alternate location for
``-c keyfile``
This option is used with the ``-a`` option to specify an alternate location for
``rndc.key``.
**-h**
Prints a short summary of the options and arguments to
``-h``
This option prints a short summary of the options and arguments to
``rndc-confgen``.
**-k** keyname
Specifies the key name of the rndc authentication key. This must be a
``-k keyname``
This option specifies the key name of the ``rndc`` authentication key. This must be a
valid domain name. The default is ``rndc-key``.
**-p** port
Specifies the command channel port where ``named`` listens for
``-p port``
This option specifies the command channel port where ``named`` listens for
connections from ``rndc``. The default is 953.
**-q**
Omits printing written path in automatic configuration mode.
``-q``
This option prevets printing the written path in automatic configuration mode.
**-s** address
Specifies the IP address where ``named`` listens for command channel
``-s address``
This option specifies the IP address where ``named`` listens for command-channel
connections from ``rndc``. The default is the loopback address
127.0.0.1.
**-t** chrootdir
Used with the ``-a`` option to specify a directory where ``named``
will run chrooted. An additional copy of the ``rndc.key`` will be
written relative to this directory so that it will be found by the
``-t chrootdir``
This option is used with the ``-a`` option to specify a directory where ``named``
runs chrooted. An additional copy of the ``rndc.key`` is
written relative to this directory, so that it is found by the
chrooted ``named``.
**-u** user
Used with the ``-a`` option to set the owner of the ``rndc.key`` file
generated. If ``-t`` is also specified only the file in the chroot
``-u user``
This option is used with the ``-a`` option to set the owner of the generated ``rndc.key`` file.
If ``-t`` is also specified, only the file in the chroot
area has its owner changed.
Examples
~~~~~~~~
To allow ``rndc`` to be used with no manual configuration, run
To allow ``rndc`` to be used with no manual configuration, run:
``rndc-confgen -a``
To print a sample ``rndc.conf`` file and corresponding ``controls`` and
``key`` statements to be manually inserted into ``named.conf``, run
To print a sample ``rndc.conf`` file and the corresponding ``controls`` and
``key`` statements to be manually inserted into ``named.conf``, run:
``rndc-confgen``
@@ -12,9 +12,8 @@
/*! \file */
/**
* ddns-confgen generates configuration files for dynamic DNS. It can
* be used as a convenient alternative to writing the ddns.key file
* and the corresponding key and update-policy statements in named.conf.
* tsig-keygen generates TSIG keys that can be used in named configuration
* files for dynamic DNS.
*/
#include <stdarg.h>
@@ -21,10 +21,10 @@
.. highlight: console
.. _man_ddns-confgen:
.. _man_tsig-keygen:
ddns-confgen - ddns key generation tool
---------------------------------------
tsig-keygen, ddns-confgen - TSIG key generation tool
----------------------------------------------------
Synopsis
~~~~~~~~
@@ -37,21 +37,22 @@ Description
``tsig-keygen`` and ``ddns-confgen`` are invocation methods for a
utility that generates keys for use in TSIG signing. The resulting keys
can be used, for example, to secure dynamic DNS updates to a zone or for
can be used, for example, to secure dynamic DNS updates to a zone, or for
the ``rndc`` command channel.
When run as ``tsig-keygen``, a domain name can be specified on the
command line which will be used as the name of the generated key. If no
command line to be used as the name of the generated key. If no
name is specified, the default is ``tsig-key``.
When run as ``ddns-confgen``, the generated key is accompanied by
configuration text and instructions that can be used with ``nsupdate``
When run as ``ddns-confgen``, the key name can specified using ``-k``
parameter and defaults to ``ddns-key``. The generated key is accompanied
by configuration text and instructions that can be used with ``nsupdate``
and ``named`` when setting up dynamic DNS, including an example
``update-policy`` statement. (This usage similar to the ``rndc-confgen``
command for setting up command channel security.)
``update-policy`` statement. (This usage is similar to the ``rndc-confgen``
command for setting up command-channel security.)
Note that ``named`` itself can configure a local DDNS key for use with
``nsupdate -l``: it does this when a zone is configured with
``nsupdate -l``; it does this when a zone is configured with
``update-policy local;``. ``ddns-confgen`` is only needed when a more
elaborate configuration is required: for instance, if ``nsupdate`` is to
be used from a remote system.
@@ -59,40 +60,39 @@ be used from a remote system.
Options
~~~~~~~
**-a** algorithm
Specifies the algorithm to use for the TSIG key. Available choices
are: hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256, hmac-sha384 and
hmac-sha512. The default is hmac-sha256. Options are
``-a algorithm``
This option specifies the algorithm to use for the TSIG key. Available
choices are: hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256, hmac-sha384,
and hmac-sha512. The default is hmac-sha256. Options are
case-insensitive, and the "hmac-" prefix may be omitted.
**-h**
Prints a short summary of options and arguments.
``-h``
This option prints a short summary of options and arguments.
**-k** keyname
Specifies the key name of the DDNS authentication key. The default is
``ddns-key`` when neither the ``-s`` nor ``-z`` option is specified;
otherwise, the default is ``ddns-key`` as a separate label followed
by the argument of the option, e.g., ``ddns-key.example.com.`` The
key name must have the format of a valid domain name, consisting of
letters, digits, hyphens and periods.
``-k keyname``
This option specifies the key name of the DDNS authentication key. The
default is ``ddns-key`` when neither the ``-s`` nor ``-z`` option is
specified; otherwise, the default is ``ddns-key`` as a separate label
followed by the argument of the option, e.g., ``ddns-key.example.com.``
The key name must have the format of a valid domain name, consisting of
letters, digits, hyphens, and periods.
**-q**
(``ddns-confgen`` only.) Quiet mode: Print only the key, with no
explanatory text or usage examples; This is essentially identical to
``-q`` (``ddns-confgen`` only)
This option enables quiet mode, which prints only the key, with no
explanatory text or usage examples. This is essentially identical to
``tsig-keygen``.
**-s** name
(``ddns-confgen`` only.) Generate configuration example to allow
dynamic updates of a single hostname. The example ``named.conf`` text
shows how to set an update policy for the specified name using the
"name" nametype. The default key name is ddns-key.name. Note that the
"self" nametype cannot be used, since the name to be updated may
differ from the key name. This option cannot be used with the ``-z``
option.
``-s name`` (``ddns-confgen`` only)
This option generates a configuration example to allow dynamic updates
of a single hostname. The example ``named.conf`` text shows how to set
an update policy for the specified name using the "name" nametype. The
default key name is ``ddns-key.name``. Note that the "self" nametype
cannot be used, since the name to be updated may differ from the key
name. This option cannot be used with the ``-z`` option.
**-z** zone
(``ddns-confgen`` only.) Generate configuration example to allow
dynamic updates of a zone: The example ``named.conf`` text shows how
``-z zone`` (``ddns-confgen`` only)
This option generates a configuration example to allow
dynamic updates of a zone. The example ``named.conf`` text shows how
to set an update policy for the specified zone using the "zonesub"
nametype, allowing updates to all subdomain names within that zone.
This option cannot be used with the ``-s`` option.
@@ -11,8 +11,8 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\ddns-confgen.c">
<ClCompile Include="..\tsig-keygen.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
</Project>
@@ -13,7 +13,7 @@
<PropertyGroup Label="Globals">
<ProjectGuid>{1EA4FC64-F33B-4A50-970A-EA052BBE9CF1}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>ddnsconfgen</RootNamespace>
<RootNamespace>tsigkeygen</RootNamespace>
@WINDOWS_TARGET_PLATFORM_VERSION@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
@@ -45,14 +45,14 @@
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
<TargetName>ddns-confgen</TargetName>
<TargetName>tsig-keygen</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
<IntDirSharingDetected>None</IntDirSharingDetected>
<TargetName>ddns-confgen</TargetName>
<TargetName>tsig-keygen</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
<ClCompile>
@@ -81,8 +81,8 @@
</Link>
<PostBuildEvent>
<Command>cd ..\..\..\Build\$(Configuration)
copy /Y ddns-confgen.exe tsig-keygen.exe
copy /Y ddns-confgen.ilk tsig-keygen.ilk
copy /Y tsig-keygen.exe ddns-confgen.exe
copy /Y tsig-keygen.ilk ddns-confgen.ilk
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
@@ -119,12 +119,12 @@ copy /Y ddns-confgen.ilk tsig-keygen.ilk
</Link>
<PostBuildEvent>
<Command>cd ..\..\..\Build\$(Configuration)
copy /Y ddns-confgen.exe tsig-keygen.exe
copy /Y tsig-keygen.exe ddns-confgen.exe
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\ddns-confgen.c" />
<ClCompile Include="..\tsig-keygen.c" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\lib\isc\win32\libisc.vcxproj">
@@ -1,3 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>
</Project>
+89 -89
View File
@@ -43,15 +43,15 @@ Description
``delv`` is a tool for sending DNS queries and validating the results,
using the same internal resolver and validator logic as ``named``.
``delv`` will send to a specified name server all queries needed to
``delv`` sends to a specified name server all queries needed to
fetch and validate the requested data; this includes the original
requested query, subsequent queries to follow CNAME or DNAME chains, and
requested query, subsequent queries to follow CNAME or DNAME chains,
queries for DNSKEY, and DS records to establish a chain of trust for
DNSSEC validation. It does not perform iterative resolution, but
simulates the behavior of a name server configured for DNSSEC validating
and forwarding.
By default, responses are validated using built-in DNSSEC trust anchor
By default, responses are validated using the built-in DNSSEC trust anchor
for the root zone ("."). Records returned by ``delv`` are either fully
validated or were not signed. If validation fails, an explanation of the
failure is included in the output; the validation process can be traced
@@ -59,13 +59,13 @@ in detail. Because ``delv`` does not rely on an external server to carry
out validation, it can be used to check the validity of DNS responses in
environments where local name servers may not be trustworthy.
Unless it is told to query a specific name server, ``delv`` will try
Unless it is told to query a specific name server, ``delv`` tries
each of the servers listed in ``/etc/resolv.conf``. If no usable server
addresses are found, ``delv`` will send queries to the localhost
addresses are found, ``delv`` sends queries to the localhost
addresses (127.0.0.1 for IPv4, ::1 for IPv6).
When no command line arguments or options are given, ``delv`` will
perform an NS query for "." (the root zone).
When no command-line arguments or options are given, ``delv``
performs an NS query for "." (the root zone).
Simple Usage
~~~~~~~~~~~~
@@ -89,109 +89,109 @@ where:
If no ``server`` argument is provided, ``delv`` consults
``/etc/resolv.conf``; if an address is found there, it queries the
name server at that address. If either of the ``-4`` or ``-6``
options are in use, then only addresses for the corresponding
transport will be tried. If no usable addresses are found, ``delv``
will send queries to the localhost addresses (127.0.0.1 for IPv4, ::1
options is in use, then only addresses for the corresponding
transport are tried. If no usable addresses are found, ``delv``
sends queries to the localhost addresses (127.0.0.1 for IPv4, ::1
for IPv6).
``name``
is the domain name to be looked up.
``type``
indicates what type of query is required MDASH ANY, A, MX, etc.
indicates what type of query is required - ANY, A, MX, etc.
``type`` can be any valid query type. If no ``type`` argument is
supplied, ``delv`` will perform a lookup for an A record.
supplied, ``delv`` performs a lookup for an A record.
Options
~~~~~~~
**-a** anchor-file
Specifies a file from which to read DNSSEC trust anchors. The default
``-a anchor-file``
This option specifies a file from which to read DNSSEC trust anchors. The default
is ``/etc/bind.keys``, which is included with BIND 9 and contains one
or more trust anchors for the root zone (".").
Keys that do not match the root zone name are ignored. An alternate
key name can be specified using the ``+root=NAME`` options.
Note: When reading the trust anchor file, ``delv`` treat ``trust-anchors``
``initial-key`` and ``static-key`` identically. That is, for a managed key,
Note: When reading the trust anchor file, ``delv`` treats ``trust-anchors``,
``initial-key``, and ``static-key`` identically. That is, for a managed key,
it is the *initial* key that is trusted; :rfc:`5011` key management is not
supported. ``delv`` will not consult the managed-keys database maintained by
``named``. This means that if either of the keys in ``/etc/bind.keys`` is
revoked and rolled over, it will be necessary to update ``/etc/bind.keys`` to
supported. ``delv`` does not consult the managed-keys database maintained by
``named``, which means that if either of the keys in ``/etc/bind.keys`` is
revoked and rolled over, ``/etc/bind.keys`` must be updated to
use DNSSEC validation in ``delv``.
**-b** address
Sets the source IP address of the query to ``address``. This must be
a valid address on one of the host's network interfaces or "0.0.0.0"
or "::". An optional source port may be specified by appending
"#<port>"
``-b address``
This option sets the source IP address of the query to ``address``. This must be
a valid address on one of the host's network interfaces, or ``0.0.0.0``,
or ``::``. An optional source port may be specified by appending
``#<port>``
**-c** class
Sets the query class for the requested data. Currently, only class
``-c class``
This option sets the query class for the requested data. Currently, only class
"IN" is supported in ``delv`` and any other value is ignored.
**-d** level
Set the systemwide debug level to ``level``. The allowed range is
``-d level``
This option sets the systemwide debug level to ``level``. The allowed range is
from 0 to 99. The default is 0 (no debugging). Debugging traces from
``delv`` become more verbose as the debug level increases. See the
``+mtrace``, ``+rtrace``, and ``+vtrace`` options below for
additional debugging details.
**-h**
Display the ``delv`` help usage output and exit.
``-h``
This option displays the ``delv`` help usage output and exits.
**-i**
Insecure mode. This disables internal DNSSEC validation. (Note,
however, this does not set the CD bit on upstream queries. If the
server being queried is performing DNSSEC validation, then it will
``-i``
This option sets insecure mode, which disables internal DNSSEC validation. (Note,
however, that this does not set the CD bit on upstream queries. If the
server being queried is performing DNSSEC validation, then it does
not return invalid data; this can cause ``delv`` to time out. When it
is necessary to examine invalid data to debug a DNSSEC problem, use
``dig +cd``.)
**-m**
Enables memory usage debugging.
``-m``
This option enables memory usage debugging.
**-p** port#
Specifies a destination port to use for queries instead of the
standard DNS port number 53. This option would be used with a name
``-p port#``
This option specifies a destination port to use for queries, instead of the
standard DNS port number 53. This option is used with a name
server that has been configured to listen for queries on a
non-standard port number.
**-q** name
Sets the query name to ``name``. While the query name can be
specified without using the ``-q``, it is sometimes necessary to
``-q name``
This option sets the query name to ``name``. While the query name can be
specified without using the ``-q`` option, it is sometimes necessary to
disambiguate names from types or classes (for example, when looking
up the name "ns", which could be misinterpreted as the type NS, or
"ch", which could be misinterpreted as class CH).
**-t** type
Sets the query type to ``type``, which can be any valid query type
``-t type``
This option sets the query type to ``type``, which can be any valid query type
supported in BIND 9 except for zone transfer types AXFR and IXFR. As
with ``-q``, this is useful to distinguish query name type or class
when they are ambiguous. it is sometimes necessary to disambiguate
with ``-q``, this is useful to distinguish query-name types or classes
when they are ambiguous. It is sometimes necessary to disambiguate
names from types.
The default query type is "A", unless the ``-x`` option is supplied
to indicate a reverse lookup, in which case it is "PTR".
**-v**
Print the ``delv`` version and exit.
``-v``
This option prints the ``delv`` version and exits.
**-x** addr
Performs a reverse lookup, mapping an addresses to a name. ``addr``
``-x addr``
This option performs a reverse lookup, mapping an address to a name. ``addr``
is an IPv4 address in dotted-decimal notation, or a colon-delimited
IPv6 address. When ``-x`` is used, there is no need to provide the
``name`` or ``type`` arguments. ``delv`` automatically performs a
``name`` or ``type`` arguments; ``delv`` automatically performs a
lookup for a name like ``11.12.13.10.in-addr.arpa`` and sets the
query type to PTR. IPv6 addresses are looked up using nibble format
under the IP6.ARPA domain.
**-4**
Forces ``delv`` to only use IPv4.
``-4``
This option forces ``delv`` to only use IPv4.
**-6**
Forces ``delv`` to only use IPv6.
``-6``
This option forces ``delv`` to only use IPv6.
Query Options
~~~~~~~~~~~~~
@@ -206,122 +206,122 @@ assign values to options like the timeout interval. They have the form
``+keyword=value``. The query options are:
``+[no]cdflag``
Controls whether to set the CD (checking disabled) bit in queries
This option controls whether to set the CD (checking disabled) bit in queries
sent by ``delv``. This may be useful when troubleshooting DNSSEC
problems from behind a validating resolver. A validating resolver
will block invalid responses, making it difficult to retrieve them
for analysis. Setting the CD flag on queries will cause the resolver
blocks invalid responses, making it difficult to retrieve them
for analysis. Setting the CD flag on queries causes the resolver
to return invalid responses, which ``delv`` can then validate
internally and report the errors in detail.
``+[no]class``
Controls whether to display the CLASS when printing a record. The
This option controls whether to display the CLASS when printing a record. The
default is to display the CLASS.
``+[no]ttl``
Controls whether to display the TTL when printing a record. The
This option controls whether to display the TTL when printing a record. The
default is to display the TTL.
``+[no]rtrace``
Toggle resolver fetch logging. This reports the name and type of each
This option toggles resolver fetch logging. This reports the name and type of each
query sent by ``delv`` in the process of carrying out the resolution
and validation process: this includes including the original query
and validation process, including the original query
and all subsequent queries to follow CNAMEs and to establish a chain
of trust for DNSSEC validation.
This is equivalent to setting the debug level to 1 in the "resolver"
logging category. Setting the systemwide debug level to 1 using the
``-d`` option will product the same output (but will affect other
logging categories as well).
``-d`` option produces the same output, but affects other
logging categories as well.
``+[no]mtrace``
Toggle message logging. This produces a detailed dump of the
This option toggles message logging. This produces a detailed dump of the
responses received by ``delv`` in the process of carrying out the
resolution and validation process.
This is equivalent to setting the debug level to 10 for the "packets"
module of the "resolver" logging category. Setting the systemwide
debug level to 10 using the ``-d`` option will produce the same
output (but will affect other logging categories as well).
debug level to 10 using the ``-d`` option produces the same
output, but affects other logging categories as well.
``+[no]vtrace``
Toggle validation logging. This shows the internal process of the
This option toggles validation logging. This shows the internal process of the
validator as it determines whether an answer is validly signed,
unsigned, or invalid.
This is equivalent to setting the debug level to 3 for the
"validator" module of the "dnssec" logging category. Setting the
systemwide debug level to 3 using the ``-d`` option will produce the
same output (but will affect other logging categories as well).
systemwide debug level to 3 using the ``-d`` option produces the
same output, but affects other logging categories as well.
``+[no]short``
Provide a terse answer. The default is to print the answer in a
This option toggles between verbose and terse answers. The default is to print the answer in a
verbose form.
``+[no]comments``
Toggle the display of comment lines in the output. The default is to
This option toggles the display of comment lines in the output. The default is to
print comments.
``+[no]rrcomments``
Toggle the display of per-record comments in the output (for example,
This option toggles the display of per-record comments in the output (for example,
human-readable key information about DNSKEY records). The default is
to print per-record comments.
``+[no]crypto``
Toggle the display of cryptographic fields in DNSSEC records. The
contents of these field are unnecessary to debug most DNSSEC
This option toggles the display of cryptographic fields in DNSSEC records. The
contents of these fields are unnecessary to debug most DNSSEC
validation failures and removing them makes it easier to see the
common failures. The default is to display the fields. When omitted
they are replaced by the string "[omitted]" or in the DNSKEY case the
key id is displayed as the replacement, e.g. "[ key id = value ]".
common failures. The default is to display the fields. When omitted,
they are replaced by the string ``[omitted]`` or, in the DNSKEY case, the
key ID is displayed as the replacement, e.g. ``[ key id = value ]``.
``+[no]trust``
Controls whether to display the trust level when printing a record.
This option controls whether to display the trust level when printing a record.
The default is to display the trust level.
``+[no]split[=W]``
Split long hex- or base64-formatted fields in resource records into
This option splits long hex- or base64-formatted fields in resource records into
chunks of ``W`` characters (where ``W`` is rounded up to the nearest
multiple of 4). ``+nosplit`` or ``+split=0`` causes fields not to be
split at all. The default is 56 characters, or 44 characters when
multiline mode is active.
``+[no]all``
Set or clear the display options ``+[no]comments``,
This option sets or clears the display options ``+[no]comments``,
``+[no]rrcomments``, and ``+[no]trust`` as a group.
``+[no]multiline``
Print long records (such as RRSIG, DNSKEY, and SOA records) in a
This option prints long records (such as RRSIG, DNSKEY, and SOA records) in a
verbose multi-line format with human-readable comments. The default
is to print each record on a single line, to facilitate machine
parsing of the ``delv`` output.
``+[no]dnssec``
Indicates whether to display RRSIG records in the ``delv`` output.
This option indicates whether to display RRSIG records in the ``delv`` output.
The default is to do so. Note that (unlike in ``dig``) this does
*not* control whether to request DNSSEC records or whether to
*not* control whether to request DNSSEC records or to
validate them. DNSSEC records are always requested, and validation
will always occur unless suppressed by the use of ``-i`` or
always occurs unless suppressed by the use of ``-i`` or
``+noroot``.
``+[no]root[=ROOT]``
Indicates whether to perform conventional DNSSEC validation, and if so,
This option indicates whether to perform conventional DNSSEC validation, and if so,
specifies the name of a trust anchor. The default is to validate using a
trust anchor of "." (the root zone), for which there is a built-in key. If
specifying a different trust anchor, then ``-a`` must be used to specify a
file containing the key.
``+[no]tcp``
Controls whether to use TCP when sending queries. The default is to
This option controls whether to use TCP when sending queries. The default is to
use UDP unless a truncated response has been received.
``+[no]unknownformat``
Print all RDATA in unknown RR type presentation format (:rfc:`3597`).
This option prints all RDATA in unknown RR-type presentation format (:rfc:`3597`).
The default is to print RDATA for known types in the type's
presentation format.
``+[no]yaml``
Print response data in YAML format.
This option prints response data in YAML format.
Files
~~~~~
+199 -201
View File
@@ -24,7 +24,7 @@
.. _man_dig:
dig - DNS lookup utility
----------------------------------
------------------------
Synopsis
~~~~~~~~
@@ -40,33 +40,33 @@ Description
``dig`` is a flexible tool for interrogating DNS name servers. It
performs DNS lookups and displays the answers that are returned from the
name server(s) that were queried. Most DNS administrators use ``dig`` to
troubleshoot DNS problems because of its flexibility, ease of use and
troubleshoot DNS problems because of its flexibility, ease of use, and
clarity of output. Other lookup tools tend to have less functionality
than ``dig``.
Although ``dig`` is normally used with command-line arguments, it also
has a batch mode of operation for reading lookup requests from a file. A
brief summary of its command-line arguments and options is printed when
the ``-h`` option is given. Unlike earlier versions, the BIND 9
the ``-h`` option is given. The BIND 9
implementation of ``dig`` allows multiple lookups to be issued from the
command line.
Unless it is told to query a specific name server, ``dig`` will try each
Unless it is told to query a specific name server, ``dig`` tries each
of the servers listed in ``/etc/resolv.conf``. If no usable server
addresses are found, ``dig`` will send the query to the local host.
addresses are found, ``dig`` sends the query to the local host.
When no command line arguments or options are given, ``dig`` will
perform an NS query for "." (the root).
When no command-line arguments or options are given, ``dig``
performs an NS query for "." (the root).
It is possible to set per-user defaults for ``dig`` via
``${HOME}/.digrc``. This file is read and any options in it are applied
before the command line arguments. The ``-r`` option disables this
feature, for scripts that need predictable behaviour.
before the command-line arguments. The ``-r`` option disables this
feature, for scripts that need predictable behavior.
The IN and CH class names overlap with the IN and CH top level domain
The IN and CH class names overlap with the IN and CH top-level domain
names. Either use the ``-t`` and ``-c`` options to specify the type and
class, use the ``-q`` the specify the domain name, or use "IN." and
"CH." when looking up these top level domains.
class, use the ``-q`` to specify the domain name, or use "IN." and
"CH." when looking up these top-level domains.
Simple Usage
~~~~~~~~~~~~
@@ -90,110 +90,110 @@ where:
``/etc/resolv.conf``; if an address is found there, it queries the
name server at that address. If either of the ``-4`` or ``-6``
options are in use, then only addresses for the corresponding
transport will be tried. If no usable addresses are found, ``dig``
will send the query to the local host. The reply from the name server
transport are tried. If no usable addresses are found, ``dig``
sends the query to the local host. The reply from the name server
that responds is displayed.
``name``
is the name of the resource record that is to be looked up.
``type``
indicates what type of query is required MDASH ANY, A, MX, SIG, etc.
indicates what type of query is required - ANY, A, MX, SIG, etc.
``type`` can be any valid query type. If no ``type`` argument is
supplied, ``dig`` will perform a lookup for an A record.
supplied, ``dig`` performs a lookup for an A record.
Options
~~~~~~~
**-4**
Use IPv4 only.
``-4``
This option indicates that only IPv4 should be used.
**-6**
Use IPv6 only.
``-6``
This option indicates that only IPv6 should be used.
**-b** address[#port]
Set the source IP address of the query. The ``address`` must be a
``-b address[#port]``
This option sets the source IP address of the query. The ``address`` must be a
valid address on one of the host's network interfaces, or "0.0.0.0"
or "::". An optional port may be specified by appending "#<port>"
or "::". An optional port may be specified by appending ``#port``.
**-c** class
Set the query class. The default ``class`` is IN; other classes are
``-c class``
This option sets the query class. The default ``class`` is IN; other classes are
HS for Hesiod records or CH for Chaosnet records.
**-f** file
Batch mode: ``dig`` reads a list of lookup requests to process from
``-f file``
This option sets batch mode, in which ``dig`` reads a list of lookup requests to process from
the given ``file``. Each line in the file should be organized in the
same way they would be presented as queries to ``dig`` using the
same way it would be presented as a query to ``dig`` using the
command-line interface.
**-k** keyfile
Sign queries using TSIG using a key read from the given file. Key
files can be generated using tsig-keygen8. When using TSIG
``-k keyfile``
This option tells ``named`` to sign queries using TSIG using a key read from the given file. Key
files can be generated using ``tsig-keygen``. When using TSIG
authentication with ``dig``, the name server that is queried needs to
know the key and algorithm that is being used. In BIND, this is done
by providing appropriate ``key`` and ``server`` statements in
``named.conf``.
**-m**
Enable memory usage debugging.
``-m``
This option enables memory usage debugging.
**-p** port
Send the query to a non-standard port on the server, instead of the
default port 53. This option would be used to test a name server that
``-p port``
This option sends the query to a non-standard port on the server, instead of the
default port 53. This option is used to test a name server that
has been configured to listen for queries on a non-standard port
number.
**-q** name
The domain name to query. This is useful to distinguish the ``name``
``-q name``
This option specifies the domain name to query. This is useful to distinguish the ``name``
from other arguments.
**-r**
Do not read options from ``${HOME}/.digrc``. This is useful for
scripts that need predictable behaviour.
``-r``
This option indicates that options from ``${HOME}/.digrc`` should not be read. This is useful for
scripts that need predictable behavior.
**-t** type
The resource record type to query. It can be any valid query type. If
``-t type``
This option indicates the resource record type to query, which can be any valid query type. If
it is a resource record type supported in BIND 9, it can be given by
the type mnemonic (such as "NS" or "AAAA"). The default query type is
"A", unless the ``-x`` option is supplied to indicate a reverse
the type mnemonic (such as ``NS`` or ``AAAA``). The default query type is
``A``, unless the ``-x`` option is supplied to indicate a reverse
lookup. A zone transfer can be requested by specifying a type of
AXFR. When an incremental zone transfer (IXFR) is required, set the
``type`` to ``ixfr=N``. The incremental zone transfer will contain
the changes made to the zone since the serial number in the zone's
``type`` to ``ixfr=N``. The incremental zone transfer contains
all changes made to the zone since the serial number in the zone's
SOA record was ``N``.
All resource record types can be expressed as "TYPEnn", where "nn" is
All resource record types can be expressed as ``TYPEnn``, where ``nn`` is
the number of the type. If the resource record type is not supported
in BIND 9, the result will be displayed as described in :rfc:`3597`.
in BIND 9, the result is displayed as described in :rfc:`3597`.
**-u**
Print query times in microseconds instead of milliseconds.
``-u``
This option indicates that print query times should be provided in microseconds instead of milliseconds.
**-v**
Print the version number and exit.
``-v``
This option prints the version number and exits.
**-x** addr
Simplified reverse lookups, for mapping addresses to names. The
``-x addr``
This option sets simplified reverse lookups, for mapping addresses to names. The
``addr`` is an IPv4 address in dotted-decimal notation, or a
colon-delimited IPv6 address. When the ``-x`` is used, there is no
need to provide the ``name``, ``class`` and ``type`` arguments.
colon-delimited IPv6 address. When the ``-x`` option is used, there is no
need to provide the ``name``, ``class``, and ``type`` arguments.
``dig`` automatically performs a lookup for a name like
``94.2.0.192.in-addr.arpa`` and sets the query type and class to PTR
and IN respectively. IPv6 addresses are looked up using nibble format
under the IP6.ARPA domain.
**-y** [hmac:]keyname:secret
Sign queries using TSIG with the given authentication key.
``keyname`` is the name of the key, and ``secret`` is the base64
encoded shared secret. ``hmac`` is the name of the key algorithm;
``-y [hmac:]keyname:secret``
This option signs queries using TSIG with the given authentication key.
``keyname`` is the name of the key, and ``secret`` is the
base64-encoded shared secret. ``hmac`` is the name of the key algorithm;
valid choices are ``hmac-md5``, ``hmac-sha1``, ``hmac-sha224``,
``hmac-sha256``, ``hmac-sha384``, or ``hmac-sha512``. If ``hmac`` is
not specified, the default is ``hmac-md5`` or if MD5 was disabled
not specified, the default is ``hmac-md5``; if MD5 was disabled, the default is
``hmac-sha256``.
.. note:: You should use the ``-k`` option and avoid the ``-y`` option,
because with ``-y`` the shared secret is supplied as a command line
argument in clear text. This may be visible in the output from ps1 or
.. note:: Only the ``-k`` option should be used, rather than the ``-y`` option,
because with ``-y`` the shared secret is supplied as a command-line
argument in clear text. This may be visible in the output from ``ps1`` or
in a history file maintained by the user's shell.
Query Options
@@ -206,297 +206,296 @@ answer get printed, and others determine the timeout and retry
strategies.
Each query option is identified by a keyword preceded by a plus sign
(``+``). Some keywords set or reset an option. These may be preceded by
(``+``). Some keywords set or reset an option; these may be preceded by
the string ``no`` to negate the meaning of that keyword. Other keywords
assign values to options like the timeout interval. They have the form
assign values to options, like the timeout interval. They have the form
``+keyword=value``. Keywords may be abbreviated, provided the
abbreviation is unambiguous; for example, ``+cd`` is equivalent to
``+cdflag``. The query options are:
``+[no]aaflag``
A synonym for ``+[no]aaonly``.
This option is a synonym for ``+[no]aaonly``.
``+[no]aaonly``
Sets the "aa" flag in the query.
This option sets the ``aa`` flag in the query.
``+[no]additional``
Display [do not display] the additional section of a reply. The
This option displays [or does not display] the additional section of a reply. The
default is to display it.
``+[no]adflag``
Set [do not set] the AD (authentic data) bit in the query. This
This option sets [or does not set] the AD (authentic data) bit in the query. This
requests the server to return whether all of the answer and authority
sections have all been validated as secure according to the security
policy of the server. AD=1 indicates that all records have been
validated as secure and the answer is not from a OPT-OUT range. AD=0
indicate that some part of the answer was insecure or not validated.
sections have been validated as secure, according to the security
policy of the server. ``AD=1`` indicates that all records have been
validated as secure and the answer is not from a OPT-OUT range. ``AD=0``
indicates that some part of the answer was insecure or not validated.
This bit is set by default.
``+[no]all``
Set or clear all display flags.
This option sets or clears all display flags.
``+[no]answer``
Display [do not display] the answer section of a reply. The default
This option displays [or does not display] the answer section of a reply. The default
is to display it.
``+[no]authority``
Display [do not display] the authority section of a reply. The
This option displays [or does not display] the authority section of a reply. The
default is to display it.
``+[no]badcookie``
Retry lookup with the new server cookie if a BADCOOKIE response is
This option retries the lookup with a new server cookie if a BADCOOKIE response is
received.
``+[no]besteffort``
Attempt to display the contents of messages which are malformed. The
This option attempts to display the contents of messages which are malformed. The
default is to not display malformed answers.
``+bufsize=B``
Set the UDP message buffer size advertised using EDNS0 to ``B``
bytes. The maximum and minimum sizes of this buffer are 65535 and 0
This option sets the UDP message buffer size advertised using EDNS0 to ``B``
bytes. The maximum and minimum sizes of this buffer are 65535 and 0,
respectively. Values outside this range are rounded up or down
appropriately. Values other than zero will cause a EDNS query to be
appropriately. Values other than zero cause an EDNS query to be
sent.
``+[no]cdflag``
Set [do not set] the CD (checking disabled) bit in the query. This
This option sets [or does not set] the CD (checking disabled) bit in the query. This
requests the server to not perform DNSSEC validation of responses.
``+[no]class``
Display [do not display] the CLASS when printing the record.
This option displays [or does not display] the CLASS when printing the record.
``+[no]cmd``
Toggles the printing of the initial comment in the output, identifying the
version of ``dig`` and the query options that have been applied. This option
always has global effect; it cannot be set globally and then overridden on a
per-lookup basis. The default is to print this comment.
This option toggles the printing of the initial comment in the output, identifying the
version of ``dig`` and the query options that have been applied. This option
always has a global effect; it cannot be set globally and then overridden on a
per-lookup basis. The default is to print this comment.
``+[no]comments``
Toggles the display of some comment lines in the output, containing
This option toggles the display of some comment lines in the output, with
information about the packet header and OPT pseudosection, and the names of
the response section. The default is to print these comments.
the response section. The default is to print these comments.
Other types of comments in the output are not affected by this option, but
can be controlled using other command line switches. These include
can be controlled using other command-line switches. These include
``+[no]cmd``, ``+[no]question``, ``+[no]stats``, and ``+[no]rrcomments``.
``+[no]cookie=####``
Send a COOKIE EDNS option, with optional value. Replaying a COOKIE
from a previous response will allow the server to identify a previous
This option sends [or does not send] a COOKIE EDNS option, with an optional value. Replaying a COOKIE
from a previous response allows the server to identify a previous
client. The default is ``+cookie``.
``+cookie`` is also set when +trace is set to better emulate the
``+cookie`` is also set when ``+trace`` is set to better emulate the
default queries from a nameserver.
``+[no]crypto``
Toggle the display of cryptographic fields in DNSSEC records. The
contents of these field are unnecessary to debug most DNSSEC
This option toggles the display of cryptographic fields in DNSSEC records. The
contents of these fields are unnecessary for debugging most DNSSEC
validation failures and removing them makes it easier to see the
common failures. The default is to display the fields. When omitted
they are replaced by the string "[omitted]" or in the DNSKEY case the
key id is displayed as the replacement, e.g. "[ key id = value ]".
common failures. The default is to display the fields. When omitted,
they are replaced by the string ``[omitted]`` or, in the DNSKEY case, the
key ID is displayed as the replacement, e.g. ``[ key id = value ]``.
``+[no]defname``
Deprecated, treated as a synonym for ``+[no]search``
This option, which is deprecated, is treated as a synonym for ``+[no]search``.
``+[no]dnssec``
Requests DNSSEC records be sent by setting the DNSSEC OK bit (DO) in
This option requests that DNSSEC records be sent by setting the DNSSEC OK (DO) bit in
the OPT record in the additional section of the query.
``+domain=somename``
Set the search list to contain the single domain ``somename``, as if
This option sets the search list to contain the single domain ``somename``, as if
specified in a ``domain`` directive in ``/etc/resolv.conf``, and
enable search list processing as if the ``+search`` option were
enables search list processing as if the ``+search`` option were
given.
``+dscp=value``
Set the DSCP code point to be used when sending the query. Valid DSCP
code points are in the range [0..63]. By default no code point is
This option sets the DSCP code point to be used when sending the query. Valid DSCP
code points are in the range [0...63]. By default no code point is
explicitly set.
``+[no]edns[=#]``
Specify the EDNS version to query with. Valid values are 0 to 255.
Setting the EDNS version will cause a EDNS query to be sent.
This option specifies the EDNS version to query with. Valid values are 0 to 255.
Setting the EDNS version causes an EDNS query to be sent.
``+noedns`` clears the remembered EDNS version. EDNS is set to 0 by
default.
``+[no]ednsflags[=#]``
Set the must-be-zero EDNS flags bits (Z bits) to the specified value.
Decimal, hex and octal encodings are accepted. Setting a named flag
(e.g. DO) will silently be ignored. By default, no Z bits are set.
This option sets the must-be-zero EDNS flags bits (Z bits) to the specified value.
Decimal, hex, and octal encodings are accepted. Setting a named flag
(e.g., DO) is silently ignored. By default, no Z bits are set.
``+[no]ednsnegotiation``
Enable / disable EDNS version negotiation. By default EDNS version
This option enables/disables EDNS version negotiation. By default, EDNS version
negotiation is enabled.
``+[no]ednsopt[=code[:value]]``
Specify EDNS option with code point ``code`` and optionally payload
This option specifies the EDNS option with code point ``code`` and an optional payload
of ``value`` as a hexadecimal string. ``code`` can be either an EDNS
option name (for example, ``NSID`` or ``ECS``), or an arbitrary
option name (for example, ``NSID`` or ``ECS``) or an arbitrary
numeric value. ``+noednsopt`` clears the EDNS options to be sent.
``+[no]expire``
Send an EDNS Expire option.
This option sends an EDNS Expire option.
``+[no]fail``
Do not try the next server if you receive a SERVFAIL. The default is
to not try the next server which is the reverse of normal stub
This option indicates that ``named`` should try [or not try] the next server if a SERVFAIL is received. The default is
to not try the next server, which is the reverse of normal stub
resolver behavior.
``+[no]header-only``
Send a query with a DNS header without a question section. The
This option sends a query with a DNS header without a question section. The
default is to add a question section. The query type and query name
are ignored when this is set.
``+[no]identify``
Show [or do not show] the IP address and port number that supplied
the answer when the ``+short`` option is enabled. If short form
This option shows [or does not show] the IP address and port number that supplied
the answer, when the ``+short`` option is enabled. If short form
answers are requested, the default is not to show the source address
and port number of the server that provided the answer.
``+[no]idnin``
Process [do not process] IDN domain names on input. This requires IDN
SUPPORT to have been enabled at compile time.
This option processes [or does not process] IDN domain names on input. This requires
``IDN SUPPORT`` to have been enabled at compile time.
The default is to process IDN input when standard output is a tty.
The IDN processing on input is disabled when dig output is redirected
The IDN processing on input is disabled when ``dig`` output is redirected
to files, pipes, and other non-tty file descriptors.
``+[no]idnout``
Convert [do not convert] puny code on output. This requires IDN
SUPPORT to have been enabled at compile time.
This option converts [or does not convert] puny code on output. This requires
``IDN SUPPORT`` to have been enabled at compile time.
The default is to process puny code on output when standard output is
a tty. The puny code processing on output is disabled when dig output
a tty. The puny code processing on output is disabled when ``dig`` output
is redirected to files, pipes, and other non-tty file descriptors.
``+[no]ignore``
Ignore truncation in UDP responses instead of retrying with TCP. By
This option ignores [or does not ignore] truncation in UDP responses instead of retrying with TCP. By
default, TCP retries are performed.
``+[no]keepalive``
Send [or do not send] an EDNS Keepalive option.
This option sends [or does not send] an EDNS Keepalive option.
``+[no]keepopen``
Keep the TCP socket open between queries and reuse it rather than
This option keeps [or does not keep] the TCP socket open between queries, and reuses it rather than
creating a new TCP socket for each lookup. The default is
``+nokeepopen``.
``+[no]mapped``
Allow mapped IPv4 over IPv6 addresses to be used. The default is
This option allows [or does not allow] mapped IPv4-over-IPv6 addresses to be used. The default is
``+mapped``.
``+[no]multiline``
Print records like the SOA records in a verbose multi-line format
This option prints [or does not print] records, like the SOA records, in a verbose multi-line format
with human-readable comments. The default is to print each record on
a single line, to facilitate machine parsing of the ``dig`` output.
a single line to facilitate machine parsing of the ``dig`` output.
``+ndots=D``
Set the number of dots that have to appear in ``name`` to ``D`` for
This option sets the number of dots (``D``) that must appear in ``name`` for
it to be considered absolute. The default value is that defined using
the ndots statement in ``/etc/resolv.conf``, or 1 if no ndots
the ``ndots`` statement in ``/etc/resolv.conf``, or 1 if no ``ndots``
statement is present. Names with fewer dots are interpreted as
relative names and will be searched for in the domains listed in the
relative names, and are searched for in the domains listed in the
``search`` or ``domain`` directive in ``/etc/resolv.conf`` if
``+search`` is set.
``+[no]nsid``
Include an EDNS name server ID request when sending a query.
When enabled, this option includes an EDNS name server ID request when sending a query.
``+[no]nssearch``
When this option is set, ``dig`` attempts to find the authoritative
name servers for the zone containing the name being looked up and
name servers for the zone containing the name being looked up, and
display the SOA record that each name server has for the zone.
Addresses of servers that that did not respond are also printed.
Addresses of servers that did not respond are also printed.
``+[no]onesoa``
Print only one (starting) SOA record when performing an AXFR. The
When enabled, this option prints only one (starting) SOA record when performing an AXFR. The
default is to print both the starting and ending SOA records.
``+[no]opcode=value``
Set [restore] the DNS message opcode to the specified value. The
When enabled, this option sets (restores) the DNS message opcode to the specified value. The
default value is QUERY (0).
``+padding=value``
Pad the size of the query packet using the EDNS Padding option to
blocks of ``value`` bytes. For example, ``+padding=32`` would cause a
This option pads the size of the query packet using the EDNS Padding option to
blocks of ``value`` bytes. For example, ``+padding=32`` causes a
48-byte query to be padded to 64 bytes. The default block size is 0,
which disables padding. The maximum is 512. Values are ordinarily
which disables padding; the maximum is 512. Values are ordinarily
expected to be powers of two, such as 128; however, this is not
mandatory. Responses to padded queries may also be padded, but only
if the query uses TCP or DNS COOKIE.
``+qid=value``
Specify the query ID to use when sending queries.
This option specifies the query ID to use when sending queries.
``+[no]qr``
Toggles the display of the query message as it is sent. By default, the query
This option toggles the display of the query message as it is sent. By default, the query
is not printed.
``+[no]question``
Toggles the display of the question section of a query when an answer is
returned. The default is to print the question section as a comment.
This option toggles the display of the question section of a query when an answer is
returned. The default is to print the question section as a comment.
``+[no]raflag``
Set [do not set] the RA (Recursion Available) bit in the query. The
default is +noraflag. This bit should be ignored by the server for
This option sets [or does not set] the RA (Recursion Available) bit in the query. The
default is ``+noraflag``. This bit is ignored by the server for
QUERY.
``+[no]rdflag``
A synonym for ``+[no]recurse``.
This option is a synonym for ``+[no]recurse``.
``+[no]recurse``
Toggle the setting of the RD (recursion desired) bit in the query.
This option toggles the setting of the RD (recursion desired) bit in the query.
This bit is set by default, which means ``dig`` normally sends
recursive queries. Recursion is automatically disabled when the
``+nssearch`` or ``+trace`` query options are used.
``+nssearch`` or ``+trace`` query option is used.
``+retry=T``
Sets the number of times to retry UDP queries to server to ``T``
This option sets the number of times to retry UDP queries to server to ``T``
instead of the default, 2. Unlike ``+tries``, this does not include
the initial query.
``+[no]rrcomments``
Toggle the display of per-record comments in the output (for example,
This option toggles the display of per-record comments in the output (for example,
human-readable key information about DNSKEY records). The default is
not to print record comments unless multiline mode is active.
``+[no]search``
Use [do not use] the search list defined by the searchlist or domain
directive in ``resolv.conf`` (if any). The search list is not used by
This option uses [or does not use] the search list defined by the searchlist or domain
directive in ``resolv.conf``, if any. The search list is not used by
default.
'ndots' from ``resolv.conf`` (default 1) which may be overridden by
``+ndots`` determines if the name will be treated as relative or not
and hence whether a search is eventually performed or not.
``ndots`` from ``resolv.conf`` (default 1), which may be overridden by
``+ndots``, determines whether the name is treated as relative
and hence whether a search is eventually performed.
``+[no]short``
Provide a terse answer. The default is to print the answer in a verbose
form. This option always has global effect; it cannot be set globally and
This option toggles whether a terse answer is provided. The default is to print the answer in a verbose
form. This option always has a global effect; it cannot be set globally and
then overridden on a per-lookup basis.
``+[no]showsearch``
Perform [do not perform] a search showing intermediate results.
This option performs [or does not perform] a search showing intermediate results.
``+[no]sigchase``
This feature is now obsolete and has been removed; use ``delv``
instead.
``+split=W``
Split long hex- or base64-formatted fields in resource records into
This option splits long hex- or base64-formatted fields in resource records into
chunks of ``W`` characters (where ``W`` is rounded up to the nearest
multiple of 4). ``+nosplit`` or ``+split=0`` causes fields not to be
split at all. The default is 56 characters, or 44 characters when
multiline mode is active.
``+[no]stats``
Toggles the printing of statistics: when the query was made, the size of the
reply and so on. The default behavior is to print the query statistics as a
This option toggles the printing of statistics: when the query was made, the size of the
reply, etc. The default behavior is to print the query statistics as a
comment after each lookup.
``+[no]subnet=addr[/prefix-length]``
Send (don't send) an EDNS Client Subnet option with the specified IP
This option sends [or does not send] an EDNS CLIENT-SUBNET option with the specified IP
address or network prefix.
``dig +subnet=0.0.0.0/0``, or simply ``dig +subnet=0`` for short,
@@ -505,75 +504,74 @@ abbreviation is unambiguous; for example, ``+cd`` is equivalent to
address information must *not* be used when resolving this query.
``+[no]tcflag``
Set [do not set] the TC (TrunCation) bit in the query. The default is
+notcflag. This bit should be ignored by the server for QUERY.
This option sets [or does not set] the TC (TrunCation) bit in the query. The default is
``+notcflag``. This bit is ignored by the server for QUERY.
``+[no]tcp``
Use [do not use] TCP when querying name servers. The default behavior
This option uses [or does not use] TCP when querying name servers. The default behavior
is to use UDP unless a type ``any`` or ``ixfr=N`` query is requested,
in which case the default is TCP. AXFR queries always use TCP.
``+timeout=T``
Sets the timeout for a query to ``T`` seconds. The default timeout is
5 seconds. An attempt to set ``T`` to less than 1 will result in a
query timeout of 1 second being applied.
This option sets the timeout for a query to ``T`` seconds. The default timeout is
5 seconds. An attempt to set ``T`` to less than 1 is silently set to 1.
``+[no]topdown``
This feature is related to ``dig +sigchase``, which is obsolete and
has been removed. Use ``delv`` instead.
``+[no]trace``
Toggle tracing of the delegation path from the root name servers for
This option toggles tracing of the delegation path from the root name servers for
the name being looked up. Tracing is disabled by default. When
tracing is enabled, ``dig`` makes iterative queries to resolve the
name being looked up. It will follow referrals from the root servers,
name being looked up. It follows referrals from the root servers,
showing the answer from each server that was used to resolve the
lookup.
If @server is also specified, it affects only the initial query for
If ``@server`` is also specified, it affects only the initial query for
the root zone name servers.
``+dnssec`` is also set when +trace is set to better emulate the
default queries from a nameserver.
``+dnssec`` is also set when ``+trace`` is set, to better emulate the
default queries from a name server.
``+tries=T``
Sets the number of times to try UDP queries to server to ``T``
This option sets the number of times to try UDP queries to server to ``T``
instead of the default, 3. If ``T`` is less than or equal to zero,
the number of tries is silently rounded up to 1.
``+trusted-key=####``
Formerly specified trusted keys for use with ``dig +sigchase``. This
This option formerly specified trusted keys for use with ``dig +sigchase``. This
feature is now obsolete and has been removed; use ``delv`` instead.
``+[no]ttlid``
Display [do not display] the TTL when printing the record.
This option displays [or does not display] the TTL when printing the record.
``+[no]ttlunits``
Display [do not display] the TTL in friendly human-readable time
units of "s", "m", "h", "d", and "w", representing seconds, minutes,
hours, days and weeks. Implies +ttlid.
This option displays [or does not display] the TTL in friendly human-readable time
units of ``s``, ``m``, ``h``, ``d``, and ``w``, representing seconds, minutes,
hours, days, and weeks. This implies ``+ttlid``.
``+[no]unexpected``
Accept [do not accept] answers from unexpected sources. By default, ``dig``
won't accept a reply from a source other than the one to which it sent the
This option accepts [or does not accept] answers from unexpected sources. By default, ``dig``
will not accept a reply from a source other than the one to which it sent the
query.
``+[no]unknownformat``
Print all RDATA in unknown RR type presentation format (:rfc:`3597`).
This option prints all RDATA in unknown RR type presentation format (:rfc:`3597`).
The default is to print RDATA for known types in the type's
presentation format.
``+[no]vc``
Use [do not use] TCP when querying name servers. This alternate
This option uses [or does not use] TCP when querying name servers. This alternate
syntax to ``+[no]tcp`` is provided for backwards compatibility. The
"vc" stands for "virtual circuit".
``vc`` stands for "virtual circuit."
``+[no]yaml``
Print the responses (and, if <option>+qr</option> is in use, also the
When enabled, this option prints the responses (and, if ``+qr`` is in use, also the
outgoing queries) in a detailed YAML format.
``+[no]zflag``
Set [do not set] the last unassigned DNS header flag in a DNS query.
This option sets [or does not set] the last unassigned DNS header flag in a DNS query.
This flag is off by default.
Multiple Queries
@@ -582,12 +580,12 @@ Multiple Queries
The BIND 9 implementation of ``dig`` supports specifying multiple
queries on the command line (in addition to supporting the ``-f`` batch
file option). Each of those queries can be supplied with its own set of
flags, options and query options.
flags, options, and query options.
In this case, each ``query`` argument represent an individual query in
In this case, each ``query`` argument represents an individual query in
the command-line syntax described above. Each consists of any of the
standard options and flags, the name to be looked up, an optional query
type and class and any query options that should be applied to that
type and class, and any query options that should be applied to that
query.
A global set of query options, which should be applied to all queries,
@@ -601,12 +599,12 @@ query options. For example:
dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
shows how ``dig`` could be used from the command line to make three
lookups: an ANY query for ``www.isc.org``, a reverse lookup of 127.0.0.1
shows how ``dig`` can be used from the command line to make three
lookups: an ANY query for ``www.isc.org``, a reverse lookup of 127.0.0.1,
and a query for the NS records of ``isc.org``. A global query option of
``+qr`` is applied, so that ``dig`` shows the initial query it made for
each lookup. The final query has a local query option of ``+noqr`` which
means that ``dig`` will not print the initial query when it looks up the
means that ``dig`` does not print the initial query when it looks up the
NS records for ``isc.org``.
IDN Support
@@ -614,10 +612,10 @@ IDN Support
If ``dig`` has been built with IDN (internationalized domain name)
support, it can accept and display non-ASCII domain names. ``dig``
appropriately converts character encoding of domain name before sending
a request to DNS server or displaying a reply from the server. If you'd
like to turn off the IDN support for some reason, use parameters
``+noidnin`` and ``+noidnout`` or define the IDN_DISABLE environment
appropriately converts character encoding of a domain name before sending
a request to a DNS server or displaying a reply from the server.
To turn off IDN support, use the parameters
``+noidnin`` and ``+noidnout``, or define the ``IDN_DISABLE`` environment
variable.
Files
+1
View File
@@ -1494,6 +1494,7 @@ save_opt(dig_lookup_t *lookup, char *code, char *value) {
if (lookup->ednsopts == NULL) {
cloneopts(lookup, NULL);
}
INSIST(lookup->ednsopts != NULL);
if (lookup->ednsopts[lookup->ednsoptscnt].value != NULL) {
isc_mem_free(mctx, lookup->ednsopts[lookup->ednsoptscnt].value);
+67 -67
View File
@@ -36,12 +36,12 @@ Description
``host`` is a simple utility for performing DNS lookups. It is normally
used to convert names to IP addresses and vice versa. When no arguments
or options are given, ``host`` prints a short summary of its command
line arguments and options.
or options are given, ``host`` prints a short summary of its
command-line arguments and options.
``name`` is the domain name that is to be looked up. It can also be a
dotted-decimal IPv4 address or a colon-delimited IPv6 address, in which
case ``host`` will by default perform a reverse lookup for that address.
case ``host`` by default performs a reverse lookup for that address.
``server`` is an optional argument which is either the name or IP
address of the name server that ``host`` should query instead of the
server or servers listed in ``/etc/resolv.conf``.
@@ -49,111 +49,111 @@ server or servers listed in ``/etc/resolv.conf``.
Options
~~~~~~~
**-4**
Use IPv4 only for query transport. See also the ``-6`` option.
``-4``
This option specifies that only IPv4 should be used for query transport. See also the ``-6`` option.
**-6**
Use IPv6 only for query transport. See also the ``-4`` option.
``-6``
This option specifies that only IPv6 should be used for query transport. See also the ``-4`` option.
**-a**
"All". The ``-a`` option is normally equivalent to ``-v -t ANY``. It
also affects the behaviour of the ``-l`` list zone option.
``-a``
The ``-a`` ("all") option is normally equivalent to ``-v -t ANY``. It
also affects the behavior of the ``-l`` list zone option.
**-A**
"Almost all". The ``-A`` option is equivalent to ``-a`` except RRSIG,
``-A``
The ``-A`` ("almost all") option is equivalent to ``-a``, except that RRSIG,
NSEC, and NSEC3 records are omitted from the output.
**-c** class
Query class: This can be used to lookup HS (Hesiod) or CH (Chaosnet)
``-c class``
This option specifies the query class, which can be used to lookup HS (Hesiod) or CH (Chaosnet)
class resource records. The default class is IN (Internet).
**-C**
Check consistency: ``host`` will query the SOA records for zone
``-C``
This option indicates that ``named`` should check consistency, meaning that ``host`` queries the SOA records for zone
``name`` from all the listed authoritative name servers for that
zone. The list of name servers is defined by the NS records that are
found for the zone.
**-d**
Print debugging traces. Equivalent to the ``-v`` verbose option.
``-d``
This option prints debugging traces, and is equivalent to the ``-v`` verbose option.
**-l**
List zone: The ``host`` command performs a zone transfer of zone
``name`` and prints out the NS, PTR and address records (A/AAAA).
``-l``
This option tells ``named` to list the zone, meaning the ``host`` command performs a zone transfer of zone
``name`` and prints out the NS, PTR, and address records (A/AAAA).
Together, the ``-l -a`` options print all records in the zone.
**-N** ndots
The number of dots that have to be in ``name`` for it to be
``-N ndots``
This option specifies the number of dots (``ndots``) that have to be in ``name`` for it to be
considered absolute. The default value is that defined using the
ndots statement in ``/etc/resolv.conf``, or 1 if no ndots statement
is present. Names with fewer dots are interpreted as relative names
and will be searched for in the domains listed in the ``search`` or
``ndots`` statement in ``/etc/resolv.conf``, or 1 if no ``ndots`` statement
is present. Names with fewer dots are interpreted as relative names,
and are searched for in the domains listed in the ``search`` or
``domain`` directive in ``/etc/resolv.conf``.
**-p** port
Specify the port on the server to query. The default is 53.
``-p port``
This option specifies the port to query on the server. The default is 53.
**-r**
Non-recursive query: Setting this option clears the RD (recursion
desired) bit in the query. This should mean that the name server
receiving the query will not attempt to resolve ``name``. The ``-r``
``-r``
This option specifies a non-recursive query; setting this option clears the RD (recursion
desired) bit in the query. This means that the name server
receiving the query does not attempt to resolve ``name``. The ``-r``
option enables ``host`` to mimic the behavior of a name server by
making non-recursive queries and expecting to receive answers to
making non-recursive queries, and expecting to receive answers to
those queries that can be referrals to other name servers.
**-R** number
Number of retries for UDP queries: If ``number`` is negative or zero,
the number of retries will default to 1. The default value is 1, or
``-R number``
This option specifies the number of retries for UDP queries. If ``number`` is negative or zero,
the number of retries is silently set to 1. The default value is 1, or
the value of the ``attempts`` option in ``/etc/resolv.conf``, if set.
**-s**
Do *not* send the query to the next nameserver if any server responds
``-s``
This option tells ``named`` *not* to send the query to the next nameserver if any server responds
with a SERVFAIL response, which is the reverse of normal stub
resolver behavior.
**-t** type
Query type: The ``type`` argument can be any recognized query type:
``-t type``
This option specifies the query type. The ``type`` argument can be any recognized query type:
CNAME, NS, SOA, TXT, DNSKEY, AXFR, etc.
When no query type is specified, ``host`` automatically selects an
appropriate query type. By default, it looks for A, AAAA, and MX
records. If the ``-C`` option is given, queries will be made for SOA
records. If the ``-C`` option is given, queries are made for SOA
records. If ``name`` is a dotted-decimal IPv4 address or
colon-delimited IPv6 address, ``host`` will query for PTR records.
colon-delimited IPv6 address, ``host`` queries for PTR records.
If a query type of IXFR is chosen the starting serial number can be
specified by appending an equal followed by the starting serial
number (like ``-t IXFR=12345678``).
If a query type of IXFR is chosen, the starting serial number can be
specified by appending an equals sign (=), followed by the starting serial
number, e.g., ``-t IXFR=12345678``.
**-T**; **-U**
TCP/UDP: By default, ``host`` uses UDP when making queries. The
``-T``; ``-U``
This option specifies TCP or UDP. By default, ``host`` uses UDP when making queries; the
``-T`` option makes it use a TCP connection when querying the name
server. TCP will be automatically selected for queries that require
it, such as zone transfer (AXFR) requests. Type ANY queries default
to TCP but can be forced to UDP initially using ``-U``.
server. TCP is automatically selected for queries that require
it, such as zone transfer (AXFR) requests. Type ``ANY`` queries default
to TCP, but can be forced to use UDP initially via ``-U``.
**-m** flag
Memory usage debugging: the flag can be ``record``, ``usage``, or
``trace``. You can specify the ``-m`` option more than once to set
``-m flag``
This option sets memory usage debugging: the flag can be ``record``, ``usage``, or
``trace``. The ``-m`` option can be specified more than once to set
multiple flags.
**-v**
Verbose output. Equivalent to the ``-d`` debug option. Verbose output
``-v``
This option sets verbose output, and is equivalent to the ``-d`` debug option. Verbose output
can also be enabled by setting the ``debug`` option in
``/etc/resolv.conf``.
**-V**
Print the version number and exit.
``-V``
This option prints the version number and exits.
**-w**
Wait forever: The query timeout is set to the maximum possible. See
``-w``
This option sets "wait forever": the query timeout is set to the maximum possible. See
also the ``-W`` option.
**-W** wait
Timeout: Wait for up to ``wait`` seconds for a reply. If ``wait`` is
less than one, the wait interval is set to one second.
``-W wait``
This options sets the length of the wait timeout, indicating that ``named`` should wait for up to ``wait`` seconds for a reply. If ``wait`` is
less than 1, the wait interval is set to 1 second.
By default, ``host`` will wait for 5 seconds for UDP responses and 10
By default, ``host`` waits for 5 seconds for UDP responses and 10
seconds for TCP connections. These defaults can be overridden by the
``timeout`` option in ``/etc/resolv.conf``.
@@ -164,10 +164,10 @@ IDN Support
If ``host`` has been built with IDN (internationalized domain name)
support, it can accept and display non-ASCII domain names. ``host``
appropriately converts character encoding of domain name before sending
a request to DNS server or displaying a reply from the server. If you'd
like to turn off the IDN support for some reason, define the IDN_DISABLE
environment variable. The IDN support is disabled if the variable is set
appropriately converts character encoding of a domain name before sending
a request to a DNS server or displaying a reply from the server.
To turn off IDN support, define the ``IDN_DISABLE``
environment variable. IDN support is disabled if the variable is set
when ``host`` runs.
Files
+68 -78
View File
@@ -34,11 +34,11 @@ Synopsis
Description
~~~~~~~~~~~
``Nslookup`` is a program to query Internet domain name servers.
``Nslookup`` has two modes: interactive and non-interactive. Interactive
``nslookup`` is a program to query Internet domain name servers.
``nslookup`` has two modes: interactive and non-interactive. Interactive
mode allows the user to query name servers for information about various
hosts and domains or to print a list of hosts in a domain.
Non-interactive mode is used to print just the name and requested
Non-interactive mode prints just the name and requested
information for a host or domain.
Arguments
@@ -46,7 +46,7 @@ Arguments
Interactive mode is entered in the following cases:
a. when no arguments are given (the default name server will be used)
a. when no arguments are given (the default name server is used);
b. when the first argument is a hyphen (-) and the second argument is
the host name or Internet address of a name server.
@@ -57,7 +57,7 @@ argument specifies the host name or address of a name server.
Options can also be specified on the command line if they precede the
arguments and are prefixed with a hyphen. For example, to change the
default query type to host information, and the initial timeout to 10
default query type to host information, with an initial timeout of 10
seconds, type:
::
@@ -65,59 +65,59 @@ seconds, type:
nslookup -query=hinfo -timeout=10
The ``-version`` option causes ``nslookup`` to print the version number
and immediately exits.
and immediately exit.
Interactive Commands
~~~~~~~~~~~~~~~~~~~~
``host`` [server]
Look up information for host using the current default server or
using server, if specified. If host is an Internet address and the
query type is A or PTR, the name of the host is returned. If host is
a name and does not have a trailing period, the search list is used
``host [server]``
This command looks up information for ``host`` using the current default server or
using ``server``, if specified. If ``host`` is an Internet address and the
query type is A or PTR, the name of the host is returned. If ``host`` is
a name and does not have a trailing period (``.``), the search list is used
to qualify the name.
To look up a host not in the current domain, append a period to the
name.
``server`` domain | ``lserver`` domain
Change the default server to domain; ``lserver`` uses the initial
server to look up information about domain, while ``server`` uses the
current default server. If an authoritative answer can't be found,
``server domain`` | ``lserver domain``
These commands change the default server to ``domain``; ``lserver`` uses the initial
server to look up information about ``domain``, while ``server`` uses the
current default server. If an authoritative answer cannot be found,
the names of servers that might have the answer are returned.
``root``
not implemented
This command is not implemented.
``finger``
not implemented
This command is not implemented.
``ls``
not implemented
This command is not implemented.
``view``
not implemented
This command is not implemented.
``help``
not implemented
This command is not implemented.
``?``
not implemented
This command is not implemented.
``exit``
Exits the program.
This command exits the program.
``set`` keyword[=value]
``set keyword[=value]``
This command is used to change state information that affects the
lookups. Valid keywords are:
``all``
Prints the current values of the frequently used options to
This keyword prints the current values of the frequently used options to
``set``. Information about the current default server and host is
also printed.
``class=``\ value
Change the query class to one of:
``class=value``
This keyword changes the query class to one of:
``IN``
the Internet class
@@ -131,72 +131,62 @@ Interactive Commands
``ANY``
wildcard
The class specifies the protocol group of the information.
(Default = IN; abbreviation = cl)
The class specifies the protocol group of the information. The default
is ``IN``; the abbreviation for this keyword is ``cl``.
``nodebug``
Turn on or off the display of the full response packet and any
intermediate response packets when searching.
(Default = nodebug; abbreviation = [no]deb)
This keyword turns on or off the display of the full response packet, and any
intermediate response packets, when searching. The default for this keyword is
``nodebug``; the abbreviation for this keyword is ``[no]deb``.
``nod2``
Turn debugging mode on or off. This displays more about what
nslookup is doing.
This keyword turns debugging mode on or off. This displays more about what
nslookup is doing. The default is ``nod2``.
(Default = nod2)
``domain=``\ name
Sets the search list to name.
``domain=name``
This keyword sets the search list to ``name``.
``nosearch``
If the lookup request contains at least one period but doesn't end
with a trailing period, append the domain names in the domain
search list to the request until an answer is received.
If the lookup request contains at least one period, but does not end
with a trailing period, this keyword appends the domain names in the domain
search list to the request until an answer is received. The default is ``search``.
(Default = search)
``port=value``
This keyword changes the default TCP/UDP name server port to ``value`` from
its default, port 53. The abbreviation for this keyword is ``po``.
``port=``\ value
Change the default TCP/UDP name server port to value.
``querytype=value`` | ``type=value``
This keyword changes the type of the information query to ``value``. The
defaults are A and then AAAA; the abbreviations for these keywords are
``q`` and ``ty``.
(Default = 53; abbreviation = po)
``querytype=``\ value | ``type=``\ value
Change the type of the information query.
(Default = A and then AAAA; abbreviations = q, ty)
**Note:** It is only possible to specify one query type, only the default
behavior looks up both when an alternative is not specified.
Please note that it is only possible to specify one query type. Only the default
behavior looks up both when an alternative is not specified.
``norecurse``
Tell the name server to query other servers if it does not have
the information.
This keyword tells the name server to query other servers if it does not have
the information. The default is ``recurse``; the abbreviation for this
keyword is ``[no]rec``.
(Default = recurse; abbreviation = [no]rec)
``ndots=number``
This keyword sets the number of dots (label separators) in a domain that
disables searching. Absolute names always stop searching.
``ndots=``\ number
Set the number of dots (label separators) in a domain that will
disable searching. Absolute names always stop searching.
``retry=number``
This keyword sets the number of retries to ``number``.
``retry=``\ number
Set the number of retries to number.
``timeout=``\ number
Change the initial timeout interval for waiting for a reply to
number seconds.
``timeout=number``
This keyword changes the initial timeout interval to wait for a reply to
``number``, in seconds.
``novc``
Always use a virtual circuit when sending requests to the server.
(Default = novc)
This keyword indicates that a virtual circuit should always be used when sending requests to the server.
``novc`` is the default.
``nofail``
Try the next nameserver if a nameserver responds with SERVFAIL or
a referral (nofail) or terminate query (fail) on such a response.
(Default = nofail)
This keyword tries the next nameserver if a nameserver responds with SERVFAIL or
a referral (nofail), or terminates the query (fail) on such a response. The
default is ``nofail``.
Return Values
~~~~~~~~~~~~~
@@ -209,11 +199,11 @@ IDN Support
If ``nslookup`` has been built with IDN (internationalized domain name)
support, it can accept and display non-ASCII domain names. ``nslookup``
appropriately converts character encoding of domain name before sending
a request to DNS server or displaying a reply from the server. If you'd
like to turn off the IDN support for some reason, define the IDN_DISABLE
environment variable. The IDN support is disabled if the variable is set
when ``nslookup`` runs or when the standard output is not a tty.
appropriately converts character encoding of a domain name before sending
a request to a DNS server or displaying a reply from the server.
To turn off IDN support, define the ``IDN_DISABLE``
environment variable. IDN support is disabled if the variable is set
when ``nslookup`` runs, or when the standard output is not a tty.
Files
~~~~~
+59 -58
View File
@@ -29,7 +29,7 @@ dnssec-cds - change DS records for a child zone based on CDS/CDNSKEY
Synopsis
~~~~~~~~
:program:`dnssec-cds` [**-a** alg...] [**-c** class] [**-D**] {**-d** dsset-file} {**-f** child-file} [**-i** [extension]] [**-s** start-time] [**-T** ttl] [**-u**] [**-v** level] [**-V**] {domain}
:program:`dnssec-cds` [**-a** alg...] [**-c** class] [**-D**] {**-d** dsset-file} {**-f** child-file} [**-i**[extension]] [**-s** start-time] [**-T** ttl] [**-u**] [**-v** level] [**-V**] {domain}
Description
~~~~~~~~~~~
@@ -38,8 +38,8 @@ The ``dnssec-cds`` command changes DS records at a delegation point
based on CDS or CDNSKEY records published in the child zone. If both CDS
and CDNSKEY records are present in the child zone, the CDS is preferred.
This enables a child zone to inform its parent of upcoming changes to
its key-signing keys; by polling periodically with ``dnssec-cds``, the
parent can keep the DS records up to date and enable automatic rolling
its key-signing keys (KSKs); by polling periodically with ``dnssec-cds``, the
parent can keep the DS records up-to-date and enable automatic rolling
of KSKs.
Two input files are required. The ``-f child-file`` option specifies a
@@ -52,12 +52,12 @@ output of a previous run of ``dnssec-cds``.
The ``dnssec-cds`` command uses special DNSSEC validation logic
specified by :rfc:`7344`. It requires that the CDS and/or CDNSKEY records
are validly signed by a key represented in the existing DS records. This
will typically be the pre-existing key-signing key (KSK).
be validly signed by a key represented in the existing DS records. This
is typically the pre-existing KSK.
For protection against replay attacks, the signatures on the child
records must not be older than they were on a previous run of
``dnssec-cds``. This time is obtained from the modification time of the
``dnssec-cds``. Their age is obtained from the modification time of the
``dsset-`` file, or from the ``-s`` option.
To protect against breaking the delegation, ``dnssec-cds`` ensures that
@@ -67,103 +67,104 @@ type.
By default, replacement DS records are written to the standard output;
with the ``-i`` option the input file is overwritten in place. The
replacement DS records will be the same as the existing records when no
change is required. The output can be empty if the CDS / CDNSKEY records
specify that the child zone wants to go insecure.
replacement DS records are the same as the existing records, when no
change is required. The output can be empty if the CDS/CDNSKEY records
specify that the child zone wants to be insecure.
Warning: Be careful not to delete the DS records when ``dnssec-cds``
fails!
.. warning::
Be careful not to delete the DS records when ``dnssec-cds`` fails!
Alternatively, ``dnssec-cds -u`` writes an ``nsupdate`` script to the
standard output. You can use the ``-u`` and ``-i`` options together to
standard output. The ``-u`` and ``-i`` options can be used together to
maintain a ``dsset-`` file as well as emit an ``nsupdate`` script.
Options
~~~~~~~
**-a** algorithm
Specify a digest algorithm to use when converting CDNSKEY records to
``-a algorithm``
This option specifies a digest algorithm to use when converting CDNSKEY records to
DS records. This option can be repeated, so that multiple DS records
are created for each CDNSKEY record. This option has no effect when
using CDS records.
The algorithm must be one of SHA-1, SHA-256, or SHA-384. These values
are case insensitive, and the hyphen may be omitted. If no algorithm
are case-insensitive, and the hyphen may be omitted. If no algorithm
is specified, the default is SHA-256.
**-c** class
Specifies the DNS class of the zones.
``-c class``
This option specifies the DNS class of the zones.
**-D**
Generate DS records from CDNSKEY records if both CDS and CDNSKEY
``-D``
This option generates DS records from CDNSKEY records if both CDS and CDNSKEY
records are present in the child zone. By default CDS records are
preferred.
**-d** path
Location of the parent DS records. The path can be the name of a file
containing the DS records, or if it is a directory, ``dnssec-cds``
``-d path``
This specifies the location of the parent DS records. The path can be the name of a file
containing the DS records; if it is a directory, ``dnssec-cds``
looks for a ``dsset-`` file for the domain inside the directory.
To protect against replay attacks, child records are rejected if they
were signed earlier than the modification time of the ``dsset-``
file. This can be adjusted with the ``-s`` option.
**-f** child-file
File containing the child's CDS and/or CDNSKEY records, plus its
DNSKEY records and the covering RRSIG records so that they can be
``-f child-file``
This option specifies the file containing the child's CDS and/or CDNSKEY records, plus its
DNSKEY records and the covering RRSIG records, so that they can be
authenticated.
The EXAMPLES below describe how to generate this file.
The examples below describe how to generate this file.
**-iextension**
Update the ``dsset-`` file in place, instead of writing DS records to
``-iextension``
This option updates the ``dsset-`` file in place, instead of writing DS records to
the standard output.
There must be no space between the ``-i`` and the extension. If you
provide no extension then the old ``dsset-`` is discarded. If an
There must be no space between the ``-i`` and the extension. If
no extension is provided, the old ``dsset-`` is discarded. If an
extension is present, a backup of the old ``dsset-`` file is kept
with the extension appended to its filename.
To protect against replay attacks, the modification time of the
``dsset-`` file is set to match the signature inception time of the
child records, provided that is later than the file's current
child records, provided that it is later than the file's current
modification time.
**-s** start-time
Specify the date and time after which RRSIG records become
acceptable. This can be either an absolute or relative time. An
``-s start-time``
This option specifies the date and time after which RRSIG records become
acceptable. This can be either an absolute or a relative time. An
absolute start time is indicated by a number in YYYYMMDDHHMMSS
notation; 20170827133700 denotes 13:37:00 UTC on August 27th, 2017. A
time relative to the ``dsset-`` file is indicated with -N, which is N
time relative to the ``dsset-`` file is indicated with ``-N``, which is N
seconds before the file modification time. A time relative to the
current time is indicated with now+N.
current time is indicated with ``now+N``.
If no start-time is specified, the modification time of the
``dsset-`` file is used.
**-T** ttl
Specifies a TTL to be used for new DS records. If not specified, the
default is the TTL of the old DS records. If they had no explicit TTL
then the new DS records also have no explicit TTL.
``-T ttl``
This option specifies a TTL to be used for new DS records. If not specified, the
default is the TTL of the old DS records. If they had no explicit TTL,
the new DS records also have no explicit TTL.
**-u**
Write an ``nsupdate`` script to the standard output, instead of
printing the new DS reords. The output will be empty if no change is
``-u``
This option writes an ``nsupdate`` script to the standard output, instead of
printing the new DS reords. The output is empty if no change is
needed.
Note: The TTL of new records needs to be specified, either in the
original ``dsset-`` file, or with the ``-T`` option, or using the
Note: The TTL of new records needs to be specified: it can be done in the
original ``dsset-`` file, with the ``-T`` option, or using the
``nsupdate`` ``ttl`` command.
**-V**
Print version information.
``-V``
This option prints version information.
**-v** level
Sets the debugging level. Level 1 is intended to be usefully verbose
``-v level``
This option sets the debugging level. Level 1 is intended to be usefully verbose
for general users; higher levels are intended for developers.
domain
The name of the delegation point / child zone apex.
``domain``
This indicates the name of the delegation point/child zone apex.
Exit Status
~~~~~~~~~~~
@@ -171,17 +172,17 @@ Exit Status
The ``dnssec-cds`` command exits 0 on success, or non-zero if an error
occurred.
In the success case, the DS records might or might not need to be
If successful, the DS records may or may not need to be
changed.
Examples
~~~~~~~~
Before running ``dnssec-signzone``, you can ensure that the delegations
Before running ``dnssec-signzone``, ensure that the delegations
are up-to-date by running ``dnssec-cds`` on every ``dsset-`` file.
To fetch the child records required by ``dnssec-cds`` you can invoke
``dig`` as in the script below. It's okay if the ``dig`` fails since
To fetch the child records required by ``dnssec-cds``, invoke
``dig`` as in the script below. It is acceptable if the ``dig`` fails, since
``dnssec-cds`` performs all the necessary checking.
::
@@ -193,10 +194,10 @@ To fetch the child records required by ``dnssec-cds`` you can invoke
dnssec-cds -i -f /dev/stdin -d $f $d
done
When the parent zone is automatically signed by ``named``, you can use
``dnssec-cds`` with ``nsupdate`` to maintain a delegation as follows.
When the parent zone is automatically signed by ``named``,
``dnssec-cds`` can be used with ``nsupdate`` to maintain a delegation as follows.
The ``dsset-`` file allows the script to avoid having to fetch and
validate the parent DS records, and it keeps the replay attack
validate the parent DS records, and it maintains the replay attack
protection time.
::
+38 -38
View File
@@ -45,7 +45,7 @@ The ``dnssec-dsfromkey`` command outputs DS (Delegation Signer) resource records
The input keys can be specified in a number of ways:
By default, ``dnssec-dsfromkey`` reads a key file named like
By default, ``dnssec-dsfromkey`` reads a key file named in the format
``Knnnn.+aaa+iiiii.key``, as generated by ``dnssec-keygen``.
With the ``-f file`` option, ``dnssec-dsfromkey`` reads keys from a zone
@@ -57,73 +57,73 @@ as generated by ``dnssec-keygen`` ``-C``.
Options
~~~~~~~
**-1**
An abbreviation for ``-a SHA1``
``-1``
This option is an abbreviation for ``-a SHA1``.
**-2**
An abbreviation for ``-a SHA-256``
``-2``
This option is an abbreviation for ``-a SHA-256``.
**-a** algorithm
Specify a digest algorithm to use when converting DNSKEY records to
``-a algorithm``
This option specifies a digest algorithm to use when converting DNSKEY records to
DS records. This option can be repeated, so that multiple DS records
are created for each DNSKEY record.
The algorithm must be one of SHA-1, SHA-256, or SHA-384. These values
are case insensitive, and the hyphen may be omitted. If no algorithm
are case-insensitive, and the hyphen may be omitted. If no algorithm
is specified, the default is SHA-256.
**-A**
Include ZSKs when generating DS records. Without this option, only
keys which have the KSK flag set will be converted to DS records and
printed. Useful only in ``-f`` zone file mode.
``-A``
This option indicates that ZSKs are to be included when generating DS records. Without this option, only
keys which have the KSK flag set are converted to DS records and
printed. This option is only useful in ``-f`` zone file mode.
**-c** class
Specifies the DNS class (default is IN). Useful only in ``-s`` keyset
``-c class``
This option specifies the DNS class; the default is IN. This option is only useful in ``-s`` keyset
or ``-f`` zone file mode.
**-C**
Generate CDS records rather than DS records.
``-C``
This option generates CDS records rather than DS records.
**-f** file
Zone file mode: ``dnssec-dsfromkey``'s final dnsname argument is the
``-f file``
This option sets zone file mode, in which the final dnsname argument of ``dnssec-dsfromkey`` is the
DNS domain name of a zone whose master file can be read from
``file``. If the zone name is the same as ``file``, then it may be
omitted.
If file is ``"-"``, then the zone data is read from the standard
If ``file`` is ``-``, then the zone data is read from the standard
input. This makes it possible to use the output of the ``dig``
command as input, as in:
``dig dnskey example.com | dnssec-dsfromkey -f - example.com``
**-h**
Prints usage information.
``-h``
This option prints usage information.
**-K** directory
Look for key files or ``keyset-`` files in ``directory``.
``-K directory``
This option tells BIND 9 to look for key files or ``keyset-`` files in ``directory``.
**-s**
Keyset mode: ``dnssec-dsfromkey``'s final dnsname argument is the DNS
``-s``
This option enables keyset mode, in which the final dnsname argument from ``dnssec-dsfromkey`` is the DNS
domain name used to locate a ``keyset-`` file.
**-T** TTL
Specifies the TTL of the DS records. By default the TTL is omitted.
``-T TTL``
This option specifies the TTL of the DS records. By default the TTL is omitted.
**-v** level
Sets the debugging level.
``-v level``
This option sets the debugging level.
**-V**
Prints version information.
``-V``
This option prints version information.
Example
~~~~~~~
To build the SHA-256 DS RR from the ``Kexample.com.+003+26160`` keyfile
name, you can issue the following command:
To build the SHA-256 DS RR from the ``Kexample.com.+003+26160`` keyfile,
issue the following command:
``dnssec-dsfromkey -2 Kexample.com.+003+26160``
The command would print something like:
The command returns something similar to:
``example.com. IN DS 26160 5 2 3A1EADA7A74B8D0BA86726B0C227AA85AB8BBD2B2004F41A868A54F0C5EA0B94``
@@ -131,16 +131,16 @@ Files
~~~~~
The keyfile can be designated by the key identification
``Knnnn.+aaa+iiiii`` or the full file name ``Knnnn.+aaa+iiiii.key`` as
generated by dnssec-keygen8.
``Knnnn.+aaa+iiiii`` or the full file name ``Knnnn.+aaa+iiiii.key``, as
generated by ``dnssec-keygen``.
The keyset file name is built from the ``directory``, the string
``keyset-`` and the ``dnsname``.
``keyset-``, and the ``dnsname``.
Caveat
~~~~~~
A keyfile error can give a "file not found" even if the file exists.
A keyfile error may return "file not found," even if the file exists.
See Also
~~~~~~~~
+38 -38
View File
@@ -38,11 +38,11 @@ Description
``dnssec-importkey`` reads a public DNSKEY record and generates a pair
of .key/.private files. The DNSKEY record may be read from an existing
.key file, in which case a corresponding .private file will be
.key file, in which case a corresponding .private file is
generated, or it may be read from any other file or from the standard
input, in which case both .key and .private files will be generated.
input, in which case both .key and .private files are generated.
The newly-created .private file does *not* contain private key data, and
The newly created .private file does *not* contain private key data, and
cannot be used for signing. However, having a .private file makes it
possible to set publication (``-P``) and deletion (``-D``) times for the
key, which means the public key can be added to and removed from the
@@ -51,73 +51,73 @@ DNSKEY RRset on schedule even if the true private key is stored offline.
Options
~~~~~~~
**-f** filename
Zone file mode: instead of a public keyfile name, the argument is the
``-f filename``
This option indicates the zone file mode. Instead of a public keyfile name, the argument is the
DNS domain name of a zone master file, which can be read from
``file``. If the domain name is the same as ``file``, then it may be
``filename``. If the domain name is the same as ``filename``, then it may be
omitted.
If ``file`` is set to ``"-"``, then the zone data is read from the
If ``filename`` is set to ``"-"``, then the zone data is read from the
standard input.
**-K** directory
Sets the directory in which the key files are to reside.
``-K directory``
This option sets the directory in which the key files are to reside.
**-L** ttl
Sets the default TTL to use for this key when it is converted into a
DNSKEY RR. If the key is imported into a zone, this is the TTL that
will be used for it, unless there was already a DNSKEY RRset in
place, in which case the existing TTL would take precedence. Setting
the default TTL to ``0`` or ``none`` removes it.
``-L ttl``
This option sets the default TTL to use for this key when it is converted into a
DNSKEY RR. This is the TTL used when the key is imported into a zone,
unless there was already a DNSKEY RRset in
place, in which case the existing TTL takes precedence. Setting the default TTL to ``0`` or ``none``
removes it from the key.
**-h**
Emit usage message and exit.
``-h``
This option emits a usage message and exits.
**-v** level
Sets the debugging level.
``-v level``
This option sets the debugging level.
**-V**
Prints version information.
``-V``
This option prints version information.
Timing Options
~~~~~~~~~~~~~~
Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS. If the
argument begins with a '+' or '-', it is interpreted as an offset from
argument begins with a ``+`` or ``-``, it is interpreted as an offset from
the present time. For convenience, if such an offset is followed by one
of the suffixes 'y', 'mo', 'w', 'd', 'h', or 'mi', then the offset is
of the suffixes ``y``, ``mo``, ``w``, ``d``, ``h``, or ``mi``, then the offset is
computed in years (defined as 365 24-hour days, ignoring leap years),
months (defined as 30 24-hour days), weeks, days, hours, or minutes,
respectively. Without a suffix, the offset is computed in seconds. To
explicitly prevent a date from being set, use 'none' or 'never'.
explicitly prevent a date from being set, use ``none`` or ``never``.
**-P** date/offset
Sets the date on which a key is to be published to the zone. After
that date, the key will be included in the zone but will not be used
``-P date/offset``
This option sets the date on which a key is to be published to the zone. After
that date, the key is included in the zone but is not used
to sign it.
**-P** sync date/offset
Sets the date on which CDS and CDNSKEY records that match this key
``-P sync date/offset``
This option sets the date on which CDS and CDNSKEY records that match this key
are to be published to the zone.
**-D** date/offset
Sets the date on which the key is to be deleted. After that date, the
key will no longer be included in the zone. (It may remain in the key
repository, however.)
``-D date/offset``
This option sets the date on which the key is to be deleted. After that date, the
key is no longer included in the zone. (However, it may remain in the key
repository.)
**-D** sync date/offset
Sets the date on which the CDS and CDNSKEY records that match this
``-D sync date/offset``
This option sets the date on which the CDS and CDNSKEY records that match this
key are to be deleted.
Files
~~~~~
A keyfile can be designed by the key identification ``Knnnn.+aaa+iiiii``
or the full file name ``Knnnn.+aaa+iiiii.key`` as generated by
dnssec-keygen8.
or the full file name ``Knnnn.+aaa+iiiii.key``, as generated by
``dnssec-keygen``.
See Also
--------
~~~~~~~~
:manpage:`dnssec-keygen(8)`, :manpage:`dnssec-signzone(8)`, BIND 9 Administrator Reference Manual,
:rfc:`5011`.
+4
View File
@@ -362,6 +362,7 @@ main(int argc, char **argv) {
setup_logging(mctx, &log);
if (predecessor == NULL) {
/* cppcheck-suppress nullPointerRedundantCheck */
if (label == NULL) {
fatal("the key label was not specified");
}
@@ -383,6 +384,7 @@ main(int argc, char **argv) {
isc_result_totext(ret));
}
/* cppcheck-suppress nullPointerRedundantCheck */
if (strchr(label, ':') == NULL) {
char *l;
int len;
@@ -394,11 +396,13 @@ main(int argc, char **argv) {
label = l;
}
/* cppcheck-suppress nullPointerRedundantCheck */
if (algname == NULL) {
fatal("no algorithm specified");
}
r.base = algname;
/* cppcheck-suppress nullPointerRedundantCheck */
r.length = strlen(algname);
ret = dns_secalg_fromtext(&alg, &r);
if (ret != ISC_R_SUCCESS) {
+112 -112
View File
@@ -34,11 +34,11 @@ Synopsis
Description
~~~~~~~~~~~
``dnssec-keyfromlabel`` generates a key pair of files that referencing a
``dnssec-keyfromlabel`` generates a pair of key files that reference a
key object stored in a cryptographic hardware service module (HSM). The
private key file can be used for DNSSEC signing of zone data as if it
were a conventional signing key created by ``dnssec-keygen``, but the
key material is stored within the HSM, and the actual signing takes
key material is stored within the HSM and the actual signing takes
place there.
The ``name`` of the key is specified on the command line. This must
@@ -47,194 +47,194 @@ match the name of the zone for which the key is being generated.
Options
~~~~~~~
**-a** algorithm
Selects the cryptographic algorithm. The value of ``algorithm`` must
``-a algorithm``
This option selects the cryptographic algorithm. The value of ``algorithm`` must
be one of RSASHA1, NSEC3RSASHA1, RSASHA256, RSASHA512,
ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448.
ECDSAP256SHA256, ECDSAP384SHA384, ED25519, or ED448.
If no algorithm is specified, then RSASHA1 will be used by default,
If no algorithm is specified, RSASHA1 is used by default
unless the ``-3`` option is specified, in which case NSEC3RSASHA1
will be used instead. (If ``-3`` is used and an algorithm is
specified, that algorithm will be checked for compatibility with
is used instead. (If ``-3`` is used and an algorithm is
specified, that algorithm is checked for compatibility with
NSEC3.)
These values are case insensitive. In some cases, abbreviations are
These values are case-insensitive. In some cases, abbreviations are
supported, such as ECDSA256 for ECDSAP256SHA256 and ECDSA384 for
ECDSAP384SHA384. If RSASHA1 is specified along with the ``-3``
option, then NSEC3RSASHA1 will be used instead.
option, then NSEC3RSASHA1 is used instead.
As of BIND 9.12.0, this option is mandatory except when using the
``-S`` option (which copies the algorithm from the predecessory key).
Since BIND 9.12.0, this option is mandatory except when using the
``-S`` option, which copies the algorithm from the predecessory key.
Previously, the default for newly generated keys was RSASHA1.
**-3**
Use an NSEC3-capable algorithm to generate a DNSSEC key. If this
``-3``
This option uses an NSEC3-capable algorithm to generate a DNSSEC key. If this
option is used with an algorithm that has both NSEC and NSEC3
versions, then the NSEC3 version will be used; for example,
versions, then the NSEC3 version is used; for example,
``dnssec-keygen -3a RSASHA1`` specifies the NSEC3RSASHA1 algorithm.
**-E** engine
Specifies the cryptographic hardware to use.
``-E engine``
This option specifies the cryptographic hardware to use.
When BIND is built with OpenSSL PKCS#11 support, this defaults to the
string "pkcs11", which identifies an OpenSSL engine that can drive a
When BIND 9 is built with OpenSSL PKCS#11 support, this defaults to the
string ``pkcs11``, which identifies an OpenSSL engine that can drive a
cryptographic accelerator or hardware service module. When BIND is
built with native PKCS#11 cryptography (--enable-native-pkcs11), it
built with native PKCS#11 cryptography (``--enable-native-pkcs11``), it
defaults to the path of the PKCS#11 provider library specified via
"--with-pkcs11".
``--with-pkcs11``.
**-l** label
Specifies the label for a key pair in the crypto hardware.
``-l label``
This option specifies the label for a key pair in the crypto hardware.
When BIND 9 is built with OpenSSL-based PKCS#11 support, the label is
an arbitrary string that identifies a particular key. It may be
preceded by an optional OpenSSL engine name, followed by a colon, as
in "pkcs11:keylabel".
in ``pkcs11:keylabel``.
When BIND 9 is built with native PKCS#11 support, the label is a
PKCS#11 URI string in the format
"pkcs11:``keyword``\ =value[;\ ``keyword``\ =value;...]" Keywords
include "token", which identifies the HSM; "object", which identifies
the key; and "pin-source", which identifies a file from which the
HSM's PIN code can be obtained. The label will be stored in the
on-disk "private" file.
``pkcs11:keyword\ =value[;\ keyword\ =value;...]``. Keywords
include ``token``, which identifies the HSM; ``object``, which identifies
the key; and ``pin-source``, which identifies a file from which the
HSM's PIN code can be obtained. The label is stored in the
on-disk ``private`` file.
If the label contains a ``pin-source`` field, tools using the
generated key files will be able to use the HSM for signing and other
generated key files are able to use the HSM for signing and other
operations without any need for an operator to manually enter a PIN.
Note: Making the HSM's PIN accessible in this manner may reduce the
security advantage of using an HSM; be sure this is what you want to
do before making use of this feature.
security advantage of using an HSM; use caution
with this feature.
**-n** nametype
Specifies the owner type of the key. The value of ``nametype`` must
``-n nametype``
This option specifies the owner type of the key. The value of ``nametype`` must
either be ZONE (for a DNSSEC zone key (KEY/DNSKEY)), HOST or ENTITY
(for a key associated with a host (KEY)), USER (for a key associated
with a user(KEY)) or OTHER (DNSKEY). These values are case
insensitive.
with a user (KEY)), or OTHER (DNSKEY). These values are
case-insensitive.
**-C**
Compatibility mode: generates an old-style key, without any metadata.
By default, ``dnssec-keyfromlabel`` will include the key's creation
date in the metadata stored with the private key, and other dates may
be set there as well (publication date, activation date, etc). Keys
``-C``
This option enables compatibility mode, which generates an old-style key, without any metadata.
By default, ``dnssec-keyfromlabel`` includes the key's creation
date in the metadata stored with the private key; other dates may
be set there as well, including publication date, activation date, etc. Keys
that include this data may be incompatible with older versions of
BIND; the ``-C`` option suppresses them.
**-c** class
Indicates that the DNS record containing the key should have the
``-c class``
This option indicates that the DNS record containing the key should have the
specified class. If not specified, class IN is used.
**-f** flag
Set the specified flag in the flag field of the KEY/DNSKEY record.
The only recognized flags are KSK (Key Signing Key) and REVOKE.
``-f flag``
This option sets the specified flag in the ``flag`` field of the KEY/DNSKEY record.
The only recognized flags are KSK (Key-Signing Key) and REVOKE.
**-G**
Generate a key, but do not publish it or sign with it. This option is
incompatible with -P and -A.
``-G``
This option generates a key, but does not publish it or sign with it. This option is
incompatible with ``-P`` and ``-A``.
**-h**
Prints a short summary of the options and arguments to
``-h``
This option prints a short summary of the options and arguments to
``dnssec-keyfromlabel``.
**-K** directory
Sets the directory in which the key files are to be written.
``-K directory``
This option sets the directory in which the key files are to be written.
**-k**
Generate KEY records rather than DNSKEY records.
``-k``
This option generates KEY records rather than DNSKEY records.
**-L** ttl
Sets the default TTL to use for this key when it is converted into a
DNSKEY RR. If the key is imported into a zone, this is the TTL that
will be used for it, unless there was already a DNSKEY RRset in
``-L`` ttl
This option sets the default TTL to use for this key when it is converted into a
DNSKEY RR. This is the TTL used when the key is imported into a zone,
unless there was already a DNSKEY RRset in
place, in which case the existing TTL would take precedence. Setting
the default TTL to ``0`` or ``none`` removes it.
**-p** protocol
Sets the protocol value for the key. The protocol is a number between
``-p protocol``
This option sets the protocol value for the key. The protocol is a number between
0 and 255. The default is 3 (DNSSEC). Other possible values for this
argument are listed in :rfc:`2535` and its successors.
**-S** key
Generate a key as an explicit successor to an existing key. The name,
algorithm, size, and type of the key will be set to match the
predecessor. The activation date of the new key will be set to the
inactivation date of the existing one. The publication date will be
``-S key``
This option generates a key as an explicit successor to an existing key. The name,
algorithm, size, and type of the key are set to match the
predecessor. The activation date of the new key is set to the
inactivation date of the existing one. The publication date is
set to the activation date minus the prepublication interval, which
defaults to 30 days.
**-t** type
Indicates the use of the key. ``type`` must be one of AUTHCONF,
``-t type``
This option indicates the type of the key. ``type`` must be one of AUTHCONF,
NOAUTHCONF, NOAUTH, or NOCONF. The default is AUTHCONF. AUTH refers
to the ability to authenticate data, and CONF the ability to encrypt
to the ability to authenticate data, and CONF to the ability to encrypt
data.
**-v** level
Sets the debugging level.
``-v level``
This option sets the debugging level.
**-V**
Prints version information.
``-V``
This option prints version information.
**-y**
Allows DNSSEC key files to be generated even if the key ID would
``-y``
This option allows DNSSEC key files to be generated even if the key ID would
collide with that of an existing key, in the event of either key
being revoked. (This is only safe to use if you are sure you won't be
using :rfc:`5011` trust anchor maintenance with either of the keys
being revoked. (This is only safe to enable if
:rfc:`5011` trust anchor maintenance is not used with either of the keys
involved.)
Timing Options
~~~~~~~~~~~~~~
Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS. If the
argument begins with a '+' or '-', it is interpreted as an offset from
argument begins with a ``+`` or ``-``, it is interpreted as an offset from
the present time. For convenience, if such an offset is followed by one
of the suffixes 'y', 'mo', 'w', 'd', 'h', or 'mi', then the offset is
of the suffixes ``y``, ``mo``, ``w``, ``d``, ``h``, or ``mi``, then the offset is
computed in years (defined as 365 24-hour days, ignoring leap years),
months (defined as 30 24-hour days), weeks, days, hours, or minutes,
respectively. Without a suffix, the offset is computed in seconds. To
explicitly prevent a date from being set, use 'none' or 'never'.
explicitly prevent a date from being set, use ``none`` or ``never``.
**-P** date/offset
Sets the date on which a key is to be published to the zone. After
that date, the key will be included in the zone but will not be used
to sign it. If not set, and if the -G option has not been used, the
default is "now".
``-P date/offset``
This option sets the date on which a key is to be published to the zone. After
that date, the key is included in the zone but is not used
to sign it. If not set, and if the ``-G`` option has not been used, the
default is the current date.
**-P** sync date/offset
Sets the date on which the CDS and CDNSKEY records which match this
key are to be published to the zone.
``-P sync date/offset``
This option sets the date on which CDS and CDNSKEY records that match this key
are to be published to the zone.
**-A** date/offset
Sets the date on which the key is to be activated. After that date,
the key will be included in the zone and used to sign it. If not set,
and if the -G option has not been used, the default is "now".
``-A date/offset``
This option sets the date on which the key is to be activated. After that date,
the key is included in the zone and used to sign it. If not set,
and if the ``-G`` option has not been used, the default is the current date.
**-R** date/offset
Sets the date on which the key is to be revoked. After that date, the
key will be flagged as revoked. It will be included in the zone and
will be used to sign it.
``-R date/offset``
This option sets the date on which the key is to be revoked. After that date, the
key is flagged as revoked. It is included in the zone and
is used to sign it.
**-I** date/offset
Sets the date on which the key is to be retired. After that date, the
key will still be included in the zone, but it will not be used to
``-I date/offset``
This option sets the date on which the key is to be retired. After that date, the
key is still included in the zone, but it is not used to
sign it.
**-D** date/offset
Sets the date on which the key is to be deleted. After that date, the
key will no longer be included in the zone. (It may remain in the key
repository, however.)
``-D date/offset``
This option sets the date on which the key is to be deleted. After that date, the
key is no longer included in the zone. (However, it may remain in the key
repository.)
**-D** sync date/offset
Sets the date on which the CDS and CDNSKEY records which match this
``-D sync date/offset``
This option sets the date on which the CDS and CDNSKEY records that match this
key are to be deleted.
**-i** interval
Sets the prepublication interval for a key. If set, then the
``-i interval``
This option sets the prepublication interval for a key. If set, then the
publication and activation dates must be separated by at least this
much time. If the activation date is specified but the publication
date isn't, then the publication date will default to this much time
date is not, the publication date defaults to this much time
before the activation date; conversely, if the publication date is
specified but activation date isn't, then activation will be set to
specified but not the activation date, activation is set to
this much time after publication.
If the key is being created as an explicit successor to another key,
@@ -242,7 +242,7 @@ explicitly prevent a date from being set, use 'none' or 'never'.
zero.
As with date offsets, if the argument is followed by one of the
suffixes 'y', 'mo', 'w', 'd', 'h', or 'mi', then the interval is
suffixes ``y``, ``mo``, ``w``, ``d``, ``h``, or ``mi``, the interval is
measured in years, months, weeks, days, hours, or minutes,
respectively. Without a suffix, the interval is measured in seconds.
@@ -264,7 +264,7 @@ printed string. ``Knnnn.+aaa+iiiii.key`` contains the public key, and
``Knnnn.+aaa+iiiii.private`` contains the private key.
The ``.key`` file contains a DNS KEY record that can be inserted into a
zone file (directly or with a $INCLUDE statement).
zone file (directly or with an $INCLUDE statement).
The ``.private`` file contains algorithm-specific fields. For obvious
security reasons, this file does not have general read permission.
@@ -273,4 +273,4 @@ See Also
~~~~~~~~
:manpage:`dnssec-keygen(8)`, :manpage:`dnssec-signzone(8)`, BIND 9 Administrator Reference Manual,
:rfc:`4034`, The PKCS#11 URI Scheme (draft-pechanec-pkcs11uri-13).
:rfc:`4034`, :rfc:`7512`.
+2
View File
@@ -1180,10 +1180,12 @@ main(int argc, char **argv) {
}
if (ctx.predecessor == NULL && ctx.policy == NULL) {
/* cppcheck-suppress nullPointerRedundantCheck */
if (algname == NULL) {
fatal("no algorithm specified");
}
r.base = algname;
/* cppcheck-suppress nullPointerRedundantCheck */
r.length = strlen(algname);
ret = dns_secalg_fromtext(&ctx.alg, &r);
if (ret != ISC_R_SUCCESS) {
+129 -129
View File
@@ -46,220 +46,220 @@ generated.
Options
~~~~~~~
**-3**
Use an NSEC3-capable algorithm to generate a DNSSEC key. If this
``-3``
This option uses an NSEC3-capable algorithm to generate a DNSSEC key. If this
option is used with an algorithm that has both NSEC and NSEC3
versions, then the NSEC3 version will be used; for example,
versions, then the NSEC3 version is selected; for example,
``dnssec-keygen -3a RSASHA1`` specifies the NSEC3RSASHA1 algorithm.
**-a** algorithm
Selects the cryptographic algorithm. For DNSSEC keys, the value of
``-a algorithm``
This option selects the cryptographic algorithm. For DNSSEC keys, the value of
``algorithm`` must be one of RSASHA1, NSEC3RSASHA1, RSASHA256,
RSASHA512, ECDSAP256SHA256, ECDSAP384SHA384, ED25519 or ED448. For
TKEY, the value must be DH (Diffie Hellman); specifying his value
will automatically set the ``-T KEY`` option as well.
RSASHA512, ECDSAP256SHA256, ECDSAP384SHA384, ED25519, or ED448. For
TKEY, the value must be DH (Diffie-Hellman); specifying this value
automatically sets the ``-T KEY`` option as well.
These values are case insensitive. In some cases, abbreviations are
These values are case-insensitive. In some cases, abbreviations are
supported, such as ECDSA256 for ECDSAP256SHA256 and ECDSA384 for
ECDSAP384SHA384. If RSASHA1 is specified along with the ``-3``
option, then NSEC3RSASHA1 will be used instead.
option, NSEC3RSASHA1 is used instead.
This parameter *must* be specified except when using the ``-S``
option, which copies the algorithm from the predecessor key.
In prior releases, HMAC algorithms could be generated for use as TSIG
keys, but that feature has been removed as of BIND 9.13.0. Use
keys, but that feature was removed in BIND 9.13.0. Use
``tsig-keygen`` to generate TSIG keys.
**-b** keysize
Specifies the number of bits in the key. The choice of key size
depends on the algorithm used. RSA keys must be between 1024 and 4096
bits. Diffie Hellman keys must be between 128 and 4096 bits. Elliptic
curve algorithms don't need this parameter.
``-b keysize``
This option specifies the number of bits in the key. The choice of key size
depends on the algorithm used: RSA keys must be between 1024 and 4096
bits; Diffie-Hellman keys must be between 128 and 4096 bits. Elliptic
curve algorithms do not need this parameter.
If the key size is not specified, some algorithms have pre-defined
defaults. For example, RSA keys for use as DNSSEC zone signing keys
have a default size of 1024 bits; RSA keys for use as key signing
defaults. For example, RSA keys for use as DNSSEC zone-signing keys
have a default size of 1024 bits; RSA keys for use as key-signing
keys (KSKs, generated with ``-f KSK``) default to 2048 bits.
**-C**
Compatibility mode: generates an old-style key, without any timing
metadata. By default, ``dnssec-keygen`` will include the key's
creation date in the metadata stored with the private key, and other
dates may be set there as well (publication date, activation date,
etc). Keys that include this data may be incompatible with older
``-C``
This option enables compatibility mode, which generates an old-style key, without any timing
metadata. By default, ``dnssec-keygen`` includes the key's
creation date in the metadata stored with the private key; other
dates may be set there as well, including publication date, activation date,
etc. Keys that include this data may be incompatible with older
versions of BIND; the ``-C`` option suppresses them.
**-c** class
Indicates that the DNS record containing the key should have the
``-c class``
This option indicates that the DNS record containing the key should have the
specified class. If not specified, class IN is used.
**-d** bits
Key size in bits. For the algorithms RSASHA1, NSEC3RSASA1, RSASHA256 and
RSASHA512 the key size must be in range 1024-4096. DH size is between 128
and 4096. This option is ignored for algorithms ECDSAP256SHA256,
ECDSAP384SHA384, ED25519 and ED448.
``-d bits``
This option specifies the key size in bits. For the algorithms RSASHA1, NSEC3RSASA1, RSASHA256, and
RSASHA512 the key size must be between 1024 and 4096 bits; DH size is between 128
and 4096 bits. This option is ignored for algorithms ECDSAP256SHA256,
ECDSAP384SHA384, ED25519, and ED448.
**-E** engine
Specifies the cryptographic hardware to use, when applicable.
``-E engine``
This option specifies the cryptographic hardware to use, when applicable.
When BIND is built with OpenSSL PKCS#11 support, this defaults to the
string "pkcs11", which identifies an OpenSSL engine that can drive a
string ``pkcs11``, which identifies an OpenSSL engine that can drive a
cryptographic accelerator or hardware service module. When BIND is
built with native PKCS#11 cryptography (--enable-native-pkcs11), it
built with native PKCS#11 cryptography (``--enable-native-pkcs11``), it
defaults to the path of the PKCS#11 provider library specified via
"--with-pkcs11".
``--with-pkcs11``.
**-f** flag
Set the specified flag in the flag field of the KEY/DNSKEY record.
The only recognized flags are KSK (Key Signing Key) and REVOKE.
``-f flag``
This option sets the specified flag in the flag field of the KEY/DNSKEY record.
The only recognized flags are KSK (Key-Signing Key) and REVOKE.
**-G**
Generate a key, but do not publish it or sign with it. This option is
incompatible with -P and -A.
``-G``
This option generates a key, but does not publish it or sign with it. This option is
incompatible with ``-P`` and ``-A``.
**-g** generator
If generating a Diffie Hellman key, use this generator. Allowed
``-g generator``
This option indicates the generator to use if generating a Diffie-Hellman key. Allowed
values are 2 and 5. If no generator is specified, a known prime from
:rfc:`2539` will be used if possible; otherwise the default is 2.
:rfc:`2539` is used if possible; otherwise the default is 2.
**-h**
Prints a short summary of the options and arguments to
``-h``
This option prints a short summary of the options and arguments to
``dnssec-keygen``.
**-K** directory
Sets the directory in which the key files are to be written.
``-K directory``
This option sets the directory in which the key files are to be written.
**-k** policy
Create keys for a specific dnssec-policy. If a policy uses multiple keys,
``dnssec-keygen`` will generate multiple keys. This will also
create a ".state" file to keep track of the key state.
``-k policy``
This option creates keys for a specific ``dnssec-policy``. If a policy uses multiple keys,
``dnssec-keygen`` generates multiple keys. This also
creates a ".state" file to keep track of the key state.
This option creates keys according to the dnssec-policy configuration, hence
it cannot be used together with many of the other options that
This option creates keys according to the ``dnssec-policy`` configuration, hence
it cannot be used at the same time as many of the other options that
``dnssec-keygen`` provides.
**-L** ttl
Sets the default TTL to use for this key when it is converted into a
DNSKEY RR. If the key is imported into a zone, this is the TTL that
will be used for it, unless there was already a DNSKEY RRset in
place, in which case the existing TTL would take precedence. If this
value is not set and there is no existing DNSKEY RRset, the TTL will
default to the SOA TTL. Setting the default TTL to ``0`` or ``none``
``-L ttl``
This option sets the default TTL to use for this key when it is converted into a
DNSKEY RR. This is the TTL used when the key is imported into a zone,
unless there was already a DNSKEY RRset in
place, in which case the existing TTL takes precedence. If this
value is not set and there is no existing DNSKEY RRset, the TTL
defaults to the SOA TTL. Setting the default TTL to ``0`` or ``none``
is the same as leaving it unset.
**-l** file
Provide a configuration file that contains a dnssec-policy statement
``-l file``
This option provides a configuration file that contains a ``dnssec-policy`` statement
(matching the policy set with ``-k``).
**-n** nametype
Specifies the owner type of the key. The value of ``nametype`` must
``-n nametype``
This option specifies the owner type of the key. The value of ``nametype`` must
either be ZONE (for a DNSSEC zone key (KEY/DNSKEY)), HOST or ENTITY
(for a key associated with a host (KEY)), USER (for a key associated
with a user(KEY)) or OTHER (DNSKEY). These values are case
insensitive. Defaults to ZONE for DNSKEY generation.
with a user (KEY)), or OTHER (DNSKEY). These values are
case-insensitive. The default is ZONE for DNSKEY generation.
**-p** protocol
Sets the protocol value for the generated key, for use with
``-p protocol``
This option sets the protocol value for the generated key, for use with
``-T KEY``. The protocol is a number between 0 and 255. The default
is 3 (DNSSEC). Other possible values for this argument are listed in
:rfc:`2535` and its successors.
**-q**
Quiet mode: Suppresses unnecessary output, including progress
``-q``
This option sets quiet mode, which suppresses unnecessary output, including progress
indication. Without this option, when ``dnssec-keygen`` is run
interactively to generate an RSA or DSA key pair, it will print a
interactively to generate an RSA or DSA key pair, it prints a
string of symbols to ``stderr`` indicating the progress of the key
generation. A '.' indicates that a random number has been found which
passed an initial sieve test; '+' means a number has passed a single
round of the Miller-Rabin primality test; a space means that the
generation. A ``.`` indicates that a random number has been found which
passed an initial sieve test; ``+`` means a number has passed a single
round of the Miller-Rabin primality test; and a space ( ) means that the
number has passed all the tests and is a satisfactory key.
**-S** key
Create a new key which is an explicit successor to an existing key.
The name, algorithm, size, and type of the key will be set to match
the existing key. The activation date of the new key will be set to
the inactivation date of the existing one. The publication date will
be set to the activation date minus the prepublication interval,
``-S key``
This option creates a new key which is an explicit successor to an existing key.
The name, algorithm, size, and type of the key are set to match
the existing key. The activation date of the new key is set to
the inactivation date of the existing one. The publication date is
set to the activation date minus the prepublication interval,
which defaults to 30 days.
**-s** strength
Specifies the strength value of the key. The strength is a number
``-s strength``
This option specifies the strength value of the key. The strength is a number
between 0 and 15, and currently has no defined purpose in DNSSEC.
**-T** rrtype
Specifies the resource record type to use for the key. ``rrtype``
``-T rrtype``
This option specifies the resource record type to use for the key. ``rrtype``
must be either DNSKEY or KEY. The default is DNSKEY when using a
DNSSEC algorithm, but it can be overridden to KEY for use with
SIG(0).
**-t** type
Indicates the use of the key, for use with ``-T KEY``. ``type``
``-t type``
This option indicates the type of the key for use with ``-T KEY``. ``type``
must be one of AUTHCONF, NOAUTHCONF, NOAUTH, or NOCONF. The default
is AUTHCONF. AUTH refers to the ability to authenticate data, and
CONF the ability to encrypt data.
CONF to the ability to encrypt data.
**-V**
Prints version information.
``-V``
This option prints version information.
**-v** level
Sets the debugging level.
``-v level``
This option sets the debugging level.
Timing Options
~~~~~~~~~~~~~~
Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS. If the
argument begins with a '+' or '-', it is interpreted as an offset from
argument begins with a ``+`` or ``-``, it is interpreted as an offset from
the present time. For convenience, if such an offset is followed by one
of the suffixes 'y', 'mo', 'w', 'd', 'h', or 'mi', then the offset is
of the suffixes ``y``, ``mo``, ``w``, ``d``, ``h``, or ``mi``, then the offset is
computed in years (defined as 365 24-hour days, ignoring leap years),
months (defined as 30 24-hour days), weeks, days, hours, or minutes,
respectively. Without a suffix, the offset is computed in seconds. To
explicitly prevent a date from being set, use 'none' or 'never'.
explicitly prevent a date from being set, use ``none`` or ``never``.
**-P** date/offset
Sets the date on which a key is to be published to the zone. After
that date, the key will be included in the zone but will not be used
to sign it. If not set, and if the -G option has not been used, the
default is "now".
``-P date/offset``
This option sets the date on which a key is to be published to the zone. After
that date, the key is included in the zone but is not used
to sign it. If not set, and if the ``-G`` option has not been used, the
default is the current date.
**-P** sync date/offset
Sets the date on which CDS and CDNSKEY records that match this key
``-P sync date/offset``
This option sets the date on which CDS and CDNSKEY records that match this key
are to be published to the zone.
**-A** date/offset
Sets the date on which the key is to be activated. After that date,
the key will be included in the zone and used to sign it. If not set,
and if the -G option has not been used, the default is "now". If set,
if and -P is not set, then the publication date will be set to the
``-A date/offset``
This option sets the date on which the key is to be activated. After that date,
the key is included in the zone and used to sign it. If not set,
and if the ``-G`` option has not been used, the default is the current date. If set,
and ``-P`` is not set, the publication date is set to the
activation date minus the prepublication interval.
**-R** date/offset
Sets the date on which the key is to be revoked. After that date, the
key will be flagged as revoked. It will be included in the zone and
will be used to sign it.
``-R date/offset``
This option sets the date on which the key is to be revoked. After that date, the
key is flagged as revoked. It is included in the zone and
is used to sign it.
**-I** date/offset
Sets the date on which the key is to be retired. After that date, the
key will still be included in the zone, but it will not be used to
``-I date/offset``
This option sets the date on which the key is to be retired. After that date, the
key is still included in the zone, but it is not used to
sign it.
**-D** date/offset
Sets the date on which the key is to be deleted. After that date, the
key will no longer be included in the zone. (It may remain in the key
repository, however.)
``-D date/offset``
This option sets the date on which the key is to be deleted. After that date, the
key is no longer included in the zone. (However, it may remain in the key
repository.)
**-D** sync date/offset
Sets the date on which the CDS and CDNSKEY records that match this
``-D sync date/offset``
This option sets the date on which the CDS and CDNSKEY records that match this
key are to be deleted.
**-i** interval
Sets the prepublication interval for a key. If set, then the
``-i interval``
This option sets the prepublication interval for a key. If set, then the
publication and activation dates must be separated by at least this
much time. If the activation date is specified but the publication
date isn't, then the publication date will default to this much time
date is not, the publication date defaults to this much time
before the activation date; conversely, if the publication date is
specified but activation date isn't, then activation will be set to
specified but not the activation date, activation is set to
this much time after publication.
If the key is being created as an explicit successor to another key,
@@ -267,7 +267,7 @@ explicitly prevent a date from being set, use 'none' or 'never'.
zero.
As with date offsets, if the argument is followed by one of the
suffixes 'y', 'mo', 'w', 'd', 'h', or 'mi', then the interval is
suffixes ``y``, ``mo``, ``w``, ``d``, ``h``, or ``mi``, the interval is
measured in years, months, weeks, days, hours, or minutes,
respectively. Without a suffix, the interval is measured in seconds.
@@ -289,9 +289,9 @@ string. ``Knnnn.+aaa+iiiii.key`` contains the public key, and
``Knnnn.+aaa+iiiii.private`` contains the private key.
The ``.key`` file contains a DNSKEY or KEY record. When a zone is being
signed by ``named`` or ``dnssec-signzone`` ``-S``, DNSKEY records are
signed by ``named`` or ``dnssec-signzone -S``, DNSKEY records are
included automatically. In other cases, the ``.key`` file can be
inserted into a zone file manually or with a ``$INCLUDE`` statement.
inserted into a zone file manually or with an ``$INCLUDE`` statement.
The ``.private`` file contains algorithm-specific fields. For obvious
security reasons, this file does not have general read permission.
@@ -304,7 +304,7 @@ To generate an ECDSAP256SHA256 zone-signing key for the zone
``dnssec-keygen -a ECDSAP256SHA256 example.com``
The command would print a string of the form:
The command prints a string of the form:
``Kexample.com.+013+26160``
+20 -20
View File
@@ -41,38 +41,38 @@ containing the now-revoked key.
Options
~~~~~~~
**-h**
Emit usage message and exit.
``-h``
This option emits a usage message and exits.
**-K** directory
Sets the directory in which the key files are to reside.
``-K directory``
This option sets the directory in which the key files are to reside.
**-r**
After writing the new keyset files remove the original keyset files.
``-r``
This option indicates to remove the original keyset files after writing the new keyset files.
**-v** level
Sets the debugging level.
``-v level``
This option sets the debugging level.
**-V**
Prints version information.
``-V``
This option prints version information.
**-E** engine
Specifies the cryptographic hardware to use, when applicable.
``-E engine``
This option specifies the cryptographic hardware to use, when applicable.
When BIND is built with OpenSSL PKCS#11 support, this defaults to the
string "pkcs11", which identifies an OpenSSL engine that can drive a
When BIND 9 is built with OpenSSL PKCS#11 support, this defaults to the
string ``pkcs11``, which identifies an OpenSSL engine that can drive a
cryptographic accelerator or hardware service module. When BIND is
built with native PKCS#11 cryptography (--enable-native-pkcs11), it
built with native PKCS#11 cryptography (``--enable-native-pkcs11``), it
defaults to the path of the PKCS#11 provider library specified via
"--with-pkcs11".
``--with-pkcs11``.
**-f**
Force overwrite: Causes ``dnssec-revoke`` to write the new key pair
``-f``
This option indicates a forced overwrite and causes ``dnssec-revoke`` to write the new key pair,
even if a file already exists matching the algorithm and key ID of
the revoked key.
**-R**
Print the key tag of the key with the REVOKE bit set but do not
``-R``
This option prints the key tag of the key with the REVOKE bit set, but does not
revoke the key.
See Also
+88 -86
View File
@@ -40,7 +40,7 @@ timing metadata as specified by the ``-P``, ``-A``, ``-R``, ``-I``, and
other signing software to determine when a key is to be published,
whether it should be used for signing a zone, etc.
If none of these options is set on the command line, then
If none of these options is set on the command line,
``dnssec-settime`` simply prints the key timing metadata already stored
in the key.
@@ -54,155 +54,157 @@ the key file. The private file's permissions are always set to be
inaccessible to anyone other than the owner (mode 0600).
When working with state files, it is possible to update the timing metadata in
those files as well with ``-s``. If this option is used you can also update key
those files as well with ``-s``. With this option, it is also possible to update key
states with ``-d`` (DS), ``-k`` (DNSKEY), ``-r`` (RRSIG of KSK), or ``-z``
(RRSIG of ZSK). Allowed states are HIDDEN, RUMOURED, OMNIPRESENT, and
UNRETENTIVE.
You can also set the goal state of the key with ``-g``. This should be either
HIDDEN or OMNIPRESENT (representing whether the key should be removed from the
zone, or published).
The goal state of the key can also be set with ``-g``. This should be either
HIDDEN or OMNIPRESENT, representing whether the key should be removed from the
zone or published.
It is NOT RECOMMENDED to manipulate state files manually except for testing
It is NOT RECOMMENDED to manipulate state files manually, except for testing
purposes.
Options
~~~~~~~
**-f**
Force an update of an old-format key with no metadata fields. Without
this option, ``dnssec-settime`` will fail when attempting to update a
legacy key. With this option, the key will be recreated in the new
``-f``
This option forces an update of an old-format key with no metadata fields. Without
this option, ``dnssec-settime`` fails when attempting to update a
legacy key. With this option, the key is recreated in the new
format, but with the original key data retained. The key's creation
date will be set to the present time. If no other values are
specified, then the key's publication and activation dates will also
be set to the present time.
date is set to the present time. If no other values are
specified, then the key's publication and activation dates are also
set to the present time.
**-K** directory
Sets the directory in which the key files are to reside.
``-K directory``
This option sets the directory in which the key files are to reside.
**-L** ttl
Sets the default TTL to use for this key when it is converted into a
DNSKEY RR. If the key is imported into a zone, this is the TTL that
will be used for it, unless there was already a DNSKEY RRset in
place, in which case the existing TTL would take precedence. If this
value is not set and there is no existing DNSKEY RRset, the TTL will
default to the SOA TTL. Setting the default TTL to ``0`` or ``none``
``-L ttl``
This option sets the default TTL to use for this key when it is converted into a
DNSKEY RR. This is the TTL used when the key is imported into a zone,
unless there was already a DNSKEY RRset in
place, in which case the existing TTL takes precedence. If this
value is not set and there is no existing DNSKEY RRset, the TTL
defaults to the SOA TTL. Setting the default TTL to ``0`` or ``none``
removes it from the key.
**-h**
Emit usage message and exit.
``-h``
This option emits a usage message and exits.
**-V**
Prints version information.
``-V``
This option prints version information.
**-v** level
Sets the debugging level.
``-v level``
This option sets the debugging level.
**-E** engine
Specifies the cryptographic hardware to use, when applicable.
``-E engine``
This option specifies the cryptographic hardware to use, when applicable.
When BIND is built with OpenSSL PKCS#11 support, this defaults to the
string "pkcs11", which identifies an OpenSSL engine that can drive a
string ``pkcs11``, which identifies an OpenSSL engine that can drive a
cryptographic accelerator or hardware service module. When BIND is
built with native PKCS#11 cryptography (--enable-native-pkcs11), it
built with native PKCS#11 cryptography (``--enable-native-pkcs11``), it
defaults to the path of the PKCS#11 provider library specified via
"--with-pkcs11".
``--with-pkcs11``.
Timing Options
~~~~~~~~~~~~~~
Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS. If the
argument begins with a '+' or '-', it is interpreted as an offset from
argument begins with a ``+`` or ``-``, it is interpreted as an offset from
the present time. For convenience, if such an offset is followed by one
of the suffixes 'y', 'mo', 'w', 'd', 'h', or 'mi', then the offset is
of the suffixes ``y``, ``mo``, ``w``, ``d``, ``h``, or ``mi``, then the offset is
computed in years (defined as 365 24-hour days, ignoring leap years),
months (defined as 30 24-hour days), weeks, days, hours, or minutes,
respectively. Without a suffix, the offset is computed in seconds. To
unset a date, use 'none' or 'never'.
explicitly prevent a date from being set, use ``none`` or ``never``.
**-P** date/offset
Sets the date on which a key is to be published to the zone. After
that date, the key will be included in the zone but will not be used
``-P date/offset``
This option sets the date on which a key is to be published to the zone. After
that date, the key is included in the zone but is not used
to sign it.
**-P** sync date/offset
Sets the date on which CDS and CDNSKEY records that match this key
``-P sync date/offset``
This option sets the date on which CDS and CDNSKEY records that match this key
are to be published to the zone.
**-A** date/offset
Sets the date on which the key is to be activated. After that date,
the key will be included in the zone and used to sign it.
``-A date/offset``
This option sets the date on which the key is to be activated. After that date,
the key is included in the zone and used to sign it.
**-R** date/offset
Sets the date on which the key is to be revoked. After that date, the
key will be flagged as revoked. It will be included in the zone and
will be used to sign it.
``-R date/offset``
This option sets the date on which the key is to be revoked. After that date, the
key is flagged as revoked. It is included in the zone and
is used to sign it.
**-I** date/offset
Sets the date on which the key is to be retired. After that date, the
key will still be included in the zone, but it will not be used to
``-I date/offset``
This option sets the date on which the key is to be retired. After that date, the
key is still included in the zone, but it is not used to
sign it.
**-D** date/offset
Sets the date on which the key is to be deleted. After that date, the
key will no longer be included in the zone. (It may remain in the key
repository, however.)
``-D date/offset``
This option sets the date on which the key is to be deleted. After that date, the
key is no longer included in the zone. (However, it may remain in the key
repository.)
**-D** sync date/offset
Sets the date on which the CDS and CDNSKEY records that match this
``-D sync date/offset``
This option sets the date on which the CDS and CDNSKEY records that match this
key are to be deleted.
**-S** predecessor key
Select a key for which the key being modified will be an explicit
``-S predecessor key``
This option selects a key for which the key being modified is an explicit
successor. The name, algorithm, size, and type of the predecessor key
must exactly match those of the key being modified. The activation
date of the successor key will be set to the inactivation date of the
predecessor. The publication date will be set to the activation date
date of the successor key is set to the inactivation date of the
predecessor. The publication date is set to the activation date
minus the prepublication interval, which defaults to 30 days.
**-i** interval
Sets the prepublication interval for a key. If set, then the
``-i interval``
This option sets the prepublication interval for a key. If set, then the
publication and activation dates must be separated by at least this
much time. If the activation date is specified but the publication
date isn't, then the publication date will default to this much time
date is not, the publication date defaults to this much time
before the activation date; conversely, if the publication date is
specified but activation date isn't, then activation will be set to
specified but not the activation date, activation is set to
this much time after publication.
If the key is being set to be an explicit successor to another key,
If the key is being created as an explicit successor to another key,
then the default prepublication interval is 30 days; otherwise it is
zero.
As with date offsets, if the argument is followed by one of the
suffixes 'y', 'mo', 'w', 'd', 'h', or 'mi', then the interval is
suffixes ``y``, ``mo``, ``w``, ``d``, ``h``, or ``mi``, the interval is
measured in years, months, weeks, days, hours, or minutes,
respectively. Without a suffix, the interval is measured in seconds.
Key State Options
~~~~~~~~~~~~~~~~~
Known key states are HIDDEN, RUMOURED, OMNIPRESENT and UNRETENTIVE. These should
not be set manually except for testing purposes.
To test dnssec-policy it may be necessary to construct keys with artificial
state information; these options are used by the testing framework for that
purpose, but should never be used in production.
Known key states are HIDDEN, RUMOURED, OMNIPRESENT, and UNRETENTIVE.
``-s``
When setting key timing data, also update the state file.
This option indicates that when setting key timing data, the state file should also be updated.
``-g``
Set the goal state for this key. Must be HIDDEN or OMNIPRESENT.
``-g state``
This option sets the goal state for this key. Must be HIDDEN or OMNIPRESENT.
``-d``
Set the DS state for this key, and when it was last changed.
``-d state date/offset``
This option sets the DS state for this key as of the specified date, offset from the current date.
``-k``
Set the DNSKEY state for this key, and when it was last changed.
``-k state date/offset``
This option sets the DNSKEY state for this key as of the specified date, offset from the current date.
``-r``
Set the RRSIG (KSK) state for this key, and when it was last changed.
``-r state date/offset``
This option sets the RRSIG (KSK) state for this key as of the specified date, offset from the current date.
``-z``
Set the RRSIG (ZSK) state for this key, and when it was last changed.
``-z state date/offset``
This option sets the RRSIG (ZSK) state for this key as of the specified date, offset from the current date.
Printing Options
~~~~~~~~~~~~~~~~
@@ -210,18 +212,18 @@ Printing Options
``dnssec-settime`` can also be used to print the timing metadata
associated with a key.
**-u**
Print times in UNIX epoch format.
``-u``
This option indicates that times should be printed in Unix epoch format.
**-p** C/P/Psync/A/R/I/D/Dsync/all
Print a specific metadata value or set of metadata values. The ``-p``
``-p C/P/Psync/A/R/I/D/Dsync/all``
This option prints a specific metadata value or set of metadata values. The ``-p``
option may be followed by one or more of the following letters or
strings to indicate which value or values to print: ``C`` for the
creation date, ``P`` for the publication date, ``Psync`` for the CDS
and CDNSKEY publication date, ``A`` for the activation date, ``R``
for the revocation date, ``I`` for the inactivation date, ``D`` for
the deletion date, and ``Dsync`` for the CDS and CDNSKEY deletion
date To print all of the metadata, use ``-p all``.
date. To print all of the metadata, use ``all``.
See Also
~~~~~~~~
+166 -167
View File
@@ -34,233 +34,232 @@ Synopsis
Description
~~~~~~~~~~~
``dnssec-signzone`` signs a zone. It generates NSEC and RRSIG records
``dnssec-signzone`` signs a zone; it generates NSEC and RRSIG records
and produces a signed version of the zone. The security status of
delegations from the signed zone (that is, whether the child zones are
secure or not) is determined by the presence or absence of a ``keyset``
secure) is determined by the presence or absence of a ``keyset``
file for each child zone.
Options
~~~~~~~
**-a**
Verify all generated signatures.
``-a``
This option verifies all generated signatures.
**-c** class
Specifies the DNS class of the zone.
``-c class``
This option specifies the DNS class of the zone.
**-C**
Compatibility mode: Generate a ``keyset-zonename`` file in addition
``-C``
This option sets compatibility mode, in which a ``keyset-zonename`` file is generated in addition
to ``dsset-zonename`` when signing a zone, for use by older versions
of ``dnssec-signzone``.
**-d** directory
Look for ``dsset-`` or ``keyset-`` files in ``directory``.
``-d directory``
This option indicates the directory where BIND 9 should look for ``dsset-`` or ``keyset-`` files.
**-D**
Output only those record types automatically managed by
``dnssec-signzone``, i.e. RRSIG, NSEC, NSEC3 and NSEC3PARAM records.
``-D``
This option indicates that only those record types automatically managed by
``dnssec-signzone``, i.e., RRSIG, NSEC, NSEC3 and NSEC3PARAM records, should be included in the output.
If smart signing (``-S``) is used, DNSKEY records are also included.
The resulting file can be included in the original zone file with
``$INCLUDE``. This option cannot be combined with ``-O raw``,
``-O map``, or serial number updating.
``-O map``, or serial-number updating.
**-E** engine
When applicable, specifies the hardware to use for cryptographic
operations, such as a secure key store used for signing.
``-E engine``
This option specifies the hardware to use for cryptographic
operations, such as a secure key store used for signing, when applicable.
When BIND is built with OpenSSL PKCS#11 support, this defaults to the
string "pkcs11", which identifies an OpenSSL engine that can drive a
string ``pkcs11``, which identifies an OpenSSL engine that can drive a
cryptographic accelerator or hardware service module. When BIND is
built with native PKCS#11 cryptography (--enable-native-pkcs11), it
built with native PKCS#11 cryptography (``--enable-native-pkcs11``), it
defaults to the path of the PKCS#11 provider library specified via
"--with-pkcs11".
``--with-pkcs11``.
**-g**
Generate DS records for child zones from ``dsset-`` or ``keyset-``
file. Existing DS records will be removed.
``-g``
This option indicates that DS records for child zones should be generated from a ``dsset-`` or ``keyset-``
file. Existing DS records are removed.
**-K** directory
Key repository: Specify a directory to search for DNSSEC keys. If not
specified, defaults to the current directory.
``-K directory``
This option specifies the directory to search for DNSSEC keys. If not
specified, it defaults to the current directory.
**-k** key
Treat specified key as a key signing key ignoring any key flags. This
``-k key``
This option tells BIND 9 to treat the specified key as a key-signing key, ignoring any key flags. This
option may be specified multiple times.
**-M** maxttl
Sets the maximum TTL for the signed zone. Any TTL higher than maxttl
in the input zone will be reduced to maxttl in the output. This
``-M maxttl``
This option sets the maximum TTL for the signed zone. Any TTL higher than ``maxttl``
in the input zone is reduced to ``maxttl`` in the output. This
provides certainty as to the largest possible TTL in the signed zone,
which is useful to know when rolling keys because it is the longest
which is useful to know when rolling keys. The maxttl is the longest
possible time before signatures that have been retrieved by resolvers
will expire from resolver caches. Zones that are signed with this
expire from resolver caches. Zones that are signed with this
option should be configured to use a matching ``max-zone-ttl`` in
``named.conf``. (Note: This option is incompatible with ``-D``,
because it modifies non-DNSSEC data in the output zone.)
**-s** start-time
Specify the date and time when the generated RRSIG records become
``-s start-time``
This option specifies the date and time when the generated RRSIG records become
valid. This can be either an absolute or relative time. An absolute
start time is indicated by a number in YYYYMMDDHHMMSS notation;
20000530144500 denotes 14:45:00 UTC on May 30th, 2000. A relative
start time is indicated by +N, which is N seconds from the current
start time is indicated by ``+N``, which is N seconds from the current
time. If no ``start-time`` is specified, the current time minus 1
hour (to allow for clock skew) is used.
**-e** end-time
Specify the date and time when the generated RRSIG records expire. As
``-e end-time``
This option specifies the date and time when the generated RRSIG records expire. As
with ``start-time``, an absolute time is indicated in YYYYMMDDHHMMSS
notation. A time relative to the start time is indicated with +N,
notation. A time relative to the start time is indicated with ``+N``,
which is N seconds from the start time. A time relative to the
current time is indicated with now+N. If no ``end-time`` is
specified, 30 days from the start time is used as a default.
current time is indicated with ``now+N``. If no ``end-time`` is
specified, 30 days from the start time is the default.
``end-time`` must be later than ``start-time``.
**-X** extended end-time
Specify the date and time when the generated RRSIG records for the
DNSKEY RRset will expire. This is to be used in cases when the DNSKEY
``-X extended end-time``
This option specifies the date and time when the generated RRSIG records for the
DNSKEY RRset expire. This is to be used in cases when the DNSKEY
signatures need to persist longer than signatures on other records;
e.g., when the private component of the KSK is kept offline and the
KSK signature is to be refreshed manually.
As with ``start-time``, an absolute time is indicated in
As with ``end-time``, an absolute time is indicated in
YYYYMMDDHHMMSS notation. A time relative to the start time is
indicated with +N, which is N seconds from the start time. A time
relative to the current time is indicated with now+N. If no
indicated with ``+N``, which is N seconds from the start time. A time
relative to the current time is indicated with ``now+N``. If no
``extended end-time`` is specified, the value of ``end-time`` is used
as the default. (``end-time``, in turn, defaults to 30 days from the
start time.) ``extended end-time`` must be later than ``start-time``.
**-f** output-file
The name of the output file containing the signed zone. The default
``-f output-file``
This option indicates the name of the output file containing the signed zone. The default
is to append ``.signed`` to the input filename. If ``output-file`` is
set to ``"-"``, then the signed zone is written to the standard
output, with a default output format of "full".
set to ``-``, then the signed zone is written to the standard
output, with a default output format of ``full``.
**-h**
Prints a short summary of the options and arguments to
``-h``
This option prints a short summary of the options and arguments to
``dnssec-signzone``.
**-V**
Prints version information.
``-V``
This option prints version information.
**-i** interval
When a previously-signed zone is passed as input, records may be
resigned. The ``interval`` option specifies the cycle interval as an
offset from the current time (in seconds). If a RRSIG record expires
after the cycle interval, it is retained. Otherwise, it is considered
to be expiring soon, and it will be replaced.
``-i interval``
This option indicates that, when a previously signed zone is passed as input, records may be
re-signed. The ``interval`` option specifies the cycle interval as an
offset from the current time, in seconds. If a RRSIG record expires
after the cycle interval, it is retained; otherwise, it is considered
to be expiring soon and it is replaced.
The default cycle interval is one quarter of the difference between
the signature end and start times. So if neither ``end-time`` or
``start-time`` are specified, ``dnssec-signzone`` generates
the signature end and start times. So if neither ``end-time`` nor
``start-time`` is specified, ``dnssec-signzone`` generates
signatures that are valid for 30 days, with a cycle interval of 7.5
days. Therefore, if any existing RRSIG records are due to expire in
less than 7.5 days, they would be replaced.
less than 7.5 days, they are replaced.
**-I** input-format
The format of the input zone file. Possible formats are ``"text"``
(default), ``"raw"``, and ``"map"``. This option is primarily
intended to be used for dynamic signed zones so that the dumped zone
``-I input-format``
This option sets the format of the input zone file. Possible formats are ``text``
(the default), ``raw``, and ``map``. This option is primarily
intended to be used for dynamic signed zones, so that the dumped zone
file in a non-text format containing updates can be signed directly.
The use of this option does not make much sense for non-dynamic
zones.
This option is not useful for non-dynamic zones.
**-j** jitter
``-j jitter``
When signing a zone with a fixed signature lifetime, all RRSIG
records issued at the time of signing expires simultaneously. If the
zone is incrementally signed, i.e. a previously-signed zone is passed
as input to the signer, all expired signatures have to be regenerated
at about the same time. The ``jitter`` option specifies a jitter
window that will be used to randomize the signature expire time, thus
records issued at the time of signing expire simultaneously. If the
zone is incrementally signed, i.e., a previously signed zone is passed
as input to the signer, all expired signatures must be regenerated
at approximately the same time. The ``jitter`` option specifies a jitter
window that is used to randomize the signature expire time, thus
spreading incremental signature regeneration over time.
Signature lifetime jitter also to some extent benefits validators and
servers by spreading out cache expiration, i.e. if large numbers of
RRSIGs don't expire at the same time from all caches there will be
less congestion than if all validators need to refetch at mostly the
Signature lifetime jitter also, to some extent, benefits validators and
servers by spreading out cache expiration, i.e., if large numbers of
RRSIGs do not expire at the same time from all caches, there is
less congestion than if all validators need to refetch at around the
same time.
**-L** serial
When writing a signed zone to "raw" or "map" format, set the "source
serial" value in the header to the specified serial number. (This is
``-L serial``
When writing a signed zone to "raw" or "map" format, this option sets the "source
serial" value in the header to the specified ``serial`` number. (This is
expected to be used primarily for testing purposes.)
**-n** ncpus
Specifies the number of threads to use. By default, one thread is
``-n ncpus``
This option specifies the number of threads to use. By default, one thread is
started for each detected CPU.
**-N** soa-serial-format
The SOA serial number format of the signed zone. Possible formats are
``"keep"`` (default), ``"increment"``, ``"unixtime"``, and
``"date"``.
``-N soa-serial-format``
This option sets the SOA serial number format of the signed zone. Possible formats are
``keep`` (the default), ``increment``, ``unixtime``, and
``date``.
``"keep"``
Do not modify the SOA serial number.
**keep**
This format indicates that the SOA serial number should not be modified.
``"increment"``
Increment the SOA serial number using :rfc:`1982` arithmetic.
**increment**
This format increments the SOA serial number using :rfc:`1982` arithmetic.
``"unixtime"``
Set the SOA serial number to the number of seconds since epoch.
**unixtime**
This format sets the SOA serial number to the number of seconds since the beginning of the Unix epoch.
``"date"``
Set the SOA serial number to today's date in YYYYMMDDNN format.
**date**
This format sets the SOA serial number to today's date, in YYYYMMDDNN format.
**-o** origin
The zone origin. If not specified, the name of the zone file is
``-o origin``
This option sets the zone origin. If not specified, the name of the zone file is
assumed to be the origin.
**-O** output-format
The format of the output file containing the signed zone. Possible
formats are ``"text"`` (default), which is the standard textual
representation of the zone; ``"full"``, which is text output in a
format suitable for processing by external scripts; and ``"map"``,
``"raw"``, and ``"raw=N"``, which store the zone in binary formats
for rapid loading by ``named``. ``"raw=N"`` specifies the format
``-O output-format``
This option sets the format of the output file containing the signed zone. Possible
formats are ``text`` (the default), which is the standard textual
representation of the zone; ``full``, which is text output in a
format suitable for processing by external scripts; and ``map``,
``raw``, and ``raw=N``, which store the zone in binary formats
for rapid loading by ``named``. ``raw=N`` specifies the format
version of the raw zone file: if N is 0, the raw file can be read by
any version of ``named``; if N is 1, the file can be read by release
9.9.0 or higher; the default is 1.
9.9.0 or higher. The default is 1.
**-P**
Disable post sign verification tests.
``-P``
This option disables post-sign verification tests.
The post sign verification test ensures that for each algorithm in
use there is at least one non revoked self signed KSK key, that all
revoked KSK keys are self signed, and that all records in the zone
The post-sign verification tests ensure that for each algorithm in
use there is at least one non-revoked self-signed KSK key, that all
revoked KSK keys are self-signed, and that all records in the zone
are signed by the algorithm. This option skips these tests.
**-Q**
Remove signatures from keys that are no longer active.
``-Q``
This option removes signatures from keys that are no longer active.
Normally, when a previously-signed zone is passed as input to the
Normally, when a previously signed zone is passed as input to the
signer, and a DNSKEY record has been removed and replaced with a new
one, signatures from the old key that are still within their validity
period are retained. This allows the zone to continue to validate
with cached copies of the old DNSKEY RRset. The ``-Q`` forces
with cached copies of the old DNSKEY RRset. The ``-Q`` option forces
``dnssec-signzone`` to remove signatures from keys that are no longer
active. This enables ZSK rollover using the procedure described in
:rfc:`4641#4.2.1.1` ("Pre-Publish Key Rollover").
``-q``
Quiet mode: Suppresses unnecessary output. Without this option, when
``dnssec-signzone`` is run it will print to standard output the number of
keys in use, the algorithms used to verify the zone was signed correctly and
other status information, and finally the filename containing the signed
zone. With it, that output is suppressed, leaving only the filename.
This option enables quiet mode, which suppresses unnecessary output. Without this option, when
``dnssec-signzone`` is run it prints three pieces of information to standard output: the number of
keys in use; the algorithms used to verify the zone was signed correctly and
other status information; and the filename containing the signed
zone. With the option that output is suppressed, leaving only the filename.
**-R**
Remove signatures from keys that are no longer published.
``-R``
This option removes signatures from keys that are no longer published.
This option is similar to ``-Q``, except it forces
``dnssec-signzone`` to signatures from keys that are no longer
``dnssec-signzone`` to remove signatures from keys that are no longer
published. This enables ZSK rollover using the procedure described in
:rfc:`4641#4.2.1.2` ("Double Signature Zone Signing Key
Rollover").
**-S**
Smart signing: Instructs ``dnssec-signzone`` to search the key
``-S``
This option enables smart signing, which instructs ``dnssec-signzone`` to search the key
repository for keys that match the zone being signed, and to include
them in the zone if appropriate.
@@ -274,94 +273,94 @@ Options
If the key's publication date is set and is in the past, the key
is published in the zone.
If the key's activation date is set and in the past, the key is
If the key's activation date is set and is in the past, the key is
published (regardless of publication date) and used to sign the
zone.
If the key's revocation date is set and in the past, and the key
If the key's revocation date is set and is in the past, and the key
is published, then the key is revoked, and the revoked key is used
to sign the zone.
If either of the key's unpublication or deletion dates are set and
If either the key's unpublication or deletion date is set and
in the past, the key is NOT published or used to sign the zone,
regardless of any other metadata.
If key's sync publication date is set and in the past,
If the key's sync publication date is set and is in the past,
synchronization records (type CDS and/or CDNSKEY) are created.
If key's sync deletion date is set and in the past,
If the key's sync deletion date is set and is in the past,
synchronization records (type CDS and/or CDNSKEY) are removed.
**-T** ttl
Specifies a TTL to be used for new DNSKEY records imported into the
``-T ttl``
This option specifies a TTL to be used for new DNSKEY records imported into the
zone from the key repository. If not specified, the default is the
TTL value from the zone's SOA record. This option is ignored when
signing without ``-S``, since DNSKEY records are not imported from
the key repository in that case. It is also ignored if there are any
pre-existing DNSKEY records at the zone apex, in which case new
records' TTL values will be set to match them, or if any of the
imported DNSKEY records had a default TTL value. In the event of a a
records' TTL values are set to match them, or if any of the
imported DNSKEY records had a default TTL value. In the event of a
conflict between TTL values in imported keys, the shortest one is
used.
**-t**
Print statistics at completion.
``-t``
This option prints statistics at completion.
**-u**
Update NSEC/NSEC3 chain when re-signing a previously signed zone.
``-u``
This option updates the NSEC/NSEC3 chain when re-signing a previously signed zone.
With this option, a zone signed with NSEC can be switched to NSEC3,
or a zone signed with NSEC3 can be switch to NSEC or to NSEC3 with
different parameters. Without this option, ``dnssec-signzone`` will
retain the existing chain when re-signing.
or a zone signed with NSEC3 can be switched to NSEC or to NSEC3 with
different parameters. Without this option, ``dnssec-signzone``
retains the existing chain when re-signing.
**-v** level
Sets the debugging level.
``-v level``
This option sets the debugging level.
**-x**
Only sign the DNSKEY, CDNSKEY, and CDS RRsets with key-signing keys,
and omit signatures from zone-signing keys. (This is similar to the
``-x``
This option indicates that BIND 9 should only sign the DNSKEY, CDNSKEY, and CDS RRsets with key-signing keys,
and should omit signatures from zone-signing keys. (This is similar to the
``dnssec-dnskey-kskonly yes;`` zone option in ``named``.)
**-z**
Ignore KSK flag on key when determining what to sign. This causes
``-z``
This option indicates that BIND 9 should ignore the KSK flag on keys when determining what to sign. This causes
KSK-flagged keys to sign all records, not just the DNSKEY RRset.
(This is similar to the ``update-check-ksk no;`` zone option in
``named``.)
**-3** salt
Generate an NSEC3 chain with the given hex encoded salt. A dash
(salt) can be used to indicate that no salt is to be used when
``-3 salt``
This option generates an NSEC3 chain with the given hex-encoded salt. A dash
(-) can be used to indicate that no salt is to be used when
generating the NSEC3 chain.
**-H** iterations
When generating an NSEC3 chain, use this many iterations. The default
``-H iterations``
This option indicates that, when generating an NSEC3 chain, BIND 9 should use this many iterations. The default
is 10.
**-A**
When generating an NSEC3 chain set the OPTOUT flag on all NSEC3
records and do not generate NSEC3 records for insecure delegations.
``-A``
This option indicates that, when generating an NSEC3 chain, BIND 9 should set the OPTOUT flag on all NSEC3
records and should not generate NSEC3 records for insecure delegations.
Using this option twice (i.e., ``-AA``) turns the OPTOUT flag off for
all records. This is useful when using the ``-u`` option to modify an
NSEC3 chain which previously had OPTOUT set.
**zonefile**
The file containing the zone to be signed.
``zonefile``
This option sets the file containing the zone to be signed.
**key**
Specify which keys should be used to sign the zone. If no keys are
specified, then the zone will be examined for DNSKEY records at the
zone apex. If these are found and there are matching private keys, in
the current directory, then these will be used for signing.
``key``
This option specifies which keys should be used to sign the zone. If no keys are
specified, the zone is examined for DNSKEY records at the
zone apex. If these records are found and there are matching private keys in
the current directory, they are used for signing.
Example
~~~~~~~
The following command signs the ``example.com`` zone with the
ECDSAP256SHA256 key generated by key generated by ``dnssec-keygen``
ECDSAP256SHA256 key generated by ``dnssec-keygen``
(Kexample.com.+013+17247). Because the ``-S`` option is not being used,
the zone's keys must be in the master file (``db.example.com``). This
invocation looks for ``dsset`` files, in the current directory, so that
invocation looks for ``dsset`` files in the current directory, so that
DS records can be imported from them (``-g``).
::
@@ -373,7 +372,7 @@ DS records can be imported from them (``-g``).
In the above example, ``dnssec-signzone`` creates the file
``db.example.com.signed``. This file should be referenced in a zone
statement in a ``named.conf`` file.
statement in the ``named.conf`` file.
This example re-signs a previously signed zone with default parameters.
The private keys are assumed to be in the current directory.
+39 -39
View File
@@ -35,72 +35,72 @@ Description
~~~~~~~~~~~
``dnssec-verify`` verifies that a zone is fully signed for each
algorithm found in the DNSKEY RRset for the zone, and that the NSEC /
NSEC3 chains are complete.
algorithm found in the DNSKEY RRset for the zone, and that the
NSEC/NSEC3 chains are complete.
Options
~~~~~~~
**-c** class
Specifies the DNS class of the zone.
``-c class``
This option specifies the DNS class of the zone.
**-E** engine
Specifies the cryptographic hardware to use, when applicable.
``-E engine``
This option specifies the cryptographic hardware to use, when applicable.
When BIND is built with OpenSSL PKCS#11 support, this defaults to the
string "pkcs11", which identifies an OpenSSL engine that can drive a
string ``pkcs11``, which identifies an OpenSSL engine that can drive a
cryptographic accelerator or hardware service module. When BIND is
built with native PKCS#11 cryptography (--enable-native-pkcs11), it
built with native PKCS#11 cryptography (``--enable-native-pkcs11``), it
defaults to the path of the PKCS#11 provider library specified via
"--with-pkcs11".
``--with-pkcs11``.
**-I** input-format
The format of the input zone file. Possible formats are ``"text"``
(default) and ``"raw"``. This option is primarily intended to be used
for dynamic signed zones so that the dumped zone file in a non-text
format containing updates can be verified independently. The use of
this option does not make much sense for non-dynamic zones.
``-I input-format``
This option sets the format of the input zone file. Possible formats are ``text``
(the default) and ``raw``. This option is primarily intended to be used
for dynamic signed zones, so that the dumped zone file in a non-text
format containing updates can be verified independently.
This option is not useful for non-dynamic zones.
**-o** origin
The zone origin. If not specified, the name of the zone file is
``-o origin``
This option indicates the zone origin. If not specified, the name of the zone file is
assumed to be the origin.
**-v** level
Sets the debugging level.
``-v level``
This option sets the debugging level.
**-V**
Prints version information.
``-V``
This option prints version information.
``-q``
Quiet mode: Suppresses output. Without this option, when ``dnssec-verify``
is run it will print to standard output the number of keys in use, the
algorithms used to verify the zone was signed correctly and other status
information. With it, all non-error output is suppressed, and only the exit
code will indicate success.
This option sets quiet mode, which suppresses output. Without this option, when ``dnssec-verify``
is run it prints to standard output the number of keys in use, the
algorithms used to verify the zone was signed correctly, and other status
information. With this option, all non-error output is suppressed, and only the exit
code indicates success.
**-x**
Only verify that the DNSKEY RRset is signed with key-signing keys.
Without this flag, it is assumed that the DNSKEY RRset will be signed
by all active keys. When this flag is set, it will not be an error if
``-x``
This option verifies only that the DNSKEY RRset is signed with key-signing keys.
Without this flag, it is assumed that the DNSKEY RRset is signed
by all active keys. When this flag is set, it is not an error if
the DNSKEY RRset is not signed by zone-signing keys. This corresponds
to the ``-x`` option in ``dnssec-signzone``.
**-z**
Ignore the KSK flag on the keys when determining whether the zone if
correctly signed. Without this flag it is assumed that there will be
``-z``
This option indicates that the KSK flag on the keys should be ignored when determining whether the zone is
correctly signed. Without this flag, it is assumed that there is
a non-revoked, self-signed DNSKEY with the KSK flag set for each
algorithm and that RRsets other than DNSKEY RRset will be signed with
algorithm, and that RRsets other than DNSKEY RRset are signed with
a different DNSKEY without the KSK flag set.
With this flag set, we only require that for each algorithm, there
will be at least one non-revoked, self-signed DNSKEY, regardless of
the KSK flag state, and that other RRsets will be signed by a
With this flag set, BIND 9 only requires that for each algorithm, there
be at least one non-revoked, self-signed DNSKEY, regardless of
the KSK flag state, and that other RRsets be signed by a
non-revoked key for the same algorithm that includes the self-signed
key; the same key may be used for both purposes. This corresponds to
the ``-z`` option in ``dnssec-signzone``.
**zonefile**
The file containing the zone to be signed.
``zonefile``
This option indicates the file containing the zone to be signed.
See Also
~~~~~~~~
+34 -20
View File
@@ -302,7 +302,7 @@ view \"_bind\" chaos {\n\
"# END MANAGED KEYS\n\
\n\
masters " DEFAULT_IANA_ROOT_ZONE_MASTERS " {\n\
primaries " DEFAULT_IANA_ROOT_ZONE_PRIMARIES " {\n\
2001:500:84::b; # b.root-servers.net\n\
2001:500:2f::f; # f.root-servers.net\n\
2001:7fd::1; # k.root-servers.net\n\
@@ -566,33 +566,46 @@ named_config_putiplist(isc_mem_t *mctx, isc_sockaddr_t **addrsp,
}
}
isc_result_t
named_config_getmastersdef(const cfg_obj_t *cctx, const char *name,
const cfg_obj_t **ret) {
static isc_result_t
getprimariesdef(const cfg_obj_t *cctx, const char *list, const char *name,
const cfg_obj_t **ret) {
isc_result_t result;
const cfg_obj_t *masters = NULL;
const cfg_obj_t *obj = NULL;
const cfg_listelt_t *elt;
result = cfg_map_get(cctx, "masters", &masters);
REQUIRE(cctx != NULL);
REQUIRE(name != NULL);
REQUIRE(ret != NULL && *ret == NULL);
result = cfg_map_get(cctx, list, &obj);
if (result != ISC_R_SUCCESS) {
return (result);
}
for (elt = cfg_list_first(masters); elt != NULL;
elt = cfg_list_next(elt)) {
const cfg_obj_t *list;
const char *listname;
list = cfg_listelt_value(elt);
listname = cfg_obj_asstring(cfg_tuple_get(list, "name"));
if (strcasecmp(listname, name) == 0) {
*ret = list;
elt = cfg_list_first(obj);
while (elt != NULL) {
obj = cfg_listelt_value(elt);
if (strcasecmp(cfg_obj_asstring(cfg_tuple_get(obj, "name")),
name) == 0) {
*ret = obj;
return (ISC_R_SUCCESS);
}
elt = cfg_list_next(elt);
}
return (ISC_R_NOTFOUND);
}
isc_result_t
named_config_getprimariesdef(const cfg_obj_t *cctx, const char *name,
const cfg_obj_t **ret) {
isc_result_t result;
result = getprimariesdef(cctx, "primaries", name, ret);
if (result != ISC_R_SUCCESS) {
result = getprimariesdef(cctx, "masters", name, ret);
}
return (result);
}
isc_result_t
named_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
isc_mem_t *mctx, dns_ipkeylist_t *ipkl) {
@@ -678,7 +691,7 @@ resume:
isc_buffer_t b;
addr = cfg_tuple_get(cfg_listelt_value(element),
"masterselement");
"primarieselement");
key = cfg_tuple_get(cfg_listelt_value(element), "key");
if (!cfg_obj_issockaddr(addr)) {
@@ -710,11 +723,12 @@ resume:
if (j < l) {
continue;
}
tresult = named_config_getmastersdef(config, listname,
&list);
list = NULL;
tresult = named_config_getprimariesdef(config, listname,
&list);
if (tresult == ISC_R_NOTFOUND) {
cfg_obj_log(addr, named_g_lctx, ISC_LOG_ERROR,
"masters \"%s\" not found",
"primaries \"%s\" not found",
listname);
result = tresult;
+2
View File
@@ -209,6 +209,8 @@ named_control_docommand(isccc_sexpr_t *message, bool readonly,
result = named_server_changezone(named_g_server, cmdline, text);
} else if (command_compare(command, NAMED_COMMAND_DELZONE)) {
result = named_server_delzone(named_g_server, lex, text);
} else if (command_compare(command, NAMED_COMMAND_DNSSEC)) {
result = named_server_dnssec(named_g_server, lex, text);
} else if (command_compare(command, NAMED_COMMAND_DNSTAP) ||
command_compare(command, NAMED_COMMAND_DNSTAPREOPEN))
{
+37 -29
View File
@@ -226,6 +226,7 @@ shutdown_listener(controllistener_t *listener) {
if (listener->listening) {
isc_socket_cancel(listener->sock, listener->task,
ISC_SOCKCANCEL_ACCEPT);
return;
}
maybe_free_listener(listener);
@@ -636,6 +637,8 @@ control_newconn(isc_task_t *task, isc_event_t *event) {
UNUSED(task);
REQUIRE(listener->listening);
listener->listening = false;
if (nevent->result != ISC_R_SUCCESS) {
@@ -647,6 +650,14 @@ control_newconn(isc_task_t *task, isc_event_t *event) {
}
sock = nevent->newsocket;
/* Is the server shutting down? */
if (listener->controls->shuttingdown) {
isc_socket_detach(&sock);
shutdown_listener(listener);
goto cleanup;
}
isc_socket_setname(sock, "control", NULL);
(void)isc_socket_getpeername(sock, &peeraddr);
if (listener->type == isc_sockettype_tcp &&
@@ -1121,36 +1132,33 @@ add_listener(named_controls_t *cp, controllistener_t **listenerp,
listener = isc_mem_get(mctx, sizeof(*listener));
if (result == ISC_R_SUCCESS) {
listener->mctx = NULL;
isc_mem_attach(mctx, &listener->mctx);
listener->controls = cp;
listener->task = cp->server->task;
listener->address = *addr;
listener->sock = NULL;
listener->listening = false;
listener->exiting = false;
listener->acl = NULL;
listener->type = type;
listener->perm = 0;
listener->owner = 0;
listener->group = 0;
listener->readonly = false;
ISC_LINK_INIT(listener, link);
ISC_LIST_INIT(listener->keys);
ISC_LIST_INIT(listener->connections);
listener->mctx = NULL;
isc_mem_attach(mctx, &listener->mctx);
listener->controls = cp;
listener->task = cp->server->task;
listener->address = *addr;
listener->sock = NULL;
listener->listening = false;
listener->exiting = false;
listener->acl = NULL;
listener->type = type;
listener->perm = 0;
listener->owner = 0;
listener->group = 0;
listener->readonly = false;
ISC_LINK_INIT(listener, link);
ISC_LIST_INIT(listener->keys);
ISC_LIST_INIT(listener->connections);
/*
* Make the acl.
*/
if (control != NULL && type == isc_sockettype_tcp) {
allow = cfg_tuple_get(control, "allow");
result = cfg_acl_fromconfig(allow, config, named_g_lctx,
aclconfctx, mctx, 0,
&new_acl);
} else {
result = dns_acl_any(mctx, &new_acl);
}
/*
* Make the acl.
*/
if (control != NULL && type == isc_sockettype_tcp) {
allow = cfg_tuple_get(control, "allow");
result = cfg_acl_fromconfig(allow, config, named_g_lctx,
aclconfctx, mctx, 0, &new_acl);
} else {
result = dns_acl_any(mctx, &new_acl);
}
if ((result == ISC_R_SUCCESS) && (control != NULL)) {
+3 -3
View File
@@ -21,7 +21,7 @@
#include <isccfg/cfg.h>
#define DEFAULT_IANA_ROOT_ZONE_MASTERS "_default_iana_root_zone_masters"
#define DEFAULT_IANA_ROOT_ZONE_PRIMARIES "_default_iana_root_zone_primaries"
isc_result_t
named_config_parsedefaults(cfg_parser_t *parser, cfg_obj_t **conf);
@@ -59,8 +59,8 @@ named_config_putiplist(isc_mem_t *mctx, isc_sockaddr_t **addrsp,
isc_dscp_t **dscpsp, uint32_t count);
isc_result_t
named_config_getmastersdef(const cfg_obj_t *cctx, const char *name,
const cfg_obj_t **ret);
named_config_getprimariesdef(const cfg_obj_t *cctx, const char *name,
const cfg_obj_t **ret);
isc_result_t
named_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
+1
View File
@@ -61,6 +61,7 @@
#define NAMED_COMMAND_SHOWZONE "showzone"
#define NAMED_COMMAND_SYNC "sync"
#define NAMED_COMMAND_SIGNING "signing"
#define NAMED_COMMAND_DNSSEC "dnssec"
#define NAMED_COMMAND_ZONESTATUS "zonestatus"
#define NAMED_COMMAND_NTA "nta"
#define NAMED_COMMAND_TESTGEN "testgen"
+7
View File
@@ -333,6 +333,13 @@ isc_result_t
named_server_signing(named_server_t *server, isc_lex_t *lex,
isc_buffer_t **text);
/*%
* Lists the DNSSEC status for a given zone.
*/
isc_result_t
named_server_dnssec(named_server_t *server, isc_lex_t *lex,
isc_buffer_t **text);
/*%
* Lists status information for a given zone (e.g., name, type, files,
* load time, expiry, etc).
+35 -17
View File
@@ -134,8 +134,8 @@ MASTERS
::
masters string [ port integer ] [ dscp
integer ] { ( masters | ipv4_address [
port integer ] | ipv6_address [ port
integer ] { ( primaries | ipv4_address
[ port integer ] | ipv6_address [ port
integer ] ) [ key string ]; ... };
OPTIONS
@@ -155,7 +155,7 @@ OPTIONS
allow-transfer { address_match_element; ... };
allow-update { address_match_element; ... };
allow-update-forwarding { address_match_element; ... };
also-notify [ port integer ] [ dscp integer ] { ( masters |
also-notify [ port integer ] [ dscp integer ] { ( primaries |
ipv4_address [ port integer ] | ipv6_address [ port
integer ] ) [ key string ]; ... };
alt-transfer-source ( ipv4_address | * ) [ port ( integer | * )
@@ -173,7 +173,7 @@ OPTIONS
blackhole { address_match_element; ... };
cache-file quoted_string;
catalog-zones { zone string [ default-masters [ port integer ]
[ dscp integer ] { ( masters | ipv4_address [ port
[ dscp integer ] { ( primaries | ipv4_address [ port
integer ] | ipv6_address [ port integer ] ) [ key
string ]; ... } ] [ zone-directory quoted_string ] [
in-memory boolean ] [ min-update-interval duration ]; ... };
@@ -312,7 +312,7 @@ OPTIONS
new-zones-directory quoted_string;
no-case-compress { address_match_element; ... };
nocookie-udp-size integer;
notify ( explicit | master-only | boolean );
notify ( explicit | master-only | primary-only | boolean );
notify-delay integer;
notify-rate integer;
notify-source ( ipv4_address | * ) [ port ( integer | * ) ] [
@@ -445,6 +445,16 @@ PLUGIN
plugin ( query ) string [ { unspecified-text
} ];
PRIMARIES
^^^^^^^^^
::
primaries string [ port integer ] [ dscp
integer ] { ( primaries | ipv4_address
[ port integer ] | ipv6_address [ port
integer ] ) [ key string ]; ... };
SERVER
^^^^^^
@@ -533,7 +543,7 @@ VIEW
allow-transfer { address_match_element; ... };
allow-update { address_match_element; ... };
allow-update-forwarding { address_match_element; ... };
also-notify [ port integer ] [ dscp integer ] { ( masters |
also-notify [ port integer ] [ dscp integer ] { ( primaries |
ipv4_address [ port integer ] | ipv6_address [ port
integer ] ) [ key string ]; ... };
alt-transfer-source ( ipv4_address | * ) [ port ( integer | * )
@@ -545,7 +555,7 @@ VIEW
auto-dnssec ( allow | maintain | off );
cache-file quoted_string;
catalog-zones { zone string [ default-masters [ port integer ]
[ dscp integer ] { ( masters | ipv4_address [ port
[ dscp integer ] { ( primaries | ipv4_address [ port
integer ] | ipv6_address [ port integer ] ) [ key
string ]; ... } ] [ zone-directory quoted_string ] [
in-memory boolean ] [ min-update-interval duration ]; ... };
@@ -665,7 +675,7 @@ VIEW
new-zones-directory quoted_string;
no-case-compress { address_match_element; ... };
nocookie-udp-size integer;
notify ( explicit | master-only | boolean );
notify ( explicit | master-only | primary-only | boolean );
notify-delay integer;
notify-source ( ipv4_address | * ) [ port ( integer | * ) ] [
dscp integer ];
@@ -805,7 +815,7 @@ VIEW
allow-update { address_match_element; ... };
allow-update-forwarding { address_match_element; ... };
also-notify [ port integer ] [ dscp integer ] { (
masters | ipv4_address [ port integer ] |
primaries | ipv4_address [ port integer ] |
ipv6_address [ port integer ] ) [ key string ];
... };
alt-transfer-source ( ipv4_address | * ) [ port (
@@ -845,9 +855,10 @@ VIEW
key-directory quoted_string;
masterfile-format ( map | raw | text );
masterfile-style ( full | relative );
masters [ port integer ] [ dscp integer ] { ( masters
| ipv4_address [ port integer ] | ipv6_address [
port integer ] ) [ key string ]; ... };
masters [ port integer ] [ dscp integer ] { (
primaries | ipv4_address [ port integer ] |
ipv6_address [ port integer ] ) [ key string ];
... };
max-ixfr-ratio ( unlimited | percentage );
max-journal-size ( default | unlimited | sizeval );
max-records integer;
@@ -861,13 +872,17 @@ VIEW
min-refresh-time integer;
min-retry-time integer;
multi-master boolean;
notify ( explicit | master-only | boolean );
notify ( explicit | master-only | primary-only | boolean );
notify-delay integer;
notify-source ( ipv4_address | * ) [ port ( integer | *
) ] [ dscp integer ];
notify-source-v6 ( ipv6_address | * ) [ port ( integer
| * ) ] [ dscp integer ];
notify-to-soa boolean;
primaries [ port integer ] [ dscp integer ] { (
primaries | ipv4_address [ port integer ] |
ipv6_address [ port integer ] ) [ key string ];
... };
request-expire boolean;
request-ixfr boolean;
serial-update-method ( date | increment | unixtime );
@@ -910,7 +925,7 @@ ZONE
allow-transfer { address_match_element; ... };
allow-update { address_match_element; ... };
allow-update-forwarding { address_match_element; ... };
also-notify [ port integer ] [ dscp integer ] { ( masters |
also-notify [ port integer ] [ dscp integer ] { ( primaries |
ipv4_address [ port integer ] | ipv6_address [ port
integer ] ) [ key string ]; ... };
alt-transfer-source ( ipv4_address | * ) [ port ( integer | * )
@@ -948,7 +963,7 @@ ZONE
key-directory quoted_string;
masterfile-format ( map | raw | text );
masterfile-style ( full | relative );
masters [ port integer ] [ dscp integer ] { ( masters |
masters [ port integer ] [ dscp integer ] { ( primaries |
ipv4_address [ port integer ] | ipv6_address [ port
integer ] ) [ key string ]; ... };
max-ixfr-ratio ( unlimited | percentage );
@@ -964,13 +979,16 @@ ZONE
min-refresh-time integer;
min-retry-time integer;
multi-master boolean;
notify ( explicit | master-only | boolean );
notify ( explicit | master-only | primary-only | boolean );
notify-delay integer;
notify-source ( ipv4_address | * ) [ port ( integer | * ) ] [
dscp integer ];
notify-source-v6 ( ipv6_address | * ) [ port ( integer | * ) ]
[ dscp integer ];
notify-to-soa boolean;
primaries [ port integer ] [ dscp integer ] { ( primaries |
ipv4_address [ port integer ] | ipv6_address [ port
integer ] ) [ key string ]; ... };
request-expire boolean;
request-ixfr boolean;
serial-update-method ( date | increment | unixtime );
@@ -1007,5 +1025,5 @@ Files
See Also
~~~~~~~~
:manpage:`ddns-confgen(8)`, :manpage:`named(8)`, :manpage:`named-checkconf(8)`, :manpage:`rndc(8)`, :manpage:`rndc-confgen(8)`, BIND 9 Administrator Reference Manual.
:manpage:`named(8)`, :manpage:`named-checkconf(8)`, :manpage:`rndc(8)`, :manpage:`rndc-confgen(8)`, :manpage:`tsig-keygen(8)`, BIND 9 Administrator Reference Manual.
+75 -75
View File
@@ -38,119 +38,119 @@ Description
distribution from ISC. For more information on the DNS, see :rfc:`1033`,
:rfc:`1034`, and :rfc:`1035`.
When invoked without arguments, ``named`` will read the default
configuration file ``/etc/named.conf``, read any initial data, and
listen for queries.
When invoked without arguments, ``named`` reads the default
configuration file ``/etc/named.conf``, reads any initial data, and
listens for queries.
Options
~~~~~~~
**-4**
Use IPv4 only even if the host machine is capable of IPv6. ``-4`` and
``-4``
This option tells ``named`` to use only IPv4, even if the host machine is capable of IPv6. ``-4`` and
``-6`` are mutually exclusive.
**-6**
Use IPv6 only even if the host machine is capable of IPv4. ``-4`` and
``-6``
This option tells ``named`` to use only IPv6, even if the host machine is capable of IPv4. ``-4`` and
``-6`` are mutually exclusive.
**-c** config-file
Use config-file as the configuration file instead of the default,
``/etc/named.conf``. To ensure that reloading the configuration file
continues to work after the server has changed its working directory
``-c config-file``
This option tells ``named`` to use ``config-file`` as its configuration file instead of the default,
``/etc/named.conf``. To ensure that the configuration file
can be reloaded after the server has changed its working directory
due to to a possible ``directory`` option in the configuration file,
config-file should be an absolute pathname.
``config-file`` should be an absolute pathname.
**-d** debug-level
Set the daemon's debug level to debug-level. Debugging traces from
``-d debug-level``
This option sets the daemon's debug level to ``debug-level``. Debugging traces from
``named`` become more verbose as the debug level increases.
**-D** string
Specifies a string that is used to identify a instance of ``named``
in a process listing. The contents of string are not examined.
``-D string``
This option specifies a string that is used to identify a instance of ``named``
in a process listing. The contents of ``string`` are not examined.
**-E** engine-name
When applicable, specifies the hardware to use for cryptographic
``-E engine-name``
When applicable, this option specifies the hardware to use for cryptographic
operations, such as a secure key store used for signing.
When BIND is built with OpenSSL PKCS#11 support, this defaults to the
string "pkcs11", which identifies an OpenSSL engine that can drive a
string ``pkcs11``, which identifies an OpenSSL engine that can drive a
cryptographic accelerator or hardware service module. When BIND is
built with native PKCS#11 cryptography (--enable-native-pkcs11), it
built with native PKCS#11 cryptography (``--enable-native-pkcs11``), it
defaults to the path of the PKCS#11 provider library specified via
"--with-pkcs11".
``--with-pkcs11``.
**-f**
Run the server in the foreground (i.e. do not daemonize).
``-f``
This option runs the server in the foreground (i.e., do not daemonize).
**-g**
Run the server in the foreground and force all logging to ``stderr``.
``-g``
This option runs the server in the foreground and forces all logging to ``stderr``.
**-L** logfile
Log to the file ``logfile`` by default instead of the system log.
``-L logfile``
This option sets the log to the file ``logfile`` by default, instead of the system log.
**-M** option
Sets the default memory context options. If set to external, this
causes the internal memory manager to be bypassed in favor of
system-provided memory allocation functions. If set to fill, blocks
of memory will be filled with tag values when allocated or freed, to
assist debugging of memory problems. (nofill disables this behavior,
``-M option``
This option sets the default memory context options. If set to ``external``,
the internal memory manager is bypassed in favor of
system-provided memory allocation functions. If set to ``fill``, blocks
of memory are filled with tag values when allocated or freed, to
assist debugging of memory problems. ``nofill`` disables this behavior,
and is the default unless ``named`` has been compiled with developer
options.)
options.
**-m** flag
Turn on memory usage debugging flags. Possible flags are usage,
trace, record, size, and mctx. These correspond to the
ISC_MEM_DEBUGXXXX flags described in ``<isc/mem.h>``.
``-m flag``
This option turns on memory usage debugging flags. Possible flags are ``usage``,
``trace``, ``record``, ``size``, and ``mctx``. These correspond to the
``ISC_MEM_DEBUGXXXX`` flags described in ``<isc/mem.h>``.
**-n** #cpus
Create #cpus worker threads to take advantage of multiple CPUs. If
not specified, ``named`` will try to determine the number of CPUs
present and create one thread per CPU. If it is unable to determine
the number of CPUs, a single worker thread will be created.
``-n #cpus``
This option creates ``#cpus`` worker threads to take advantage of multiple CPUs. If
not specified, ``named`` tries to determine the number of CPUs
present and creates one thread per CPU. If it is unable to determine
the number of CPUs, a single worker thread is created.
**-p** port
Listen for queries on port port. If not specified, the default is
``-p port``
This option listens for queries on ``port``. If not specified, the default is
port 53.
**-s**
Write memory usage statistics to ``stdout`` on exit.
``-s``
This option writes memory usage statistics to ``stdout`` on exit.
.. note::
This option is mainly of interest to BIND 9 developers and may be
removed or changed in a future release.
**-S** #max-socks
Allow ``named`` to use up to #max-socks sockets. The default value is
``-S #max-socks``
This option allows ``named`` to use up to ``#max-socks`` sockets. The default value is
21000 on systems built with default configuration options, and 4096
on systems built with "configure --with-tuning=small".
on systems built with ``configure --with-tuning=small``.
.. warning::
This option should be unnecessary for the vast majority of users.
The use of this option could even be harmful because the specified
The use of this option could even be harmful, because the specified
value may exceed the limitation of the underlying system API. It
is therefore set only when the default configuration causes
exhaustion of file descriptors and the operational environment is
known to support the specified number of sockets. Note also that
the actual maximum number is normally a little fewer than the
specified value because ``named`` reserves some file descriptors
the actual maximum number is normally slightly fewer than the
specified value, because ``named`` reserves some file descriptors
for its internal use.
**-t** directory
Chroot to directory after processing the command line arguments, but
``-t directory``
This option tells ``named`` to chroot to ``directory`` after processing the command-line arguments, but
before reading the configuration file.
.. warning::
This option should be used in conjunction with the ``-u`` option,
as chrooting a process running as root doesn't enhance security on
most systems; the way ``chroot(2)`` is defined allows a process
most systems; the way ``chroot`` is defined allows a process
with root privileges to escape a chroot jail.
**-U** #listeners
Use #listeners worker threads to listen for incoming UDP packets on
each address. If not specified, ``named`` will calculate a default
``-U #listeners``
This option tells ``named`` the number of ``#listeners`` worker threads to listen on, for incoming UDP packets on
each address. If not specified, ``named`` calculates a default
value based on the number of detected CPUs: 1 for 1 CPU, and the
number of detected CPUs minus one for machines with more than 1 CPU.
This cannot be increased to a value higher than the number of CPUs.
@@ -159,38 +159,38 @@ Options
higher. On Windows, the number of UDP listeners is hardwired to 1 and
this option has no effect.
**-u** user
Setuid to user after completing privileged operations, such as
``-u user``
This option sets the setuid to ``user`` after completing privileged operations, such as
creating sockets that listen on privileged ports.
.. note::
On Linux, ``named`` uses the kernel's capability mechanism to drop
all root privileges except the ability to ``bind(2)`` to a
all root privileges except the ability to ``bind`` to a
privileged port and set process resource limits. Unfortunately,
this means that the ``-u`` option only works when ``named`` is run
on kernel 2.2.18 or later, or kernel 2.3.99-pre3 or later, since
previous kernels did not allow privileges to be retained after
``setuid(2)``.
``setuid``.
**-v**
Report the version number and exit.
``-v``
This option reports the version number and exits.
**-V**
Report the version number and build options, and exit.
``-V``
This option reports the version number and build options, and exits.
**-X** lock-file
Acquire a lock on the specified file at runtime; this helps to
``-X lock-file``
This option acquires a lock on the specified file at runtime; this helps to
prevent duplicate ``named`` instances from running simultaneously.
Use of this option overrides the ``lock-file`` option in
``named.conf``. If set to ``none``, the lock file check is disabled.
**-x** cache-file
Load data from cache-file into the cache of the default view.
``-x cache-file``
This option loads data from ``cache-file`` into the cache of the default view.
.. warning::
This option must not be used. It is only of interest to BIND 9
This option must not be used in normal operations. It is only of interest to BIND 9
developers and may be removed or changed in a future release.
Signals
@@ -200,10 +200,10 @@ In routine operation, signals should not be used to control the
nameserver; ``rndc`` should be used instead.
SIGHUP
Force a reload of the server.
This signal forces a reload of the server.
SIGINT, SIGTERM
Shut down the server.
These signals shut down the server.
The result of sending any other signals to the server is undefined.
+91 -9
View File
@@ -59,6 +59,7 @@
#include <dns/dlz.h>
#include <dns/dns64.h>
#include <dns/dnsrps.h>
#include <dns/dnssec.h>
#include <dns/dyndb.h>
#include <dns/events.h>
#include <dns/fixedname.h>
@@ -66,6 +67,7 @@
#include <dns/geoip.h>
#include <dns/journal.h>
#include <dns/kasp.h>
#include <dns/keymgr.h>
#include <dns/keytable.h>
#include <dns/keyvalues.h>
#include <dns/lib.h>
@@ -6937,24 +6939,26 @@ struct dotat_arg {
*/
static isc_result_t
get_tat_qname(dns_name_t *target, dns_name_t *keyname, dns_keynode_t *keynode) {
dns_rdataset_t *dsset = NULL;
dns_rdataset_t dsset;
unsigned int i, n = 0;
uint16_t ids[12];
isc_textregion_t r;
char label[64];
int m;
if ((dsset = dns_keynode_dsset(keynode)) != NULL) {
dns_rdataset_init(&dsset);
if (dns_keynode_dsset(keynode, &dsset)) {
isc_result_t result;
for (result = dns_rdataset_first(dsset);
result == ISC_R_SUCCESS; result = dns_rdataset_next(dsset))
for (result = dns_rdataset_first(&dsset);
result == ISC_R_SUCCESS;
result = dns_rdataset_next(&dsset))
{
dns_rdata_t rdata = DNS_RDATA_INIT;
dns_rdata_ds_t ds;
dns_rdata_reset(&rdata);
dns_rdataset_current(dsset, &rdata);
dns_rdataset_current(&dsset, &rdata);
result = dns_rdata_tostruct(&rdata, &ds, NULL);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
if (n < (sizeof(ids) / sizeof(ids[0]))) {
@@ -6962,6 +6966,7 @@ get_tat_qname(dns_name_t *target, dns_name_t *keyname, dns_keynode_t *keynode) {
n++;
}
}
dns_rdataset_disassociate(&dsset);
}
if (n == 0) {
@@ -7264,10 +7269,10 @@ removed(dns_zone_t *zone, void *uap) {
switch (dns_zone_gettype(zone)) {
case dns_zone_master:
type = "master";
type = "primary";
break;
case dns_zone_slave:
type = "slave";
type = "secondary";
break;
case dns_zone_mirror:
type = "mirror";
@@ -14460,6 +14465,83 @@ cleanup:
return (result);
}
isc_result_t
named_server_dnssec(named_server_t *server, isc_lex_t *lex,
isc_buffer_t **text) {
isc_result_t result = ISC_R_SUCCESS;
dns_zone_t *zone = NULL;
dns_kasp_t *kasp = NULL;
dns_dnsseckeylist_t keys;
dns_dnsseckey_t *key;
const char *ptr;
/* variables for -status */
char output[4096];
isc_stdtime_t now;
isc_time_t timenow;
const char *dir;
/* Skip the command name. */
ptr = next_token(lex, text);
if (ptr == NULL) {
return (ISC_R_UNEXPECTEDEND);
}
/* Find out what we are to do. */
ptr = next_token(lex, text);
if (ptr == NULL) {
return (ISC_R_UNEXPECTEDEND);
}
if (strcasecmp(ptr, "-status") != 0) {
return (DNS_R_SYNTAX);
}
ISC_LIST_INIT(keys);
CHECK(zone_from_args(server, lex, NULL, &zone, NULL, text, false));
if (zone == NULL) {
CHECK(ISC_R_UNEXPECTEDEND);
}
kasp = dns_zone_getkasp(zone);
if (kasp == NULL) {
CHECK(putstr(text, "zone does not have dnssec-policy"));
CHECK(putnull(text));
goto cleanup;
}
/* -status */
TIME_NOW(&timenow);
now = isc_time_seconds(&timenow);
dir = dns_zone_getkeydirectory(zone);
LOCK(&kasp->lock);
result = dns_dnssec_findmatchingkeys(dns_zone_getorigin(zone), dir, now,
dns_zone_getmctx(zone), &keys);
UNLOCK(&kasp->lock);
if (result != ISC_R_SUCCESS && result != ISC_R_NOTFOUND) {
goto cleanup;
}
LOCK(&kasp->lock);
dns_keymgr_status(kasp, &keys, now, &output[0], sizeof(output));
UNLOCK(&kasp->lock);
CHECK(putstr(text, output));
CHECK(putnull(text));
cleanup:
while (!ISC_LIST_EMPTY(keys)) {
key = ISC_LIST_HEAD(keys);
ISC_LIST_UNLINK(keys, key, link);
dns_dnsseckey_destroy(dns_zone_getmctx(zone), &key);
}
if (zone != NULL) {
dns_zone_detach(&zone);
}
return (result);
}
static isc_result_t
putmem(isc_buffer_t **b, const char *str, size_t len) {
isc_result_t result;
@@ -14548,10 +14630,10 @@ named_server_zonestatus(named_server_t *server, isc_lex_t *lex,
switch (zonetype) {
case dns_zone_master:
type = "master";
type = "primary";
break;
case dns_zone_slave:
type = "slave";
type = "secondary";
break;
case dns_zone_mirror:
type = "mirror";
+1 -1
View File
@@ -73,7 +73,7 @@ named_os_tzset(void);
void
named_os_started(void);
char *
const char *
named_os_uname(void);
#endif /* NAMED_OS_H */
+7 -5
View File
@@ -903,8 +903,12 @@ named_os_tzset(void) {
#endif /* ifdef HAVE_TZSET */
}
static char unamebuf[BUFSIZ];
static char *unamep = NULL;
#ifdef HAVE_UNAME
static char unamebuf[sizeof(struct utsname)];
#else
static const char unamebuf[] = { "unknown architecture" };
#endif
static const char *unamep = NULL;
static void
getuname(void) {
@@ -919,13 +923,11 @@ getuname(void) {
snprintf(unamebuf, sizeof(unamebuf), "%s %s %s %s", uts.sysname,
uts.machine, uts.release, uts.version);
#else /* ifdef HAVE_UNAME */
snprintf(unamebuf, sizeof(unamebuf), "unknown architecture");
#endif /* ifdef HAVE_UNAME */
unamep = unamebuf;
}
char *
const char *
named_os_uname(void) {
if (unamep == NULL) {
getuname();
+1 -1
View File
@@ -70,7 +70,7 @@ named_os_tzset(void);
void
named_os_started(void);
char *
const char *
named_os_uname(void);
#endif /* NAMED_OS_H */
+2 -2
View File
@@ -393,7 +393,7 @@ named_os_started(void) {
}
static char unamebuf[BUFSIZ];
static char *unamep = NULL;
static const char *unamep = NULL;
static void
getuname(void) {
@@ -462,7 +462,7 @@ err:
* GetVersionEx() returns 6.2 (aka Windows 8.1) since it was obsoleted
* so we had to switch to the recommended way to get the Windows version.
*/
char *
const char *
named_os_uname(void) {
if (unamep == NULL) {
getuname();
+29 -18
View File
@@ -334,7 +334,7 @@ configure_zone_ssutable(const cfg_obj_t *zconfig, dns_zone_t *zone,
ISC_LOG_ERROR,
"'%.*s' is not a valid type",
(int)r.length, str);
isc_mem_put(mctx, types, n * sizeof(types));
isc_mem_put(mctx, types, n * sizeof(*types));
goto cleanup;
}
}
@@ -751,22 +751,27 @@ strtoargv(isc_mem_t *mctx, char *s, unsigned int *argcp, char ***argvp) {
static void
checknames(dns_zonetype_t ztype, const cfg_obj_t **maps,
const cfg_obj_t **objp) {
const char *zone = NULL;
isc_result_t result;
switch (ztype) {
case dns_zone_slave:
case dns_zone_mirror:
zone = "slave";
result = named_checknames_get(maps, "secondary", objp);
if (result != ISC_R_SUCCESS) {
result = named_checknames_get(maps, "slave", objp);
}
break;
case dns_zone_master:
zone = "master";
result = named_checknames_get(maps, "primary", objp);
if (result != ISC_R_SUCCESS) {
result = named_checknames_get(maps, "master", objp);
}
break;
default:
INSIST(0);
ISC_UNREACHABLE();
}
result = named_checknames_get(maps, zone, objp);
INSIST(result == ISC_R_SUCCESS && objp != NULL && *objp != NULL);
}
@@ -1231,8 +1236,8 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
/*
* Configure master functionality. This applies
* to primary masters (type "master") and slaves
* acting as masters (type "slave"), but not to stubs.
* to primary servers (type "primary") and secondaries
* acting as primaries (type "secondary"), but not to stubs.
*/
if (ztype != dns_zone_stub && ztype != dns_zone_staticstub &&
ztype != dns_zone_redirect)
@@ -1266,10 +1271,12 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
notifytype = dns_notifytype_no;
}
} else {
const char *notifystr = cfg_obj_asstring(obj);
if (strcasecmp(notifystr, "explicit") == 0) {
const char *str = cfg_obj_asstring(obj);
if (strcasecmp(str, "explicit") == 0) {
notifytype = dns_notifytype_explicit;
} else if (strcasecmp(notifystr, "master-only") == 0) {
} else if (strcasecmp(str, "master-only") == 0 ||
strcasecmp(str, "primary-only") == 0)
{
notifytype = dns_notifytype_masteronly;
} else {
INSIST(0);
@@ -1526,7 +1533,7 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
/*
* Configure update-related options. These apply to
* primary masters only.
* primary servers only.
*/
if (ztype == dns_zone_master) {
dns_acl_t *updateacl;
@@ -1861,17 +1868,21 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
case dns_zone_redirect:
count = 0;
obj = NULL;
(void)cfg_map_get(zoptions, "masters", &obj);
(void)cfg_map_get(zoptions, "primaries", &obj);
if (obj == NULL) {
(void)cfg_map_get(zoptions, "masters", &obj);
}
/*
* Use the built-in master server list if one was not
* Use the built-in primary server list if one was not
* explicitly specified and this is a root zone mirror.
*/
if (obj == NULL && ztype == dns_zone_mirror &&
dns_name_equal(dns_zone_getorigin(zone), dns_rootname))
{
result = named_config_getmastersdef(
named_g_config, DEFAULT_IANA_ROOT_ZONE_MASTERS,
&obj);
result = named_config_getprimariesdef(
named_g_config,
DEFAULT_IANA_ROOT_ZONE_PRIMARIES, &obj);
RETERR(result);
}
if (obj != NULL) {
@@ -1880,13 +1891,13 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
RETERR(named_config_getipandkeylist(config, obj, mctx,
&ipkl));
result = dns_zone_setmasterswithkeys(
result = dns_zone_setprimarieswithkeys(
mayberaw, ipkl.addrs, ipkl.keys, ipkl.count);
count = ipkl.count;
dns_ipkeylist_clear(mctx, &ipkl);
RETERR(result);
} else {
result = dns_zone_setmasters(mayberaw, NULL, 0);
result = dns_zone_setprimaries(mayberaw, NULL, 0);
}
RETERR(result);
+132 -132
View File
@@ -34,8 +34,8 @@ Synopsis
Description
~~~~~~~~~~~
``nsupdate`` is used to submit Dynamic DNS Update requests as defined in
:rfc:`2136` to a name server. This allows resource records to be added or
``nsupdate`` is used to submit Dynamic DNS Update requests, as defined in
:rfc:`2136`, to a name server. This allows resource records to be added or
removed from a zone without manually editing the zone file. A single
update request can contain requests to add or remove more than one
resource record.
@@ -45,23 +45,23 @@ should not be edited by hand. Manual edits could conflict with dynamic
updates and cause data to be lost.
The resource records that are dynamically added or removed with
``nsupdate`` have to be in the same zone. Requests are sent to the
zone's master server. This is identified by the MNAME field of the
``nsupdate`` must be in the same zone. Requests are sent to the
zone's primary server, which is identified by the MNAME field of the
zone's SOA record.
Transaction signatures can be used to authenticate the Dynamic DNS
updates. These use the TSIG resource record type described in :rfc:`2845`
or the SIG(0) record described in :rfc:`2535` and :rfc:`2931` or GSS-TSIG as
updates. These use the TSIG resource record type described in :rfc:`2845`,
the SIG(0) record described in :rfc:`2535` and :rfc:`2931`, or GSS-TSIG as
described in :rfc:`3645`.
TSIG relies on a shared secret that should only be known to ``nsupdate``
and the name server. For instance, suitable ``key`` and ``server``
statements would be added to ``/etc/named.conf`` so that the name server
statements are added to ``/etc/named.conf`` so that the name server
can associate the appropriate secret key and algorithm with the IP
address of the client application that will be using TSIG
authentication. You can use ``ddns-confgen`` to generate suitable
address of the client application that is using TSIG
authentication. ``ddns-confgen`` can generate suitable
configuration fragments. ``nsupdate`` uses the ``-y`` or ``-k`` options
to provide the TSIG shared secret. These options are mutually exclusive.
to provide the TSIG shared secret; these options are mutually exclusive.
SIG(0) uses public key cryptography. To use a SIG(0) key, the public key
must be stored in a KEY record in a zone served by the name server.
@@ -73,96 +73,96 @@ used by Windows 2000 can be switched on with the ``-o`` flag.
Options
~~~~~~~
**-4**
Use IPv4 only.
``-4``
This option sets use of IPv4 only.
**-6**
Use IPv6 only.
``-6``
This option sets use of IPv6 only.
**-d**
Debug mode. This provides tracing information about the update
``-d``
This option sets debug mode, which provides tracing information about the update
requests that are made and the replies received from the name server.
**-D**
Extra debug mode.
``-D``
This option sets extra debug mode.
**-i**
Force interactive mode, even when standard input is not a terminal.
``-i``
This option forces interactive mode, even when standard input is not a terminal.
**-k** keyfile
The file containing the TSIG authentication key. Keyfiles may be in
``-k keyfile``
This option indicates the file containing the TSIG authentication key. Keyfiles may be in
two formats: a single file containing a ``named.conf``-format ``key``
statement, which may be generated automatically by ``ddns-confgen``,
statement, which may be generated automatically by ``ddns-confgen``;
or a pair of files whose names are of the format
``K{name}.+157.+{random}.key`` and
``K{name}.+157.+{random}.private``, which can be generated by
``dnssec-keygen``. The ``-k`` may also be used to specify a SIG(0)
``dnssec-keygen``. The ``-k`` option can also be used to specify a SIG(0)
key used to authenticate Dynamic DNS update requests. In this case,
the key specified is not an HMAC-MD5 key.
**-l**
Local-host only mode. This sets the server address to localhost
``-l``
This option sets local-host only mode, which sets the server address to localhost
(disabling the ``server`` so that the server address cannot be
overridden). Connections to the local server will use a TSIG key
overridden). Connections to the local server use a TSIG key
found in ``/var/run/named/session.key``, which is automatically
generated by ``named`` if any local master zone has set
generated by ``named`` if any local ``primary`` zone has set
``update-policy`` to ``local``. The location of this key file can be
overridden with the ``-k`` option.
**-L** level
Set the logging debug level. If zero, logging is disabled.
``-L level``
This option sets the logging debug level. If zero, logging is disabled.
**-p** port
Set the port to use for connections to a name server. The default is
``-p port``
This option sets the port to use for connections to a name server. The default is
53.
**-P**
Print the list of private BIND-specific resource record types whose
``-P``
This option prints the list of private BIND-specific resource record types whose
format is understood by ``nsupdate``. See also the ``-T`` option.
**-r** udpretries
The number of UDP retries. The default is 3. If zero, only one update
request will be made.
``-r udpretries``
This option sets the number of UDP retries. The default is 3. If zero, only one update
request is made.
**-t** timeout
The maximum time an update request can take before it is aborted. The
default is 300 seconds. Zero can be used to disable the timeout.
``-t timeout``
This option sets the maximum time an update request can take before it is aborted. The
default is 300 seconds. If zero, the timeout is disabled.
**-T**
Print the list of IANA standard resource record types whose format is
understood by ``nsupdate``. ``nsupdate`` will exit after the lists
``-T``
This option prints the list of IANA standard resource record types whose format is
understood by ``nsupdate``. ``nsupdate`` exits after the lists
are printed. The ``-T`` option can be combined with the ``-P``
option.
Other types can be entered using "TYPEXXXXX" where "XXXXX" is the
Other types can be entered using ``TYPEXXXXX`` where ``XXXXX`` is the
decimal value of the type with no leading zeros. The rdata, if
present, will be parsed using the UNKNOWN rdata format, (<backslash>
present, is parsed using the UNKNOWN rdata format, (<backslash>
<hash> <space> <length> <space> <hexstring>).
**-u** udptimeout
The UDP retry interval. The default is 3 seconds. If zero, the
interval will be computed from the timeout interval and number of UDP
``-u udptimeout``
This option sets the UDP retry interval. The default is 3 seconds. If zero, the
interval is computed from the timeout interval and number of UDP
retries.
**-v**
Use TCP even for small update requests. By default, ``nsupdate`` uses
``-v``
This option specifies that TCP should be used even for small update requests. By default, ``nsupdate`` uses
UDP to send update requests to the name server unless they are too
large to fit in a UDP request in which case TCP will be used. TCP may
large to fit in a UDP request, in which case TCP is used. TCP may
be preferable when a batch of update requests is made.
**-V**
Print the version number and exit.
``-V``
This option prints the version number and exits.
**-y** [hmac:]keyname:secret
Literal TSIG authentication key. ``keyname`` is the name of the key,
``-y [hmac:]keyname:secret``
This option sets the literal TSIG authentication key. ``keyname`` is the name of the key,
and ``secret`` is the base64 encoded shared secret. ``hmac`` is the
name of the key algorithm; valid choices are ``hmac-md5``,
``hmac-sha1``, ``hmac-sha224``, ``hmac-sha256``, ``hmac-sha384``, or
``hmac-sha512``. If ``hmac`` is not specified, the default is
``hmac-md5`` or if MD5 was disabled ``hmac-sha256``.
``hmac-md5``, or if MD5 was disabled, ``hmac-sha256``.
NOTE: Use of the ``-y`` option is discouraged because the shared
secret is supplied as a command line argument in clear text. This may
secret is supplied as a command-line argument in clear text. This may
be visible in the output from ps1 or in a history file maintained by
the user's shell.
@@ -171,142 +171,142 @@ Input Format
``nsupdate`` reads input from ``filename`` or standard input. Each
command is supplied on exactly one line of input. Some commands are for
administrative purposes. The others are either update instructions or
administrative purposes; others are either update instructions or
prerequisite checks on the contents of the zone. These checks set
conditions that some name or set of resource records (RRset) either
exists or is absent from the zone. These conditions must be met if the
entire update request is to succeed. Updates will be rejected if the
entire update request is to succeed. Updates are rejected if the
tests for the prerequisite conditions fail.
Every update request consists of zero or more prerequisites and zero or
more updates. This allows a suitably authenticated update request to
proceed if some specified resource records are present or missing from
proceed if some specified resource records are either present or missing from
the zone. A blank input line (or the ``send`` command) causes the
accumulated commands to be sent as one Dynamic DNS update request to the
name server.
The command formats and their meaning are as follows:
The command formats and their meanings are as follows:
``server`` servername port
Sends all dynamic update requests to the name server ``servername``.
When no server statement is provided, ``nsupdate`` will send updates
to the master server of the correct zone. The MNAME field of that
zone's SOA record will identify the master server for that zone.
``server servername port``
This command sends all dynamic update requests to the name server ``servername``.
When no server statement is provided, ``nsupdate`` sends updates
to the primary server of the correct zone. The MNAME field of that
zone's SOA record identify the primary server for that zone.
``port`` is the port number on ``servername`` where the dynamic
update requests get sent. If no port number is specified, the default
update requests are sent. If no port number is specified, the default
DNS port number of 53 is used.
``local`` address port
Sends all dynamic update requests using the local ``address``. When
no local statement is provided, ``nsupdate`` will send updates using
an address and port chosen by the system. ``port`` can additionally
be used to make requests come from a specific port. If no port number
is specified, the system will assign one.
``local address port``
This command sends all dynamic update requests using the local ``address``. When
no local statement is provided, ``nsupdate`` sends updates using
an address and port chosen by the system. ``port`` can also
be used to force requests to come from a specific port. If no port number
is specified, the system assigns one.
``zone`` zonename
Specifies that all updates are to be made to the zone ``zonename``.
If no ``zone`` statement is provided, ``nsupdate`` will attempt
``zone zonename``
This command specifies that all updates are to be made to the zone ``zonename``.
If no ``zone`` statement is provided, ``nsupdate`` attempts to
determine the correct zone to update based on the rest of the input.
``class`` classname
Specify the default class. If no ``class`` is specified, the default
``class classname``
This command specifies the default class. If no ``class`` is specified, the default
class is ``IN``.
``ttl`` seconds
Specify the default time to live for records to be added. The value
``none`` will clear the default ttl.
``ttl seconds``
This command specifies the default time-to-live, in seconds, for records to be added. The value
``none`` clears the default TTL.
``key`` hmac:keyname secret
Specifies that all updates are to be TSIG-signed using the
``keyname`` ``secret`` pair. If ``hmac`` is specified, then it sets
the signing algorithm in use; the default is ``hmac-md5`` or if MD5
was disabled ``hmac-sha256``. The ``key`` command overrides any key
``key hmac:keyname secret``
This command specifies that all updates are to be TSIG-signed using the
``keyname``-``secret`` pair. If ``hmac`` is specified, it sets
the signing algorithm in use. The default is ``hmac-md5``; if MD5
was disabled, the default is ``hmac-sha256``. The ``key`` command overrides any key
specified on the command line via ``-y`` or ``-k``.
``gsstsig``
Use GSS-TSIG to sign the updated. This is equivalent to specifying
This command uses GSS-TSIG to sign the updates. This is equivalent to specifying
``-g`` on the command line.
``oldgsstsig``
Use the Windows 2000 version of GSS-TSIG to sign the updated. This is
This command uses the Windows 2000 version of GSS-TSIG to sign the updates. This is
equivalent to specifying ``-o`` on the command line.
``realm`` [realm_name]
When using GSS-TSIG use ``realm_name`` rather than the default realm
in ``krb5.conf``. If no realm is specified the saved realm is
``realm [realm_name]``
When using GSS-TSIG, this command specifies the use of ``realm_name`` rather than the default realm
in ``krb5.conf``. If no realm is specified, the saved realm is
cleared.
``check-names`` [yes_or_no]
Turn on or off check-names processing on records to be added.
``check-names [yes_or_no]``
This command turns on or off check-names processing on records to be added.
Check-names has no effect on prerequisites or records to be deleted.
By default check-names processing is on. If check-names processing
fails the record will not be added to the UPDATE message.
fails, the record is not added to the UPDATE message.
``prereq nxdomain`` domain-name
Requires that no resource record of any type exists with name
``prereq nxdomain domain-name``
This command requires that no resource record of any type exist with the name
``domain-name``.
``prereq yxdomain`` domain-name
Requires that ``domain-name`` exists (has as at least one resource
``prereq yxdomain domain-name``
This command requires that ``domain-name`` exist (as at least one resource
record, of any type).
``prereq nxrrset`` domain-name class type
Requires that no resource record exists of the specified ``type``,
``class`` and ``domain-name``. If ``class`` is omitted, IN (internet)
``prereq nxrrset domain-name class type``
This command requires that no resource record exist of the specified ``type``,
``class``, and ``domain-name``. If ``class`` is omitted, IN (Internet)
is assumed.
``prereq yxrrset`` domain-name class type
This requires that a resource record of the specified ``type``,
``class`` and ``domain-name`` must exist. If ``class`` is omitted, IN
``prereq yxrrset domain-name class type``
This command requires that a resource record of the specified ``type``,
``class`` and ``domain-name`` exist. If ``class`` is omitted, IN
(internet) is assumed.
``prereq yxrrset`` domain-name class type data
The ``data`` from each set of prerequisites of this form sharing a
``prereq yxrrset domain-name class type data``
With this command, the ``data`` from each set of prerequisites of this form sharing a
common ``type``, ``class``, and ``domain-name`` are combined to form
a set of RRs. This set of RRs must exactly match the set of RRs
existing in the zone at the given ``type``, ``class``, and
``domain-name``. The ``data`` are written in the standard text
representation of the resource record's RDATA.
``update delete`` domain-name ttl class type data
Deletes any resource records named ``domain-name``. If ``type`` and
``data`` is provided, only matching resource records will be removed.
The internet class is assumed if ``class`` is not supplied. The
``update delete domain-name ttl class type data``
This command deletes any resource records named ``domain-name``. If ``type`` and
``data`` are provided, only matching resource records are removed.
The Internet class is assumed if ``class`` is not supplied. The
``ttl`` is ignored, and is only allowed for compatibility.
``update add`` domain-name ttl class type data
Adds a new resource record with the specified ``ttl``, ``class`` and
``update add domain-name ttl class type data``
This command adds a new resource record with the specified ``ttl``, ``class``, and
``data``.
``show``
Displays the current message, containing all of the prerequisites and
This command displays the current message, containing all of the prerequisites and
updates specified since the last send.
``send``
Sends the current message. This is equivalent to entering a blank
This command sends the current message. This is equivalent to entering a blank
line.
``answer``
Displays the answer.
This command displays the answer.
``debug``
Turn on debugging.
This command turns on debugging.
``version``
Print version number.
This command prints the version number.
``help``
Print a list of commands.
This command prints a list of commands.
Lines beginning with a semicolon are comments and are ignored.
Lines beginning with a semicolon (;) are comments and are ignored.
Examples
~~~~~~~~
The examples below show how ``nsupdate`` could be used to insert and
The examples below show how ``nsupdate`` can be used to insert and
delete resource records from the ``example.com`` zone. Notice that the
input in each example contains a trailing blank line so that a group of
commands are sent as one dynamic update request to the master name
input in each example contains a trailing blank line, so that a group of
commands is sent as one dynamic update request to the primary name
server for ``example.com``.
::
@@ -316,9 +316,9 @@ server for ``example.com``.
> update add newhost.example.com 86400 A 172.16.1.1
> send
Any A records for ``oldhost.example.com`` are deleted. And an A record
Any A records for ``oldhost.example.com`` are deleted, and an A record
for ``newhost.example.com`` with IP address 172.16.1.1 is added. The
newly-added record has a 1 day TTL (86400 seconds).
newly added record has a TTL of 1 day (86400 seconds).
::
@@ -327,39 +327,39 @@ newly-added record has a 1 day TTL (86400 seconds).
> update add nickname.example.com 86400 CNAME somehost.example.com
> send
The prerequisite condition gets the name server to check that there are
The prerequisite condition tells the name server to verify that there are
no resource records of any type for ``nickname.example.com``. If there
are, the update request fails. If this name does not exist, a CNAME for
it is added. This ensures that when the CNAME is added, it cannot
conflict with the long-standing rule in :rfc:`1034` that a name must not
exist as any other record type if it exists as a CNAME. (The rule has
been updated for DNSSEC in :rfc:`2535` to allow CNAMEs to have RRSIG,
DNSKEY and NSEC records.)
DNSKEY, and NSEC records.)
Files
~~~~~
``/etc/resolv.conf``
used to identify default name server
Used to identify the default name server
``/var/run/named/session.key``
sets the default TSIG key for use in local-only mode
Sets the default TSIG key for use in local-only mode
``K{name}.+157.+{random}.key``
base-64 encoding of HMAC-MD5 key created by dnssec-keygen8.
Base-64 encoding of the HMAC-MD5 key created by ``dnssec-keygen``.
``K{name}.+157.+{random}.private``
base-64 encoding of HMAC-MD5 key created by dnssec-keygen8.
Base-64 encoding of the HMAC-MD5 key created by ``dnssec-keygen``.
See Also
~~~~~~~~
:rfc:`2136`, :rfc:`3007`, :rfc:`2104`, :rfc:`2845`, :rfc:`1034`, :rfc:`2535`, :rfc:`2931`,
:manpage:`named(8)`, :manpage:`ddns-confgen(8)`, :manpage:`dnssec-keygen(8)`.
:manpage:`named(8)`, :manpage:`dnssec-keygen(8)`, :manpage:`tsig-keygen(8)`.
Bugs
~~~~
The TSIG key is redundantly stored in two separate files. This is a
consequence of nsupdate using the DST library for its cryptographic
consequence of ``nsupdate`` using the DST library for its cryptographic
operations, and may change in future releases.
+17 -17
View File
@@ -37,32 +37,32 @@ Description
by their ``ID`` or ``label``.
Matching keys are displayed before being destroyed. By default, there is
a five second delay to allow the user to interrupt the process before
a five-second delay to allow the user to interrupt the process before
the destruction takes place.
Arguments
~~~~~~~~~
Options
~~~~~~~
**-m** module
Specify the PKCS#11 provider module. This must be the full path to a
``-m module``
This option specifies the PKCS#11 provider module. This must be the full path to a
shared library object implementing the PKCS#11 API for the device.
**-s** slot
Open the session with the given PKCS#11 slot. The default is slot 0.
``-s slot``
This option opens the session with the given PKCS#11 slot. The default is slot 0.
**-i** ID
Destroy keys with the given object ID.
``-i ID``
This option destroys keys with the given object ID.
**-l** label
Destroy keys with the given label.
``-l label``
This option destroys keys with the given label.
**-p** PIN
Specify the PIN for the device. If no PIN is provided on the command
line, ``pkcs11-destroy`` will prompt for it.
``-p PIN``
This option specifies the ``PIN`` for the device. If no ``PIN`` is provided on the command
line, ``pkcs11-destroy`` prompts for it.
**-w** seconds
Specify how long to pause before carrying out key destruction. The
default is five seconds. If set to ``0``, destruction will be
``-w seconds``
This option specifies how long, in seconds, to pause before carrying out key destruction. The
default is 5 seconds. If set to ``0``, destruction is
immediate.
See Also
+29 -29
View File
@@ -38,51 +38,51 @@ Description
with the given ``label`` (which must be unique) and with ``keysize``
bits of prime.
Arguments
~~~~~~~~~
Options
~~~~~~~
**-a** algorithm
Specify the key algorithm class: Supported classes are RSA, DSA, DH,
ECC and ECX. In addition to these strings, the ``algorithm`` can be
specified as a DNSSEC signing algorithm that will be used with this
``-a algorithm``
This option specifies the key algorithm class: supported classes are RSA, DSA, DH,
ECC, and ECX. In addition to these strings, the ``algorithm`` can be
specified as a DNSSEC signing algorithm to be used with this
key; for example, NSEC3RSASHA1 maps to RSA, ECDSAP256SHA256 maps to
ECC, and ED25519 to ECX. The default class is "RSA".
ECC, and ED25519 to ECX. The default class is ``RSA``.
**-b** keysize
Create the key pair with ``keysize`` bits of prime. For ECC keys, the
``-b keysize``
This option creates the key pair with ``keysize`` bits of prime. For ECC keys, the
only valid values are 256 and 384, and the default is 256. For ECX
keys, the only valid values are 256 and 456, and the default is 256.
**-e**
For RSA keys only, use a large exponent.
``-e``
For RSA keys only, this option specifies use of a large exponent.
**-i** id
Create key objects with id. The id is either an unsigned short 2 byte
or an unsigned long 4 byte number.
``-i id``
This option creates key objects with ``id``. The ID is either an unsigned short 2-byte
or an unsigned long 4-byte number.
**-m** module
Specify the PKCS#11 provider module. This must be the full path to a
``-m module``
This option specifies the PKCS#11 provider module. This must be the full path to a
shared library object implementing the PKCS#11 API for the device.
**-P**
Set the new private key to be non-sensitive and extractable. The
``-P``
This option sets the new private key to be non-sensitive and extractable, and
allows the private key data to be read from the PKCS#11 device. The
default is for private keys to be sensitive and non-extractable.
**-p** PIN
Specify the PIN for the device. If no PIN is provided on the command
line, ``pkcs11-keygen`` will prompt for it.
``-p PIN``
This option specifies the ``PIN`` for the device. If no ``PIN`` is provided on the command
line, ``pkcs11-keygen`` prompts for it.
**-q**
Quiet mode: suppress unnecessary output.
``-q``
This option sets quiet mode, which suppresses unnecessary output.
**-S**
For Diffie-Hellman (DH) keys only, use a special prime of 768, 1024
or 1536 bit size and base (aka generator) 2. If not specified, bit
size will default to 1024.
``-S``
For Diffie-Hellman (DH) keys only, this option specifies use of a special prime of 768-, 1024-,
or 1536-bit size and base (AKA generator) 2. If not specified, bit
size defaults to 1024.
**-s** slot
Open the session with the given PKCS#11 slot. The default is slot 0.
``-s slot``
This option opens the session with the given PKCS#11 slot. The default is slot 0.
See Also
~~~~~~~~
+17 -17
View File
@@ -31,34 +31,34 @@ pkcs11-list - list PKCS#11 objects
Description
~~~~~~~~~~~
``pkcs11-list`` lists the PKCS#11 objects with ``ID`` or ``label`` or by
default all objects. The object class, label, and ID are displayed for
``pkcs11-list`` lists the PKCS#11 objects with ``ID`` or ``label`` or, by
default, all objects. The object class, label, and ID are displayed for
all keys. For private or secret keys, the extractability attribute is
also displayed, as either ``true``, ``false``, or ``never``.
Arguments
~~~~~~~~~
Options
~~~~~~~
**-P**
List only the public objects. (Note that on some PKCS#11 devices, all
``-P``
This option lists only the public objects. (Note that on some PKCS#11 devices, all
objects are private.)
**-m** module
Specify the PKCS#11 provider module. This must be the full path to a
``-m module``
This option specifies the PKCS#11 provider module. This must be the full path to a
shared library object implementing the PKCS#11 API for the device.
**-s** slot
Open the session with the given PKCS#11 slot. The default is slot 0.
``-s slot``
This option opens the session with the given PKCS#11 slot. The default is slot 0.
**-i** ID
List only key objects with the given object ID.
``-i ID``
This option lists only key objects with the given object ID.
**-l** label
List only key objects with the given label.
``-l label``
This option lists only key objects with the given label.
**-p** PIN
Specify the PIN for the device. If no PIN is provided on the command
line, ``pkcs11-list`` will prompt for it.
``-p PIN``
This option specifies the ``PIN`` for the device. If no ``PIN`` is provided on the command
line, ``pkcs11-list`` prompts for it.
See Also
~~~~~~~~
+6 -6
View File
@@ -37,15 +37,15 @@ Description
``pkcs11-tokens`` lists the PKCS#11 available tokens with defaults from
the slot/token scan performed at application initialization.
Arguments
~~~~~~~~~
Options
~~~~~~~
**-m** module
Specify the PKCS#11 provider module. This must be the full path to a
``-m module``
This option specifies the PKCS#11 provider module. This must be the full path to a
shared library object implementing the PKCS#11 API for the device.
**-v**
Make the PKCS#11 libisc initialization verbose.
``-v``
This option makes the PKCS#11 libisc initialization verbose.
See Also
~~~~~~~~
+11 -11
View File
@@ -40,7 +40,7 @@ Description
Until BIND 9.12, this feature was implemented natively in ``named`` and
enabled with the ``filter-aaaa`` ACL and the ``filter-aaaa-on-v4`` and
``filter-aaaa-on-v6`` options. These options are now deprecated in
``named.conf``, but can be passed as parameters to the
``named.conf`` but can be passed as parameters to the
``filter-aaaa.so`` plugin, for example:
::
@@ -60,22 +60,22 @@ necessary.
Note: This mechanism can erroneously cause other servers not to give
AAAA records to their clients. If a recursing server with both IPv6 and
IPv4 network connections queries an authoritative server using this
mechanism via IPv4, it will be denied AAAA records even if its client is
mechanism via IPv4, it is denied AAAA records even if its client is
using IPv6.
Options
~~~~~~~
``filter-aaaa``
Specifies a list of client addresses for which AAAA filtering is to
This option specifies a list of client addresses for which AAAA filtering is to
be applied. The default is ``any``.
``filter-aaaa-on-v4``
If set to ``yes``, the DNS client is at an IPv4 address, in
``filter-aaaa``, and if the response does not include DNSSEC
If set to ``yes``, this option indicates that the DNS client is at an IPv4 address, in
``filter-aaaa``. If the response does not include DNSSEC
signatures, then all AAAA records are deleted from the response. This
filtering applies to all responses and not only authoritative
responses.
filtering applies to all responses, not only authoritative
ones.
If set to ``break-dnssec``, then AAAA records are deleted even when
DNSSEC is enabled. As suggested by the name, this causes the response
@@ -83,13 +83,13 @@ Options
deletions.
This mechanism can erroneously cause other servers not to give AAAA
records to their clients. A recursing server with both IPv6 and IPv4
network connections that queries an authoritative server using this
mechanism via IPv4 will be denied AAAA records even if its client is
records to their clients. If a recursing server with both IPv6 and IPv4
network connections queries an authoritative server using this
mechanism via IPv4, it is denied AAAA records even if its client is
using IPv6.
``filter-aaaa-on-v6``
Identical to ``filter-aaaa-on-v4``, except it filters AAAA responses
This option is identical to ``filter-aaaa-on-v4``, except that it filters AAAA responses
to queries from IPv6 clients instead of IPv4 clients. To filter all
responses, set both options to ``yes``.
+3
View File
@@ -105,6 +105,9 @@ command is one of the following:\n\
Add zone to given view. Requires allow-new-zones option.\n\
delzone [-clean] zone [class [view]]\n\
Removes zone from given view.\n\
dnssec -status zone [class [view]]\n\
Show the DNSSEC signing state for the specified zone.\n\
Requires the zone to have a dnssec-policy.\n\
dnstap -reopen\n\
Close, truncate and re-open the DNSTAP output file.\n\
dnstap -roll count\n\
+21 -20
View File
@@ -24,6 +24,7 @@
.. _man_rndc.conf:
rndc.conf - rndc configuration file
-----------------------------------
Synopsis
~~~~~~~~
@@ -46,39 +47,39 @@ C++ style: // to end of line
Unix style: # to end of line
``rndc.conf`` is much simpler than ``named.conf``. The file uses three
statements: an options statement, a server statement and a key
statements: an options statement, a server statement, and a key
statement.
The ``options`` statement contains five clauses. The ``default-server``
clause is followed by the name or address of a name server. This host
will be used when no name server is given as an argument to ``rndc``.
The ``default-key`` clause is followed by the name of a key which is
is used when no name server is given as an argument to ``rndc``.
The ``default-key`` clause is followed by the name of a key, which is
identified by a ``key`` statement. If no ``keyid`` is provided on the
rndc command line, and no ``key`` clause is found in a matching
``server`` statement, this default key will be used to authenticate the
``server`` statement, this default key is used to authenticate the
server's commands and responses. The ``default-port`` clause is followed
by the port to connect to on the remote name server. If no ``port``
option is provided on the rndc command line, and no ``port`` clause is
found in a matching ``server`` statement, this default port will be used
found in a matching ``server`` statement, this default port is used
to connect. The ``default-source-address`` and
``default-source-address-v6`` clauses which can be used to set the IPv4
``default-source-address-v6`` clauses can be used to set the IPv4
and IPv6 source addresses respectively.
After the ``server`` keyword, the server statement includes a string
which is the hostname or address for a name server. The statement has
three possible clauses: ``key``, ``port`` and ``addresses``. The key
three possible clauses: ``key``, ``port``, and ``addresses``. The key
name must match the name of a key statement in the file. The port number
specifies the port to connect to. If an ``addresses`` clause is supplied
these addresses will be used instead of the server name. Each address
specifies the port to connect to. If an ``addresses`` clause is supplied,
these addresses are used instead of the server name. Each address
can take an optional port. If an ``source-address`` or
``source-address-v6`` of supplied then these will be used to specify the
IPv4 and IPv6 source addresses respectively.
``source-address-v6`` is supplied, it is used to specify the
IPv4 and IPv6 source address, respectively.
The ``key`` statement begins with an identifying string, the name of the
key. The statement has two clauses. ``algorithm`` identifies the
authentication algorithm for ``rndc`` to use; currently only HMAC-MD5
(for compatibility), HMAC-SHA1, HMAC-SHA224, HMAC-SHA256 (default),
HMAC-SHA384 and HMAC-SHA512 are supported. This is followed by a secret
HMAC-SHA384, and HMAC-SHA512 are supported. This is followed by a secret
clause which contains the base-64 encoding of the algorithm's
authentication key. The base-64 string is enclosed in double quotes.
@@ -86,7 +87,7 @@ There are two common ways to generate the base-64 string for the secret.
The BIND 9 program ``rndc-confgen`` can be used to generate a random
key, or the ``mmencode`` program, also known as ``mimencode``, can be
used to generate a base-64 string from known input. ``mmencode`` does
not ship with BIND 9 but is available on many systems. See the EXAMPLE
not ship with BIND 9 but is available on many systems. See the Example
section for sample command lines for each.
Example
@@ -127,23 +128,23 @@ Example
};
In the above example, ``rndc`` will by default use the server at
localhost (127.0.0.1) and the key called samplekey. Commands to the
localhost server will use the samplekey key, which must also be defined
In the above example, ``rndc`` by default uses the server at
localhost (127.0.0.1) and the key called "samplekey". Commands to the
localhost server use the "samplekey" key, which must also be defined
in the server's configuration file with the same name and secret. The
key statement indicates that samplekey uses the HMAC-SHA256 algorithm
key statement indicates that "samplekey" uses the HMAC-SHA256 algorithm
and its secret clause contains the base-64 encoding of the HMAC-SHA256
secret enclosed in double quotes.
If ``rndc -s testserver`` is used then ``rndc`` will connect to server
on localhost port 5353 using the key testkey.
If ``rndc -s testserver`` is used, then ``rndc`` connects to the server
on localhost port 5353 using the key "testkey".
To generate a random secret with ``rndc-confgen``:
``rndc-confgen``
A complete ``rndc.conf`` file, including the randomly generated key,
will be written to the standard output. Commented-out ``key`` and
is written to the standard output. Commented-out ``key`` and
``controls`` statements for ``named.conf`` are also printed.
To generate a base-64 secret with ``mmencode``:
+182 -179
View File
@@ -34,8 +34,8 @@ Synopsis
Description
~~~~~~~~~~~
``rndc`` controls the operation of a name server. It supersedes the
``ndc`` utility that was provided in old BIND releases. If ``rndc`` is
``rndc`` controls the operation of a name server; it supersedes the
``ndc`` utility. If ``rndc`` is
invoked with no command line options or arguments, it prints a short
summary of the supported commands and the available options and their
arguments.
@@ -44,8 +44,8 @@ arguments.
sending commands authenticated with digital signatures. In the current
versions of ``rndc`` and ``named``, the only supported authentication
algorithms are HMAC-MD5 (for compatibility), HMAC-SHA1, HMAC-SHA224,
HMAC-SHA256 (default), HMAC-SHA384 and HMAC-SHA512. They use a shared
secret on each end of the connection. This provides TSIG-style
HMAC-SHA256 (default), HMAC-SHA384, and HMAC-SHA512. They use a shared
secret on each end of the connection, which provides TSIG-style
authentication for the command request and the name server's response.
All commands sent over the channel must be signed by a key_id known to
the server.
@@ -56,59 +56,58 @@ server and decide what algorithm and key it should use.
Options
~~~~~~~
**-4**
Use IPv4 only.
``-4``
This option indicates use of IPv4 only.
**-6**
Use IPv6 only.
``-6``
This option indicates use of IPv6 only.
**-b** source-address
Use source-address as the source address for the connection to the
server. Multiple instances are permitted to allow setting of both the
``-b source-address``
This option indicates ``source-address`` as the source address for the connection to the
server. Multiple instances are permitted, to allow setting of both the
IPv4 and IPv6 source addresses.
**-c** config-file
Use config-file as the configuration file instead of the default,
``-c config-file``
This option indicates ``config-file`` as the configuration file instead of the default,
``/etc/rndc.conf``.
**-k** key-file
Use key-file as the key file instead of the default,
``/etc/rndc.key``. The key in ``/etc/rndc.key`` will be used to
``-k key-file``
This option indicates ``key-file`` as the key file instead of the default,
``/etc/rndc.key``. The key in ``/etc/rndc.key`` is used to
authenticate commands sent to the server if the config-file does not
exist.
**-s** server
server is the name or address of the server which matches a server
``-s server``
``server`` is the name or address of the server which matches a server
statement in the configuration file for ``rndc``. If no server is
supplied on the command line, the host named by the default-server
clause in the options statement of the ``rndc`` configuration file
will be used.
is used.
**-p** port
Send commands to TCP port port instead of BIND 9's default control
``-p port``
This option instructs BIND 9 to send commands to TCP port ``port`` instead of its default control
channel port, 953.
**-q**
Quiet mode: Message text returned by the server will not be printed
except when there is an error.
``-q``
This option sets quiet mode, where message text returned by the server is not printed
unless there is an error.
**-r**
Instructs ``rndc`` to print the result code returned by ``named``
``-r``
This option instructs ``rndc`` to print the result code returned by ``named``
after executing the requested command (e.g., ISC_R_SUCCESS,
ISC_R_FAILURE, etc).
ISC_R_FAILURE, etc.).
**-V**
Enable verbose logging.
``-V``
This option enables verbose logging.
**-y** key_id
Use the key key_id from the configuration file. key_id must be known
by ``named`` with the same algorithm and secret string in order for
control message validation to succeed. If no key_id is specified,
``rndc`` will first look for a key clause in the server statement of
``-y key_id``
This option indicates use of the key ``key_id`` from the configuration file. For control message validation to succeed, ``key_id`` must be known
by ``named`` with the same algorithm and secret string. If no ``key_id`` is specified,
``rndc`` first looks for a key clause in the server statement of
the server being used, or if no server statement is present for that
host, then the default-key clause of the options statement. Note that
host, then in the default-key clause of the options statement. Note that
the configuration file contains shared secrets which are used to send
authenticated control commands to name servers. It should therefore
authenticated control commands to name servers, and should therefore
not have general read or write access.
Commands
@@ -120,121 +119,125 @@ without arguments.
Currently supported commands are:
``addzone`` *zone* [*class* [*view*]] *configuration*
Add a zone while the server is running. This command requires the
This command adds a zone while the server is running. This command requires the
``allow-new-zones`` option to be set to ``yes``. The configuration
string specified on the command line is the zone configuration text
that would ordinarily be placed in :manpage:`named.conf(5)`.
that would ordinarily be placed in ``named.conf``.
The configuration is saved in a file called ``viewname.nzf`` (or, if
:manpage:`named(8)` is compiled with liblmdb, an LMDB database file called
``viewname.nzd``). viewname is the name of the view, unless the view
``named`` is compiled with liblmdb, an LMDB database file called
``viewname.nzd``). ``viewname`` is the name of the view, unless the view
name contains characters that are incompatible with use as a file
name, in which case a cryptographic hash of the view name is used
instead. When :manpage:`named(8)` is restarted, the file will be loaded into
the view configuration, so that zones that were added can persist
instead. When ``named`` is restarted, the file is loaded into
the view configuration so that zones that were added can persist
after a restart.
This sample ``addzone`` command would add the zone ``example.com`` to
This sample ``addzone`` command adds the zone ``example.com`` to
the default view:
``$``\ ``rndc addzone example.com '{ type master; file "example.com.db"; };'``
``$ \ rndc addzone example.com '{ type master; file "example.com.db"; };'``
(Note the brackets and semi-colon around the zone configuration
(Note the brackets around and semi-colon after the zone configuration
text.)
See also ``rndc delzone`` and ``rndc modzone``.
``delzone`` [**-clean**] *zone* [*class* [*view*]]
Delete a zone while the server is running.
This command deletes a zone while the server is running.
If the ``-clean`` argument is specified, the zone's master file (and
journal file, if any) will be deleted along with the zone. Without
the ``-clean`` option, zone files must be cleaned up by hand. (If the
zone is of type "slave" or "stub", the files needing to be cleaned up
will be reported in the output of the ``rndc delzone`` command.)
journal file, if any) are deleted along with the zone. Without
the ``-clean`` option, zone files must be deleted manually. (If the
zone is of type ``secondary`` or ``stub``, the files needing to be removed
are reported in the output of the ``rndc delzone`` command.)
If the zone was originally added via ``rndc addzone``, then it will
be removed permanently. However, if it was originally configured in
``named.conf``, then that original configuration is still in place;
when the server is restarted or reconfigured, the zone will come
back. To remove it permanently, it must also be removed from
``named.conf``
If the zone was originally added via ``rndc addzone``, then it is
removed permanently. However, if it was originally configured in
``named.conf``, then that original configuration remains in place;
when the server is restarted or reconfigured, the zone is
recreated. To remove it permanently, it must also be removed from
``named.conf``.
See also ``rndc addzone`` and ``rndc modzone``.
``dnssec`` [**-status** *zone* [*class* [*view*]]
Show the DNSSEC signing state for the specified zone. Requires the
zone to have a "dnssec-policy".
``dnstap`` ( **-reopen** | **-roll** [*number*] )
Close and re-open DNSTAP output files. ``rndc dnstap -reopen`` allows
the output file to be renamed externally, so that :manpage:`named(8)` can
This command closes and re-opens DNSTAP output files. ``rndc dnstap -reopen`` allows
the output file to be renamed externally, so that ``named`` can
truncate and re-open it. ``rndc dnstap -roll`` causes the output file
to be rolled automatically, similar to log files; the most recent
to be rolled automatically, similar to log files. The most recent
output file has ".0" appended to its name; the previous most recent
output file is moved to ".1", and so on. If number is specified, then
output file is moved to ".1", and so on. If ``number`` is specified, then
the number of backup log files is limited to that number.
``dumpdb`` [**-all** | **-cache** | **-zones** | **-adb** | **-bad** | **-fail**] [*view ...*]
Dump the server's caches (default) and/or zones to the dump file for
This command dumps the server's caches (default) and/or zones to the dump file for
the specified views. If no view is specified, all views are dumped.
(See the ``dump-file`` option in the BIND 9 Administrator Reference
Manual.)
``flush``
Flushes the server's cache.
This command flushes the server's cache.
``flushname`` *name* [*view*]
Flushes the given name from the view's DNS cache and, if applicable,
from the view's nameserver address database, bad server cache and
This command flushes the given name from the view's DNS cache and, if applicable,
from the view's nameserver address database, bad server cache, and
SERVFAIL cache.
``flushtree`` *name* [*view*]
Flushes the given name, and all of its subdomains, from the view's
This command flushes the given name, and all of its subdomains, from the view's
DNS cache, address database, bad server cache, and SERVFAIL cache.
``freeze`` [*zone* [*class* [*view*]]]
Suspend updates to a dynamic zone. If no zone is specified, then all
This command suspends updates to a dynamic zone. If no zone is specified, then all
zones are suspended. This allows manual edits to be made to a zone
normally updated by dynamic update. It also causes changes in the
normally updated by dynamic update, and causes changes in the
journal file to be synced into the master file. All dynamic update
attempts will be refused while the zone is frozen.
attempts are refused while the zone is frozen.
See also ``rndc thaw``.
``halt`` [**-p**]
Stop the server immediately. Recent changes made through dynamic
update or IXFR are not saved to the master files, but will be rolled
This command stops the server immediately. Recent changes made through dynamic
update or IXFR are not saved to the master files, but are rolled
forward from the journal files when the server is restarted. If
``-p`` is specified :manpage:`named(8)`'s process id is returned. This allows
an external process to determine when :manpage:`named(8)` had completed
``-p`` is specified, ``named``'s process ID is returned. This allows
an external process to determine when ``named`` has completed
halting.
See also ``rndc stop``.
``loadkeys`` [*zone* [*class* [*view*]]]
Fetch all DNSSEC keys for the given zone from the key directory. If
they are within their publication period, merge them into the
This command fetches all DNSSEC keys for the given zone from the key directory. If
they are within their publication period, they are merged into the
zone's DNSKEY RRset. Unlike ``rndc sign``, however, the zone is not
immediately re-signed by the new keys, but is allowed to
incrementally re-sign over time.
This command requires that zone is configured with a ``dnssec-policy``, or
the ``auto-dnssec`` zone option be set to ``maintain``, and also requires the
This command requires that the zone be configured with a ``dnssec-policy``, or
that the ``auto-dnssec`` zone option be set to ``maintain``, and also requires the
zone to be configured to allow dynamic DNS. (See "Dynamic Update Policies" in
the Administrator Reference Manual for more details.)
``managed-keys`` (*status* | *refresh* | *sync* | *destroy*) [*class* [*view*]]
Inspect and control the "managed-keys" database which handles
This command inspects and controls the "managed-keys" database which handles
:rfc:`5011` DNSSEC trust anchor maintenance. If a view is specified, these
commands are applied to that view; otherwise they are applied to all
commands are applied to that view; otherwise, they are applied to all
views.
- When run with the ``status`` keyword, prints the current status of
- When run with the ``status`` keyword, this prints the current status of
the managed-keys database.
- When run with the ``refresh`` keyword, forces an immediate refresh
- When run with the ``refresh`` keyword, this forces an immediate refresh
query to be sent for all the managed keys, updating the
managed-keys database if any new keys are found, without waiting
the normal refresh interval.
- When run with the ``sync`` keyword, forces an immediate dump of
- When run with the ``sync`` keyword, this forces an immediate dump of
the managed-keys database to disk (in the file
``managed-keys.bind`` or (``viewname.mkeys``). This synchronizes
the database with its journal file, so that the database's current
@@ -246,12 +249,12 @@ Currently supported commands are:
Existing keys that are already trusted are not deleted from
memory; DNSSEC validation can continue after this command is used.
However, key maintenance operations will cease until :manpage:`named(8)` is
restarted or reconfigured, and all existing key maintenance state
will be deleted.
However, key maintenance operations cease until ``named`` is
restarted or reconfigured, and all existing key maintenance states
are deleted.
Running ``rndc reconfig`` or restarting :manpage:`named(8)` immediately
after this command will cause key maintenance to be reinitialized
Running ``rndc reconfig`` or restarting ``named`` immediately
after this command causes key maintenance to be reinitialized
from scratch, just as if the server were being started for the
first time. This is primarily intended for testing, but it may
also be used, for example, to jumpstart the acquisition of new
@@ -259,33 +262,33 @@ Currently supported commands are:
repair for key maintenance problems.
``modzone`` *zone* [*class* [*view*]] *configuration*
Modify the configuration of a zone while the server is running. This
This command modifies the configuration of a zone while the server is running. This
command requires the ``allow-new-zones`` option to be set to ``yes``.
As with ``addzone``, the configuration string specified on the
command line is the zone configuration text that would ordinarily be
placed in ``named.conf``.
If the zone was originally added via ``rndc addzone``, the
configuration changes will be recorded permanently and will still be
configuration changes are recorded permanently and are still
in effect after the server is restarted or reconfigured. However, if
it was originally configured in ``named.conf``, then that original
configuration is still in place; when the server is restarted or
reconfigured, the zone will revert to its original configuration. To
configuration remains in place; when the server is restarted or
reconfigured, the zone reverts to its original configuration. To
make the changes permanent, it must also be modified in
``named.conf``
``named.conf``.
See also ``rndc addzone`` and ``rndc delzone``.
``notify`` *zone* [*class* [*view*]]
Resend NOTIFY messages for the zone.
This command resends NOTIFY messages for the zone.
``notrace``
Sets the server's debugging level to 0.
This command sets the server's debugging level to 0.
See also ``rndc trace``.
``nta`` [( **-class** *class* | **-dump** | **-force** | **-remove** | **-lifetime** *duration*)] *domain* [*view*]
Sets a DNSSEC negative trust anchor (NTA) for ``domain``, with a
This command sets a DNSSEC negative trust anchor (NTA) for ``domain``, with a
lifetime of ``duration``. The default lifetime is configured in
``named.conf`` via the ``nta-lifetime`` option, and defaults to one
hour. The lifetime cannot exceed one week.
@@ -293,15 +296,15 @@ Currently supported commands are:
A negative trust anchor selectively disables DNSSEC validation for
zones that are known to be failing because of misconfiguration rather
than an attack. When data to be validated is at or below an active
NTA (and above any other configured trust anchors), :manpage:`named(8)` will
abort the DNSSEC validation process and treat the data as insecure
rather than bogus. This continues until the NTA's lifetime is
NTA (and above any other configured trust anchors), ``named``
aborts the DNSSEC validation process and treats the data as insecure
rather than bogus. This continues until the NTA's lifetime has
elapsed.
NTAs persist across restarts of the :manpage:`named(8)` server. The NTAs for a
view are saved in a file called ``name.nta``, where name is the name
of the view, or if it contains characters that are incompatible with
use as a file name, a cryptographic hash generated from the name of
NTAs persist across restarts of the ``named`` server. The NTAs for a
view are saved in a file called ``name.nta``, where ``name`` is the name
of the view; if it contains characters that are incompatible with
use as a file name, a cryptographic hash is generated from the name of
the view.
An existing NTA can be removed by using the ``-remove`` option.
@@ -309,18 +312,18 @@ Currently supported commands are:
An NTA's lifetime can be specified with the ``-lifetime`` option.
TTL-style suffixes can be used to specify the lifetime in seconds,
minutes, or hours. If the specified NTA already exists, its lifetime
will be updated to the new value. Setting ``lifetime`` to zero is
is updated to the new value. Setting ``lifetime`` to zero is
equivalent to ``-remove``.
If the ``-dump`` is used, any other arguments are ignored, and a list
of existing NTAs is printed (note that this may include NTAs that are
expired but have not yet been cleaned up).
If ``-dump`` is used, any other arguments are ignored and a list
of existing NTAs is printed. Note that this may include NTAs that are
expired but have not yet been cleaned up.
Normally, :manpage:`named(8)` will periodically test to see whether data below
Normally, ``named`` periodically tests to see whether data below
an NTA can now be validated (see the ``nta-recheck`` option in the
Administrator Reference Manual for details). If data can be
validated, then the NTA is regarded as no longer necessary, and will
be allowed to expire early. The ``-force`` overrides this behavior
validated, then the NTA is regarded as no longer necessary and is
allowed to expire early. The ``-force`` parameter overrides this behavior
and forces an NTA to persist for its entire lifetime, regardless of
whether data could be validated if the NTA were not present.
@@ -331,65 +334,65 @@ Currently supported commands are:
All of these options can be shortened, i.e., to ``-l``, ``-r``,
``-d``, ``-f``, and ``-c``.
Unrecognized options are treated as errors. To reference a domain or
view name that begins with a hyphen, use a double-hyphen on the
Unrecognized options are treated as errors. To refer to a domain or
view name that begins with a hyphen, use a double-hyphen (--) on the
command line to indicate the end of options.
``querylog`` [(*on* | *off*)]
Enable or disable query logging. (For backward compatibility, this
This command enables or disables query logging. For backward compatibility, this
command can also be used without an argument to toggle query logging
on and off.)
on and off.
Query logging can also be enabled by explicitly directing the
``queries`` ``category`` to a ``channel`` in the ``logging`` section
of ``named.conf`` or by specifying ``querylog yes;`` in the
of ``named.conf``, or by specifying ``querylog yes;`` in the
``options`` section of ``named.conf``.
``reconfig``
Reload the configuration file and load new zones, but do not reload
This command reloads the configuration file and loads new zones, but does not reload
existing zone files even if they have changed. This is faster than a
full ``reload`` when there is a large number of zones because it
avoids the need to examine the modification times of the zones files.
full ``reload`` when there is a large number of zones, because it
avoids the need to examine the modification times of the zone files.
``recursing``
Dump the list of queries :manpage:`named(8)` is currently recursing on, and the
This command dumps the list of queries ``named`` is currently recursing on, and the
list of domains to which iterative queries are currently being sent.
(The second list includes the number of fetches currently active for
The second list includes the number of fetches currently active for
the given domain, and how many have been passed or dropped because of
the ``fetches-per-zone`` option.)
the ``fetches-per-zone`` option.
``refresh`` *zone* [*class* [*view*]]
Schedule zone maintenance for the given zone.
This command schedules zone maintenance for the given zone.
``reload``
Reload configuration file and zones.
This command reloads the configuration file and zones.
``reload`` *zone* [*class* [*view*]]
Reload the given zone.
This command reloads the given zone.
``retransfer`` *zone* [*class* [*view*]]
Retransfer the given slave zone from the master server.
This command retransfers the given secondary zone from the primary server.
If the zone is configured to use ``inline-signing``, the signed
version of the zone is discarded; after the retransfer of the
unsigned version is complete, the signed version will be regenerated
with all new signatures.
unsigned version is complete, the signed version is regenerated
with new signatures.
``scan``
Scan the list of available network interfaces for changes, without
This command scans the list of available network interfaces for changes, without
performing a full ``reconfig`` or waiting for the
``interface-interval`` timer.
``secroots`` [**-**] [*view* ...]
Dump the security roots (i.e., trust anchors configured via
This command dumps the security roots (i.e., trust anchors configured via
``trust-anchors``, or the ``managed-keys`` or ``trusted-keys`` statements
(both deprecated), or ``dnssec-validation auto``) and negative trust anchors
[both deprecated], or ``dnssec-validation auto``) and negative trust anchors
for the specified views. If no view is specified, all views are
dumped. Security roots will indicate whether they are configured as trusted
dumped. Security roots indicate whether they are configured as trusted
keys, managed keys, or initializing managed keys (managed keys that have not
yet been updated by a successful key refresh query).
If the first argument is "-", then the output is returned via the
If the first argument is ``-``, then the output is returned via the
``rndc`` response channel and printed to the standard output.
Otherwise, it is written to the secroots dump file, which defaults to
``named.secroots``, but can be overridden via the ``secroots-file``
@@ -398,43 +401,43 @@ Currently supported commands are:
See also ``rndc managed-keys``.
``serve-stale`` (**on** | **off** | **reset** | **status**) [*class* [*view*]]
Enable, disable, reset, or report the current status of the serving
This command enables, disables, resets, or reports the current status of the serving
of stale answers as configured in ``named.conf``.
If serving of stale answers is disabled by ``rndc-serve-stale off``,
then it will remain disabled even if :manpage:`named(8)` is reloaded or
then it remains disabled even if ``named`` is reloaded or
reconfigured. ``rndc serve-stale reset`` restores the setting as
configured in ``named.conf``.
``rndc serve-stale status`` will report whether serving of stale
``rndc serve-stale status`` reports whether serving of stale
answers is currently enabled, disabled by the configuration, or
disabled by ``rndc``. It will also report the values of
disabled by ``rndc``. It also reports the values of
``stale-answer-ttl`` and ``max-stale-ttl``.
``showzone`` *zone* [*class* [*view*]]
Print the configuration of a running zone.
This command prints the configuration of a running zone.
See also ``rndc zonestatus``.
``sign`` *zone* [*class* [*view*]]
Fetch all DNSSEC keys for the given zone from the key directory (see
This command fetches all DNSSEC keys for the given zone from the key directory (see
the ``key-directory`` option in the BIND 9 Administrator Reference
Manual). If they are within their publication period, merge them into
Manual). If they are within their publication period, they are merged into
the zone's DNSKEY RRset. If the DNSKEY RRset is changed, then the
zone is automatically re-signed with the new key set.
This command requires that the zone is configure with a ``dnssec-policy``, or
This command requires that the zone be configured with a ``dnssec-policy``, or
that the ``auto-dnssec`` zone option be set to ``allow`` or ``maintain``,
and also requires the zone to be configured to allow dynamic DNS. (See
"Dynamic Update Policies" in the Administrator Reference Manual for more
"Dynamic Update Policies" in the BIND 9 Administrator Reference Manual for more
details.)
See also ``rndc loadkeys``.
``signing`` [(**-list** | **-clear** *keyid/algorithm* | **-clear** *all* | **-nsec3param** ( *parameters* | none ) | **-serial** *value* ) *zone* [*class* [*view*]]
List, edit, or remove the DNSSEC signing state records for the
specified zone. The status of ongoing DNSSEC operations (such as
signing or generating NSEC3 chains) is stored in the zone in the form
This command lists, edits, or removes the DNSSEC signing-state records for the
specified zone. The status of ongoing DNSSEC operations, such as
signing or generating NSEC3 chains, is stored in the zone in the form
of DNS resource records of type ``sig-signing-type``.
``rndc signing -list`` converts these records into a human-readable
form, indicating which keys are currently signing or have finished
@@ -444,22 +447,22 @@ Currently supported commands are:
``rndc signing -clear`` can remove a single key (specified in the
same format that ``rndc signing -list`` uses to display it), or all
keys. In either case, only completed keys are removed; any record
indicating that a key has not yet finished signing the zone will be
indicating that a key has not yet finished signing the zone is
retained.
``rndc signing -nsec3param`` sets the NSEC3 parameters for a zone.
This is the only supported mechanism for using NSEC3 with
``inline-signing`` zones. Parameters are specified in the same format
as an NSEC3PARAM resource record: hash algorithm, flags, iterations,
and salt, in that order.
as an NSEC3PARAM resource record: ``hash algorithm``, ``flags``, ``iterations``,
and ``salt``, in that order.
Currently, the only defined value for hash algorithm is ``1``,
Currently, the only defined value for ``hash algorithm`` is ``1``,
representing SHA-1. The ``flags`` may be set to ``0`` or ``1``,
depending on whether you wish to set the opt-out bit in the NSEC3
chain. ``iterations`` defines the number of additional times to apply
depending on whether the opt-out bit in the NSEC3
chain should be set. ``iterations`` defines the number of additional times to apply
the algorithm when generating an NSEC3 hash. The ``salt`` is a string
of data expressed in hexadecimal, a hyphen (`-') if no salt is to be
used, or the keyword ``auto``, which causes :manpage:`named(8)` to generate a
used, or the keyword ``auto``, which causes ``named`` to generate a
random 64-bit salt.
So, for example, to create an NSEC3 chain using the SHA-1 hash
@@ -472,81 +475,81 @@ Currently supported commands are:
replaces it with NSEC.
``rndc signing -serial value`` sets the serial number of the zone to
value. If the value would cause the serial number to go backwards it
will be rejected. The primary use is to set the serial on inline
``value``. If the value would cause the serial number to go backwards, it
is rejected. The primary use of this parameter is to set the serial number on inline
signed zones.
``stats``
Write server statistics to the statistics file. (See the
This command writes server statistics to the statistics file. (See the
``statistics-file`` option in the BIND 9 Administrator Reference
Manual.)
``status``
Display status of the server. Note that the number of zones includes
the internal ``bind/CH`` zone and the default ``./IN`` hint zone if
there is not an explicit root zone configured.
This command displays the status of the server. Note that the number of zones includes
the internal ``bind/CH`` zone and the default ``./IN`` hint zone, if
there is no explicit root zone configured.
``stop`` **-p**
Stop the server, making sure any recent changes made through dynamic
This command stops the server, making sure any recent changes made through dynamic
update or IXFR are first saved to the master files of the updated
zones. If ``-p`` is specified :manpage:`named(8)`'s process id is returned.
This allows an external process to determine when :manpage:`named(8)` had
zones. If ``-p`` is specified, ``named(8)`'s process ID is returned.
This allows an external process to determine when ``named`` has
completed stopping.
See also ``rndc halt``.
``sync`` **-clean** [*zone* [*class* [*view*]]]
Sync changes in the journal file for a dynamic zone to the master
This command syncs changes in the journal file for a dynamic zone to the master
file. If the "-clean" option is specified, the journal file is also
removed. If no zone is specified, then all zones are synced.
``tcp-timeouts`` [*initial* *idle* *keepalive* *advertised*]
When called without arguments, display the current values of the
When called without arguments, this command displays the current values of the
``tcp-initial-timeout``, ``tcp-idle-timeout``,
``tcp-keepalive-timeout`` and ``tcp-advertised-timeout`` options.
When called with arguments, update these values. This allows an
administrator to make rapid adjustments when under a denial of
service attack. See the descriptions of these options in the BIND 9
``tcp-keepalive-timeout``, and ``tcp-advertised-timeout`` options.
When called with arguments, these values are updated. This allows an
administrator to make rapid adjustments when under a
denial-of-service (DoS) attack. See the descriptions of these options in the BIND 9
Administrator Reference Manual for details of their use.
``thaw`` [*zone* [*class* [*view*]]]
Enable updates to a frozen dynamic zone. If no zone is specified,
This command enables updates to a frozen dynamic zone. If no zone is specified,
then all frozen zones are enabled. This causes the server to reload
the zone from disk, and re-enables dynamic updates after the load has
completed. After a zone is thawed, dynamic updates will no longer be
completed. After a zone is thawed, dynamic updates are no longer
refused. If the zone has changed and the ``ixfr-from-differences``
option is in use, then the journal file will be updated to reflect
option is in use, the journal file is updated to reflect
changes in the zone. Otherwise, if the zone has changed, any existing
journal file will be removed.
journal file is removed.
See also ``rndc freeze``.
``trace``
Increment the servers debugging level by one.
This command increments the server's debugging level by one.
``trace`` *level*
Sets the server's debugging level to an explicit value.
This command sets the server's debugging level to an explicit value.
See also ``rndc notrace``.
``tsig-delete`` *keyname* [*view*]
Delete a given TKEY-negotiated key from the server. (This does not
apply to statically configured TSIG keys.)
This command deletes a given TKEY-negotiated key from the server. This does not
apply to statically configured TSIG keys.
``tsig-list``
List the names of all TSIG keys currently configured for use by
:manpage:`named(8)` in each view. The list both statically configured keys and
This command lists the names of all TSIG keys currently configured for use by
``named`` in each view. The list includes both statically configured keys and
dynamic TKEY-negotiated keys.
``validation`` (**on** | **off** | **status**) [*view* ...]``
Enable, disable, or check the current status of DNSSEC validation. By
This command enables, disables, or checks the current status of DNSSEC validation. By
default, validation is enabled.
The cache is flushed when validation is turned on or off to avoid using data
that might differ between states.
``zonestatus`` *zone* [*class* [*view*]]
Displays the current status of the given zone, including the master
This command displays the current status of the given zone, including the master
file name and any include files from which it was loaded, when it was
most recently loaded, the current serial number, the number of nodes,
whether the zone supports dynamic updates, whether the zone is DNSSEC
@@ -556,9 +559,9 @@ Currently supported commands are:
See also ``rndc showzone``.
``rndc`` commands that specify zone names, such as ``reload``,
``retransfer`` or ``zonestatus``, can be ambiguous when applied to zones
of type ``redirect``. Redirect zones are always called ".", and can be
confused with zones of type ``hint`` or with slaved copies of the root
``retransfer``, or ``zonestatus``, can be ambiguous when applied to zones
of type ``redirect``. Redirect zones are always called ``.``, and can be
confused with zones of type ``hint`` or with secondary copies of the root
zone. To specify a redirect zone, use the special zone name
``-redirect``, without a trailing period. (With a trailing period, this
would specify a zone called "-redirect".)
+18 -12
View File
@@ -64,7 +64,19 @@ tkey_keydelete_LDADD = \
$(LDADD) \
$(LIBDNS_LIBS)
TESTS = \
TESTS =
if HAVE_PERLMOD_TIME_HIRES
TESTS += serve-stale
endif HAVE_PERLMOD_TIME_HIRES
if HAVE_PERLMOD_NET_DNS
TESTS += \
dnssec \
rpzrecurse
endif HAVE_PERLMOD_NET_DNS
TESTS += \
acl \
additional \
addzone \
@@ -95,7 +107,7 @@ TESTS = \
geoip2 \
glue \
idna \
include-multiplecfg \
include-multiplecfg \
inline \
integrity \
kasp \
@@ -158,13 +170,11 @@ if HAVE_PERLMOD_NET_DNS
TESTS += \
digdelv \
dnssec \
fetchlimit \
forward \
ixfr \
nsupdate \
resolver \
rpzrecurse \
statistics \
upforwd \
zero
@@ -181,10 +191,6 @@ if HAVE_PERLMOD_DIGEST_HMAC
TESTS += xfer
endif HAVE_PERLMOD_DIGEST_HMAC
if HAVE_PERLMOD_TIME_HIRES
TESTS += serve-stale
endif HAVE_PERLMOD_TIME_HIRES
if HAVE_PERLMOD_NET_DNS_NAMESERVER
TESTS += reclimit
endif HAVE_PERLMOD_NET_DNS_NAMESERVER
@@ -203,6 +209,10 @@ TESTS += chain
endif HAVE_PERLMOD_NET_DNS_NAMESERVER
endif HAVE_PERLMOD_NET_DNS
if HAVE_PYTEST
TESTS += rpzextra shutdown
endif
endif HAVE_PYMOD_DNS
endif HAVE_PYTHON
@@ -211,10 +221,6 @@ if HAVE_PKCS11
TESTS += pkcs11
endif
if HAVE_PYTEST
TESTS += rpzextra
endif
else !HAVE_PERL
check:
echo Perl is not available, no tests were ran
+2 -2
View File
@@ -48,12 +48,12 @@ zone "." {
};
zone "example" {
type master;
type primary;
file "example.db";
};
zone "tsigzone" {
type master;
type primary;
file "tsigzone.db";
allow-transfer { !key one; any; };
};
+2 -2
View File
@@ -48,12 +48,12 @@ zone "." {
};
zone "example" {
type master;
type primary;
file "example.db";
};
zone "tsigzone" {
type master;
type primary;
file "tsigzone.db";
/*
* 0a00::/8 and 10/8 are the same bits, but different address
+2 -2
View File
@@ -61,12 +61,12 @@ zone "." {
};
zone "example" {
type master;
type primary;
file "example.db";
};
zone "tsigzone" {
type master;
type primary;
file "tsigzone.db";
allow-transfer { !reject; accept; };
};
+2 -2
View File
@@ -60,12 +60,12 @@ zone "." {
};
zone "example" {
type master;
type primary;
file "example.db";
};
zone "tsigzone" {
type master;
type primary;
file "tsigzone.db";
allow-transfer { !rejectkeys; !rejectaddrs; !check1; !check2; any; };
};
+3 -2
View File
@@ -31,6 +31,7 @@ options {
ixfr-from-differences yes;
check-integrity no;
allow-query-on { 10.53.0.2; };
blackhole { 10.53.0.8; };
};
key one {
@@ -49,12 +50,12 @@ zone "." {
};
zone "example" {
type master;
type primary;
file "example.db";
};
zone "tsigzone" {
type master;
type primary;
file "tsigzone.db";
allow-transfer { !key one; any; };
};
+1 -1
View File
@@ -33,6 +33,6 @@ key rndc_key {
};
zone "existing" {
type master;
type primary;
file "existing.db";
};
+22 -2
View File
@@ -143,12 +143,32 @@ $DIG -p ${PORT} +tcp soa example. \
@10.53.0.2 -b 10.53.0.3 > dig.out.${t}
grep "status: NOERROR" dig.out.${t} > /dev/null 2>&1 || { echo_i "test $t failed" ; status=1; }
echo_i "testing blackhole ACL processing"
t=`expr $t + 1`
ret=0
$DIG -p ${PORT} +tcp soa example. \
@10.53.0.2 -b 10.53.0.3 > dig.out.1.${t}
grep "status: NOERROR" dig.out.1.${t} > /dev/null 2>&1 || ret=1
$DIG -p ${PORT} +tcp soa example. \
@10.53.0.2 -b 10.53.0.8 > dig.out.2.${t}
grep "status: NOERROR" dig.out.2.${t} > /dev/null 2>&1 && ret=1
grep "communications error" dig.out.2.${t} > /dev/null 2>&1 || ret=1
$DIG -p ${PORT} soa example. \
@10.53.0.2 -b 10.53.0.3 > dig.out.3.${t}
grep "status: NOERROR" dig.out.3.${t} > /dev/null 2>&1 || ret=1
$DIG -p ${PORT} soa example. \
@10.53.0.2 -b 10.53.0.8 > dig.out.4.${t}
grep "status: NOERROR" dig.out.4.${t} > /dev/null 2>&1 && ret=1
grep "connection timed out" dig.out.4.${t} > /dev/null 2>&1 || ret=1
[ $ret -eq 0 ] || echo_i "failed"
status=`expr $status + $ret`
# AXFR tests against ns3
echo_i "testing allow-transfer ACLs against ns3 (no existing zones)"
echo_i "calling addzone example.com on ns3"
$RNDCCMD 10.53.0.3 addzone 'example.com {type master; file "example.db"; }; '
$RNDCCMD 10.53.0.3 addzone 'example.com {type primary; file "example.db"; }; '
sleep 1
t=`expr $t + 1`
@@ -177,7 +197,7 @@ status=`expr $status + $ret`
echo_i "testing allow-transfer ACLs against ns4 (1 pre-existing zone)"
echo_i "calling addzone example.com on ns4"
$RNDCCMD 10.53.0.4 addzone 'example.com {type master; file "example.db"; }; '
$RNDCCMD 10.53.0.4 addzone 'example.com {type primary; file "example.db"; }; '
sleep 1
t=`expr $t + 1`
@@ -30,31 +30,31 @@ controls {
};
zone "." {
type master;
type primary;
file "root.db";
};
zone "rt.example" {
type master;
type primary;
file "rt.db";
};
zone "naptr.example" {
type master;
type primary;
file "naptr.db";
};
zone "rt2.example" {
type master;
type primary;
file "rt2.db";
};
zone "naptr2.example" {
type master;
type primary;
file "naptr2.db";
};
zone "nid.example" {
type master;
type primary;
file "nid.db";
};
@@ -30,31 +30,31 @@ controls {
};
zone "." {
type master;
type primary;
file "root.db";
};
zone "rt.example" {
type master;
type primary;
file "rt.db";
};
zone "naptr.example" {
type master;
type primary;
file "naptr.db";
};
zone "rt2.example" {
type master;
type primary;
file "rt2.db";
};
zone "naptr2.example" {
type master;
type primary;
file "naptr2.db";
};
zone "nid.example" {
type master;
type primary;
file "nid.db";
};
@@ -31,31 +31,31 @@ controls {
};
zone "." {
type master;
type primary;
file "root.db";
};
zone "rt.example" {
type master;
type primary;
file "rt.db";
};
zone "naptr.example" {
type master;
type primary;
file "naptr.db";
};
zone "rt2.example" {
type master;
type primary;
file "rt2.db";
};
zone "naptr2.example" {
type master;
type primary;
file "naptr2.db";
};
zone "nid.example" {
type master;
type primary;
file "nid.db";
};
@@ -30,41 +30,41 @@ controls {
};
zone "." {
type master;
type primary;
file "root.db";
};
zone "mx.example" {
type master;
type primary;
file "mx.db";
};
zone "srv.example" {
type master;
type primary;
file "srv.db";
};
zone "rt.example" {
type master;
type primary;
file "rt.db";
};
zone "naptr.example" {
type master;
type primary;
file "naptr.db";
};
zone "rt2.example" {
type master;
type primary;
file "rt2.db";
};
zone "naptr2.example" {
type master;
type primary;
file "naptr2.db";
};
zone "nid.example" {
type master;
type primary;
file "nid.db";
};
@@ -23,6 +23,6 @@ options {
};
zone "." {
type master;
type primary;
file "root.db";
};
@@ -30,11 +30,11 @@ zone "." {
};
zone "ex" {
type master;
type primary;
file "ex.db";
};
zone "ex2" {
type master;
type primary;
file "ex2.db";
};
+2 -2
View File
@@ -24,7 +24,7 @@ rm -f ./ns3/*.nzd ./ns3/*.nzd-lock
rm -f ./ns2/core*
rm -f ./ns2/inline.db.jbk
rm -f ./ns2/inline.db.signed
rm -f ./ns2/inlineslave.bk*
rm -f ./ns2/inlinesec.bk*
rm -rf ./ns2/new-zones
rm -f ./ns*/named.lock
rm -f ./ns*/named.run ./ns*/named.run.prev
@@ -32,7 +32,7 @@ rm -f ./ns2/nzf-*
rm -f ./ns3/named.conf
rm -f ./ns3/*.nzf ./ns3/*.nzf~
rm -f ./ns3/*.nzd ns3/*.nzd-lock
rm -f ./ns3/inlineslave.db
rm -f ./ns3/inlinesec.db
rm -f ./ns1/redirect.db
rm -f ./ns2/redirect.db
rm -f ./ns2/redirect.bk
@@ -7,7 +7,7 @@
; See the COPYRIGHT file distributed with this work for additional
; information regarding copyright ownership.
$ORIGIN inlineslave.example.
$ORIGIN inlinesec.example.
$TTL 300 ; 5 minutes
@ IN SOA mname1. . (
1 ; serial
+3 -3
View File
@@ -33,9 +33,9 @@ zone "." {
file "../../common/root.hint";
};
zone "inlineslave.example" {
type master;
file "inlineslave.db";
zone "inlinesec.example" {
type primary;
file "inlinesec.db";
};
zone "." {
+1 -1
View File
@@ -1 +1 @@
zone previous.example { type master; file "previous.db"; };
zone previous.example { type primary; file "previous.db"; };
+2 -2
View File
@@ -31,11 +31,11 @@ zone "." {
};
zone "normal.example" {
type master;
type primary;
file "normal.db";
};
zone "finaldot.example." {
type master;
type primary;
file "normal.db";
};
+1 -1
View File
@@ -37,7 +37,7 @@ view internal {
};
zone "policy" {
type master;
type primary;
file "normal.db";
};
};
+1 -1
View File
@@ -37,7 +37,7 @@ view internal {
};
zone "policy" {
type master;
type primary;
file "normal.db";
};
};
+2 -2
View File
@@ -26,10 +26,10 @@ options {
};
zone "." {
type master;
type primary;
file "redirect.db";
};
masters "testmaster" {
primaries "test" {
192.5.5.241;
};
+79 -78
View File
@@ -53,7 +53,7 @@ fi
echo_i "adding new zone ($n)"
ret=0
$RNDCCMD 10.53.0.2 addzone 'added.example { type master; file "added.db"; };' 2>&1 | sed 's/^/I:ns2 /'
$RNDCCMD 10.53.0.2 addzone 'added.example { type primary; file "added.db"; };' 2>&1 | sed 's/^/I:ns2 /'
_check_adding_new_zone () (
$DIG $DIGOPTS @10.53.0.2 a.added.example a > dig.out.ns2.$n &&
grep 'status: NOERROR' dig.out.ns2.$n > /dev/null &&
@@ -84,7 +84,8 @@ status=`expr $status + $ret`
echo_i "adding a zone that requires quotes ($n)"
ret=0
$RNDCCMD 10.53.0.2 addzone '"32/1.0.0.127-in-addr.added.example" { check-names ignore; type master; file "added.db"; };' 2>&1 | sed 's/^/I:ns2 /'
$RNDCCMD 10.53.0.2 addzone '"32/1.0.0.127-in-addr.added.example" {
check-names ignore; type primary; file "added.db"; };' 2>&1 | sed 's/^/I:ns2 /'
_check_zone_that_requires_quotes() (
$DIG $DIGOPTS @10.53.0.2 "a.32/1.0.0.127-in-addr.added.example" a > dig.out.ns2.$n &&
grep 'status: NOERROR' dig.out.ns2.$n > /dev/null &&
@@ -97,7 +98,7 @@ status=`expr $status + $ret`
echo_i "adding a zone with a quote in the name ($n)"
ret=0
$RNDCCMD 10.53.0.2 addzone '"foo\"bar.example" { check-names ignore; type master; file "added.db"; };' 2>&1 | sed 's/^/I:ns2 /'
$RNDCCMD 10.53.0.2 addzone '"foo\"bar.example" { check-names ignore; type primary; file "added.db"; };' 2>&1 | sed 's/^/I:ns2 /'
_check_zone_with_a_quote() (
$DIG $DIGOPTS @10.53.0.2 "a.foo\"bar.example" a > dig.out.ns2.$n &&
grep 'status: NOERROR' dig.out.ns2.$n > /dev/null &&
@@ -108,11 +109,11 @@ n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
echo_i "adding new zone with missing master file ($n)"
echo_i "adding new zone with missing file ($n)"
ret=0
$DIG $DIGOPTS +all @10.53.0.2 a.missing.example a > dig.out.ns2.pre.$n || ret=1
grep "status: REFUSED" dig.out.ns2.pre.$n > /dev/null || ret=1
$RNDCCMD 10.53.0.2 addzone 'missing.example { type master; file "missing.db"; };' 2> rndc.out.ns2.$n
$RNDCCMD 10.53.0.2 addzone 'missing.example { type primary; file "missing.db"; };' 2> rndc.out.ns2.$n
grep "file not found" rndc.out.ns2.$n > /dev/null || ret=1
$DIG $DIGOPTS +all @10.53.0.2 a.missing.example a > dig.out.ns2.post.$n || ret=1
grep "status: REFUSED" dig.out.ns2.post.$n > /dev/null || ret=1
@@ -134,7 +135,7 @@ fi
echo_i "checking rndc showzone with previously added zone ($n)"
ret=0
$RNDCCMD 10.53.0.2 showzone previous.example > rndc.out.ns2.$n
expected='zone "previous.example" { type master; file "previous.db"; };'
expected='zone "previous.example" { type primary; file "previous.db"; };'
[ "`cat rndc.out.ns2.$n`" = "$expected" ] || ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
@@ -212,7 +213,7 @@ status=`expr $status + $ret`
echo_i "checking rndc showzone with a normally-loaded zone ($n)"
ret=0
$RNDCCMD 10.53.0.2 showzone normal.example > rndc.out.ns2.$n
expected='zone "normal.example" { type master; file "normal.db"; };'
expected='zone "normal.example" { type primary; file "normal.db"; };'
[ "`cat rndc.out.ns2.$n`" = "$expected" ] || ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
@@ -221,7 +222,7 @@ status=`expr $status + $ret`
echo_i "checking rndc showzone with a normally-loaded zone with trailing dot ($n)"
ret=0
$RNDCCMD 10.53.0.2 showzone finaldot.example > rndc.out.ns2.$n
expected='zone "finaldot.example." { type master; file "normal.db"; };'
expected='zone "finaldot.example." { type primary; file "normal.db"; };'
[ "`cat rndc.out.ns2.$n`" = "$expected" ] || ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
@@ -271,79 +272,79 @@ n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
echo_i "attempting to add master zone with inline signing ($n)"
$RNDCCMD 10.53.0.2 addzone 'inline.example { type master; file "inline.db"; inline-signing yes; };' 2>&1 | sed 's/^/I:ns2 /'
_check_add_master_zone_with_inline() (
echo_i "attempting to add primary zone with inline signing ($n)"
$RNDCCMD 10.53.0.2 addzone 'inline.example { type primary; file "inline.db"; inline-signing yes; };' 2>&1 | sed 's/^/I:ns2 /'
_check_add_primary_zone_with_inline() (
$DIG $DIGOPTS @10.53.0.2 a.inline.example a > dig.out.ns2.$n &&
grep 'status: NOERROR' dig.out.ns2.$n > /dev/null &&
grep '^a.inline.example' dig.out.ns2.$n > /dev/null
)
retry_quiet 5 _check_add_master_zone_with_inline || ret=1
retry_quiet 5 _check_add_primary_zone_with_inline || ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
echo_i "attempting to add master zone with inline signing and missing master ($n)"
echo_i "attempting to add primary zone with inline signing and missing file ($n)"
ret=0
$RNDCCMD 10.53.0.2 addzone 'inlinemissing.example { type master; file "missing.db"; inline-signing yes; };' 2> rndc.out.ns2.$n
$RNDCCMD 10.53.0.2 addzone 'inlinemissing.example { type primary; file "missing.db"; inline-signing yes; };' 2> rndc.out.ns2.$n
grep "file not found" rndc.out.ns2.$n > /dev/null || ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
echo_i "attempting to add slave zone with inline signing ($n)"
$RNDCCMD 10.53.0.2 addzone 'inlineslave.example { type slave; masters { 10.53.0.1; }; file "inlineslave.bk"; inline-signing yes; };' 2>&1 | sed 's/^/I:ns2 /'
_check_add_slave_with_inline() (
$DIG $DIGOPTS @10.53.0.2 a.inlineslave.example a > dig.out.ns2.$n &&
echo_i "attempting to add secondary zone with inline signing ($n)"
$RNDCCMD 10.53.0.2 addzone 'inlinesec.example { type secondary; primaries { 10.53.0.1; }; file "inlinesec.bk"; inline-signing yes; };' 2>&1 | sed 's/^/I:ns2 /'
_check_add_secondary_with_inline() (
$DIG $DIGOPTS @10.53.0.2 a.inlinesec.example a > dig.out.ns2.$n &&
grep 'status: NOERROR' dig.out.ns2.$n > /dev/null &&
grep '^a.inlineslave.example' dig.out.ns2.$n > /dev/null
grep '^a.inlinesec.example' dig.out.ns2.$n > /dev/null
)
retry_quiet 5 _check_add_slave_with_inline || ret=1
retry_quiet 5 _check_add_secondary_with_inline || ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
echo_i "attempting to delete slave zone with inline signing ($n)"
echo_i "attempting to delete secondary zone with inline signing ($n)"
ret=0
retry_quiet 10 test -f ns2/inlineslave.bk.signed -a -f ns2/inlineslave.bk || ret=1
$RNDCCMD 10.53.0.2 delzone inlineslave.example > rndc.out2.test$n 2>&1 || ret=1
test -f inlineslave.bk ||
grep '^inlineslave.bk$' rndc.out2.test$n > /dev/null || {
echo_i "failed to report inlineslave.bk"; ret=1;
retry_quiet 10 test -f ns2/inlinesec.bk.signed -a -f ns2/inlinesec.bk || ret=1
$RNDCCMD 10.53.0.2 delzone inlinesec.example > rndc.out2.test$n 2>&1 || ret=1
test -f inlinesec.bk ||
grep '^inlinesec.bk$' rndc.out2.test$n > /dev/null || {
echo_i "failed to report inlinesec.bk"; ret=1;
}
test ! -f inlineslave.bk.signed ||
grep '^inlineslave.bk.signed$' rndc.out2.test$n > /dev/null || {
echo_i "failed to report inlineslave.bk.signed"; ret=1;
test ! -f inlinesec.bk.signed ||
grep '^inlinesec.bk.signed$' rndc.out2.test$n > /dev/null || {
echo_i "failed to report inlinesec.bk.signed"; ret=1;
}
n=`expr $n + 1`
status=`expr $status + $ret`
echo_i "restoring slave zone with inline signing ($n)"
$RNDCCMD 10.53.0.2 addzone 'inlineslave.example { type slave; masters { 10.53.0.1; }; file "inlineslave.bk"; inline-signing yes; };' 2>&1 | sed 's/^/I:ns2 /'
_check_restoring_slave_with_inline() (
$DIG $DIGOPTS @10.53.0.2 a.inlineslave.example a > dig.out.ns2.$n &&
echo_i "restoring secondary zone with inline signing ($n)"
$RNDCCMD 10.53.0.2 addzone 'inlinesec.example { type secondary; primaries { 10.53.0.1; }; file "inlinesec.bk"; inline-signing yes; };' 2>&1 | sed 's/^/I:ns2 /'
_check_restoring_secondary_with_inline() (
$DIG $DIGOPTS @10.53.0.2 a.inlinesec.example a > dig.out.ns2.$n &&
grep 'status: NOERROR' dig.out.ns2.$n > /dev/null &&
grep '^a.inlineslave.example' dig.out.ns2.$n > /dev/null
grep '^a.inlinesec.example' dig.out.ns2.$n > /dev/null
)
retry_quiet 5 _check_restoring_slave_with_inline || ret=1
retry_quiet 5 _check_restoring_secondary_with_inline || ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
echo_i "deleting slave zone with automatic zone file removal ($n)"
echo_i "deleting secondary zone with automatic zone file removal ($n)"
ret=0
retry_quiet 10 test -f ns2/inlineslave.bk.signed -a -f ns2/inlineslave.bk || ret=1
$RNDCCMD 10.53.0.2 delzone -clean inlineslave.example > /dev/null 2>&1
retry_quiet 10 test ! -f ns2/inlineslave.bk.signed -a ! -f ns2/inlineslave.bk
retry_quiet 10 test -f ns2/inlinesec.bk.signed -a -f ns2/inlinesec.bk || ret=1
$RNDCCMD 10.53.0.2 delzone -clean inlinesec.example > /dev/null 2>&1
retry_quiet 10 test ! -f ns2/inlinesec.bk.signed -a ! -f ns2/inlinesec.bk
n=`expr $n + 1`
status=`expr $status + $ret`
echo_i "modifying zone configuration ($n)"
ret=0
$RNDCCMD 10.53.0.2 addzone 'mod.example { type master; file "added.db"; };' 2>&1 | sed 's/^/ns2 /' | cat_i
$RNDCCMD 10.53.0.2 addzone 'mod.example { type primary; file "added.db"; };' 2>&1 | sed 's/^/ns2 /' | cat_i
$DIG +norec $DIGOPTS @10.53.0.2 mod.example ns > dig.out.ns2.1.$n || ret=1
grep 'status: NOERROR' dig.out.ns2.1.$n > /dev/null || ret=1
$RNDCCMD 10.53.0.2 modzone 'mod.example { type master; file "added.db"; allow-query { none; }; };' 2>&1 | sed 's/^/ns2 /' | cat_i
$RNDCCMD 10.53.0.2 modzone 'mod.example { type primary; file "added.db"; allow-query { none; }; };' 2>&1 | sed 's/^/ns2 /' | cat_i
$DIG +norec $DIGOPTS @10.53.0.2 mod.example ns > dig.out.ns2.2.$n || ret=1
$RNDCCMD 10.53.0.2 showzone mod.example | grep 'allow-query { "none"; };' > /dev/null 2>&1 || ret=1
n=`expr $n + 1`
@@ -352,7 +353,7 @@ status=`expr $status + $ret`
echo_i "check that adding a 'stub' zone works ($n)"
ret=0
$RNDCCMD 10.53.0.2 addzone 'stub.example { type stub; masters { 1.2.3.4; }; file "stub.example.bk"; };' > rndc.out.ns2.$n 2>&1 || ret=1
$RNDCCMD 10.53.0.2 addzone 'stub.example { type stub; primaries { 1.2.3.4; }; file "stub.example.bk"; };' > rndc.out.ns2.$n 2>&1 || ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
@@ -364,22 +365,22 @@ n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
echo_i "check that adding a 'master redirect' zone works ($n)"
echo_i "check that adding a 'primary redirect' zone works ($n)"
ret=0
$RNDCCMD 10.53.0.2 addzone '"." { type redirect; file "redirect.db"; };' > rndc.out.ns2.$n 2>&1 || ret=1
_check_add_master_redirect() (
_check_add_primary_redirect() (
$RNDCCMD 10.53.0.2 showzone -redirect > showzone.out.ns2.$n 2>&1 &&
grep "type redirect;" showzone.out.ns2.$n > /dev/null &&
$RNDCCMD 10.53.0.2 zonestatus -redirect > zonestatus.out.ns2.$n 2>&1 &&
grep "type: redirect" zonestatus.out.ns2.$n > /dev/null &&
grep "serial: 0" zonestatus.out.ns2.$n > /dev/null
)
retry_quiet 10 _check_add_master_redirect || ret=1
retry_quiet 10 _check_add_primary_redirect || ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
echo_i "check that reloading a added 'master redirect' zone works ($n)"
echo_i "check that reloading a added 'primary redirect' zone works ($n)"
ret=0
sleep 1
cp -f ns2/redirect.db.2 ns2/redirect.db
@@ -389,63 +390,63 @@ n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
echo_i "check that retransfer of a added 'master redirect' zone fails ($n)"
echo_i "check that retransfer of a added 'primary redirect' zone fails ($n)"
ret=0
$RNDCCMD 10.53.0.2 retransfer -redirect > rndc.out.ns2.$n 2>&1 && ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
echo_i "check that deleting a 'master redirect' zone works ($n)"
echo_i "check that deleting a 'primary redirect' zone works ($n)"
ret=0
$RNDCCMD 10.53.0.2 delzone -redirect > rndc.out.ns2.$n 2>&1 || ret=1
_check_deleting_master_redirect() (
_check_deleting_primary_redirect() (
$RNDCCMD 10.53.0.2 showzone -redirect > showzone.out.ns2.$n 2>&1 || true
grep 'not found' showzone.out.ns2.$n > /dev/null
)
retry_quiet 10 _check_deleting_master_redirect || ret=1
retry_quiet 10 _check_deleting_primary_redirect || ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
echo_i "check that adding a 'slave redirect' zone works ($n)"
echo_i "check that adding a 'secondary redirect' zone works ($n)"
ret=0
$RNDCCMD 10.53.0.2 addzone '"." { type redirect; masters { 10.53.0.3;}; file "redirect.bk"; };' > rndc.out.ns2.$n 2>&1 || ret=1
_check_adding_slave_redirect() (
$RNDCCMD 10.53.0.2 addzone '"." { type redirect; primaries { 10.53.0.3;}; file "redirect.bk"; };' > rndc.out.ns2.$n 2>&1 || ret=1
_check_adding_secondary_redirect() (
$RNDCCMD 10.53.0.2 showzone -redirect > showzone.out.ns2.$n 2>&1 &&
grep "type redirect;" showzone.out.ns2.$n > /dev/null &&
$RNDCCMD 10.53.0.2 zonestatus -redirect > zonestatus.out.ns2.$n 2>&1 &&
grep "type: redirect" zonestatus.out.ns2.$n > /dev/null &&
grep "serial: 0" zonestatus.out.ns2.$n > /dev/null
)
retry_quiet 10 _check_adding_slave_redirect || ret=1
retry_quiet 10 _check_adding_secondary_redirect || ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
echo_i "check that retransfering a added 'slave redirect' zone works ($n)"
echo_i "check that retransfering a added 'secondary redirect' zone works ($n)"
ret=0
cp -f ns3/redirect.db.2 ns3/redirect.db
$RNDCCMD 10.53.0.3 reload . > showzone.out.ns3.$n 2>&1 || ret=1
_check_retransfering_slave_redirect() (
_check_retransfering_secondary_redirect() (
$RNDCCMD 10.53.0.2 retransfer -redirect > rndc.out.ns2.$n 2>&1 &&
$RNDCCMD 10.53.0.2 zonestatus -redirect > zonestatus.out.ns2.$n 2>&1 &&
grep "type: redirect" zonestatus.out.ns2.$n > /dev/null &&
grep "serial: 1" zonestatus.out.ns2.$n > /dev/null
)
retry_quiet 10 _check_retransfering_slave_redirect || ret=1
retry_quiet 10 _check_retransfering_secondary_redirect || ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
echo_i "check that deleting a 'slave redirect' zone works ($n)"
echo_i "check that deleting a 'secondary redirect' zone works ($n)"
ret=0
$RNDCCMD 10.53.0.2 delzone -redirect > rndc.out.ns2.$n 2>&1 || ret=1
_check_deleting_slave_redirect() (
_check_deleting_secondary_redirect() (
$RNDCCMD 10.53.0.2 showzone -redirect > showzone.out.ns2.$n 2>&1 || true
grep 'not found' showzone.out.ns2.$n > /dev/null
)
retry_quiet 10 _check_deleting_slave_redirect || ret=1
retry_quiet 10 _check_deleting_secondary_redirect || ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
@@ -499,7 +500,7 @@ $DIG +norec $DIGOPTS @10.53.0.2 -b 10.53.0.2 a.added.example a > dig.out.ns2.int
grep 'status: NOERROR' dig.out.ns2.intpre.$n > /dev/null || ret=1
$DIG +norec $DIGOPTS @10.53.0.4 -b 10.53.0.4 a.added.example a > dig.out.ns2.extpre.$n || ret=1
grep 'status: REFUSED' dig.out.ns2.extpre.$n > /dev/null || ret=1
$RNDCCMD 10.53.0.2 addzone 'added.example in external { type master; file "added.db"; };' 2>&1 | sed 's/^/I:ns2 /'
$RNDCCMD 10.53.0.2 addzone 'added.example in external { type primary; file "added.db"; };' 2>&1 | sed 's/^/I:ns2 /'
$DIG +norec $DIGOPTS @10.53.0.2 -b 10.53.0.2 a.added.example a > dig.out.ns2.int.$n || ret=1
grep 'status: NOERROR' dig.out.ns2.int.$n > /dev/null || ret=1
$DIG +norec $DIGOPTS @10.53.0.4 -b 10.53.0.4 a.added.example a > dig.out.ns2.ext.$n || ret=1
@@ -546,9 +547,9 @@ status=`expr $status + $ret`
echo_i "checking rndc showzone with newly added zone ($n)"
_check_rndc_showzone_newly_added() (
if [ -z "$NZD" ]; then
expected='zone "added.example" in external { type master; file "added.db"; };'
expected='zone "added.example" in external { type primary; file "added.db"; };'
else
expected='zone "added.example" { type master; file "added.db"; };'
expected='zone "added.example" { type primary; file "added.db"; };'
fi
$RNDCCMD 10.53.0.2 showzone added.example in external > rndc.out.ns2.$n 2>/dev/null &&
[ "`cat rndc.out.ns2.$n`" = "$expected" ]
@@ -575,7 +576,7 @@ echo_i "attempting to add zone to internal view ($n)"
ret=0
$DIG +norec $DIGOPTS @10.53.0.2 -b 10.53.0.2 a.added.example a > dig.out.ns2.pre.$n || ret=1
grep 'status: NOERROR' dig.out.ns2.pre.$n > /dev/null || ret=1
$RNDCCMD 10.53.0.2 addzone 'added.example in internal { type master; file "added.db"; };' 2> rndc.out.ns2.$n
$RNDCCMD 10.53.0.2 addzone 'added.example in internal { type primary; file "added.db"; };' 2> rndc.out.ns2.$n
grep "permission denied" rndc.out.ns2.$n > /dev/null || ret=1
$DIG $DIGOPTS @10.53.0.2 -b 10.53.0.2 a.added.example a > dig.out.ns2.int.$n || ret=1
grep 'status: NOERROR' dig.out.ns2.int.$n > /dev/null || ret=1
@@ -595,7 +596,7 @@ status=`expr $status + $ret`
echo_i "adding new zone again to external view ($n)"
ret=0
$RNDCCMD 10.53.0.2 addzone 'added.example in external { type master; file "added.db"; };' 2>&1 | sed 's/^/I:ns2 /'
$RNDCCMD 10.53.0.2 addzone 'added.example in external { type primary; file "added.db"; };' 2>&1 | sed 's/^/I:ns2 /'
_check_adding_new_zone_again_external() (
$DIG +norec $DIGOPTS @10.53.0.2 -b 10.53.0.2 a.added.example a > dig.out.ns2.int.$n &&
grep 'status: NOERROR' dig.out.ns2.int.$n > /dev/null &&
@@ -640,7 +641,7 @@ $DIG +norec $DIGOPTS @10.53.0.4 -b 10.53.0.4 a.added.example a > dig.out.ns2.ext
grep 'status: REFUSED' dig.out.ns2.extpre.$n > /dev/null || ret=1
$DIG +norec $DIGOPTS @10.53.0.5 -b 10.53.0.5 a.added.example a > dig.out.ns2.dirpre.$n || ret=1
grep 'status: REFUSED' dig.out.ns2.dirpre.$n > /dev/null || ret=1
$RNDCCMD 10.53.0.2 addzone 'added.example in directory { type master; file "added.db"; };' 2>&1 | sed 's/^/I:ns2 /'
$RNDCCMD 10.53.0.2 addzone 'added.example in directory { type primary; file "added.db"; };' 2>&1 | sed 's/^/I:ns2 /'
$DIG +norec $DIGOPTS @10.53.0.2 -b 10.53.0.2 a.added.example a > dig.out.ns2.int.$n || ret=1
grep 'status: NOERROR' dig.out.ns2.int.$n > /dev/null || ret=1
$DIG +norec $DIGOPTS @10.53.0.4 -b 10.53.0.4 a.added.example a > dig.out.ns2.ext.$n || ret=1
@@ -686,10 +687,10 @@ status=`expr $status + $ret`
echo_i "check delzone after reconfig failure ($n)"
ret=0
$RNDCCMD 10.53.0.3 addzone 'inlineslave.example. IN { type slave; file "inlineslave.db"; masterfile-format text; masters { testmaster; }; };' > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 addzone 'inlinesec.example. IN { type secondary; file "inlinesec.db"; masterfile-format text; primaries { test; }; };' > /dev/null 2>&1 || ret=1
copy_setports ns3/named2.conf.in ns3/named.conf
rndc_reconfig ns3 10.53.0.3
$RNDCCMD 10.53.0.3 delzone inlineslave.example > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 delzone inlinesec.example > /dev/null 2>&1 || ret=1
n=`expr $n + 1`
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
@@ -698,9 +699,9 @@ if ! $FEATURETEST --with-lmdb
then
echo_i "check that addzone is fully reversed on failure (--with-lmdb=no) ($n)"
ret=0
$RNDCCMD 10.53.0.3 addzone "test1.baz" '{ type master; file "e.db"; };' > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 addzone "test2.baz" '{ type master; file "dne.db"; };' > /dev/null 2>&1 && ret=1
$RNDCCMD 10.53.0.3 addzone "test3.baz" '{ type master; file "e.db"; };' > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 addzone "test1.baz" '{ type primary; file "e.db"; };' > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 addzone "test2.baz" '{ type primary; file "dne.db"; };' > /dev/null 2>&1 && ret=1
$RNDCCMD 10.53.0.3 addzone "test3.baz" '{ type primary; file "e.db"; };' > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 delzone "test3.baz" > /dev/null 2>&1 || ret=1
grep test2.baz ns3/_default.nzf > /dev/null && ret=1
n=`expr $n + 1`
@@ -715,13 +716,13 @@ _check_version_bind() (
echo_i "check that named restarts with multiple added zones ($n)"
ret=0
$RNDCCMD 10.53.0.3 addzone "test4.baz" '{ type master; file "e.db"; };' > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 addzone "test5.baz" '{ type master; file "e.db"; };' > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 addzone '"test/.baz"' '{ type master; check-names ignore; file "e.db"; };' > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 addzone '"test\".baz"' '{ type master; check-names ignore; file "e.db"; };' > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 addzone '"test\\.baz"' '{ type master; check-names ignore; file "e.db"; };' > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 addzone '"test\032.baz"' '{ type master; check-names ignore; file "e.db"; };' > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 addzone '"test\010.baz"' '{ type master; check-names ignore; file "e.db"; };' > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 addzone "test4.baz" '{ type primary; file "e.db"; };' > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 addzone "test5.baz" '{ type primary; file "e.db"; };' > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 addzone '"test/.baz"' '{ type primary; check-names ignore; file "e.db"; };' > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 addzone '"test\".baz"' '{ type primary; check-names ignore; file "e.db"; };' > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 addzone '"test\\.baz"' '{ type primary; check-names ignore; file "e.db"; };' > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 addzone '"test\032.baz"' '{ type primary; check-names ignore; file "e.db"; };' > /dev/null 2>&1 || ret=1
$RNDCCMD 10.53.0.3 addzone '"test\010.baz"' '{ type primary; check-names ignore; file "e.db"; };' > /dev/null 2>&1 || ret=1
stop_server addzone ns3
start_server --noclean --restart --port ${PORT} addzone ns3 || ret=1
retry_quiet 10 _check_version_bind || ret=1
@@ -18,6 +18,6 @@ options {
};
zone "." {
type master;
type primary;
file "root.db";
};
@@ -25,6 +25,6 @@ zone "." {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
@@ -26,6 +26,6 @@ zone "." {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
@@ -26,6 +26,6 @@ zone "." {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
@@ -26,6 +26,6 @@ zone "." {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
@@ -26,6 +26,6 @@ zone "." {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
@@ -26,6 +26,6 @@ zone "." {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
@@ -28,6 +28,6 @@ zone "." {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
@@ -28,6 +28,6 @@ zone "." {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
@@ -28,6 +28,6 @@ zone "." {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
@@ -31,6 +31,6 @@ zone "." {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
@@ -37,6 +37,6 @@ zone "." {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
@@ -31,6 +31,6 @@ zone "." {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
@@ -27,7 +27,7 @@ view "internal" {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
};
@@ -29,7 +29,7 @@ view "internal" {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
@@ -29,7 +29,7 @@ view "internal" {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
};
@@ -29,7 +29,7 @@ view "internal" {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
};
@@ -29,7 +29,7 @@ view "internal" {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
};
@@ -29,7 +29,7 @@ view "internal" {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
};
@@ -31,7 +31,7 @@ view "internal" {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
@@ -31,7 +31,7 @@ view "internal" {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
};
@@ -31,7 +31,7 @@ view "internal" {
};
zone "normal.example" {
type master;
type primary;
file "generic.db";
};
};

Some files were not shown because too many files have changed in this diff Show More