File: //proc/self/root/usr/share/doc/bind9-doc/arm/manpages.html
<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="./">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Manual Pages — BIND 9 9.18.39-0ubuntu0.24.04.2-Ubuntu documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=80d5e7a1" />
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=86f27845" />
<link rel="stylesheet" type="text/css" href="_static/custom.css?v=9ab34431" />
<script src="_static/jquery.js?v=8dae8fb0"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="_static/documentation_options.js?v=9d4ae9d2"></script>
<script src="_static/doctools.js?v=888ff710"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="prev" title="General DNS Reference Information" href="general.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home">
BIND 9
</a>
<div class="version">
9.18.39-0ubuntu0.24.04.2-Ubuntu
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul>
<li class="toctree-l1"><a class="reference internal" href="chapter1.html">1. Introduction to DNS and BIND 9</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapter2.html">2. Resource Requirements</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapter3.html">3. Configurations and Zone Files</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapter4.html">4. Name Server Operations</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapter5.html">5. DNSSEC</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapter6.html">6. Advanced Configurations</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapter7.html">7. Security Configurations</a></li>
<li class="toctree-l1"><a class="reference internal" href="reference.html">8. Configuration Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapter9.html">9. Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapter10.html">10. Building BIND 9</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Appendices</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li>
<li class="toctree-l1"><a class="reference internal" href="dnssec-guide.html">DNSSEC Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="history.html">A Brief History of the DNS and BIND</a></li>
<li class="toctree-l1"><a class="reference internal" href="general.html">General DNS Reference Information</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Manual Pages</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#arpaname-translate-ip-addresses-to-the-corresponding-arpa-names">arpaname - translate IP addresses to the corresponding ARPA names</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#synopsis">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#description">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#see-also">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#ddns-confgen-tsig-key-generation-tool">ddns-confgen - TSIG key generation tool</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id1">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id2">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#options">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id3">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#delv-dns-lookup-and-validation-utility">delv - DNS lookup and validation utility</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id4">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id5">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#simple-usage">Simple Usage</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id6">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#query-options">Query Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#files">Files</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id7">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#dig-dns-lookup-utility">dig - DNS lookup utility</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id8">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id9">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id10">Simple Usage</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id11">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id12">Query Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#multiple-queries">Multiple Queries</a></li>
<li class="toctree-l3"><a class="reference internal" href="#idn-support">IDN Support</a></li>
<li class="toctree-l3"><a class="reference internal" href="#return-codes">Return Codes</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id13">Files</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id14">See Also</a></li>
<li class="toctree-l3"><a class="reference internal" href="#bugs">Bugs</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#dnssec-cds-change-ds-records-for-a-child-zone-based-on-cds-cdnskey">dnssec-cds - change DS records for a child zone based on CDS/CDNSKEY</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id15">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id16">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id17">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#exit-status">Exit Status</a></li>
<li class="toctree-l3"><a class="reference internal" href="#examples">Examples</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id18">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#dnssec-dsfromkey-dnssec-ds-rr-generation-tool">dnssec-dsfromkey - DNSSEC DS RR generation tool</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id19">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id20">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id21">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#example">Example</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id22">Files</a></li>
<li class="toctree-l3"><a class="reference internal" href="#caveat">Caveat</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id23">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#dnssec-importkey-import-dnskey-records-from-external-systems-so-they-can-be-managed">dnssec-importkey - import DNSKEY records from external systems so they can be managed</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id24">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id25">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id26">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#timing-options">Timing Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id27">Files</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id28">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#dnssec-keyfromlabel-dnssec-key-generation-tool">dnssec-keyfromlabel - DNSSEC key generation tool</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id29">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id30">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id31">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id32">Timing Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#generated-key-files">Generated Key Files</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id33">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#dnssec-keygen-dnssec-key-generation-tool">dnssec-keygen: DNSSEC key generation tool</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id34">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id35">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id36">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id37">Timing Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#generated-keys">Generated Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id38">Example</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id39">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#dnssec-revoke-set-the-revoked-bit-on-a-dnssec-key">dnssec-revoke - set the REVOKED bit on a DNSSEC key</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id40">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id41">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id42">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id43">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#dnssec-settime-set-the-key-timing-metadata-for-a-dnssec-key">dnssec-settime: set the key timing metadata for a DNSSEC key</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id44">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id45">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id46">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id47">Timing Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#key-state-options">Key State Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#printing-options">Printing Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id48">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#dnssec-signzone-dnssec-zone-signing-tool">dnssec-signzone - DNSSEC zone signing tool</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id49">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id50">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id51">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id52">Example</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id53">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#dnssec-verify-dnssec-zone-verification-tool">dnssec-verify - DNSSEC zone verification tool</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id54">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id55">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id56">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id57">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#dnstap-read-print-dnstap-data-in-human-readable-form">dnstap-read - print dnstap data in human-readable form</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id58">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id59">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id60">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id61">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#filter-aaaa-so-filter-aaaa-in-dns-responses-when-a-is-present">filter-aaaa.so - filter AAAA in DNS responses when A is present</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id62">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id63">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id64">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id65">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#host-dns-lookup-utility">host - DNS lookup utility</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id66">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id67">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id68">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id69">IDN Support</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id70">Files</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id71">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#mdig-dns-pipelined-lookup-utility">mdig - DNS pipelined lookup utility</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id72">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id73">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#anywhere-options">Anywhere Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#global-options">Global Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#local-options">Local Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id74">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#named-checkconf-named-configuration-file-syntax-checking-tool">named-checkconf - named configuration file syntax checking tool</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id75">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id76">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id77">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#return-values">Return Values</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id78">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#named-checkzone-zone-file-validation-tool">named-checkzone - zone file validation tool</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id79">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id80">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id81">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id82">Return Values</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id83">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#named-compilezone-zone-file-converting-tool">named-compilezone - zone file converting tool</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id84">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id85">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id86">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id87">Return Values</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id88">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#named-journalprint-print-zone-journal-in-human-readable-form">named-journalprint - print zone journal in human-readable form</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id89">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id90">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id91">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#named-nzd2nzf-convert-an-nzd-database-to-nzf-text-format">named-nzd2nzf - convert an NZD database to NZF text format</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id92">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id93">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#arguments">Arguments</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id94">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#named-rrchecker-syntax-checker-for-individual-dns-resource-records">named-rrchecker - syntax checker for individual DNS resource records</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id95">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id96">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id97">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id98">Examples</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#relative-names-and-origin">Relative names and origin</a></li>
<li class="toctree-l4"><a class="reference internal" href="#special-characters">Special characters</a></li>
<li class="toctree-l4"><a class="reference internal" href="#multi-token-records">Multi-token records</a></li>
<li class="toctree-l4"><a class="reference internal" href="#unknown-type-handling">Unknown type handling</a></li>
<li class="toctree-l4"><a class="reference internal" href="#meta-values">Meta values</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#id100">Return Codes</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id101">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#named-conf-configuration-file-for-named">named.conf - configuration file for <strong>named</strong></a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id102">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id103">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id104">Files</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id105">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#named-internet-domain-name-server">named - Internet domain name server</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id106">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id107">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id108">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#signals">Signals</a></li>
<li class="toctree-l3"><a class="reference internal" href="#configuration">Configuration</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id109">Files</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id110">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#nsec3hash-generate-nsec3-hash">nsec3hash - generate NSEC3 hash</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id111">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id112">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id113">Arguments</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id114">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#nslookup-query-internet-name-servers-interactively">nslookup - query Internet name servers interactively</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id115">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id116">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id117">Arguments</a></li>
<li class="toctree-l3"><a class="reference internal" href="#interactive-commands">Interactive Commands</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id118">Return Values</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id119">IDN Support</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id120">Files</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id121">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#nsupdate-dynamic-dns-update-utility">nsupdate - dynamic DNS update utility</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id122">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id123">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id124">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#input-format">Input Format</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id125">Examples</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id126">Files</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id127">See Also</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id128">Bugs</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#rndc-confgen-rndc-key-generation-tool">rndc-confgen - rndc key generation tool</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id129">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id130">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id131">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id132">Examples</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id133">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#rndc-conf-rndc-configuration-file">rndc.conf - rndc configuration file</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id134">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id135">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id136">Example</a></li>
<li class="toctree-l3"><a class="reference internal" href="#name-server-configuration">Name Server Configuration</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id137">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#rndc-name-server-control-utility">rndc - name server control utility</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id138">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id139">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id140">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#commands">Commands</a></li>
<li class="toctree-l3"><a class="reference internal" href="#limitations">Limitations</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id141">See Also</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#tsig-keygen-tsig-key-generation-tool">tsig-keygen - TSIG key generation tool</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id142">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id143">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id144">Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id145">See Also</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">BIND 9</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item active">Manual Pages</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/manpages.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="manual-pages">
<span id="manpages"></span><h1>Manual Pages<a class="headerlink" href="#manual-pages" title="Link to this heading"></a></h1>
<section id="arpaname-translate-ip-addresses-to-the-corresponding-arpa-names">
<span id="man-arpaname"></span><span id="std-iscman-arpaname"></span><h2>arpaname - translate IP addresses to the corresponding ARPA names<a class="headerlink" href="#arpaname-translate-ip-addresses-to-the-corresponding-arpa-names" title="Link to this heading"></a></h2>
<section id="synopsis">
<h3>Synopsis<a class="headerlink" href="#synopsis" title="Link to this heading"></a></h3>
<p><strong class="program">arpaname</strong> {<em>ipaddress</em> …}</p>
</section>
<section id="description">
<h3>Description<a class="headerlink" href="#description" title="Link to this heading"></a></h3>
<p><strong class="program">arpaname</strong> translates IP addresses (IPv4 and IPv6) to the
corresponding IN-ADDR.ARPA or IP6.ARPA names.</p>
</section>
<section id="see-also">
<h3>See Also<a class="headerlink" href="#see-also" title="Link to this heading"></a></h3>
<p>BIND 9 Administrator Reference Manual.</p>
</section>
</section>
<section id="ddns-confgen-tsig-key-generation-tool">
<span id="man-ddns-confgen"></span><span id="std-iscman-ddns-confgen"></span><h2>ddns-confgen - TSIG key generation tool<a class="headerlink" href="#ddns-confgen-tsig-key-generation-tool" title="Link to this heading"></a></h2>
<section id="id1">
<h3>Synopsis<a class="headerlink" href="#id1" title="Link to this heading"></a></h3>
<p><strong class="program">ddns-confgen</strong> [<strong>-a</strong> algorithm] [<strong>-h</strong>] [<strong>-k</strong> keyname] [<strong>-q</strong>] [<strong>-s</strong> name] [<strong>-z</strong> zone]</p>
</section>
<section id="id2">
<h3>Description<a class="headerlink" href="#id2" title="Link to this heading"></a></h3>
<p><strong class="program">ddns-confgen</strong> is an 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 the <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc</span></code></a> command channel.</p>
<p>The key name can specified using <a class="reference internal" href="#cmdoption-ddns-confgen-k"><code class="xref std std-option docutils literal notranslate"><span class="pre">-k</span></code></a> parameter and defaults to <code class="docutils literal notranslate"><span class="pre">ddns-key</span></code>.
The generated key is accompanied by configuration text and instructions that
can be used with <a class="reference internal" href="#std-iscman-nsupdate"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">nsupdate</span></code></a> and <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> when setting up dynamic DNS,
including an example <code class="docutils literal notranslate"><span class="pre">update-policy</span></code> statement.
(This usage is similar to the <a class="reference internal" href="#std-iscman-rndc-confgen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc-confgen</span></code></a> command for setting up
command-channel security.)</p>
<p>Note that <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> itself can configure a local DDNS key for use with
<a class="reference internal" href="#cmdoption-nsupdate-l"><code class="xref std std-option docutils literal notranslate"><span class="pre">nsupdate</span> <span class="pre">-l</span></code></a>; it does this when a zone is configured with
<code class="docutils literal notranslate"><span class="pre">update-policy</span> <span class="pre">local;</span></code>. <strong class="program">ddns-confgen</strong> is only needed when a more
elaborate configuration is required: for instance, if <a class="reference internal" href="#std-iscman-nsupdate"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">nsupdate</span></code></a> is to
be used from a remote system.</p>
</section>
<section id="options">
<h3>Options<a class="headerlink" href="#options" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-ddns-confgen-a">
<span class="sig-name descname"><span class="pre">-a</span></span><span class="sig-prename descclassname"> <span class="pre">algorithm</span></span><a class="headerlink" href="#cmdoption-ddns-confgen-a" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-ddns-confgen-h">
<span class="sig-name descname"><span class="pre">-h</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-ddns-confgen-h" title="Link to this definition"></a></dt>
<dd><p>This option prints a short summary of options and arguments.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-ddns-confgen-k">
<span class="sig-name descname"><span class="pre">-k</span></span><span class="sig-prename descclassname"> <span class="pre">keyname</span></span><a class="headerlink" href="#cmdoption-ddns-confgen-k" title="Link to this definition"></a></dt>
<dd><p>This option specifies the key name of the DDNS authentication key. The
default is <code class="docutils literal notranslate"><span class="pre">ddns-key</span></code> when neither the <a class="reference internal" href="#cmdoption-ddns-confgen-s"><code class="xref std std-option docutils literal notranslate"><span class="pre">-s</span></code></a> nor <a class="reference internal" href="#cmdoption-ddns-confgen-z"><code class="xref std std-option docutils literal notranslate"><span class="pre">-z</span></code></a> option is
specified; otherwise, the default is <code class="docutils literal notranslate"><span class="pre">ddns-key</span></code> as a separate label
followed by the argument of the option, e.g., <code class="docutils literal notranslate"><span class="pre">ddns-key.example.com.</span></code>
The key name must have the format of a valid domain name, consisting of
letters, digits, hyphens, and periods.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-ddns-confgen-q">
<span class="sig-name descname"><span class="pre">-q</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-ddns-confgen-q" title="Link to this definition"></a></dt>
<dd><p>This option enables quiet mode, which prints only the key, with no
explanatory text or usage examples. This is essentially identical to
<a class="reference internal" href="#std-iscman-tsig-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">tsig-keygen</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-ddns-confgen-s">
<span class="sig-name descname"><span class="pre">-s</span></span><span class="sig-prename descclassname"> <span class="pre">name</span></span><a class="headerlink" href="#cmdoption-ddns-confgen-s" title="Link to this definition"></a></dt>
<dd><p>This option generates a configuration example to allow dynamic updates
of a single hostname. The example <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a> text shows how to set
an update policy for the specified name using the “name” nametype. The
default key name is <code class="docutils literal notranslate"><span class="pre">ddns-key.name</span></code>. 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 <a class="reference internal" href="#cmdoption-ddns-confgen-z"><code class="xref std std-option docutils literal notranslate"><span class="pre">-z</span></code></a> option.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-ddns-confgen-z">
<span class="sig-name descname"><span class="pre">-z</span></span><span class="sig-prename descclassname"> <span class="pre">zone</span></span><a class="headerlink" href="#cmdoption-ddns-confgen-z" title="Link to this definition"></a></dt>
<dd><p>This option generates a configuration example to allow
dynamic updates of a zone. The example <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a> 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 <a class="reference internal" href="#cmdoption-ddns-confgen-s"><code class="xref std std-option docutils literal notranslate"><span class="pre">-s</span></code></a> option.</p>
</dd></dl>
</section>
<section id="id3">
<h3>See Also<a class="headerlink" href="#id3" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-nsupdate"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">nsupdate(1)</span></code></a>, <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf(5)</span></code></a>, <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named(8)</span></code></a>, BIND 9 Administrator Reference Manual.</p>
</section>
</section>
<section id="delv-dns-lookup-and-validation-utility">
<span id="man-delv"></span><span id="std-iscman-delv"></span><h2>delv - DNS lookup and validation utility<a class="headerlink" href="#delv-dns-lookup-and-validation-utility" title="Link to this heading"></a></h2>
<section id="id4">
<h3>Synopsis<a class="headerlink" href="#id4" title="Link to this heading"></a></h3>
<p><strong class="program">delv</strong> [@server] [ [<strong>-4</strong>] | [<strong>-6</strong>] ] [<strong>-a</strong> anchor-file] [<strong>-b</strong> address] [<strong>-c</strong> class] [<strong>-d</strong> level] [<strong>-i</strong>] [<strong>-m</strong>] [<strong>-p</strong> port#] [<strong>-q</strong> name] [<strong>-t</strong> type] [<strong>-x</strong> addr] [name] [type] [class] [queryopt…]</p>
<p><strong class="program">delv</strong> [<strong>-h</strong>]</p>
<p><strong class="program">delv</strong> [<strong>-v</strong>]</p>
<p><strong class="program">delv</strong> [queryopt…] [query…]</p>
</section>
<section id="id5">
<h3>Description<a class="headerlink" href="#id5" title="Link to this heading"></a></h3>
<p><strong class="program">delv</strong> is a tool for sending DNS queries and validating the results,
using the same internal resolver and validator logic as <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>.</p>
<p><strong class="program">delv</strong> 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,
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.</p>
<p>By default, responses are validated using the built-in DNSSEC trust anchor
for the root zone (“.”). Records returned by <strong class="program">delv</strong> 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
in detail. Because <strong class="program">delv</strong> 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.</p>
<p>Unless it is told to query a specific name server, <strong class="program">delv</strong> tries
each of the servers listed in <code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code>. If no usable server
addresses are found, <strong class="program">delv</strong> sends queries to the localhost
addresses (127.0.0.1 for IPv4, ::1 for IPv6).</p>
<p>When no command-line arguments or options are given, <strong class="program">delv</strong>
performs an NS query for “.” (the root zone).</p>
</section>
<section id="simple-usage">
<h3>Simple Usage<a class="headerlink" href="#simple-usage" title="Link to this heading"></a></h3>
<p>A typical invocation of <strong class="program">delv</strong> looks like:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">delv</span> <span class="nd">@server</span> <span class="n">name</span> <span class="nb">type</span>
</pre></div>
</div>
<p>where:</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-server">
<span class="sig-name descname"><span class="pre">server</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-server" title="Link to this definition"></a></dt>
<dd><p>is the name or IP address of the name server to query. This can be an
IPv4 address in dotted-decimal notation or an IPv6 address in
colon-delimited notation. When the supplied <code class="docutils literal notranslate"><span class="pre">server</span></code> argument is a
hostname, <strong class="program">delv</strong> resolves that name before querying that name
server (note, however, that this initial lookup is <em>not</em> validated by
DNSSEC).</p>
<p>If no <code class="docutils literal notranslate"><span class="pre">server</span></code> argument is provided, <strong class="program">delv</strong> consults
<code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code>; if an address is found there, it queries the
name server at that address. If either of the <a class="reference internal" href="#cmdoption-delv-4"><code class="xref std std-option docutils literal notranslate"><span class="pre">-4</span></code></a> or <a class="reference internal" href="#cmdoption-delv-6"><code class="xref std std-option docutils literal notranslate"><span class="pre">-6</span></code></a>
options is in use, then only addresses for the corresponding
transport are tried. If no usable addresses are found, <strong class="program">delv</strong>
sends queries to the localhost addresses (127.0.0.1 for IPv4, ::1
for IPv6).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-name">
<span class="sig-name descname"><span class="pre">name</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-name" title="Link to this definition"></a></dt>
<dd><p>is the domain name to be looked up.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-type">
<span class="sig-name descname"><span class="pre">type</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-type" title="Link to this definition"></a></dt>
<dd><p>indicates what type of query is required - ANY, A, MX, etc.
<code class="docutils literal notranslate"><span class="pre">type</span></code> can be any valid query type. If no <code class="docutils literal notranslate"><span class="pre">type</span></code> argument is
supplied, <strong class="program">delv</strong> performs a lookup for an A record.</p>
</dd></dl>
</section>
<section id="id6">
<h3>Options<a class="headerlink" href="#id6" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-a">
<span class="sig-name descname"><span class="pre">-a</span></span><span class="sig-prename descclassname"> <span class="pre">anchor-file</span></span><a class="headerlink" href="#cmdoption-delv-a" title="Link to this definition"></a></dt>
<dd><p>This option specifies a file from which to read DNSSEC trust anchors. The default
is <code class="docutils literal notranslate"><span class="pre">/etc/bind/bind.keys</span></code>, which is included with BIND 9 and contains one
or more trust anchors for the root zone (“.”).</p>
<p>Keys that do not match the root zone name are ignored. An alternate
key name can be specified using the <a class="reference internal" href="#cmdoption-delv-arg-root"><code class="xref std std-option docutils literal notranslate"><span class="pre">+root</span></code></a> option.</p>
<p>Note: When reading the trust anchor file, <strong class="program">delv</strong> treats <code class="docutils literal notranslate"><span class="pre">trust-anchors</span></code>,
<code class="docutils literal notranslate"><span class="pre">initial-key</span></code>, and <code class="docutils literal notranslate"><span class="pre">static-key</span></code> identically. That is, for a managed key,
it is the <em>initial</em> key that is trusted; <span class="target" id="index-0"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc5011.html"><strong>RFC 5011</strong></a> key management is not
supported. <strong class="program">delv</strong> does not consult the managed-keys database maintained by
<a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>, which means that if either of the keys in <code class="docutils literal notranslate"><span class="pre">/etc/bind/bind.keys</span></code> is
revoked and rolled over, <code class="docutils literal notranslate"><span class="pre">/etc/bind/bind.keys</span></code> must be updated to
use DNSSEC validation in <strong class="program">delv</strong>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-b">
<span class="sig-name descname"><span class="pre">-b</span></span><span class="sig-prename descclassname"> <span class="pre">address</span></span><a class="headerlink" href="#cmdoption-delv-b" title="Link to this definition"></a></dt>
<dd><p>This option sets the source IP address of the query to <code class="docutils literal notranslate"><span class="pre">address</span></code>. This must be
a valid address on one of the host’s network interfaces, or <code class="docutils literal notranslate"><span class="pre">0.0.0.0</span></code>,
or <code class="docutils literal notranslate"><span class="pre">::</span></code>. An optional source port may be specified by appending
<code class="docutils literal notranslate"><span class="pre">#<port></span></code></p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-c">
<span class="sig-name descname"><span class="pre">-c</span></span><span class="sig-prename descclassname"> <span class="pre">class</span></span><a class="headerlink" href="#cmdoption-delv-c" title="Link to this definition"></a></dt>
<dd><p>This option sets the query class for the requested data. Currently, only class
“IN” is supported in <strong class="program">delv</strong> and any other value is ignored.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-d">
<span class="sig-name descname"><span class="pre">-d</span></span><span class="sig-prename descclassname"> <span class="pre">level</span></span><a class="headerlink" href="#cmdoption-delv-d" title="Link to this definition"></a></dt>
<dd><p>This option sets the systemwide debug level to <code class="docutils literal notranslate"><span class="pre">level</span></code>. The allowed range is
from 0 to 99. The default is 0 (no debugging). Debugging traces from
<strong class="program">delv</strong> become more verbose as the debug level increases. See the
<a class="reference internal" href="#cmdoption-delv-arg-mtrace"><code class="xref std std-option docutils literal notranslate"><span class="pre">+mtrace</span></code></a>, <a class="reference internal" href="#cmdoption-delv-arg-rtrace"><code class="xref std std-option docutils literal notranslate"><span class="pre">+rtrace</span></code></a>, and <a class="reference internal" href="#cmdoption-delv-arg-vtrace"><code class="xref std std-option docutils literal notranslate"><span class="pre">+vtrace</span></code></a> options below for
additional debugging details.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-h">
<span class="sig-name descname"><span class="pre">-h</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-h" title="Link to this definition"></a></dt>
<dd><p>This option displays the <strong class="program">delv</strong> help usage output and exits.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-i">
<span class="sig-name descname"><span class="pre">-i</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-i" title="Link to this definition"></a></dt>
<dd><p>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 <strong class="program">delv</strong> to time out. When it
is necessary to examine invalid data to debug a DNSSEC problem, use
<a class="reference internal" href="#cmdoption-dig-arg-cd"><code class="xref std std-option docutils literal notranslate"><span class="pre">dig</span> <span class="pre">+cd</span></code></a>.)</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-m">
<span class="sig-name descname"><span class="pre">-m</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-m" title="Link to this definition"></a></dt>
<dd><p>This option enables memory usage debugging.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-p">
<span class="sig-name descname"><span class="pre">-p</span></span><span class="sig-prename descclassname"> <span class="pre">port#</span></span><a class="headerlink" href="#cmdoption-delv-p" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-q">
<span class="sig-name descname"><span class="pre">-q</span></span><span class="sig-prename descclassname"> <span class="pre">name</span></span><a class="headerlink" href="#cmdoption-delv-q" title="Link to this definition"></a></dt>
<dd><p>This option sets the query name to <code class="docutils literal notranslate"><span class="pre">name</span></code>. While the query name can be
specified without using the <a class="reference internal" href="#cmdoption-delv-q"><code class="xref std std-option docutils literal notranslate"><span class="pre">-q</span></code></a> 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).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-t">
<span class="sig-name descname"><span class="pre">-t</span></span><span class="sig-prename descclassname"> <span class="pre">type</span></span><a class="headerlink" href="#cmdoption-delv-t" title="Link to this definition"></a></dt>
<dd><p>This option sets the query type to <code class="docutils literal notranslate"><span class="pre">type</span></code>, which can be any valid query type
supported in BIND 9 except for zone transfer types AXFR and IXFR. As
with <a class="reference internal" href="#cmdoption-delv-q"><code class="xref std std-option docutils literal notranslate"><span class="pre">-q</span></code></a>, this is useful to distinguish query-name types or classes
when they are ambiguous. It is sometimes necessary to disambiguate
names from types.</p>
<p>The default query type is “A”, unless the <a class="reference internal" href="#cmdoption-delv-x"><code class="xref std std-option docutils literal notranslate"><span class="pre">-x</span></code></a> option is supplied
to indicate a reverse lookup, in which case it is “PTR”.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-v">
<span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-v" title="Link to this definition"></a></dt>
<dd><p>This option prints the <strong class="program">delv</strong> version and exits.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-x">
<span class="sig-name descname"><span class="pre">-x</span></span><span class="sig-prename descclassname"> <span class="pre">addr</span></span><a class="headerlink" href="#cmdoption-delv-x" title="Link to this definition"></a></dt>
<dd><p>This option performs a reverse lookup, mapping an address to a name. <code class="docutils literal notranslate"><span class="pre">addr</span></code>
is an IPv4 address in dotted-decimal notation, or a colon-delimited
IPv6 address. When <a class="reference internal" href="#cmdoption-delv-x"><code class="xref std std-option docutils literal notranslate"><span class="pre">-x</span></code></a> is used, there is no need to provide the
<code class="docutils literal notranslate"><span class="pre">name</span></code> or <code class="docutils literal notranslate"><span class="pre">type</span></code> arguments; <strong class="program">delv</strong> automatically performs a
lookup for a name like <code class="docutils literal notranslate"><span class="pre">11.12.13.10.in-addr.arpa</span></code> and sets the
query type to PTR. IPv6 addresses are looked up using nibble format
under the IP6.ARPA domain.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-4">
<span class="sig-name descname"><span class="pre">-4</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-4" title="Link to this definition"></a></dt>
<dd><p>This option forces <strong class="program">delv</strong> to only use IPv4.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-6">
<span class="sig-name descname"><span class="pre">-6</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-6" title="Link to this definition"></a></dt>
<dd><p>This option forces <strong class="program">delv</strong> to only use IPv6.</p>
</dd></dl>
</section>
<section id="query-options">
<h3>Query Options<a class="headerlink" href="#query-options" title="Link to this heading"></a></h3>
<p><strong class="program">delv</strong> provides a number of query options which affect the way results
are displayed, and in some cases the way lookups are performed.</p>
<p>Each query option is identified by a keyword preceded by a plus sign
(<code class="docutils literal notranslate"><span class="pre">+</span></code>). Some keywords set or reset an option. These may be preceded by
the string <code class="docutils literal notranslate"><span class="pre">no</span></code> to negate the meaning of that keyword. Other keywords
assign values to options like the timeout interval. They have the form
<code class="docutils literal notranslate"><span class="pre">+keyword=value</span></code>. The query options are:</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-cdflag">
<span id="cmdoption-delv-arg-nocdflag"></span><span class="sig-name descname"><span class="pre">+cdflag</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nocdflag</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-cdflag" title="Link to this definition"></a></dt>
<dd><p>This option controls whether to set the CD (checking disabled) bit in queries
sent by <strong class="program">delv</strong>. This may be useful when troubleshooting DNSSEC
problems from behind a validating resolver. A validating 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 <strong class="program">delv</strong> can then validate
internally and report the errors in detail.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-class">
<span id="cmdoption-delv-arg-noclass"></span><span class="sig-name descname"><span class="pre">+class</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noclass</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-class" title="Link to this definition"></a></dt>
<dd><p>This option controls whether to display the CLASS when printing a record. The
default is to display the CLASS.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-ttl">
<span id="cmdoption-delv-arg-nottl"></span><span class="sig-name descname"><span class="pre">+ttl</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nottl</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-ttl" title="Link to this definition"></a></dt>
<dd><p>This option controls whether to display the TTL when printing a record. The
default is to display the TTL.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-rtrace">
<span id="cmdoption-delv-arg-nortrace"></span><span class="sig-name descname"><span class="pre">+rtrace</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nortrace</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-rtrace" title="Link to this definition"></a></dt>
<dd><p>This option toggles resolver fetch logging. This reports the name and type of each
query sent by <strong class="program">delv</strong> in the process of carrying out the resolution
and validation process, including the original query
and all subsequent queries to follow CNAMEs and to establish a chain
of trust for DNSSEC validation.</p>
<p>This is equivalent to setting the debug level to 1 in the “resolver”
logging category. Setting the systemwide debug level to 1 using the
<a class="reference internal" href="#cmdoption-delv-d"><code class="xref std std-option docutils literal notranslate"><span class="pre">-d</span></code></a> option produces the same output, but affects other
logging categories as well.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-mtrace">
<span id="cmdoption-delv-arg-nomtrace"></span><span class="sig-name descname"><span class="pre">+mtrace</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nomtrace</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-mtrace" title="Link to this definition"></a></dt>
<dd><p>This option toggles message logging. This produces a detailed dump of the
responses received by <strong class="program">delv</strong> in the process of carrying out the
resolution and validation process.</p>
<p>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 <a class="reference internal" href="#cmdoption-delv-d"><code class="xref std std-option docutils literal notranslate"><span class="pre">-d</span></code></a> option produces the same
output, but affects other logging categories as well.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-vtrace">
<span id="cmdoption-delv-arg-novtrace"></span><span class="sig-name descname"><span class="pre">+vtrace</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+novtrace</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-vtrace" title="Link to this definition"></a></dt>
<dd><p>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.</p>
<p>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 <a class="reference internal" href="#cmdoption-delv-d"><code class="xref std std-option docutils literal notranslate"><span class="pre">-d</span></code></a> option produces the
same output, but affects other logging categories as well.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-short">
<span id="cmdoption-delv-arg-noshort"></span><span class="sig-name descname"><span class="pre">+short</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noshort</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-short" title="Link to this definition"></a></dt>
<dd><p>This option toggles between verbose and terse answers. The default is to print the answer in a
verbose form.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-comments">
<span id="cmdoption-delv-arg-nocomments"></span><span class="sig-name descname"><span class="pre">+comments</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nocomments</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-comments" title="Link to this definition"></a></dt>
<dd><p>This option toggles the display of comment lines in the output. The default is to
print comments.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-rrcomments">
<span id="cmdoption-delv-arg-norrcomments"></span><span class="sig-name descname"><span class="pre">+rrcomments</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+norrcomments</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-rrcomments" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-crypto">
<span id="cmdoption-delv-arg-nocrypto"></span><span class="sig-name descname"><span class="pre">+crypto</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nocrypto</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-crypto" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">[omitted]</span></code> or, in the DNSKEY case, the
key ID is displayed as the replacement, e.g. <code class="docutils literal notranslate"><span class="pre">[</span> <span class="pre">key</span> <span class="pre">id</span> <span class="pre">=</span> <span class="pre">value</span> <span class="pre">]</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-trust">
<span id="cmdoption-delv-arg-notrust"></span><span class="sig-name descname"><span class="pre">+trust</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+notrust</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-trust" title="Link to this definition"></a></dt>
<dd><p>This option controls whether to display the trust level when printing a record.
The default is to display the trust level.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-split">
<span id="cmdoption-delv-arg-nosplit"></span><span class="sig-name descname"><span class="pre">+split</span></span><span class="sig-prename descclassname"><span class="pre">[=W]</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nosplit</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-split" title="Link to this definition"></a></dt>
<dd><p>This option splits long hex- or base64-formatted fields in resource records into
chunks of <code class="docutils literal notranslate"><span class="pre">W</span></code> characters (where <code class="docutils literal notranslate"><span class="pre">W</span></code> is rounded up to the nearest
multiple of 4). <code class="docutils literal notranslate"><span class="pre">+nosplit</span></code> or <code class="docutils literal notranslate"><span class="pre">+split=0</span></code> causes fields not to be
split at all. The default is 56 characters, or 44 characters when
multiline mode is active.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-all">
<span id="cmdoption-delv-arg-noall"></span><span class="sig-name descname"><span class="pre">+all</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noall</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-all" title="Link to this definition"></a></dt>
<dd><p>This option sets or clears the display options <a class="reference internal" href="#cmdoption-delv-arg-comments"><code class="xref std std-option docutils literal notranslate"><span class="pre">+comments</span></code></a>,
<a class="reference internal" href="#cmdoption-delv-arg-rrcomments"><code class="xref std std-option docutils literal notranslate"><span class="pre">+rrcomments</span></code></a>, and <a class="reference internal" href="#cmdoption-delv-arg-trust"><code class="xref std std-option docutils literal notranslate"><span class="pre">+trust</span></code></a> as a group.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-multiline">
<span id="cmdoption-delv-arg-nomultiline"></span><span class="sig-name descname"><span class="pre">+multiline</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nomultiline</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-multiline" title="Link to this definition"></a></dt>
<dd><p>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 <strong class="program">delv</strong> output.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-dnssec">
<span id="cmdoption-delv-arg-nodnssec"></span><span class="sig-name descname"><span class="pre">+dnssec</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nodnssec</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-dnssec" title="Link to this definition"></a></dt>
<dd><p>This option indicates whether to display RRSIG records in the <strong class="program">delv</strong> output.
The default is to do so. Note that (unlike in <a class="reference internal" href="#std-iscman-dig"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dig</span></code></a>) this does
<em>not</em> control whether to request DNSSEC records or to
validate them. DNSSEC records are always requested, and validation
always occurs unless suppressed by the use of <a class="reference internal" href="#cmdoption-delv-i"><code class="xref std std-option docutils literal notranslate"><span class="pre">-i</span></code></a> or
<a class="reference internal" href="#cmdoption-delv-arg-root"><code class="xref std std-option docutils literal notranslate"><span class="pre">+noroot</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-root">
<span id="cmdoption-delv-arg-noroot"></span><span class="sig-name descname"><span class="pre">+root</span></span><span class="sig-prename descclassname"><span class="pre">[=ROOT]</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noroot</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-root" title="Link to this definition"></a></dt>
<dd><p>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 class="reference internal" href="#cmdoption-delv-a"><code class="xref std std-option docutils literal notranslate"><span class="pre">-a</span></code></a> must be used to specify a
file containing the key.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-tcp">
<span id="cmdoption-delv-arg-notcp"></span><span class="sig-name descname"><span class="pre">+tcp</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+notcp</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-tcp" title="Link to this definition"></a></dt>
<dd><p>This option controls whether to use TCP when sending queries. The default is to
use UDP unless a truncated response has been received.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-unknownformat">
<span id="cmdoption-delv-arg-nounknownformat"></span><span class="sig-name descname"><span class="pre">+unknownformat</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nounknownformat</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-unknownformat" title="Link to this definition"></a></dt>
<dd><p>This option prints all RDATA in unknown RR-type presentation format (<span class="target" id="index-1"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3597.html"><strong>RFC 3597</strong></a>).
The default is to print RDATA for known types in the type’s
presentation format.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-delv-arg-yaml">
<span id="cmdoption-delv-arg-noyaml"></span><span class="sig-name descname"><span class="pre">+yaml</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noyaml</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-delv-arg-yaml" title="Link to this definition"></a></dt>
<dd><p>This option prints response data in YAML format.</p>
</dd></dl>
</section>
<section id="files">
<h3>Files<a class="headerlink" href="#files" title="Link to this heading"></a></h3>
<p><code class="docutils literal notranslate"><span class="pre">/etc/bind/bind.keys</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code></p>
</section>
<section id="id7">
<h3>See Also<a class="headerlink" href="#id7" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-dig"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dig(1)</span></code></a>, <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named(8)</span></code></a>, <span class="target" id="index-2"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc4034.html"><strong>RFC 4034</strong></a>, <span class="target" id="index-3"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc4035.html"><strong>RFC 4035</strong></a>, <span class="target" id="index-4"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc4431.html"><strong>RFC 4431</strong></a>, <span class="target" id="index-5"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc5074.html"><strong>RFC 5074</strong></a>, <span class="target" id="index-6"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc5155.html"><strong>RFC 5155</strong></a>.</p>
</section>
</section>
<section id="dig-dns-lookup-utility">
<span id="man-dig"></span><span id="std-iscman-dig"></span><h2>dig - DNS lookup utility<a class="headerlink" href="#dig-dns-lookup-utility" title="Link to this heading"></a></h2>
<section id="id8">
<h3>Synopsis<a class="headerlink" href="#id8" title="Link to this heading"></a></h3>
<p><strong class="program">dig</strong> [@server] [<strong>-b</strong> address] [<strong>-c</strong> class] [<strong>-f</strong> filename] [<strong>-k</strong> filename] [<strong>-m</strong>] [<strong>-p</strong> port#] [<strong>-q</strong> name] [<strong>-t</strong> type] [<strong>-v</strong>] [<strong>-x</strong> addr] [<strong>-y</strong> [hmac:]name:key] [ [<strong>-4</strong>] | [<strong>-6</strong>] ] [name] [type] [class] [queryopt…]</p>
<p><strong class="program">dig</strong> [<strong>-h</strong>]</p>
<p><strong class="program">dig</strong> [global-queryopt…] [query…]</p>
</section>
<section id="id9">
<h3>Description<a class="headerlink" href="#id9" title="Link to this heading"></a></h3>
<p><strong class="program">dig</strong> 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 <strong class="program">dig</strong> to
troubleshoot DNS problems because of its flexibility, ease of use, and
clarity of output. Other lookup tools tend to have less functionality
than <strong class="program">dig</strong>.</p>
<p>Although <strong class="program">dig</strong> 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 <a class="reference internal" href="#cmdoption-dig-h"><code class="xref std std-option docutils literal notranslate"><span class="pre">-h</span></code></a> option is given. The BIND 9
implementation of <strong class="program">dig</strong> allows multiple lookups to be issued from the
command line.</p>
<p>Unless it is told to query a specific name server, <strong class="program">dig</strong> tries each
of the servers listed in <code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code>. If no usable server
addresses are found, <strong class="program">dig</strong> sends the query to the local host.</p>
<p>When no command-line arguments or options are given, <strong class="program">dig</strong>
performs an NS query for “.” (the root).</p>
<p>It is possible to set per-user defaults for <strong class="program">dig</strong> via
<code class="docutils literal notranslate"><span class="pre">${HOME}/.digrc</span></code>. This file is read and any options in it are applied
before the command-line arguments. The <a class="reference internal" href="#cmdoption-dig-r"><code class="xref std std-option docutils literal notranslate"><span class="pre">-r</span></code></a> option disables this
feature, for scripts that need predictable behavior.</p>
<p>The IN and CH class names overlap with the IN and CH top-level domain
names. Either use the <a class="reference internal" href="#cmdoption-dig-t"><code class="xref std std-option docutils literal notranslate"><span class="pre">-t</span></code></a> and <a class="reference internal" href="#cmdoption-dig-c"><code class="xref std std-option docutils literal notranslate"><span class="pre">-c</span></code></a> options to specify the type and
class, use the <a class="reference internal" href="#cmdoption-dig-q"><code class="xref std std-option docutils literal notranslate"><span class="pre">-q</span></code></a> to specify the domain name, or use “IN.” and
“CH.” when looking up these top-level domains.</p>
</section>
<section id="id10">
<h3>Simple Usage<a class="headerlink" href="#id10" title="Link to this heading"></a></h3>
<p>A typical invocation of <strong class="program">dig</strong> looks like:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">dig</span> <span class="nd">@server</span> <span class="n">name</span> <span class="nb">type</span>
</pre></div>
</div>
<p>where:</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-server">
<span class="sig-name descname"><span class="pre">server</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-server" title="Link to this definition"></a></dt>
<dd><p>is the name or IP address of the name server to query. This can be an
IPv4 address in dotted-decimal notation or an IPv6 address in
colon-delimited notation. When the supplied <code class="docutils literal notranslate"><span class="pre">server</span></code> argument is a
hostname, <strong class="program">dig</strong> resolves that name before querying that name
server.</p>
<p>If no <code class="docutils literal notranslate"><span class="pre">server</span></code> argument is provided, <strong class="program">dig</strong> consults
<code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code>; if an address is found there, it queries the
name server at that address. If either of the <a class="reference internal" href="#cmdoption-dig-4"><code class="xref std std-option docutils literal notranslate"><span class="pre">-4</span></code></a> or <a class="reference internal" href="#cmdoption-dig-6"><code class="xref std std-option docutils literal notranslate"><span class="pre">-6</span></code></a>
options are in use, then only addresses for the corresponding
transport are tried. If no usable addresses are found, <strong class="program">dig</strong>
sends the query to the local host. The reply from the name server
that responds is displayed.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-name">
<span class="sig-name descname"><span class="pre">name</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-name" title="Link to this definition"></a></dt>
<dd><p>is the name of the resource record that is to be looked up.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-type">
<span class="sig-name descname"><span class="pre">type</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-type" title="Link to this definition"></a></dt>
<dd><p>indicates what type of query is required - ANY, A, MX, SIG, etc.
<code class="docutils literal notranslate"><span class="pre">type</span></code> can be any valid query type. If no <code class="docutils literal notranslate"><span class="pre">type</span></code> argument is
supplied, <strong class="program">dig</strong> performs a lookup for an A record.</p>
</dd></dl>
</section>
<section id="id11">
<h3>Options<a class="headerlink" href="#id11" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-4">
<span class="sig-name descname"><span class="pre">-4</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-4" title="Link to this definition"></a></dt>
<dd><p>This option indicates that only IPv4 should be used.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-6">
<span class="sig-name descname"><span class="pre">-6</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-6" title="Link to this definition"></a></dt>
<dd><p>This option indicates that only IPv6 should be used.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-b">
<span class="sig-name descname"><span class="pre">-b</span></span><span class="sig-prename descclassname"> <span class="pre">address[#port]</span></span><a class="headerlink" href="#cmdoption-dig-b" title="Link to this definition"></a></dt>
<dd><p>This option sets the source IP address of the query. The <code class="docutils literal notranslate"><span class="pre">address</span></code> 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 <code class="docutils literal notranslate"><span class="pre">#port</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-c">
<span class="sig-name descname"><span class="pre">-c</span></span><span class="sig-prename descclassname"> <span class="pre">class</span></span><a class="headerlink" href="#cmdoption-dig-c" title="Link to this definition"></a></dt>
<dd><p>This option sets the query class. The default <code class="docutils literal notranslate"><span class="pre">class</span></code> is IN; other classes are
HS for Hesiod records or CH for Chaosnet records.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-f">
<span class="sig-name descname"><span class="pre">-f</span></span><span class="sig-prename descclassname"> <span class="pre">file</span></span><a class="headerlink" href="#cmdoption-dig-f" title="Link to this definition"></a></dt>
<dd><p>This option sets batch mode, in which <strong class="program">dig</strong> reads a list of lookup requests to process from
the given <code class="docutils literal notranslate"><span class="pre">file</span></code>. Each line in the file should be organized in the
same way it would be presented as a query to <strong class="program">dig</strong> using the
command-line interface.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-h">
<span class="sig-name descname"><span class="pre">-h</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-h" title="Link to this definition"></a></dt>
<dd><p>Print a usage summary.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-k">
<span class="sig-name descname"><span class="pre">-k</span></span><span class="sig-prename descclassname"> <span class="pre">keyfile</span></span><a class="headerlink" href="#cmdoption-dig-k" title="Link to this definition"></a></dt>
<dd><p>This option tells <strong class="program">dig</strong> to sign queries using TSIG or
SIG(0) using a key read from the given file. Key files can be
generated using <a class="reference internal" href="#std-iscman-tsig-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">tsig-keygen</span></code></a>. When using TSIG authentication
with <strong class="program">dig</strong>, 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 <code class="docutils literal notranslate"><span class="pre">key</span></code> and <code class="docutils literal notranslate"><span class="pre">server</span></code> statements
in <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a> for TSIG and by looking up the KEY record
in zone data for SIG(0).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-m">
<span class="sig-name descname"><span class="pre">-m</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-m" title="Link to this definition"></a></dt>
<dd><p>This option enables memory usage debugging.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-p">
<span class="sig-name descname"><span class="pre">-p</span></span><span class="sig-prename descclassname"> <span class="pre">port</span></span><a class="headerlink" href="#cmdoption-dig-p" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-q">
<span class="sig-name descname"><span class="pre">-q</span></span><span class="sig-prename descclassname"> <span class="pre">name</span></span><a class="headerlink" href="#cmdoption-dig-q" title="Link to this definition"></a></dt>
<dd><p>This option specifies the domain name to query. This is useful to distinguish the <code class="docutils literal notranslate"><span class="pre">name</span></code>
from other arguments.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-r">
<span class="sig-name descname"><span class="pre">-r</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-r" title="Link to this definition"></a></dt>
<dd><p>This option indicates that options from <code class="docutils literal notranslate"><span class="pre">${HOME}/.digrc</span></code> should not be read. This is useful for
scripts that need predictable behavior.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-t">
<span class="sig-name descname"><span class="pre">-t</span></span><span class="sig-prename descclassname"> <span class="pre">type</span></span><a class="headerlink" href="#cmdoption-dig-t" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">NS</span></code> or <code class="docutils literal notranslate"><span class="pre">AAAA</span></code>). The default query type is
<code class="docutils literal notranslate"><span class="pre">A</span></code>, unless the <a class="reference internal" href="#cmdoption-dig-x"><code class="xref std std-option docutils literal notranslate"><span class="pre">-x</span></code></a> 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
<code class="docutils literal notranslate"><span class="pre">type</span></code> to <code class="docutils literal notranslate"><span class="pre">ixfr=N</span></code>. The incremental zone transfer contains
all changes made to the zone since the serial number in the zone’s
SOA record was <code class="docutils literal notranslate"><span class="pre">N</span></code>.</p>
<p>All resource record types can be expressed as <code class="docutils literal notranslate"><span class="pre">TYPEnn</span></code>, where <code class="docutils literal notranslate"><span class="pre">nn</span></code> is
the number of the type. If the resource record type is not supported
in BIND 9, the result is displayed as described in <span class="target" id="index-7"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3597.html"><strong>RFC 3597</strong></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-u">
<span class="sig-name descname"><span class="pre">-u</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-u" title="Link to this definition"></a></dt>
<dd><p>This option indicates that print query times should be provided in microseconds instead of milliseconds.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-v">
<span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-v" title="Link to this definition"></a></dt>
<dd><p>This option prints the version number and exits.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-x">
<span class="sig-name descname"><span class="pre">-x</span></span><span class="sig-prename descclassname"> <span class="pre">addr</span></span><a class="headerlink" href="#cmdoption-dig-x" title="Link to this definition"></a></dt>
<dd><p>This option sets simplified reverse lookups, for mapping addresses to names. The
<code class="docutils literal notranslate"><span class="pre">addr</span></code> is an IPv4 address in dotted-decimal notation, or a
colon-delimited IPv6 address. When the <a class="reference internal" href="#cmdoption-dig-x"><code class="xref std std-option docutils literal notranslate"><span class="pre">-x</span></code></a> option is used, there is no
need to provide the <code class="docutils literal notranslate"><span class="pre">name</span></code>, <code class="docutils literal notranslate"><span class="pre">class</span></code>, and <code class="docutils literal notranslate"><span class="pre">type</span></code> arguments.
<strong class="program">dig</strong> automatically performs a lookup for a name like
<code class="docutils literal notranslate"><span class="pre">94.2.0.192.in-addr.arpa</span></code> 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-y">
<span class="sig-name descname"><span class="pre">-y</span></span><span class="sig-prename descclassname"> <span class="pre">[hmac:]keyname:secret</span></span><a class="headerlink" href="#cmdoption-dig-y" title="Link to this definition"></a></dt>
<dd><p>This option signs queries using TSIG with the given authentication key.
<code class="docutils literal notranslate"><span class="pre">keyname</span></code> is the name of the key, and <code class="docutils literal notranslate"><span class="pre">secret</span></code> is the
base64-encoded shared secret. <code class="docutils literal notranslate"><span class="pre">hmac</span></code> is the name of the key algorithm;
valid choices are <code class="docutils literal notranslate"><span class="pre">hmac-md5</span></code>, <code class="docutils literal notranslate"><span class="pre">hmac-sha1</span></code>, <code class="docutils literal notranslate"><span class="pre">hmac-sha224</span></code>,
<code class="docutils literal notranslate"><span class="pre">hmac-sha256</span></code>, <code class="docutils literal notranslate"><span class="pre">hmac-sha384</span></code>, or <code class="docutils literal notranslate"><span class="pre">hmac-sha512</span></code>. If <code class="docutils literal notranslate"><span class="pre">hmac</span></code> is
not specified, the default is <code class="docutils literal notranslate"><span class="pre">hmac-md5</span></code>; if MD5 was disabled, the default is
<code class="docutils literal notranslate"><span class="pre">hmac-sha256</span></code>.</p>
</dd></dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Only the <a class="reference internal" href="#cmdoption-dig-k"><code class="xref std std-option docutils literal notranslate"><span class="pre">-k</span></code></a> option should be used, rather than the <a class="reference internal" href="#cmdoption-dig-y"><code class="xref std std-option docutils literal notranslate"><span class="pre">-y</span></code></a> option,
because with <a class="reference internal" href="#cmdoption-dig-y"><code class="xref std std-option docutils literal notranslate"><span class="pre">-y</span></code></a> the shared secret is supplied as a command-line
argument in clear text. This may be visible in the output from <code class="docutils literal notranslate"><span class="pre">ps1</span></code> or
in a history file maintained by the user’s shell.</p>
</div>
</section>
<section id="id12">
<h3>Query Options<a class="headerlink" href="#id12" title="Link to this heading"></a></h3>
<p><strong class="program">dig</strong> provides a number of query options which affect the way in which
lookups are made and the results displayed. Some of these set or reset
flag bits in the query header, some determine which sections of the
answer get printed, and others determine the timeout and retry
strategies.</p>
<p>Each query option is identified by a keyword preceded by a plus sign
(<code class="docutils literal notranslate"><span class="pre">+</span></code>). Some keywords set or reset an option; these may be preceded by
the string <code class="docutils literal notranslate"><span class="pre">no</span></code> to negate the meaning of that keyword. Other keywords
assign values to options, like the timeout interval. They have the form
<code class="docutils literal notranslate"><span class="pre">+keyword=value</span></code>. Keywords may be abbreviated, provided the
abbreviation is unambiguous; for example, <a class="reference internal" href="#cmdoption-dig-arg-cd"><code class="xref std std-option docutils literal notranslate"><span class="pre">+cd</span></code></a> is equivalent to
<a class="reference internal" href="#cmdoption-dig-arg-cd"><code class="xref std std-option docutils literal notranslate"><span class="pre">+cdflag</span></code></a>. The query options are:</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-aaflag">
<span id="cmdoption-dig-arg-noaaflag"></span><span class="sig-name descname"><span class="pre">+aaflag</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noaaflag</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-aaflag" title="Link to this definition"></a></dt>
<dd><p>This option is a synonym for <a class="reference internal" href="#cmdoption-dig-arg-aaonly"><code class="xref std std-option docutils literal notranslate"><span class="pre">+aaonly</span></code></a>, <a class="reference internal" href="#cmdoption-dig-arg-aaonly"><code class="xref std std-option docutils literal notranslate"><span class="pre">+noaaonly</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-aaonly">
<span id="cmdoption-dig-arg-noaaonly"></span><span class="sig-name descname"><span class="pre">+aaonly</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noaaonly</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-aaonly" title="Link to this definition"></a></dt>
<dd><p>This option sets the <code class="docutils literal notranslate"><span class="pre">aa</span></code> flag in the query.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-additional">
<span id="cmdoption-dig-arg-noadditional"></span><span class="sig-name descname"><span class="pre">+additional</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noadditional</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-additional" title="Link to this definition"></a></dt>
<dd><p>This option displays [or does not display] the additional section of a reply. The
default is to display it.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-adflag">
<span id="cmdoption-dig-arg-noadflag"></span><span class="sig-name descname"><span class="pre">+adflag</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noadflag</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-adflag" title="Link to this definition"></a></dt>
<dd><p>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 been validated as secure, according to the security
policy of the server. <code class="docutils literal notranslate"><span class="pre">AD=1</span></code> indicates that all records have been
validated as secure and the answer is not from a OPT-OUT range. <code class="docutils literal notranslate"><span class="pre">AD=0</span></code>
indicates that some part of the answer was insecure or not validated.
This bit is set by default.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-all">
<span id="cmdoption-dig-arg-noall"></span><span class="sig-name descname"><span class="pre">+all</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noall</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-all" title="Link to this definition"></a></dt>
<dd><p>This option sets or clears all display flags.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-answer">
<span id="cmdoption-dig-arg-noanswer"></span><span class="sig-name descname"><span class="pre">+answer</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noanswer</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-answer" title="Link to this definition"></a></dt>
<dd><p>This option displays [or does not display] the answer section of a reply. The default
is to display it.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-authority">
<span id="cmdoption-dig-arg-noauthority"></span><span class="sig-name descname"><span class="pre">+authority</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noauthority</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-authority" title="Link to this definition"></a></dt>
<dd><p>This option displays [or does not display] the authority section of a reply. The
default is to display it.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-badcookie">
<span id="cmdoption-dig-arg-nobadcookie"></span><span class="sig-name descname"><span class="pre">+badcookie</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nobadcookie</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-badcookie" title="Link to this definition"></a></dt>
<dd><p>This option retries the lookup with a new server cookie if a BADCOOKIE response is
received.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-besteffort">
<span id="cmdoption-dig-arg-nobesteffort"></span><span class="sig-name descname"><span class="pre">+besteffort</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nobesteffort</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-besteffort" title="Link to this definition"></a></dt>
<dd><p>This option attempts to display the contents of messages which are malformed. The
default is to not display malformed answers.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-bufsize">
<span class="sig-name descname"><span class="pre">+bufsize</span></span><span class="sig-prename descclassname"><span class="pre">[=B]</span></span><a class="headerlink" href="#cmdoption-dig-arg-bufsize" title="Link to this definition"></a></dt>
<dd><p>This option sets the UDP message buffer size advertised using EDNS0 to
<code class="docutils literal notranslate"><span class="pre">B</span></code> bytes. The maximum and minimum sizes of this buffer are 65535 and
0, respectively. <code class="docutils literal notranslate"><span class="pre">+bufsize</span></code> restores the default buffer size.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-cd">
<span id="cmdoption-dig-arg-cdflag"></span><span id="cmdoption-dig-arg-nocdflag"></span><span class="sig-name descname"><span class="pre">+cd</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+cdflag</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nocdflag</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-cd" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-class">
<span id="cmdoption-dig-arg-noclass"></span><span class="sig-name descname"><span class="pre">+class</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noclass</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-class" title="Link to this definition"></a></dt>
<dd><p>This option displays [or does not display] the CLASS when printing the record.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-cmd">
<span id="cmdoption-dig-arg-nocmd"></span><span class="sig-name descname"><span class="pre">+cmd</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nocmd</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-cmd" title="Link to this definition"></a></dt>
<dd><p>This option toggles the printing of the initial comment in the output, identifying the
version of <strong class="program">dig</strong> 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-coflag">
<span id="cmdoption-dig-arg-co"></span><span id="cmdoption-dig-arg-nocoflag"></span><span id="cmdoption-dig-arg-noco"></span><span class="sig-name descname"><span class="pre">+coflag</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+co</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nocoflag</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noco</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-coflag" title="Link to this definition"></a></dt>
<dd><p>This option sets [or does not set] the CO (Compact denial of
existence Ok) EDNS bit in the query. If set, it tells servers
that Compact Denial of Existence responses are acceptable when
replying to queries. The default is <code class="docutils literal notranslate"><span class="pre">+nocoflag</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-comments">
<span id="cmdoption-dig-arg-nocomments"></span><span class="sig-name descname"><span class="pre">+comments</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nocomments</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-comments" title="Link to this definition"></a></dt>
<dd><p>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.</p>
<p>Other types of comments in the output are not affected by this option, but
can be controlled using other command-line switches. These include
<a class="reference internal" href="#cmdoption-dig-arg-cmd"><code class="xref std std-option docutils literal notranslate"><span class="pre">+cmd</span></code></a>, <a class="reference internal" href="#cmdoption-dig-arg-question"><code class="xref std std-option docutils literal notranslate"><span class="pre">+question</span></code></a>, <a class="reference internal" href="#cmdoption-dig-arg-stats"><code class="xref std std-option docutils literal notranslate"><span class="pre">+stats</span></code></a>, and <a class="reference internal" href="#cmdoption-dig-arg-rrcomments"><code class="xref std std-option docutils literal notranslate"><span class="pre">+rrcomments</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-cookie">
<span id="cmdoption-dig-arg-nocookie"></span><span class="sig-name descname"><span class="pre">+cookie</span></span><span class="sig-prename descclassname"><span class="pre">=####</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nocookie</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-cookie" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">+cookie</span></code>.</p>
<p><code class="docutils literal notranslate"><span class="pre">+cookie</span></code> is also set when <a class="reference internal" href="#cmdoption-dig-arg-trace"><code class="xref std std-option docutils literal notranslate"><span class="pre">+trace</span></code></a> is set to better emulate the
default queries from a nameserver.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-crypto">
<span id="cmdoption-dig-arg-nocrypto"></span><span class="sig-name descname"><span class="pre">+crypto</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nocrypto</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-crypto" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">[omitted]</span></code> or, in the DNSKEY case, the
key ID is displayed as the replacement, e.g. <code class="docutils literal notranslate"><span class="pre">[</span> <span class="pre">key</span> <span class="pre">id</span> <span class="pre">=</span> <span class="pre">value</span> <span class="pre">]</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-defname">
<span id="cmdoption-dig-arg-nodefname"></span><span class="sig-name descname"><span class="pre">+defname</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nodefname</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-defname" title="Link to this definition"></a></dt>
<dd><p>This option, which is deprecated, is treated as a synonym for
<a class="reference internal" href="#cmdoption-dig-arg-search"><code class="xref std std-option docutils literal notranslate"><span class="pre">+search</span></code></a>, <a class="reference internal" href="#cmdoption-dig-arg-search"><code class="xref std std-option docutils literal notranslate"><span class="pre">+nosearch</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-dns64prefix">
<span id="cmdoption-dig-arg-nodns64prefix"></span><span class="sig-name descname"><span class="pre">+dns64prefix</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nodns64prefix</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-dns64prefix" title="Link to this definition"></a></dt>
<dd><p>Lookup IPV4ONLY.ARPA AAAA and print any DNS64 prefixes found.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-dnssec">
<span id="cmdoption-dig-arg-do"></span><span id="cmdoption-dig-arg-nodnssec"></span><span id="cmdoption-dig-arg-nodo"></span><span class="sig-name descname"><span class="pre">+dnssec</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+do</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nodnssec</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nodo</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-dnssec" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-domain">
<span class="sig-name descname"><span class="pre">+domain</span></span><span class="sig-prename descclassname"><span class="pre">=somename</span></span><a class="headerlink" href="#cmdoption-dig-arg-domain" title="Link to this definition"></a></dt>
<dd><p>This option sets the search list to contain the single domain <code class="docutils literal notranslate"><span class="pre">somename</span></code>, as if
specified in a <code class="docutils literal notranslate"><span class="pre">domain</span></code> directive in <code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code>, and
enables search list processing as if the <a class="reference internal" href="#cmdoption-dig-arg-search"><code class="xref std std-option docutils literal notranslate"><span class="pre">+search</span></code></a> option were
given.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-dscp">
<span class="sig-name descname"><span class="pre">+dscp</span></span><span class="sig-prename descclassname"><span class="pre">=value</span></span><a class="headerlink" href="#cmdoption-dig-arg-dscp" title="Link to this definition"></a></dt>
<dd><p>This option formerly set the DSCP value used when sending a query.
It is now obsolete, and has no effect.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-edns">
<span id="cmdoption-dig-arg-noedns"></span><span class="sig-name descname"><span class="pre">+edns</span></span><span class="sig-prename descclassname"><span class="pre">[=#]</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noedns</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-edns" title="Link to this definition"></a></dt>
<dd><p>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.
<code class="docutils literal notranslate"><span class="pre">+noedns</span></code> clears the remembered EDNS version. EDNS is set to 0 by
default.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-ednsflags">
<span id="cmdoption-dig-arg-noednsflags"></span><span class="sig-name descname"><span class="pre">+ednsflags</span></span><span class="sig-prename descclassname"><span class="pre">[=#]</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noednsflags</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-ednsflags" title="Link to this definition"></a></dt>
<dd><p>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, CO) is silently ignored. By default, no Z bits are set.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-ednsnegotiation">
<span id="cmdoption-dig-arg-noednsnegotiation"></span><span class="sig-name descname"><span class="pre">+ednsnegotiation</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noednsnegotiation</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-ednsnegotiation" title="Link to this definition"></a></dt>
<dd><p>This option enables/disables EDNS version negotiation. By default, EDNS version
negotiation is enabled.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-ednsopt">
<span id="cmdoption-dig-arg-noednsopt"></span><span class="sig-name descname"><span class="pre">+ednsopt</span></span><span class="sig-prename descclassname"><span class="pre">[=code[:value]]</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noednsopt</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-ednsopt" title="Link to this definition"></a></dt>
<dd><p>This option specifies the EDNS option with code point <code class="docutils literal notranslate"><span class="pre">code</span></code> and an optional payload
of <code class="docutils literal notranslate"><span class="pre">value</span></code> as a hexadecimal string. <code class="docutils literal notranslate"><span class="pre">code</span></code> can be either an EDNS
option name (for example, <code class="docutils literal notranslate"><span class="pre">NSID</span></code> or <code class="docutils literal notranslate"><span class="pre">ECS</span></code>) or an arbitrary
numeric value. <code class="docutils literal notranslate"><span class="pre">+noednsopt</span></code> clears the EDNS options to be sent.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-expire">
<span id="cmdoption-dig-arg-noexpire"></span><span class="sig-name descname"><span class="pre">+expire</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noexpire</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-expire" title="Link to this definition"></a></dt>
<dd><p>This option sends an EDNS Expire option.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-fail">
<span id="cmdoption-dig-arg-nofail"></span><span class="sig-name descname"><span class="pre">+fail</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nofail</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-fail" title="Link to this definition"></a></dt>
<dd><p>This option indicates that <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-fuzztime">
<span id="cmdoption-dig-arg-nofuzztime"></span><span class="sig-name descname"><span class="pre">+fuzztime</span></span><span class="sig-prename descclassname"><span class="pre">[=value]</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nofuzztime</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-fuzztime" title="Link to this definition"></a></dt>
<dd><p>This option allows the signing time to be specified when generating
signed messages. If a value is specified it is the seconds since
00:00:00 January 1, 1970 UTC ignoring leap seconds. If no value
is specified 1646972129 (Fri 11 Mar 2022 04:15:29 UTC) is used.
The default is <code class="docutils literal notranslate"><span class="pre">+nofuzztime</span></code> and the current time is used.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-header-only">
<span id="cmdoption-dig-arg-noheader-only"></span><span class="sig-name descname"><span class="pre">+header-only</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noheader-only</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-header-only" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-https">
<span id="cmdoption-dig-arg-nohttps"></span><span class="sig-name descname"><span class="pre">+https</span></span><span class="sig-prename descclassname"><span class="pre">[=value]</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nohttps</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-https" title="Link to this definition"></a></dt>
<dd><p>This option indicates whether to use DNS over HTTPS (DoH) when querying
name servers. When this option is in use, the port number defaults to 443.
The HTTP POST request mode is used when sending the query.</p>
<p>If <code class="docutils literal notranslate"><span class="pre">value</span></code> is specified, it will be used as the HTTP endpoint in the
query URI; the default is <code class="docutils literal notranslate"><span class="pre">/dns-query</span></code>. So, for example, <code class="docutils literal notranslate"><span class="pre">dig</span>
<span class="pre">@example.com</span> <span class="pre">+https</span></code> will use the URI <code class="docutils literal notranslate"><span class="pre">https://example.com/dns-query</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-https-get">
<span id="cmdoption-dig-arg-nohttps-get"></span><span class="sig-name descname"><span class="pre">+https-get</span></span><span class="sig-prename descclassname"><span class="pre">[=value]</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nohttps-get</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-https-get" title="Link to this definition"></a></dt>
<dd><p>Similar to <a class="reference internal" href="#cmdoption-dig-arg-https"><code class="xref std std-option docutils literal notranslate"><span class="pre">+https</span></code></a>, except that the HTTP GET request mode is used
when sending the query.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-https-post">
<span id="cmdoption-dig-arg-nohttps-post"></span><span class="sig-name descname"><span class="pre">+https-post</span></span><span class="sig-prename descclassname"><span class="pre">[=value]</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nohttps-post</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-https-post" title="Link to this definition"></a></dt>
<dd><p>Same as <a class="reference internal" href="#cmdoption-dig-arg-https"><code class="xref std std-option docutils literal notranslate"><span class="pre">+https</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-http-plain">
<span id="cmdoption-dig-arg-nohttp-plain"></span><span class="sig-name descname"><span class="pre">+http-plain</span></span><span class="sig-prename descclassname"><span class="pre">[=value]</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nohttp-plain</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-http-plain" title="Link to this definition"></a></dt>
<dd><p>Similar to <a class="reference internal" href="#cmdoption-dig-arg-https"><code class="xref std std-option docutils literal notranslate"><span class="pre">+https</span></code></a>, except that HTTP queries will be sent over a
non-encrypted channel. When this option is in use, the port number
defaults to 80 and the HTTP request mode is POST.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-http-plain-get">
<span id="cmdoption-dig-arg-nohttp-plain-get"></span><span class="sig-name descname"><span class="pre">+http-plain-get</span></span><span class="sig-prename descclassname"><span class="pre">[=value]</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nohttp-plain-get</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-http-plain-get" title="Link to this definition"></a></dt>
<dd><p>Similar to <a class="reference internal" href="#cmdoption-dig-arg-http-plain"><code class="xref std std-option docutils literal notranslate"><span class="pre">+http-plain</span></code></a>, except that the HTTP request mode is GET.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-http-plain-post">
<span id="cmdoption-dig-arg-nohttp-plain-post"></span><span class="sig-name descname"><span class="pre">+http-plain-post</span></span><span class="sig-prename descclassname"><span class="pre">[=value]</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nohttp-plain-post</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-http-plain-post" title="Link to this definition"></a></dt>
<dd><p>Same as <a class="reference internal" href="#cmdoption-dig-arg-http-plain"><code class="xref std std-option docutils literal notranslate"><span class="pre">+http-plain</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-identify">
<span id="cmdoption-dig-arg-noidentify"></span><span class="sig-name descname"><span class="pre">+identify</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noidentify</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-identify" title="Link to this definition"></a></dt>
<dd><p>This option shows [or does not show] the IP address and port number that
supplied the answer, when the <a class="reference internal" href="#cmdoption-dig-arg-short"><code class="xref std std-option docutils literal notranslate"><span class="pre">+short</span></code></a> 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-idnin">
<span id="cmdoption-dig-arg-noidnin"></span><span class="sig-name descname"><span class="pre">+idnin</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noidnin</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-idnin" title="Link to this definition"></a></dt>
<dd><p>This option processes [or does not process] IDN domain names on input. This requires
<code class="docutils literal notranslate"><span class="pre">IDN</span> <span class="pre">SUPPORT</span></code> to have been enabled at compile time.</p>
<p>The default is to process IDN input when standard output is a tty.
The IDN processing on input is disabled when <strong class="program">dig</strong> output is redirected
to files, pipes, and other non-tty file descriptors.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-idnout">
<span id="cmdoption-dig-arg-noidnout"></span><span class="sig-name descname"><span class="pre">+idnout</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noidnout</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-idnout" title="Link to this definition"></a></dt>
<dd><p>This option converts [or does not convert] puny code on output. This requires
<code class="docutils literal notranslate"><span class="pre">IDN</span> <span class="pre">SUPPORT</span></code> to have been enabled at compile time.</p>
<p>The default is to process puny code on output when standard output is
a tty. The puny code processing on output is disabled when <strong class="program">dig</strong> output
is redirected to files, pipes, and other non-tty file descriptors.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-ignore">
<span id="cmdoption-dig-arg-noignore"></span><span class="sig-name descname"><span class="pre">+ignore</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noignore</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-ignore" title="Link to this definition"></a></dt>
<dd><p>This option ignores [or does not ignore] truncation in UDP responses instead of retrying with TCP. By
default, TCP retries are performed.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-keepalive">
<span id="cmdoption-dig-arg-nokeepalive"></span><span class="sig-name descname"><span class="pre">+keepalive</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nokeepalive</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-keepalive" title="Link to this definition"></a></dt>
<dd><p>This option sends [or does not send] an EDNS Keepalive option.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-keepopen">
<span id="cmdoption-dig-arg-nokeepopen"></span><span class="sig-name descname"><span class="pre">+keepopen</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nokeepopen</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-keepopen" title="Link to this definition"></a></dt>
<dd><p>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
<code class="docutils literal notranslate"><span class="pre">+nokeepopen</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-multiline">
<span id="cmdoption-dig-arg-nomultiline"></span><span class="sig-name descname"><span class="pre">+multiline</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nomultiline</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-multiline" title="Link to this definition"></a></dt>
<dd><p>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 <strong class="program">dig</strong> output.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-ndots">
<span class="sig-name descname"><span class="pre">+ndots</span></span><span class="sig-prename descclassname"><span class="pre">=D</span></span><a class="headerlink" href="#cmdoption-dig-arg-ndots" title="Link to this definition"></a></dt>
<dd><p>This option sets the number of dots (<code class="docutils literal notranslate"><span class="pre">D</span></code>) that must appear in <code class="docutils literal notranslate"><span class="pre">name</span></code> for
it to be considered absolute. The default value is that defined using
the <code class="docutils literal notranslate"><span class="pre">ndots</span></code> statement in <code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code>, or 1 if no <code class="docutils literal notranslate"><span class="pre">ndots</span></code>
statement is present. Names with fewer dots are interpreted as
relative names, and are searched for in the domains listed in the
<code class="docutils literal notranslate"><span class="pre">search</span></code> or <code class="docutils literal notranslate"><span class="pre">domain</span></code> directive in <code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code> if
<a class="reference internal" href="#cmdoption-dig-arg-search"><code class="xref std std-option docutils literal notranslate"><span class="pre">+search</span></code></a> is set.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-nsid">
<span id="cmdoption-dig-arg-nonsid"></span><span class="sig-name descname"><span class="pre">+nsid</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nonsid</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-nsid" title="Link to this definition"></a></dt>
<dd><p>When enabled, this option includes an EDNS name server ID request when sending a query.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-nssearch">
<span id="cmdoption-dig-arg-nonssearch"></span><span class="sig-name descname"><span class="pre">+nssearch</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nonssearch</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-nssearch" title="Link to this definition"></a></dt>
<dd><p>When this option is set, <strong class="program">dig</strong> attempts to find the authoritative
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 did not respond are also printed.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-onesoa">
<span id="cmdoption-dig-arg-noonesoa"></span><span class="sig-name descname"><span class="pre">+onesoa</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noonesoa</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-onesoa" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-opcode">
<span id="cmdoption-dig-arg-noopcode"></span><span class="sig-name descname"><span class="pre">+opcode</span></span><span class="sig-prename descclassname"><span class="pre">=value</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noopcode</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-opcode" title="Link to this definition"></a></dt>
<dd><p>When enabled, this option sets (restores) the DNS message opcode to the specified value. The
default value is QUERY (0).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-padding">
<span class="sig-name descname"><span class="pre">+padding</span></span><span class="sig-prename descclassname"><span class="pre">=value</span></span><a class="headerlink" href="#cmdoption-dig-arg-padding" title="Link to this definition"></a></dt>
<dd><p>This option pads the size of the query packet using the EDNS Padding option to
blocks of <code class="docutils literal notranslate"><span class="pre">value</span></code> bytes. For example, <code class="docutils literal notranslate"><span class="pre">+padding=32</span></code> 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
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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-qid">
<span class="sig-name descname"><span class="pre">+qid</span></span><span class="sig-prename descclassname"><span class="pre">=value</span></span><a class="headerlink" href="#cmdoption-dig-arg-qid" title="Link to this definition"></a></dt>
<dd><p>This option specifies the query ID to use when sending queries.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-qr">
<span id="cmdoption-dig-arg-noqr"></span><span class="sig-name descname"><span class="pre">+qr</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noqr</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-qr" title="Link to this definition"></a></dt>
<dd><p>This option toggles the display of the query message as it is sent. By default, the query
is not printed.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-question">
<span id="cmdoption-dig-arg-noquestion"></span><span class="sig-name descname"><span class="pre">+question</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noquestion</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-question" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-raflag">
<span id="cmdoption-dig-arg-noraflag"></span><span class="sig-name descname"><span class="pre">+raflag</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noraflag</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-raflag" title="Link to this definition"></a></dt>
<dd><p>This option sets [or does not set] the RA (Recursion Available) bit in the query. The
default is <code class="docutils literal notranslate"><span class="pre">+noraflag</span></code>. This bit is ignored by the server for
QUERY.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-rdflag">
<span id="cmdoption-dig-arg-nordflag"></span><span class="sig-name descname"><span class="pre">+rdflag</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nordflag</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-rdflag" title="Link to this definition"></a></dt>
<dd><p>This option is a synonym for <a class="reference internal" href="#cmdoption-dig-arg-recurse"><code class="xref std std-option docutils literal notranslate"><span class="pre">+recurse</span></code></a>, <a class="reference internal" href="#cmdoption-dig-arg-recurse"><code class="xref std std-option docutils literal notranslate"><span class="pre">+norecurse</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-recurse">
<span id="cmdoption-dig-arg-norecurse"></span><span class="sig-name descname"><span class="pre">+recurse</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+norecurse</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-recurse" title="Link to this definition"></a></dt>
<dd><p>This option toggles the setting of the RD (recursion desired) bit in the query.
This bit is set by default, which means <strong class="program">dig</strong> normally sends
recursive queries. Recursion is automatically disabled when the
<a class="reference internal" href="#cmdoption-dig-arg-nssearch"><code class="xref std std-option docutils literal notranslate"><span class="pre">+nssearch</span></code></a> or <a class="reference internal" href="#cmdoption-dig-arg-trace"><code class="xref std std-option docutils literal notranslate"><span class="pre">+trace</span></code></a> query option is used.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-retry">
<span class="sig-name descname"><span class="pre">+retry</span></span><span class="sig-prename descclassname"><span class="pre">=T</span></span><a class="headerlink" href="#cmdoption-dig-arg-retry" title="Link to this definition"></a></dt>
<dd><p>This option sets the number of times to retry UDP and TCP queries to server to <code class="docutils literal notranslate"><span class="pre">T</span></code>
instead of the default, 2. Unlike <a class="reference internal" href="#cmdoption-dig-arg-tries"><code class="xref std std-option docutils literal notranslate"><span class="pre">+tries</span></code></a>, this does not include
the initial query.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-rrcomments">
<span id="cmdoption-dig-arg-norrcomments"></span><span class="sig-name descname"><span class="pre">+rrcomments</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+norrcomments</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-rrcomments" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-search">
<span id="cmdoption-dig-arg-nosearch"></span><span class="sig-name descname"><span class="pre">+search</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nosearch</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-search" title="Link to this definition"></a></dt>
<dd><p>This option uses [or does not use] the search list defined by the searchlist or domain
directive in <code class="docutils literal notranslate"><span class="pre">resolv.conf</span></code>, if any. The search list is not used by
default.</p>
<p><code class="docutils literal notranslate"><span class="pre">ndots</span></code> from <code class="docutils literal notranslate"><span class="pre">resolv.conf</span></code> (default 1), which may be overridden by
<a class="reference internal" href="#cmdoption-dig-arg-ndots"><code class="xref std std-option docutils literal notranslate"><span class="pre">+ndots</span></code></a>, determines whether the name is treated as relative
and hence whether a search is eventually performed.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-short">
<span id="cmdoption-dig-arg-noshort"></span><span class="sig-name descname"><span class="pre">+short</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noshort</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-short" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-showbadcookie">
<span id="cmdoption-dig-arg-noshowbadcookie"></span><span class="sig-name descname"><span class="pre">+showbadcookie</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noshowbadcookie</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-showbadcookie" title="Link to this definition"></a></dt>
<dd><p>This option toggles whether to show the message containing the
BADCOOKIE rcode before retrying the request or not. The default
is to not show the messages.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-showsearch">
<span id="cmdoption-dig-arg-noshowsearch"></span><span class="sig-name descname"><span class="pre">+showsearch</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noshowsearch</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-showsearch" title="Link to this definition"></a></dt>
<dd><p>This option performs [or does not perform] a search showing intermediate results.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-sigchase">
<span id="cmdoption-dig-arg-nosigchase"></span><span class="sig-name descname"><span class="pre">+sigchase</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nosigchase</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-sigchase" title="Link to this definition"></a></dt>
<dd><p>This feature is now obsolete and has been removed; use <a class="reference internal" href="#std-iscman-delv"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">delv</span></code></a>
instead.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-split">
<span class="sig-name descname"><span class="pre">+split</span></span><span class="sig-prename descclassname"><span class="pre">=W</span></span><a class="headerlink" href="#cmdoption-dig-arg-split" title="Link to this definition"></a></dt>
<dd><p>This option splits long hex- or base64-formatted fields in resource records into
chunks of <code class="docutils literal notranslate"><span class="pre">W</span></code> characters (where <code class="docutils literal notranslate"><span class="pre">W</span></code> is rounded up to the nearest
multiple of 4). <code class="docutils literal notranslate"><span class="pre">+nosplit</span></code> or <code class="docutils literal notranslate"><span class="pre">+split=0</span></code> causes fields not to be
split at all. The default is 56 characters, or 44 characters when
multiline mode is active.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-stats">
<span id="cmdoption-dig-arg-nostats"></span><span class="sig-name descname"><span class="pre">+stats</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nostats</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-stats" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-subnet">
<span id="cmdoption-dig-arg-nosubnet"></span><span class="sig-name descname"><span class="pre">+subnet</span></span><span class="sig-prename descclassname"><span class="pre">=addr[/prefix-length]</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nosubnet</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-subnet" title="Link to this definition"></a></dt>
<dd><p>This option sends [or does not send] an EDNS CLIENT-SUBNET option with the specified IP
address or network prefix.</p>
<p><code class="docutils literal notranslate"><span class="pre">dig</span> <span class="pre">+subnet=0.0.0.0/0</span></code>, or simply <code class="docutils literal notranslate"><span class="pre">dig</span> <span class="pre">+subnet=0</span></code> for short,
sends an EDNS CLIENT-SUBNET option with an empty address and a source
prefix-length of zero, which signals a resolver that the client’s
address information must <em>not</em> be used when resolving this query.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-tcflag">
<span id="cmdoption-dig-arg-notcflag"></span><span class="sig-name descname"><span class="pre">+tcflag</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+notcflag</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-tcflag" title="Link to this definition"></a></dt>
<dd><p>This option sets [or does not set] the TC (TrunCation) bit in the query. The default is
<code class="docutils literal notranslate"><span class="pre">+notcflag</span></code>. This bit is ignored by the server for QUERY.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-tcp">
<span id="cmdoption-dig-arg-notcp"></span><span class="sig-name descname"><span class="pre">+tcp</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+notcp</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-tcp" title="Link to this definition"></a></dt>
<dd><p>This option indicates whether to use TCP when querying name
servers. The default behavior is to use UDP unless a type <code class="docutils literal notranslate"><span class="pre">any</span></code>
or <code class="docutils literal notranslate"><span class="pre">ixfr=N</span></code> query is requested, in which case the default is
TCP. AXFR queries always use TCP. To prevent retry over TCP when
TC=1 is returned from a UDP query, use <code class="docutils literal notranslate"><span class="pre">+ignore</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-timeout">
<span class="sig-name descname"><span class="pre">+timeout</span></span><span class="sig-prename descclassname"><span class="pre">=T</span></span><a class="headerlink" href="#cmdoption-dig-arg-timeout" title="Link to this definition"></a></dt>
<dd><p>This option sets the timeout for a query to <code class="docutils literal notranslate"><span class="pre">T</span></code> seconds. The default timeout is
5 seconds. An attempt to set <code class="docutils literal notranslate"><span class="pre">T</span></code> to less than 1 is silently set to 1.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-tls">
<span id="cmdoption-dig-arg-notls"></span><span class="sig-name descname"><span class="pre">+tls</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+notls</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-tls" title="Link to this definition"></a></dt>
<dd><p>This option indicates whether to use DNS over TLS (DoT) when querying
name servers. When this option is in use, the port number defaults
to 853.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-tls-ca">
<span id="cmdoption-dig-arg-notls-ca"></span><span class="sig-name descname"><span class="pre">+tls-ca</span></span><span class="sig-prename descclassname"><span class="pre">[=file-name]</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+notls-ca</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-tls-ca" title="Link to this definition"></a></dt>
<dd><p>This option enables remote server TLS certificate validation for
DNS transports, relying on TLS. Certificate authorities
certificates are loaded from the specified PEM file
(<code class="docutils literal notranslate"><span class="pre">file-name</span></code>). If the file is not specified, the default
certificates from the global certificates store are used.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-tls-certfile">
<span id="cmdoption-dig-arg-tls-keyfile"></span><span id="cmdoption-dig-arg-notls-certfile"></span><span id="cmdoption-dig-arg-notls-keyfile"></span><span class="sig-name descname"><span class="pre">+tls-certfile</span></span><span class="sig-prename descclassname"><span class="pre">=file-name</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+tls-keyfile</span></span><span class="sig-prename descclassname"><span class="pre">=file-name</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+notls-certfile</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+notls-keyfile</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-tls-certfile" title="Link to this definition"></a></dt>
<dd><p>These options set the state of certificate-based client
authentication for DNS transports, relying on TLS. Both certificate
chain file and private key file are expected to be in PEM format.
Both options must be specified at the same time.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-tls-hostname">
<span id="cmdoption-dig-arg-notls-hostname"></span><span class="sig-name descname"><span class="pre">+tls-hostname</span></span><span class="sig-prename descclassname"><span class="pre">=hostname</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+notls-hostname</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-tls-hostname" title="Link to this definition"></a></dt>
<dd><p>This option makes <strong class="program">dig</strong> use the provided hostname during remote
server TLS certificate verification. Otherwise, the DNS server name
is used. This option has no effect if <a class="reference internal" href="#cmdoption-dig-arg-tls-ca"><code class="xref std std-option docutils literal notranslate"><span class="pre">+tls-ca</span></code></a> is not specified.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-topdown">
<span id="cmdoption-dig-arg-notopdown"></span><span class="sig-name descname"><span class="pre">+topdown</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+notopdown</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-topdown" title="Link to this definition"></a></dt>
<dd><p>This feature is related to <a class="reference internal" href="#cmdoption-dig-arg-sigchase"><code class="xref std std-option docutils literal notranslate"><span class="pre">dig</span> <span class="pre">+sigchase</span></code></a>, which is obsolete and
has been removed. Use <a class="reference internal" href="#std-iscman-delv"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">delv</span></code></a> instead.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-trace">
<span id="cmdoption-dig-arg-notrace"></span><span class="sig-name descname"><span class="pre">+trace</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+notrace</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-trace" title="Link to this definition"></a></dt>
<dd><p>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, <strong class="program">dig</strong> makes iterative queries to resolve the
name being looked up. It follows referrals from the root servers,
showing the answer from each server that was used to resolve the
lookup.</p>
<p>If <code class="docutils literal notranslate"><span class="pre">@server</span></code> is also specified, it affects only the initial query for
the root zone name servers.</p>
<p><a class="reference internal" href="#cmdoption-dig-arg-dnssec"><code class="xref std std-option docutils literal notranslate"><span class="pre">+dnssec</span></code></a> is also set when <a class="reference internal" href="#cmdoption-dig-arg-trace"><code class="xref std std-option docutils literal notranslate"><span class="pre">+trace</span></code></a> is set, to better emulate the
default queries from a name server.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-tries">
<span class="sig-name descname"><span class="pre">+tries</span></span><span class="sig-prename descclassname"><span class="pre">=T</span></span><a class="headerlink" href="#cmdoption-dig-arg-tries" title="Link to this definition"></a></dt>
<dd><p>This option sets the number of times to try UDP and TCP queries to server to <code class="docutils literal notranslate"><span class="pre">T</span></code>
instead of the default, 3. If <code class="docutils literal notranslate"><span class="pre">T</span></code> is less than or equal to zero,
the number of tries is silently rounded up to 1.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-trusted-key">
<span class="sig-name descname"><span class="pre">+trusted-key</span></span><span class="sig-prename descclassname"><span class="pre">=####</span></span><a class="headerlink" href="#cmdoption-dig-arg-trusted-key" title="Link to this definition"></a></dt>
<dd><p>This option formerly specified trusted keys for use with <a class="reference internal" href="#cmdoption-dig-arg-sigchase"><code class="xref std std-option docutils literal notranslate"><span class="pre">dig</span> <span class="pre">+sigchase</span></code></a>. This
feature is now obsolete and has been removed; use <a class="reference internal" href="#std-iscman-delv"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">delv</span></code></a> instead.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-ttlid">
<span id="cmdoption-dig-arg-nottlid"></span><span class="sig-name descname"><span class="pre">+ttlid</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nottlid</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-ttlid" title="Link to this definition"></a></dt>
<dd><p>This option displays [or does not display] the TTL when printing the record.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-ttlunits">
<span id="cmdoption-dig-arg-nottlunits"></span><span class="sig-name descname"><span class="pre">+ttlunits</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nottlunits</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-ttlunits" title="Link to this definition"></a></dt>
<dd><p>This option displays [or does not display] the TTL in friendly human-readable time
units of <code class="docutils literal notranslate"><span class="pre">s</span></code>, <code class="docutils literal notranslate"><span class="pre">m</span></code>, <code class="docutils literal notranslate"><span class="pre">h</span></code>, <code class="docutils literal notranslate"><span class="pre">d</span></code>, and <code class="docutils literal notranslate"><span class="pre">w</span></code>, representing seconds, minutes,
hours, days, and weeks. This implies <a class="reference internal" href="#cmdoption-dig-arg-ttlid"><code class="xref std std-option docutils literal notranslate"><span class="pre">+ttlid</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-unknownformat">
<span id="cmdoption-dig-arg-nounknownformat"></span><span class="sig-name descname"><span class="pre">+unknownformat</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nounknownformat</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-unknownformat" title="Link to this definition"></a></dt>
<dd><p>This option prints all RDATA in unknown RR type presentation format (<span class="target" id="index-8"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3597.html"><strong>RFC 3597</strong></a>).
The default is to print RDATA for known types in the type’s
presentation format.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-vc">
<span id="cmdoption-dig-arg-novc"></span><span class="sig-name descname"><span class="pre">+vc</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+novc</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-vc" title="Link to this definition"></a></dt>
<dd><p>This option uses [or does not use] TCP when querying name servers. This alternate
syntax to <a class="reference internal" href="#cmdoption-dig-arg-tcp"><code class="xref std std-option docutils literal notranslate"><span class="pre">+tcp</span></code></a> is provided for backwards compatibility. The
<code class="docutils literal notranslate"><span class="pre">vc</span></code> stands for “virtual circuit.”</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-yaml">
<span id="cmdoption-dig-arg-noyaml"></span><span class="sig-name descname"><span class="pre">+yaml</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noyaml</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-yaml" title="Link to this definition"></a></dt>
<dd><p>When enabled, this option prints the responses (and, if <a class="reference internal" href="#cmdoption-dig-arg-qr"><code class="xref std std-option docutils literal notranslate"><span class="pre">+qr</span></code></a> is in use, also the
outgoing queries) in a detailed YAML format.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dig-arg-zflag">
<span id="cmdoption-dig-arg-nozflag"></span><span class="sig-name descname"><span class="pre">+zflag</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nozflag</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dig-arg-zflag" title="Link to this definition"></a></dt>
<dd><p>This option sets [or does not set] the last unassigned DNS header flag in a DNS query.
This flag is off by default.</p>
</dd></dl>
</section>
<section id="multiple-queries">
<h3>Multiple Queries<a class="headerlink" href="#multiple-queries" title="Link to this heading"></a></h3>
<p>The BIND 9 implementation of <strong class="program">dig</strong> supports specifying multiple
queries on the command line (in addition to supporting the <a class="reference internal" href="#cmdoption-dig-f"><code class="xref std std-option docutils literal notranslate"><span class="pre">-f</span></code></a> batch
file option). Each of those queries can be supplied with its own set of
flags, options, and query options.</p>
<p>In this case, each <code class="docutils literal notranslate"><span class="pre">query</span></code> 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
query.</p>
<p>A global set of query options, which should be applied to all queries,
can also be supplied. These global query options must precede the first
tuple of name, class, type, options, flags, and query options supplied
on the command line. Any global query options (except <a class="reference internal" href="#cmdoption-dig-arg-cmd"><code class="xref std std-option docutils literal notranslate"><span class="pre">+cmd</span></code></a> and
<a class="reference internal" href="#cmdoption-dig-arg-short"><code class="xref std std-option docutils literal notranslate"><span class="pre">+short</span></code></a> options) can be overridden by a query-specific set of
query options. For example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">dig</span> <span class="o">+</span><span class="n">qr</span> <span class="n">www</span><span class="o">.</span><span class="n">isc</span><span class="o">.</span><span class="n">org</span> <span class="nb">any</span> <span class="o">-</span><span class="n">x</span> <span class="mf">127.0.0.1</span> <span class="n">isc</span><span class="o">.</span><span class="n">org</span> <span class="n">ns</span> <span class="o">+</span><span class="n">noqr</span>
</pre></div>
</div>
<p>shows how <strong class="program">dig</strong> can be used from the command line to make three
lookups: an ANY query for <code class="docutils literal notranslate"><span class="pre">www.isc.org</span></code>, a reverse lookup of 127.0.0.1,
and a query for the NS records of <code class="docutils literal notranslate"><span class="pre">isc.org</span></code>. A global query option of
<a class="reference internal" href="#cmdoption-dig-arg-qr"><code class="xref std std-option docutils literal notranslate"><span class="pre">+qr</span></code></a> is applied, so that <strong class="program">dig</strong> shows the initial query it made for
each lookup. The final query has a local query option of <a class="reference internal" href="#cmdoption-dig-arg-qr"><code class="xref std std-option docutils literal notranslate"><span class="pre">+noqr</span></code></a> which
means that <strong class="program">dig</strong> does not print the initial query when it looks up the
NS records for <code class="docutils literal notranslate"><span class="pre">isc.org</span></code>.</p>
</section>
<section id="idn-support">
<h3>IDN Support<a class="headerlink" href="#idn-support" title="Link to this heading"></a></h3>
<p>If <strong class="program">dig</strong> has been built with IDN (internationalized domain name)
support, it can accept and display non-ASCII domain names. <strong class="program">dig</strong>
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
<a class="reference internal" href="#cmdoption-dig-arg-idnin"><code class="xref std std-option docutils literal notranslate"><span class="pre">+idnin</span></code></a> and <a class="reference internal" href="#cmdoption-dig-arg-idnout"><code class="xref std std-option docutils literal notranslate"><span class="pre">+idnout</span></code></a>, or define the <code class="docutils literal notranslate"><span class="pre">IDN_DISABLE</span></code> environment
variable.</p>
</section>
<section id="return-codes">
<h3>Return Codes<a class="headerlink" href="#return-codes" title="Link to this heading"></a></h3>
<p><strong class="program">dig</strong> return codes are:</p>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">0</span></code></dt><dd><p>DNS response received, including NXDOMAIN status</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">1</span></code></dt><dd><p>Usage error</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">8</span></code></dt><dd><p>Couldn’t open batch file</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">9</span></code></dt><dd><p>No reply from server</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">10</span></code></dt><dd><p>Internal error</p>
</dd>
</dl>
</section>
<section id="id13">
<h3>Files<a class="headerlink" href="#id13" title="Link to this heading"></a></h3>
<p><code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">${HOME}/.digrc</span></code></p>
</section>
<section id="id14">
<h3>See Also<a class="headerlink" href="#id14" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-delv"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">delv(1)</span></code></a>, <a class="reference internal" href="#std-iscman-host"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">host(1)</span></code></a>, <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named(8)</span></code></a>, <a class="reference internal" href="#std-iscman-dnssec-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-keygen(8)</span></code></a>, <span class="target" id="index-9"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1035.html"><strong>RFC 1035</strong></a>.</p>
</section>
<section id="bugs">
<h3>Bugs<a class="headerlink" href="#bugs" title="Link to this heading"></a></h3>
<p>There are probably too many query options.</p>
</section>
</section>
<section id="dnssec-cds-change-ds-records-for-a-child-zone-based-on-cds-cdnskey">
<span id="man-dnssec-cds"></span><span id="std-iscman-dnssec-cds"></span><h2>dnssec-cds - change DS records for a child zone based on CDS/CDNSKEY<a class="headerlink" href="#dnssec-cds-change-ds-records-for-a-child-zone-based-on-cds-cdnskey" title="Link to this heading"></a></h2>
<section id="id15">
<h3>Synopsis<a class="headerlink" href="#id15" title="Link to this heading"></a></h3>
<p><strong class="program">dnssec-cds</strong> [<strong>-a</strong> alg…] [<strong>-c</strong> class] [<strong>-D</strong>] {<strong>-d</strong> dsset-file} {<strong>-f</strong> child-file} [<strong>-i**[extension]] [</strong>-s** start-time] [<strong>-T</strong> ttl] [<strong>-u</strong>] [<strong>-v</strong> level] [<strong>-V</strong>] {domain}</p>
</section>
<section id="id16">
<h3>Description<a class="headerlink" href="#id16" title="Link to this heading"></a></h3>
<p>The <strong class="program">dnssec-cds</strong> 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 (KSKs); by polling periodically with <strong class="program">dnssec-cds</strong>, the
parent can keep the DS records up-to-date and enable automatic rolling
of KSKs.</p>
<p>Two input files are required. The <a class="reference internal" href="#cmdoption-dnssec-cds-f"><code class="xref std std-option docutils literal notranslate"><span class="pre">-f</span> <span class="pre">child-file</span></code></a> option specifies a
file containing the child’s CDS and/or CDNSKEY records, plus RRSIG and
DNSKEY records so that they can be authenticated. The <a class="reference internal" href="#cmdoption-dnssec-cds-d"><code class="xref std std-option docutils literal notranslate"><span class="pre">-d</span> <span class="pre">path</span></code></a> option
specifies the location of a file containing the current DS records. For
example, this could be a <code class="docutils literal notranslate"><span class="pre">dsset-</span></code> file generated by
<a class="reference internal" href="#std-iscman-dnssec-signzone"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-signzone</span></code></a>, or the output of <a class="reference internal" href="#std-iscman-dnssec-dsfromkey"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-dsfromkey</span></code></a>, or the
output of a previous run of <strong class="program">dnssec-cds</strong>.</p>
<p>The <strong class="program">dnssec-cds</strong> command uses special DNSSEC validation logic
specified by <span class="target" id="index-10"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc7344.html"><strong>RFC 7344</strong></a>. It requires that the CDS and/or CDNSKEY records
be validly signed by a key represented in the existing DS records. This
is typically the pre-existing KSK.</p>
<p>For protection against replay attacks, the signatures on the child
records must not be older than they were on a previous run of
<strong class="program">dnssec-cds</strong>. Their age is obtained from the modification time of the
<code class="docutils literal notranslate"><span class="pre">dsset-</span></code> file, or from the <a class="reference internal" href="#cmdoption-dnssec-cds-s"><code class="xref std std-option docutils literal notranslate"><span class="pre">-s</span></code></a> option.</p>
<p>To protect against breaking the delegation, <strong class="program">dnssec-cds</strong> ensures that
the DNSKEY RRset can be verified by every key algorithm in the new DS
RRset, and that the same set of keys are covered by every DS digest
type.</p>
<p>By default, replacement DS records are written to the standard output;
with the <a class="reference internal" href="#cmdoption-dnssec-cds-i"><code class="xref std std-option docutils literal notranslate"><span class="pre">-i</span></code></a> option the input file is overwritten in place. The
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.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Be careful not to delete the DS records when <strong class="program">dnssec-cds</strong> fails!</p>
</div>
<p>Alternatively, :option`dnssec-cds -u` writes an <a class="reference internal" href="#std-iscman-nsupdate"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">nsupdate</span></code></a> script to the
standard output. The <a class="reference internal" href="#cmdoption-dnssec-cds-u"><code class="xref std std-option docutils literal notranslate"><span class="pre">-u</span></code></a> and <a class="reference internal" href="#cmdoption-dnssec-cds-i"><code class="xref std std-option docutils literal notranslate"><span class="pre">-i</span></code></a> options can be used together to
maintain a <code class="docutils literal notranslate"><span class="pre">dsset-</span></code> file as well as emit an <a class="reference internal" href="#std-iscman-nsupdate"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">nsupdate</span></code></a> script.</p>
</section>
<section id="id17">
<h3>Options<a class="headerlink" href="#id17" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-cds-a">
<span class="sig-name descname"><span class="pre">-a</span></span><span class="sig-prename descclassname"> <span class="pre">algorithm</span></span><a class="headerlink" href="#cmdoption-dnssec-cds-a" title="Link to this definition"></a></dt>
<dd><p>When converting CDS records to DS records, this option specifies
the acceptable digest algorithms. This option can be repeated, so
that multiple digest types are allowed. If none of the CDS records
use an acceptable digest type, <strong class="program">dnssec-cds</strong> will try to use CDNSKEY
records instead; if there are no CDNSKEY records, it reports an error.</p>
<p>When converting CDNSKEY records to DS records, this option specifies the
digest algorithm to use. It can be repeated, so that multiple DS records
are created for each CDNSKEY records.</p>
<p>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
is specified, the default is SHA-256 only.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-cds-c">
<span class="sig-name descname"><span class="pre">-c</span></span><span class="sig-prename descclassname"> <span class="pre">class</span></span><a class="headerlink" href="#cmdoption-dnssec-cds-c" title="Link to this definition"></a></dt>
<dd><p>This option specifies the DNS class of the zones.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-cds-D">
<span class="sig-name descname"><span class="pre">-D</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-cds-D" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-cds-d">
<span class="sig-name descname"><span class="pre">-d</span></span><span class="sig-prename descclassname"> <span class="pre">path</span></span><a class="headerlink" href="#cmdoption-dnssec-cds-d" title="Link to this definition"></a></dt>
<dd><p>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, <strong class="program">dnssec-cds</strong>
looks for a <code class="docutils literal notranslate"><span class="pre">dsset-</span></code> file for the domain inside the directory.</p>
<p>To protect against replay attacks, child records are rejected if they
were signed earlier than the modification time of the <code class="docutils literal notranslate"><span class="pre">dsset-</span></code>
file. This can be adjusted with the <a class="reference internal" href="#cmdoption-dnssec-cds-s"><code class="xref std std-option docutils literal notranslate"><span class="pre">-s</span></code></a> option.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-cds-f">
<span class="sig-name descname"><span class="pre">-f</span></span><span class="sig-prename descclassname"> <span class="pre">child-file</span></span><a class="headerlink" href="#cmdoption-dnssec-cds-f" title="Link to this definition"></a></dt>
<dd><p>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.</p>
<p>The examples below describe how to generate this file.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-cds-i">
<span class="sig-name descname"><span class="pre">-i</span></span><span class="sig-prename descclassname"> <span class="pre">extension</span></span><a class="headerlink" href="#cmdoption-dnssec-cds-i" title="Link to this definition"></a></dt>
<dd><p>This option updates the <code class="docutils literal notranslate"><span class="pre">dsset-</span></code> file in place, instead of writing DS records to
the standard output.</p>
<p>There must be no space between the <a class="reference internal" href="#cmdoption-dnssec-cds-i"><code class="xref std std-option docutils literal notranslate"><span class="pre">-i</span></code></a> and the extension. If
no extension is provided, the old <code class="docutils literal notranslate"><span class="pre">dsset-</span></code> is discarded. If an
extension is present, a backup of the old <code class="docutils literal notranslate"><span class="pre">dsset-</span></code> file is kept
with the extension appended to its filename.</p>
<p>To protect against replay attacks, the modification time of the
<code class="docutils literal notranslate"><span class="pre">dsset-</span></code> file is set to match the signature inception time of the
child records, provided that it is later than the file’s current
modification time.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-cds-s">
<span class="sig-name descname"><span class="pre">-s</span></span><span class="sig-prename descclassname"> <span class="pre">start-time</span></span><a class="headerlink" href="#cmdoption-dnssec-cds-s" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">dsset-</span></code> file is indicated with <code class="docutils literal notranslate"><span class="pre">-N</span></code>, which is N
seconds before the file modification time. A time relative to the
current time is indicated with <code class="docutils literal notranslate"><span class="pre">now+N</span></code>.</p>
<p>If no start-time is specified, the modification time of the
<code class="docutils literal notranslate"><span class="pre">dsset-</span></code> file is used.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-cds-T">
<span class="sig-name descname"><span class="pre">-T</span></span><span class="sig-prename descclassname"> <span class="pre">ttl</span></span><a class="headerlink" href="#cmdoption-dnssec-cds-T" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-cds-u">
<span class="sig-name descname"><span class="pre">-u</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-cds-u" title="Link to this definition"></a></dt>
<dd><p>This option writes an <a class="reference internal" href="#std-iscman-nsupdate"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">nsupdate</span></code></a> script to the standard output, instead of
printing the new DS reords. The output is empty if no change is
needed.</p>
<p>Note: The TTL of new records needs to be specified: it can be done in the
original <code class="docutils literal notranslate"><span class="pre">dsset-</span></code> file, with the <a class="reference internal" href="#cmdoption-dnssec-cds-T"><code class="xref std std-option docutils literal notranslate"><span class="pre">-T</span></code></a> option, or using the
<a class="reference internal" href="#std-iscman-nsupdate"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">nsupdate</span></code></a> <code class="docutils literal notranslate"><span class="pre">ttl</span></code> command.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-cds-V">
<span class="sig-name descname"><span class="pre">-V</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-cds-V" title="Link to this definition"></a></dt>
<dd><p>This option prints version information.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-cds-v">
<span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"> <span class="pre">level</span></span><a class="headerlink" href="#cmdoption-dnssec-cds-v" title="Link to this definition"></a></dt>
<dd><p>This option sets the debugging level. Level 1 is intended to be usefully verbose
for general users; higher levels are intended for developers.</p>
</dd></dl>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">domain</span></code></dt><dd><p>This indicates the name of the delegation point/child zone apex.</p>
</dd>
</dl>
</section>
<section id="exit-status">
<h3>Exit Status<a class="headerlink" href="#exit-status" title="Link to this heading"></a></h3>
<p>The <strong class="program">dnssec-cds</strong> command exits 0 on success, or non-zero if an error
occurred.</p>
<p>If successful, the DS records may or may not need to be
changed.</p>
</section>
<section id="examples">
<h3>Examples<a class="headerlink" href="#examples" title="Link to this heading"></a></h3>
<p>Before running <a class="reference internal" href="#std-iscman-dnssec-signzone"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-signzone</span></code></a>, ensure that the delegations
are up-to-date by running <strong class="program">dnssec-cds</strong> on every <code class="docutils literal notranslate"><span class="pre">dsset-</span></code> file.</p>
<p>To fetch the child records required by <strong class="program">dnssec-cds</strong>, invoke
<a class="reference internal" href="#std-iscman-dig"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dig</span></code></a> as in the script below. It is acceptable if the <a class="reference internal" href="#std-iscman-dig"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dig</span></code></a> fails, since
<strong class="program">dnssec-cds</strong> performs all the necessary checking.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>for f in dsset-*
do
d=${f#dsset-}
dig +dnssec +noall +answer $d DNSKEY $d CDNSKEY $d CDS |
dnssec-cds -i -f /dev/stdin -d $f $d
done
</pre></div>
</div>
<p>When the parent zone is automatically signed by <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>,
<strong class="program">dnssec-cds</strong> can be used with <a class="reference internal" href="#std-iscman-nsupdate"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">nsupdate</span></code></a> to maintain a delegation as follows.
The <code class="docutils literal notranslate"><span class="pre">dsset-</span></code> file allows the script to avoid having to fetch and
validate the parent DS records, and it maintains the replay attack
protection time.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>dig +dnssec +noall +answer $d DNSKEY $d CDNSKEY $d CDS |
dnssec-cds -u -i -f /dev/stdin -d $f $d |
nsupdate -l
</pre></div>
</div>
</section>
<section id="id18">
<h3>See Also<a class="headerlink" href="#id18" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-dig"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dig(1)</span></code></a>, <a class="reference internal" href="#std-iscman-dnssec-settime"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-settime(8)</span></code></a>, <a class="reference internal" href="#std-iscman-dnssec-signzone"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-signzone(8)</span></code></a>, <a class="reference internal" href="#std-iscman-nsupdate"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">nsupdate(1)</span></code></a>, BIND 9 Administrator
Reference Manual, <span class="target" id="index-11"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc7344.html"><strong>RFC 7344</strong></a>.</p>
</section>
</section>
<section id="dnssec-dsfromkey-dnssec-ds-rr-generation-tool">
<span id="man-dnssec-dsfromkey"></span><span id="std-iscman-dnssec-dsfromkey"></span><h2>dnssec-dsfromkey - DNSSEC DS RR generation tool<a class="headerlink" href="#dnssec-dsfromkey-dnssec-ds-rr-generation-tool" title="Link to this heading"></a></h2>
<section id="id19">
<h3>Synopsis<a class="headerlink" href="#id19" title="Link to this heading"></a></h3>
<p><strong class="program">dnssec-dsfromkey</strong> [ <strong>-1</strong> | <strong>-2</strong> | <strong>-a</strong> alg ] [ <strong>-C</strong> ] [<strong>-T</strong> TTL] [<strong>-v</strong> level] [<strong>-K</strong> directory] {keyfile}</p>
<p><strong class="program">dnssec-dsfromkey</strong> [ <strong>-1</strong> | <strong>-2</strong> | <strong>-a</strong> alg ] [ <strong>-C</strong> ] [<strong>-T</strong> TTL] [<strong>-v</strong> level] [<strong>-c</strong> class] [<strong>-A</strong>] {<strong>-f</strong> file} [dnsname]</p>
<p><strong class="program">dnssec-dsfromkey</strong> [ <strong>-1</strong> | <strong>-2</strong> | <strong>-a</strong> alg ] [ <strong>-C</strong> ] [<strong>-T</strong> TTL] [<strong>-v</strong> level] [<strong>-c</strong> class] [<strong>-K</strong> directory] {<strong>-s</strong>} {dnsname}</p>
<p><strong class="program">dnssec-dsfromkey</strong> [ <strong>-h</strong> | <strong>-V</strong> ]</p>
</section>
<section id="id20">
<h3>Description<a class="headerlink" href="#id20" title="Link to this heading"></a></h3>
<p>The <strong class="program">dnssec-dsfromkey</strong> command outputs DS (Delegation
Signer) resource records (RRs), or CDS (Child DS) RRs with the
<a class="reference internal" href="#cmdoption-dnssec-dsfromkey-C"><code class="xref std std-option docutils literal notranslate"><span class="pre">-C</span></code></a> option.</p>
<p>By default, only KSKs are converted (keys with flags = 257). The
<a class="reference internal" href="#cmdoption-dnssec-dsfromkey-A"><code class="xref std std-option docutils literal notranslate"><span class="pre">-A</span></code></a> option includes ZSKs (flags = 256). Revoked keys are
never included.</p>
<p>The input keys can be specified in a number of ways:</p>
<p>By default, <strong class="program">dnssec-dsfromkey</strong> reads a key file named in
the format <code class="docutils literal notranslate"><span class="pre">Knnnn.+aaa+iiiii.key</span></code>, as generated by
<a class="reference internal" href="#std-iscman-dnssec-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-keygen</span></code></a>.</p>
<p>With the <a class="reference internal" href="#cmdoption-dnssec-dsfromkey-f"><code class="xref std std-option docutils literal notranslate"><span class="pre">-f</span> <span class="pre">file</span></code></a> option, <strong class="program">dnssec-dsfromkey</strong>
reads keys from a zone file or partial zone file (which can contain
just the DNSKEY records).</p>
<p>With the <a class="reference internal" href="#cmdoption-dnssec-dsfromkey-s"><code class="xref std std-option docutils literal notranslate"><span class="pre">-s</span></code></a> option, <strong class="program">dnssec-dsfromkey</strong> reads a
<code class="docutils literal notranslate"><span class="pre">keyset-</span></code> file, as generated by <a class="reference internal" href="#std-iscman-dnssec-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-keygen</span></code></a> <a class="reference internal" href="#cmdoption-dnssec-dsfromkey-C"><code class="xref std std-option docutils literal notranslate"><span class="pre">-C</span></code></a>.</p>
</section>
<section id="id21">
<h3>Options<a class="headerlink" href="#id21" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-dsfromkey-1">
<span class="sig-name descname"><span class="pre">-1</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-dsfromkey-1" title="Link to this definition"></a></dt>
<dd><p>This option is an abbreviation for <a class="reference internal" href="#cmdoption-dnssec-dsfromkey-a"><code class="xref std std-option docutils literal notranslate"><span class="pre">-a</span> <span class="pre">SHA1</span></code></a>. This
digest is deprecated.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-dsfromkey-2">
<span class="sig-name descname"><span class="pre">-2</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-dsfromkey-2" title="Link to this definition"></a></dt>
<dd><p>This option is an abbreviation for <a class="reference internal" href="#cmdoption-dnssec-dsfromkey-a"><code class="xref std std-option docutils literal notranslate"><span class="pre">-a</span> <span class="pre">SHA-256</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-dsfromkey-a">
<span class="sig-name descname"><span class="pre">-a</span></span><span class="sig-prename descclassname"> <span class="pre">algorithm</span></span><a class="headerlink" href="#cmdoption-dnssec-dsfromkey-a" title="Link to this definition"></a></dt>
<dd><p>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.</p>
<p>The algorithm must be one of SHA-1 (deprecated), SHA-256, or
SHA-384. These values are case-insensitive, and the hyphen may
be omitted. If no algorithm is specified, the default is SHA-256.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-dsfromkey-A">
<span class="sig-name descname"><span class="pre">-A</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-dsfromkey-A" title="Link to this definition"></a></dt>
<dd><p>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 <a class="reference internal" href="#cmdoption-dnssec-dsfromkey-f"><code class="xref std std-option docutils literal notranslate"><span class="pre">-f</span></code></a> zone file mode.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-dsfromkey-c">
<span class="sig-name descname"><span class="pre">-c</span></span><span class="sig-prename descclassname"> <span class="pre">class</span></span><a class="headerlink" href="#cmdoption-dnssec-dsfromkey-c" title="Link to this definition"></a></dt>
<dd><p>This option specifies the DNS class; the default is IN. This
option is only useful in <a class="reference internal" href="#cmdoption-dnssec-dsfromkey-s"><code class="xref std std-option docutils literal notranslate"><span class="pre">-s</span></code></a> keyset or <a class="reference internal" href="#cmdoption-dnssec-dsfromkey-f"><code class="xref std std-option docutils literal notranslate"><span class="pre">-f</span></code></a>
zone file mode.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-dsfromkey-C">
<span class="sig-name descname"><span class="pre">-C</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-dsfromkey-C" title="Link to this definition"></a></dt>
<dd><p>This option generates CDS records rather than DS records.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-dsfromkey-f">
<span class="sig-name descname"><span class="pre">-f</span></span><span class="sig-prename descclassname"> <span class="pre">file</span></span><a class="headerlink" href="#cmdoption-dnssec-dsfromkey-f" title="Link to this definition"></a></dt>
<dd><p>This option sets zone file mode, in which the final dnsname
argument of <strong class="program">dnssec-dsfromkey</strong> is the DNS domain name
of a zone whose master file can be read from <code class="docutils literal notranslate"><span class="pre">file</span></code>. If the
zone name is the same as <code class="docutils literal notranslate"><span class="pre">file</span></code>, then it may be omitted.</p>
<p>If <code class="docutils literal notranslate"><span class="pre">file</span></code> is <code class="docutils literal notranslate"><span class="pre">-</span></code>, then the zone data is read from the standard
input. This makes it possible to use the output of the <a class="reference internal" href="#std-iscman-dig"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dig</span></code></a>
command as input, as in:</p>
<p><code class="docutils literal notranslate"><span class="pre">dig</span> <span class="pre">dnskey</span> <span class="pre">example.com</span> <span class="pre">|</span> <span class="pre">dnssec-dsfromkey</span> <span class="pre">-f</span> <span class="pre">-</span> <span class="pre">example.com</span></code></p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-dsfromkey-h">
<span class="sig-name descname"><span class="pre">-h</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-dsfromkey-h" title="Link to this definition"></a></dt>
<dd><p>This option prints usage information.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-dsfromkey-K">
<span class="sig-name descname"><span class="pre">-K</span></span><span class="sig-prename descclassname"> <span class="pre">directory</span></span><a class="headerlink" href="#cmdoption-dnssec-dsfromkey-K" title="Link to this definition"></a></dt>
<dd><p>This option tells BIND 9 to look for key files or <code class="docutils literal notranslate"><span class="pre">keyset-</span></code>
files in <code class="docutils literal notranslate"><span class="pre">directory</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-dsfromkey-s">
<span class="sig-name descname"><span class="pre">-s</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-dsfromkey-s" title="Link to this definition"></a></dt>
<dd><p>This option enables keyset mode, in which the final dnsname
argument from <strong class="program">dnssec-dsfromkey</strong> is the DNS domain name
used to locate a <code class="docutils literal notranslate"><span class="pre">keyset-</span></code> file.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-dsfromkey-T">
<span class="sig-name descname"><span class="pre">-T</span></span><span class="sig-prename descclassname"> <span class="pre">TTL</span></span><a class="headerlink" href="#cmdoption-dnssec-dsfromkey-T" title="Link to this definition"></a></dt>
<dd><p>This option specifies the TTL of the DS records. By default the
TTL is omitted.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-dsfromkey-v">
<span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"> <span class="pre">level</span></span><a class="headerlink" href="#cmdoption-dnssec-dsfromkey-v" title="Link to this definition"></a></dt>
<dd><p>This option sets the debugging level.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-dsfromkey-V">
<span class="sig-name descname"><span class="pre">-V</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-dsfromkey-V" title="Link to this definition"></a></dt>
<dd><p>This option prints version information.</p>
</dd></dl>
</section>
<section id="example">
<h3>Example<a class="headerlink" href="#example" title="Link to this heading"></a></h3>
<p>To build the SHA-256 DS RR from the <code class="docutils literal notranslate"><span class="pre">Kexample.com.+003+26160</span></code> keyfile,
issue the following command:</p>
<p><code class="docutils literal notranslate"><span class="pre">dnssec-dsfromkey</span> <span class="pre">-2</span> <span class="pre">Kexample.com.+003+26160</span></code></p>
<p>The command returns something similar to:</p>
<p><code class="docutils literal notranslate"><span class="pre">example.com.</span> <span class="pre">IN</span> <span class="pre">DS</span> <span class="pre">26160</span> <span class="pre">5</span> <span class="pre">2</span> <span class="pre">3A1EADA7A74B8D0BA86726B0C227AA85AB8BBD2B2004F41A868A54F0C5EA0B94</span></code></p>
</section>
<section id="id22">
<h3>Files<a class="headerlink" href="#id22" title="Link to this heading"></a></h3>
<p>The keyfile can be designated by the key identification
<code class="docutils literal notranslate"><span class="pre">Knnnn.+aaa+iiiii</span></code> or the full file name <code class="docutils literal notranslate"><span class="pre">Knnnn.+aaa+iiiii.key</span></code>, as
generated by <a class="reference internal" href="#std-iscman-dnssec-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-keygen</span></code></a>.</p>
<p>The keyset file name is built from the <code class="docutils literal notranslate"><span class="pre">directory</span></code>, the string
<code class="docutils literal notranslate"><span class="pre">keyset-</span></code>, and the <code class="docutils literal notranslate"><span class="pre">dnsname</span></code>.</p>
</section>
<section id="caveat">
<h3>Caveat<a class="headerlink" href="#caveat" title="Link to this heading"></a></h3>
<p>A keyfile error may return “file not found,” even if the file exists.</p>
</section>
<section id="id23">
<h3>See Also<a class="headerlink" href="#id23" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-dnssec-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-keygen(8)</span></code></a>, <a class="reference internal" href="#std-iscman-dnssec-signzone"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-signzone(8)</span></code></a>, BIND 9 Administrator Reference Manual,
<span class="target" id="index-12"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3658.html"><strong>RFC 3658</strong></a> (DS RRs), <span class="target" id="index-13"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc4509.html"><strong>RFC 4509</strong></a> (SHA-256 for DS RRs),
<span class="target" id="index-14"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc6605.html"><strong>RFC 6605</strong></a> (SHA-384 for DS RRs), <span class="target" id="index-15"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc7344.html"><strong>RFC 7344</strong></a> (CDS and CDNSKEY RRs).</p>
</section>
</section>
<section id="dnssec-importkey-import-dnskey-records-from-external-systems-so-they-can-be-managed">
<span id="man-dnssec-importkey"></span><span id="std-iscman-dnssec-importkey"></span><h2>dnssec-importkey - import DNSKEY records from external systems so they can be managed<a class="headerlink" href="#dnssec-importkey-import-dnskey-records-from-external-systems-so-they-can-be-managed" title="Link to this heading"></a></h2>
<section id="id24">
<h3>Synopsis<a class="headerlink" href="#id24" title="Link to this heading"></a></h3>
<p><strong class="program">dnssec-importkey</strong> [<strong>-K</strong> directory] [<strong>-L</strong> ttl] [<strong>-P</strong> date/offset] [<strong>-P</strong> sync date/offset] [<strong>-D</strong> date/offset] [<strong>-D</strong> sync date/offset] [<strong>-h</strong>] [<strong>-v</strong> level] [<strong>-V</strong>] {keyfile}</p>
<p><strong class="program">dnssec-importkey</strong> {<strong>-f</strong> filename} [<strong>-K</strong> directory] [<strong>-L</strong> ttl] [<strong>-P</strong> date/offset] [<strong>-P</strong> sync date/offset] [<strong>-D</strong> date/offset] [<strong>-D</strong> sync date/offset] [<strong>-h</strong>] [<strong>-v</strong> level] [<strong>-V</strong>] [dnsname]</p>
</section>
<section id="id25">
<h3>Description<a class="headerlink" href="#id25" title="Link to this heading"></a></h3>
<p><strong class="program">dnssec-importkey</strong> 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 is
generated, or it may be read from any other file or from the standard
input, in which case both .key and .private files are generated.</p>
<p>The newly created .private file does <em>not</em> contain private key data, and
cannot be used for signing. However, having a .private file makes it
possible to set publication (<a class="reference internal" href="#cmdoption-dnssec-importkey-P"><code class="xref std std-option docutils literal notranslate"><span class="pre">-P</span></code></a>) and deletion (<a class="reference internal" href="#cmdoption-dnssec-importkey-D"><code class="xref std std-option docutils literal notranslate"><span class="pre">-D</span></code></a>) times for the
key, which means the public key can be added to and removed from the
DNSKEY RRset on schedule even if the true private key is stored offline.</p>
</section>
<section id="id26">
<h3>Options<a class="headerlink" href="#id26" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-importkey-f">
<span class="sig-name descname"><span class="pre">-f</span></span><span class="sig-prename descclassname"> <span class="pre">filename</span></span><a class="headerlink" href="#cmdoption-dnssec-importkey-f" title="Link to this definition"></a></dt>
<dd><p>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
<code class="docutils literal notranslate"><span class="pre">filename</span></code>. If the domain name is the same as <code class="docutils literal notranslate"><span class="pre">filename</span></code>, then it may be
omitted.</p>
<p>If <code class="docutils literal notranslate"><span class="pre">filename</span></code> is set to <code class="docutils literal notranslate"><span class="pre">"-"</span></code>, then the zone data is read from the
standard input.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-importkey-K">
<span class="sig-name descname"><span class="pre">-K</span></span><span class="sig-prename descclassname"> <span class="pre">directory</span></span><a class="headerlink" href="#cmdoption-dnssec-importkey-K" title="Link to this definition"></a></dt>
<dd><p>This option sets the directory in which the key files are to reside.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-importkey-L">
<span class="sig-name descname"><span class="pre">-L</span></span><span class="sig-prename descclassname"> <span class="pre">ttl</span></span><a class="headerlink" href="#cmdoption-dnssec-importkey-L" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">0</span></code> or <code class="docutils literal notranslate"><span class="pre">none</span></code>
removes it from the key.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-importkey-h">
<span class="sig-name descname"><span class="pre">-h</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-importkey-h" title="Link to this definition"></a></dt>
<dd><p>This option emits a usage message and exits.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-importkey-v">
<span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"> <span class="pre">level</span></span><a class="headerlink" href="#cmdoption-dnssec-importkey-v" title="Link to this definition"></a></dt>
<dd><p>This option sets the debugging level.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-importkey-V">
<span class="sig-name descname"><span class="pre">-V</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-importkey-V" title="Link to this definition"></a></dt>
<dd><p>This option prints version information.</p>
</dd></dl>
</section>
<section id="timing-options">
<h3>Timing Options<a class="headerlink" href="#timing-options" title="Link to this heading"></a></h3>
<p>Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS.
(which is the format used inside key files),
or ‘Day Mon DD HH:MM:SS YYYY’ (as printed by <code class="docutils literal notranslate"><span class="pre">dnssec-settime</span> <span class="pre">-p</span></code>),
or UNIX epoch time (as printed by <code class="docutils literal notranslate"><span class="pre">dnssec-settime</span> <span class="pre">-up</span></code>),
or the literal <code class="docutils literal notranslate"><span class="pre">now</span></code>.</p>
<p>The argument can be followed by <code class="docutils literal notranslate"><span class="pre">+</span></code> or <code class="docutils literal notranslate"><span class="pre">-</span></code> and an offset from the
given time. The literal <code class="docutils literal notranslate"><span class="pre">now</span></code> can be omitted before an offset. The
offset can be followed by one of the suffixes <code class="docutils literal notranslate"><span class="pre">y</span></code>, <code class="docutils literal notranslate"><span class="pre">mo</span></code>, <code class="docutils literal notranslate"><span class="pre">w</span></code>,
<code class="docutils literal notranslate"><span class="pre">d</span></code>, <code class="docutils literal notranslate"><span class="pre">h</span></code>, or <code class="docutils literal notranslate"><span class="pre">mi</span></code>, so that it 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.</p>
<p>To explicitly prevent a date from being set, use <code class="docutils literal notranslate"><span class="pre">none</span></code>, <code class="docutils literal notranslate"><span class="pre">never</span></code>,
or <code class="docutils literal notranslate"><span class="pre">unset</span></code>.</p>
<p>All these formats are case-insensitive.</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-importkey-P">
<span class="sig-name descname"><span class="pre">-P</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-importkey-P" title="Link to this definition"></a></dt>
<dd><p>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>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-importkey-P-arg-sync">
<span class="sig-name descname"><span class="pre">sync</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-importkey-P-arg-sync" title="Link to this definition"></a></dt>
<dd><p>This option sets the date on which CDS and CDNSKEY records that match this key
are to be published to the zone.</p>
</dd></dl>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-importkey-D">
<span class="sig-name descname"><span class="pre">-D</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-importkey-D" title="Link to this definition"></a></dt>
<dd><p>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.)</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-importkey-D-arg-sync">
<span class="sig-name descname"><span class="pre">sync</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-importkey-D-arg-sync" title="Link to this definition"></a></dt>
<dd><p>This option sets the date on which the CDS and CDNSKEY records that match this
key are to be deleted.</p>
</dd></dl>
</dd></dl>
</section>
<section id="id27">
<h3>Files<a class="headerlink" href="#id27" title="Link to this heading"></a></h3>
<p>A keyfile can be designed by the key identification <code class="docutils literal notranslate"><span class="pre">Knnnn.+aaa+iiiii</span></code>
or the full file name <code class="docutils literal notranslate"><span class="pre">Knnnn.+aaa+iiiii.key</span></code>, as generated by
<a class="reference internal" href="#std-iscman-dnssec-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-keygen</span></code></a>.</p>
</section>
<section id="id28">
<h3>See Also<a class="headerlink" href="#id28" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-dnssec-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-keygen(8)</span></code></a>, <a class="reference internal" href="#std-iscman-dnssec-signzone"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-signzone(8)</span></code></a>, BIND 9 Administrator Reference Manual,
<span class="target" id="index-16"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc5011.html"><strong>RFC 5011</strong></a>.</p>
</section>
</section>
<section id="dnssec-keyfromlabel-dnssec-key-generation-tool">
<span id="man-dnssec-keyfromlabel"></span><span id="std-iscman-dnssec-keyfromlabel"></span><h2>dnssec-keyfromlabel - DNSSEC key generation tool<a class="headerlink" href="#dnssec-keyfromlabel-dnssec-key-generation-tool" title="Link to this heading"></a></h2>
<section id="id29">
<h3>Synopsis<a class="headerlink" href="#id29" title="Link to this heading"></a></h3>
<p><strong class="program">dnssec-keyfromlabel</strong> {<strong>-l</strong> label} [<strong>-3</strong>] [<strong>-a</strong> algorithm] [<strong>-A</strong> date/offset] [<strong>-c</strong> class] [<strong>-D</strong> date/offset] [<strong>-D</strong> sync date/offset] [<strong>-E</strong> engine] [<strong>-f</strong> flag] [<strong>-G</strong>] [<strong>-I</strong> date/offset] [<strong>-i</strong> interval] [<strong>-k</strong>] [<strong>-K</strong> directory] [<strong>-L</strong> ttl] [<strong>-n</strong> nametype] [<strong>-P</strong> date/offset] [<strong>-P</strong> sync date/offset] [<strong>-p</strong> protocol] [<strong>-R</strong> date/offset] [<strong>-S</strong> key] [<strong>-t</strong> type] [<strong>-v</strong> level] [<strong>-V</strong>] [<strong>-y</strong>] {name}</p>
</section>
<section id="id30">
<h3>Description<a class="headerlink" href="#id30" title="Link to this heading"></a></h3>
<p><strong class="program">dnssec-keyfromlabel</strong> 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 <a class="reference internal" href="#std-iscman-dnssec-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-keygen</span></code></a>, but the
key material is stored within the HSM and the actual signing takes
place there.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">name</span></code> of the key is specified on the command line. This must
match the name of the zone for which the key is being generated.</p>
</section>
<section id="id31">
<h3>Options<a class="headerlink" href="#id31" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-a">
<span class="sig-name descname"><span class="pre">-a</span></span><span class="sig-prename descclassname"> <span class="pre">algorithm</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-a" title="Link to this definition"></a></dt>
<dd><p>This option selects the cryptographic algorithm. The value of
<code class="docutils literal notranslate"><span class="pre">algorithm</span></code> must be one of RSASHA1 (deprecated), NSEC3RSASHA1
(deprecated), RSASHA256, RSASHA512, ECDSAP256SHA256, ECDSAP384SHA384,
ED25519, or ED448.</p>
<p>These values are case-insensitive. In some cases, abbreviations
are supported, such as ECDSA256 for ECDSAP256SHA256 and ECDSA384
for ECDSAP384SHA384. If RSASHA1 (deprecated) is specified along
with the <a class="reference internal" href="#cmdoption-dnssec-keyfromlabel-3"><code class="xref std std-option docutils literal notranslate"><span class="pre">-3</span></code></a> option, then NSEC3RSASHA1 (deprecated) is
used instead.</p>
<p>This option is mandatory except when using the <a class="reference internal" href="#cmdoption-dnssec-keyfromlabel-S"><code class="xref std std-option docutils literal notranslate"><span class="pre">-S</span></code></a>
option, which copies the algorithm from the predecessory key.</p>
<div class="versionchanged">
<p><span class="versionmodified changed">Changed in version 9.12.0: </span>The default value RSASHA1 (deprecated) for newly generated
keys was removed.</p>
</div>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-3">
<span class="sig-name descname"><span class="pre">-3</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-3" title="Link to this definition"></a></dt>
<dd><p>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 is used; for example,
<code class="docutils literal notranslate"><span class="pre">dnssec-keygen</span> <span class="pre">-3a</span> <span class="pre">RSASHA1</span></code> specifies the NSEC3RSASHA1
(deprecated) algorithm.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-E">
<span class="sig-name descname"><span class="pre">-E</span></span><span class="sig-prename descclassname"> <span class="pre">engine</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-E" title="Link to this definition"></a></dt>
<dd><p>This option specifies the cryptographic hardware to use.</p>
<p>When BIND 9 is built with OpenSSL, this needs to be set to the OpenSSL
engine identifier that drives the cryptographic accelerator or
hardware service module (usually <code class="docutils literal notranslate"><span class="pre">pkcs11</span></code>).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-l">
<span class="sig-name descname"><span class="pre">-l</span></span><span class="sig-prename descclassname"> <span class="pre">label</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-l" title="Link to this definition"></a></dt>
<dd><p>This option specifies the label for a key pair in the crypto hardware.</p>
<p>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 <code class="docutils literal notranslate"><span class="pre">pkcs11:keylabel</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-n">
<span class="sig-name descname"><span class="pre">-n</span></span><span class="sig-prename descclassname"> <span class="pre">nametype</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-n" title="Link to this definition"></a></dt>
<dd><p>This option specifies the owner type of the key. The value of <code class="docutils literal notranslate"><span class="pre">nametype</span></code> 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-C">
<span class="sig-name descname"><span class="pre">-C</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-C" title="Link to this definition"></a></dt>
<dd><p>This option enables compatibility mode, which generates an old-style key, without any metadata.
By default, <strong class="program">dnssec-keyfromlabel</strong> 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 <a class="reference internal" href="#cmdoption-dnssec-keyfromlabel-C"><code class="xref std std-option docutils literal notranslate"><span class="pre">-C</span></code></a> option suppresses them.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-c">
<span class="sig-name descname"><span class="pre">-c</span></span><span class="sig-prename descclassname"> <span class="pre">class</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-c" title="Link to this definition"></a></dt>
<dd><p>This option indicates that the DNS record containing the key should have the
specified class. If not specified, class IN is used.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-f">
<span class="sig-name descname"><span class="pre">-f</span></span><span class="sig-prename descclassname"> <span class="pre">flag</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-f" title="Link to this definition"></a></dt>
<dd><p>This option sets the specified flag in the <code class="docutils literal notranslate"><span class="pre">flag</span></code> field of the KEY/DNSKEY record.
The only recognized flags are KSK (Key-Signing Key) and REVOKE.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-G">
<span class="sig-name descname"><span class="pre">-G</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-G" title="Link to this definition"></a></dt>
<dd><p>This option generates a key, but does not publish it or sign with it. This option is
incompatible with <a class="reference internal" href="#cmdoption-dnssec-keyfromlabel-P"><code class="xref std std-option docutils literal notranslate"><span class="pre">-P</span></code></a> and <a class="reference internal" href="#cmdoption-dnssec-keyfromlabel-A"><code class="xref std std-option docutils literal notranslate"><span class="pre">-A</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-h">
<span class="sig-name descname"><span class="pre">-h</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-h" title="Link to this definition"></a></dt>
<dd><p>This option prints a short summary of the options and arguments to
<strong class="program">dnssec-keyfromlabel</strong>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-K">
<span class="sig-name descname"><span class="pre">-K</span></span><span class="sig-prename descclassname"> <span class="pre">directory</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-K" title="Link to this definition"></a></dt>
<dd><p>This option sets the directory in which the key files are to be written.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-k">
<span class="sig-name descname"><span class="pre">-k</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-k" title="Link to this definition"></a></dt>
<dd><p>This option generates KEY records rather than DNSKEY records.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-L">
<span class="sig-name descname"><span class="pre">-L</span></span><span class="sig-prename descclassname"> <span class="pre">ttl</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-L" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">0</span></code> or <code class="docutils literal notranslate"><span class="pre">none</span></code> removes it.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-p">
<span class="sig-name descname"><span class="pre">-p</span></span><span class="sig-prename descclassname"> <span class="pre">protocol</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-p" title="Link to this definition"></a></dt>
<dd><p>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 <span class="target" id="index-17"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2535.html"><strong>RFC 2535</strong></a> and its successors.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-S">
<span class="sig-name descname"><span class="pre">-S</span></span><span class="sig-prename descclassname"> <span class="pre">key</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-S" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-t">
<span class="sig-name descname"><span class="pre">-t</span></span><span class="sig-prename descclassname"> <span class="pre">type</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-t" title="Link to this definition"></a></dt>
<dd><p>This option indicates the type of the key. <code class="docutils literal notranslate"><span class="pre">type</span></code> must be one of AUTHCONF,
NOAUTHCONF, NOAUTH, or NOCONF. The default is AUTHCONF. AUTH refers
to the ability to authenticate data, and CONF to the ability to encrypt
data.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-v">
<span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"> <span class="pre">level</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-v" title="Link to this definition"></a></dt>
<dd><p>This option sets the debugging level.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-V">
<span class="sig-name descname"><span class="pre">-V</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-V" title="Link to this definition"></a></dt>
<dd><p>This option prints version information.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-y">
<span class="sig-name descname"><span class="pre">-y</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-y" title="Link to this definition"></a></dt>
<dd><p>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 enable if
<span class="target" id="index-18"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc5011.html"><strong>RFC 5011</strong></a> trust anchor maintenance is not used with either of the keys
involved.)</p>
</dd></dl>
</section>
<section id="id32">
<h3>Timing Options<a class="headerlink" href="#id32" title="Link to this heading"></a></h3>
<p>Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS
(which is the format used inside key files),
or ‘Day Mon DD HH:MM:SS YYYY’ (as printed by <code class="docutils literal notranslate"><span class="pre">dnssec-settime</span> <span class="pre">-p</span></code>),
or UNIX epoch time (as printed by <code class="docutils literal notranslate"><span class="pre">dnssec-settime</span> <span class="pre">-up</span></code>),
or the literal <code class="docutils literal notranslate"><span class="pre">now</span></code>.</p>
<p>The argument can be followed by <code class="docutils literal notranslate"><span class="pre">+</span></code> or <code class="docutils literal notranslate"><span class="pre">-</span></code> and an offset from the
given time. The literal <code class="docutils literal notranslate"><span class="pre">now</span></code> can be omitted before an offset. The
offset can be followed by one of the suffixes <code class="docutils literal notranslate"><span class="pre">y</span></code>, <code class="docutils literal notranslate"><span class="pre">mo</span></code>, <code class="docutils literal notranslate"><span class="pre">w</span></code>,
<code class="docutils literal notranslate"><span class="pre">d</span></code>, <code class="docutils literal notranslate"><span class="pre">h</span></code>, or <code class="docutils literal notranslate"><span class="pre">mi</span></code>, so that it 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.</p>
<p>To explicitly prevent a date from being set, use <code class="docutils literal notranslate"><span class="pre">none</span></code>, <code class="docutils literal notranslate"><span class="pre">never</span></code>,
or <code class="docutils literal notranslate"><span class="pre">unset</span></code>.</p>
<p>All these formats are case-insensitive.</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-P">
<span class="sig-name descname"><span class="pre">-P</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-P" title="Link to this definition"></a></dt>
<dd><p>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 <a class="reference internal" href="#cmdoption-dnssec-keyfromlabel-G"><code class="xref std std-option docutils literal notranslate"><span class="pre">-G</span></code></a> option has not been used, the
default is the current date.</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-P-arg-sync">
<span class="sig-name descname"><span class="pre">sync</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-P-arg-sync" title="Link to this definition"></a></dt>
<dd><p>This option sets the date on which CDS and CDNSKEY records that match this key
are to be published to the zone.</p>
</dd></dl>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-A">
<span class="sig-name descname"><span class="pre">-A</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-A" title="Link to this definition"></a></dt>
<dd><p>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 <a class="reference internal" href="#cmdoption-dnssec-keyfromlabel-G"><code class="xref std std-option docutils literal notranslate"><span class="pre">-G</span></code></a> option has not been used, the default is the current date.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-R">
<span class="sig-name descname"><span class="pre">-R</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-R" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-I">
<span class="sig-name descname"><span class="pre">-I</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-I" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-D">
<span class="sig-name descname"><span class="pre">-D</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-D" title="Link to this definition"></a></dt>
<dd><p>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.)</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-D-arg-sync">
<span class="sig-name descname"><span class="pre">sync</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-D-arg-sync" title="Link to this definition"></a></dt>
<dd><p>This option sets the date on which the CDS and CDNSKEY records that match this
key are to be deleted.</p>
</dd></dl>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keyfromlabel-i">
<span class="sig-name descname"><span class="pre">-i</span></span><span class="sig-prename descclassname"> <span class="pre">interval</span></span><a class="headerlink" href="#cmdoption-dnssec-keyfromlabel-i" title="Link to this definition"></a></dt>
<dd><p>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 is not, the publication date defaults to this much time
before the activation date; conversely, if the publication date is
specified but not the activation date, activation is set to
this much time after publication.</p>
<p>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.</p>
<p>As with date offsets, if the argument is followed by one of the
suffixes <code class="docutils literal notranslate"><span class="pre">y</span></code>, <code class="docutils literal notranslate"><span class="pre">mo</span></code>, <code class="docutils literal notranslate"><span class="pre">w</span></code>, <code class="docutils literal notranslate"><span class="pre">d</span></code>, <code class="docutils literal notranslate"><span class="pre">h</span></code>, or <code class="docutils literal notranslate"><span class="pre">mi</span></code>, the interval is
measured in years, months, weeks, days, hours, or minutes,
respectively. Without a suffix, the interval is measured in seconds.</p>
</dd></dl>
</section>
<section id="generated-key-files">
<h3>Generated Key Files<a class="headerlink" href="#generated-key-files" title="Link to this heading"></a></h3>
<p>When <strong class="program">dnssec-keyfromlabel</strong> completes successfully, it prints a string
of the form <code class="docutils literal notranslate"><span class="pre">Knnnn.+aaa+iiiii</span></code> to the standard output. This is an
identification string for the key files it has generated.</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">nnnn</span></code> is the key name.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">aaa</span></code> is the numeric representation of the algorithm.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">iiiii</span></code> is the key identifier (or footprint).</p></li>
</ul>
<p><strong class="program">dnssec-keyfromlabel</strong> creates two files, with names based on the
printed string. <code class="docutils literal notranslate"><span class="pre">Knnnn.+aaa+iiiii.key</span></code> contains the public key, and
<code class="docutils literal notranslate"><span class="pre">Knnnn.+aaa+iiiii.private</span></code> contains the private key.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">.key</span></code> file contains a DNS KEY record that can be inserted into a
zone file (directly or with an $INCLUDE statement).</p>
<p>The <code class="docutils literal notranslate"><span class="pre">.private</span></code> file contains algorithm-specific fields. For obvious
security reasons, this file does not have general read permission.</p>
</section>
<section id="id33">
<h3>See Also<a class="headerlink" href="#id33" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-dnssec-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-keygen(8)</span></code></a>, <a class="reference internal" href="#std-iscman-dnssec-signzone"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-signzone(8)</span></code></a>, BIND 9 Administrator Reference Manual,
<span class="target" id="index-19"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc4034.html"><strong>RFC 4034</strong></a>, <span class="target" id="index-20"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc7512.html"><strong>RFC 7512</strong></a>.</p>
</section>
</section>
<section id="dnssec-keygen-dnssec-key-generation-tool">
<span id="man-dnssec-keygen"></span><span id="std-iscman-dnssec-keygen"></span><h2>dnssec-keygen: DNSSEC key generation tool<a class="headerlink" href="#dnssec-keygen-dnssec-key-generation-tool" title="Link to this heading"></a></h2>
<section id="id34">
<h3>Synopsis<a class="headerlink" href="#id34" title="Link to this heading"></a></h3>
<p><strong class="program">dnssec-keygen</strong> [<strong>-3</strong>] [<strong>-A</strong> date/offset] [<strong>-a</strong> algorithm] [<strong>-b</strong> keysize] [<strong>-C</strong>] [<strong>-c</strong> class] [<strong>-D</strong> date/offset] [<strong>-d</strong> bits] [<strong>-D</strong> sync date/offset] [<strong>-E</strong> engine] [<strong>-f</strong> flag] [<strong>-G</strong>] [<strong>-g</strong> generator] [<strong>-h</strong>] [<strong>-I</strong> date/offset] [<strong>-i</strong> interval] [<strong>-K</strong> directory] [<strong>-k</strong> policy] [<strong>-L</strong> ttl] [<strong>-l</strong> file] [<strong>-n</strong> nametype] [<strong>-P</strong> date/offset] [<strong>-P</strong> sync date/offset] [<strong>-p</strong> protocol] [<strong>-q</strong>] [<strong>-R</strong> date/offset] [<strong>-S</strong> key] [<strong>-s</strong> strength] [<strong>-T</strong> rrtype] [<strong>-t</strong> type] [<strong>-V</strong>] [<strong>-v</strong> level] {name}</p>
</section>
<section id="id35">
<h3>Description<a class="headerlink" href="#id35" title="Link to this heading"></a></h3>
<p><strong class="program">dnssec-keygen</strong> generates keys for DNSSEC (Secure DNS), as defined in
<span class="target" id="index-21"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2535.html"><strong>RFC 2535</strong></a> and <span class="target" id="index-22"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc4034.html"><strong>RFC 4034</strong></a>.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">name</span></code> of the key is specified on the command line. For DNSSEC
keys, this must match the name of the zone for which the key is being
generated.</p>
</section>
<section id="id36">
<h3>Options<a class="headerlink" href="#id36" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-3">
<span class="sig-name descname"><span class="pre">-3</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-keygen-3" title="Link to this definition"></a></dt>
<dd><p>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 is selected; for
example, <code class="docutils literal notranslate"><span class="pre">dnssec-keygen</span> <span class="pre">-3</span> <span class="pre">-a</span> <span class="pre">RSASHA1</span></code> specifies the NSEC3RSASHA1
(deprecated) algorithm.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-a">
<span class="sig-name descname"><span class="pre">-a</span></span><span class="sig-prename descclassname"> <span class="pre">algorithm</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-a" title="Link to this definition"></a></dt>
<dd><p>This option selects the cryptographic algorithm. For DNSSEC keys,
the value of <code class="docutils literal notranslate"><span class="pre">algorithm</span></code> must be one of RSASHA1 (deprecated),
NSEC3RSASHA1 deprecated), RSASHA256, RSASHA512, ECDSAP256SHA256,
ECDSAP384SHA384, ED25519, or ED448. For TKEY, the value must be
DH (Diffie-Hellman); specifying this value automatically sets
the <a class="reference internal" href="#cmdoption-dnssec-keygen-T"><code class="xref std std-option docutils literal notranslate"><span class="pre">-T</span> <span class="pre">KEY</span></code></a> option as well.</p>
<p>These values are case-insensitive. In some cases, abbreviations
are supported, such as ECDSA256 for ECDSAP256SHA256 and ECDSA384
for ECDSAP384SHA384. If RSASHA1 (deprecated) is specified along
with the <a class="reference internal" href="#cmdoption-dnssec-keygen-3"><code class="xref std std-option docutils literal notranslate"><span class="pre">-3</span></code></a> option, NSEC3RSASHA1 (deprecated) is used
instead.</p>
<p>This parameter <em>must</em> be specified except when using the <a class="reference internal" href="#cmdoption-dnssec-keygen-S"><code class="xref std std-option docutils literal notranslate"><span class="pre">-S</span></code></a>
option, which copies the algorithm from the predecessor key.</p>
<p>In prior releases, HMAC algorithms could be generated for use as TSIG
keys, but that feature was removed in BIND 9.13.0. Use
<a class="reference internal" href="#std-iscman-tsig-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">tsig-keygen</span></code></a> to generate TSIG keys.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-b">
<span class="sig-name descname"><span class="pre">-b</span></span><span class="sig-prename descclassname"> <span class="pre">keysize</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-b" title="Link to this definition"></a></dt>
<dd><p>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.</p>
<p>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
keys (KSKs, generated with <a class="reference internal" href="#cmdoption-dnssec-keygen-f"><code class="xref std std-option docutils literal notranslate"><span class="pre">-f</span> <span class="pre">KSK</span></code></a>) default to 2048 bits.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-C">
<span class="sig-name descname"><span class="pre">-C</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-keygen-C" title="Link to this definition"></a></dt>
<dd><p>This option enables compatibility mode, which generates an old-style key, without any timing
metadata. By default, <strong class="program">dnssec-keygen</strong> 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 <a class="reference internal" href="#cmdoption-dnssec-keygen-C"><code class="xref std std-option docutils literal notranslate"><span class="pre">-C</span></code></a> option suppresses them.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-c">
<span class="sig-name descname"><span class="pre">-c</span></span><span class="sig-prename descclassname"> <span class="pre">class</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-c" title="Link to this definition"></a></dt>
<dd><p>This option indicates that the DNS record containing the key should have the
specified class. If not specified, class IN is used.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-d">
<span class="sig-name descname"><span class="pre">-d</span></span><span class="sig-prename descclassname"> <span class="pre">bits</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-d" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-E">
<span class="sig-name descname"><span class="pre">-E</span></span><span class="sig-prename descclassname"> <span class="pre">engine</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-E" title="Link to this definition"></a></dt>
<dd><p>This option specifies the cryptographic hardware to use, when applicable.</p>
<p>When BIND 9 is built with OpenSSL, this needs to be set to the OpenSSL
engine identifier that drives the cryptographic accelerator or
hardware service module (usually <code class="docutils literal notranslate"><span class="pre">pkcs11</span></code>).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-f">
<span class="sig-name descname"><span class="pre">-f</span></span><span class="sig-prename descclassname"> <span class="pre">flag</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-f" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-G">
<span class="sig-name descname"><span class="pre">-G</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-keygen-G" title="Link to this definition"></a></dt>
<dd><p>This option generates a key, but does not publish it or sign with it. This option is
incompatible with <a class="reference internal" href="#cmdoption-dnssec-keygen-P"><code class="xref std std-option docutils literal notranslate"><span class="pre">-P</span></code></a> and <a class="reference internal" href="#cmdoption-dnssec-keygen-A"><code class="xref std std-option docutils literal notranslate"><span class="pre">-A</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-g">
<span class="sig-name descname"><span class="pre">-g</span></span><span class="sig-prename descclassname"> <span class="pre">generator</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-g" title="Link to this definition"></a></dt>
<dd><p>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
<span class="target" id="index-23"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2539.html"><strong>RFC 2539</strong></a> is used if possible; otherwise the default is 2.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-h">
<span class="sig-name descname"><span class="pre">-h</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-keygen-h" title="Link to this definition"></a></dt>
<dd><p>This option prints a short summary of the options and arguments to
<strong class="program">dnssec-keygen</strong>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-K">
<span class="sig-name descname"><span class="pre">-K</span></span><span class="sig-prename descclassname"> <span class="pre">directory</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-K" title="Link to this definition"></a></dt>
<dd><p>This option sets the directory in which the key files are to be written.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-k">
<span class="sig-name descname"><span class="pre">-k</span></span><span class="sig-prename descclassname"> <span class="pre">policy</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-k" title="Link to this definition"></a></dt>
<dd><p>This option creates keys for a specific <code class="docutils literal notranslate"><span class="pre">dnssec-policy</span></code>. If a policy uses multiple keys,
<strong class="program">dnssec-keygen</strong> generates multiple keys. This also
creates a “.state” file to keep track of the key state.</p>
<p>This option creates keys according to the <code class="docutils literal notranslate"><span class="pre">dnssec-policy</span></code> configuration, hence
it cannot be used at the same time as many of the other options that
<strong class="program">dnssec-keygen</strong> provides.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-L">
<span class="sig-name descname"><span class="pre">-L</span></span><span class="sig-prename descclassname"> <span class="pre">ttl</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-L" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">0</span></code> or <code class="docutils literal notranslate"><span class="pre">none</span></code>
is the same as leaving it unset.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-l">
<span class="sig-name descname"><span class="pre">-l</span></span><span class="sig-prename descclassname"> <span class="pre">file</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-l" title="Link to this definition"></a></dt>
<dd><p>This option provides a configuration file that contains a <code class="docutils literal notranslate"><span class="pre">dnssec-policy</span></code> statement
(matching the policy set with <a class="reference internal" href="#cmdoption-dnssec-keygen-k"><code class="xref std std-option docutils literal notranslate"><span class="pre">-k</span></code></a>).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-n">
<span class="sig-name descname"><span class="pre">-n</span></span><span class="sig-prename descclassname"> <span class="pre">nametype</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-n" title="Link to this definition"></a></dt>
<dd><p>This option specifies the owner type of the key. The value of <code class="docutils literal notranslate"><span class="pre">nametype</span></code> 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. The default is ZONE for DNSKEY generation.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-p">
<span class="sig-name descname"><span class="pre">-p</span></span><span class="sig-prename descclassname"> <span class="pre">protocol</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-p" title="Link to this definition"></a></dt>
<dd><p>This option sets the protocol value for the generated key, for use with
<a class="reference internal" href="#cmdoption-dnssec-keygen-T"><code class="xref std std-option docutils literal notranslate"><span class="pre">-T</span> <span class="pre">KEY</span></code></a>. The protocol is a number between 0 and 255. The default
is 3 (DNSSEC). Other possible values for this argument are listed in
<span class="target" id="index-24"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2535.html"><strong>RFC 2535</strong></a> and its successors.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-q">
<span class="sig-name descname"><span class="pre">-q</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-keygen-q" title="Link to this definition"></a></dt>
<dd><p>This option sets quiet mode, which suppresses unnecessary output, including progress
indication. Without this option, when <strong class="program">dnssec-keygen</strong> is run
interactively to generate an RSA or DSA key pair, it prints a
string of symbols to <code class="docutils literal notranslate"><span class="pre">stderr</span></code> indicating the progress of the key
generation. A <code class="docutils literal notranslate"><span class="pre">.</span></code> indicates that a random number has been found which
passed an initial sieve test; <code class="docutils literal notranslate"><span class="pre">+</span></code> 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-S">
<span class="sig-name descname"><span class="pre">-S</span></span><span class="sig-prename descclassname"> <span class="pre">key</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-S" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-s">
<span class="sig-name descname"><span class="pre">-s</span></span><span class="sig-prename descclassname"> <span class="pre">strength</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-s" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-T">
<span class="sig-name descname"><span class="pre">-T</span></span><span class="sig-prename descclassname"> <span class="pre">rrtype</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-T" title="Link to this definition"></a></dt>
<dd><p>This option specifies the resource record type to use for the key. <code class="docutils literal notranslate"><span class="pre">rrtype</span></code>
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).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-t">
<span class="sig-name descname"><span class="pre">-t</span></span><span class="sig-prename descclassname"> <span class="pre">type</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-t" title="Link to this definition"></a></dt>
<dd><p>This option indicates the type of the key for use with <a class="reference internal" href="#cmdoption-dnssec-keygen-T"><code class="xref std std-option docutils literal notranslate"><span class="pre">-T</span> <span class="pre">KEY</span></code></a>. <code class="docutils literal notranslate"><span class="pre">type</span></code>
must be one of AUTHCONF, NOAUTHCONF, NOAUTH, or NOCONF. The default
is AUTHCONF. AUTH refers to the ability to authenticate data, and
CONF to the ability to encrypt data.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-V">
<span class="sig-name descname"><span class="pre">-V</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-keygen-V" title="Link to this definition"></a></dt>
<dd><p>This option prints version information.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-v">
<span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"> <span class="pre">level</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-v" title="Link to this definition"></a></dt>
<dd><p>This option sets the debugging level.</p>
</dd></dl>
</section>
<section id="id37">
<h3>Timing Options<a class="headerlink" href="#id37" title="Link to this heading"></a></h3>
<p>Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS
(which is the format used inside key files),
or ‘Day Mon DD HH:MM:SS YYYY’ (as printed by <code class="docutils literal notranslate"><span class="pre">dnssec-settime</span> <span class="pre">-p</span></code>),
or UNIX epoch time (as printed by <code class="docutils literal notranslate"><span class="pre">dnssec-settime</span> <span class="pre">-up</span></code>),
or the literal <code class="docutils literal notranslate"><span class="pre">now</span></code>.</p>
<p>The argument can be followed by <code class="docutils literal notranslate"><span class="pre">+</span></code> or <code class="docutils literal notranslate"><span class="pre">-</span></code> and an offset from the
given time. The literal <code class="docutils literal notranslate"><span class="pre">now</span></code> can be omitted before an offset. The
offset can be followed by one of the suffixes <code class="docutils literal notranslate"><span class="pre">y</span></code>, <code class="docutils literal notranslate"><span class="pre">mo</span></code>, <code class="docutils literal notranslate"><span class="pre">w</span></code>,
<code class="docutils literal notranslate"><span class="pre">d</span></code>, <code class="docutils literal notranslate"><span class="pre">h</span></code>, or <code class="docutils literal notranslate"><span class="pre">mi</span></code>, so that it 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.</p>
<p>To unset a date, use <code class="docutils literal notranslate"><span class="pre">none</span></code>, <code class="docutils literal notranslate"><span class="pre">never</span></code>, or <code class="docutils literal notranslate"><span class="pre">unset</span></code>.</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-P">
<span class="sig-name descname"><span class="pre">-P</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-P" title="Link to this definition"></a></dt>
<dd><p>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 <a class="reference internal" href="#cmdoption-dnssec-keygen-G"><code class="xref std std-option docutils literal notranslate"><span class="pre">-G</span></code></a> option has not been used, the
default is the current date.</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-P-arg-sync">
<span class="sig-name descname"><span class="pre">sync</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-P-arg-sync" title="Link to this definition"></a></dt>
<dd><p>This option sets the date on which CDS and CDNSKEY records that match this key
are to be published to the zone.</p>
</dd></dl>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-A">
<span class="sig-name descname"><span class="pre">-A</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-A" title="Link to this definition"></a></dt>
<dd><p>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 <a class="reference internal" href="#cmdoption-dnssec-keygen-G"><code class="xref std std-option docutils literal notranslate"><span class="pre">-G</span></code></a> option has not been used, the default is the current date. If set,
and <a class="reference internal" href="#cmdoption-dnssec-keygen-P"><code class="xref std std-option docutils literal notranslate"><span class="pre">-P</span></code></a> is not set, the publication date is set to the
activation date minus the prepublication interval.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-R">
<span class="sig-name descname"><span class="pre">-R</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-R" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-I">
<span class="sig-name descname"><span class="pre">-I</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-I" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-D">
<span class="sig-name descname"><span class="pre">-D</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-D" title="Link to this definition"></a></dt>
<dd><p>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.)</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-D-arg-sync">
<span class="sig-name descname"><span class="pre">sync</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-D-arg-sync" title="Link to this definition"></a></dt>
<dd><p>This option sets the date on which the CDS and CDNSKEY records that match this
key are to be deleted.</p>
</dd></dl>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-keygen-i">
<span class="sig-name descname"><span class="pre">-i</span></span><span class="sig-prename descclassname"> <span class="pre">interval</span></span><a class="headerlink" href="#cmdoption-dnssec-keygen-i" title="Link to this definition"></a></dt>
<dd><p>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 is not, the publication date defaults to this much time
before the activation date; conversely, if the publication date is
specified but not the activation date, activation is set to
this much time after publication.</p>
<p>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.</p>
<p>As with date offsets, if the argument is followed by one of the
suffixes <code class="docutils literal notranslate"><span class="pre">y</span></code>, <code class="docutils literal notranslate"><span class="pre">mo</span></code>, <code class="docutils literal notranslate"><span class="pre">w</span></code>, <code class="docutils literal notranslate"><span class="pre">d</span></code>, <code class="docutils literal notranslate"><span class="pre">h</span></code>, or <code class="docutils literal notranslate"><span class="pre">mi</span></code>, the interval is
measured in years, months, weeks, days, hours, or minutes,
respectively. Without a suffix, the interval is measured in seconds.</p>
</dd></dl>
</section>
<section id="generated-keys">
<h3>Generated Keys<a class="headerlink" href="#generated-keys" title="Link to this heading"></a></h3>
<p>When <strong class="program">dnssec-keygen</strong> completes successfully, it prints a string of the
form <code class="docutils literal notranslate"><span class="pre">Knnnn.+aaa+iiiii</span></code> to the standard output. This is an
identification string for the key it has generated.</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">nnnn</span></code> is the key name.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">aaa</span></code> is the numeric representation of the algorithm.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">iiiii</span></code> is the key identifier (or footprint).</p></li>
</ul>
<p><strong class="program">dnssec-keygen</strong> creates two files, with names based on the printed
string. <code class="docutils literal notranslate"><span class="pre">Knnnn.+aaa+iiiii.key</span></code> contains the public key, and
<code class="docutils literal notranslate"><span class="pre">Knnnn.+aaa+iiiii.private</span></code> contains the private key.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">.key</span></code> file contains a DNSKEY or KEY record. When a zone is being
signed by <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> or <a class="reference internal" href="#cmdoption-dnssec-signzone-S"><code class="xref std std-option docutils literal notranslate"><span class="pre">dnssec-signzone</span> <span class="pre">-S</span></code></a>, DNSKEY records are
included automatically. In other cases, the <code class="docutils literal notranslate"><span class="pre">.key</span></code> file can be
inserted into a zone file manually or with an <code class="docutils literal notranslate"><span class="pre">$INCLUDE</span></code> statement.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">.private</span></code> file contains algorithm-specific fields. For obvious
security reasons, this file does not have general read permission.</p>
</section>
<section id="id38">
<h3>Example<a class="headerlink" href="#id38" title="Link to this heading"></a></h3>
<p>To generate an ECDSAP256SHA256 zone-signing key for the zone
<code class="docutils literal notranslate"><span class="pre">example.com</span></code>, issue the command:</p>
<p><code class="docutils literal notranslate"><span class="pre">dnssec-keygen</span> <span class="pre">-a</span> <span class="pre">ECDSAP256SHA256</span> <span class="pre">example.com</span></code></p>
<p>The command prints a string of the form:</p>
<p><code class="docutils literal notranslate"><span class="pre">Kexample.com.+013+26160</span></code></p>
<p>In this example, <strong class="program">dnssec-keygen</strong> creates the files
<code class="docutils literal notranslate"><span class="pre">Kexample.com.+013+26160.key</span></code> and <code class="docutils literal notranslate"><span class="pre">Kexample.com.+013+26160.private</span></code>.</p>
<p>To generate a matching key-signing key, issue the command:</p>
<p><code class="docutils literal notranslate"><span class="pre">dnssec-keygen</span> <span class="pre">-a</span> <span class="pre">ECDSAP256SHA256</span> <span class="pre">-f</span> <span class="pre">KSK</span> <span class="pre">example.com</span></code></p>
</section>
<section id="id39">
<h3>See Also<a class="headerlink" href="#id39" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-dnssec-signzone"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-signzone(8)</span></code></a>, BIND 9 Administrator Reference Manual, <span class="target" id="index-25"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2539.html"><strong>RFC 2539</strong></a>,
<span class="target" id="index-26"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2845.html"><strong>RFC 2845</strong></a>, <span class="target" id="index-27"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc4034.html"><strong>RFC 4034</strong></a>.</p>
</section>
</section>
<section id="dnssec-revoke-set-the-revoked-bit-on-a-dnssec-key">
<span id="man-dnssec-revoke"></span><span id="std-iscman-dnssec-revoke"></span><h2>dnssec-revoke - set the REVOKED bit on a DNSSEC key<a class="headerlink" href="#dnssec-revoke-set-the-revoked-bit-on-a-dnssec-key" title="Link to this heading"></a></h2>
<section id="id40">
<h3>Synopsis<a class="headerlink" href="#id40" title="Link to this heading"></a></h3>
<p><strong class="program">dnssec-revoke</strong> [<strong>-hr</strong>] [<strong>-v</strong> level] [<strong>-V</strong>] [<strong>-K</strong> directory] [<strong>-E</strong> engine] [<strong>-f</strong>] [<strong>-R</strong>] {keyfile}</p>
</section>
<section id="id41">
<h3>Description<a class="headerlink" href="#id41" title="Link to this heading"></a></h3>
<p><strong class="program">dnssec-revoke</strong> reads a DNSSEC key file, sets the REVOKED bit on the
key as defined in <span class="target" id="index-28"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc5011.html"><strong>RFC 5011</strong></a>, and creates a new pair of key files
containing the now-revoked key.</p>
</section>
<section id="id42">
<h3>Options<a class="headerlink" href="#id42" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-revoke-h">
<span class="sig-name descname"><span class="pre">-h</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-revoke-h" title="Link to this definition"></a></dt>
<dd><p>This option emits a usage message and exits.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-revoke-K">
<span class="sig-name descname"><span class="pre">-K</span></span><span class="sig-prename descclassname"> <span class="pre">directory</span></span><a class="headerlink" href="#cmdoption-dnssec-revoke-K" title="Link to this definition"></a></dt>
<dd><p>This option sets the directory in which the key files are to reside.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-revoke-r">
<span class="sig-name descname"><span class="pre">-r</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-revoke-r" title="Link to this definition"></a></dt>
<dd><p>This option indicates to remove the original keyset files after writing the new keyset files.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-revoke-v">
<span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"> <span class="pre">level</span></span><a class="headerlink" href="#cmdoption-dnssec-revoke-v" title="Link to this definition"></a></dt>
<dd><p>This option sets the debugging level.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-revoke-V">
<span class="sig-name descname"><span class="pre">-V</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-revoke-V" title="Link to this definition"></a></dt>
<dd><p>This option prints version information.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-revoke-E">
<span class="sig-name descname"><span class="pre">-E</span></span><span class="sig-prename descclassname"> <span class="pre">engine</span></span><a class="headerlink" href="#cmdoption-dnssec-revoke-E" title="Link to this definition"></a></dt>
<dd><p>This option specifies the cryptographic hardware to use, when applicable.</p>
<p>When BIND 9 is built with OpenSSL, this needs to be set to the OpenSSL
engine identifier that drives the cryptographic accelerator or
hardware service module (usually <code class="docutils literal notranslate"><span class="pre">pkcs11</span></code>).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-revoke-f">
<span class="sig-name descname"><span class="pre">-f</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-revoke-f" title="Link to this definition"></a></dt>
<dd><p>This option indicates a forced overwrite and causes <strong class="program">dnssec-revoke</strong> to write the new key pair,
even if a file already exists matching the algorithm and key ID of
the revoked key.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-revoke-R">
<span class="sig-name descname"><span class="pre">-R</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-revoke-R" title="Link to this definition"></a></dt>
<dd><p>This option prints the key tag of the key with the REVOKE bit set, but does not
revoke the key.</p>
</dd></dl>
</section>
<section id="id43">
<h3>See Also<a class="headerlink" href="#id43" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-dnssec-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-keygen(8)</span></code></a>, BIND 9 Administrator Reference Manual, <span class="target" id="index-29"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc5011.html"><strong>RFC 5011</strong></a>.</p>
</section>
</section>
<section id="dnssec-settime-set-the-key-timing-metadata-for-a-dnssec-key">
<span id="man-dnssec-settime"></span><span id="std-iscman-dnssec-settime"></span><h2>dnssec-settime: set the key timing metadata for a DNSSEC key<a class="headerlink" href="#dnssec-settime-set-the-key-timing-metadata-for-a-dnssec-key" title="Link to this heading"></a></h2>
<section id="id44">
<h3>Synopsis<a class="headerlink" href="#id44" title="Link to this heading"></a></h3>
<p><strong class="program">dnssec-settime</strong> [<strong>-f</strong>] [<strong>-K</strong> directory] [<strong>-L</strong> ttl] [<strong>-P</strong> date/offset] [<strong>-P</strong> ds date/offset] [<strong>-P</strong> sync date/offset] [<strong>-A</strong> date/offset] [<strong>-R</strong> date/offset] [<strong>-I</strong> date/offset] [<strong>-D</strong> date/offset] [<strong>-D</strong> ds date/offset] [<strong>-D</strong> sync date/offset] [<strong>-S</strong> key] [<strong>-i</strong> interval] [<strong>-h</strong>] [<strong>-V</strong>] [<strong>-v</strong> level] [<strong>-E</strong> engine] {keyfile} [<strong>-s</strong>] [<strong>-g</strong> state] [<strong>-d</strong> state date/offset] [<strong>-k</strong> state date/offset] [<strong>-r</strong> state date/offset] [<strong>-z</strong> state date/offset]</p>
</section>
<section id="id45">
<h3>Description<a class="headerlink" href="#id45" title="Link to this heading"></a></h3>
<p><strong class="program">dnssec-settime</strong> reads a DNSSEC private key file and sets the key
timing metadata as specified by the <a class="reference internal" href="#cmdoption-dnssec-settime-P"><code class="xref std std-option docutils literal notranslate"><span class="pre">-P</span></code></a>, <a class="reference internal" href="#cmdoption-dnssec-settime-A"><code class="xref std std-option docutils literal notranslate"><span class="pre">-A</span></code></a>, <a class="reference internal" href="#cmdoption-dnssec-settime-R"><code class="xref std std-option docutils literal notranslate"><span class="pre">-R</span></code></a>,
<a class="reference internal" href="#cmdoption-dnssec-settime-I"><code class="xref std std-option docutils literal notranslate"><span class="pre">-I</span></code></a>, and <a class="reference internal" href="#cmdoption-dnssec-settime-D"><code class="xref std std-option docutils literal notranslate"><span class="pre">-D</span></code></a> options. The metadata can then be used by
<a class="reference internal" href="#std-iscman-dnssec-signzone"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-signzone</span></code></a> or other signing software to determine when a key is
to be published, whether it should be used for signing a zone, etc.</p>
<p>If none of these options is set on the command line,
<strong class="program">dnssec-settime</strong> simply prints the key timing metadata already stored
in the key.</p>
<p>When key metadata fields are changed, both files of a key pair
(<code class="docutils literal notranslate"><span class="pre">Knnnn.+aaa+iiiii.key</span></code> and <code class="docutils literal notranslate"><span class="pre">Knnnn.+aaa+iiiii.private</span></code>) are
regenerated.</p>
<p>Metadata fields are stored in the private file. A
human-readable description of the metadata is also placed in comments in
the key file. The private file’s permissions are always set to be
inaccessible to anyone other than the owner (mode 0600).</p>
<p>When working with state files, it is possible to update the timing metadata in
those files as well with <a class="reference internal" href="#cmdoption-dnssec-settime-s"><code class="xref std std-option docutils literal notranslate"><span class="pre">-s</span></code></a>. With this option, it is also possible
to update key states with <a class="reference internal" href="#cmdoption-dnssec-settime-d"><code class="xref std std-option docutils literal notranslate"><span class="pre">-d</span></code></a> (DS), <a class="reference internal" href="#cmdoption-dnssec-settime-k"><code class="xref std std-option docutils literal notranslate"><span class="pre">-k</span></code></a> (DNSKEY), <a class="reference internal" href="#cmdoption-dnssec-settime-r"><code class="xref std std-option docutils literal notranslate"><span class="pre">-r</span></code></a>
(RRSIG of KSK), or <a class="reference internal" href="#cmdoption-dnssec-settime-z"><code class="xref std std-option docutils literal notranslate"><span class="pre">-z</span></code></a> (RRSIG of ZSK). Allowed states are HIDDEN,
RUMOURED, OMNIPRESENT, and UNRETENTIVE.</p>
<p>The goal state of the key can also be set with <a class="reference internal" href="#cmdoption-dnssec-settime-g"><code class="xref std std-option docutils literal notranslate"><span class="pre">-g</span></code></a>. This should be either
HIDDEN or OMNIPRESENT, representing whether the key should be removed from the
zone or published.</p>
<p>It is NOT RECOMMENDED to manipulate state files manually, except for testing
purposes.</p>
</section>
<section id="id46">
<h3>Options<a class="headerlink" href="#id46" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-f">
<span class="sig-name descname"><span class="pre">-f</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-settime-f" title="Link to this definition"></a></dt>
<dd><p>This option forces an update of an old-format key with no metadata fields. Without
this option, <strong class="program">dnssec-settime</strong> 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 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-K">
<span class="sig-name descname"><span class="pre">-K</span></span><span class="sig-prename descclassname"> <span class="pre">directory</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-K" title="Link to this definition"></a></dt>
<dd><p>This option sets the directory in which the key files are to reside.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-L">
<span class="sig-name descname"><span class="pre">-L</span></span><span class="sig-prename descclassname"> <span class="pre">ttl</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-L" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">0</span></code> or <code class="docutils literal notranslate"><span class="pre">none</span></code>
removes it from the key.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-h">
<span class="sig-name descname"><span class="pre">-h</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-settime-h" title="Link to this definition"></a></dt>
<dd><p>This option emits a usage message and exits.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-V">
<span class="sig-name descname"><span class="pre">-V</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-settime-V" title="Link to this definition"></a></dt>
<dd><p>This option prints version information.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-v">
<span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"> <span class="pre">level</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-v" title="Link to this definition"></a></dt>
<dd><p>This option sets the debugging level.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-E">
<span class="sig-name descname"><span class="pre">-E</span></span><span class="sig-prename descclassname"> <span class="pre">engine</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-E" title="Link to this definition"></a></dt>
<dd><p>This option specifies the cryptographic hardware to use, when applicable.</p>
<p>When BIND 9 is built with OpenSSL, this needs to be set to the OpenSSL
engine identifier that drives the cryptographic accelerator or
hardware service module (usually <code class="docutils literal notranslate"><span class="pre">pkcs11</span></code>).</p>
</dd></dl>
</section>
<section id="id47">
<h3>Timing Options<a class="headerlink" href="#id47" title="Link to this heading"></a></h3>
<p>Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS
(which is the format used inside key files),
or ‘Day Mon DD HH:MM:SS YYYY’ (as printed by <code class="docutils literal notranslate"><span class="pre">dnssec-settime</span> <span class="pre">-p</span></code>),
or UNIX epoch time (as printed by <code class="docutils literal notranslate"><span class="pre">dnssec-settime</span> <span class="pre">-up</span></code>),
or the literal <code class="docutils literal notranslate"><span class="pre">now</span></code>.</p>
<p>The argument can be followed by <code class="docutils literal notranslate"><span class="pre">+</span></code> or <code class="docutils literal notranslate"><span class="pre">-</span></code> and an offset from the
given time. The literal <code class="docutils literal notranslate"><span class="pre">now</span></code> can be omitted before an offset. The
offset can be followed by one of the suffixes <code class="docutils literal notranslate"><span class="pre">y</span></code>, <code class="docutils literal notranslate"><span class="pre">mo</span></code>, <code class="docutils literal notranslate"><span class="pre">w</span></code>,
<code class="docutils literal notranslate"><span class="pre">d</span></code>, <code class="docutils literal notranslate"><span class="pre">h</span></code>, or <code class="docutils literal notranslate"><span class="pre">mi</span></code>, so that it 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.</p>
<p>To unset a date, use <code class="docutils literal notranslate"><span class="pre">none</span></code>, <code class="docutils literal notranslate"><span class="pre">never</span></code>, or <code class="docutils literal notranslate"><span class="pre">unset</span></code>.</p>
<p>All these formats are case-insensitive.</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-P">
<span class="sig-name descname"><span class="pre">-P</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-P" title="Link to this definition"></a></dt>
<dd><p>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>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-P-arg-ds">
<span class="sig-name descname"><span class="pre">ds</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-P-arg-ds" title="Link to this definition"></a></dt>
<dd><p>This option sets the date on which DS records that match this key have been
seen in the parent zone.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-P-arg-sync">
<span class="sig-name descname"><span class="pre">sync</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-P-arg-sync" title="Link to this definition"></a></dt>
<dd><p>This option sets the date on which CDS and CDNSKEY records that match this key
are to be published to the zone.</p>
</dd></dl>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-A">
<span class="sig-name descname"><span class="pre">-A</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-A" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-R">
<span class="sig-name descname"><span class="pre">-R</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-R" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-I">
<span class="sig-name descname"><span class="pre">-I</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-I" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-D">
<span class="sig-name descname"><span class="pre">-D</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-D" title="Link to this definition"></a></dt>
<dd><p>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.)</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-D-arg-ds">
<span class="sig-name descname"><span class="pre">ds</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-D-arg-ds" title="Link to this definition"></a></dt>
<dd><p>This option sets the date on which the DS records that match this key have
been seen removed from the parent zone.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-D-arg-sync">
<span class="sig-name descname"><span class="pre">sync</span></span><span class="sig-prename descclassname"> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-D-arg-sync" title="Link to this definition"></a></dt>
<dd><p>This option sets the date on which the CDS and CDNSKEY records that match this
key are to be deleted.</p>
</dd></dl>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-S">
<span class="sig-name descname"><span class="pre">-S</span></span><span class="sig-prename descclassname"> <span class="pre">predecessor</span> <span class="pre">key</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-S" title="Link to this definition"></a></dt>
<dd><p>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 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-i">
<span class="sig-name descname"><span class="pre">-i</span></span><span class="sig-prename descclassname"> <span class="pre">interval</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-i" title="Link to this definition"></a></dt>
<dd><p>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 is not, the publication date defaults to this much time
before the activation date; conversely, if the publication date is
specified but not the activation date, activation is set to
this much time after publication.</p>
<p>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.</p>
<p>As with date offsets, if the argument is followed by one of the
suffixes <code class="docutils literal notranslate"><span class="pre">y</span></code>, <code class="docutils literal notranslate"><span class="pre">mo</span></code>, <code class="docutils literal notranslate"><span class="pre">w</span></code>, <code class="docutils literal notranslate"><span class="pre">d</span></code>, <code class="docutils literal notranslate"><span class="pre">h</span></code>, or <code class="docutils literal notranslate"><span class="pre">mi</span></code>, the interval is
measured in years, months, weeks, days, hours, or minutes,
respectively. Without a suffix, the interval is measured in seconds.</p>
</dd></dl>
</section>
<section id="key-state-options">
<h3>Key State Options<a class="headerlink" href="#key-state-options" title="Link to this heading"></a></h3>
<p>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.</p>
<p>Known key states are HIDDEN, RUMOURED, OMNIPRESENT, and UNRETENTIVE.</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-s">
<span class="sig-name descname"><span class="pre">-s</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-settime-s" title="Link to this definition"></a></dt>
<dd><p>This option indicates that when setting key timing data, the state file should also be updated.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-g">
<span class="sig-name descname"><span class="pre">-g</span></span><span class="sig-prename descclassname"> <span class="pre">state</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-g" title="Link to this definition"></a></dt>
<dd><p>This option sets the goal state for this key. Must be HIDDEN or OMNIPRESENT.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-d">
<span class="sig-name descname"><span class="pre">-d</span></span><span class="sig-prename descclassname"> <span class="pre">state</span> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-d" title="Link to this definition"></a></dt>
<dd><p>This option sets the DS state for this key as of the specified date, offset from the current date.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-k">
<span class="sig-name descname"><span class="pre">-k</span></span><span class="sig-prename descclassname"> <span class="pre">state</span> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-k" title="Link to this definition"></a></dt>
<dd><p>This option sets the DNSKEY state for this key as of the specified date, offset from the current date.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-r">
<span class="sig-name descname"><span class="pre">-r</span></span><span class="sig-prename descclassname"> <span class="pre">state</span> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-r" title="Link to this definition"></a></dt>
<dd><p>This option sets the RRSIG (KSK) state for this key as of the specified date, offset from the current date.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-z">
<span class="sig-name descname"><span class="pre">-z</span></span><span class="sig-prename descclassname"> <span class="pre">state</span> <span class="pre">date/offset</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-z" title="Link to this definition"></a></dt>
<dd><p>This option sets the RRSIG (ZSK) state for this key as of the specified date, offset from the current date.</p>
</dd></dl>
</section>
<section id="printing-options">
<h3>Printing Options<a class="headerlink" href="#printing-options" title="Link to this heading"></a></h3>
<p><strong class="program">dnssec-settime</strong> can also be used to print the timing metadata
associated with a key.</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-u">
<span class="sig-name descname"><span class="pre">-u</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-settime-u" title="Link to this definition"></a></dt>
<dd><p>This option indicates that times should be printed in Unix epoch format.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-settime-p">
<span class="sig-name descname"><span class="pre">-p</span></span><span class="sig-prename descclassname"> <span class="pre">C/P/Pds/Psync/A/R/I/D/Dds/Dsync/all</span></span><a class="headerlink" href="#cmdoption-dnssec-settime-p" title="Link to this definition"></a></dt>
<dd><p>This option prints a specific metadata value or set of metadata values.
The <a class="reference internal" href="#cmdoption-dnssec-settime-p"><code class="xref std std-option docutils literal notranslate"><span class="pre">-p</span></code></a> option may be followed by one or more of the following letters or
strings to indicate which value or values to print: <code class="docutils literal notranslate"><span class="pre">C</span></code> for the
creation date, <code class="docutils literal notranslate"><span class="pre">P</span></code> for the publication date, <code class="docutils literal notranslate"><span class="pre">Pds`</span> <span class="pre">for</span> <span class="pre">the</span> <span class="pre">DS</span> <span class="pre">publication</span>
<span class="pre">date,</span> <span class="pre">``Psync</span></code> for the CDS and CDNSKEY publication date, <code class="docutils literal notranslate"><span class="pre">A</span></code> for the
activation date, <code class="docutils literal notranslate"><span class="pre">R</span></code> for the revocation date, <code class="docutils literal notranslate"><span class="pre">I</span></code> for the inactivation
date, <code class="docutils literal notranslate"><span class="pre">D</span></code> for the deletion date, <code class="docutils literal notranslate"><span class="pre">Dds</span></code> for the DS deletion date,
and <code class="docutils literal notranslate"><span class="pre">Dsync</span></code> for the CDS and CDNSKEY deletion date. To print all of the
metadata, use <code class="docutils literal notranslate"><span class="pre">all</span></code>.</p>
</dd></dl>
</section>
<section id="id48">
<h3>See Also<a class="headerlink" href="#id48" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-dnssec-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-keygen(8)</span></code></a>, <a class="reference internal" href="#std-iscman-dnssec-signzone"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-signzone(8)</span></code></a>, BIND 9 Administrator Reference Manual,
<span class="target" id="index-30"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc5011.html"><strong>RFC 5011</strong></a>.</p>
</section>
</section>
<section id="dnssec-signzone-dnssec-zone-signing-tool">
<span id="man-dnssec-signzone"></span><span id="std-iscman-dnssec-signzone"></span><h2>dnssec-signzone - DNSSEC zone signing tool<a class="headerlink" href="#dnssec-signzone-dnssec-zone-signing-tool" title="Link to this heading"></a></h2>
<section id="id49">
<h3>Synopsis<a class="headerlink" href="#id49" title="Link to this heading"></a></h3>
<p><strong class="program">dnssec-signzone</strong> [<strong>-a</strong>] [<strong>-c</strong> class] [<strong>-d</strong> directory] [<strong>-D</strong>] [<strong>-E</strong> engine] [<strong>-e</strong> end-time] [<strong>-f</strong> output-file] [<strong>-g</strong>] [<strong>-h</strong>] [<strong>-i</strong> interval] [<strong>-I</strong> input-format] [<strong>-j</strong> jitter] [<strong>-K</strong> directory] [<strong>-k</strong> key] [<strong>-L</strong> serial] [<strong>-M</strong> maxttl] [<strong>-N</strong> soa-serial-format] [<strong>-o</strong> origin] [<strong>-O</strong> output-format] [<strong>-P</strong>] [<strong>-Q</strong>] [<strong>-q</strong>] [<strong>-R</strong>] [<strong>-S</strong>] [<strong>-s</strong> start-time] [<strong>-T</strong> ttl] [<strong>-t</strong>] [<strong>-u</strong>] [<strong>-v</strong> level] [<strong>-V</strong>] [<strong>-X</strong> extended end-time] [<strong>-x</strong>] [<strong>-z</strong>] [<strong>-3</strong> salt] [<strong>-H</strong> iterations] [<strong>-A</strong>] {zonefile} [key…]</p>
</section>
<section id="id50">
<h3>Description<a class="headerlink" href="#id50" title="Link to this heading"></a></h3>
<p><strong class="program">dnssec-signzone</strong> 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) is determined by the presence or absence of a <code class="docutils literal notranslate"><span class="pre">keyset</span></code>
file for each child zone.</p>
</section>
<section id="id51">
<h3>Options<a class="headerlink" href="#id51" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-a">
<span class="sig-name descname"><span class="pre">-a</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-a" title="Link to this definition"></a></dt>
<dd><p>This option verifies all generated signatures.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-c">
<span class="sig-name descname"><span class="pre">-c</span></span><span class="sig-prename descclassname"> <span class="pre">class</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-c" title="Link to this definition"></a></dt>
<dd><p>This option specifies the DNS class of the zone.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-C">
<span class="sig-name descname"><span class="pre">-C</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-C" title="Link to this definition"></a></dt>
<dd><p>This option sets compatibility mode, in which a <code class="docutils literal notranslate"><span class="pre">keyset-zonename</span></code> file is generated in addition
to <code class="docutils literal notranslate"><span class="pre">dsset-zonename</span></code> when signing a zone, for use by older versions
of <strong class="program">dnssec-signzone</strong>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-d">
<span class="sig-name descname"><span class="pre">-d</span></span><span class="sig-prename descclassname"> <span class="pre">directory</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-d" title="Link to this definition"></a></dt>
<dd><p>This option indicates the directory where BIND 9 should look for <code class="docutils literal notranslate"><span class="pre">dsset-</span></code> or <code class="docutils literal notranslate"><span class="pre">keyset-</span></code> files.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-D">
<span class="sig-name descname"><span class="pre">-D</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-D" title="Link to this definition"></a></dt>
<dd><p>This option indicates that only those record types automatically managed by
<strong class="program">dnssec-signzone</strong>, i.e., RRSIG, NSEC, NSEC3 and NSEC3PARAM records, should be included in the output.
If smart signing (<a class="reference internal" href="#cmdoption-dnssec-signzone-S"><code class="xref std std-option docutils literal notranslate"><span class="pre">-S</span></code></a>) is used, DNSKEY records are also included.
The resulting file can be included in the original zone file with
<code class="docutils literal notranslate"><span class="pre">$INCLUDE</span></code>. This option cannot be combined with <a class="reference internal" href="#cmdoption-dnssec-signzone-O"><code class="xref std std-option docutils literal notranslate"><span class="pre">-O</span> <span class="pre">raw</span></code></a>
or serial-number updating.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-E">
<span class="sig-name descname"><span class="pre">-E</span></span><span class="sig-prename descclassname"> <span class="pre">engine</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-E" title="Link to this definition"></a></dt>
<dd><p>This option specifies the hardware to use for cryptographic
operations, such as a secure key store used for signing, when applicable.</p>
<p>When BIND 9 is built with OpenSSL, this needs to be set to the OpenSSL
engine identifier that drives the cryptographic accelerator or
hardware service module (usually <code class="docutils literal notranslate"><span class="pre">pkcs11</span></code>).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-g">
<span class="sig-name descname"><span class="pre">-g</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-g" title="Link to this definition"></a></dt>
<dd><p>This option indicates that DS records for child zones should be generated from a <code class="docutils literal notranslate"><span class="pre">dsset-</span></code> or <code class="docutils literal notranslate"><span class="pre">keyset-</span></code>
file. Existing DS records are removed.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-K">
<span class="sig-name descname"><span class="pre">-K</span></span><span class="sig-prename descclassname"> <span class="pre">directory</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-K" title="Link to this definition"></a></dt>
<dd><p>This option specifies the directory to search for DNSSEC keys. If not
specified, it defaults to the current directory.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-k">
<span class="sig-name descname"><span class="pre">-k</span></span><span class="sig-prename descclassname"> <span class="pre">key</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-k" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-M">
<span class="sig-name descname"><span class="pre">-M</span></span><span class="sig-prename descclassname"> <span class="pre">maxttl</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-M" title="Link to this definition"></a></dt>
<dd><p>This option sets the maximum TTL for the signed zone. Any TTL higher than <code class="docutils literal notranslate"><span class="pre">maxttl</span></code>
in the input zone is reduced to <code class="docutils literal notranslate"><span class="pre">maxttl</span></code> in the output. This
provides certainty as to the largest possible TTL in the signed zone,
which is useful to know when rolling keys. The maxttl is the longest
possible time before signatures that have been retrieved by resolvers
expire from resolver caches. Zones that are signed with this
option should be configured to use a matching <code class="docutils literal notranslate"><span class="pre">max-zone-ttl</span></code> in
<a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>. (Note: This option is incompatible with <a class="reference internal" href="#cmdoption-dnssec-signzone-D"><code class="xref std std-option docutils literal notranslate"><span class="pre">-D</span></code></a>,
because it modifies non-DNSSEC data in the output zone.)</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-s">
<span class="sig-name descname"><span class="pre">-s</span></span><span class="sig-prename descclassname"> <span class="pre">start-time</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-s" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">+N</span></code>, which is N seconds from the current
time. If no <code class="docutils literal notranslate"><span class="pre">start-time</span></code> is specified, the current time minus 1
hour (to allow for clock skew) is used.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-e">
<span class="sig-name descname"><span class="pre">-e</span></span><span class="sig-prename descclassname"> <span class="pre">end-time</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-e" title="Link to this definition"></a></dt>
<dd><p>This option specifies the date and time when the generated RRSIG records expire. As
with <code class="docutils literal notranslate"><span class="pre">start-time</span></code>, an absolute time is indicated in YYYYMMDDHHMMSS
notation. A time relative to the start time is indicated with <code class="docutils literal notranslate"><span class="pre">+N</span></code>,
which is N seconds from the start time. A time relative to the
current time is indicated with <code class="docutils literal notranslate"><span class="pre">now+N</span></code>. If no <code class="docutils literal notranslate"><span class="pre">end-time</span></code> is
specified, 30 days from the start time is the default.
<code class="docutils literal notranslate"><span class="pre">end-time</span></code> must be later than <code class="docutils literal notranslate"><span class="pre">start-time</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-X">
<span class="sig-name descname"><span class="pre">-X</span></span><span class="sig-prename descclassname"> <span class="pre">extended</span> <span class="pre">end-time</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-X" title="Link to this definition"></a></dt>
<dd><p>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.</p>
<p>As with <code class="docutils literal notranslate"><span class="pre">end-time</span></code>, an absolute time is indicated in
YYYYMMDDHHMMSS notation. A time relative to the start time is
indicated with <code class="docutils literal notranslate"><span class="pre">+N</span></code>, which is N seconds from the start time. A time
relative to the current time is indicated with <code class="docutils literal notranslate"><span class="pre">now+N</span></code>. If no
<code class="docutils literal notranslate"><span class="pre">extended</span> <span class="pre">end-time</span></code> is specified, the value of <code class="docutils literal notranslate"><span class="pre">end-time</span></code> is used
as the default. (<code class="docutils literal notranslate"><span class="pre">end-time</span></code>, in turn, defaults to 30 days from the
start time.) <code class="docutils literal notranslate"><span class="pre">extended</span> <span class="pre">end-time</span></code> must be later than <code class="docutils literal notranslate"><span class="pre">start-time</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-f">
<span class="sig-name descname"><span class="pre">-f</span></span><span class="sig-prename descclassname"> <span class="pre">output-file</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-f" title="Link to this definition"></a></dt>
<dd><p>This option indicates the name of the output file containing the signed zone. The default
is to append <code class="docutils literal notranslate"><span class="pre">.signed</span></code> to the input filename. If <code class="docutils literal notranslate"><span class="pre">output-file</span></code> is
set to <code class="docutils literal notranslate"><span class="pre">-</span></code>, then the signed zone is written to the standard
output, with a default output format of <code class="docutils literal notranslate"><span class="pre">full</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-h">
<span class="sig-name descname"><span class="pre">-h</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-h" title="Link to this definition"></a></dt>
<dd><p>This option prints a short summary of the options and arguments to
<strong class="program">dnssec-signzone</strong>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-V">
<span class="sig-name descname"><span class="pre">-V</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-V" title="Link to this definition"></a></dt>
<dd><p>This option prints version information.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-i">
<span class="sig-name descname"><span class="pre">-i</span></span><span class="sig-prename descclassname"> <span class="pre">interval</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-i" title="Link to this definition"></a></dt>
<dd><p>This option indicates that, when a previously signed zone is passed as input, records may be
re-signed. The <code class="docutils literal notranslate"><span class="pre">interval</span></code> 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.</p>
<p>The default cycle interval is one quarter of the difference between
the signature end and start times. So if neither <code class="docutils literal notranslate"><span class="pre">end-time</span></code> nor
<code class="docutils literal notranslate"><span class="pre">start-time</span></code> is specified, <strong class="program">dnssec-signzone</strong> 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 are replaced.</p>
<p>Note that the calculation of cycle interval is based upon the validity
period of the replacement signatures that would be generated by
<code class="docutils literal notranslate"><span class="pre">dnssec-signzone</span></code>, not on the valid lifetimes of the input RRSIGs being
considered for pre-expiry replacement.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-I">
<span class="sig-name descname"><span class="pre">-I</span></span><span class="sig-prename descclassname"> <span class="pre">input-format</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-I" title="Link to this definition"></a></dt>
<dd><p>This option sets the format of the input zone file. Possible formats are
<code class="docutils literal notranslate"><span class="pre">text</span></code> (the default), and <code class="docutils literal notranslate"><span class="pre">raw</span></code>. 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.
This option is not useful for non-dynamic zones.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-j">
<span class="sig-name descname"><span class="pre">-j</span></span><span class="sig-prename descclassname"> <span class="pre">jitter</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-j" title="Link to this definition"></a></dt>
<dd><p>When signing a zone with a fixed signature lifetime, all RRSIG
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 <code class="docutils literal notranslate"><span class="pre">jitter</span></code> option specifies a jitter
window that is used to randomize the signature expire time, thus
spreading incremental signature regeneration over time.</p>
<p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-L">
<span class="sig-name descname"><span class="pre">-L</span></span><span class="sig-prename descclassname"> <span class="pre">serial</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-L" title="Link to this definition"></a></dt>
<dd><p>When writing a signed zone to “raw” format, this option sets the “source
serial” value in the header to the specified <code class="docutils literal notranslate"><span class="pre">serial</span></code> number. (This is
expected to be used primarily for testing purposes.)</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-n">
<span class="sig-name descname"><span class="pre">-n</span></span><span class="sig-prename descclassname"> <span class="pre">ncpus</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-n" title="Link to this definition"></a></dt>
<dd><p>This option specifies the number of threads to use. By default, one thread is
started for each detected CPU.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-N">
<span class="sig-name descname"><span class="pre">-N</span></span><span class="sig-prename descclassname"> <span class="pre">soa-serial-format</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-N" title="Link to this definition"></a></dt>
<dd><p>This option sets the SOA serial number format of the signed zone. Possible formats are
<code class="docutils literal notranslate"><span class="pre">keep</span></code> (the default), <code class="docutils literal notranslate"><span class="pre">increment</span></code>, <code class="docutils literal notranslate"><span class="pre">unixtime</span></code>, and
<code class="docutils literal notranslate"><span class="pre">date</span></code>.</p>
<dl class="simple">
<dt><strong>keep</strong></dt><dd><p>This format indicates that the SOA serial number should not be modified.</p>
</dd>
<dt><strong>increment</strong></dt><dd><p>This format increments the SOA serial number using <span class="target" id="index-31"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1982.html"><strong>RFC 1982</strong></a> arithmetic.</p>
</dd>
<dt><strong>unixtime</strong></dt><dd><p>This format sets the SOA serial number to the number of seconds
since the beginning of the Unix epoch, unless the serial
number is already greater than or equal to that value, in
which case it is simply incremented by one.</p>
</dd>
<dt><strong>date</strong></dt><dd><p>This format sets the SOA serial number to today’s date, in
YYYYMMDDNN format, unless the serial number is already greater
than or equal to that value, in which case it is simply
incremented by one.</p>
</dd>
</dl>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-o">
<span class="sig-name descname"><span class="pre">-o</span></span><span class="sig-prename descclassname"> <span class="pre">origin</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-o" title="Link to this definition"></a></dt>
<dd><p>This option sets the zone origin. If not specified, the name of the zone file is
assumed to be the origin.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-O">
<span class="sig-name descname"><span class="pre">-O</span></span><span class="sig-prename descclassname"> <span class="pre">output-format</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-O" title="Link to this definition"></a></dt>
<dd><p>This option sets the format of the output file containing the signed
zone. Possible formats are <code class="docutils literal notranslate"><span class="pre">text</span></code> (the default), which is the standard
textual representation of the zone; <code class="docutils literal notranslate"><span class="pre">full</span></code>, which is text output in a
format suitable for processing by external scripts; and <code class="docutils literal notranslate"><span class="pre">raw</span></code> and
<code class="docutils literal notranslate"><span class="pre">raw=N</span></code>, which store the zone in binary formats for rapid loading by
<a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>. <code class="docutils literal notranslate"><span class="pre">raw=N</span></code> specifies the format version of the raw zone file:
if N is 0, the raw file can be read by any version of <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>; if N is
1, the file can be read by release 9.9.0 or higher. The default is 1.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-P">
<span class="sig-name descname"><span class="pre">-P</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-P" title="Link to this definition"></a></dt>
<dd><p>This option disables post-sign verification tests.</p>
<p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-Q">
<span class="sig-name descname"><span class="pre">-Q</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-Q" title="Link to this definition"></a></dt>
<dd><p>This option removes signatures from keys that are no longer active.</p>
<p>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 <a class="reference internal" href="#cmdoption-dnssec-signzone-Q"><code class="xref std std-option docutils literal notranslate"><span class="pre">-Q</span></code></a> option forces
<strong class="program">dnssec-signzone</strong> to remove signatures from keys that are no longer
active. This enables ZSK rollover using the procedure described in
<span class="target" id="index-32"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc6781.html#section-4.1.1.1"><strong>RFC 6781#section-4.1.1.1</strong></a> (“Pre-Publish Zone Signing Key Rollover”).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-q">
<span class="sig-name descname"><span class="pre">-q</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-q" title="Link to this definition"></a></dt>
<dd><p>This option enables quiet mode, which suppresses unnecessary output. Without this option, when
<strong class="program">dnssec-signzone</strong> 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-R">
<span class="sig-name descname"><span class="pre">-R</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-R" title="Link to this definition"></a></dt>
<dd><p>This option removes signatures from keys that are no longer published.</p>
<p>This option is similar to <a class="reference internal" href="#cmdoption-dnssec-signzone-Q"><code class="xref std std-option docutils literal notranslate"><span class="pre">-Q</span></code></a>, except it forces
<strong class="program">dnssec-signzone</strong> to remove signatures from keys that are no longer
published. This enables ZSK rollover using the procedure described in
<span class="target" id="index-33"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc6781.html#section-4.1.1.2"><strong>RFC 6781#section-4.1.1.2</strong></a> (“Double Signature Zone Signing Key
Rollover”).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-S">
<span class="sig-name descname"><span class="pre">-S</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-S" title="Link to this definition"></a></dt>
<dd><p>This option enables smart signing, which instructs <strong class="program">dnssec-signzone</strong> to search the key
repository for keys that match the zone being signed, and to include
them in the zone if appropriate.</p>
<p>When a key is found, its timing metadata is examined to determine how
it should be used, according to the following rules. Each successive
rule takes priority over the prior ones:</p>
<blockquote>
<div><p>If no timing metadata has been set for the key, the key is
published in the zone and used to sign the zone.</p>
<p>If the key’s publication date is set and is in the past, the key
is published in the zone.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>If the key’s sync publication date is set and is in the past,
synchronization records (type CDS and/or CDNSKEY) are created.</p>
<p>If the key’s sync deletion date is set and is in the past,
synchronization records (type CDS and/or CDNSKEY) are removed.</p>
</div></blockquote>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-T">
<span class="sig-name descname"><span class="pre">-T</span></span><span class="sig-prename descclassname"> <span class="pre">ttl</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-T" title="Link to this definition"></a></dt>
<dd><p>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 <a class="reference internal" href="#cmdoption-dnssec-signzone-S"><code class="xref std std-option docutils literal notranslate"><span class="pre">-S</span></code></a>, 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 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-t">
<span class="sig-name descname"><span class="pre">-t</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-t" title="Link to this definition"></a></dt>
<dd><p>This option prints statistics at completion.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-u">
<span class="sig-name descname"><span class="pre">-u</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-u" title="Link to this definition"></a></dt>
<dd><p>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 switched to NSEC or to NSEC3 with
different parameters. Without this option, <strong class="program">dnssec-signzone</strong>
retains the existing chain when re-signing.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-v">
<span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"> <span class="pre">level</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-v" title="Link to this definition"></a></dt>
<dd><p>This option sets the debugging level.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-x">
<span class="sig-name descname"><span class="pre">-x</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-x" title="Link to this definition"></a></dt>
<dd><p>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
<code class="docutils literal notranslate"><span class="pre">dnssec-dnskey-kskonly</span> <span class="pre">yes;</span></code> zone option in <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>.)</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-z">
<span class="sig-name descname"><span class="pre">-z</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-z" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">update-check-ksk</span> <span class="pre">no;</span></code> zone option in
<a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>.)</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-3">
<span class="sig-name descname"><span class="pre">-3</span></span><span class="sig-prename descclassname"> <span class="pre">salt</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-3" title="Link to this definition"></a></dt>
<dd><p>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.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p><code class="docutils literal notranslate"><span class="pre">-3</span> <span class="pre">-</span></code> is the recommended configuration. Adding salt provides no practical benefits.
See <span class="target" id="index-34"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc9276.html"><strong>RFC 9276</strong></a>.</p>
</div>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-H">
<span class="sig-name descname"><span class="pre">-H</span></span><span class="sig-prename descclassname"> <span class="pre">iterations</span></span><a class="headerlink" href="#cmdoption-dnssec-signzone-H" title="Link to this definition"></a></dt>
<dd><p>This option indicates that, when generating an NSEC3 chain, BIND 9 should use this many iterations. The default
is 0.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Values greater than 0 cause interoperability issues and also increase the risk of CPU-exhausting DoS attacks.
See <span class="target" id="index-35"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc9276.html"><strong>RFC 9276</strong></a>.</p>
</div>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-A">
<span class="sig-name descname"><span class="pre">-A</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-A" title="Link to this definition"></a></dt>
<dd><p>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.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Do not use this option unless all its implications are fully understood. This option is intended only for extremely large zones (comparable to <code class="docutils literal notranslate"><span class="pre">com.</span></code>) with sparse secure delegations.
See <span class="target" id="index-36"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc9276.html"><strong>RFC 9276</strong></a>.</p>
</div>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-AA">
<span class="sig-name descname"><span class="pre">-AA</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-AA" title="Link to this definition"></a></dt>
<dd><p>This option turns the OPTOUT flag off for
all records. This is useful when using the <a class="reference internal" href="#cmdoption-dnssec-signzone-u"><code class="xref std std-option docutils literal notranslate"><span class="pre">-u</span></code></a> option to modify an
NSEC3 chain which previously had OPTOUT set.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-arg-zonefile">
<span class="sig-name descname"><span class="pre">zonefile</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-arg-zonefile" title="Link to this definition"></a></dt>
<dd><p>This option sets the file containing the zone to be signed.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-signzone-arg-key">
<span class="sig-name descname"><span class="pre">key</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-signzone-arg-key" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
</section>
<section id="id52">
<h3>Example<a class="headerlink" href="#id52" title="Link to this heading"></a></h3>
<p>The following command signs the <code class="docutils literal notranslate"><span class="pre">example.com</span></code> zone with the
ECDSAP256SHA256 key generated by <a class="reference internal" href="#std-iscman-dnssec-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-keygen</span></code></a>
(Kexample.com.+013+17247). Because the <a class="reference internal" href="#cmdoption-dnssec-signzone-S"><code class="xref std std-option docutils literal notranslate"><span class="pre">-S</span></code></a> option is not being used,
the zone’s keys must be in the master file (<code class="docutils literal notranslate"><span class="pre">db.example.com</span></code>). This
invocation looks for <code class="docutils literal notranslate"><span class="pre">dsset</span></code> files in the current directory, so that
DS records can be imported from them (<a class="reference internal" href="#cmdoption-dnssec-signzone-g"><code class="xref std std-option docutils literal notranslate"><span class="pre">-g</span></code></a>).</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">%</span> <span class="n">dnssec</span><span class="o">-</span><span class="n">signzone</span> <span class="o">-</span><span class="n">g</span> <span class="o">-</span><span class="n">o</span> <span class="n">example</span><span class="o">.</span><span class="n">com</span> <span class="n">db</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span> \
<span class="n">Kexample</span><span class="o">.</span><span class="n">com</span><span class="o">.+</span><span class="mi">013</span><span class="o">+</span><span class="mi">17247</span>
<span class="n">db</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="o">.</span><span class="n">signed</span>
<span class="o">%</span>
</pre></div>
</div>
<p>In the above example, <strong class="program">dnssec-signzone</strong> creates the file
<code class="docutils literal notranslate"><span class="pre">db.example.com.signed</span></code>. This file should be referenced in a zone
statement in the <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a> file.</p>
<p>This example re-signs a previously signed zone with default parameters.
The private keys are assumed to be in the current directory.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">%</span> <span class="n">cp</span> <span class="n">db</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="o">.</span><span class="n">signed</span> <span class="n">db</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span>
<span class="o">%</span> <span class="n">dnssec</span><span class="o">-</span><span class="n">signzone</span> <span class="o">-</span><span class="n">o</span> <span class="n">example</span><span class="o">.</span><span class="n">com</span> <span class="n">db</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span>
<span class="n">db</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="o">.</span><span class="n">signed</span>
<span class="o">%</span>
</pre></div>
</div>
</section>
<section id="id53">
<h3>See Also<a class="headerlink" href="#id53" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-dnssec-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-keygen(8)</span></code></a>, BIND 9 Administrator Reference Manual, <span class="target" id="index-37"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc4033.html"><strong>RFC 4033</strong></a>,
<span class="target" id="index-38"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc6781.html"><strong>RFC 6781</strong></a>.</p>
</section>
</section>
<section id="dnssec-verify-dnssec-zone-verification-tool">
<span id="man-dnssec-verify"></span><span id="std-iscman-dnssec-verify"></span><h2>dnssec-verify - DNSSEC zone verification tool<a class="headerlink" href="#dnssec-verify-dnssec-zone-verification-tool" title="Link to this heading"></a></h2>
<section id="id54">
<h3>Synopsis<a class="headerlink" href="#id54" title="Link to this heading"></a></h3>
<p><strong class="program">dnssec-verify</strong> [<strong>-c</strong> class] [<strong>-E</strong> engine] [<strong>-I</strong> input-format] [<strong>-o</strong> origin] [<strong>-q</strong>] [<strong>-v</strong> level] [<strong>-V</strong>] [<strong>-x</strong>] [<strong>-z</strong>] {zonefile}</p>
</section>
<section id="id55">
<h3>Description<a class="headerlink" href="#id55" title="Link to this heading"></a></h3>
<p><strong class="program">dnssec-verify</strong> 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.</p>
</section>
<section id="id56">
<h3>Options<a class="headerlink" href="#id56" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-verify-c">
<span class="sig-name descname"><span class="pre">-c</span></span><span class="sig-prename descclassname"> <span class="pre">class</span></span><a class="headerlink" href="#cmdoption-dnssec-verify-c" title="Link to this definition"></a></dt>
<dd><p>This option specifies the DNS class of the zone.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-verify-E">
<span class="sig-name descname"><span class="pre">-E</span></span><span class="sig-prename descclassname"> <span class="pre">engine</span></span><a class="headerlink" href="#cmdoption-dnssec-verify-E" title="Link to this definition"></a></dt>
<dd><p>This option specifies the cryptographic hardware to use, when applicable.</p>
<p>When BIND 9 is built with OpenSSL, this needs to be set to the OpenSSL
engine identifier that drives the cryptographic accelerator or
hardware service module (usually <code class="docutils literal notranslate"><span class="pre">pkcs11</span></code>).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-verify-I">
<span class="sig-name descname"><span class="pre">-I</span></span><span class="sig-prename descclassname"> <span class="pre">input-format</span></span><a class="headerlink" href="#cmdoption-dnssec-verify-I" title="Link to this definition"></a></dt>
<dd><p>This option sets the format of the input zone file. Possible formats are <code class="docutils literal notranslate"><span class="pre">text</span></code>
(the default) and <code class="docutils literal notranslate"><span class="pre">raw</span></code>. 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-verify-o">
<span class="sig-name descname"><span class="pre">-o</span></span><span class="sig-prename descclassname"> <span class="pre">origin</span></span><a class="headerlink" href="#cmdoption-dnssec-verify-o" title="Link to this definition"></a></dt>
<dd><p>This option indicates the zone origin. If not specified, the name of the zone file is
assumed to be the origin.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-verify-v">
<span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"> <span class="pre">level</span></span><a class="headerlink" href="#cmdoption-dnssec-verify-v" title="Link to this definition"></a></dt>
<dd><p>This option sets the debugging level.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-verify-V">
<span class="sig-name descname"><span class="pre">-V</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-verify-V" title="Link to this definition"></a></dt>
<dd><p>This option prints version information.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-verify-q">
<span class="sig-name descname"><span class="pre">-q</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-verify-q" title="Link to this definition"></a></dt>
<dd><p>This option sets quiet mode, which suppresses output. Without this option, when <strong class="program">dnssec-verify</strong>
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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-verify-x">
<span class="sig-name descname"><span class="pre">-x</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-verify-x" title="Link to this definition"></a></dt>
<dd><p>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 <a class="reference internal" href="#cmdoption-dnssec-signzone-x"><code class="xref std std-option docutils literal notranslate"><span class="pre">-x</span> <span class="pre">option</span> <span class="pre">in</span> <span class="pre">dnssec-signzone</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-verify-z">
<span class="sig-name descname"><span class="pre">-z</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-verify-z" title="Link to this definition"></a></dt>
<dd><p>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 are signed with
a different DNSKEY without the KSK flag set.</p>
<p>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 <a class="reference internal" href="#cmdoption-dnssec-signzone-z"><code class="xref std std-option docutils literal notranslate"><span class="pre">-z</span> <span class="pre">option</span> <span class="pre">in</span> <span class="pre">dnssec-signzone</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnssec-verify-arg-zonefile">
<span class="sig-name descname"><span class="pre">zonefile</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnssec-verify-arg-zonefile" title="Link to this definition"></a></dt>
<dd><p>This option indicates the file containing the zone to be signed.</p>
</dd></dl>
</section>
<section id="id57">
<h3>See Also<a class="headerlink" href="#id57" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-dnssec-signzone"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-signzone(8)</span></code></a>, BIND 9 Administrator Reference Manual, <span class="target" id="index-39"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc4033.html"><strong>RFC 4033</strong></a>.</p>
</section>
</section>
<section id="dnstap-read-print-dnstap-data-in-human-readable-form">
<span id="man-dnstap-read"></span><span id="std-iscman-dnstap-read"></span><h2>dnstap-read - print dnstap data in human-readable form<a class="headerlink" href="#dnstap-read-print-dnstap-data-in-human-readable-form" title="Link to this heading"></a></h2>
<section id="id58">
<h3>Synopsis<a class="headerlink" href="#id58" title="Link to this heading"></a></h3>
<p><strong class="program">dnstap-read</strong> [<strong>-m</strong>] [<strong>-p</strong>] [<strong>-x</strong>] [<strong>-y</strong>] {file}</p>
</section>
<section id="id59">
<h3>Description<a class="headerlink" href="#id59" title="Link to this heading"></a></h3>
<p><strong class="program">dnstap-read</strong> reads <code class="docutils literal notranslate"><span class="pre">dnstap</span></code> data from a specified file and prints
it in a human-readable format. By default, <code class="docutils literal notranslate"><span class="pre">dnstap</span></code> data is printed in
a short summary format, but if the <a class="reference internal" href="#cmdoption-dnstap-read-y"><code class="xref std std-option docutils literal notranslate"><span class="pre">-y</span></code></a> option is specified, a
longer and more detailed YAML format is used.</p>
</section>
<section id="id60">
<h3>Options<a class="headerlink" href="#id60" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnstap-read-m">
<span class="sig-name descname"><span class="pre">-m</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnstap-read-m" title="Link to this definition"></a></dt>
<dd><p>This option indicates trace memory allocations, and is used for debugging memory leaks.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnstap-read-p">
<span class="sig-name descname"><span class="pre">-p</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnstap-read-p" title="Link to this definition"></a></dt>
<dd><p>This option prints the text form of the DNS
message that was encapsulated in the <code class="docutils literal notranslate"><span class="pre">dnstap</span></code> frame, after printing the <code class="docutils literal notranslate"><span class="pre">dnstap</span></code> data.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnstap-read-x">
<span class="sig-name descname"><span class="pre">-x</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnstap-read-x" title="Link to this definition"></a></dt>
<dd><p>This option prints a hex dump of the wire form
of the DNS message that was encapsulated in the <code class="docutils literal notranslate"><span class="pre">dnstap</span></code> frame, after printing the <code class="docutils literal notranslate"><span class="pre">dnstap</span></code> data.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dnstap-read-y">
<span class="sig-name descname"><span class="pre">-y</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dnstap-read-y" title="Link to this definition"></a></dt>
<dd><p>This option prints <code class="docutils literal notranslate"><span class="pre">dnstap</span></code> data in a detailed YAML format.</p>
</dd></dl>
</section>
<section id="id61">
<h3>See Also<a class="headerlink" href="#id61" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named(8)</span></code></a>, <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc(8)</span></code></a>, BIND 9 Administrator Reference Manual.</p>
</section>
</section>
<section id="filter-aaaa-so-filter-aaaa-in-dns-responses-when-a-is-present">
<span id="man-filter-aaaa"></span><span id="std-iscman-filter-aaaa"></span><h2>filter-aaaa.so - filter AAAA in DNS responses when A is present<a class="headerlink" href="#filter-aaaa-so-filter-aaaa-in-dns-responses-when-a-is-present" title="Link to this heading"></a></h2>
<section id="id62">
<h3>Synopsis<a class="headerlink" href="#id62" title="Link to this heading"></a></h3>
<p><strong class="program">plugin query</strong> “filter-aaaa.so” [{ parameters }];</p>
</section>
<section id="id63">
<h3>Description<a class="headerlink" href="#id63" title="Link to this heading"></a></h3>
<p><strong class="program">filter-aaaa.so</strong> is a query plugin module for <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>, enabling
<a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> to omit some IPv6 addresses when responding to clients.</p>
<p>Until BIND 9.12, this feature was implemented natively in <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> and
enabled with the <code class="docutils literal notranslate"><span class="pre">filter-aaaa</span></code> ACL and the <code class="docutils literal notranslate"><span class="pre">filter-aaaa-on-v4</span></code> and
<code class="docutils literal notranslate"><span class="pre">filter-aaaa-on-v6</span></code> options. These options are now deprecated in
<a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a> but can be passed as parameters to the
<code class="docutils literal notranslate"><span class="pre">filter-aaaa.so</span></code> plugin, for example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">plugin</span> <span class="n">query</span> <span class="s2">"filter-aaaa.so"</span> <span class="p">{</span>
<span class="nb">filter</span><span class="o">-</span><span class="n">aaaa</span><span class="o">-</span><span class="n">on</span><span class="o">-</span><span class="n">v4</span> <span class="n">yes</span><span class="p">;</span>
<span class="nb">filter</span><span class="o">-</span><span class="n">aaaa</span><span class="o">-</span><span class="n">on</span><span class="o">-</span><span class="n">v6</span> <span class="n">yes</span><span class="p">;</span>
<span class="nb">filter</span><span class="o">-</span><span class="n">aaaa</span> <span class="p">{</span> <span class="mf">192.0.2.1</span><span class="p">;</span> <span class="mi">2001</span><span class="p">:</span><span class="n">db8</span><span class="p">:</span><span class="mi">2</span><span class="p">::</span><span class="mi">1</span><span class="p">;</span> <span class="p">};</span>
<span class="p">};</span>
</pre></div>
</div>
<p>This module is intended to aid transition from IPv4 to IPv6 by
withholding IPv6 addresses from DNS clients which are not connected to
the IPv6 Internet, when the name being looked up has an IPv4 address
available. Use of this module is not recommended unless absolutely
necessary.</p>
<p>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 is denied AAAA records even if its client is
using IPv6.</p>
</section>
<section id="id64">
<h3>Options<a class="headerlink" href="#id64" title="Link to this heading"></a></h3>
<dl>
<dt><code class="docutils literal notranslate"><span class="pre">filter-aaaa</span></code></dt><dd><p>This option specifies a list of client addresses for which AAAA filtering is to
be applied. The default is <code class="docutils literal notranslate"><span class="pre">any</span></code>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">filter-aaaa-on-v4</span></code></dt><dd><p>If set to <code class="docutils literal notranslate"><span class="pre">yes</span></code>, this option indicates that the DNS client is at an IPv4 address, in
<code class="docutils literal notranslate"><span class="pre">filter-aaaa</span></code>. If the response does not include DNSSEC
signatures, then all AAAA records are deleted from the response. This
filtering applies to all responses, not only authoritative
ones.</p>
<p>If set to <code class="docutils literal notranslate"><span class="pre">break-dnssec</span></code>, then AAAA records are deleted even when
DNSSEC is enabled. As suggested by the name, this causes the response
to fail to verify, because the DNSSEC protocol is designed to detect
deletions.</p>
<p>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 is denied AAAA records even if its client is
using IPv6.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">filter-aaaa-on-v6</span></code></dt><dd><p>This option is identical to <code class="docutils literal notranslate"><span class="pre">filter-aaaa-on-v4</span></code>, except that it filters AAAA responses
to queries from IPv6 clients instead of IPv4 clients. To filter all
responses, set both options to <code class="docutils literal notranslate"><span class="pre">yes</span></code>.</p>
</dd>
</dl>
</section>
<section id="id65">
<h3>See Also<a class="headerlink" href="#id65" title="Link to this heading"></a></h3>
<p>BIND 9 Administrator Reference Manual.</p>
</section>
</section>
<section id="host-dns-lookup-utility">
<span id="man-host"></span><span id="std-iscman-host"></span><h2>host - DNS lookup utility<a class="headerlink" href="#host-dns-lookup-utility" title="Link to this heading"></a></h2>
<section id="id66">
<h3>Synopsis<a class="headerlink" href="#id66" title="Link to this heading"></a></h3>
<p><strong class="program">host</strong> [<strong>-aACdlnrsTUwv</strong>] [<strong>-c</strong> class] [<strong>-N</strong> ndots] [<strong>-p</strong> port] [<strong>-R</strong> number] [<strong>-t</strong> type] [<strong>-W</strong> wait] [<strong>-m</strong> flag] [ [<strong>-4</strong>] | [<strong>-6</strong>] ] [<strong>-v</strong>] [<strong>-V</strong>] {name} [server]</p>
</section>
<section id="id67">
<h3>Description<a class="headerlink" href="#id67" title="Link to this heading"></a></h3>
<p><strong class="program">host</strong> 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, <strong class="program">host</strong> prints a short summary of its
command-line arguments and options.</p>
<p><code class="docutils literal notranslate"><span class="pre">name</span></code> 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 <strong class="program">host</strong> by default performs a reverse lookup for that address.
<code class="docutils literal notranslate"><span class="pre">server</span></code> is an optional argument which is either the name or IP
address of the name server that <strong class="program">host</strong> should query instead of the
server or servers listed in <code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code>.</p>
</section>
<section id="id68">
<h3>Options<a class="headerlink" href="#id68" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-4">
<span class="sig-name descname"><span class="pre">-4</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-host-4" title="Link to this definition"></a></dt>
<dd><p>This option specifies that only IPv4 should be used for query transport. See also the <a class="reference internal" href="#cmdoption-host-6"><code class="xref std std-option docutils literal notranslate"><span class="pre">-6</span></code></a> option.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-6">
<span class="sig-name descname"><span class="pre">-6</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-host-6" title="Link to this definition"></a></dt>
<dd><p>This option specifies that only IPv6 should be used for query transport. See also the <a class="reference internal" href="#cmdoption-host-4"><code class="xref std std-option docutils literal notranslate"><span class="pre">-4</span></code></a> option.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-a">
<span class="sig-name descname"><span class="pre">-a</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-host-a" title="Link to this definition"></a></dt>
<dd><p>The <a class="reference internal" href="#cmdoption-host-a"><code class="xref std std-option docutils literal notranslate"><span class="pre">-a</span></code></a> (“all”) option is normally equivalent to <a class="reference internal" href="#cmdoption-host-v"><code class="xref std std-option docutils literal notranslate"><span class="pre">-v</span></code></a> <a class="reference internal" href="#cmdoption-host-t"><code class="xref std std-option docutils literal notranslate"><span class="pre">-t</span> <span class="pre">ANY</span></code></a>. It
also affects the behavior of the <a class="reference internal" href="#cmdoption-host-l"><code class="xref std std-option docutils literal notranslate"><span class="pre">-l</span></code></a> list zone option.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-A">
<span class="sig-name descname"><span class="pre">-A</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-host-A" title="Link to this definition"></a></dt>
<dd><p>The <a class="reference internal" href="#cmdoption-host-A"><code class="xref std std-option docutils literal notranslate"><span class="pre">-A</span></code></a> (“almost all”) option is equivalent to <a class="reference internal" href="#cmdoption-host-a"><code class="xref std std-option docutils literal notranslate"><span class="pre">-a</span></code></a>, except that RRSIG,
NSEC, and NSEC3 records are omitted from the output.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-c">
<span class="sig-name descname"><span class="pre">-c</span></span><span class="sig-prename descclassname"> <span class="pre">class</span></span><a class="headerlink" href="#cmdoption-host-c" title="Link to this definition"></a></dt>
<dd><p>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).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-C">
<span class="sig-name descname"><span class="pre">-C</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-host-C" title="Link to this definition"></a></dt>
<dd><p>This option indicates that <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> should check consistency, meaning that <strong class="program">host</strong> queries the SOA records for zone
<code class="docutils literal notranslate"><span class="pre">name</span></code> 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-d">
<span class="sig-name descname"><span class="pre">-d</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-host-d" title="Link to this definition"></a></dt>
<dd><p>This option prints debugging traces, and is equivalent to the <a class="reference internal" href="#cmdoption-host-v"><code class="xref std std-option docutils literal notranslate"><span class="pre">-v</span></code></a> verbose option.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-l">
<span class="sig-name descname"><span class="pre">-l</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-host-l" title="Link to this definition"></a></dt>
<dd><p>This option tells <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> to list the zone, meaning the <strong class="program">host</strong> command performs a zone transfer of zone
<code class="docutils literal notranslate"><span class="pre">name</span></code> and prints out the NS, PTR, and address records (A/AAAA).</p>
<p>Together, the <a class="reference internal" href="#cmdoption-host-l"><code class="xref std std-option docutils literal notranslate"><span class="pre">-l</span></code></a> <a class="reference internal" href="#cmdoption-host-a"><code class="xref std std-option docutils literal notranslate"><span class="pre">-a</span></code></a> options print all records in the zone.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-N">
<span class="sig-name descname"><span class="pre">-N</span></span><span class="sig-prename descclassname"> <span class="pre">ndots</span></span><a class="headerlink" href="#cmdoption-host-N" title="Link to this definition"></a></dt>
<dd><p>This option specifies the number of dots (<code class="docutils literal notranslate"><span class="pre">ndots</span></code>) that have to be in <code class="docutils literal notranslate"><span class="pre">name</span></code> for it to be
considered absolute. The default value is that defined using the
<code class="docutils literal notranslate"><span class="pre">ndots</span></code> statement in <code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code>, or 1 if no <code class="docutils literal notranslate"><span class="pre">ndots</span></code> statement
is present. Names with fewer dots are interpreted as relative names,
and are searched for in the domains listed in the <code class="docutils literal notranslate"><span class="pre">search</span></code> or
<code class="docutils literal notranslate"><span class="pre">domain</span></code> directive in <code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-p">
<span class="sig-name descname"><span class="pre">-p</span></span><span class="sig-prename descclassname"> <span class="pre">port</span></span><a class="headerlink" href="#cmdoption-host-p" title="Link to this definition"></a></dt>
<dd><p>This option specifies the port to query on the server. The default is 53.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-r">
<span class="sig-name descname"><span class="pre">-r</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-host-r" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">name</span></code>. The <a class="reference internal" href="#cmdoption-host-r"><code class="xref std std-option docutils literal notranslate"><span class="pre">-r</span></code></a>
option enables <strong class="program">host</strong> to mimic the behavior of a name server by
making non-recursive queries, and expecting to receive answers to
those queries that can be referrals to other name servers.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-R">
<span class="sig-name descname"><span class="pre">-R</span></span><span class="sig-prename descclassname"> <span class="pre">number</span></span><a class="headerlink" href="#cmdoption-host-R" title="Link to this definition"></a></dt>
<dd><p>This option specifies the number of retries for UDP queries. If <code class="docutils literal notranslate"><span class="pre">number</span></code> is negative or zero,
the number of retries is silently set to 1. The default value is 1, or
the value of the <code class="docutils literal notranslate"><span class="pre">attempts</span></code> option in <code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code>, if set.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-s">
<span class="sig-name descname"><span class="pre">-s</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-host-s" title="Link to this definition"></a></dt>
<dd><p>This option tells <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> <em>not</em> 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-t">
<span class="sig-name descname"><span class="pre">-t</span></span><span class="sig-prename descclassname"> <span class="pre">type</span></span><a class="headerlink" href="#cmdoption-host-t" title="Link to this definition"></a></dt>
<dd><p>This option specifies the query type. The <code class="docutils literal notranslate"><span class="pre">type</span></code> argument can be any recognized query type:
CNAME, NS, SOA, TXT, DNSKEY, AXFR, etc.</p>
<p>When no query type is specified, <strong class="program">host</strong> automatically selects an
appropriate query type. By default, it looks for A, AAAA, and MX
records. If the <a class="reference internal" href="#cmdoption-host-C"><code class="xref std std-option docutils literal notranslate"><span class="pre">-C</span></code></a> option is given, queries are made for SOA
records. If <code class="docutils literal notranslate"><span class="pre">name</span></code> is a dotted-decimal IPv4 address or
colon-delimited IPv6 address, <strong class="program">host</strong> queries for PTR records.</p>
<p>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., <a class="reference internal" href="#cmdoption-host-t"><code class="xref std std-option docutils literal notranslate"><span class="pre">-t</span> <span class="pre">IXFR=12345678</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-T">
<span id="cmdoption-host-U"></span><span class="sig-name descname"><span class="pre">-T</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">-U</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-host-T" title="Link to this definition"></a></dt>
<dd><p>This option specifies TCP or UDP. By default, <strong class="program">host</strong> uses UDP when making queries; the
<a class="reference internal" href="#cmdoption-host-T"><code class="xref std std-option docutils literal notranslate"><span class="pre">-T</span></code></a> option makes it use a TCP connection when querying the name
server. TCP is automatically selected for queries that require
it, such as zone transfer (AXFR) requests. Type <code class="docutils literal notranslate"><span class="pre">ANY</span></code> queries default
to TCP, but can be forced to use UDP initially via <a class="reference internal" href="#cmdoption-host-T"><code class="xref std std-option docutils literal notranslate"><span class="pre">-U</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-m">
<span class="sig-name descname"><span class="pre">-m</span></span><span class="sig-prename descclassname"> <span class="pre">flag</span></span><a class="headerlink" href="#cmdoption-host-m" title="Link to this definition"></a></dt>
<dd><p>This option sets memory usage debugging: the flag can be <code class="docutils literal notranslate"><span class="pre">record</span></code>, <code class="docutils literal notranslate"><span class="pre">usage</span></code>, or
<code class="docutils literal notranslate"><span class="pre">trace</span></code>. The <a class="reference internal" href="#cmdoption-host-m"><code class="xref std std-option docutils literal notranslate"><span class="pre">-m</span></code></a> option can be specified more than once to set
multiple flags.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-v">
<span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-host-v" title="Link to this definition"></a></dt>
<dd><p>This option sets verbose output, and is equivalent to the <a class="reference internal" href="#cmdoption-host-d"><code class="xref std std-option docutils literal notranslate"><span class="pre">-d</span></code></a> debug option. Verbose output
can also be enabled by setting the <code class="docutils literal notranslate"><span class="pre">debug</span></code> option in
<code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-V">
<span class="sig-name descname"><span class="pre">-V</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-host-V" title="Link to this definition"></a></dt>
<dd><p>This option prints the version number and exits.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-w">
<span class="sig-name descname"><span class="pre">-w</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-host-w" title="Link to this definition"></a></dt>
<dd><p>This option sets “wait forever”: the query timeout is set to the maximum possible. See
also the <a class="reference internal" href="#cmdoption-host-W"><code class="xref std std-option docutils literal notranslate"><span class="pre">-W</span></code></a> option.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-host-W">
<span class="sig-name descname"><span class="pre">-W</span></span><span class="sig-prename descclassname"> <span class="pre">wait</span></span><a class="headerlink" href="#cmdoption-host-W" title="Link to this definition"></a></dt>
<dd><p>This options sets the length of the wait timeout, indicating that <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> should wait for up to <code class="docutils literal notranslate"><span class="pre">wait</span></code> seconds for a reply. If <code class="docutils literal notranslate"><span class="pre">wait</span></code> is
less than 1, the wait interval is set to 1 second.</p>
<p>By default, <strong class="program">host</strong> waits for 5 seconds for UDP responses and 10
seconds for TCP connections. These defaults can be overridden by the
<code class="docutils literal notranslate"><span class="pre">timeout</span></code> option in <code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code>.</p>
<p>See also the <a class="reference internal" href="#cmdoption-host-w"><code class="xref std std-option docutils literal notranslate"><span class="pre">-w</span></code></a> option.</p>
</dd></dl>
</section>
<section id="id69">
<h3>IDN Support<a class="headerlink" href="#id69" title="Link to this heading"></a></h3>
<p>If <strong class="program">host</strong> has been built with IDN (internationalized domain name)
support, it can accept and display non-ASCII domain names. <strong class="program">host</strong>
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 <code class="docutils literal notranslate"><span class="pre">IDN_DISABLE</span></code>
environment variable. IDN support is disabled if the variable is set
when <strong class="program">host</strong> runs.</p>
</section>
<section id="id70">
<h3>Files<a class="headerlink" href="#id70" title="Link to this heading"></a></h3>
<p><code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code></p>
</section>
<section id="id71">
<h3>See Also<a class="headerlink" href="#id71" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-dig"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dig(1)</span></code></a>, <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named(8)</span></code></a>.</p>
</section>
</section>
<section id="mdig-dns-pipelined-lookup-utility">
<span id="man-mdig"></span><span id="std-iscman-mdig"></span><h2>mdig - DNS pipelined lookup utility<a class="headerlink" href="#mdig-dns-pipelined-lookup-utility" title="Link to this heading"></a></h2>
<section id="id72">
<h3>Synopsis<a class="headerlink" href="#id72" title="Link to this heading"></a></h3>
<p><strong class="program">mdig</strong> <a class="reference external" href="mailto:{%40server">{<span>@</span>server</a>} [<strong>-f</strong> filename] [<strong>-h</strong>] [<strong>-v</strong>] [ [<strong>-4</strong>] | [<strong>-6</strong>] ] [<strong>-m</strong>] [<strong>-b</strong> address] [<strong>-p</strong> port#] [<strong>-c</strong> class] [<strong>-t</strong> type] [<strong>-i</strong>] [<strong>-x</strong> addr] [plusopt…]</p>
<p><strong class="program">mdig</strong> {<strong>-h</strong>}</p>
<p><strong class="program">mdig</strong> [@server] {global-opt…} { {local-opt…} {query} …}</p>
</section>
<section id="id73">
<h3>Description<a class="headerlink" href="#id73" title="Link to this heading"></a></h3>
<p><strong class="program">mdig</strong> is a multiple/pipelined query version of <a class="reference internal" href="#std-iscman-dig"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dig</span></code></a>: instead of
waiting for a response after sending each query, it begins by sending
all queries. Responses are displayed in the order in which they are
received, not in the order the corresponding queries were sent.</p>
<p><strong class="program">mdig</strong> options are a subset of the <a class="reference internal" href="#std-iscman-dig"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dig</span></code></a> options, and are divided
into “anywhere options,” which can occur anywhere, “global options,” which
must occur before the query name (or they are ignored with a warning),
and “local options,” which apply to the next query on the command line.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">@server</span></code> option is a mandatory global option. It is the name or IP
address of the name server to query. (Unlike <a class="reference internal" href="#std-iscman-dig"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dig</span></code></a>, this value is not
retrieved from <code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code>.) It can be an IPv4 address in
dotted-decimal notation, an IPv6 address in colon-delimited notation, or
a hostname. When the supplied <code class="docutils literal notranslate"><span class="pre">server</span></code> argument is a hostname,
<strong class="program">mdig</strong> resolves that name before querying the name server.</p>
<p><strong class="program">mdig</strong> provides a number of query options which affect the way in
which lookups are made and the results displayed. Some of these set or
reset flag bits in the query header, some determine which sections of
the answer get printed, and others determine the timeout and retry
strategies.</p>
<p>Each query option is identified by a keyword preceded by a plus sign
(<code class="docutils literal notranslate"><span class="pre">+</span></code>). Some keywords set or reset an option. These may be preceded by
the string <code class="docutils literal notranslate"><span class="pre">no</span></code> to negate the meaning of that keyword. Other keywords
assign values to options like the timeout interval. They have the form
<code class="docutils literal notranslate"><span class="pre">+keyword=value</span></code>.</p>
</section>
<section id="anywhere-options">
<h3>Anywhere Options<a class="headerlink" href="#anywhere-options" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-f">
<span class="sig-name descname"><span class="pre">-f</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-f" title="Link to this definition"></a></dt>
<dd><p>This option makes <strong class="program">mdig</strong> operate in batch mode by reading a list
of lookup requests to process from the file <code class="docutils literal notranslate"><span class="pre">filename</span></code>. The file
contains a number of queries, one per line. Each entry in the file
should be organized in the same way they would be presented as queries
to <strong class="program">mdig</strong> using the command-line interface.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-h">
<span class="sig-name descname"><span class="pre">-h</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-h" title="Link to this definition"></a></dt>
<dd><p>This option causes <strong class="program">mdig</strong> to print detailed help information, with the full list
of options, and exit.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-v">
<span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-v" title="Link to this definition"></a></dt>
<dd><p>This option causes <strong class="program">mdig</strong> to print the version number and exit.</p>
</dd></dl>
</section>
<section id="global-options">
<h3>Global Options<a class="headerlink" href="#global-options" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-4">
<span class="sig-name descname"><span class="pre">-4</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-4" title="Link to this definition"></a></dt>
<dd><p>This option forces <strong class="program">mdig</strong> to only use IPv4 query transport.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-6">
<span class="sig-name descname"><span class="pre">-6</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-6" title="Link to this definition"></a></dt>
<dd><p>This option forces <strong class="program">mdig</strong> to only use IPv6 query transport.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-b">
<span class="sig-name descname"><span class="pre">-b</span></span><span class="sig-prename descclassname"> <span class="pre">address</span></span><a class="headerlink" href="#cmdoption-mdig-b" title="Link to this definition"></a></dt>
<dd><p>This option sets the source IP address of the query to
<code class="docutils literal notranslate"><span class="pre">address</span></code>. This 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>”</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-m">
<span class="sig-name descname"><span class="pre">-m</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-m" title="Link to this definition"></a></dt>
<dd><p>This option enables memory usage debugging.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-p">
<span class="sig-name descname"><span class="pre">-p</span></span><span class="sig-prename descclassname"> <span class="pre">port#</span></span><a class="headerlink" href="#cmdoption-mdig-p" title="Link to this definition"></a></dt>
<dd><p>This option is used when a non-standard port number is to be
queried. <code class="docutils literal notranslate"><span class="pre">port#</span></code> is the port number that <strong class="program">mdig</strong> sends its
queries to, instead of the standard DNS port number 53. This option is
used to test a name server that has been configured to listen for
queries on a non-standard port number.</p>
</dd></dl>
<p>The global query options are:</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-additional">
<span id="cmdoption-mdig-arg-noadditional"></span><span class="sig-name descname"><span class="pre">+additional</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noadditional</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-additional" title="Link to this definition"></a></dt>
<dd><p>This option displays [or does not display] the additional section of a reply. The
default is to display it.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-all">
<span id="cmdoption-mdig-arg-noall"></span><span class="sig-name descname"><span class="pre">+all</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noall</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-all" title="Link to this definition"></a></dt>
<dd><p>This option sets or clears all display flags.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-answer">
<span id="cmdoption-mdig-arg-noanswer"></span><span class="sig-name descname"><span class="pre">+answer</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noanswer</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-answer" title="Link to this definition"></a></dt>
<dd><p>This option displays [or does not display] the answer section of a reply. The default
is to display it.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-authority">
<span id="cmdoption-mdig-arg-noauthority"></span><span class="sig-name descname"><span class="pre">+authority</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noauthority</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-authority" title="Link to this definition"></a></dt>
<dd><p>This option displays [or does not display] the authority section of a reply. The
default is to display it.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-besteffort">
<span id="cmdoption-mdig-arg-nobesteffort"></span><span class="sig-name descname"><span class="pre">+besteffort</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nobesteffort</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-besteffort" title="Link to this definition"></a></dt>
<dd><p>This option attempts to display [or does not display] the contents of messages which are malformed. The
default is to not display malformed answers.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-burst">
<span class="sig-name descname"><span class="pre">+burst</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-burst" title="Link to this definition"></a></dt>
<dd><p>This option delays queries until the start of the next second.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-cl">
<span id="cmdoption-mdig-arg-nocl"></span><span class="sig-name descname"><span class="pre">+cl</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nocl</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-cl" title="Link to this definition"></a></dt>
<dd><p>This option displays [or does not display] the CLASS when printing the record.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-comments">
<span id="cmdoption-mdig-arg-nocomments"></span><span class="sig-name descname"><span class="pre">+comments</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nocomments</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-comments" title="Link to this definition"></a></dt>
<dd><p>This option toggles the display of comment lines in the output. The default is to
print comments.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-continue">
<span id="cmdoption-mdig-arg-nocontinue"></span><span class="sig-name descname"><span class="pre">+continue</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nocontinue</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-continue" title="Link to this definition"></a></dt>
<dd><p>This option toggles continuation on errors (e.g. timeouts).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-crypto">
<span id="cmdoption-mdig-arg-nocrypto"></span><span class="sig-name descname"><span class="pre">+crypto</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nocrypto</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-crypto" title="Link to this definition"></a></dt>
<dd><p>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]”; in the DNSKEY case, the
key ID is displayed as the replacement, e.g., <code class="docutils literal notranslate"><span class="pre">[</span> <span class="pre">key</span> <span class="pre">id</span> <span class="pre">=</span> <span class="pre">value</span> <span class="pre">]</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-dscp">
<span class="sig-name descname"><span class="pre">+dscp</span></span><span class="sig-prename descclassname"><span class="pre">=value</span></span><a class="headerlink" href="#cmdoption-mdig-arg-dscp" title="Link to this definition"></a></dt>
<dd><p>This option formerly set the DSCP value used when sending a query.
It is now obsolete, and has no effect.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-multiline">
<span id="cmdoption-mdig-arg-nomultiline"></span><span class="sig-name descname"><span class="pre">+multiline</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nomultiline</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-multiline" title="Link to this definition"></a></dt>
<dd><p>This option toggles printing of 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 <strong class="program">mdig</strong> output.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-question">
<span id="cmdoption-mdig-arg-noquestion"></span><span class="sig-name descname"><span class="pre">+question</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noquestion</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-question" title="Link to this definition"></a></dt>
<dd><p>This option prints [or does not print] the question section of a query when an answer
is returned. The default is to print the question section as a
comment.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-rrcomments">
<span id="cmdoption-mdig-arg-norrcomments"></span><span class="sig-name descname"><span class="pre">+rrcomments</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+norrcomments</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-rrcomments" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-short">
<span id="cmdoption-mdig-arg-noshort"></span><span class="sig-name descname"><span class="pre">+short</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noshort</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-short" title="Link to this definition"></a></dt>
<dd><p>This option provides [or does not provide] a terse answer. The default is to print the answer in a
verbose form.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-split">
<span class="sig-name descname"><span class="pre">+split</span></span><span class="sig-prename descclassname"><span class="pre">=W</span></span><a class="headerlink" href="#cmdoption-mdig-arg-split" title="Link to this definition"></a></dt>
<dd><p>This option splits long hex- or base64-formatted fields in resource records into
chunks of <code class="docutils literal notranslate"><span class="pre">W</span></code> characters (where <code class="docutils literal notranslate"><span class="pre">W</span></code> is rounded up to the nearest
multiple of 4). <code class="docutils literal notranslate"><span class="pre">+nosplit</span></code> or <code class="docutils literal notranslate"><span class="pre">+split=0</span></code> causes fields not to be
split. The default is 56 characters, or 44 characters when
multiline mode is active.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-tcp">
<span id="cmdoption-mdig-arg-notcp"></span><span class="sig-name descname"><span class="pre">+tcp</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+notcp</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-tcp" title="Link to this definition"></a></dt>
<dd><p>This option uses [or does not use] TCP when querying name servers. The default behavior
is to use UDP.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-ttlid">
<span id="cmdoption-mdig-arg-nottlid"></span><span class="sig-name descname"><span class="pre">+ttlid</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nottlid</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-ttlid" title="Link to this definition"></a></dt>
<dd><p>This option displays [or does not display] the TTL when printing the record.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-ttlunits">
<span id="cmdoption-mdig-arg-nottlunits"></span><span class="sig-name descname"><span class="pre">+ttlunits</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nottlunits</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-ttlunits" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-vc">
<span id="cmdoption-mdig-arg-novc"></span><span class="sig-name descname"><span class="pre">+vc</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+novc</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-vc" title="Link to this definition"></a></dt>
<dd><p>This option uses [or does not use] TCP when querying name servers. This alternate
syntax to <a class="reference internal" href="#cmdoption-mdig-arg-tcp"><code class="xref std std-option docutils literal notranslate"><span class="pre">+tcp</span></code></a> is provided for backwards compatibility. The
<code class="docutils literal notranslate"><span class="pre">vc</span></code> stands for “virtual circuit”.</p>
</dd></dl>
</section>
<section id="local-options">
<h3>Local Options<a class="headerlink" href="#local-options" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-c">
<span class="sig-name descname"><span class="pre">-c</span></span><span class="sig-prename descclassname"> <span class="pre">class</span></span><a class="headerlink" href="#cmdoption-mdig-c" title="Link to this definition"></a></dt>
<dd><p>This option sets the query class to <code class="docutils literal notranslate"><span class="pre">class</span></code>. It can be any valid
query class which is supported in BIND 9. The default query class is
“IN”.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-t">
<span class="sig-name descname"><span class="pre">-t</span></span><span class="sig-prename descclassname"> <span class="pre">type</span></span><a class="headerlink" href="#cmdoption-mdig-t" title="Link to this definition"></a></dt>
<dd><p>This option sets the query type to <code class="docutils literal notranslate"><span class="pre">type</span></code>. It can be any valid
query type which is supported in BIND 9. The default query type is “A”,
unless the <a class="reference internal" href="#cmdoption-mdig-x"><code class="xref std std-option docutils literal notranslate"><span class="pre">-x</span></code></a> option is supplied to indicate a reverse lookup with
the “PTR” query type.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-x">
<span class="sig-name descname"><span class="pre">-x</span></span><span class="sig-prename descclassname"> <span class="pre">addr</span></span><a class="headerlink" href="#cmdoption-mdig-x" title="Link to this definition"></a></dt>
<dd><p>Reverse lookups - mapping addresses to names - are simplified by
this option. <code class="docutils literal notranslate"><span class="pre">addr</span></code> is an IPv4 address in dotted-decimal
notation, or a colon-delimited IPv6 address. <strong class="program">mdig</strong> automatically
performs a lookup for a query name like <code class="docutils literal notranslate"><span class="pre">11.12.13.10.in-addr.arpa</span></code> and
sets the query type and class to PTR and IN respectively. By default,
IPv6 addresses are looked up using nibble format under the IP6.ARPA
domain.</p>
</dd></dl>
<p>The local query options are:</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-aaflag">
<span id="cmdoption-mdig-arg-noaaflag"></span><span class="sig-name descname"><span class="pre">+aaflag</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noaaflag</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-aaflag" title="Link to this definition"></a></dt>
<dd><p>This is a synonym for <a class="reference internal" href="#cmdoption-mdig-arg-aaonly"><code class="xref std std-option docutils literal notranslate"><span class="pre">+aaonly</span></code></a>, <a class="reference internal" href="#cmdoption-mdig-arg-aaonly"><code class="xref std std-option docutils literal notranslate"><span class="pre">+noaaonly</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-aaonly">
<span id="cmdoption-mdig-arg-noaaonly"></span><span class="sig-name descname"><span class="pre">+aaonly</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noaaonly</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-aaonly" title="Link to this definition"></a></dt>
<dd><p>This sets the <code class="docutils literal notranslate"><span class="pre">aa</span></code> flag in the query.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-adflag">
<span id="cmdoption-mdig-arg-noadflag"></span><span class="sig-name descname"><span class="pre">+adflag</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noadflag</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-adflag" title="Link to this definition"></a></dt>
<dd><p>This 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
indicates that some part of the answer was insecure or not validated.
This bit is set by default.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-bufsize">
<span class="sig-name descname"><span class="pre">+bufsize</span></span><span class="sig-prename descclassname"><span class="pre">=B</span></span><a class="headerlink" href="#cmdoption-mdig-arg-bufsize" title="Link to this definition"></a></dt>
<dd><p>This sets the UDP message buffer size advertised using EDNS0 to <code class="docutils literal notranslate"><span class="pre">B</span></code>
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 cause a EDNS query to be
sent.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-cdflag">
<span id="cmdoption-mdig-arg-nocdflag"></span><span class="sig-name descname"><span class="pre">+cdflag</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nocdflag</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-cdflag" title="Link to this definition"></a></dt>
<dd><p>This sets [or does not set] the CD (checking disabled) bit in the query. This
requests the server to not perform DNSSEC validation of responses.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-cookie">
<span id="cmdoption-mdig-arg-nocookie"></span><span class="sig-name descname"><span class="pre">+cookie</span></span><span class="sig-prename descclassname"><span class="pre">=####</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nocookie</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-cookie" title="Link to this definition"></a></dt>
<dd><p>This 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 <code class="docutils literal notranslate"><span class="pre">+nocookie</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-dnssec">
<span id="cmdoption-mdig-arg-nodnssec"></span><span class="sig-name descname"><span class="pre">+dnssec</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nodnssec</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-dnssec" title="Link to this definition"></a></dt>
<dd><p>This requests that DNSSEC records be sent by setting the DNSSEC OK (DO) bit in
the OPT record in the additional section of the query.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-edns">
<span id="cmdoption-mdig-arg-noedns"></span><span class="sig-name descname"><span class="pre">+edns</span></span><span class="sig-prename descclassname"><span class="pre">[=#]</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noedns</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-edns" title="Link to this definition"></a></dt>
<dd><p>This specifies [or does not specify] the EDNS version to query with. Valid values are 0 to 255.
Setting the EDNS version causes an EDNS query to be sent.
<code class="docutils literal notranslate"><span class="pre">+noedns</span></code> clears the remembered EDNS version. EDNS is set to 0 by
default.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-ednsflags">
<span id="cmdoption-mdig-arg-noednsflags"></span><span class="sig-name descname"><span class="pre">+ednsflags</span></span><span class="sig-prename descclassname"><span class="pre">[=#]</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noednsflags</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-ednsflags" title="Link to this definition"></a></dt>
<dd><p>This sets the must-be-zero EDNS flag 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-ednsopt">
<span id="cmdoption-mdig-arg-noednsopt"></span><span class="sig-name descname"><span class="pre">+ednsopt</span></span><span class="sig-prename descclassname"><span class="pre">[=code[:value]]</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noednsopt</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-ednsopt" title="Link to this definition"></a></dt>
<dd><p>This specifies [or does not specify] an EDNS option with code point <code class="docutils literal notranslate"><span class="pre">code</span></code> and an optional payload
of <code class="docutils literal notranslate"><span class="pre">value</span></code> as a hexadecimal string. <code class="docutils literal notranslate"><span class="pre">+noednsopt</span></code> clears the EDNS
options to be sent.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-expire">
<span id="cmdoption-mdig-arg-noexpire"></span><span class="sig-name descname"><span class="pre">+expire</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noexpire</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-expire" title="Link to this definition"></a></dt>
<dd><p>This toggles sending of an EDNS Expire option.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-nsid">
<span id="cmdoption-mdig-arg-nonsid"></span><span class="sig-name descname"><span class="pre">+nsid</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nonsid</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-nsid" title="Link to this definition"></a></dt>
<dd><p>This toggles inclusion of an EDNS name server ID request when sending a query.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-recurse">
<span id="cmdoption-mdig-arg-norecurse"></span><span class="sig-name descname"><span class="pre">+recurse</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+norecurse</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-recurse" title="Link to this definition"></a></dt>
<dd><p>This toggles the setting of the RD (recursion desired) bit in the query.
This bit is set by default, which means <strong class="program">mdig</strong> normally sends
recursive queries.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-retry">
<span class="sig-name descname"><span class="pre">+retry</span></span><span class="sig-prename descclassname"><span class="pre">=T</span></span><a class="headerlink" href="#cmdoption-mdig-arg-retry" title="Link to this definition"></a></dt>
<dd><p>This sets the number of times to retry UDP queries to server to <code class="docutils literal notranslate"><span class="pre">T</span></code>
instead of the default, 2. Unlike <a class="reference internal" href="#cmdoption-mdig-arg-tries"><code class="xref std std-option docutils literal notranslate"><span class="pre">+tries</span></code></a>, this does not include
the initial query.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-subnet">
<span id="cmdoption-mdig-arg-nosubnet"></span><span class="sig-name descname"><span class="pre">+subnet</span></span><span class="sig-prename descclassname"><span class="pre">=addr[/prefix-length]</span></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nosubnet</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-subnet" title="Link to this definition"></a></dt>
<dd><p>This sends [or does not send] an EDNS Client Subnet option with the specified IP
address or network prefix.</p>
</dd></dl>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">mdig</span> <span class="pre">+subnet=0.0.0.0/0</span></code>, or simply <code class="docutils literal notranslate"><span class="pre">mdig</span> <span class="pre">+subnet=0</span></code></dt><dd><p>This sends an EDNS client-subnet option with an empty address and a source
prefix-length of zero, which signals a resolver that the client’s
address information must <em>not</em> be used when resolving this query.</p>
</dd>
</dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-timeout">
<span class="sig-name descname"><span class="pre">+timeout</span></span><span class="sig-prename descclassname"><span class="pre">=T</span></span><a class="headerlink" href="#cmdoption-mdig-arg-timeout" title="Link to this definition"></a></dt>
<dd><p>This sets the timeout for a query to <code class="docutils literal notranslate"><span class="pre">T</span></code> seconds. The default timeout is
5 seconds for UDP transport and 10 for TCP. An attempt to set <code class="docutils literal notranslate"><span class="pre">T</span></code>
to less than 1 results in a query timeout of 1 second being
applied.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-tries">
<span class="sig-name descname"><span class="pre">+tries</span></span><span class="sig-prename descclassname"><span class="pre">=T</span></span><a class="headerlink" href="#cmdoption-mdig-arg-tries" title="Link to this definition"></a></dt>
<dd><p>This sets the number of times to try UDP queries to server to <code class="docutils literal notranslate"><span class="pre">T</span></code>
instead of the default, 3. If <code class="docutils literal notranslate"><span class="pre">T</span></code> is less than or equal to zero,
the number of tries is silently rounded up to 1.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-udptimeout">
<span class="sig-name descname"><span class="pre">+udptimeout</span></span><span class="sig-prename descclassname"><span class="pre">=T</span></span><a class="headerlink" href="#cmdoption-mdig-arg-udptimeout" title="Link to this definition"></a></dt>
<dd><p>This sets the timeout between UDP query retries to <code class="docutils literal notranslate"><span class="pre">T</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-unknownformat">
<span id="cmdoption-mdig-arg-nounknownformat"></span><span class="sig-name descname"><span class="pre">+unknownformat</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nounknownformat</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-unknownformat" title="Link to this definition"></a></dt>
<dd><p>This prints [or does not print] all RDATA in unknown RR-type presentation format (see <span class="target" id="index-40"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3597.html"><strong>RFC 3597</strong></a>).
The default is to print RDATA for known types in the type’s
presentation format.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-yaml">
<span id="cmdoption-mdig-arg-noyaml"></span><span class="sig-name descname"><span class="pre">+yaml</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+noyaml</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-yaml" title="Link to this definition"></a></dt>
<dd><p>This toggles printing of the responses in a detailed YAML format.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-mdig-arg-zflag">
<span id="cmdoption-mdig-arg-nozflag"></span><span class="sig-name descname"><span class="pre">+zflag</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">+nozflag</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-mdig-arg-zflag" title="Link to this definition"></a></dt>
<dd><p>This sets [or does not set] the last unassigned DNS header flag in a DNS query.
This flag is off by default.</p>
</dd></dl>
</section>
<section id="id74">
<h3>See Also<a class="headerlink" href="#id74" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-dig"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dig(1)</span></code></a>, <span class="target" id="index-41"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1035.html"><strong>RFC 1035</strong></a>.</p>
</section>
</section>
<section id="named-checkconf-named-configuration-file-syntax-checking-tool">
<span id="man-named-checkconf"></span><span id="std-iscman-named-checkconf"></span><h2>named-checkconf - named configuration file syntax checking tool<a class="headerlink" href="#named-checkconf-named-configuration-file-syntax-checking-tool" title="Link to this heading"></a></h2>
<section id="id75">
<h3>Synopsis<a class="headerlink" href="#id75" title="Link to this heading"></a></h3>
<p><strong class="program">named-checkconf</strong> [<strong>-chjlvz</strong>] [<strong>-p</strong> [<strong>-x</strong> ]] [<strong>-t</strong> directory] {filename}</p>
</section>
<section id="id76">
<h3>Description<a class="headerlink" href="#id76" title="Link to this heading"></a></h3>
<p><strong class="program">named-checkconf</strong> checks the syntax, but not the semantics, of a
<a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> configuration file. The file, along with all files included by it, is parsed and checked for syntax
errors. If no file is specified,
<code class="docutils literal notranslate"><span class="pre">/etc/bind/named.conf</span></code> is read by default.</p>
<p>Note: files that <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> reads in separate parser contexts, such as
<code class="docutils literal notranslate"><span class="pre">rndc.key</span></code> and <code class="docutils literal notranslate"><span class="pre">bind.keys</span></code>, are not automatically read by
<strong class="program">named-checkconf</strong>. Configuration errors in these files may cause
<a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> to fail to run, even if <strong class="program">named-checkconf</strong> was successful.
However, <strong class="program">named-checkconf</strong> can be run on these files explicitly.</p>
</section>
<section id="id77">
<h3>Options<a class="headerlink" href="#id77" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkconf-h">
<span class="sig-name descname"><span class="pre">-h</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-checkconf-h" title="Link to this definition"></a></dt>
<dd><p>This option prints the usage summary and exits.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkconf-j">
<span class="sig-name descname"><span class="pre">-j</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-checkconf-j" title="Link to this definition"></a></dt>
<dd><p>When loading a zonefile, this option instructs <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> to read the journal if it exists.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkconf-l">
<span class="sig-name descname"><span class="pre">-l</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-checkconf-l" title="Link to this definition"></a></dt>
<dd><p>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).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkconf-c">
<span class="sig-name descname"><span class="pre">-c</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-checkconf-c" title="Link to this definition"></a></dt>
<dd><p>This option specifies that only the “core” configuration should be checked. This suppresses the loading of
plugin modules, and causes all parameters to <code class="docutils literal notranslate"><span class="pre">plugin</span></code> statements to
be ignored.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkconf-i">
<span class="sig-name descname"><span class="pre">-i</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-checkconf-i" title="Link to this definition"></a></dt>
<dd><p>This option ignores warnings on deprecated options.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkconf-p">
<span class="sig-name descname"><span class="pre">-p</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-checkconf-p" title="Link to this definition"></a></dt>
<dd><p>This option prints out the <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a> and included files in canonical form if
no errors were detected. See also the <a class="reference internal" href="#cmdoption-named-checkconf-x"><code class="xref std std-option docutils literal notranslate"><span class="pre">-x</span></code></a> option.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkconf-t">
<span class="sig-name descname"><span class="pre">-t</span></span><span class="sig-prename descclassname"> <span class="pre">directory</span></span><a class="headerlink" href="#cmdoption-named-checkconf-t" title="Link to this definition"></a></dt>
<dd><p>This option instructs <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> to chroot to <code class="docutils literal notranslate"><span class="pre">directory</span></code>, so that <code class="docutils literal notranslate"><span class="pre">include</span></code> directives in the
configuration file are processed as if run by a similarly chrooted
<a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkconf-v">
<span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-checkconf-v" title="Link to this definition"></a></dt>
<dd><p>This option prints the version of the <strong class="program">named-checkconf</strong> program and exits.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkconf-x">
<span class="sig-name descname"><span class="pre">-x</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-checkconf-x" title="Link to this definition"></a></dt>
<dd><p>When printing the configuration files in canonical form, this option obscures
shared secrets by replacing them with strings of question marks
(<code class="docutils literal notranslate"><span class="pre">?</span></code>). This allows the contents of <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a> and related files
to be shared - for example, when submitting bug reports -
without compromising private data. This option cannot be used without
<a class="reference internal" href="#cmdoption-named-checkconf-p"><code class="xref std std-option docutils literal notranslate"><span class="pre">-p</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkconf-z">
<span class="sig-name descname"><span class="pre">-z</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-checkconf-z" title="Link to this definition"></a></dt>
<dd><p>This option performs a test load of all zones of type <code class="docutils literal notranslate"><span class="pre">primary</span></code> found in <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkconf-arg-filename">
<span class="sig-name descname"><span class="pre">filename</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-checkconf-arg-filename" title="Link to this definition"></a></dt>
<dd><p>This indicates the name of the configuration file to be checked. If not specified,
it defaults to <code class="docutils literal notranslate"><span class="pre">/etc/bind/named.conf</span></code>.</p>
</dd></dl>
</section>
<section id="return-values">
<h3>Return Values<a class="headerlink" href="#return-values" title="Link to this heading"></a></h3>
<p><strong class="program">named-checkconf</strong> returns an exit status of 1 if errors were detected
and 0 otherwise.</p>
</section>
<section id="id78">
<h3>See Also<a class="headerlink" href="#id78" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named(8)</span></code></a>, <a class="reference internal" href="#std-iscman-named-checkzone"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named-checkzone(8)</span></code></a>, BIND 9 Administrator Reference Manual.</p>
</section>
</section>
<section id="named-checkzone-zone-file-validation-tool">
<span id="man-named-checkzone"></span><span id="std-iscman-named-checkzone"></span><h2>named-checkzone - zone file validation tool<a class="headerlink" href="#named-checkzone-zone-file-validation-tool" title="Link to this heading"></a></h2>
<section id="id79">
<h3>Synopsis<a class="headerlink" href="#id79" title="Link to this heading"></a></h3>
<p><strong class="program">named-checkzone</strong> [<strong>-d</strong>] [<strong>-h</strong>] [<strong>-j</strong>] [<strong>-q</strong>] [<strong>-v</strong>] [<strong>-c</strong> class] [<strong>-f</strong> format] [<strong>-F</strong> format] [<strong>-J</strong> filename] [<strong>-i</strong> mode] [<strong>-k</strong> mode] [<strong>-m</strong> mode] [<strong>-M</strong> mode] [<strong>-n</strong> mode] [<strong>-l</strong> ttl] [<strong>-L</strong> serial] [<strong>-o</strong> filename] [<strong>-r</strong> mode] [<strong>-s</strong> style] [<strong>-S</strong> mode] [<strong>-t</strong> directory] [<strong>-T</strong> mode] [<strong>-w</strong> directory] [<strong>-D</strong>] [<strong>-W</strong> mode] {zonename} {filename}</p>
</section>
<section id="id80">
<h3>Description<a class="headerlink" href="#id80" title="Link to this heading"></a></h3>
<p><strong class="program">named-checkzone</strong> checks the syntax and integrity of a zone file. It
performs the same checks as <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> does when loading a zone. This
makes <strong class="program">named-checkzone</strong> useful for checking zone files before
configuring them into a name server.</p>
</section>
<section id="id81">
<h3>Options<a class="headerlink" href="#id81" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-d">
<span class="sig-name descname"><span class="pre">-d</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-checkzone-d" title="Link to this definition"></a></dt>
<dd><p>This option enables debugging.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-h">
<span class="sig-name descname"><span class="pre">-h</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-checkzone-h" title="Link to this definition"></a></dt>
<dd><p>This option prints the usage summary and exits.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-q">
<span class="sig-name descname"><span class="pre">-q</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-checkzone-q" title="Link to this definition"></a></dt>
<dd><p>This option sets quiet mode, which only sets an exit code to indicate
successful or failed completion.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-v">
<span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-checkzone-v" title="Link to this definition"></a></dt>
<dd><p>This option prints the version of the <strong class="program">named-checkzone</strong> program and exits.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-j">
<span class="sig-name descname"><span class="pre">-j</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-checkzone-j" title="Link to this definition"></a></dt>
<dd><p>When loading a zone file, this option tells <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> to read the journal if it exists. The journal
file name is assumed to be the zone file name with the
string <code class="docutils literal notranslate"><span class="pre">.jnl</span></code> appended.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-J">
<span class="sig-name descname"><span class="pre">-J</span></span><span class="sig-prename descclassname"> <span class="pre">filename</span></span><a class="headerlink" href="#cmdoption-named-checkzone-J" title="Link to this definition"></a></dt>
<dd><p>When loading the zone file, this option tells <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> to read the journal from the given file, if
it exists. This implies <a class="reference internal" href="#cmdoption-named-checkzone-j"><code class="xref std std-option docutils literal notranslate"><span class="pre">-j</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-c">
<span class="sig-name descname"><span class="pre">-c</span></span><span class="sig-prename descclassname"> <span class="pre">class</span></span><a class="headerlink" href="#cmdoption-named-checkzone-c" title="Link to this definition"></a></dt>
<dd><p>This option specifies the class of the zone. If not specified, <code class="docutils literal notranslate"><span class="pre">IN</span></code> is assumed.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-i">
<span class="sig-name descname"><span class="pre">-i</span></span><span class="sig-prename descclassname"> <span class="pre">mode</span></span><a class="headerlink" href="#cmdoption-named-checkzone-i" title="Link to this definition"></a></dt>
<dd><p>This option performs post-load zone integrity checks. Possible modes are
<code class="docutils literal notranslate"><span class="pre">full</span></code> (the default), <code class="docutils literal notranslate"><span class="pre">full-sibling</span></code>, <code class="docutils literal notranslate"><span class="pre">local</span></code>,
<code class="docutils literal notranslate"><span class="pre">local-sibling</span></code>, and <code class="docutils literal notranslate"><span class="pre">none</span></code>.</p>
<p>Mode <code class="docutils literal notranslate"><span class="pre">full</span></code> checks that MX records refer to A or AAAA records
(both in-zone and out-of-zone hostnames). Mode <code class="docutils literal notranslate"><span class="pre">local</span></code> only
checks MX records which refer to in-zone hostnames.</p>
<p>Mode <code class="docutils literal notranslate"><span class="pre">full</span></code> checks that SRV records refer to A or AAAA records
(both in-zone and out-of-zone hostnames). Mode <code class="docutils literal notranslate"><span class="pre">local</span></code> only
checks SRV records which refer to in-zone hostnames.</p>
<p>Mode <code class="docutils literal notranslate"><span class="pre">full</span></code> 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 <code class="docutils literal notranslate"><span class="pre">local</span></code> 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.</p>
<p>Modes <code class="docutils literal notranslate"><span class="pre">full-sibling</span></code> and <code class="docutils literal notranslate"><span class="pre">local-sibling</span></code> disable sibling glue
checks, but are otherwise the same as <code class="docutils literal notranslate"><span class="pre">full</span></code> and <code class="docutils literal notranslate"><span class="pre">local</span></code>,
respectively.</p>
<p>Mode <code class="docutils literal notranslate"><span class="pre">none</span></code> disables the checks.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-f">
<span class="sig-name descname"><span class="pre">-f</span></span><span class="sig-prename descclassname"> <span class="pre">format</span></span><a class="headerlink" href="#cmdoption-named-checkzone-f" title="Link to this definition"></a></dt>
<dd><p>This option specifies the format of the zone file. Possible formats are
<code class="docutils literal notranslate"><span class="pre">text</span></code> (the default), and <code class="docutils literal notranslate"><span class="pre">raw</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-F">
<span class="sig-name descname"><span class="pre">-F</span></span><span class="sig-prename descclassname"> <span class="pre">format</span></span><a class="headerlink" href="#cmdoption-named-checkzone-F" title="Link to this definition"></a></dt>
<dd><p>This option specifies the format of the output file specified. For
<strong class="program">named-checkzone</strong>, this does not have any effect unless it dumps
the zone contents.</p>
<p>Possible formats are <code class="docutils literal notranslate"><span class="pre">text</span></code> (the default), which is the standard
textual representation of the zone, and <code class="docutils literal notranslate"><span class="pre">raw</span></code> and <code class="docutils literal notranslate"><span class="pre">raw=N</span></code>, which
store the zone in a binary format for rapid loading by <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>.
<code class="docutils literal notranslate"><span class="pre">raw=N</span></code> specifies the format version of the raw zone file: if <code class="docutils literal notranslate"><span class="pre">N</span></code> is
0, the raw file can be read by any version of <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>; if N is 1, the
file can only be read by release 9.9.0 or higher. The default is 1.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-k">
<span class="sig-name descname"><span class="pre">-k</span></span><span class="sig-prename descclassname"> <span class="pre">mode</span></span><a class="headerlink" href="#cmdoption-named-checkzone-k" title="Link to this definition"></a></dt>
<dd><p>This option performs <code class="docutils literal notranslate"><span class="pre">check-names</span></code> checks with the specified failure mode.
Possible modes are <code class="docutils literal notranslate"><span class="pre">fail</span></code>, <code class="docutils literal notranslate"><span class="pre">warn</span></code> (the default), and <code class="docutils literal notranslate"><span class="pre">ignore</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-l">
<span class="sig-name descname"><span class="pre">-l</span></span><span class="sig-prename descclassname"> <span class="pre">ttl</span></span><a class="headerlink" href="#cmdoption-named-checkzone-l" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">max-zone-ttl</span></code> option in <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-L">
<span class="sig-name descname"><span class="pre">-L</span></span><span class="sig-prename descclassname"> <span class="pre">serial</span></span><a class="headerlink" href="#cmdoption-named-checkzone-L" title="Link to this definition"></a></dt>
<dd><p>When compiling a zone to <code class="docutils literal notranslate"><span class="pre">raw</span></code> 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-m">
<span class="sig-name descname"><span class="pre">-m</span></span><span class="sig-prename descclassname"> <span class="pre">mode</span></span><a class="headerlink" href="#cmdoption-named-checkzone-m" title="Link to this definition"></a></dt>
<dd><p>This option specifies whether MX records should be checked to see if they are
addresses. Possible modes are <code class="docutils literal notranslate"><span class="pre">fail</span></code>, <code class="docutils literal notranslate"><span class="pre">warn</span></code> (the default), and
<code class="docutils literal notranslate"><span class="pre">ignore</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-M">
<span class="sig-name descname"><span class="pre">-M</span></span><span class="sig-prename descclassname"> <span class="pre">mode</span></span><a class="headerlink" href="#cmdoption-named-checkzone-M" title="Link to this definition"></a></dt>
<dd><p>This option checks whether a MX record refers to a CNAME. Possible modes are
<code class="docutils literal notranslate"><span class="pre">fail</span></code>, <code class="docutils literal notranslate"><span class="pre">warn</span></code> (the default), and <code class="docutils literal notranslate"><span class="pre">ignore</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-n">
<span class="sig-name descname"><span class="pre">-n</span></span><span class="sig-prename descclassname"> <span class="pre">mode</span></span><a class="headerlink" href="#cmdoption-named-checkzone-n" title="Link to this definition"></a></dt>
<dd><p>This option specifies whether NS records should be checked to see if they are
addresses. Possible modes are <code class="docutils literal notranslate"><span class="pre">fail</span></code>, <code class="docutils literal notranslate"><span class="pre">warn</span></code> (the default), and <code class="docutils literal notranslate"><span class="pre">ignore</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-o">
<span class="sig-name descname"><span class="pre">-o</span></span><span class="sig-prename descclassname"> <span class="pre">filename</span></span><a class="headerlink" href="#cmdoption-named-checkzone-o" title="Link to this definition"></a></dt>
<dd><p>This option writes the zone output to <code class="docutils literal notranslate"><span class="pre">filename</span></code>. If <code class="docutils literal notranslate"><span class="pre">filename</span></code> is <code class="docutils literal notranslate"><span class="pre">-</span></code>, then
the zone output is written to standard output.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-r">
<span class="sig-name descname"><span class="pre">-r</span></span><span class="sig-prename descclassname"> <span class="pre">mode</span></span><a class="headerlink" href="#cmdoption-named-checkzone-r" title="Link to this definition"></a></dt>
<dd><p>This option checks for records that are treated as different by DNSSEC but are
semantically equal in plain DNS. Possible modes are <code class="docutils literal notranslate"><span class="pre">fail</span></code>,
<code class="docutils literal notranslate"><span class="pre">warn</span></code> (the default), and <code class="docutils literal notranslate"><span class="pre">ignore</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-s">
<span class="sig-name descname"><span class="pre">-s</span></span><span class="sig-prename descclassname"> <span class="pre">style</span></span><a class="headerlink" href="#cmdoption-named-checkzone-s" title="Link to this definition"></a></dt>
<dd><p>This option specifies the style of the dumped zone file. Possible styles are
<code class="docutils literal notranslate"><span class="pre">full</span></code> (the default) and <code class="docutils literal notranslate"><span class="pre">relative</span></code>. The <code class="docutils literal notranslate"><span class="pre">full</span></code> 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. 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-S">
<span class="sig-name descname"><span class="pre">-S</span></span><span class="sig-prename descclassname"> <span class="pre">mode</span></span><a class="headerlink" href="#cmdoption-named-checkzone-S" title="Link to this definition"></a></dt>
<dd><p>This option checks whether an SRV record refers to a CNAME. Possible modes are
<code class="docutils literal notranslate"><span class="pre">fail</span></code>, <code class="docutils literal notranslate"><span class="pre">warn</span></code> (the default), and <code class="docutils literal notranslate"><span class="pre">ignore</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-t">
<span class="sig-name descname"><span class="pre">-t</span></span><span class="sig-prename descclassname"> <span class="pre">directory</span></span><a class="headerlink" href="#cmdoption-named-checkzone-t" title="Link to this definition"></a></dt>
<dd><p>This option tells <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> to chroot to <code class="docutils literal notranslate"><span class="pre">directory</span></code>, so that <code class="docutils literal notranslate"><span class="pre">include</span></code> directives in the
configuration file are processed as if run by a similarly chrooted
<a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-T">
<span class="sig-name descname"><span class="pre">-T</span></span><span class="sig-prename descclassname"> <span class="pre">mode</span></span><a class="headerlink" href="#cmdoption-named-checkzone-T" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">warn</span></code> (the default) and <code class="docutils literal notranslate"><span class="pre">ignore</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-w">
<span class="sig-name descname"><span class="pre">-w</span></span><span class="sig-prename descclassname"> <span class="pre">directory</span></span><a class="headerlink" href="#cmdoption-named-checkzone-w" title="Link to this definition"></a></dt>
<dd><p>This option instructs <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> to chdir to <code class="docutils literal notranslate"><span class="pre">directory</span></code>, so that relative filenames in master file
<code class="docutils literal notranslate"><span class="pre">$INCLUDE</span></code> directives work. This is similar to the directory clause in
<a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-D">
<span class="sig-name descname"><span class="pre">-D</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-checkzone-D" title="Link to this definition"></a></dt>
<dd><p>This option dumps the zone file in canonical format.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-W">
<span class="sig-name descname"><span class="pre">-W</span></span><span class="sig-prename descclassname"> <span class="pre">mode</span></span><a class="headerlink" href="#cmdoption-named-checkzone-W" title="Link to this definition"></a></dt>
<dd><p>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 (<span class="target" id="index-42"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc4592.html"><strong>RFC 4592</strong></a>). Possible modes are <code class="docutils literal notranslate"><span class="pre">warn</span></code>
(the default) and <code class="docutils literal notranslate"><span class="pre">ignore</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-arg-zonename">
<span class="sig-name descname"><span class="pre">zonename</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-checkzone-arg-zonename" title="Link to this definition"></a></dt>
<dd><p>This indicates the domain name of the zone being checked.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-checkzone-arg-filename">
<span class="sig-name descname"><span class="pre">filename</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-checkzone-arg-filename" title="Link to this definition"></a></dt>
<dd><p>This is the name of the zone file.</p>
</dd></dl>
</section>
<section id="id82">
<h3>Return Values<a class="headerlink" href="#id82" title="Link to this heading"></a></h3>
<p><strong class="program">named-checkzone</strong> returns an exit status of 1 if errors were detected
and 0 otherwise.</p>
</section>
<section id="id83">
<h3>See Also<a class="headerlink" href="#id83" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named(8)</span></code></a>, <a class="reference internal" href="#std-iscman-named-checkconf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named-checkconf(8)</span></code></a>, <a class="reference internal" href="#std-iscman-named-compilezone"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named-compilezone(8)</span></code></a>, <span class="target" id="index-43"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1035.html"><strong>RFC 1035</strong></a>, BIND 9 Administrator Reference
Manual.</p>
</section>
</section>
<section id="named-compilezone-zone-file-converting-tool">
<span id="man-named-compilezone"></span><span id="std-iscman-named-compilezone"></span><h2>named-compilezone - zone file converting tool<a class="headerlink" href="#named-compilezone-zone-file-converting-tool" title="Link to this heading"></a></h2>
<section id="id84">
<h3>Synopsis<a class="headerlink" href="#id84" title="Link to this heading"></a></h3>
<p><strong class="program">named-compilezone</strong> [<strong>-d</strong>] [<strong>-h</strong>] [<strong>-j</strong>] [<strong>-q</strong>] [<strong>-v</strong>] [<strong>-c</strong> class] [<strong>-f</strong> format] [<strong>-F</strong> format] [<strong>-J</strong> filename] [<strong>-i</strong> mode] [<strong>-k</strong> mode] [<strong>-m</strong> mode] [<strong>-M</strong> mode] [<strong>-n</strong> mode] [<strong>-l</strong> ttl] [<strong>-L</strong> serial] [<strong>-r</strong> mode] [<strong>-s</strong> style] [<strong>-S</strong> mode] [<strong>-t</strong> directory] [<strong>-T</strong> mode] [<strong>-w</strong> directory] [<strong>-D</strong>] [<strong>-W</strong> mode] {<strong>-o</strong> filename} {zonename} {filename}</p>
</section>
<section id="id85">
<h3>Description<a class="headerlink" href="#id85" title="Link to this heading"></a></h3>
<p><strong class="program">named-compilezone</strong> checks the syntax and integrity of a zone file,
and dumps the zone contents to a specified file in a specified format.
It applies strict check levels by default, since the
dump output is used as an actual zone file loaded by <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>.
When manually specified otherwise, the check levels must at least be as
strict as those specified in the <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> configuration file.</p>
</section>
<section id="id86">
<h3>Options<a class="headerlink" href="#id86" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-d">
<span class="sig-name descname"><span class="pre">-d</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-compilezone-d" title="Link to this definition"></a></dt>
<dd><p>This option enables debugging.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-h">
<span class="sig-name descname"><span class="pre">-h</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-compilezone-h" title="Link to this definition"></a></dt>
<dd><p>This option prints the usage summary and exits.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-q">
<span class="sig-name descname"><span class="pre">-q</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-compilezone-q" title="Link to this definition"></a></dt>
<dd><p>This option sets quiet mode, which only sets an exit code to indicate
successful or failed completion.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-v">
<span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-compilezone-v" title="Link to this definition"></a></dt>
<dd><p>This option prints the version of the <a class="reference internal" href="#std-iscman-named-checkzone"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named-checkzone</span></code></a> program and exits.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-j">
<span class="sig-name descname"><span class="pre">-j</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-compilezone-j" title="Link to this definition"></a></dt>
<dd><p>When loading a zone file, this option tells <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> to read the journal if it exists. The journal
file name is assumed to be the zone file name with the
string <code class="docutils literal notranslate"><span class="pre">.jnl</span></code> appended.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-J">
<span class="sig-name descname"><span class="pre">-J</span></span><span class="sig-prename descclassname"> <span class="pre">filename</span></span><a class="headerlink" href="#cmdoption-named-compilezone-J" title="Link to this definition"></a></dt>
<dd><p>When loading the zone file, this option tells <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> to read the journal from the given file, if
it exists. This implies <a class="reference internal" href="#cmdoption-named-compilezone-j"><code class="xref std std-option docutils literal notranslate"><span class="pre">-j</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-c">
<span class="sig-name descname"><span class="pre">-c</span></span><span class="sig-prename descclassname"> <span class="pre">class</span></span><a class="headerlink" href="#cmdoption-named-compilezone-c" title="Link to this definition"></a></dt>
<dd><p>This option specifies the class of the zone. If not specified, <code class="docutils literal notranslate"><span class="pre">IN</span></code> is assumed.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-i">
<span class="sig-name descname"><span class="pre">-i</span></span><span class="sig-prename descclassname"> <span class="pre">mode</span></span><a class="headerlink" href="#cmdoption-named-compilezone-i" title="Link to this definition"></a></dt>
<dd><p>This option performs post-load zone integrity checks. Possible modes are
<code class="docutils literal notranslate"><span class="pre">full</span></code> (the default), <code class="docutils literal notranslate"><span class="pre">full-sibling</span></code>, <code class="docutils literal notranslate"><span class="pre">local</span></code>,
<code class="docutils literal notranslate"><span class="pre">local-sibling</span></code>, and <code class="docutils literal notranslate"><span class="pre">none</span></code>.</p>
<p>Mode <code class="docutils literal notranslate"><span class="pre">full</span></code> checks that MX records refer to A or AAAA records
(both in-zone and out-of-zone hostnames). Mode <code class="docutils literal notranslate"><span class="pre">local</span></code> only
checks MX records which refer to in-zone hostnames.</p>
<p>Mode <code class="docutils literal notranslate"><span class="pre">full</span></code> checks that SRV records refer to A or AAAA records
(both in-zone and out-of-zone hostnames). Mode <code class="docutils literal notranslate"><span class="pre">local</span></code> only
checks SRV records which refer to in-zone hostnames.</p>
<p>Mode <code class="docutils literal notranslate"><span class="pre">full</span></code> 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 <code class="docutils literal notranslate"><span class="pre">local</span></code> 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.</p>
<p>Modes <code class="docutils literal notranslate"><span class="pre">full-sibling</span></code> and <code class="docutils literal notranslate"><span class="pre">local-sibling</span></code> disable sibling glue
checks, but are otherwise the same as <code class="docutils literal notranslate"><span class="pre">full</span></code> and <code class="docutils literal notranslate"><span class="pre">local</span></code>,
respectively.</p>
<p>Mode <code class="docutils literal notranslate"><span class="pre">none</span></code> disables the checks.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-f">
<span class="sig-name descname"><span class="pre">-f</span></span><span class="sig-prename descclassname"> <span class="pre">format</span></span><a class="headerlink" href="#cmdoption-named-compilezone-f" title="Link to this definition"></a></dt>
<dd><p>This option specifies the format of the zone file. Possible formats are
<code class="docutils literal notranslate"><span class="pre">text</span></code> (the default), and <code class="docutils literal notranslate"><span class="pre">raw</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-F">
<span class="sig-name descname"><span class="pre">-F</span></span><span class="sig-prename descclassname"> <span class="pre">format</span></span><a class="headerlink" href="#cmdoption-named-compilezone-F" title="Link to this definition"></a></dt>
<dd><p>This option specifies the format of the output file specified. For
<a class="reference internal" href="#std-iscman-named-checkzone"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named-checkzone</span></code></a>, this does not have any effect unless it dumps
the zone contents.</p>
<p>Possible formats are <code class="docutils literal notranslate"><span class="pre">text</span></code> (the default), which is the standard
textual representation of the zone, and <code class="docutils literal notranslate"><span class="pre">raw</span></code> and <code class="docutils literal notranslate"><span class="pre">raw=N</span></code>, which
store the zone in a binary format for rapid loading by <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>.
<code class="docutils literal notranslate"><span class="pre">raw=N</span></code> specifies the format version of the raw zone file: if <code class="docutils literal notranslate"><span class="pre">N</span></code> is
0, the raw file can be read by any version of <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>; if N is 1, the
file can only be read by release 9.9.0 or higher. The default is 1.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-k">
<span class="sig-name descname"><span class="pre">-k</span></span><span class="sig-prename descclassname"> <span class="pre">mode</span></span><a class="headerlink" href="#cmdoption-named-compilezone-k" title="Link to this definition"></a></dt>
<dd><p>This option performs <code class="docutils literal notranslate"><span class="pre">check-names</span></code> checks with the specified failure mode.
Possible modes are <code class="docutils literal notranslate"><span class="pre">fail</span></code> (the default), <code class="docutils literal notranslate"><span class="pre">warn</span></code>, and <code class="docutils literal notranslate"><span class="pre">ignore</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-l">
<span class="sig-name descname"><span class="pre">-l</span></span><span class="sig-prename descclassname"> <span class="pre">ttl</span></span><a class="headerlink" href="#cmdoption-named-compilezone-l" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">max-zone-ttl</span></code> option in <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-L">
<span class="sig-name descname"><span class="pre">-L</span></span><span class="sig-prename descclassname"> <span class="pre">serial</span></span><a class="headerlink" href="#cmdoption-named-compilezone-L" title="Link to this definition"></a></dt>
<dd><p>When compiling a zone to <code class="docutils literal notranslate"><span class="pre">raw</span></code> 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-m">
<span class="sig-name descname"><span class="pre">-m</span></span><span class="sig-prename descclassname"> <span class="pre">mode</span></span><a class="headerlink" href="#cmdoption-named-compilezone-m" title="Link to this definition"></a></dt>
<dd><p>This option specifies whether MX records should be checked to see if they are
addresses. Possible modes are <code class="docutils literal notranslate"><span class="pre">fail</span></code>, <code class="docutils literal notranslate"><span class="pre">warn</span></code> (the default), and
<code class="docutils literal notranslate"><span class="pre">ignore</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-M">
<span class="sig-name descname"><span class="pre">-M</span></span><span class="sig-prename descclassname"> <span class="pre">mode</span></span><a class="headerlink" href="#cmdoption-named-compilezone-M" title="Link to this definition"></a></dt>
<dd><p>This option checks whether a MX record refers to a CNAME. Possible modes are
<code class="docutils literal notranslate"><span class="pre">fail</span></code>, <code class="docutils literal notranslate"><span class="pre">warn</span></code> (the default), and <code class="docutils literal notranslate"><span class="pre">ignore</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-n">
<span class="sig-name descname"><span class="pre">-n</span></span><span class="sig-prename descclassname"> <span class="pre">mode</span></span><a class="headerlink" href="#cmdoption-named-compilezone-n" title="Link to this definition"></a></dt>
<dd><p>This option specifies whether NS records should be checked to see if they are
addresses. Possible modes are <code class="docutils literal notranslate"><span class="pre">fail</span></code> (the default), <code class="docutils literal notranslate"><span class="pre">warn</span></code>, and
<code class="docutils literal notranslate"><span class="pre">ignore</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-o">
<span class="sig-name descname"><span class="pre">-o</span></span><span class="sig-prename descclassname"> <span class="pre">filename</span></span><a class="headerlink" href="#cmdoption-named-compilezone-o" title="Link to this definition"></a></dt>
<dd><p>This option writes the zone output to <code class="docutils literal notranslate"><span class="pre">filename</span></code>. If <code class="docutils literal notranslate"><span class="pre">filename</span></code> is <code class="docutils literal notranslate"><span class="pre">-</span></code>, then
the zone output is written to standard output. This is mandatory for <strong class="program">named-compilezone</strong>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-r">
<span class="sig-name descname"><span class="pre">-r</span></span><span class="sig-prename descclassname"> <span class="pre">mode</span></span><a class="headerlink" href="#cmdoption-named-compilezone-r" title="Link to this definition"></a></dt>
<dd><p>This option checks for records that are treated as different by DNSSEC but are
semantically equal in plain DNS. Possible modes are <code class="docutils literal notranslate"><span class="pre">fail</span></code>,
<code class="docutils literal notranslate"><span class="pre">warn</span></code> (the default), and <code class="docutils literal notranslate"><span class="pre">ignore</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-s">
<span class="sig-name descname"><span class="pre">-s</span></span><span class="sig-prename descclassname"> <span class="pre">style</span></span><a class="headerlink" href="#cmdoption-named-compilezone-s" title="Link to this definition"></a></dt>
<dd><p>This option specifies the style of the dumped zone file. Possible styles are
<code class="docutils literal notranslate"><span class="pre">full</span></code> (the default) and <code class="docutils literal notranslate"><span class="pre">relative</span></code>. The <code class="docutils literal notranslate"><span class="pre">full</span></code> 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-S">
<span class="sig-name descname"><span class="pre">-S</span></span><span class="sig-prename descclassname"> <span class="pre">mode</span></span><a class="headerlink" href="#cmdoption-named-compilezone-S" title="Link to this definition"></a></dt>
<dd><p>This option checks whether an SRV record refers to a CNAME. Possible modes are
<code class="docutils literal notranslate"><span class="pre">fail</span></code>, <code class="docutils literal notranslate"><span class="pre">warn</span></code> (the default), and <code class="docutils literal notranslate"><span class="pre">ignore</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-t">
<span class="sig-name descname"><span class="pre">-t</span></span><span class="sig-prename descclassname"> <span class="pre">directory</span></span><a class="headerlink" href="#cmdoption-named-compilezone-t" title="Link to this definition"></a></dt>
<dd><p>This option tells <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> to chroot to <code class="docutils literal notranslate"><span class="pre">directory</span></code>, so that <code class="docutils literal notranslate"><span class="pre">include</span></code> directives in the
configuration file are processed as if run by a similarly chrooted
<a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-T">
<span class="sig-name descname"><span class="pre">-T</span></span><span class="sig-prename descclassname"> <span class="pre">mode</span></span><a class="headerlink" href="#cmdoption-named-compilezone-T" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">warn</span></code> (the default) and <code class="docutils literal notranslate"><span class="pre">ignore</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-w">
<span class="sig-name descname"><span class="pre">-w</span></span><span class="sig-prename descclassname"> <span class="pre">directory</span></span><a class="headerlink" href="#cmdoption-named-compilezone-w" title="Link to this definition"></a></dt>
<dd><p>This option instructs <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> to chdir to <code class="docutils literal notranslate"><span class="pre">directory</span></code>, so that relative filenames in master file
<code class="docutils literal notranslate"><span class="pre">$INCLUDE</span></code> directives work. This is similar to the directory clause in
<a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-D">
<span class="sig-name descname"><span class="pre">-D</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-compilezone-D" title="Link to this definition"></a></dt>
<dd><p>This option dumps the zone file in canonical format. This is always enabled for
<strong class="program">named-compilezone</strong>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-W">
<span class="sig-name descname"><span class="pre">-W</span></span><span class="sig-prename descclassname"> <span class="pre">mode</span></span><a class="headerlink" href="#cmdoption-named-compilezone-W" title="Link to this definition"></a></dt>
<dd><p>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 (<span class="target" id="index-44"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc4592.html"><strong>RFC 4592</strong></a>). Possible modes are <code class="docutils literal notranslate"><span class="pre">warn</span></code>
(the default) and <code class="docutils literal notranslate"><span class="pre">ignore</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-arg-zonename">
<span class="sig-name descname"><span class="pre">zonename</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-compilezone-arg-zonename" title="Link to this definition"></a></dt>
<dd><p>This indicates the domain name of the zone being checked.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-compilezone-arg-filename">
<span class="sig-name descname"><span class="pre">filename</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-compilezone-arg-filename" title="Link to this definition"></a></dt>
<dd><p>This is the name of the zone file.</p>
</dd></dl>
</section>
<section id="id87">
<h3>Return Values<a class="headerlink" href="#id87" title="Link to this heading"></a></h3>
<p><strong class="program">named-compilezone</strong> returns an exit status of 1 if errors were detected
and 0 otherwise.</p>
</section>
<section id="id88">
<h3>See Also<a class="headerlink" href="#id88" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named(8)</span></code></a>, <a class="reference internal" href="#std-iscman-named-checkconf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named-checkconf(8)</span></code></a>, <a class="reference internal" href="#std-iscman-named-checkzone"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named-checkzone(8)</span></code></a>, <span class="target" id="index-45"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1035.html"><strong>RFC 1035</strong></a>,
BIND 9 Administrator Reference Manual.</p>
</section>
</section>
<section id="named-journalprint-print-zone-journal-in-human-readable-form">
<span id="man-named-journalprint"></span><span id="std-iscman-named-journalprint"></span><h2>named-journalprint - print zone journal in human-readable form<a class="headerlink" href="#named-journalprint-print-zone-journal-in-human-readable-form" title="Link to this heading"></a></h2>
<section id="id89">
<h3>Synopsis<a class="headerlink" href="#id89" title="Link to this heading"></a></h3>
<p><strong class="program">named-journalprint</strong> [-c serial] [<strong>-dux</strong>] {journal}</p>
</section>
<section id="id90">
<h3>Description<a class="headerlink" href="#id90" title="Link to this heading"></a></h3>
<p><strong class="program">named-journalprint</strong> scans the contents of a zone journal file,
printing it in a human-readable form, or, optionally, converting it
to a different journal file format.</p>
<p>Journal files are automatically created by <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> when changes are
made to dynamic zones (e.g., by <a class="reference internal" href="#std-iscman-nsupdate"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">nsupdate</span></code></a>). They record each addition
or deletion of a resource record, in binary format, allowing the changes
to be re-applied to the zone when the server is restarted after a
shutdown or crash. By default, the name of the journal file is formed by
appending the extension <code class="docutils literal notranslate"><span class="pre">.jnl</span></code> to the name of the corresponding zone
file.</p>
<p><strong class="program">named-journalprint</strong> converts the contents of a given journal file
into a human-readable text format. Each line begins with <code class="docutils literal notranslate"><span class="pre">add</span></code> or <code class="docutils literal notranslate"><span class="pre">del</span></code>,
to indicate whether the record was added or deleted, and continues with
the resource record in master-file format.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">-c</span></code> (compact) option provides a mechanism to reduce the size of
a journal by removing (most/all) transactions prior to the specified
serial number. Note: this option <em>must not</em> be used while <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> is
running, and can cause data loss if the zone file has not been updated
to contain the data being removed from the journal. Use with extreme caution.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">-x</span></code> option causes additional data about the journal file to be
printed at the beginning of the output and before each group of changes.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">-u</span></code> (upgrade) and <code class="docutils literal notranslate"><span class="pre">-d</span></code> (downgrade) options recreate the journal
file with a modified format version. The existing journal file is
replaced. <code class="docutils literal notranslate"><span class="pre">-d</span></code> writes out the journal in the format used by
versions of BIND up to 9.16.11; <code class="docutils literal notranslate"><span class="pre">-u</span></code> writes it out in the format used
by versions since 9.16.13. (9.16.12 is omitted due to a journal-formatting
bug in that release.) Note that these options <em>must not</em> be used while
<a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> is running.</p>
</section>
<section id="id91">
<h3>See Also<a class="headerlink" href="#id91" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named(8)</span></code></a>, <a class="reference internal" href="#std-iscman-nsupdate"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">nsupdate(1)</span></code></a>, BIND 9 Administrator Reference Manual.</p>
</section>
</section>
<section id="named-nzd2nzf-convert-an-nzd-database-to-nzf-text-format">
<span id="man-named-nzd2nzf"></span><span id="std-iscman-named-nzd2nzf"></span><h2>named-nzd2nzf - convert an NZD database to NZF text format<a class="headerlink" href="#named-nzd2nzf-convert-an-nzd-database-to-nzf-text-format" title="Link to this heading"></a></h2>
<section id="id92">
<h3>Synopsis<a class="headerlink" href="#id92" title="Link to this heading"></a></h3>
<p><strong class="program">named-nzd2nzf</strong> {filename}</p>
</section>
<section id="id93">
<h3>Description<a class="headerlink" href="#id93" title="Link to this heading"></a></h3>
<p><strong class="program">named-nzd2nzf</strong> converts an NZD database to NZF format and prints it
to standard output. This can be used to review the configuration of
zones that were added to <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> via <a class="reference internal" href="#cmdoption-rndc-arg-addzone"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">addzone</span></code></a>. It can also be
used to restore the old file format when rolling back from a newer
version of BIND to an older version.</p>
</section>
<section id="arguments">
<h3>Arguments<a class="headerlink" href="#arguments" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-nzd2nzf-arg-filename">
<span class="sig-name descname"><span class="pre">filename</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-nzd2nzf-arg-filename" title="Link to this definition"></a></dt>
<dd><p>This is the name of the <code class="docutils literal notranslate"><span class="pre">.nzd</span></code> file whose contents should be printed.</p>
</dd></dl>
</section>
<section id="id94">
<h3>See Also<a class="headerlink" href="#id94" title="Link to this heading"></a></h3>
<p>BIND 9 Administrator Reference Manual.</p>
</section>
</section>
<section id="named-rrchecker-syntax-checker-for-individual-dns-resource-records">
<span id="man-named-rrchecker"></span><span id="std-iscman-named-rrchecker"></span><h2>named-rrchecker - syntax checker for individual DNS resource records<a class="headerlink" href="#named-rrchecker-syntax-checker-for-individual-dns-resource-records" title="Link to this heading"></a></h2>
<section id="id95">
<h3>Synopsis<a class="headerlink" href="#id95" title="Link to this heading"></a></h3>
<p><strong class="program">named-rrchecker</strong> [<strong>-h</strong>] [<strong>-o</strong> origin] [<strong>-p</strong>] [<strong>-u</strong>] [<strong>-C</strong>] [<strong>-T</strong>] [<strong>-P</strong>]</p>
</section>
<section id="id96">
<h3>Description<a class="headerlink" href="#id96" title="Link to this heading"></a></h3>
<p><strong class="program">named-rrchecker</strong> reads a single DNS resource record (RR) from standard
input and checks whether it is syntactically correct.</p>
<dl class="simple">
<dt>The input format is a minimal subset of the DNS zone file format. The entire input must be:</dt><dd><p>CLASS TYPE RDATA</p>
</dd>
</dl>
<ul class="simple">
<li><p>Input must not start with an owner (domain) name</p></li>
<li><p>The <cite>CLASS</cite> field is mandatory (typically <code class="docutils literal notranslate"><span class="pre">IN</span></code>).</p></li>
<li><p>The <cite>TTL</cite> field <strong>must not</strong> be present.</p></li>
<li><p>RDATA format is specific to each RRTYPE.</p></li>
<li><p>Leading and trailing whitespace in each field is ignored.</p></li>
</ul>
<p>Format details can be found in <span class="target" id="index-46"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1035.html#section-5.1"><strong>RFC 1035#section-5.1</strong></a> under <code class="docutils literal notranslate"><span class="pre"><rr></span></code>
specification. <span class="target" id="index-47"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3597.html"><strong>RFC 3597</strong></a> format is also accepted in any of the input fields.
See <a class="reference internal" href="#id98"><span class="std std-ref">Examples</span></a>.</p>
</section>
<section id="id97">
<h3>Options<a class="headerlink" href="#id97" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-rrchecker-o">
<span class="sig-name descname"><span class="pre">-o</span></span><span class="sig-prename descclassname"> <span class="pre">origin</span></span><a class="headerlink" href="#cmdoption-named-rrchecker-o" title="Link to this definition"></a></dt>
<dd><p>This option specifies the origin to be used when interpreting names in the record:
it defaults to root (<cite>.</cite>). The specified origin is always taken as an absolute name.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-rrchecker-p">
<span class="sig-name descname"><span class="pre">-p</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-rrchecker-p" title="Link to this definition"></a></dt>
<dd><p>This option prints out the resulting record in canonical form. If there
is no canonical form defined, the record is printed in <span class="target" id="index-48"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3597.html"><strong>RFC 3597</strong></a> unknown
record format.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-rrchecker-u">
<span class="sig-name descname"><span class="pre">-u</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-rrchecker-u" title="Link to this definition"></a></dt>
<dd><p>This option prints out the resulting record in <span class="target" id="index-49"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3597.html"><strong>RFC 3597</strong></a> unknown record
format.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-rrchecker-C">
<span id="cmdoption-named-rrchecker-T"></span><span id="cmdoption-named-rrchecker-P"></span><span class="sig-name descname"><span class="pre">-C</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">-T</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">-P</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-rrchecker-C" title="Link to this definition"></a></dt>
<dd><p>These options do not read input. They print out known classes, standard types,
and private type mnemonics. Each item is printed on a separate line.
The resulting list of private types may be empty</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-rrchecker-h">
<span class="sig-name descname"><span class="pre">-h</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-rrchecker-h" title="Link to this definition"></a></dt>
<dd><p>This option prints out the help menu.</p>
</dd></dl>
</section>
<section id="id98">
<span id="id99"></span><h3>Examples<a class="headerlink" href="#id98" title="Link to this heading"></a></h3>
<p>Pay close attention to the <em class="manpage">echo</em> command line options <cite>-e</cite> and <cite>-n</cite>, as they affect whitespace in the input to <code class="docutils literal notranslate"><span class="pre">named-rrchecker</span></code>.</p>
<dl class="simple">
<dt>echo -n ‘IN A 192.0.2.1’ | named-rrchecker</dt><dd><ul class="simple">
<li><p>Valid input is in <span class="target" id="index-50"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1035.html"><strong>RFC 1035</strong></a> format with no newline at the end of the input.</p></li>
<li><p>Return code 0.</p></li>
</ul>
</dd>
<dt>echo -e ‘\n \n IN\tA 192.0.2.1 \t \n\n ‘ | named-rrchecker -p</dt><dd><ul class="simple">
<li><p>Valid input with leading and trailing whitespace.</p></li>
<li><p>Output: <code class="docutils literal notranslate"><span class="pre">IN</span>        <span class="pre">A</span>       <span class="pre">192.0.2.1</span></code></p></li>
<li><p>Leading and trailing whitespace is not part of the output.</p></li>
</ul>
</dd>
</dl>
<section id="relative-names-and-origin">
<h4>Relative names and origin<a class="headerlink" href="#relative-names-and-origin" title="Link to this heading"></a></h4>
<dl class="simple">
<dt>echo ‘IN CNAME target’ | named-rrchecker -p</dt><dd><ul class="simple">
<li><p>Valid input with a relative name as the CNAME target.</p></li>
<li><p>Output: <code class="docutils literal notranslate"><span class="pre">IN</span>        <span class="pre">CNAME</span>   <span class="pre">target.</span></code></p></li>
<li><p>Relative name <cite>target</cite> from the input is converted to an absolute name using the default origin <code class="docutils literal notranslate"><span class="pre">.</span></code> (root).</p></li>
</ul>
</dd>
<dt>echo ‘IN CNAME target’ | named-rrchecker -p -o origin.test</dt><dd><ul class="simple">
<li><p>Valid input with a relative name as the CNAME target.</p></li>
<li><p>Output: <code class="docutils literal notranslate"><span class="pre">IN</span>        <span class="pre">CNAME</span>   <span class="pre">target.origin.test.</span></code></p></li>
<li><p>Relative name <cite>target</cite> from the input is converted to an absolute name using the specified origin <code class="docutils literal notranslate"><span class="pre">origin.test</span></code></p></li>
</ul>
</dd>
<dt>echo ‘IN CNAME target.’ | named-rrchecker -p -o origin.test</dt><dd><ul class="simple">
<li><p>Valid input with an absolute name as the CNAME target.</p></li>
<li><p>Output: <code class="docutils literal notranslate"><span class="pre">IN</span>        <span class="pre">CNAME</span>   <span class="pre">target.</span></code></p></li>
<li><p>The specified origin has no influence if <cite>target</cite> from the input is already absolute.</p></li>
</ul>
</dd>
</dl>
</section>
<section id="special-characters">
<h4>Special characters<a class="headerlink" href="#special-characters" title="Link to this heading"></a></h4>
<p>Special characters allowed in zone files by <span class="target" id="index-51"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1035.html#section-5.1"><strong>RFC 1035#section-5.1</strong></a> are accepted.</p>
<dl class="simple">
<dt>echo ‘IN CNAME t\097r\get\.’ | named-rrchecker -p -o origin.test</dt><dd><ul class="simple">
<li><p>Valid input with backslash escapes.</p></li>
<li><p>Output: <code class="docutils literal notranslate"><span class="pre">IN</span>        <span class="pre">CNAME</span>   <span class="pre">target\..origin.test.</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">\097</span></code> denotes an ASCII value in decimal, which, in this example, is the character <code class="docutils literal notranslate"><span class="pre">a</span></code>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">\g</span></code> is converted to a plain <code class="docutils literal notranslate"><span class="pre">g</span></code> because the <code class="docutils literal notranslate"><span class="pre">g</span></code> character does not have a special meaning and so the <code class="docutils literal notranslate"><span class="pre">\</span></code> prefix does nothing in this case.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">\.</span></code> denotes a literal ASCII dot (here as a part of the CNAME target name). Special meaning of <code class="docutils literal notranslate"><span class="pre">.</span></code> as the DNS label separator was disabled by the preceding <code class="docutils literal notranslate"><span class="pre">\</span></code> prefix.</p></li>
</ul>
</dd>
<dt>echo ‘IN CNAME @’ | named-rrchecker -p -o origin.test</dt><dd><ul class="simple">
<li><p>Valid input with <code class="docutils literal notranslate"><span class="pre">@</span></code> used as a reference to the specified origin.</p></li>
<li><p>Output: <code class="docutils literal notranslate"><span class="pre">IN</span>        <span class="pre">CNAME</span>   <span class="pre">origin.test.</span></code></p></li>
</ul>
</dd>
<dt>echo ‘IN CNAME \@’ | named-rrchecker -p -o origin.test</dt><dd><ul class="simple">
<li><p>Valid input with a literal <code class="docutils literal notranslate"><span class="pre">@</span></code> character (escaped).</p></li>
<li><p>Output: <code class="docutils literal notranslate"><span class="pre">IN</span>        <span class="pre">CNAME</span>   <span class="pre">\@.origin.test.</span></code></p></li>
</ul>
</dd>
<dt>echo ‘IN CNAME prefix.@’ | named-rrchecker -p -o origin.test</dt><dd><ul class="simple">
<li><p>Valid input with <code class="docutils literal notranslate"><span class="pre">@</span></code> used as a reference to the specifed origin.</p></li>
<li><p>Output: <code class="docutils literal notranslate"><span class="pre">IN</span>        <span class="pre">CNAME</span>   <span class="pre">prefix.\@.origin.test.</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">@</span></code> has special meaning only if it is free-standing.</p></li>
</ul>
</dd>
<dt>echo ‘IN A 192.0.2.1; comment’ | named-rrchecker -p</dt><dd><ul class="simple">
<li><p>Valid input with a trailing comment. Note the lack of whitespace before the start of the comment.</p></li>
<li><p>Output: <code class="docutils literal notranslate"><span class="pre">IN</span>        <span class="pre">A</span>       <span class="pre">192.0.2.1</span></code></p></li>
</ul>
</dd>
</dl>
<p>For multi-line examples see the next section.</p>
</section>
<section id="multi-token-records">
<h4>Multi-token records<a class="headerlink" href="#multi-token-records" title="Link to this heading"></a></h4>
<dl class="simple">
<dt>echo -e ‘IN TXT two words \n’ | named-rrchecker -p</dt><dd><ul class="simple">
<li><p>Valid TXT RR with two unquoted words and trailing whitespace.</p></li>
<li><p>Output: <code class="docutils literal notranslate"><span class="pre">IN</span>        <span class="pre">TXT</span>     <span class="pre">"two"</span> <span class="pre">"words"</span></code></p></li>
<li><p>Two unquoted words in the input are treated as two <cite><character-string></cite>s per <span class="target" id="index-52"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1035.html#section-3.3.14"><strong>RFC 1035#section-3.3.14</strong></a>.</p></li>
<li><p>Trailing whitespace is omitted from the last <cite><character-string></cite>.</p></li>
</ul>
</dd>
<dt>echo -e ‘IN TXT “two words” \n’ | named-rrchecker -p</dt><dd><ul class="simple">
<li><p>Valid TXT RR with one <cite>character-string</cite> and trailing whitespace.</p></li>
<li><p>Output: <code class="docutils literal notranslate"><span class="pre">IN</span>        <span class="pre">TXT</span>     <span class="pre">"two</span> <span class="pre">words"</span></code></p></li>
</ul>
</dd>
<dt>echo -e ‘IN TXT “problematic newline\n”’ | named-rrchecker -p</dt><dd><ul class="simple">
<li><p>Invalid input - the closing <code class="docutils literal notranslate"><span class="pre">"</span></code> is not detected before the end of the line.</p></li>
</ul>
</dd>
<dt>echo ‘IN TXT “with newline\010”’ | named-rrchecker -p</dt><dd><ul class="simple">
<li><p>Valid input with an escaped newline character inside <cite>character-string</cite>.</p></li>
<li><p>Output: <code class="docutils literal notranslate"><span class="pre">IN</span>        <span class="pre">TXT</span>     <span class="pre">"with</span> <span class="pre">newline\010"</span></code></p></li>
</ul>
</dd>
<dt>echo -e ‘IN TXT ( two\nwords )’ | named-rrchecker -p</dt><dd><ul class="simple">
<li><p>Valid multi-line input with line continuation allowed inside optional parentheses in the RDATA field.</p></li>
<li><p>Output: <code class="docutils literal notranslate"><span class="pre">IN</span>        <span class="pre">TXT</span>     <span class="pre">"two"</span> <span class="pre">"words"</span></code></p></li>
</ul>
</dd>
<dt>echo -e ‘IN TXT ( two\nwords ; misplaced comment )’ | named-rrchecker -p</dt><dd><ul class="simple">
<li><p>Invalid input - comments, starting with “;”, are ignored by the parser, so the closing parenthesis should be before the semicolon.</p></li>
</ul>
</dd>
<dt>echo -e ‘IN TXT ( two\nwords ; a working comment\n )’ | named-rrchecker -p</dt><dd><ul class="simple">
<li><p>Valid input - the comment is terminated with a newline.</p></li>
<li><p>Output: <code class="docutils literal notranslate"><span class="pre">IN</span>        <span class="pre">TXT</span>     <span class="pre">"two"</span> <span class="pre">"words"</span></code></p></li>
</ul>
</dd>
<dt>echo ‘IN HTTPS 1 . alpn=”h2,h3”’ | named-rrchecker -p</dt><dd><ul class="simple">
<li><p>Valid HTTPS record</p></li>
<li><p>Output: <code class="docutils literal notranslate"><span class="pre">IN</span>        <span class="pre">HTTPS</span>   <span class="pre">1</span> <span class="pre">.</span> <span class="pre">alpn="h2,h3"</span></code></p></li>
</ul>
</dd>
<dt>echo -e ‘IN HTTPS ( 1 \n . \n alpn=”dot”)port=853’ | named-rrchecker -p</dt><dd><ul class="simple">
<li><p>Valid HTTPS record with individual sub-fields split across multiple lines
using <span class="target" id="index-53"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1035.html#section-5.1"><strong>RFC 1035#section-5.1</strong></a> parentheses syntax to group data that crosses
a line boundary.</p></li>
<li><p>Note the missing whitespace between the closing parenthesis and adjacent tokens.</p></li>
<li><p>Output: <code class="docutils literal notranslate"><span class="pre">IN</span>        <span class="pre">HTTPS</span>   <span class="pre">1</span> <span class="pre">.</span> <span class="pre">alpn="dot"</span> <span class="pre">port=853</span></code></p></li>
</ul>
</dd>
</dl>
</section>
<section id="unknown-type-handling">
<h4>Unknown type handling<a class="headerlink" href="#unknown-type-handling" title="Link to this heading"></a></h4>
<dl class="simple">
<dt>echo ‘IN A 192.0.2.1’ | named-rrchecker -u</dt><dd><ul class="simple">
<li><p>Valid input in <span class="target" id="index-54"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1035.html"><strong>RFC 1035</strong></a> format.</p></li>
<li><p>Output in <span class="target" id="index-55"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3957.html"><strong>RFC 3957</strong></a> format: <code class="docutils literal notranslate"><span class="pre">CLASS1</span>      <span class="pre">TYPE1</span>   <span class="pre">\#</span> <span class="pre">4</span> <span class="pre">C0000201</span></code></p></li>
</ul>
</dd>
<dt>echo ‘CLASS1 TYPE1 \# 4 C0000201’ | named-rrchecker -p</dt><dd><ul class="simple">
<li><p>Valid input in <span class="target" id="index-56"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3597.html"><strong>RFC 3597</strong></a> format.</p></li>
<li><p>Output in <span class="target" id="index-57"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1035.html"><strong>RFC 1035</strong></a> format: <code class="docutils literal notranslate"><span class="pre">IN</span>  <span class="pre">A</span>       <span class="pre">192.0.2.1</span></code></p></li>
</ul>
</dd>
<dt>echo ‘IN A \# 4 C0000201’ | named-rrchecker -p</dt><dd><ul class="simple">
<li><p>Valid input with class and type in <span class="target" id="index-58"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1035.html"><strong>RFC 1035</strong></a> format and rdata in <span class="target" id="index-59"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3597.html"><strong>RFC 3597</strong></a> format.</p></li>
<li><p>Output in <span class="target" id="index-60"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1035.html"><strong>RFC 1035</strong></a> format: <code class="docutils literal notranslate"><span class="pre">IN</span>  <span class="pre">A</span>       <span class="pre">192.0.2.1</span></code></p></li>
</ul>
</dd>
<dt>echo ‘IN HTTPS 1 . key3=\001\000’ | named-rrchecker -p</dt><dd><ul class="simple">
<li><p>Valid input with <span class="target" id="index-61"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc9460.html"><strong>RFC 9460</strong></a> syntax for an unknown <cite>key3</cite> field. Syntax <code class="docutils literal notranslate"><span class="pre">\001\000</span></code> produces two octets with values 1 and 0, respectively.</p></li>
<li><p>Output: <code class="docutils literal notranslate"><span class="pre">IN</span>        <span class="pre">HTTPS</span>   <span class="pre">1</span> <span class="pre">.</span> <span class="pre">port=256</span></code></p></li>
<li><p><cite>key3</cite> matches the standardized key name <cite>port</cite>.</p></li>
<li><p>Octets 1 and 0 were decoded as integer values in big-endian encoding.</p></li>
</ul>
</dd>
<dt>echo ‘IN HTTPS 1 . key3=\001’ | named-rrchecker -p</dt><dd><ul class="simple">
<li><p>Invalid input - the length of the value for <cite>key3</cite> (i.e. port) does not match the known standard format for that parameter in the SVCB RRTYPE.</p></li>
</ul>
</dd>
<dt>echo ‘IN HTTPS 1 . port=\001\000’ | named-rrchecker -p</dt><dd><ul class="simple">
<li><p>Invalid input - the key <cite>port</cite>, when specified using its standard mnemonic name, <strong>must</strong> use standard key-specific syntax.</p></li>
</ul>
</dd>
</dl>
</section>
<section id="meta-values">
<h4>Meta values<a class="headerlink" href="#meta-values" title="Link to this heading"></a></h4>
<dl class="simple">
<dt>echo ‘IN AXFR’ | named-rrchecker</dt><dd><ul class="simple">
<li><p>Invalid input - AXFR is a meta type, not a genuine RRTYPE.</p></li>
</ul>
</dd>
<dt>echo ‘ANY A 192.0.2.1’ | named-rrchecker</dt><dd><ul class="simple">
<li><p>Invalid input - ANY is meta class, not a true class.</p></li>
</ul>
</dd>
<dt>echo ‘A 192.0.2.1’ | named-rrchecker</dt><dd><ul class="simple">
<li><p>Invalid input - the class field is missing, so the parser would try and fail to interpret the RRTYPE A as the class.</p></li>
</ul>
</dd>
</dl>
</section>
</section>
<section id="id100">
<h3>Return Codes<a class="headerlink" href="#id100" title="Link to this heading"></a></h3>
<dl class="simple">
<dt>0</dt><dd><p>The whole input was parsed as one syntactically valid resource record.</p>
</dd>
<dt>1</dt><dd><p>The input is not a syntactically valid resource record, or the given type is not
supported, or either/both class and type are meta-values, which should not appear in zone files.</p>
</dd>
</dl>
</section>
<section id="id101">
<h3>See Also<a class="headerlink" href="#id101" title="Link to this heading"></a></h3>
<p><span class="target" id="index-62"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1034.html"><strong>RFC 1034</strong></a>, <span class="target" id="index-63"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1035.html"><strong>RFC 1035</strong></a>, <span class="target" id="index-64"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3957.html"><strong>RFC 3957</strong></a>, <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named(8)</span></code></a>.</p>
</section>
</section>
<section id="named-conf-configuration-file-for-named">
<span id="std-iscman-named.conf"></span><h2>named.conf - configuration file for <strong>named</strong><a class="headerlink" href="#named-conf-configuration-file-for-named" title="Link to this heading"></a></h2>
<section id="id102">
<h3>Synopsis<a class="headerlink" href="#id102" title="Link to this heading"></a></h3>
<p><strong class="program">named.conf</strong></p>
</section>
<section id="id103">
<h3>Description<a class="headerlink" href="#id103" title="Link to this heading"></a></h3>
<p><code class="file docutils literal notranslate"><span class="pre">named.conf</span></code> is the configuration file for <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>.</p>
<p>For complete documentation about the configuration statements, please refer to
the Configuration Reference section in the BIND 9 Administrator Reference
Manual.</p>
<p>Statements are enclosed in braces and terminated with a semi-colon.
Clauses in the statements are also semi-colon terminated. The usual
comment styles are supported:</p>
<p>C style: /* */</p>
<p>C++ style: // to end of line</p>
<p>Unix style: # to end of line</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>acl <string> { <address_match_element>; ... }; // may occur multiple times
controls {
inet ( <ipv4_address> | <ipv6_address> | * ) [ port ( <integer> | * ) ] allow { <address_match_element>; ... } [ keys { <string>; ... } ] [ read-only <boolean> ]; // may occur multiple times
unix <quoted_string> perm <integer> owner <integer> group <integer> [ keys { <string>; ... } ] [ read-only <boolean> ]; // may occur multiple times
}; // may occur multiple times
dlz <string> {
database <string>;
search <boolean>;
}; // may occur multiple times
dnssec-policy <string> {
dnskey-ttl <duration>;
keys { ( csk | ksk | zsk ) [ ( key-directory ) ] lifetime <duration_or_unlimited> algorithm <string> [ <integer> ]; ... };
max-zone-ttl <duration>;
nsec3param [ iterations <integer> ] [ optout <boolean> ] [ salt-length <integer> ];
parent-ds-ttl <duration>;
parent-propagation-delay <duration>;
parent-registration-delay <duration>; // obsolete
publish-safety <duration>;
purge-keys <duration>;
retire-safety <duration>;
signatures-jitter <duration>;
signatures-refresh <duration>;
signatures-validity <duration>;
signatures-validity-dnskey <duration>;
zone-propagation-delay <duration>;
}; // may occur multiple times
dyndb <string> <quoted_string> { <unspecified-text> }; // may occur multiple times
http <string> {
endpoints { <quoted_string>; ... };
listener-clients <integer>;
streams-per-connection <integer>;
}; // may occur multiple times
key <string> {
algorithm <string>;
secret <string>;
}; // may occur multiple times
logging {
category <string> { <string>; ... }; // may occur multiple times
channel <string> {
buffered <boolean>;
file <quoted_string> [ versions ( unlimited | <integer> ) ] [ size <size> ] [ suffix ( increment | timestamp ) ];
null;
print-category <boolean>;
print-severity <boolean>;
print-time ( iso8601 | iso8601-utc | local | <boolean> );
severity <log_severity>;
stderr;
syslog [ <syslog_facility> ];
}; // may occur multiple times
};
managed-keys { <string> ( static-key | initial-key | static-ds | initial-ds ) <integer> <integer> <integer> <quoted_string>; ... }; // may occur multiple times, deprecated
options {
allow-new-zones <boolean>;
allow-notify { <address_match_element>; ... };
allow-query { <address_match_element>; ... };
allow-query-cache { <address_match_element>; ... };
allow-query-cache-on { <address_match_element>; ... };
allow-query-on { <address_match_element>; ... };
allow-recursion { <address_match_element>; ... };
allow-recursion-on { <address_match_element>; ... };
allow-transfer [ port <integer> ] [ transport <string> ] { <address_match_element>; ... };
allow-update { <address_match_element>; ... };
allow-update-forwarding { <address_match_element>; ... };
also-notify [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
alt-transfer-source ( <ipv4_address> | * ) ; // deprecated
alt-transfer-source-v6 ( <ipv6_address> | * ) ; // deprecated
answer-cookie <boolean>;
attach-cache <string>;
auth-nxdomain <boolean>;
auto-dnssec ( allow | maintain | off ); // deprecated
automatic-interface-scan <boolean>;
avoid-v4-udp-ports { <portrange>; ... }; // deprecated
avoid-v6-udp-ports { <portrange>; ... }; // deprecated
bindkeys-file <quoted_string>;
blackhole { <address_match_element>; ... };
catalog-zones { zone <string> [ default-primaries [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... } ] [ zone-directory <quoted_string> ] [ in-memory <boolean> ] [ min-update-interval <duration> ]; ... };
check-dup-records ( fail | warn | ignore );
check-integrity <boolean>;
check-mx ( fail | warn | ignore );
check-mx-cname ( fail | warn | ignore );
check-names ( primary | master | secondary | slave | response ) ( fail | warn | ignore ); // may occur multiple times
check-sibling <boolean>;
check-spf ( warn | ignore );
check-srv-cname ( fail | warn | ignore );
check-wildcard <boolean>;
clients-per-query <integer>;
cookie-algorithm ( aes | siphash24 );
cookie-secret <string>; // may occur multiple times
coresize ( default | unlimited | <sizeval> ); // deprecated
datasize ( default | unlimited | <sizeval> ); // deprecated
deny-answer-addresses { <address_match_element>; ... } [ except-from { <string>; ... } ];
deny-answer-aliases { <string>; ... } [ except-from { <string>; ... } ];
dialup ( notify | notify-passive | passive | refresh | <boolean> ); // deprecated
directory <quoted_string>;
disable-algorithms <string> { <string>; ... }; // may occur multiple times
disable-ds-digests <string> { <string>; ... }; // may occur multiple times
disable-empty-zone <string>; // may occur multiple times
dns64 <netprefix> {
break-dnssec <boolean>;
clients { <address_match_element>; ... };
exclude { <address_match_element>; ... };
mapped { <address_match_element>; ... };
recursive-only <boolean>;
suffix <ipv6_address>;
}; // may occur multiple times
dns64-contact <string>;
dns64-server <string>;
dnskey-sig-validity <integer>;
dnsrps-enable <boolean>; // not configured
dnsrps-options { <unspecified-text> }; // not configured
dnssec-accept-expired <boolean>;
dnssec-dnskey-kskonly <boolean>;
dnssec-loadkeys-interval <integer>;
dnssec-must-be-secure <string> <boolean>; // may occur multiple times, deprecated
dnssec-policy <string>;
dnssec-secure-to-insecure <boolean>;
dnssec-update-mode ( maintain | no-resign );
dnssec-validation ( yes | no | auto );
dnstap { ( all | auth | client | forwarder | resolver | update ) [ ( query | response ) ]; ... }; // not configured
dnstap-identity ( <quoted_string> | none | hostname ); // not configured
dnstap-output ( file | unix ) <quoted_string> [ size ( unlimited | <size> ) ] [ versions ( unlimited | <integer> ) ] [ suffix ( increment | timestamp ) ]; // not configured
dnstap-version ( <quoted_string> | none ); // not configured
dscp <integer>; // obsolete
dual-stack-servers [ port <integer> ] { ( <quoted_string> [ port <integer> ] | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ); ... };
dump-file <quoted_string>;
edns-udp-size <integer>;
empty-contact <string>;
empty-server <string>;
empty-zones-enable <boolean>;
fetch-quota-params <integer> <fixedpoint> <fixedpoint> <fixedpoint>;
fetches-per-server <integer> [ ( drop | fail ) ];
fetches-per-zone <integer> [ ( drop | fail ) ];
files ( default | unlimited | <sizeval> ); // deprecated
flush-zones-on-shutdown <boolean>;
forward ( first | only );
forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ]; ... };
fstrm-set-buffer-hint <integer>; // not configured
fstrm-set-flush-timeout <integer>; // not configured
fstrm-set-input-queue-size <integer>; // not configured
fstrm-set-output-notify-threshold <integer>; // not configured
fstrm-set-output-queue-model ( mpsc | spsc ); // not configured
fstrm-set-output-queue-size <integer>; // not configured
fstrm-set-reopen-interval <duration>; // not configured
geoip-directory ( <quoted_string> | none );
glue-cache <boolean>; // deprecated
heartbeat-interval <integer>; // deprecated
hostname ( <quoted_string> | none );
http-listener-clients <integer>;
http-port <integer>;
http-streams-per-connection <integer>;
https-port <integer>;
interface-interval <duration>;
ipv4only-contact <string>;
ipv4only-enable <boolean>;
ipv4only-server <string>;
ixfr-from-differences ( primary | master | secondary | slave | <boolean> );
keep-response-order { <address_match_element>; ... };
key-directory <quoted_string>;
lame-ttl <duration>;
listen-on [ port <integer> ] [ tls <string> ] [ http <string> ] { <address_match_element>; ... }; // may occur multiple times
listen-on-v6 [ port <integer> ] [ tls <string> ] [ http <string> ] { <address_match_element>; ... }; // may occur multiple times
lmdb-mapsize <sizeval>;
lock-file ( <quoted_string> | none );
managed-keys-directory <quoted_string>;
masterfile-format ( raw | text );
masterfile-style ( full | relative );
match-mapped-addresses <boolean>;
max-cache-size ( default | unlimited | <sizeval> | <percentage> );
max-cache-ttl <duration>;
max-clients-per-query <integer>;
max-ixfr-ratio ( unlimited | <percentage> );
max-journal-size ( default | unlimited | <sizeval> );
max-ncache-ttl <duration>;
max-query-count <integer>;
max-query-restarts <integer>;
max-records <integer>;
max-records-per-type <integer>;
max-recursion-depth <integer>;
max-recursion-queries <integer>;
max-refresh-time <integer>;
max-retry-time <integer>;
max-rsa-exponent-size <integer>;
max-stale-ttl <duration>;
max-transfer-idle-in <integer>;
max-transfer-idle-out <integer>;
max-transfer-time-in <integer>;
max-transfer-time-out <integer>;
max-types-per-name <integer>;
max-udp-size <integer>;
max-zone-ttl ( unlimited | <duration> );
memstatistics <boolean>;
memstatistics-file <quoted_string>;
message-compression <boolean>;
min-cache-ttl <duration>;
min-ncache-ttl <duration>;
min-refresh-time <integer>;
min-retry-time <integer>;
minimal-any <boolean>;
minimal-responses ( no-auth | no-auth-recursive | <boolean> );
multi-master <boolean>;
new-zones-directory <quoted_string>;
no-case-compress { <address_match_element>; ... };
nocookie-udp-size <integer>;
notify ( explicit | master-only | primary-only | <boolean> );
notify-delay <integer>;
notify-rate <integer>;
notify-source ( <ipv4_address> | * ) ;
notify-source-v6 ( <ipv6_address> | * ) ;
notify-to-soa <boolean>;
nsec3-test-zone <boolean>; // test only
nta-lifetime <duration>;
nta-recheck <duration>;
nxdomain-redirect <string>;
parental-source ( <ipv4_address> | * ) ;
parental-source-v6 ( <ipv6_address> | * ) ;
pid-file ( <quoted_string> | none );
port <integer>;
preferred-glue <string>;
prefetch <integer> [ <integer> ];
provide-ixfr <boolean>;
qname-minimization ( strict | relaxed | disabled | off );
query-source [ address ] ( <ipv4_address> | * );
query-source-v6 [ address ] ( <ipv6_address> | * );
querylog <boolean>;
random-device ( <quoted_string> | none ); // obsolete
rate-limit {
all-per-second <integer>;
errors-per-second <integer>;
exempt-clients { <address_match_element>; ... };
ipv4-prefix-length <integer>;
ipv6-prefix-length <integer>;
log-only <boolean>;
max-table-size <integer>;
min-table-size <integer>;
nodata-per-second <integer>;
nxdomains-per-second <integer>;
qps-scale <integer>;
referrals-per-second <integer>;
responses-per-second <integer>;
slip <integer>;
window <integer>;
};
recursing-file <quoted_string>;
recursion <boolean>;
recursive-clients <integer>;
request-expire <boolean>;
request-ixfr <boolean>;
request-nsid <boolean>;
require-server-cookie <boolean>;
reserved-sockets <integer>; // deprecated
resolver-nonbackoff-tries <integer>; // deprecated
resolver-query-timeout <integer>;
resolver-retry-interval <integer>; // deprecated
response-padding { <address_match_element>; ... } block-size <integer>;
response-policy { zone <string> [ add-soa <boolean> ] [ log <boolean> ] [ max-policy-ttl <duration> ] [ min-update-interval <duration> ] [ policy ( cname | disabled | drop | given | no-op | nodata | nxdomain | passthru | tcp-only <quoted_string> ) ] [ recursive-only <boolean> ] [ nsip-enable <boolean> ] [ nsdname-enable <boolean> ]; ... } [ add-soa <boolean> ] [ break-dnssec <boolean> ] [ max-policy-ttl <duration> ] [ min-update-interval <duration> ] [ min-ns-dots <integer> ] [ nsip-wait-recurse <boolean> ] [ nsdname-wait-recurse <boolean> ] [ qname-wait-recurse <boolean> ] [ recursive-only <boolean> ] [ nsip-enable <boolean> ] [ nsdname-enable <boolean> ] [ dnsrps-enable <boolean> ] [ dnsrps-options { <unspecified-text> } ];
reuseport <boolean>;
root-delegation-only [ exclude { <string>; ... } ]; // deprecated
root-key-sentinel <boolean>;
rrset-order { [ class <string> ] [ type <string> ] [ name <quoted_string> ] <string> <string>; ... };
secroots-file <quoted_string>;
send-cookie <boolean>;
serial-query-rate <integer>;
serial-update-method ( date | increment | unixtime );
server-id ( <quoted_string> | none | hostname );
servfail-ttl <duration>;
session-keyalg <string>;
session-keyfile ( <quoted_string> | none );
session-keyname <string>;
sig-signing-nodes <integer>;
sig-signing-signatures <integer>;
sig-signing-type <integer>;
sig-validity-interval <integer> [ <integer> ];
sortlist { <address_match_element>; ... };
stacksize ( default | unlimited | <sizeval> ); // deprecated
stale-answer-client-timeout ( disabled | off | <integer> );
stale-answer-enable <boolean>;
stale-answer-ttl <duration>;
stale-cache-enable <boolean>;
stale-refresh-time <duration>;
startup-notify-rate <integer>;
statistics-file <quoted_string>;
suppress-initial-notify <boolean>; // obsolete
synth-from-dnssec <boolean>;
tcp-advertised-timeout <integer>;
tcp-clients <integer>;
tcp-idle-timeout <integer>;
tcp-initial-timeout <integer>;
tcp-keepalive-timeout <integer>;
tcp-listen-queue <integer>;
tcp-receive-buffer <integer>;
tcp-send-buffer <integer>;
tkey-dhkey <quoted_string> <integer>; // deprecated
tkey-domain <quoted_string>;
tkey-gssapi-credential <quoted_string>;
tkey-gssapi-keytab <quoted_string>;
tls-port <integer>;
transfer-format ( many-answers | one-answer );
transfer-message-size <integer>;
transfer-source ( <ipv4_address> | * ) ;
transfer-source-v6 ( <ipv6_address> | * ) ;
transfers-in <integer>;
transfers-out <integer>;
transfers-per-ns <integer>;
trust-anchor-telemetry <boolean>;
try-tcp-refresh <boolean>;
udp-receive-buffer <integer>;
udp-send-buffer <integer>;
update-check-ksk <boolean>;
update-quota <integer>;
use-alt-transfer-source <boolean>; // deprecated
use-v4-udp-ports { <portrange>; ... }; // deprecated
use-v6-udp-ports { <portrange>; ... }; // deprecated
v6-bias <integer>;
validate-except { <string>; ... };
version ( <quoted_string> | none );
zero-no-soa-ttl <boolean>;
zero-no-soa-ttl-cache <boolean>;
zone-statistics ( full | terse | none | <boolean> );
};
parental-agents <string> [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... }; // may occur multiple times
plugin ( query ) <string> [ { <unspecified-text> } ]; // may occur multiple times
primaries <string> [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... }; // may occur multiple times
server <netprefix> {
bogus <boolean>;
edns <boolean>;
edns-udp-size <integer>;
edns-version <integer>;
keys <server_key>;
max-udp-size <integer>;
notify-source ( <ipv4_address> | * ) ;
notify-source-v6 ( <ipv6_address> | * ) ;
padding <integer>;
provide-ixfr <boolean>;
query-source [ address ] ( <ipv4_address> | * );
query-source-v6 [ address ] ( <ipv6_address> | * );
request-expire <boolean>;
request-ixfr <boolean>;
request-nsid <boolean>;
send-cookie <boolean>;
tcp-keepalive <boolean>;
tcp-only <boolean>;
transfer-format ( many-answers | one-answer );
transfer-source ( <ipv4_address> | * ) ;
transfer-source-v6 ( <ipv6_address> | * ) ;
transfers <integer>;
}; // may occur multiple times
statistics-channels {
inet ( <ipv4_address> | <ipv6_address> | * ) [ port ( <integer> | * ) ] [ allow { <address_match_element>; ... } ]; // may occur multiple times
}; // may occur multiple times
tls <string> {
ca-file <quoted_string>;
cert-file <quoted_string>;
ciphers <string>;
dhparam-file <quoted_string>;
key-file <quoted_string>;
prefer-server-ciphers <boolean>;
protocols { <string>; ... };
remote-hostname <quoted_string>;
session-tickets <boolean>;
}; // may occur multiple times
trust-anchors { <string> ( static-key | initial-key | static-ds | initial-ds ) <integer> <integer> <integer> <quoted_string>; ... }; // may occur multiple times
trusted-keys { <string> <integer> <integer> <integer> <quoted_string>; ... }; // may occur multiple times, deprecated
view <string> [ <class> ] {
allow-new-zones <boolean>;
allow-notify { <address_match_element>; ... };
allow-query { <address_match_element>; ... };
allow-query-cache { <address_match_element>; ... };
allow-query-cache-on { <address_match_element>; ... };
allow-query-on { <address_match_element>; ... };
allow-recursion { <address_match_element>; ... };
allow-recursion-on { <address_match_element>; ... };
allow-transfer [ port <integer> ] [ transport <string> ] { <address_match_element>; ... };
allow-update { <address_match_element>; ... };
allow-update-forwarding { <address_match_element>; ... };
also-notify [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... };
alt-transfer-source ( <ipv4_address> | * ) ; // deprecated
alt-transfer-source-v6 ( <ipv6_address> | * ) ; // deprecated
attach-cache <string>;
auth-nxdomain <boolean>;
auto-dnssec ( allow | maintain | off ); // deprecated
catalog-zones { zone <string> [ default-primaries [ port <integer> ] { ( <remote-servers> | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ) [ key <string> ] [ tls <string> ]; ... } ] [ zone-directory <quoted_string> ] [ in-memory <boolean> ] [ min-update-interval <duration> ]; ... };
check-dup-records ( fail | warn | ignore );
check-integrity <boolean>;
check-mx ( fail | warn | ignore );
check-mx-cname ( fail | warn | ignore );
check-names ( primary | master | secondary | slave | response ) ( fail | warn | ignore ); // may occur multiple times
check-sibling <boolean>;
check-spf ( warn | ignore );
check-srv-cname ( fail | warn | ignore );
check-wildcard <boolean>;
clients-per-query <integer>;
deny-answer-addresses { <address_match_element>; ... } [ except-from { <string>; ... } ];
deny-answer-aliases { <string>; ... } [ except-from { <string>; ... } ];
dialup ( notify | notify-passive | passive | refresh | <boolean> ); // deprecated
disable-algorithms <string> { <string>; ... }; // may occur multiple times
disable-ds-digests <string> { <string>; ... }; // may occur multiple times
disable-empty-zone <string>; // may occur multiple times
dlz <string> {
database <string>;
search <boolean>;
}; // may occur multiple times
dns64 <netprefix> {
break-dnssec <boolean>;
clients { <address_match_element>; ... };
exclude { <address_match_element>; ... };
mapped { <address_match_element>; ... };
recursive-only <boolean>;
suffix <ipv6_address>;
}; // may occur multiple times
dns64-contact <string>;
dns64-server <string>;
dnskey-sig-validity <integer>;
dnsrps-enable <boolean>; // not configured
dnsrps-options { <unspecified-text> }; // not configured
dnssec-accept-expired <boolean>;
dnssec-dnskey-kskonly <boolean>;
dnssec-loadkeys-interval <integer>;
dnssec-must-be-secure <string> <boolean>; // may occur multiple times, deprecated
dnssec-policy <string>;
dnssec-secure-to-insecure <boolean>;
dnssec-update-mode ( maintain | no-resign );
dnssec-validation ( yes | no | auto );
dnstap { ( all | auth | client | forwarder | resolver | update ) [ ( query | response ) ]; ... }; // not configured
dual-stack-servers [ port <integer> ] { ( <quoted_string> [ port <integer> ] | <ipv4_address> [ port <integer> ] | <ipv6_address> [ port <integer> ] ); ... };
dyndb <string> <quoted_string> { <unspecified-text> }; // may occur multiple times
edns-udp-size <integer>;
empty-contact <string>;
empty-server <string>;
empty-zones-enable <boolean>;
fetch-quota-params <integer> <fixedpoint> <fixedpoint> <fixedpoint>;
fetches-per-server <integer> [ ( drop | fail ) ];
fetches-per-zone <integer> [ ( drop | fail ) ];
forward ( first | only );
forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ]; ... };
glue-cache <boolean>; // deprecated
ipv4only-contact <string>;
ipv4only-enable <boolean>;
ipv4only-server <string>;
ixfr-from-differences ( primary | master | secondary | slave | <boolean> );
key <string> {
algorithm <string>;
secret <string>;
}; // may occur multiple times
key-directory <quoted_string>;
lame-ttl <duration>;
lmdb-mapsize <sizeval>;
managed-keys { <string> ( static-key | initial-key | static-ds | initial-ds ) <integer> <integer> <integer> <quoted_string>; ... }; // may occur multiple times, deprecated
masterfile-format ( raw | text );
masterfile-style ( full | relative );
match-clients { <address_match_element>; ... };
match-destinations { <address_match_element>; ... };
match-recursive-only <boolean>;
max-cache-size ( default | unlimited | <sizeval> | <percentage> );
max-cache-ttl <duration>;
max-clients-per-query <integer>;
max-ixfr-ratio ( unlimited | <percentage> );
max-journal-size ( default | unlimited | <sizeval> );
max-ncache-ttl <duration>;
max-query-count <integer>;
max-query-restarts <integer>;
max-records <integer>;
max-records-per-type <integer>;
max-recursion-depth <integer>;
max-recursion-queries <integer>;
max-refresh-time <integer>;
max-retry-time <integer>;
max-stale-ttl <duration>;
max-transfer-idle-in <integer>;
max-transfer-idle-out <integer>;
max-transfer-time-in <integer>;
max-transfer-time-out <integer>;
max-types-per-name <integer>;
max-udp-size <integer>;
max-zone-ttl ( unlimited | <duration> );
message-compression <boolean>;
min-cache-ttl <duration>;
min-ncache-ttl <duration>;
min-refresh-time <integer>;
min-retry-time <integer>;
minimal-any <boolean>;
minimal-responses ( no-auth | no-auth-recursive | <boolean> );
multi-master <boolean>;
new-zones-directory <quoted_string>;
no-case-compress { <address_match_element>; ... };
nocookie-udp-size <integer>;
notify ( explicit | master-only | primary-only | <boolean> );
notify-delay <integer>;
notify-source ( <ipv4_address> | * ) ;
notify-source-v6 ( <ipv6_address> | * ) ;
notify-to-soa <boolean>;
nsec3-test-zone <boolean>; // test only
nta-lifetime <duration>;
nta-recheck <duration>;
nxdomain-redirect <string>;
parental-source ( <ipv4_address> | * ) ;
parental-source-v6 ( <ipv6_address> | * ) ;
plugin ( query ) <string> [ { <unspecified-text> } ]; // may occur multiple times
preferred-glue <string>;
prefetch <integer> [ <integer> ];
provide-ixfr <boolean>;
qname-minimization ( strict | relaxed | disabled | off );
query-source [ address ] ( <ipv4_address> | * );
query-source-v6 [ address ] ( <ipv6_address> | * );
rate-limit {
all-per-second <integer>;
errors-per-second <integer>;
exempt-clients { <address_match_element>; ... };
ipv4-prefix-length <integer>;
ipv6-prefix-length <integer>;
log-only <boolean>;
max-table-size <integer>;
min-table-size <integer>;
nodata-per-second <integer>;
nxdomains-per-second <integer>;
qps-scale <integer>;
referrals-per-second <integer>;
responses-per-second <integer>;
slip <integer>;
window <integer>;
};
recursion <boolean>;
request-expire <boolean>;
request-ixfr <boolean>;
request-nsid <boolean>;
require-server-cookie <boolean>;
resolver-nonbackoff-tries <integer>; // deprecated
resolver-query-timeout <integer>;
resolver-retry-interval <integer>; // deprecated
response-padding { <address_match_element>; ... } block-size <integer>;
response-policy { zone <string> [ add-soa <boolean> ] [ log <boolean> ] [ max-policy-ttl <duration> ] [ min-update-interval <duration> ] [ policy ( cname | disabled | drop | given | no-op | nodata | nxdomain | passthru | tcp-only <quoted_string> ) ] [ recursive-only <boolean> ] [ nsip-enable <boolean> ] [ nsdname-enable <boolean> ]; ... } [ add-soa <boolean> ] [ break-dnssec <boolean> ] [ max-policy-ttl <duration> ] [ min-update-interval <duration> ] [ min-ns-dots <integer> ] [ nsip-wait-recurse <boolean> ] [ nsdname-wait-recurse <boolean> ] [ qname-wait-recurse <boolean> ] [ recursive-only <boolean> ] [ nsip-enable <boolean> ] [ nsdname-enable <boolean> ] [ dnsrps-enable <boolean> ] [ dnsrps-options { <unspecified-text> } ];
root-delegation-only [ exclude { <string>; ... } ]; // deprecated
root-key-sentinel <boolean>;
rrset-order { [ class <string> ] [ type <string> ] [ name <quoted_string> ] <string> <string>; ... };
send-cookie <boolean>;
serial-update-method ( date | increment | unixtime );
server <netprefix> {
bogus <boolean>;
edns <boolean>;
edns-udp-size <integer>;
edns-version <integer>;
keys <server_key>;
max-udp-size <integer>;
notify-source ( <ipv4_address> | * ) ;
notify-source-v6 ( <ipv6_address> | * ) ;
padding <integer>;
provide-ixfr <boolean>;
query-source [ address ] ( <ipv4_address> | * );
query-source-v6 [ address ] ( <ipv6_address> | * );
request-expire <boolean>;
request-ixfr <boolean>;
request-nsid <boolean>;
send-cookie <boolean>;
tcp-keepalive <boolean>;
tcp-only <boolean>;
transfer-format ( many-answers | one-answer );
transfer-source ( <ipv4_address> | * ) ;
transfer-source-v6 ( <ipv6_address> | * ) ;
transfers <integer>;
}; // may occur multiple times
servfail-ttl <duration>;
sig-signing-nodes <integer>;
sig-signing-signatures <integer>;
sig-signing-type <integer>;
sig-validity-interval <integer> [ <integer> ];
sortlist { <address_match_element>; ... };
stale-answer-client-timeout ( disabled | off | <integer> );
stale-answer-enable <boolean>;
stale-answer-ttl <duration>;
stale-cache-enable <boolean>;
stale-refresh-time <duration>;
suppress-initial-notify <boolean>; // obsolete
synth-from-dnssec <boolean>;
transfer-format ( many-answers | one-answer );
transfer-source ( <ipv4_address> | * ) ;
transfer-source-v6 ( <ipv6_address> | * ) ;
trust-anchor-telemetry <boolean>;
trust-anchors { <string> ( static-key | initial-key | static-ds | initial-ds ) <integer> <integer> <integer> <quoted_string>; ... }; // may occur multiple times
trusted-keys { <string> <integer> <integer> <integer> <quoted_string>; ... }; // may occur multiple times, deprecated
try-tcp-refresh <boolean>;
update-check-ksk <boolean>;
use-alt-transfer-source <boolean>; // deprecated
v6-bias <integer>;
validate-except { <string>; ... };
zero-no-soa-ttl <boolean>;
zero-no-soa-ttl-cache <boolean>;
zone-statistics ( full | terse | none | <boolean> );
}; // may occur multiple times
</pre></div>
</div>
<p>Any of these zone statements can also be set inside the view statement.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">zone</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">[</span> <span class="o"><</span><span class="n">class</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span>
<span class="nb">type</span> <span class="n">primary</span><span class="p">;</span>
<span class="n">allow</span><span class="o">-</span><span class="n">query</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">allow</span><span class="o">-</span><span class="n">query</span><span class="o">-</span><span class="n">on</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">allow</span><span class="o">-</span><span class="n">transfer</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">[</span> <span class="n">transport</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">allow</span><span class="o">-</span><span class="n">update</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">also</span><span class="o">-</span><span class="n">notify</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span> <span class="p">(</span> <span class="o"><</span><span class="n">remote</span><span class="o">-</span><span class="n">servers</span><span class="o">></span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">)</span> <span class="p">[</span> <span class="n">key</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">]</span> <span class="p">[</span> <span class="n">tls</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">];</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">alt</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">source</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span> <span class="o">//</span> <span class="n">deprecated</span>
<span class="n">alt</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">v6</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span> <span class="o">//</span> <span class="n">deprecated</span>
<span class="n">auto</span><span class="o">-</span><span class="n">dnssec</span> <span class="p">(</span> <span class="n">allow</span> <span class="o">|</span> <span class="n">maintain</span> <span class="o">|</span> <span class="n">off</span> <span class="p">);</span> <span class="o">//</span> <span class="n">deprecated</span>
<span class="n">check</span><span class="o">-</span><span class="n">dup</span><span class="o">-</span><span class="n">records</span> <span class="p">(</span> <span class="n">fail</span> <span class="o">|</span> <span class="n">warn</span> <span class="o">|</span> <span class="n">ignore</span> <span class="p">);</span>
<span class="n">check</span><span class="o">-</span><span class="n">integrity</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">check</span><span class="o">-</span><span class="n">mx</span> <span class="p">(</span> <span class="n">fail</span> <span class="o">|</span> <span class="n">warn</span> <span class="o">|</span> <span class="n">ignore</span> <span class="p">);</span>
<span class="n">check</span><span class="o">-</span><span class="n">mx</span><span class="o">-</span><span class="n">cname</span> <span class="p">(</span> <span class="n">fail</span> <span class="o">|</span> <span class="n">warn</span> <span class="o">|</span> <span class="n">ignore</span> <span class="p">);</span>
<span class="n">check</span><span class="o">-</span><span class="n">names</span> <span class="p">(</span> <span class="n">fail</span> <span class="o">|</span> <span class="n">warn</span> <span class="o">|</span> <span class="n">ignore</span> <span class="p">);</span>
<span class="n">check</span><span class="o">-</span><span class="n">sibling</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">check</span><span class="o">-</span><span class="n">spf</span> <span class="p">(</span> <span class="n">warn</span> <span class="o">|</span> <span class="n">ignore</span> <span class="p">);</span>
<span class="n">check</span><span class="o">-</span><span class="n">srv</span><span class="o">-</span><span class="n">cname</span> <span class="p">(</span> <span class="n">fail</span> <span class="o">|</span> <span class="n">warn</span> <span class="o">|</span> <span class="n">ignore</span> <span class="p">);</span>
<span class="n">check</span><span class="o">-</span><span class="n">wildcard</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">database</span> <span class="o"><</span><span class="n">string</span><span class="o">></span><span class="p">;</span>
<span class="n">dialup</span> <span class="p">(</span> <span class="n">notify</span> <span class="o">|</span> <span class="n">notify</span><span class="o">-</span><span class="n">passive</span> <span class="o">|</span> <span class="n">passive</span> <span class="o">|</span> <span class="n">refresh</span> <span class="o">|</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span> <span class="p">);</span> <span class="o">//</span> <span class="n">deprecated</span>
<span class="n">dlz</span> <span class="o"><</span><span class="n">string</span><span class="o">></span><span class="p">;</span>
<span class="n">dnskey</span><span class="o">-</span><span class="n">sig</span><span class="o">-</span><span class="n">validity</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="n">dnssec</span><span class="o">-</span><span class="n">dnskey</span><span class="o">-</span><span class="n">kskonly</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">dnssec</span><span class="o">-</span><span class="n">loadkeys</span><span class="o">-</span><span class="n">interval</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="n">dnssec</span><span class="o">-</span><span class="n">policy</span> <span class="o"><</span><span class="n">string</span><span class="o">></span><span class="p">;</span>
<span class="n">dnssec</span><span class="o">-</span><span class="n">secure</span><span class="o">-</span><span class="n">to</span><span class="o">-</span><span class="n">insecure</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">dnssec</span><span class="o">-</span><span class="n">update</span><span class="o">-</span><span class="n">mode</span> <span class="p">(</span> <span class="n">maintain</span> <span class="o">|</span> <span class="n">no</span><span class="o">-</span><span class="n">resign</span> <span class="p">);</span>
<span class="n">file</span> <span class="o"><</span><span class="n">quoted_string</span><span class="o">></span><span class="p">;</span>
<span class="n">forward</span> <span class="p">(</span> <span class="n">first</span> <span class="o">|</span> <span class="n">only</span> <span class="p">);</span>
<span class="n">forwarders</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="p">)</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">];</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">inline</span><span class="o">-</span><span class="n">signing</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">ixfr</span><span class="o">-</span><span class="n">from</span><span class="o">-</span><span class="n">differences</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">journal</span> <span class="o"><</span><span class="n">quoted_string</span><span class="o">></span><span class="p">;</span>
<span class="n">key</span><span class="o">-</span><span class="n">directory</span> <span class="o"><</span><span class="n">quoted_string</span><span class="o">></span><span class="p">;</span>
<span class="n">masterfile</span><span class="o">-</span><span class="nb">format</span> <span class="p">(</span> <span class="n">raw</span> <span class="o">|</span> <span class="n">text</span> <span class="p">);</span>
<span class="n">masterfile</span><span class="o">-</span><span class="n">style</span> <span class="p">(</span> <span class="n">full</span> <span class="o">|</span> <span class="n">relative</span> <span class="p">);</span>
<span class="nb">max</span><span class="o">-</span><span class="n">ixfr</span><span class="o">-</span><span class="n">ratio</span> <span class="p">(</span> <span class="n">unlimited</span> <span class="o">|</span> <span class="o"><</span><span class="n">percentage</span><span class="o">></span> <span class="p">);</span>
<span class="nb">max</span><span class="o">-</span><span class="n">journal</span><span class="o">-</span><span class="n">size</span> <span class="p">(</span> <span class="n">default</span> <span class="o">|</span> <span class="n">unlimited</span> <span class="o">|</span> <span class="o"><</span><span class="n">sizeval</span><span class="o">></span> <span class="p">);</span>
<span class="nb">max</span><span class="o">-</span><span class="n">records</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">records</span><span class="o">-</span><span class="n">per</span><span class="o">-</span><span class="nb">type</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">idle</span><span class="o">-</span><span class="n">out</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">time</span><span class="o">-</span><span class="n">out</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">types</span><span class="o">-</span><span class="n">per</span><span class="o">-</span><span class="n">name</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">zone</span><span class="o">-</span><span class="n">ttl</span> <span class="p">(</span> <span class="n">unlimited</span> <span class="o">|</span> <span class="o"><</span><span class="n">duration</span><span class="o">></span> <span class="p">);</span>
<span class="n">notify</span> <span class="p">(</span> <span class="n">explicit</span> <span class="o">|</span> <span class="n">master</span><span class="o">-</span><span class="n">only</span> <span class="o">|</span> <span class="n">primary</span><span class="o">-</span><span class="n">only</span> <span class="o">|</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span> <span class="p">);</span>
<span class="n">notify</span><span class="o">-</span><span class="n">delay</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="n">notify</span><span class="o">-</span><span class="n">source</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span>
<span class="n">notify</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">v6</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span>
<span class="n">notify</span><span class="o">-</span><span class="n">to</span><span class="o">-</span><span class="n">soa</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">nsec3</span><span class="o">-</span><span class="n">test</span><span class="o">-</span><span class="n">zone</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span> <span class="o">//</span> <span class="n">test</span> <span class="n">only</span>
<span class="n">parental</span><span class="o">-</span><span class="n">agents</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span> <span class="p">(</span> <span class="o"><</span><span class="n">remote</span><span class="o">-</span><span class="n">servers</span><span class="o">></span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">)</span> <span class="p">[</span> <span class="n">key</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">]</span> <span class="p">[</span> <span class="n">tls</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">];</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">parental</span><span class="o">-</span><span class="n">source</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span>
<span class="n">parental</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">v6</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span>
<span class="n">serial</span><span class="o">-</span><span class="n">update</span><span class="o">-</span><span class="n">method</span> <span class="p">(</span> <span class="n">date</span> <span class="o">|</span> <span class="n">increment</span> <span class="o">|</span> <span class="n">unixtime</span> <span class="p">);</span>
<span class="n">sig</span><span class="o">-</span><span class="n">signing</span><span class="o">-</span><span class="n">nodes</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="n">sig</span><span class="o">-</span><span class="n">signing</span><span class="o">-</span><span class="n">signatures</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="n">sig</span><span class="o">-</span><span class="n">signing</span><span class="o">-</span><span class="nb">type</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="n">sig</span><span class="o">-</span><span class="n">validity</span><span class="o">-</span><span class="n">interval</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">[</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">];</span>
<span class="n">update</span><span class="o">-</span><span class="n">check</span><span class="o">-</span><span class="n">ksk</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">update</span><span class="o">-</span><span class="n">policy</span> <span class="p">(</span> <span class="n">local</span> <span class="o">|</span> <span class="p">{</span> <span class="p">(</span> <span class="n">deny</span> <span class="o">|</span> <span class="n">grant</span> <span class="p">)</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">(</span> <span class="mi">6</span><span class="n">to4</span><span class="o">-</span><span class="bp">self</span> <span class="o">|</span> <span class="n">external</span> <span class="o">|</span> <span class="n">krb5</span><span class="o">-</span><span class="bp">self</span> <span class="o">|</span> <span class="n">krb5</span><span class="o">-</span><span class="n">selfsub</span> <span class="o">|</span> <span class="n">krb5</span><span class="o">-</span><span class="n">subdomain</span> <span class="o">|</span> <span class="n">krb5</span><span class="o">-</span><span class="n">subdomain</span><span class="o">-</span><span class="bp">self</span><span class="o">-</span><span class="n">rhs</span> <span class="o">|</span> <span class="n">ms</span><span class="o">-</span><span class="bp">self</span> <span class="o">|</span> <span class="n">ms</span><span class="o">-</span><span class="n">selfsub</span> <span class="o">|</span> <span class="n">ms</span><span class="o">-</span><span class="n">subdomain</span> <span class="o">|</span> <span class="n">ms</span><span class="o">-</span><span class="n">subdomain</span><span class="o">-</span><span class="bp">self</span><span class="o">-</span><span class="n">rhs</span> <span class="o">|</span> <span class="n">name</span> <span class="o">|</span> <span class="bp">self</span> <span class="o">|</span> <span class="n">selfsub</span> <span class="o">|</span> <span class="n">selfwild</span> <span class="o">|</span> <span class="n">subdomain</span> <span class="o">|</span> <span class="n">tcp</span><span class="o">-</span><span class="bp">self</span> <span class="o">|</span> <span class="n">wildcard</span> <span class="o">|</span> <span class="n">zonesub</span> <span class="p">)</span> <span class="p">[</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">]</span> <span class="o"><</span><span class="n">rrtypelist</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">}</span> <span class="p">);</span>
<span class="n">zero</span><span class="o">-</span><span class="n">no</span><span class="o">-</span><span class="n">soa</span><span class="o">-</span><span class="n">ttl</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">zone</span><span class="o">-</span><span class="n">statistics</span> <span class="p">(</span> <span class="n">full</span> <span class="o">|</span> <span class="n">terse</span> <span class="o">|</span> <span class="n">none</span> <span class="o">|</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span> <span class="p">);</span>
<span class="p">};</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">zone</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">[</span> <span class="o"><</span><span class="n">class</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span>
<span class="nb">type</span> <span class="n">secondary</span><span class="p">;</span>
<span class="n">allow</span><span class="o">-</span><span class="n">notify</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">allow</span><span class="o">-</span><span class="n">query</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">allow</span><span class="o">-</span><span class="n">query</span><span class="o">-</span><span class="n">on</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">allow</span><span class="o">-</span><span class="n">transfer</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">[</span> <span class="n">transport</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">allow</span><span class="o">-</span><span class="n">update</span><span class="o">-</span><span class="n">forwarding</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">also</span><span class="o">-</span><span class="n">notify</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span> <span class="p">(</span> <span class="o"><</span><span class="n">remote</span><span class="o">-</span><span class="n">servers</span><span class="o">></span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">)</span> <span class="p">[</span> <span class="n">key</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">]</span> <span class="p">[</span> <span class="n">tls</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">];</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">alt</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">source</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span> <span class="o">//</span> <span class="n">deprecated</span>
<span class="n">alt</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">v6</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span> <span class="o">//</span> <span class="n">deprecated</span>
<span class="n">auto</span><span class="o">-</span><span class="n">dnssec</span> <span class="p">(</span> <span class="n">allow</span> <span class="o">|</span> <span class="n">maintain</span> <span class="o">|</span> <span class="n">off</span> <span class="p">);</span> <span class="o">//</span> <span class="n">deprecated</span>
<span class="n">check</span><span class="o">-</span><span class="n">names</span> <span class="p">(</span> <span class="n">fail</span> <span class="o">|</span> <span class="n">warn</span> <span class="o">|</span> <span class="n">ignore</span> <span class="p">);</span>
<span class="n">database</span> <span class="o"><</span><span class="n">string</span><span class="o">></span><span class="p">;</span>
<span class="n">dialup</span> <span class="p">(</span> <span class="n">notify</span> <span class="o">|</span> <span class="n">notify</span><span class="o">-</span><span class="n">passive</span> <span class="o">|</span> <span class="n">passive</span> <span class="o">|</span> <span class="n">refresh</span> <span class="o">|</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span> <span class="p">);</span> <span class="o">//</span> <span class="n">deprecated</span>
<span class="n">dlz</span> <span class="o"><</span><span class="n">string</span><span class="o">></span><span class="p">;</span>
<span class="n">dnskey</span><span class="o">-</span><span class="n">sig</span><span class="o">-</span><span class="n">validity</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="n">dnssec</span><span class="o">-</span><span class="n">dnskey</span><span class="o">-</span><span class="n">kskonly</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">dnssec</span><span class="o">-</span><span class="n">loadkeys</span><span class="o">-</span><span class="n">interval</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="n">dnssec</span><span class="o">-</span><span class="n">policy</span> <span class="o"><</span><span class="n">string</span><span class="o">></span><span class="p">;</span>
<span class="n">dnssec</span><span class="o">-</span><span class="n">update</span><span class="o">-</span><span class="n">mode</span> <span class="p">(</span> <span class="n">maintain</span> <span class="o">|</span> <span class="n">no</span><span class="o">-</span><span class="n">resign</span> <span class="p">);</span>
<span class="n">file</span> <span class="o"><</span><span class="n">quoted_string</span><span class="o">></span><span class="p">;</span>
<span class="n">forward</span> <span class="p">(</span> <span class="n">first</span> <span class="o">|</span> <span class="n">only</span> <span class="p">);</span>
<span class="n">forwarders</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="p">)</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">];</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">inline</span><span class="o">-</span><span class="n">signing</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">ixfr</span><span class="o">-</span><span class="n">from</span><span class="o">-</span><span class="n">differences</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">journal</span> <span class="o"><</span><span class="n">quoted_string</span><span class="o">></span><span class="p">;</span>
<span class="n">key</span><span class="o">-</span><span class="n">directory</span> <span class="o"><</span><span class="n">quoted_string</span><span class="o">></span><span class="p">;</span>
<span class="n">masterfile</span><span class="o">-</span><span class="nb">format</span> <span class="p">(</span> <span class="n">raw</span> <span class="o">|</span> <span class="n">text</span> <span class="p">);</span>
<span class="n">masterfile</span><span class="o">-</span><span class="n">style</span> <span class="p">(</span> <span class="n">full</span> <span class="o">|</span> <span class="n">relative</span> <span class="p">);</span>
<span class="nb">max</span><span class="o">-</span><span class="n">ixfr</span><span class="o">-</span><span class="n">ratio</span> <span class="p">(</span> <span class="n">unlimited</span> <span class="o">|</span> <span class="o"><</span><span class="n">percentage</span><span class="o">></span> <span class="p">);</span>
<span class="nb">max</span><span class="o">-</span><span class="n">journal</span><span class="o">-</span><span class="n">size</span> <span class="p">(</span> <span class="n">default</span> <span class="o">|</span> <span class="n">unlimited</span> <span class="o">|</span> <span class="o"><</span><span class="n">sizeval</span><span class="o">></span> <span class="p">);</span>
<span class="nb">max</span><span class="o">-</span><span class="n">records</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">records</span><span class="o">-</span><span class="n">per</span><span class="o">-</span><span class="nb">type</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">refresh</span><span class="o">-</span><span class="n">time</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">retry</span><span class="o">-</span><span class="n">time</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">idle</span><span class="o">-</span><span class="ow">in</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">idle</span><span class="o">-</span><span class="n">out</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">time</span><span class="o">-</span><span class="ow">in</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">time</span><span class="o">-</span><span class="n">out</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">types</span><span class="o">-</span><span class="n">per</span><span class="o">-</span><span class="n">name</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">min</span><span class="o">-</span><span class="n">refresh</span><span class="o">-</span><span class="n">time</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">min</span><span class="o">-</span><span class="n">retry</span><span class="o">-</span><span class="n">time</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="n">multi</span><span class="o">-</span><span class="n">master</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">notify</span> <span class="p">(</span> <span class="n">explicit</span> <span class="o">|</span> <span class="n">master</span><span class="o">-</span><span class="n">only</span> <span class="o">|</span> <span class="n">primary</span><span class="o">-</span><span class="n">only</span> <span class="o">|</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span> <span class="p">);</span>
<span class="n">notify</span><span class="o">-</span><span class="n">delay</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="n">notify</span><span class="o">-</span><span class="n">source</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span>
<span class="n">notify</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">v6</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span>
<span class="n">notify</span><span class="o">-</span><span class="n">to</span><span class="o">-</span><span class="n">soa</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">nsec3</span><span class="o">-</span><span class="n">test</span><span class="o">-</span><span class="n">zone</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span> <span class="o">//</span> <span class="n">test</span> <span class="n">only</span>
<span class="n">parental</span><span class="o">-</span><span class="n">agents</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span> <span class="p">(</span> <span class="o"><</span><span class="n">remote</span><span class="o">-</span><span class="n">servers</span><span class="o">></span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">)</span> <span class="p">[</span> <span class="n">key</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">]</span> <span class="p">[</span> <span class="n">tls</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">];</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">parental</span><span class="o">-</span><span class="n">source</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span>
<span class="n">parental</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">v6</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span>
<span class="n">primaries</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span> <span class="p">(</span> <span class="o"><</span><span class="n">remote</span><span class="o">-</span><span class="n">servers</span><span class="o">></span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">)</span> <span class="p">[</span> <span class="n">key</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">]</span> <span class="p">[</span> <span class="n">tls</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">];</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">request</span><span class="o">-</span><span class="n">expire</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">request</span><span class="o">-</span><span class="n">ixfr</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">sig</span><span class="o">-</span><span class="n">signing</span><span class="o">-</span><span class="n">nodes</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="n">sig</span><span class="o">-</span><span class="n">signing</span><span class="o">-</span><span class="n">signatures</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="n">sig</span><span class="o">-</span><span class="n">signing</span><span class="o">-</span><span class="nb">type</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="n">sig</span><span class="o">-</span><span class="n">validity</span><span class="o">-</span><span class="n">interval</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">[</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">];</span>
<span class="n">transfer</span><span class="o">-</span><span class="n">source</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span>
<span class="n">transfer</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">v6</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span>
<span class="k">try</span><span class="o">-</span><span class="n">tcp</span><span class="o">-</span><span class="n">refresh</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">update</span><span class="o">-</span><span class="n">check</span><span class="o">-</span><span class="n">ksk</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">use</span><span class="o">-</span><span class="n">alt</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">source</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span> <span class="o">//</span> <span class="n">deprecated</span>
<span class="n">zero</span><span class="o">-</span><span class="n">no</span><span class="o">-</span><span class="n">soa</span><span class="o">-</span><span class="n">ttl</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">zone</span><span class="o">-</span><span class="n">statistics</span> <span class="p">(</span> <span class="n">full</span> <span class="o">|</span> <span class="n">terse</span> <span class="o">|</span> <span class="n">none</span> <span class="o">|</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span> <span class="p">);</span>
<span class="p">};</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">zone</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">[</span> <span class="o"><</span><span class="n">class</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span>
<span class="nb">type</span> <span class="n">mirror</span><span class="p">;</span>
<span class="n">allow</span><span class="o">-</span><span class="n">notify</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">allow</span><span class="o">-</span><span class="n">query</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">allow</span><span class="o">-</span><span class="n">query</span><span class="o">-</span><span class="n">on</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">allow</span><span class="o">-</span><span class="n">transfer</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">[</span> <span class="n">transport</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">allow</span><span class="o">-</span><span class="n">update</span><span class="o">-</span><span class="n">forwarding</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">also</span><span class="o">-</span><span class="n">notify</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span> <span class="p">(</span> <span class="o"><</span><span class="n">remote</span><span class="o">-</span><span class="n">servers</span><span class="o">></span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">)</span> <span class="p">[</span> <span class="n">key</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">]</span> <span class="p">[</span> <span class="n">tls</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">];</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">alt</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">source</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span> <span class="o">//</span> <span class="n">deprecated</span>
<span class="n">alt</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">v6</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span> <span class="o">//</span> <span class="n">deprecated</span>
<span class="n">check</span><span class="o">-</span><span class="n">names</span> <span class="p">(</span> <span class="n">fail</span> <span class="o">|</span> <span class="n">warn</span> <span class="o">|</span> <span class="n">ignore</span> <span class="p">);</span>
<span class="n">database</span> <span class="o"><</span><span class="n">string</span><span class="o">></span><span class="p">;</span>
<span class="n">file</span> <span class="o"><</span><span class="n">quoted_string</span><span class="o">></span><span class="p">;</span>
<span class="n">ixfr</span><span class="o">-</span><span class="n">from</span><span class="o">-</span><span class="n">differences</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">journal</span> <span class="o"><</span><span class="n">quoted_string</span><span class="o">></span><span class="p">;</span>
<span class="n">masterfile</span><span class="o">-</span><span class="nb">format</span> <span class="p">(</span> <span class="n">raw</span> <span class="o">|</span> <span class="n">text</span> <span class="p">);</span>
<span class="n">masterfile</span><span class="o">-</span><span class="n">style</span> <span class="p">(</span> <span class="n">full</span> <span class="o">|</span> <span class="n">relative</span> <span class="p">);</span>
<span class="nb">max</span><span class="o">-</span><span class="n">ixfr</span><span class="o">-</span><span class="n">ratio</span> <span class="p">(</span> <span class="n">unlimited</span> <span class="o">|</span> <span class="o"><</span><span class="n">percentage</span><span class="o">></span> <span class="p">);</span>
<span class="nb">max</span><span class="o">-</span><span class="n">journal</span><span class="o">-</span><span class="n">size</span> <span class="p">(</span> <span class="n">default</span> <span class="o">|</span> <span class="n">unlimited</span> <span class="o">|</span> <span class="o"><</span><span class="n">sizeval</span><span class="o">></span> <span class="p">);</span>
<span class="nb">max</span><span class="o">-</span><span class="n">records</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">records</span><span class="o">-</span><span class="n">per</span><span class="o">-</span><span class="nb">type</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">refresh</span><span class="o">-</span><span class="n">time</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">retry</span><span class="o">-</span><span class="n">time</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">idle</span><span class="o">-</span><span class="ow">in</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">idle</span><span class="o">-</span><span class="n">out</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">time</span><span class="o">-</span><span class="ow">in</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">time</span><span class="o">-</span><span class="n">out</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">types</span><span class="o">-</span><span class="n">per</span><span class="o">-</span><span class="n">name</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">min</span><span class="o">-</span><span class="n">refresh</span><span class="o">-</span><span class="n">time</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">min</span><span class="o">-</span><span class="n">retry</span><span class="o">-</span><span class="n">time</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="n">multi</span><span class="o">-</span><span class="n">master</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">notify</span> <span class="p">(</span> <span class="n">explicit</span> <span class="o">|</span> <span class="n">master</span><span class="o">-</span><span class="n">only</span> <span class="o">|</span> <span class="n">primary</span><span class="o">-</span><span class="n">only</span> <span class="o">|</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span> <span class="p">);</span>
<span class="n">notify</span><span class="o">-</span><span class="n">delay</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="n">notify</span><span class="o">-</span><span class="n">source</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span>
<span class="n">notify</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">v6</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span>
<span class="n">primaries</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span> <span class="p">(</span> <span class="o"><</span><span class="n">remote</span><span class="o">-</span><span class="n">servers</span><span class="o">></span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">)</span> <span class="p">[</span> <span class="n">key</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">]</span> <span class="p">[</span> <span class="n">tls</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">];</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">request</span><span class="o">-</span><span class="n">expire</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">request</span><span class="o">-</span><span class="n">ixfr</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">transfer</span><span class="o">-</span><span class="n">source</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span>
<span class="n">transfer</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">v6</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span>
<span class="k">try</span><span class="o">-</span><span class="n">tcp</span><span class="o">-</span><span class="n">refresh</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">use</span><span class="o">-</span><span class="n">alt</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">source</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span> <span class="o">//</span> <span class="n">deprecated</span>
<span class="n">zero</span><span class="o">-</span><span class="n">no</span><span class="o">-</span><span class="n">soa</span><span class="o">-</span><span class="n">ttl</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">zone</span><span class="o">-</span><span class="n">statistics</span> <span class="p">(</span> <span class="n">full</span> <span class="o">|</span> <span class="n">terse</span> <span class="o">|</span> <span class="n">none</span> <span class="o">|</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span> <span class="p">);</span>
<span class="p">};</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">zone</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">[</span> <span class="o"><</span><span class="n">class</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span>
<span class="nb">type</span> <span class="n">forward</span><span class="p">;</span>
<span class="n">delegation</span><span class="o">-</span><span class="n">only</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span> <span class="o">//</span> <span class="n">deprecated</span>
<span class="n">forward</span> <span class="p">(</span> <span class="n">first</span> <span class="o">|</span> <span class="n">only</span> <span class="p">);</span>
<span class="n">forwarders</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="p">)</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">];</span> <span class="o">...</span> <span class="p">};</span>
<span class="p">};</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">zone</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">[</span> <span class="o"><</span><span class="n">class</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span>
<span class="nb">type</span> <span class="n">hint</span><span class="p">;</span>
<span class="n">check</span><span class="o">-</span><span class="n">names</span> <span class="p">(</span> <span class="n">fail</span> <span class="o">|</span> <span class="n">warn</span> <span class="o">|</span> <span class="n">ignore</span> <span class="p">);</span>
<span class="n">delegation</span><span class="o">-</span><span class="n">only</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span> <span class="o">//</span> <span class="n">deprecated</span>
<span class="n">file</span> <span class="o"><</span><span class="n">quoted_string</span><span class="o">></span><span class="p">;</span>
<span class="p">};</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">zone</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">[</span> <span class="o"><</span><span class="n">class</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span>
<span class="nb">type</span> <span class="n">redirect</span><span class="p">;</span>
<span class="n">allow</span><span class="o">-</span><span class="n">query</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">allow</span><span class="o">-</span><span class="n">query</span><span class="o">-</span><span class="n">on</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">dlz</span> <span class="o"><</span><span class="n">string</span><span class="o">></span><span class="p">;</span>
<span class="n">file</span> <span class="o"><</span><span class="n">quoted_string</span><span class="o">></span><span class="p">;</span>
<span class="n">masterfile</span><span class="o">-</span><span class="nb">format</span> <span class="p">(</span> <span class="n">raw</span> <span class="o">|</span> <span class="n">text</span> <span class="p">);</span>
<span class="n">masterfile</span><span class="o">-</span><span class="n">style</span> <span class="p">(</span> <span class="n">full</span> <span class="o">|</span> <span class="n">relative</span> <span class="p">);</span>
<span class="nb">max</span><span class="o">-</span><span class="n">records</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">records</span><span class="o">-</span><span class="n">per</span><span class="o">-</span><span class="nb">type</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">types</span><span class="o">-</span><span class="n">per</span><span class="o">-</span><span class="n">name</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">zone</span><span class="o">-</span><span class="n">ttl</span> <span class="p">(</span> <span class="n">unlimited</span> <span class="o">|</span> <span class="o"><</span><span class="n">duration</span><span class="o">></span> <span class="p">);</span>
<span class="n">primaries</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span> <span class="p">(</span> <span class="o"><</span><span class="n">remote</span><span class="o">-</span><span class="n">servers</span><span class="o">></span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">)</span> <span class="p">[</span> <span class="n">key</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">]</span> <span class="p">[</span> <span class="n">tls</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">];</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">zone</span><span class="o">-</span><span class="n">statistics</span> <span class="p">(</span> <span class="n">full</span> <span class="o">|</span> <span class="n">terse</span> <span class="o">|</span> <span class="n">none</span> <span class="o">|</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span> <span class="p">);</span>
<span class="p">};</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">zone</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">[</span> <span class="o"><</span><span class="n">class</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span>
<span class="nb">type</span> <span class="n">static</span><span class="o">-</span><span class="n">stub</span><span class="p">;</span>
<span class="n">allow</span><span class="o">-</span><span class="n">query</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">allow</span><span class="o">-</span><span class="n">query</span><span class="o">-</span><span class="n">on</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">forward</span> <span class="p">(</span> <span class="n">first</span> <span class="o">|</span> <span class="n">only</span> <span class="p">);</span>
<span class="n">forwarders</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="p">)</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">];</span> <span class="o">...</span> <span class="p">};</span>
<span class="nb">max</span><span class="o">-</span><span class="n">records</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">records</span><span class="o">-</span><span class="n">per</span><span class="o">-</span><span class="nb">type</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">types</span><span class="o">-</span><span class="n">per</span><span class="o">-</span><span class="n">name</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="n">server</span><span class="o">-</span><span class="n">addresses</span> <span class="p">{</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="p">);</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">server</span><span class="o">-</span><span class="n">names</span> <span class="p">{</span> <span class="o"><</span><span class="n">string</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">zone</span><span class="o">-</span><span class="n">statistics</span> <span class="p">(</span> <span class="n">full</span> <span class="o">|</span> <span class="n">terse</span> <span class="o">|</span> <span class="n">none</span> <span class="o">|</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span> <span class="p">);</span>
<span class="p">};</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">zone</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">[</span> <span class="o"><</span><span class="n">class</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span>
<span class="nb">type</span> <span class="n">stub</span><span class="p">;</span>
<span class="n">allow</span><span class="o">-</span><span class="n">query</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">allow</span><span class="o">-</span><span class="n">query</span><span class="o">-</span><span class="n">on</span> <span class="p">{</span> <span class="o"><</span><span class="n">address_match_element</span><span class="o">></span><span class="p">;</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">check</span><span class="o">-</span><span class="n">names</span> <span class="p">(</span> <span class="n">fail</span> <span class="o">|</span> <span class="n">warn</span> <span class="o">|</span> <span class="n">ignore</span> <span class="p">);</span>
<span class="n">database</span> <span class="o"><</span><span class="n">string</span><span class="o">></span><span class="p">;</span>
<span class="n">delegation</span><span class="o">-</span><span class="n">only</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span> <span class="o">//</span> <span class="n">deprecated</span>
<span class="n">dialup</span> <span class="p">(</span> <span class="n">notify</span> <span class="o">|</span> <span class="n">notify</span><span class="o">-</span><span class="n">passive</span> <span class="o">|</span> <span class="n">passive</span> <span class="o">|</span> <span class="n">refresh</span> <span class="o">|</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span> <span class="p">);</span> <span class="o">//</span> <span class="n">deprecated</span>
<span class="n">file</span> <span class="o"><</span><span class="n">quoted_string</span><span class="o">></span><span class="p">;</span>
<span class="n">forward</span> <span class="p">(</span> <span class="n">first</span> <span class="o">|</span> <span class="n">only</span> <span class="p">);</span>
<span class="n">forwarders</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="p">)</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">];</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">masterfile</span><span class="o">-</span><span class="nb">format</span> <span class="p">(</span> <span class="n">raw</span> <span class="o">|</span> <span class="n">text</span> <span class="p">);</span>
<span class="n">masterfile</span><span class="o">-</span><span class="n">style</span> <span class="p">(</span> <span class="n">full</span> <span class="o">|</span> <span class="n">relative</span> <span class="p">);</span>
<span class="nb">max</span><span class="o">-</span><span class="n">records</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">records</span><span class="o">-</span><span class="n">per</span><span class="o">-</span><span class="nb">type</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">refresh</span><span class="o">-</span><span class="n">time</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">retry</span><span class="o">-</span><span class="n">time</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">idle</span><span class="o">-</span><span class="ow">in</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">time</span><span class="o">-</span><span class="ow">in</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">max</span><span class="o">-</span><span class="n">types</span><span class="o">-</span><span class="n">per</span><span class="o">-</span><span class="n">name</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">min</span><span class="o">-</span><span class="n">refresh</span><span class="o">-</span><span class="n">time</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="nb">min</span><span class="o">-</span><span class="n">retry</span><span class="o">-</span><span class="n">time</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span><span class="p">;</span>
<span class="n">multi</span><span class="o">-</span><span class="n">master</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span>
<span class="n">primaries</span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span> <span class="p">(</span> <span class="o"><</span><span class="n">remote</span><span class="o">-</span><span class="n">servers</span><span class="o">></span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="o">|</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="p">[</span> <span class="n">port</span> <span class="o"><</span><span class="n">integer</span><span class="o">></span> <span class="p">]</span> <span class="p">)</span> <span class="p">[</span> <span class="n">key</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">]</span> <span class="p">[</span> <span class="n">tls</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">];</span> <span class="o">...</span> <span class="p">};</span>
<span class="n">transfer</span><span class="o">-</span><span class="n">source</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv4_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span>
<span class="n">transfer</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">v6</span> <span class="p">(</span> <span class="o"><</span><span class="n">ipv6_address</span><span class="o">></span> <span class="o">|</span> <span class="o">*</span> <span class="p">)</span> <span class="p">;</span>
<span class="n">use</span><span class="o">-</span><span class="n">alt</span><span class="o">-</span><span class="n">transfer</span><span class="o">-</span><span class="n">source</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span><span class="p">;</span> <span class="o">//</span> <span class="n">deprecated</span>
<span class="n">zone</span><span class="o">-</span><span class="n">statistics</span> <span class="p">(</span> <span class="n">full</span> <span class="o">|</span> <span class="n">terse</span> <span class="o">|</span> <span class="n">none</span> <span class="o">|</span> <span class="o"><</span><span class="n">boolean</span><span class="o">></span> <span class="p">);</span>
<span class="p">};</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">zone</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">[</span> <span class="o"><</span><span class="n">class</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span>
<span class="nb">type</span> <span class="n">delegation</span><span class="o">-</span><span class="n">only</span><span class="p">;</span>
<span class="p">};</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">zone</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="p">[</span> <span class="o"><</span><span class="n">class</span><span class="o">></span> <span class="p">]</span> <span class="p">{</span>
<span class="ow">in</span><span class="o">-</span><span class="n">view</span> <span class="o"><</span><span class="n">string</span><span class="o">></span><span class="p">;</span>
<span class="p">};</span>
</pre></div>
</div>
</section>
<section id="id104">
<h3>Files<a class="headerlink" href="#id104" title="Link to this heading"></a></h3>
<p><code class="docutils literal notranslate"><span class="pre">/etc/bind/named.conf</span></code></p>
</section>
<section id="id105">
<h3>See Also<a class="headerlink" href="#id105" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named(8)</span></code></a>, <a class="reference internal" href="#std-iscman-named-checkconf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named-checkconf(8)</span></code></a>, <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc(8)</span></code></a>, <a class="reference internal" href="#std-iscman-rndc-confgen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc-confgen(8)</span></code></a>, <a class="reference internal" href="#std-iscman-tsig-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">tsig-keygen(8)</span></code></a>, BIND 9 Administrator Reference Manual.</p>
</section>
</section>
<section id="named-internet-domain-name-server">
<span id="man-named"></span><span id="std-iscman-named"></span><h2>named - Internet domain name server<a class="headerlink" href="#named-internet-domain-name-server" title="Link to this heading"></a></h2>
<section id="id106">
<h3>Synopsis<a class="headerlink" href="#id106" title="Link to this heading"></a></h3>
<p><strong class="program">named</strong> [ [<strong>-4</strong>] | [<strong>-6</strong>] ] [<strong>-c</strong> config-file] [<strong>-C</strong>] [<strong>-d</strong> debug-level] [<strong>-D</strong> string] [<strong>-E</strong> engine-name] [<strong>-f</strong>] [<strong>-g</strong>] [<strong>-L</strong> logfile] [<strong>-M</strong> option] [<strong>-m</strong> flag] [<strong>-n</strong> #cpus] [<strong>-p</strong> port] [<strong>-s</strong>] [<strong>-t</strong> directory] [<strong>-U</strong> #listeners] [<strong>-u</strong> user] [<strong>-v</strong>] [<strong>-V</strong>] [<strong>-X</strong> lock-file]</p>
</section>
<section id="id107">
<h3>Description<a class="headerlink" href="#id107" title="Link to this heading"></a></h3>
<p><strong class="program">named</strong> is a Domain Name System (DNS) server, part of the BIND 9
distribution from ISC. For more information on the DNS, see <span class="target" id="index-65"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1033.html"><strong>RFC 1033</strong></a>,
<span class="target" id="index-66"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1034.html"><strong>RFC 1034</strong></a>, and <span class="target" id="index-67"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1035.html"><strong>RFC 1035</strong></a>.</p>
<p>When invoked without arguments, <strong class="program">named</strong> reads the default
configuration file <code class="docutils literal notranslate"><span class="pre">/etc/bind/named.conf</span></code>, reads any initial data, and
listens for queries.</p>
</section>
<section id="id108">
<h3>Options<a class="headerlink" href="#id108" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-4">
<span class="sig-name descname"><span class="pre">-4</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-4" title="Link to this definition"></a></dt>
<dd><p>This option tells <strong class="program">named</strong> to use only IPv4, even if the host machine is capable of IPv6. <a class="reference internal" href="#cmdoption-named-4"><code class="xref std std-option docutils literal notranslate"><span class="pre">-4</span></code></a> and
<a class="reference internal" href="#cmdoption-named-6"><code class="xref std std-option docutils literal notranslate"><span class="pre">-6</span></code></a> are mutually exclusive.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-6">
<span class="sig-name descname"><span class="pre">-6</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-6" title="Link to this definition"></a></dt>
<dd><p>This option tells <strong class="program">named</strong> to use only IPv6, even if the host machine is capable of IPv4. <a class="reference internal" href="#cmdoption-named-4"><code class="xref std std-option docutils literal notranslate"><span class="pre">-4</span></code></a> and
<a class="reference internal" href="#cmdoption-named-6"><code class="xref std std-option docutils literal notranslate"><span class="pre">-6</span></code></a> are mutually exclusive.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-c">
<span class="sig-name descname"><span class="pre">-c</span></span><span class="sig-prename descclassname"> <span class="pre">config-file</span></span><a class="headerlink" href="#cmdoption-named-c" title="Link to this definition"></a></dt>
<dd><p>This option tells <strong class="program">named</strong> to use <code class="docutils literal notranslate"><span class="pre">config-file</span></code> as its configuration file instead of the default,
<code class="docutils literal notranslate"><span class="pre">/etc/bind/named.conf</span></code>. To ensure that the configuration file
can be reloaded after the server has changed its working directory
due to to a possible <code class="docutils literal notranslate"><span class="pre">directory</span></code> option in the configuration file,
<code class="docutils literal notranslate"><span class="pre">config-file</span></code> should be an absolute pathname.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-C">
<span class="sig-name descname"><span class="pre">-C</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-C" title="Link to this definition"></a></dt>
<dd><p>This option prints out the default built-in configuration and exits.</p>
<p>NOTE: This is for debugging purposes only and is not an
accurate representation of the actual configuration used by <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>
at runtime.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-d">
<span class="sig-name descname"><span class="pre">-d</span></span><span class="sig-prename descclassname"> <span class="pre">debug-level</span></span><a class="headerlink" href="#cmdoption-named-d" title="Link to this definition"></a></dt>
<dd><p>This option sets the daemon’s debug level to <code class="docutils literal notranslate"><span class="pre">debug-level</span></code>. Debugging traces from
<strong class="program">named</strong> become more verbose as the debug level increases.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-D">
<span class="sig-name descname"><span class="pre">-D</span></span><span class="sig-prename descclassname"> <span class="pre">string</span></span><a class="headerlink" href="#cmdoption-named-D" title="Link to this definition"></a></dt>
<dd><p>This option specifies a string that is used to identify a instance of <strong class="program">named</strong>
in a process listing. The contents of <code class="docutils literal notranslate"><span class="pre">string</span></code> are not examined.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-E">
<span class="sig-name descname"><span class="pre">-E</span></span><span class="sig-prename descclassname"> <span class="pre">engine-name</span></span><a class="headerlink" href="#cmdoption-named-E" title="Link to this definition"></a></dt>
<dd><p>When applicable, this option specifies the hardware to use for cryptographic
operations, such as a secure key store used for signing.</p>
<p>When BIND 9 is built with OpenSSL, this needs to be set to the OpenSSL
engine identifier that drives the cryptographic accelerator or
hardware service module (usually <code class="docutils literal notranslate"><span class="pre">pkcs11</span></code>).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-f">
<span class="sig-name descname"><span class="pre">-f</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-f" title="Link to this definition"></a></dt>
<dd><p>This option runs the server in the foreground (i.e., do not daemonize).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-g">
<span class="sig-name descname"><span class="pre">-g</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-g" title="Link to this definition"></a></dt>
<dd><p>This option runs the server in the foreground and forces all logging to <code class="docutils literal notranslate"><span class="pre">stderr</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-L">
<span class="sig-name descname"><span class="pre">-L</span></span><span class="sig-prename descclassname"> <span class="pre">logfile</span></span><a class="headerlink" href="#cmdoption-named-L" title="Link to this definition"></a></dt>
<dd><p>This option sets the log to the file <code class="docutils literal notranslate"><span class="pre">logfile</span></code> by default, instead of the system log.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-M">
<span class="sig-name descname"><span class="pre">-M</span></span><span class="sig-prename descclassname"> <span class="pre">option</span></span><a class="headerlink" href="#cmdoption-named-M" title="Link to this definition"></a></dt>
<dd><p>This option sets the default (comma-separated) memory context
options. The possible flags are:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">fill</span></code>: fill blocks of memory with tag values when they are
allocated or freed, to assist debugging of memory problems; this is
the implicit default if <strong class="program">named</strong> has been compiled with
<code class="docutils literal notranslate"><span class="pre">--enable-developer</span></code>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">nofill</span></code>: disable the behavior enabled by <code class="docutils literal notranslate"><span class="pre">fill</span></code>; this is the
implicit default unless <strong class="program">named</strong> has been compiled with
<code class="docutils literal notranslate"><span class="pre">--enable-developer</span></code>.</p></li>
</ul>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-m">
<span class="sig-name descname"><span class="pre">-m</span></span><span class="sig-prename descclassname"> <span class="pre">flag</span></span><a class="headerlink" href="#cmdoption-named-m" title="Link to this definition"></a></dt>
<dd><p>This option turns on memory usage debugging flags. Possible flags are <code class="docutils literal notranslate"><span class="pre">usage</span></code>,
<code class="docutils literal notranslate"><span class="pre">trace</span></code> and <code class="docutils literal notranslate"><span class="pre">record</span></code>. These correspond to the
<code class="docutils literal notranslate"><span class="pre">ISC_MEM_DEBUGXXXX</span></code> flags described in <code class="docutils literal notranslate"><span class="pre"><isc/mem.h></span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-n">
<span class="sig-name descname"><span class="pre">-n</span></span><span class="sig-prename descclassname"> <span class="pre">#cpus</span></span><a class="headerlink" href="#cmdoption-named-n" title="Link to this definition"></a></dt>
<dd><p>This option creates <code class="docutils literal notranslate"><span class="pre">#cpus</span></code> worker threads to take advantage of multiple CPUs. If
not specified, <strong class="program">named</strong> 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>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-p">
<span class="sig-name descname"><span class="pre">-p</span></span><span class="sig-prename descclassname"> <span class="pre">value</span></span><a class="headerlink" href="#cmdoption-named-p" title="Link to this definition"></a></dt>
<dd><p>This option specifies the port(s) on which the server will listen
for queries. If <code class="docutils literal notranslate"><span class="pre">value</span></code> is of the form <code class="docutils literal notranslate"><span class="pre"><portnum></span></code> or
<code class="docutils literal notranslate"><span class="pre">dns=<portnum></span></code>, the server will listen for DNS queries on
<code class="docutils literal notranslate"><span class="pre">portnum</span></code>; if not not specified, the default is port 53. If
<code class="docutils literal notranslate"><span class="pre">value</span></code> is of the form <code class="docutils literal notranslate"><span class="pre">tls=<portnum></span></code>, the server will
listen for TLS queries on <code class="docutils literal notranslate"><span class="pre">portnum</span></code>; the default is 853.
If <code class="docutils literal notranslate"><span class="pre">value</span></code> is of the form <code class="docutils literal notranslate"><span class="pre">https=<portnum></span></code>, the server will
listen for HTTPS queries on <code class="docutils literal notranslate"><span class="pre">portnum</span></code>; the default is 443.
If <code class="docutils literal notranslate"><span class="pre">value</span></code> is of the form <code class="docutils literal notranslate"><span class="pre">http=<portnum></span></code>, the server will
listen for HTTP queries on <code class="docutils literal notranslate"><span class="pre">portnum</span></code>; the default is 80.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-s">
<span class="sig-name descname"><span class="pre">-s</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-s" title="Link to this definition"></a></dt>
<dd><p>This option writes memory usage statistics to <code class="docutils literal notranslate"><span class="pre">stdout</span></code> on exit.</p>
</dd></dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This option is mainly of interest to BIND 9 developers and may be
removed or changed in a future release.</p>
</div>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-S">
<span class="sig-name descname"><span class="pre">-S</span></span><span class="sig-prename descclassname"> <span class="pre">#max-socks</span></span><a class="headerlink" href="#cmdoption-named-S" title="Link to this definition"></a></dt>
<dd><p>This option is deprecated and no longer has any function.</p>
</dd></dl>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>This option should be unnecessary for the vast majority of users.
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 slightly fewer than the
specified value, because <strong class="program">named</strong> reserves some file descriptors
for its internal use.</p>
</div>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-t">
<span class="sig-name descname"><span class="pre">-t</span></span><span class="sig-prename descclassname"> <span class="pre">directory</span></span><a class="headerlink" href="#cmdoption-named-t" title="Link to this definition"></a></dt>
<dd><p>This option tells <strong class="program">named</strong> to chroot to <code class="docutils literal notranslate"><span class="pre">directory</span></code> after processing the command-line arguments, but
before reading the configuration file.</p>
</dd></dl>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>This option should be used in conjunction with the <a class="reference internal" href="#cmdoption-named-u"><code class="xref std std-option docutils literal notranslate"><span class="pre">-u</span></code></a> option,
as chrooting a process running as root doesn’t enhance security on
most systems; the way <code class="docutils literal notranslate"><span class="pre">chroot</span></code> is defined allows a process
with root privileges to escape a chroot jail.</p>
</div>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-U">
<span class="sig-name descname"><span class="pre">-U</span></span><span class="sig-prename descclassname"> <span class="pre">#dispatches</span></span><a class="headerlink" href="#cmdoption-named-U" title="Link to this definition"></a></dt>
<dd><p>This option specifies the number of per-interface UDP <code class="docutils literal notranslate"><span class="pre">#dispatches</span></code> that <strong class="program">named</strong> should use to handle the outgoing (recursive) UDP connection,
to reduce contention between the resolver threads.</p>
<p>If not specified, <strong class="program">named</strong> calculates a default value based on the
number of detected CPUs: 1 for a single CPU, and the number of detected CPUs minus
one for machines with more than 1 CPU.</p>
<p>This cannot be increased to a value higher than the number of CPUs
(see <a class="reference internal" href="#cmdoption-named-n"><code class="xref std std-option docutils literal notranslate"><span class="pre">-n</span></code></a> on how to override the value).</p>
</dd></dl>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>This option should be unnecessary for the vast majority of users,
and will be removed in the next version of BIND 9.</p>
</div>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-u">
<span class="sig-name descname"><span class="pre">-u</span></span><span class="sig-prename descclassname"> <span class="pre">user</span></span><a class="headerlink" href="#cmdoption-named-u" title="Link to this definition"></a></dt>
<dd><p>This option sets the setuid to <code class="docutils literal notranslate"><span class="pre">user</span></code> after completing privileged operations, such as
creating sockets that listen on privileged ports.</p>
</dd></dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>On Linux, <strong class="program">named</strong> uses the kernel’s capability mechanism to drop
all root privileges except the ability to <code class="docutils literal notranslate"><span class="pre">bind</span></code> to a
privileged port and set process resource limits. Unfortunately,
this means that the <a class="reference internal" href="#cmdoption-named-u"><code class="xref std std-option docutils literal notranslate"><span class="pre">-u</span></code></a> option only works when <strong class="program">named</strong> 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
<code class="docutils literal notranslate"><span class="pre">setuid</span></code>.</p>
</div>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-v">
<span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-v" title="Link to this definition"></a></dt>
<dd><p>This option reports the version number and exits.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-V">
<span class="sig-name descname"><span class="pre">-V</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-named-V" title="Link to this definition"></a></dt>
<dd><p>This option reports the version number, build options, supported
cryptographics algorithms, and exits.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-named-X">
<span class="sig-name descname"><span class="pre">-X</span></span><span class="sig-prename descclassname"> <span class="pre">lock-file</span></span><a class="headerlink" href="#cmdoption-named-X" title="Link to this definition"></a></dt>
<dd><p>This option acquires a lock on the specified file at runtime; this helps to
prevent duplicate <strong class="program">named</strong> instances from running simultaneously.
Use of this option overrides the <code class="docutils literal notranslate"><span class="pre">lock-file</span></code> option in
<a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>. If set to <code class="docutils literal notranslate"><span class="pre">none</span></code>, the lock file check is disabled.</p>
</dd></dl>
</section>
<section id="signals">
<h3>Signals<a class="headerlink" href="#signals" title="Link to this heading"></a></h3>
<p>In routine operation, signals should not be used to control the
nameserver; <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc</span></code></a> should be used instead.</p>
<dl class="simple">
<dt>SIGHUP</dt><dd><p>This signal forces a reload of the server.</p>
</dd>
<dt>SIGINT, SIGTERM</dt><dd><p>These signals shut down the server.</p>
</dd>
</dl>
<p>The result of sending any other signals to the server is undefined.</p>
</section>
<section id="configuration">
<h3>Configuration<a class="headerlink" href="#configuration" title="Link to this heading"></a></h3>
<p>The <strong class="program">named</strong> configuration file is too complex to describe in detail
here. A complete description is provided in the BIND 9 Administrator
Reference Manual.</p>
<p><strong class="program">named</strong> inherits the <code class="docutils literal notranslate"><span class="pre">umask</span></code> (file creation mode mask) from the
parent process. If files created by <strong class="program">named</strong>, such as journal files,
need to have custom permissions, the <code class="docutils literal notranslate"><span class="pre">umask</span></code> should be set explicitly
in the script used to start the <strong class="program">named</strong> process.</p>
</section>
<section id="id109">
<h3>Files<a class="headerlink" href="#id109" title="Link to this heading"></a></h3>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">/etc/bind/named.conf</span></code></dt><dd><p>The default configuration file.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">/run/named.pid</span></code></dt><dd><p>The default process-id file.</p>
</dd>
</dl>
</section>
<section id="id110">
<h3>See Also<a class="headerlink" href="#id110" title="Link to this heading"></a></h3>
<p><span class="target" id="index-68"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1033.html"><strong>RFC 1033</strong></a>, <span class="target" id="index-69"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1034.html"><strong>RFC 1034</strong></a>, <span class="target" id="index-70"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1035.html"><strong>RFC 1035</strong></a>, <a class="reference internal" href="#std-iscman-named-checkconf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named-checkconf(8)</span></code></a>, <a class="reference internal" href="#std-iscman-named-checkzone"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named-checkzone(8)</span></code></a>, <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc(8)</span></code></a>, <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf(5)</span></code></a>, BIND 9 Administrator Reference Manual.</p>
</section>
</section>
<section id="nsec3hash-generate-nsec3-hash">
<span id="man-nsec3hash"></span><span id="std-iscman-nsec3hash"></span><h2>nsec3hash - generate NSEC3 hash<a class="headerlink" href="#nsec3hash-generate-nsec3-hash" title="Link to this heading"></a></h2>
<section id="id111">
<h3>Synopsis<a class="headerlink" href="#id111" title="Link to this heading"></a></h3>
<p><strong class="program">nsec3hash</strong> {salt} {algorithm} {iterations} {domain}</p>
<p><strong class="program">nsec3hash</strong> <strong>-r</strong> {algorithm} {flags} {iterations} {salt} {domain}</p>
</section>
<section id="id112">
<h3>Description<a class="headerlink" href="#id112" title="Link to this heading"></a></h3>
<p><strong class="program">nsec3hash</strong> generates an NSEC3 hash based on a set of NSEC3
parameters. This can be used to check the validity of NSEC3 records in a
signed zone.</p>
<p>If this command is invoked as <code class="docutils literal notranslate"><span class="pre">nsec3hash</span> <span class="pre">-r</span></code>, it takes arguments in
order, matching the first four fields of an NSEC3 record followed by the
domain name: <code class="docutils literal notranslate"><span class="pre">algorithm</span></code>, <code class="docutils literal notranslate"><span class="pre">flags</span></code>, <code class="docutils literal notranslate"><span class="pre">iterations</span></code>, <code class="docutils literal notranslate"><span class="pre">salt</span></code>, <code class="docutils literal notranslate"><span class="pre">domain</span></code>. This makes it
convenient to copy and paste a portion of an NSEC3 or NSEC3PARAM record
into a command line to confirm the correctness of an NSEC3 hash.</p>
</section>
<section id="id113">
<h3>Arguments<a class="headerlink" href="#id113" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsec3hash-arg-salt">
<span class="sig-name descname"><span class="pre">salt</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-nsec3hash-arg-salt" title="Link to this definition"></a></dt>
<dd><p>This is the salt provided to the hash algorithm.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsec3hash-arg-algorithm">
<span class="sig-name descname"><span class="pre">algorithm</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-nsec3hash-arg-algorithm" title="Link to this definition"></a></dt>
<dd><p>This is a number indicating the hash algorithm. Currently the only supported
hash algorithm for NSEC3 is SHA-1, which is indicated by the number
1; consequently “1” is the only useful value for this argument.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsec3hash-arg-flags">
<span class="sig-name descname"><span class="pre">flags</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-nsec3hash-arg-flags" title="Link to this definition"></a></dt>
<dd><p>This is provided for compatibility with NSEC3 record presentation format, but
is ignored since the flags do not affect the hash.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsec3hash-arg-iterations">
<span class="sig-name descname"><span class="pre">iterations</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-nsec3hash-arg-iterations" title="Link to this definition"></a></dt>
<dd><p>This is the number of additional times the hash should be performed.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsec3hash-arg-domain">
<span class="sig-name descname"><span class="pre">domain</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-nsec3hash-arg-domain" title="Link to this definition"></a></dt>
<dd><p>This is the domain name to be hashed.</p>
</dd></dl>
</section>
<section id="id114">
<h3>See Also<a class="headerlink" href="#id114" title="Link to this heading"></a></h3>
<p>BIND 9 Administrator Reference Manual, <span class="target" id="index-71"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc5155.html"><strong>RFC 5155</strong></a>.</p>
</section>
</section>
<section id="nslookup-query-internet-name-servers-interactively">
<span id="man-nslookup"></span><span id="std-iscman-nslookup"></span><h2>nslookup - query Internet name servers interactively<a class="headerlink" href="#nslookup-query-internet-name-servers-interactively" title="Link to this heading"></a></h2>
<section id="id115">
<h3>Synopsis<a class="headerlink" href="#id115" title="Link to this heading"></a></h3>
<p><strong class="program">nslookup</strong> [-option] [name | -] [server]</p>
</section>
<section id="id116">
<h3>Description<a class="headerlink" href="#id116" title="Link to this heading"></a></h3>
<p><strong class="program">nslookup</strong> is a program to query Internet domain name servers.
<strong class="program">nslookup</strong> 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 prints just the name and requested
information for a host or domain.</p>
</section>
<section id="id117">
<h3>Arguments<a class="headerlink" href="#id117" title="Link to this heading"></a></h3>
<p>Interactive mode is entered in the following cases:</p>
<ol class="loweralpha simple">
<li><p>when no arguments are given (the default name server is used);</p></li>
<li><p>when the first argument is a hyphen (-) and the second argument is
the host name or Internet address of a name server.</p></li>
</ol>
<p>Non-interactive mode is used when the name or Internet address of the
host to be looked up is given as the first argument. The optional second
argument specifies the host name or address of a name server.</p>
<p>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, with an initial timeout of 10
seconds, type:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">nslookup</span> <span class="o">-</span><span class="n">query</span><span class="o">=</span><span class="n">hinfo</span> <span class="o">-</span><span class="n">timeout</span><span class="o">=</span><span class="mi">10</span>
</pre></div>
</div>
<p>The <code class="docutils literal notranslate"><span class="pre">-version</span></code> option causes <strong class="program">nslookup</strong> to print the version number
and immediately exit.</p>
</section>
<section id="interactive-commands">
<h3>Interactive Commands<a class="headerlink" href="#interactive-commands" title="Link to this heading"></a></h3>
<dl>
<dt><code class="docutils literal notranslate"><span class="pre">host</span> <span class="pre">[server]</span></code></dt><dd><p>This command looks up information for <a class="reference internal" href="#std-iscman-host"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">host</span></code></a> using the current default server or
using <code class="docutils literal notranslate"><span class="pre">server</span></code>, if specified. If <a class="reference internal" href="#std-iscman-host"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">host</span></code></a> is an Internet address and the
query type is A or PTR, the name of the host is returned. If <a class="reference internal" href="#std-iscman-host"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">host</span></code></a> is
a name and does not have a trailing period (<code class="docutils literal notranslate"><span class="pre">.</span></code>), the search list is used
to qualify the name.</p>
<p>To look up a host not in the current domain, append a period to the
name.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">server</span> <span class="pre">domain</span></code> | <code class="docutils literal notranslate"><span class="pre">lserver</span> <span class="pre">domain</span></code></dt><dd><p>These commands change the default server to <code class="docutils literal notranslate"><span class="pre">domain</span></code>; <code class="docutils literal notranslate"><span class="pre">lserver</span></code> uses the initial
server to look up information about <code class="docutils literal notranslate"><span class="pre">domain</span></code>, while <code class="docutils literal notranslate"><span class="pre">server</span></code> uses the
current default server. If an authoritative answer cannot be found,
the names of servers that might have the answer are returned.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">root</span></code></dt><dd><p>This command is not implemented.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">finger</span></code></dt><dd><p>This command is not implemented.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">ls</span></code></dt><dd><p>This command is not implemented.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">view</span></code></dt><dd><p>This command is not implemented.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">help</span></code></dt><dd><p>This command is not implemented.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">?</span></code></dt><dd><p>This command is not implemented.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">exit</span></code></dt><dd><p>This command exits the program.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">set</span> <span class="pre">keyword[=value]</span></code></dt><dd><p>This command is used to change state information that affects the
lookups. Valid keywords are:</p>
<dl>
<dt><code class="docutils literal notranslate"><span class="pre">all</span></code></dt><dd><p>This keyword prints the current values of the frequently used options to
<code class="docutils literal notranslate"><span class="pre">set</span></code>. Information about the current default server and host is
also printed.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">class=value</span></code></dt><dd><p>This keyword changes the query class to one of:</p>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">IN</span></code></dt><dd><p>the Internet class</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">CH</span></code></dt><dd><p>the Chaos class</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">HS</span></code></dt><dd><p>the Hesiod class</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">ANY</span></code></dt><dd><p>wildcard</p>
</dd>
</dl>
<p>The class specifies the protocol group of the information. The default
is <code class="docutils literal notranslate"><span class="pre">IN</span></code>; the abbreviation for this keyword is <code class="docutils literal notranslate"><span class="pre">cl</span></code>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">nodebug</span></code></dt><dd><p>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
<code class="docutils literal notranslate"><span class="pre">nodebug</span></code>; the abbreviation for this keyword is <code class="docutils literal notranslate"><span class="pre">[no]deb</span></code>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">nod2</span></code></dt><dd><p>This keyword turns debugging mode on or off. This displays more about what
nslookup is doing. The default is <code class="docutils literal notranslate"><span class="pre">nod2</span></code>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">domain=name</span></code></dt><dd><p>This keyword sets the search list to <code class="docutils literal notranslate"><span class="pre">name</span></code>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">nosearch</span></code></dt><dd><p>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 <code class="docutils literal notranslate"><span class="pre">search</span></code>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">port=value</span></code></dt><dd><p>This keyword changes the default TCP/UDP name server port to <code class="docutils literal notranslate"><span class="pre">value</span></code> from
its default, port 53. The abbreviation for this keyword is <code class="docutils literal notranslate"><span class="pre">po</span></code>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">querytype=value</span></code> | <code class="docutils literal notranslate"><span class="pre">type=value</span></code></dt><dd><p>This keyword changes the type of the information query to <code class="docutils literal notranslate"><span class="pre">value</span></code>. The
defaults are A and then AAAA; the abbreviations for these keywords are
<code class="docutils literal notranslate"><span class="pre">q</span></code> and <code class="docutils literal notranslate"><span class="pre">ty</span></code>.</p>
<p>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.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">norecurse</span></code></dt><dd><p>This keyword tells the name server to query other servers if it does not have
the information. The default is <code class="docutils literal notranslate"><span class="pre">recurse</span></code>; the abbreviation for this
keyword is <code class="docutils literal notranslate"><span class="pre">[no]rec</span></code>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">ndots=number</span></code></dt><dd><p>This keyword sets the number of dots (label separators) in a domain that
disables searching. Absolute names always stop searching.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">retry=number</span></code></dt><dd><p>This keyword sets the number of retries to <code class="docutils literal notranslate"><span class="pre">number</span></code>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">timeout=number</span></code></dt><dd><p>This keyword changes the initial timeout interval to wait for a reply to
<code class="docutils literal notranslate"><span class="pre">number</span></code>, in seconds.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">novc</span></code></dt><dd><p>This keyword indicates that a virtual circuit should always be used when sending requests to the server.
<code class="docutils literal notranslate"><span class="pre">novc</span></code> is the default.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">nofail</span></code></dt><dd><p>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 <code class="docutils literal notranslate"><span class="pre">nofail</span></code>.</p>
</dd>
</dl>
</dd>
</dl>
</section>
<section id="id118">
<h3>Return Values<a class="headerlink" href="#id118" title="Link to this heading"></a></h3>
<p><strong class="program">nslookup</strong> returns with an exit status of 1 if any query failed, and 0
otherwise.</p>
</section>
<section id="id119">
<h3>IDN Support<a class="headerlink" href="#id119" title="Link to this heading"></a></h3>
<p>If <strong class="program">nslookup</strong> has been built with IDN (internationalized domain name)
support, it can accept and display non-ASCII domain names. <strong class="program">nslookup</strong>
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 <code class="docutils literal notranslate"><span class="pre">IDN_DISABLE</span></code>
environment variable. IDN support is disabled if the variable is set
when <strong class="program">nslookup</strong> runs, or when the standard output is not a tty.</p>
</section>
<section id="id120">
<h3>Files<a class="headerlink" href="#id120" title="Link to this heading"></a></h3>
<p><code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code></p>
</section>
<section id="id121">
<h3>See Also<a class="headerlink" href="#id121" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-dig"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dig(1)</span></code></a>, <a class="reference internal" href="#std-iscman-host"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">host(1)</span></code></a>, <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named(8)</span></code></a>.</p>
</section>
</section>
<section id="nsupdate-dynamic-dns-update-utility">
<span id="man-nsupdate"></span><span id="std-iscman-nsupdate"></span><h2>nsupdate - dynamic DNS update utility<a class="headerlink" href="#nsupdate-dynamic-dns-update-utility" title="Link to this heading"></a></h2>
<section id="id122">
<h3>Synopsis<a class="headerlink" href="#id122" title="Link to this heading"></a></h3>
<p><strong class="program">nsupdate</strong> [<strong>-d</strong>] [<strong>-D</strong>] [<strong>-i</strong>] [<strong>-L</strong> level] [ [<strong>-g</strong>] | [<strong>-o</strong>] | [<strong>-l</strong>] | [<strong>-y</strong> [hmac:]keyname:secret] | [<strong>-k</strong> keyfile] ] [<strong>-t</strong> timeout] [<strong>-u</strong> udptimeout] [<strong>-r</strong> udpretries] [<strong>-v</strong>] [<strong>-T</strong>] [<strong>-P</strong>] [<strong>-V</strong>] [ [<strong>-4</strong>] | [<strong>-6</strong>] ] [filename]</p>
</section>
<section id="id123">
<h3>Description<a class="headerlink" href="#id123" title="Link to this heading"></a></h3>
<p><strong class="program">nsupdate</strong> is used to submit Dynamic DNS Update requests, as defined in
<span class="target" id="index-72"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2136.html"><strong>RFC 2136</strong></a>, 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.</p>
<p>Zones that are under dynamic control via <strong class="program">nsupdate</strong> or a DHCP server
should not be edited by hand. Manual edits could conflict with dynamic
updates and cause data to be lost.</p>
<p>The resource records that are dynamically added or removed with
<strong class="program">nsupdate</strong> 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.</p>
<p>Transaction signatures can be used to authenticate the Dynamic DNS
updates. These use the TSIG resource record type described in <span class="target" id="index-73"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2845.html"><strong>RFC 2845</strong></a>,
the SIG(0) record described in <span class="target" id="index-74"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2535.html"><strong>RFC 2535</strong></a> and <span class="target" id="index-75"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2931.html"><strong>RFC 2931</strong></a>, or GSS-TSIG as
described in <span class="target" id="index-76"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3645.html"><strong>RFC 3645</strong></a>.</p>
<p>TSIG relies on a shared secret that should only be known to <strong class="program">nsupdate</strong>
and the name server. For instance, suitable <code class="docutils literal notranslate"><span class="pre">key</span></code> and <code class="docutils literal notranslate"><span class="pre">server</span></code>
statements are added to <code class="docutils literal notranslate"><span class="pre">/etc/bind/named.conf</span></code> so that the name server
can associate the appropriate secret key and algorithm with the IP
address of the client application that is using TSIG
authentication. <a class="reference internal" href="#std-iscman-ddns-confgen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">ddns-confgen</span></code></a> can generate suitable
configuration fragments. <strong class="program">nsupdate</strong> uses the <a class="reference internal" href="#cmdoption-nsupdate-y"><code class="xref std std-option docutils literal notranslate"><span class="pre">-y</span></code></a> or <a class="reference internal" href="#cmdoption-nsupdate-k"><code class="xref std std-option docutils literal notranslate"><span class="pre">-k</span></code></a> options
to provide the TSIG shared secret; these options are mutually exclusive.</p>
<p>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.</p>
<p>GSS-TSIG uses Kerberos credentials. Standard GSS-TSIG mode is switched
on with the <a class="reference internal" href="#cmdoption-nsupdate-g"><code class="xref std std-option docutils literal notranslate"><span class="pre">-g</span></code></a> flag. A non-standards-compliant variant of GSS-TSIG
used by Windows 2000 can be switched on with the <a class="reference internal" href="#cmdoption-nsupdate-o"><code class="xref std std-option docutils literal notranslate"><span class="pre">-o</span></code></a> flag.</p>
</section>
<section id="id124">
<h3>Options<a class="headerlink" href="#id124" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-4">
<span class="sig-name descname"><span class="pre">-4</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-nsupdate-4" title="Link to this definition"></a></dt>
<dd><p>This option sets use of IPv4 only.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-6">
<span class="sig-name descname"><span class="pre">-6</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-nsupdate-6" title="Link to this definition"></a></dt>
<dd><p>This option sets use of IPv6 only.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-C">
<span class="sig-name descname"><span class="pre">-C</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-nsupdate-C" title="Link to this definition"></a></dt>
<dd><p>Overrides the default <cite>resolv.conf</cite> file. This is only intended for testing.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-d">
<span class="sig-name descname"><span class="pre">-d</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-nsupdate-d" title="Link to this definition"></a></dt>
<dd><p>This option sets debug mode, which provides tracing information about the update
requests that are made and the replies received from the name server.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-D">
<span class="sig-name descname"><span class="pre">-D</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-nsupdate-D" title="Link to this definition"></a></dt>
<dd><p>This option sets extra debug mode.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-g">
<span class="sig-name descname"><span class="pre">-g</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-nsupdate-g" title="Link to this definition"></a></dt>
<dd><p>This option enables standard GSS-TSIG mode.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-i">
<span class="sig-name descname"><span class="pre">-i</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-nsupdate-i" title="Link to this definition"></a></dt>
<dd><p>This option forces interactive mode, even when standard input is not a terminal.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-k">
<span class="sig-name descname"><span class="pre">-k</span></span><span class="sig-prename descclassname"> <span class="pre">keyfile</span></span><a class="headerlink" href="#cmdoption-nsupdate-k" title="Link to this definition"></a></dt>
<dd><p>This option indicates the file containing the TSIG authentication key. Keyfiles may be in
two formats: a single file containing a <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>-format <code class="docutils literal notranslate"><span class="pre">key</span></code>
statement, which may be generated automatically by <a class="reference internal" href="#std-iscman-ddns-confgen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">ddns-confgen</span></code></a>;
or a pair of files whose names are of the format
<code class="docutils literal notranslate"><span class="pre">K{name}.+157.+{random}.key</span></code> and
<code class="docutils literal notranslate"><span class="pre">K{name}.+157.+{random}.private</span></code>, which can be generated by
<a class="reference internal" href="#std-iscman-dnssec-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-keygen</span></code></a>. The <a class="reference internal" href="#cmdoption-nsupdate-k"><code class="xref std std-option docutils literal notranslate"><span class="pre">-k</span></code></a> 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-l">
<span class="sig-name descname"><span class="pre">-l</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-nsupdate-l" title="Link to this definition"></a></dt>
<dd><p>This option sets local-host only mode, which sets the server address to localhost
(disabling the <code class="docutils literal notranslate"><span class="pre">server</span></code> so that the server address cannot be
overridden). Connections to the local server use a TSIG key
found in <code class="docutils literal notranslate"><span class="pre">/run/session.key</span></code>, which is automatically
generated by <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> if any local <code class="docutils literal notranslate"><span class="pre">primary</span></code> zone has set
<code class="docutils literal notranslate"><span class="pre">update-policy</span></code> to <code class="docutils literal notranslate"><span class="pre">local</span></code>. The location of this key file can be
overridden with the <a class="reference internal" href="#cmdoption-nsupdate-k"><code class="xref std std-option docutils literal notranslate"><span class="pre">-k</span></code></a> option.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-L">
<span class="sig-name descname"><span class="pre">-L</span></span><span class="sig-prename descclassname"> <span class="pre">level</span></span><a class="headerlink" href="#cmdoption-nsupdate-L" title="Link to this definition"></a></dt>
<dd><p>This option sets the logging debug level. If zero, logging is disabled.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-o">
<span class="sig-name descname"><span class="pre">-o</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-nsupdate-o" title="Link to this definition"></a></dt>
<dd><p>This option enables a non-standards-compliant variant of GSS-TSIG
used by Windows 2000.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-p">
<span class="sig-name descname"><span class="pre">-p</span></span><span class="sig-prename descclassname"> <span class="pre">port</span></span><a class="headerlink" href="#cmdoption-nsupdate-p" title="Link to this definition"></a></dt>
<dd><p>This option sets the port to use for connections to a name server. The default is
53.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-P">
<span class="sig-name descname"><span class="pre">-P</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-nsupdate-P" title="Link to this definition"></a></dt>
<dd><p>This option prints the list of private BIND-specific resource record types whose
format is understood by <strong class="program">nsupdate</strong>. See also the <a class="reference internal" href="#cmdoption-nsupdate-T"><code class="xref std std-option docutils literal notranslate"><span class="pre">-T</span></code></a> option.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-r">
<span class="sig-name descname"><span class="pre">-r</span></span><span class="sig-prename descclassname"> <span class="pre">udpretries</span></span><a class="headerlink" href="#cmdoption-nsupdate-r" title="Link to this definition"></a></dt>
<dd><p>This option sets the number of UDP retries. The default is 3. If zero, only one update
request is made.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-t">
<span class="sig-name descname"><span class="pre">-t</span></span><span class="sig-prename descclassname"> <span class="pre">timeout</span></span><a class="headerlink" href="#cmdoption-nsupdate-t" title="Link to this definition"></a></dt>
<dd><p>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 for TCP mode. For UDP mode,
the option <a class="reference internal" href="#cmdoption-nsupdate-u"><code class="xref std std-option docutils literal notranslate"><span class="pre">-u</span></code></a> takes precedence over this option, unless the option <a class="reference internal" href="#cmdoption-nsupdate-u"><code class="xref std std-option docutils literal notranslate"><span class="pre">-u</span></code></a>
is set to zero, in which case the interval is computed from the <a class="reference internal" href="#cmdoption-nsupdate-t"><code class="xref std std-option docutils literal notranslate"><span class="pre">-t</span></code></a> timeout interval
and the number of UDP retries. For UDP mode, the timeout can not be disabled, and will
be rounded up to 1 second in case if both <a class="reference internal" href="#cmdoption-nsupdate-t"><code class="xref std std-option docutils literal notranslate"><span class="pre">-t</span></code></a> and <a class="reference internal" href="#cmdoption-nsupdate-u"><code class="xref std std-option docutils literal notranslate"><span class="pre">-u</span></code></a> are set to zero.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-T">
<span class="sig-name descname"><span class="pre">-T</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-nsupdate-T" title="Link to this definition"></a></dt>
<dd><p>This option prints the list of IANA standard resource record types whose format is
understood by <strong class="program">nsupdate</strong>. <strong class="program">nsupdate</strong> exits after the lists
are printed. The <a class="reference internal" href="#cmdoption-nsupdate-T"><code class="xref std std-option docutils literal notranslate"><span class="pre">-T</span></code></a> option can be combined with the <a class="reference internal" href="#cmdoption-nsupdate-P"><code class="xref std std-option docutils literal notranslate"><span class="pre">-P</span></code></a>
option.</p>
<p>Other types can be entered using <code class="docutils literal notranslate"><span class="pre">TYPEXXXXX</span></code> where <code class="docutils literal notranslate"><span class="pre">XXXXX</span></code> is the
decimal value of the type with no leading zeros. The rdata, if
present, is parsed using the UNKNOWN rdata format, (<backslash>
<hash> <space> <length> <space> <hexstring>).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-u">
<span class="sig-name descname"><span class="pre">-u</span></span><span class="sig-prename descclassname"> <span class="pre">udptimeout</span></span><a class="headerlink" href="#cmdoption-nsupdate-u" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-v">
<span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-nsupdate-v" title="Link to this definition"></a></dt>
<dd><p>This option specifies that TCP should be used even for small update requests. By default, <strong class="program">nsupdate</strong> 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 is used. TCP may
be preferable when a batch of update requests is made.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-V">
<span class="sig-name descname"><span class="pre">-V</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-nsupdate-V" title="Link to this definition"></a></dt>
<dd><p>This option prints the version number and exits.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-nsupdate-y">
<span class="sig-name descname"><span class="pre">-y</span></span><span class="sig-prename descclassname"> <span class="pre">[hmac:]keyname:secret</span></span><a class="headerlink" href="#cmdoption-nsupdate-y" title="Link to this definition"></a></dt>
<dd><p>This option sets the literal TSIG authentication key. <code class="docutils literal notranslate"><span class="pre">keyname</span></code> is the name of the key,
and <code class="docutils literal notranslate"><span class="pre">secret</span></code> is the base64 encoded shared secret. <code class="docutils literal notranslate"><span class="pre">hmac</span></code> is the
name of the key algorithm; valid choices are <code class="docutils literal notranslate"><span class="pre">hmac-md5</span></code>,
<code class="docutils literal notranslate"><span class="pre">hmac-sha1</span></code>, <code class="docutils literal notranslate"><span class="pre">hmac-sha224</span></code>, <code class="docutils literal notranslate"><span class="pre">hmac-sha256</span></code>, <code class="docutils literal notranslate"><span class="pre">hmac-sha384</span></code>, or
<code class="docutils literal notranslate"><span class="pre">hmac-sha512</span></code>. If <code class="docutils literal notranslate"><span class="pre">hmac</span></code> is not specified, the default is
<code class="docutils literal notranslate"><span class="pre">hmac-md5</span></code>, or if MD5 was disabled, <code class="docutils literal notranslate"><span class="pre">hmac-sha256</span></code>.</p>
<p>NOTE: Use of the <a class="reference internal" href="#cmdoption-nsupdate-y"><code class="xref std std-option docutils literal notranslate"><span class="pre">-y</span></code></a> option is discouraged because 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.</p>
</dd></dl>
</section>
<section id="input-format">
<h3>Input Format<a class="headerlink" href="#input-format" title="Link to this heading"></a></h3>
<p><strong class="program">nsupdate</strong> reads input from <code class="docutils literal notranslate"><span class="pre">filename</span></code> or standard input. Each
command is supplied on exactly one line of input. Some commands are for
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 are rejected if the
tests for the prerequisite conditions fail.</p>
<p>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 either present or missing from
the zone. A blank input line (or the <code class="docutils literal notranslate"><span class="pre">send</span></code> command) causes the
accumulated commands to be sent as one Dynamic DNS update request to the
name server.</p>
<p>The command formats and their meanings are as follows:</p>
<dl>
<dt><code class="docutils literal notranslate"><span class="pre">server</span> <span class="pre">servername</span> <span class="pre">port</span></code></dt><dd><p>This command sends all dynamic update requests to the name server <code class="docutils literal notranslate"><span class="pre">servername</span></code>.
When no server statement is provided, <strong class="program">nsupdate</strong> 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.
<code class="docutils literal notranslate"><span class="pre">port</span></code> is the port number on <code class="docutils literal notranslate"><span class="pre">servername</span></code> where the dynamic
update requests are sent. If no port number is specified, the default
DNS port number of 53 is used.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This command has no effect when GSS-TSIG is in use.</p>
</div>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">local</span> <span class="pre">address</span> <span class="pre">port</span></code></dt><dd><p>This command sends all dynamic update requests using the local <code class="docutils literal notranslate"><span class="pre">address</span></code>. When
no local statement is provided, <strong class="program">nsupdate</strong> sends updates using
an address and port chosen by the system. <code class="docutils literal notranslate"><span class="pre">port</span></code> can also
be used to force requests to come from a specific port. If no port number
is specified, the system assigns one.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">zone</span> <span class="pre">zonename</span></code></dt><dd><p>This command specifies that all updates are to be made to the zone <code class="docutils literal notranslate"><span class="pre">zonename</span></code>.
If no <code class="docutils literal notranslate"><span class="pre">zone</span></code> statement is provided, <strong class="program">nsupdate</strong> attempts to
determine the correct zone to update based on the rest of the input.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">class</span> <span class="pre">classname</span></code></dt><dd><p>This command specifies the default class. If no <code class="docutils literal notranslate"><span class="pre">class</span></code> is specified, the default
class is <code class="docutils literal notranslate"><span class="pre">IN</span></code>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">ttl</span> <span class="pre">seconds</span></code></dt><dd><p>This command specifies the default time-to-live, in seconds, for records to be added. The value
<code class="docutils literal notranslate"><span class="pre">none</span></code> clears the default TTL.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">key</span> <span class="pre">hmac:keyname</span> <span class="pre">secret</span></code></dt><dd><p>This command specifies that all updates are to be TSIG-signed using the
<code class="docutils literal notranslate"><span class="pre">keyname</span></code>-<code class="docutils literal notranslate"><span class="pre">secret</span></code> pair. If <code class="docutils literal notranslate"><span class="pre">hmac</span></code> is specified, it sets
the signing algorithm in use. The default is <code class="docutils literal notranslate"><span class="pre">hmac-md5</span></code>; if MD5
was disabled, the default is <code class="docutils literal notranslate"><span class="pre">hmac-sha256</span></code>. The <code class="docutils literal notranslate"><span class="pre">key</span></code> command overrides any key
specified on the command line via <a class="reference internal" href="#cmdoption-nsupdate-y"><code class="xref std std-option docutils literal notranslate"><span class="pre">-y</span></code></a> or <a class="reference internal" href="#cmdoption-nsupdate-k"><code class="xref std std-option docutils literal notranslate"><span class="pre">-k</span></code></a>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">gsstsig</span></code></dt><dd><p>This command uses GSS-TSIG to sign the updates. This is equivalent to specifying
<a class="reference internal" href="#cmdoption-nsupdate-g"><code class="xref std std-option docutils literal notranslate"><span class="pre">-g</span></code></a> on the command line.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">oldgsstsig</span></code></dt><dd><p>This command uses the Windows 2000 version of GSS-TSIG to sign the updates. This is
equivalent to specifying <a class="reference internal" href="#cmdoption-nsupdate-o"><code class="xref std std-option docutils literal notranslate"><span class="pre">-o</span></code></a> on the command line.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">realm</span> <span class="pre">[realm_name]</span></code></dt><dd><p>When using GSS-TSIG, this command specifies the use of <code class="docutils literal notranslate"><span class="pre">realm_name</span></code> rather than the default realm
in <code class="docutils literal notranslate"><span class="pre">krb5.conf</span></code>. If no realm is specified, the saved realm is
cleared.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">check-names</span> <span class="pre">[boolean]</span></code></dt><dd><p>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 is not added to the UPDATE message.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">prereq</span> <span class="pre">nxdomain</span> <span class="pre">domain-name</span></code></dt><dd><p>This command requires that no resource record of any type exist with the name
<code class="docutils literal notranslate"><span class="pre">domain-name</span></code>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">prereq</span> <span class="pre">yxdomain</span> <span class="pre">domain-name</span></code></dt><dd><p>This command requires that <code class="docutils literal notranslate"><span class="pre">domain-name</span></code> exist (as at least one resource
record, of any type).</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">prereq</span> <span class="pre">nxrrset</span> <span class="pre">domain-name</span> <span class="pre">class</span> <span class="pre">type</span></code></dt><dd><p>This command requires that no resource record exist of the specified <code class="docutils literal notranslate"><span class="pre">type</span></code>,
<code class="docutils literal notranslate"><span class="pre">class</span></code>, and <code class="docutils literal notranslate"><span class="pre">domain-name</span></code>. If <code class="docutils literal notranslate"><span class="pre">class</span></code> is omitted, IN (Internet)
is assumed.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">prereq</span> <span class="pre">yxrrset</span> <span class="pre">domain-name</span> <span class="pre">class</span> <span class="pre">type</span></code></dt><dd><p>This command requires that a resource record of the specified <code class="docutils literal notranslate"><span class="pre">type</span></code>,
<code class="docutils literal notranslate"><span class="pre">class</span></code> and <code class="docutils literal notranslate"><span class="pre">domain-name</span></code> exist. If <code class="docutils literal notranslate"><span class="pre">class</span></code> is omitted, IN
(internet) is assumed.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">prereq</span> <span class="pre">yxrrset</span> <span class="pre">domain-name</span> <span class="pre">class</span> <span class="pre">type</span> <span class="pre">data</span></code></dt><dd><p>With this command, the <code class="docutils literal notranslate"><span class="pre">data</span></code> from each set of prerequisites of this form sharing a
common <code class="docutils literal notranslate"><span class="pre">type</span></code>, <code class="docutils literal notranslate"><span class="pre">class</span></code>, and <code class="docutils literal notranslate"><span class="pre">domain-name</span></code> 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 <code class="docutils literal notranslate"><span class="pre">type</span></code>, <code class="docutils literal notranslate"><span class="pre">class</span></code>, and
<code class="docutils literal notranslate"><span class="pre">domain-name</span></code>. The <code class="docutils literal notranslate"><span class="pre">data</span></code> are written in the standard text
representation of the resource record’s RDATA.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">update</span> <span class="pre">delete</span> <span class="pre">domain-name</span> <span class="pre">ttl</span> <span class="pre">class</span> <span class="pre">type</span> <span class="pre">data</span></code></dt><dd><p>This command deletes any resource records named <code class="docutils literal notranslate"><span class="pre">domain-name</span></code>. If <code class="docutils literal notranslate"><span class="pre">type</span></code> and
<code class="docutils literal notranslate"><span class="pre">data</span></code> are provided, only matching resource records are removed.
The Internet class is assumed if <code class="docutils literal notranslate"><span class="pre">class</span></code> is not supplied. The
<code class="docutils literal notranslate"><span class="pre">ttl</span></code> is ignored, and is only allowed for compatibility.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">update</span> <span class="pre">add</span> <span class="pre">domain-name</span> <span class="pre">ttl</span> <span class="pre">class</span> <span class="pre">type</span> <span class="pre">data</span></code></dt><dd><p>This command adds a new resource record with the specified <code class="docutils literal notranslate"><span class="pre">ttl</span></code>, <code class="docutils literal notranslate"><span class="pre">class</span></code>, and
<code class="docutils literal notranslate"><span class="pre">data</span></code>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">show</span></code></dt><dd><p>This command displays the current message, containing all of the prerequisites and
updates specified since the last send.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">send</span></code></dt><dd><p>This command sends the current message. This is equivalent to entering a blank
line.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">answer</span></code></dt><dd><p>This command displays the answer.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">debug</span></code></dt><dd><p>This command turns on debugging.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">version</span></code></dt><dd><p>This command prints the version number.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">help</span></code></dt><dd><p>This command prints a list of commands.</p>
</dd>
</dl>
<p>Lines beginning with a semicolon (;) are comments and are ignored.</p>
</section>
<section id="id125">
<h3>Examples<a class="headerlink" href="#id125" title="Link to this heading"></a></h3>
<p>The examples below show how <strong class="program">nsupdate</strong> can be used to insert and
delete resource records from the <code class="docutils literal notranslate"><span class="pre">example.com</span></code> zone. Notice that the
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 <code class="docutils literal notranslate"><span class="pre">example.com</span></code>.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># nsupdate</span>
<span class="o">></span> <span class="n">update</span> <span class="n">delete</span> <span class="n">oldhost</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span> <span class="n">A</span>
<span class="o">></span> <span class="n">update</span> <span class="n">add</span> <span class="n">newhost</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span> <span class="mi">86400</span> <span class="n">A</span> <span class="mf">172.16.1.1</span>
<span class="o">></span> <span class="n">send</span>
</pre></div>
</div>
<p>Any A records for <code class="docutils literal notranslate"><span class="pre">oldhost.example.com</span></code> are deleted, and an A record
for <code class="docutils literal notranslate"><span class="pre">newhost.example.com</span></code> with IP address 172.16.1.1 is added. The
newly added record has a TTL of 1 day (86400 seconds).</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># nsupdate</span>
<span class="o">></span> <span class="n">prereq</span> <span class="n">nxdomain</span> <span class="n">nickname</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span>
<span class="o">></span> <span class="n">update</span> <span class="n">add</span> <span class="n">nickname</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span> <span class="mi">86400</span> <span class="n">CNAME</span> <span class="n">somehost</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span>
<span class="o">></span> <span class="n">send</span>
</pre></div>
</div>
<p>The prerequisite condition tells the name server to verify that there are
no resource records of any type for <code class="docutils literal notranslate"><span class="pre">nickname.example.com</span></code>. 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 <span class="target" id="index-77"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1034.html"><strong>RFC 1034</strong></a> 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 <span class="target" id="index-78"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2535.html"><strong>RFC 2535</strong></a> to allow CNAMEs to have RRSIG,
DNSKEY, and NSEC records.)</p>
</section>
<section id="id126">
<h3>Files<a class="headerlink" href="#id126" title="Link to this heading"></a></h3>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">/etc/resolv.conf</span></code></dt><dd><p>Used to identify the default name server</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">/run/session.key</span></code></dt><dd><p>Sets the default TSIG key for use in local-only mode</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">K{name}.+157.+{random}.key</span></code></dt><dd><p>Base-64 encoding of the HMAC-MD5 key created by <a class="reference internal" href="#std-iscman-dnssec-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-keygen</span></code></a>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">K{name}.+157.+{random}.private</span></code></dt><dd><p>Base-64 encoding of the HMAC-MD5 key created by <a class="reference internal" href="#std-iscman-dnssec-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-keygen</span></code></a>.</p>
</dd>
</dl>
</section>
<section id="id127">
<h3>See Also<a class="headerlink" href="#id127" title="Link to this heading"></a></h3>
<p><span class="target" id="index-79"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2136.html"><strong>RFC 2136</strong></a>, <span class="target" id="index-80"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3007.html"><strong>RFC 3007</strong></a>, <span class="target" id="index-81"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2104.html"><strong>RFC 2104</strong></a>, <span class="target" id="index-82"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2845.html"><strong>RFC 2845</strong></a>, <span class="target" id="index-83"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1034.html"><strong>RFC 1034</strong></a>, <span class="target" id="index-84"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2535.html"><strong>RFC 2535</strong></a>, <span class="target" id="index-85"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2931.html"><strong>RFC 2931</strong></a>,
<a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named(8)</span></code></a>, <a class="reference internal" href="#std-iscman-dnssec-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">dnssec-keygen(8)</span></code></a>, <a class="reference internal" href="#std-iscman-tsig-keygen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">tsig-keygen(8)</span></code></a>.</p>
</section>
<section id="id128">
<h3>Bugs<a class="headerlink" href="#id128" title="Link to this heading"></a></h3>
<p>The TSIG key is redundantly stored in two separate files. This is a
consequence of <strong class="program">nsupdate</strong> using the DST library for its cryptographic
operations, and may change in future releases.</p>
</section>
</section>
<section id="rndc-confgen-rndc-key-generation-tool">
<span id="man-rndc-confgen"></span><span id="std-iscman-rndc-confgen"></span><h2>rndc-confgen - rndc key generation tool<a class="headerlink" href="#rndc-confgen-rndc-key-generation-tool" title="Link to this heading"></a></h2>
<section id="id129">
<h3>Synopsis<a class="headerlink" href="#id129" title="Link to this heading"></a></h3>
<p><strong class="program">rndc-confgen</strong> [<strong>-a</strong>] [<strong>-A</strong> algorithm] [<strong>-b</strong> keysize] [<strong>-c</strong> keyfile] [<strong>-h</strong>] [<strong>-k</strong> keyname] [<strong>-p</strong> port] [<strong>-s</strong> address] [<strong>-t</strong> chrootdir] [<strong>-u</strong> user]</p>
</section>
<section id="id130">
<h3>Description<a class="headerlink" href="#id130" title="Link to this heading"></a></h3>
<p><strong class="program">rndc-confgen</strong> generates configuration files for <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc</span></code></a>. It can be
used as a convenient alternative to writing the <a class="reference internal" href="#std-iscman-rndc.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc.conf</span></code></a> file and
the corresponding <code class="docutils literal notranslate"><span class="pre">controls</span></code> and <code class="docutils literal notranslate"><span class="pre">key</span></code> statements in <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>
by hand. Alternatively, it can be run with the <a class="reference internal" href="#cmdoption-rndc-confgen-a"><code class="xref std std-option docutils literal notranslate"><span class="pre">-a</span></code></a> option to set up a
<code class="docutils literal notranslate"><span class="pre">rndc.key</span></code> file and avoid the need for a <a class="reference internal" href="#std-iscman-rndc.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc.conf</span></code></a> file and a
<code class="docutils literal notranslate"><span class="pre">controls</span></code> statement altogether.</p>
</section>
<section id="id131">
<h3>Options<a class="headerlink" href="#id131" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-confgen-a">
<span class="sig-name descname"><span class="pre">-a</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-rndc-confgen-a" title="Link to this definition"></a></dt>
<dd><p>This option sets automatic <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc</span></code></a> configuration, which creates a file
<code class="docutils literal notranslate"><span class="pre">/etc/bind/rndc.key</span></code> that is read by both <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc</span></code></a> and <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> on startup.
The <code class="docutils literal notranslate"><span class="pre">rndc.key</span></code> file defines a default command channel and
authentication key allowing <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc</span></code></a> to communicate with <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> on
the local host with no further configuration.</p>
<p>If a more elaborate configuration than that generated by
<a class="reference internal" href="#cmdoption-rndc-confgen-a"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc-confgen</span> <span class="pre">-a</span></code></a> is required, for example if rndc is to be used
remotely, run <strong class="program">rndc-confgen</strong> without the <a class="reference internal" href="#cmdoption-rndc-confgen-a"><code class="xref std std-option docutils literal notranslate"><span class="pre">-a</span></code></a> option
and set up <a class="reference internal" href="#std-iscman-rndc.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc.conf</span></code></a> and <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a> as directed.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-confgen-A">
<span class="sig-name descname"><span class="pre">-A</span></span><span class="sig-prename descclassname"> <span class="pre">algorithm</span></span><a class="headerlink" href="#cmdoption-rndc-confgen-A" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-confgen-b">
<span class="sig-name descname"><span class="pre">-b</span></span><span class="sig-prename descclassname"> <span class="pre">keysize</span></span><a class="headerlink" href="#cmdoption-rndc-confgen-b" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-confgen-c">
<span class="sig-name descname"><span class="pre">-c</span></span><span class="sig-prename descclassname"> <span class="pre">keyfile</span></span><a class="headerlink" href="#cmdoption-rndc-confgen-c" title="Link to this definition"></a></dt>
<dd><p>This option is used with the <a class="reference internal" href="#cmdoption-rndc-confgen-a"><code class="xref std std-option docutils literal notranslate"><span class="pre">-a</span></code></a> option to specify an alternate location for
<code class="docutils literal notranslate"><span class="pre">rndc.key</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-confgen-h">
<span class="sig-name descname"><span class="pre">-h</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-rndc-confgen-h" title="Link to this definition"></a></dt>
<dd><p>This option prints a short summary of the options and arguments to
<strong class="program">rndc-confgen</strong>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-confgen-k">
<span class="sig-name descname"><span class="pre">-k</span></span><span class="sig-prename descclassname"> <span class="pre">keyname</span></span><a class="headerlink" href="#cmdoption-rndc-confgen-k" title="Link to this definition"></a></dt>
<dd><p>This option specifies the key name of the <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc</span></code></a> authentication key. This must be a
valid domain name. The default is <code class="docutils literal notranslate"><span class="pre">rndc-key</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-confgen-p">
<span class="sig-name descname"><span class="pre">-p</span></span><span class="sig-prename descclassname"> <span class="pre">port</span></span><a class="headerlink" href="#cmdoption-rndc-confgen-p" title="Link to this definition"></a></dt>
<dd><p>This option specifies the command channel port where <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> listens for
connections from <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc</span></code></a>. The default is 953.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-confgen-q">
<span class="sig-name descname"><span class="pre">-q</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-rndc-confgen-q" title="Link to this definition"></a></dt>
<dd><p>This option prevets printing the written path in automatic configuration mode.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-confgen-s">
<span class="sig-name descname"><span class="pre">-s</span></span><span class="sig-prename descclassname"> <span class="pre">address</span></span><a class="headerlink" href="#cmdoption-rndc-confgen-s" title="Link to this definition"></a></dt>
<dd><p>This option specifies the IP address where <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> listens for command-channel
connections from <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc</span></code></a>. The default is the loopback address
127.0.0.1.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-confgen-t">
<span class="sig-name descname"><span class="pre">-t</span></span><span class="sig-prename descclassname"> <span class="pre">chrootdir</span></span><a class="headerlink" href="#cmdoption-rndc-confgen-t" title="Link to this definition"></a></dt>
<dd><p>This option is used with the <a class="reference internal" href="#cmdoption-rndc-confgen-a"><code class="xref std std-option docutils literal notranslate"><span class="pre">-a</span></code></a> option to specify a directory where <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>
runs chrooted. An additional copy of the <code class="docutils literal notranslate"><span class="pre">rndc.key</span></code> is
written relative to this directory, so that it is found by the
chrooted <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-confgen-u">
<span class="sig-name descname"><span class="pre">-u</span></span><span class="sig-prename descclassname"> <span class="pre">user</span></span><a class="headerlink" href="#cmdoption-rndc-confgen-u" title="Link to this definition"></a></dt>
<dd><p>This option is used with the <a class="reference internal" href="#cmdoption-rndc-confgen-a"><code class="xref std std-option docutils literal notranslate"><span class="pre">-a</span></code></a> option to set the owner of the generated <code class="docutils literal notranslate"><span class="pre">rndc.key</span></code> file.
If <a class="reference internal" href="#cmdoption-rndc-confgen-t"><code class="xref std std-option docutils literal notranslate"><span class="pre">-t</span></code></a> is also specified, only the file in the chroot
area has its owner changed.</p>
</dd></dl>
</section>
<section id="id132">
<h3>Examples<a class="headerlink" href="#id132" title="Link to this heading"></a></h3>
<p>To allow <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc</span></code></a> to be used with no manual configuration, run:</p>
<p><code class="docutils literal notranslate"><span class="pre">rndc-confgen</span> <span class="pre">-a</span></code></p>
<p>To print a sample <a class="reference internal" href="#std-iscman-rndc.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc.conf</span></code></a> file and the corresponding <code class="docutils literal notranslate"><span class="pre">controls</span></code> and
<code class="docutils literal notranslate"><span class="pre">key</span></code> statements to be manually inserted into <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>, run:</p>
<p><strong class="program">rndc-confgen</strong></p>
</section>
<section id="id133">
<h3>See Also<a class="headerlink" href="#id133" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc(8)</span></code></a>, <a class="reference internal" href="#std-iscman-rndc.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc.conf(5)</span></code></a>, <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named(8)</span></code></a>, BIND 9 Administrator Reference Manual.</p>
</section>
</section>
<section id="rndc-conf-rndc-configuration-file">
<span id="man-rndc-conf"></span><span id="std-iscman-rndc.conf"></span><h2>rndc.conf - rndc configuration file<a class="headerlink" href="#rndc-conf-rndc-configuration-file" title="Link to this heading"></a></h2>
<section id="id134">
<h3>Synopsis<a class="headerlink" href="#id134" title="Link to this heading"></a></h3>
<p><strong class="program">rndc.conf</strong></p>
</section>
<section id="id135">
<h3>Description<a class="headerlink" href="#id135" title="Link to this heading"></a></h3>
<p><strong class="program">rndc.conf</strong> is the configuration file for <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc</span></code></a>, the BIND 9 name
server control utility. This file has a similar structure and syntax to
<a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>. Statements are enclosed in braces and terminated with a
semi-colon. Clauses in the statements are also semi-colon terminated.
The usual comment styles are supported:</p>
<p>C style: /* */</p>
<p>C++ style: // to end of line</p>
<p>Unix style: # to end of line</p>
<p><strong class="program">rndc.conf</strong> is much simpler than <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>. The file uses three
statements: an options statement, a server statement, and a key
statement.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">options</span></code> statement contains five clauses. The <code class="docutils literal notranslate"><span class="pre">default-server</span></code>
clause is followed by the name or address of a name server. This host
is used when no name server is given as an argument to <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc</span></code></a>.
The <code class="docutils literal notranslate"><span class="pre">default-key</span></code> clause is followed by the name of a key, which is
identified by a <code class="docutils literal notranslate"><span class="pre">key</span></code> statement. If no <code class="docutils literal notranslate"><span class="pre">keyid</span></code> is provided on the
rndc command line, and no <code class="docutils literal notranslate"><span class="pre">key</span></code> clause is found in a matching
<code class="docutils literal notranslate"><span class="pre">server</span></code> statement, this default key is used to authenticate the
server’s commands and responses. The <code class="docutils literal notranslate"><span class="pre">default-port</span></code> clause is followed
by the port to connect to on the remote name server. If no <code class="docutils literal notranslate"><span class="pre">port</span></code>
option is provided on the rndc command line, and no <code class="docutils literal notranslate"><span class="pre">port</span></code> clause is
found in a matching <code class="docutils literal notranslate"><span class="pre">server</span></code> statement, this default port is used
to connect. The <code class="docutils literal notranslate"><span class="pre">default-source-address</span></code> and
<code class="docutils literal notranslate"><span class="pre">default-source-address-v6</span></code> clauses can be used to set the IPv4
and IPv6 source addresses respectively.</p>
<p>After the <code class="docutils literal notranslate"><span class="pre">server</span></code> keyword, the server statement includes a string
which is the hostname or address for a name server. The statement has
three possible clauses: <code class="docutils literal notranslate"><span class="pre">key</span></code>, <code class="docutils literal notranslate"><span class="pre">port</span></code>, and <code class="docutils literal notranslate"><span class="pre">addresses</span></code>. 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 <code class="docutils literal notranslate"><span class="pre">addresses</span></code> clause is supplied,
these addresses are used instead of the server name. Each address
can take an optional port. If an <code class="docutils literal notranslate"><span class="pre">source-address</span></code> or
<code class="docutils literal notranslate"><span class="pre">source-address-v6</span></code> is supplied, it is used to specify the
IPv4 and IPv6 source address, respectively.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">key</span></code> statement begins with an identifying string, the name of the
key. The statement has two clauses. <code class="docutils literal notranslate"><span class="pre">algorithm</span></code> identifies the
authentication algorithm for <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc</span></code></a> 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
clause which contains the base-64 encoding of the algorithm’s
authentication key. The base-64 string is enclosed in double quotes.</p>
<p>There are two common ways to generate the base-64 string for the secret.
The BIND 9 program <a class="reference internal" href="#std-iscman-rndc-confgen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc-confgen</span></code></a> can be used to generate a random
key, or the <code class="docutils literal notranslate"><span class="pre">mmencode</span></code> program, also known as <code class="docutils literal notranslate"><span class="pre">mimencode</span></code>, can be
used to generate a base-64 string from known input. <code class="docutils literal notranslate"><span class="pre">mmencode</span></code> does
not ship with BIND 9 but is available on many systems. See the Example
section for sample command lines for each.</p>
</section>
<section id="id136">
<h3>Example<a class="headerlink" href="#id136" title="Link to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">options</span> <span class="p">{</span>
<span class="n">default</span><span class="o">-</span><span class="n">server</span> <span class="n">localhost</span><span class="p">;</span>
<span class="n">default</span><span class="o">-</span><span class="n">key</span> <span class="n">samplekey</span><span class="p">;</span>
<span class="p">};</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">server</span> <span class="n">localhost</span> <span class="p">{</span>
<span class="n">key</span> <span class="n">samplekey</span><span class="p">;</span>
<span class="p">};</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">server</span> <span class="n">testserver</span> <span class="p">{</span>
<span class="n">key</span> <span class="n">testkey</span><span class="p">;</span>
<span class="n">addresses</span> <span class="p">{</span> <span class="n">localhost</span> <span class="n">port</span> <span class="mi">5353</span><span class="p">;</span> <span class="p">};</span>
<span class="p">};</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">key</span> <span class="n">samplekey</span> <span class="p">{</span>
<span class="n">algorithm</span> <span class="n">hmac</span><span class="o">-</span><span class="n">sha256</span><span class="p">;</span>
<span class="n">secret</span> <span class="s2">"6FMfj43Osz4lyb24OIe2iGEz9lf1llJO+lz"</span><span class="p">;</span>
<span class="p">};</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">key</span> <span class="n">testkey</span> <span class="p">{</span>
<span class="n">algorithm</span> <span class="n">hmac</span><span class="o">-</span><span class="n">sha256</span><span class="p">;</span>
<span class="n">secret</span> <span class="s2">"R3HI8P6BKw9ZwXwN3VZKuQ=="</span><span class="p">;</span>
<span class="p">};</span>
</pre></div>
</div>
<p>In the above example, <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc</span></code></a> 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
and its secret clause contains the base-64 encoding of the HMAC-SHA256
secret enclosed in double quotes.</p>
<p>If <a class="reference internal" href="#cmdoption-rndc-s"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">-s</span> <span class="pre">testserver</span></code></a> is used, then <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc</span></code></a> connects to the server
on localhost port 5353 using the key “testkey”.</p>
<p>To generate a random secret with <a class="reference internal" href="#std-iscman-rndc-confgen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc-confgen</span></code></a>:</p>
<p><a class="reference internal" href="#std-iscman-rndc-confgen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc-confgen</span></code></a></p>
<p>A complete <strong class="program">rndc.conf</strong> file, including the randomly generated key,
is written to the standard output. Commented-out <code class="docutils literal notranslate"><span class="pre">key</span></code> and
<code class="docutils literal notranslate"><span class="pre">controls</span></code> statements for <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a> are also printed.</p>
<p>To generate a base-64 secret with <code class="docutils literal notranslate"><span class="pre">mmencode</span></code>:</p>
<p><code class="docutils literal notranslate"><span class="pre">echo</span> <span class="pre">"known</span> <span class="pre">plaintext</span> <span class="pre">for</span> <span class="pre">a</span> <span class="pre">secret"</span> <span class="pre">|</span> <span class="pre">mmencode</span></code></p>
</section>
<section id="name-server-configuration">
<h3>Name Server Configuration<a class="headerlink" href="#name-server-configuration" title="Link to this heading"></a></h3>
<p>The name server must be configured to accept rndc connections and to
recognize the key specified in the <strong class="program">rndc.conf</strong> file, using the
controls statement in <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>. See the sections on the
<code class="docutils literal notranslate"><span class="pre">controls</span></code> statement in the BIND 9 Administrator Reference Manual for
details.</p>
</section>
<section id="id137">
<h3>See Also<a class="headerlink" href="#id137" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc(8)</span></code></a>, <a class="reference internal" href="#std-iscman-rndc-confgen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc-confgen(8)</span></code></a>, <em class="manpage">mmencode(1)</em>, BIND 9 Administrator Reference Manual.</p>
</section>
</section>
<section id="rndc-name-server-control-utility">
<span id="man-rndc"></span><span id="std-iscman-rndc"></span><h2>rndc - name server control utility<a class="headerlink" href="#rndc-name-server-control-utility" title="Link to this heading"></a></h2>
<section id="id138">
<h3>Synopsis<a class="headerlink" href="#id138" title="Link to this heading"></a></h3>
<p><strong class="program">rndc</strong> [<strong>-b</strong> source-address] [<strong>-c</strong> config-file] [<strong>-k</strong> key-file] [<strong>-s</strong> server] [<strong>-p</strong> port] [<strong>-q</strong>] [<strong>-r</strong>] [<strong>-V</strong>] [<strong>-y</strong> server_key] [[<strong>-4</strong>] | [<strong>-6</strong>]] {command}</p>
</section>
<section id="id139">
<h3>Description<a class="headerlink" href="#id139" title="Link to this heading"></a></h3>
<p><strong class="program">rndc</strong> controls the operation of a name server. If <strong class="program">rndc</strong> 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.</p>
<p><strong class="program">rndc</strong> communicates with the name server over a TCP connection,
sending commands authenticated with digital signatures. In the current
versions of <strong class="program">rndc</strong> and <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>, 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, 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 server_key known to
the server.</p>
<p><strong class="program">rndc</strong> reads a configuration file to determine how to contact the name
server and decide what algorithm and key it should use.</p>
</section>
<section id="id140">
<h3>Options<a class="headerlink" href="#id140" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-4">
<span class="sig-name descname"><span class="pre">-4</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-rndc-4" title="Link to this definition"></a></dt>
<dd><p>This option indicates use of IPv4 only.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-6">
<span class="sig-name descname"><span class="pre">-6</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-rndc-6" title="Link to this definition"></a></dt>
<dd><p>This option indicates use of IPv6 only.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-b">
<span class="sig-name descname"><span class="pre">-b</span></span><span class="sig-prename descclassname"> <span class="pre">source-address</span></span><a class="headerlink" href="#cmdoption-rndc-b" title="Link to this definition"></a></dt>
<dd><p>This option indicates <code class="docutils literal notranslate"><span class="pre">source-address</span></code> 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-c">
<span class="sig-name descname"><span class="pre">-c</span></span><span class="sig-prename descclassname"> <span class="pre">config-file</span></span><a class="headerlink" href="#cmdoption-rndc-c" title="Link to this definition"></a></dt>
<dd><p>This option indicates <code class="docutils literal notranslate"><span class="pre">config-file</span></code> as the configuration file instead of the default,
<code class="docutils literal notranslate"><span class="pre">/etc/bind/rndc.conf</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-k">
<span class="sig-name descname"><span class="pre">-k</span></span><span class="sig-prename descclassname"> <span class="pre">key-file</span></span><a class="headerlink" href="#cmdoption-rndc-k" title="Link to this definition"></a></dt>
<dd><p>This option indicates <code class="docutils literal notranslate"><span class="pre">key-file</span></code> as the key file instead of the default,
<code class="docutils literal notranslate"><span class="pre">/etc/bind/rndc.key</span></code>. The key in <code class="docutils literal notranslate"><span class="pre">/etc/bind/rndc.key</span></code> is used to
authenticate commands sent to the server if the config-file does not
exist.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-s">
<span class="sig-name descname"><span class="pre">-s</span></span><span class="sig-prename descclassname"> <span class="pre">server</span></span><a class="headerlink" href="#cmdoption-rndc-s" title="Link to this definition"></a></dt>
<dd><p><code class="docutils literal notranslate"><span class="pre">server</span></code> is the name or address of the server which matches a server
statement in the configuration file for <strong class="program">rndc</strong>. If no server is
supplied on the command line, the host named by the default-server
clause in the options statement of the <strong class="program">rndc</strong> configuration file
is used.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-p">
<span class="sig-name descname"><span class="pre">-p</span></span><span class="sig-prename descclassname"> <span class="pre">port</span></span><a class="headerlink" href="#cmdoption-rndc-p" title="Link to this definition"></a></dt>
<dd><p>This option instructs BIND 9 to send commands to TCP port <code class="docutils literal notranslate"><span class="pre">port</span></code> instead of its default control
channel port, 953.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-q">
<span class="sig-name descname"><span class="pre">-q</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-rndc-q" title="Link to this definition"></a></dt>
<dd><p>This option sets quiet mode, where message text returned by the server is not printed
unless there is an error.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-r">
<span class="sig-name descname"><span class="pre">-r</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-rndc-r" title="Link to this definition"></a></dt>
<dd><p>This option instructs <strong class="program">rndc</strong> to print the result code returned by <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>
after executing the requested command (e.g., ISC_R_SUCCESS,
ISC_R_FAILURE, etc.).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-V">
<span class="sig-name descname"><span class="pre">-V</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-rndc-V" title="Link to this definition"></a></dt>
<dd><p>This option enables verbose logging.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-y">
<span class="sig-name descname"><span class="pre">-y</span></span><span class="sig-prename descclassname"> <span class="pre">server_key</span></span><a class="headerlink" href="#cmdoption-rndc-y" title="Link to this definition"></a></dt>
<dd><p>This option indicates use of the key <code class="docutils literal notranslate"><span class="pre">server_key</span></code> from the configuration file. For control message validation to succeed, <code class="docutils literal notranslate"><span class="pre">server_key</span></code> must be known
by <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> with the same algorithm and secret string. If no <code class="docutils literal notranslate"><span class="pre">server_key</span></code> is specified,
<strong class="program">rndc</strong> 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 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, and should therefore
not have general read or write access.</p>
</dd></dl>
</section>
<section id="commands">
<h3>Commands<a class="headerlink" href="#commands" title="Link to this heading"></a></h3>
<p>A list of commands supported by <strong class="program">rndc</strong> can be seen by running <strong class="program">rndc</strong>
without arguments.</p>
<p>Currently supported commands are:</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-addzone">
<span class="sig-name descname"><span class="pre">addzone</span></span><span class="sig-prename descclassname"> <span class="pre">zone</span> <span class="pre">[class</span> <span class="pre">[view]]</span> <span class="pre">configuration</span></span><a class="headerlink" href="#cmdoption-rndc-arg-addzone" title="Link to this definition"></a></dt>
<dd><p>This command adds a zone while the server is running. This command requires the
<code class="docutils literal notranslate"><span class="pre">allow-new-zones</span></code> option to be set to <code class="docutils literal notranslate"><span class="pre">yes</span></code>. The configuration
string specified on the command line is the zone configuration text
that would ordinarily be placed in <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>.</p>
<p>The configuration is saved in a file called <code class="docutils literal notranslate"><span class="pre">viewname.nzf</span></code> (or, if
<a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> is compiled with liblmdb, an LMDB database file called
<code class="docutils literal notranslate"><span class="pre">viewname.nzd</span></code>). <code class="docutils literal notranslate"><span class="pre">viewname</span></code> 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 <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> is restarted, the file is loaded into
the view configuration so that zones that were added can persist
after a restart.</p>
<p>This sample <code class="docutils literal notranslate"><span class="pre">addzone</span></code> command adds the zone <code class="docutils literal notranslate"><span class="pre">example.com</span></code> to
the default view:</p>
<p><code class="docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">addzone</span> <span class="pre">example.com</span> <span class="pre">'{</span> <span class="pre">type</span> <span class="pre">primary;</span> <span class="pre">file</span> <span class="pre">"example.com.db";</span> <span class="pre">};'</span></code></p>
<p>(Note the brackets around and semi-colon after the zone configuration
text.)</p>
<p>See also <a class="reference internal" href="#cmdoption-rndc-arg-delzone"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">delzone</span></code></a> and <a class="reference internal" href="#cmdoption-rndc-arg-modzone"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">modzone</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-delzone">
<span class="sig-name descname"><span class="pre">delzone</span></span><span class="sig-prename descclassname"> <span class="pre">[-clean]</span> <span class="pre">zone</span> <span class="pre">[class</span> <span class="pre">[view]]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-delzone" title="Link to this definition"></a></dt>
<dd><p>This command deletes a zone while the server is running.</p>
<p>If the <code class="docutils literal notranslate"><span class="pre">-clean</span></code> argument is specified, the zone’s master file (and
journal file, if any) are deleted along with the zone. Without
the <code class="docutils literal notranslate"><span class="pre">-clean</span></code> option, zone files must be deleted manually. (If the
zone is of type <code class="docutils literal notranslate"><span class="pre">secondary</span></code> or <code class="docutils literal notranslate"><span class="pre">stub</span></code>, the files needing to be removed
are reported in the output of the <code class="docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">delzone</span></code> command.)</p>
<p>If the zone was originally added via <code class="docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">addzone</span></code>, then it is
removed permanently. However, if it was originally configured in
<a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>, 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
<a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>.</p>
<p>See also <a class="reference internal" href="#cmdoption-rndc-arg-addzone"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">addzone</span></code></a> and <a class="reference internal" href="#cmdoption-rndc-arg-modzone"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">modzone</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-dnssec">
<span class="sig-name descname"><span class="pre">dnssec</span></span><span class="sig-prename descclassname"> <span class="pre">(-status</span> <span class="pre">|</span> <span class="pre">-rollover</span> <span class="pre">-key</span> <span class="pre">id</span> <span class="pre">[-alg</span> <span class="pre">algorithm]</span> <span class="pre">[-when</span> <span class="pre">time]</span> <span class="pre">|</span> <span class="pre">-checkds</span> <span class="pre">[-key</span> <span class="pre">id</span> <span class="pre">[-alg</span> <span class="pre">algorithm]]</span> <span class="pre">[-when</span> <span class="pre">time]</span>  <span class="pre">published</span> <span class="pre">|</span> <span class="pre">withdrawn))</span> <span class="pre">zone</span> <span class="pre">[class</span> <span class="pre">[view]]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-dnssec" title="Link to this definition"></a></dt>
<dd><p>This command allows you to interact with the “dnssec-policy” of a given
zone.</p>
<p><code class="docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">dnssec</span> <span class="pre">-status</span></code> show the DNSSEC signing state for the specified
zone.</p>
<p><code class="docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">dnssec</span> <span class="pre">-rollover</span></code> allows you to schedule key rollover for a
specific key (overriding the original key lifetime).</p>
<p><code class="docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">dnssec</span> <span class="pre">-checkds</span></code> informs <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> that the DS for
a specified zone’s key-signing key has been confirmed to be published
in, or withdrawn from, the parent zone. This is required in order to
complete a KSK rollover. The <code class="docutils literal notranslate"><span class="pre">-key</span> <span class="pre">id</span></code> and <code class="docutils literal notranslate"><span class="pre">-alg</span> <span class="pre">algorithm</span></code> arguments
can be used to specify a particular KSK, if necessary; if there is only
one key acting as a KSK for the zone, these arguments can be omitted.
The time of publication or withdrawal for the DS is set to the current
time by default, but can be overridden to a specific time with the
argument <code class="docutils literal notranslate"><span class="pre">-when</span> <span class="pre">time</span></code>, where <code class="docutils literal notranslate"><span class="pre">time</span></code> is expressed in YYYYMMDDHHMMSS
notation.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-dnstap">
<span class="sig-name descname"><span class="pre">dnstap</span></span><span class="sig-prename descclassname"> <span class="pre">(-reopen</span> <span class="pre">|</span> <span class="pre">-roll</span> <span class="pre">[number])</span></span><a class="headerlink" href="#cmdoption-rndc-arg-dnstap" title="Link to this definition"></a></dt>
<dd><p>This command closes and re-opens DNSTAP output files.</p>
<p><code class="docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">dnstap</span> <span class="pre">-reopen</span></code> allows
the output file to be renamed externally, so that <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> can
truncate and re-open it.</p>
<p><code class="docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">dnstap</span> <span class="pre">-roll</span></code> causes the output file
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 <code class="docutils literal notranslate"><span class="pre">number</span></code> is specified, then
the number of backup log files is limited to that number.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-dumpdb">
<span class="sig-name descname"><span class="pre">dumpdb</span></span><span class="sig-prename descclassname"> <span class="pre">[-all</span> <span class="pre">|</span> <span class="pre">-cache</span> <span class="pre">|</span> <span class="pre">-zones</span> <span class="pre">|</span> <span class="pre">-adb</span> <span class="pre">|</span> <span class="pre">-bad</span> <span class="pre">|</span> <span class="pre">-expired</span> <span class="pre">|</span> <span class="pre">-fail]</span> <span class="pre">[view</span> <span class="pre">...]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-dumpdb" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">dump-file</span></code> option in the BIND 9 Administrator Reference
Manual.)</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-flush">
<span class="sig-name descname"><span class="pre">flush</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-rndc-arg-flush" title="Link to this definition"></a></dt>
<dd><p>This command flushes the server’s cache.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-flushname">
<span class="sig-name descname"><span class="pre">flushname</span></span><span class="sig-prename descclassname"> <span class="pre">name</span> <span class="pre">[view]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-flushname" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-flushtree">
<span class="sig-name descname"><span class="pre">flushtree</span></span><span class="sig-prename descclassname"> <span class="pre">name</span> <span class="pre">[view]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-flushtree" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-freeze">
<span class="sig-name descname"><span class="pre">freeze</span></span><span class="sig-prename descclassname"> <span class="pre">[zone</span> <span class="pre">[class</span> <span class="pre">[view]]]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-freeze" title="Link to this definition"></a></dt>
<dd><p>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, and causes changes in the
journal file to be synced into the master file. All dynamic update
attempts are refused while the zone is frozen.</p>
<p>See also <a class="reference internal" href="#cmdoption-rndc-arg-thaw"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">thaw</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-halt">
<span class="sig-name descname"><span class="pre">halt</span></span><span class="sig-prename descclassname"> <span class="pre">[-p]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-halt" title="Link to this definition"></a></dt>
<dd><p>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
<code class="docutils literal notranslate"><span class="pre">-p</span></code> is specified, <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>’s process ID is returned. This allows
an external process to determine when <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> has completed
halting.</p>
<p>See also <a class="reference internal" href="#cmdoption-rndc-arg-stop"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">stop</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-loadkeys">
<span class="sig-name descname"><span class="pre">loadkeys</span></span><span class="sig-prename descclassname"> <span class="pre">[zone</span> <span class="pre">[class</span> <span class="pre">[view]]]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-loadkeys" title="Link to this definition"></a></dt>
<dd><p>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 <a class="reference internal" href="#cmdoption-rndc-arg-sign"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">sign</span></code></a>, however, the zone is not
immediately re-signed by the new keys, but is allowed to
incrementally re-sign over time.</p>
<p>This command requires that the zone be configured with a <code class="docutils literal notranslate"><span class="pre">dnssec-policy</span></code>, or
that the <code class="docutils literal notranslate"><span class="pre">auto-dnssec</span></code> zone option be set to <code class="docutils literal notranslate"><span class="pre">maintain</span></code>, and also requires the
zone to be configured to allow dynamic DNS. (See “Dynamic Update Policies” in
the Administrator Reference Manual for more details.)</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-managed-keys">
<span class="sig-name descname"><span class="pre">managed-keys</span></span><span class="sig-prename descclassname"> <span class="pre">(status</span> <span class="pre">|</span> <span class="pre">refresh</span> <span class="pre">|</span> <span class="pre">sync</span> <span class="pre">|</span> <span class="pre">destroy)</span> <span class="pre">[class</span> <span class="pre">[view]]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-managed-keys" title="Link to this definition"></a></dt>
<dd><p>This command inspects and controls the “managed-keys” database which handles
<span class="target" id="index-86"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc5011.html"><strong>RFC 5011</strong></a> DNSSEC trust anchor maintenance. If a view is specified, these
commands are applied to that view; otherwise, they are applied to all
views.</p>
<ul>
<li><p>When run with the <code class="docutils literal notranslate"><span class="pre">status</span></code> keyword, this prints the current status of
the managed-keys database.</p></li>
<li><p>When run with the <code class="docutils literal notranslate"><span class="pre">refresh</span></code> 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.</p></li>
<li><p>When run with the <code class="docutils literal notranslate"><span class="pre">sync</span></code> keyword, this forces an immediate dump of
the managed-keys database to disk (in the file
<code class="docutils literal notranslate"><span class="pre">managed-keys.bind</span></code> or (<code class="docutils literal notranslate"><span class="pre">viewname.mkeys</span></code>). This synchronizes
the database with its journal file, so that the database’s current
contents can be inspected visually.</p></li>
<li><p>When run with the <code class="docutils literal notranslate"><span class="pre">destroy</span></code> keyword, the managed-keys database
is shut down and deleted, and all key maintenance is terminated.
This command should be used only with extreme caution.</p>
<p>Existing keys that are already trusted are not deleted from
memory; DNSSEC validation can continue after this command is used.
However, key maintenance operations cease until <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> is
restarted or reconfigured, and all existing key maintenance states
are deleted.</p>
<p>Running <a class="reference internal" href="#cmdoption-rndc-arg-reconfig"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">reconfig</span></code></a> or restarting <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> 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
keys in the event of a trust anchor rollover, or as a brute-force
repair for key maintenance problems.</p>
</li>
</ul>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-modzone">
<span class="sig-name descname"><span class="pre">modzone</span></span><span class="sig-prename descclassname"> <span class="pre">zone</span> <span class="pre">[class</span> <span class="pre">[view]]</span> <span class="pre">configuration</span></span><a class="headerlink" href="#cmdoption-rndc-arg-modzone" title="Link to this definition"></a></dt>
<dd><p>This command modifies the configuration of a zone while the server is running. This
command requires the <code class="docutils literal notranslate"><span class="pre">allow-new-zones</span></code> option to be set to <code class="docutils literal notranslate"><span class="pre">yes</span></code>.
As with <code class="docutils literal notranslate"><span class="pre">addzone</span></code>, the configuration string specified on the
command line is the zone configuration text that would ordinarily be
placed in <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>.</p>
<p>If the zone was originally added via <a class="reference internal" href="#cmdoption-rndc-arg-addzone"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">addzone</span></code></a>, the
configuration changes are recorded permanently and are still
in effect after the server is restarted or reconfigured. However, if
it was originally configured in <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>, then that original
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
<a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>.</p>
<p>See also <a class="reference internal" href="#cmdoption-rndc-arg-addzone"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">addzone</span></code></a> and <a class="reference internal" href="#cmdoption-rndc-arg-delzone"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">delzone</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-notify">
<span class="sig-name descname"><span class="pre">notify</span></span><span class="sig-prename descclassname"> <span class="pre">zone</span> <span class="pre">[class</span> <span class="pre">[view]]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-notify" title="Link to this definition"></a></dt>
<dd><p>This command resends NOTIFY messages for the zone.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-notrace">
<span class="sig-name descname"><span class="pre">notrace</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-rndc-arg-notrace" title="Link to this definition"></a></dt>
<dd><p>This command sets the server’s debugging level to 0.</p>
<p>See also <a class="reference internal" href="#cmdoption-rndc-arg-trace"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">trace</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-nta">
<span class="sig-name descname"><span class="pre">nta</span></span><span class="sig-prename descclassname"> <span class="pre">[(-class</span> <span class="pre">class</span> <span class="pre">|</span> <span class="pre">-dump</span> <span class="pre">|</span> <span class="pre">-force</span> <span class="pre">|</span> <span class="pre">-remove</span> <span class="pre">|</span> <span class="pre">-lifetime</span> <span class="pre">duration)]</span> <span class="pre">domain</span> <span class="pre">[view]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-nta" title="Link to this definition"></a></dt>
<dd><p>This command sets a DNSSEC negative trust anchor (NTA) for <code class="docutils literal notranslate"><span class="pre">domain</span></code>, with a
lifetime of <code class="docutils literal notranslate"><span class="pre">duration</span></code>. The default lifetime is configured in
<a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a> via the <code class="docutils literal notranslate"><span class="pre">nta-lifetime</span></code> option, and defaults to one
hour. The lifetime cannot exceed one week.</p>
<p>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), <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>
aborts the DNSSEC validation process and treats the data as insecure
rather than bogus. This continues until the NTA’s lifetime has
elapsed.</p>
<p>NTAs persist across restarts of the <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> server. The NTAs for a
view are saved in a file called <code class="docutils literal notranslate"><span class="pre">name.nta</span></code>, where <code class="docutils literal notranslate"><span class="pre">name</span></code> 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.</p>
<p>An existing NTA can be removed by using the <code class="docutils literal notranslate"><span class="pre">-remove</span></code> option.</p>
<p>An NTA’s lifetime can be specified with the <code class="docutils literal notranslate"><span class="pre">-lifetime</span></code> option.
TTL-style suffixes can be used to specify the lifetime in seconds,
minutes, or hours. If the specified NTA already exists, its lifetime
is updated to the new value. Setting <code class="docutils literal notranslate"><span class="pre">lifetime</span></code> to zero is
equivalent to <code class="docutils literal notranslate"><span class="pre">-remove</span></code>.</p>
<p>If <code class="docutils literal notranslate"><span class="pre">-dump</span></code> 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.</p>
<p>Normally, <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> periodically tests to see whether data below
an NTA can now be validated (see the <code class="docutils literal notranslate"><span class="pre">nta-recheck</span></code> option in the
Administrator Reference Manual for details). If data can be
validated, then the NTA is regarded as no longer necessary and is
allowed to expire early. The <code class="docutils literal notranslate"><span class="pre">-force</span></code> 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.</p>
<p>The view class can be specified with <code class="docutils literal notranslate"><span class="pre">-class</span></code>. The default is class
<code class="docutils literal notranslate"><span class="pre">IN</span></code>, which is the only class for which DNSSEC is currently
supported.</p>
<p>All of these options can be shortened, i.e., to <code class="docutils literal notranslate"><span class="pre">-l</span></code>, <code class="docutils literal notranslate"><span class="pre">-r</span></code>,
<code class="docutils literal notranslate"><span class="pre">-d</span></code>, <code class="docutils literal notranslate"><span class="pre">-f</span></code>, and <code class="docutils literal notranslate"><span class="pre">-c</span></code>.</p>
<p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-querylog">
<span class="sig-name descname"><span class="pre">querylog</span></span><span class="sig-prename descclassname"> <span class="pre">[(on</span> <span class="pre">|</span> <span class="pre">off)]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-querylog" title="Link to this definition"></a></dt>
<dd><p>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.</p>
<p>Query logging can also be enabled by explicitly directing the
<code class="docutils literal notranslate"><span class="pre">queries</span></code> <code class="docutils literal notranslate"><span class="pre">category</span></code> to a <code class="docutils literal notranslate"><span class="pre">channel</span></code> in the <code class="docutils literal notranslate"><span class="pre">logging</span></code> section
of <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>, or by specifying <code class="docutils literal notranslate"><span class="pre">querylog</span> <span class="pre">yes;</span></code> in the
<code class="docutils literal notranslate"><span class="pre">options</span></code> section of <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-reconfig">
<span class="sig-name descname"><span class="pre">reconfig</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-rndc-arg-reconfig" title="Link to this definition"></a></dt>
<dd><p>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 <a class="reference internal" href="#cmdoption-rndc-arg-reload"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">reload</span></code></a> when there is a large number of zones, because it
avoids the need to examine the modification times of the zone files.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-recursing">
<span class="sig-name descname"><span class="pre">recursing</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-rndc-arg-recursing" title="Link to this definition"></a></dt>
<dd><p>This command dumps the list of queries <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> is currently
recursing on, and the list of domains to which iterative queries
are currently being sent.</p>
<p>The first list includes all unique clients that are waiting for
recursion to complete, including the query that is awaiting a
response and the timestamp (seconds since the Unix epoch) of
when named started processing this client query.</p>
<p>The second list comprises of domains for which there are active
(or recently active) fetches in progress. It reports the number
of active fetches for each domain and the number of queries that
have been passed (allowed) or dropped (spilled) as a result of
the <code class="docutils literal notranslate"><span class="pre">fetches-per-zone</span></code> limit. (Note: these counters are not
cumulative over time; whenever the number of active fetches for
a domain drops to zero, the counter for that domain is deleted,
and the next time a fetch is sent to that domain, it is recreated
with the counters set to zero).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-refresh">
<span class="sig-name descname"><span class="pre">refresh</span></span><span class="sig-prename descclassname"> <span class="pre">zone</span> <span class="pre">[class</span> <span class="pre">[view]]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-refresh" title="Link to this definition"></a></dt>
<dd><p>This command schedules zone maintenance for the given zone.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-reload">
<span class="sig-name descname"><span class="pre">reload</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-rndc-arg-reload" title="Link to this definition"></a></dt>
<dd><p>This command reloads the configuration file and zones.</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-reload-arg-zone">
<span class="sig-name descname"><span class="pre">zone</span></span><span class="sig-prename descclassname"> <span class="pre">[class</span> <span class="pre">[view]]</span></span><a class="headerlink" href="#cmdoption-rndc-reload-arg-zone" title="Link to this definition"></a></dt>
<dd></dd></dl>
<p>If a zone is specified, this command reloads only the given zone.
If no zone is specified, the reloading happens asynchronously.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-retransfer">
<span class="sig-name descname"><span class="pre">retransfer</span></span><span class="sig-prename descclassname"> <span class="pre">zone</span> <span class="pre">[class</span> <span class="pre">[view]]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-retransfer" title="Link to this definition"></a></dt>
<dd><p>This command retransfers the given secondary zone from the primary server.</p>
<p>If the zone is configured to use <code class="docutils literal notranslate"><span class="pre">inline-signing</span></code>, the signed
version of the zone is discarded; after the retransfer of the
unsigned version is complete, the signed version is regenerated
with new signatures.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-scan">
<span class="sig-name descname"><span class="pre">scan</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-rndc-arg-scan" title="Link to this definition"></a></dt>
<dd><p>This command scans the list of available network interfaces for changes, without
performing a full <a class="reference internal" href="#cmdoption-rndc-arg-reconfig"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">reconfig</span></code></a> or waiting for the
<code class="docutils literal notranslate"><span class="pre">interface-interval</span></code> timer.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-secroots">
<span class="sig-name descname"><span class="pre">secroots</span></span><span class="sig-prename descclassname"> <span class="pre">[-]</span> <span class="pre">[view</span> <span class="pre">...]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-secroots" title="Link to this definition"></a></dt>
<dd><p>This command dumps the security roots (i.e., trust anchors configured via
<code class="docutils literal notranslate"><span class="pre">trust-anchors</span></code>, or the <code class="docutils literal notranslate"><span class="pre">managed-keys</span></code> or <code class="docutils literal notranslate"><span class="pre">trusted-keys</span></code> statements
[both deprecated], or <code class="docutils literal notranslate"><span class="pre">dnssec-validation</span> <span class="pre">auto</span></code>) and negative trust anchors
for the specified views. If no view is specified, all views are
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).</p>
<p>If the first argument is <code class="docutils literal notranslate"><span class="pre">-</span></code>, then the output is returned via the
<strong class="program">rndc</strong> response channel and printed to the standard output.
Otherwise, it is written to the secroots dump file, which defaults to
<code class="docutils literal notranslate"><span class="pre">named.secroots</span></code>, but can be overridden via the <code class="docutils literal notranslate"><span class="pre">secroots-file</span></code>
option in <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>.</p>
<p>See also <a class="reference internal" href="#cmdoption-rndc-arg-managed-keys"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">managed-keys</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-serve-stale">
<span class="sig-name descname"><span class="pre">serve-stale</span></span><span class="sig-prename descclassname"> <span class="pre">(on</span> <span class="pre">|</span> <span class="pre">off</span> <span class="pre">|</span> <span class="pre">reset</span> <span class="pre">|</span> <span class="pre">status)</span> <span class="pre">[class</span> <span class="pre">[view]]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-serve-stale" title="Link to this definition"></a></dt>
<dd><p>This command enables, disables, resets, or reports the current status of
the serving of stale answers as configured in <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>.</p>
<p>If serving of stale answers is disabled by <code class="docutils literal notranslate"><span class="pre">rndc-serve-stale</span> <span class="pre">off</span></code>, then it
remains disabled even if <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> is reloaded or reconfigured. <code class="docutils literal notranslate"><span class="pre">rndc</span>
<span class="pre">serve-stale</span> <span class="pre">reset</span></code> restores the setting as configured in <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf</span></code></a>.</p>
<p><code class="docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">serve-stale</span> <span class="pre">status</span></code> reports whether caching and serving of stale
answers is currently enabled or disabled. It also reports the values of
<code class="docutils literal notranslate"><span class="pre">stale-answer-ttl</span></code> and <code class="docutils literal notranslate"><span class="pre">max-stale-ttl</span></code>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-showzone">
<span class="sig-name descname"><span class="pre">showzone</span></span><span class="sig-prename descclassname"> <span class="pre">zone</span> <span class="pre">[class</span> <span class="pre">[view]]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-showzone" title="Link to this definition"></a></dt>
<dd><p>This command prints the configuration of a running zone.</p>
<p>See also <a class="reference internal" href="#cmdoption-rndc-arg-zonestatus"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">zonestatus</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-sign">
<span class="sig-name descname"><span class="pre">sign</span></span><span class="sig-prename descclassname"> <span class="pre">zone</span> <span class="pre">[class</span> <span class="pre">[view]]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-sign" title="Link to this definition"></a></dt>
<dd><p>This command fetches all DNSSEC keys for the given zone from the key directory (see
the <code class="docutils literal notranslate"><span class="pre">key-directory</span></code> option in the BIND 9 Administrator Reference
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.</p>
<p>This command requires that the zone be configured with a <code class="docutils literal notranslate"><span class="pre">dnssec-policy</span></code>, or
that the <code class="docutils literal notranslate"><span class="pre">auto-dnssec</span></code> zone option be set to <code class="docutils literal notranslate"><span class="pre">allow</span></code> or <code class="docutils literal notranslate"><span class="pre">maintain</span></code>,
and also requires the zone to be configured to allow dynamic DNS. (See
“Dynamic Update Policies” in the BIND 9 Administrator Reference Manual for more
details.)</p>
<p>See also <a class="reference internal" href="#cmdoption-rndc-arg-loadkeys"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">loadkeys</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-signing">
<span class="sig-name descname"><span class="pre">signing</span></span><span class="sig-prename descclassname"> <span class="pre">[(-list</span> <span class="pre">|</span> <span class="pre">-clear</span> <span class="pre">keyid/algorithm</span> <span class="pre">|</span> <span class="pre">-clear</span> <span class="pre">all</span> <span class="pre">|</span> <span class="pre">-nsec3param</span> <span class="pre">(parameters</span> <span class="pre">|</span> <span class="pre">none)</span> <span class="pre">|</span> <span class="pre">-serial</span> <span class="pre">value)</span> <span class="pre">zone</span> <span class="pre">[class</span> <span class="pre">[view]]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-signing" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">sig-signing-type</span></code>.
<code class="docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">signing</span> <span class="pre">-list</span></code> converts these records into a human-readable
form, indicating which keys are currently signing or have finished
signing the zone, and which NSEC3 chains are being created or
removed.</p>
<p><code class="docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">signing</span> <span class="pre">-clear</span></code> can remove a single key (specified in the
same format that <code class="docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">signing</span> <span class="pre">-list</span></code> 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 is
retained.</p>
<p><code class="docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">signing</span> <span class="pre">-nsec3param</span></code> sets the NSEC3 parameters for a zone.
This is the only supported mechanism for using NSEC3 with
<code class="docutils literal notranslate"><span class="pre">inline-signing</span></code> zones. Parameters are specified in the same format
as an NSEC3PARAM resource record: <code class="docutils literal notranslate"><span class="pre">hash</span> <span class="pre">algorithm</span></code>, <code class="docutils literal notranslate"><span class="pre">flags</span></code>, <code class="docutils literal notranslate"><span class="pre">iterations</span></code>,
and <code class="docutils literal notranslate"><span class="pre">salt</span></code>, in that order.</p>
<p>Currently, the only defined value for <code class="docutils literal notranslate"><span class="pre">hash</span> <span class="pre">algorithm</span></code> is <code class="docutils literal notranslate"><span class="pre">1</span></code>,
representing SHA-1. The <code class="docutils literal notranslate"><span class="pre">flags</span></code> may be set to <code class="docutils literal notranslate"><span class="pre">0</span></code> or <code class="docutils literal notranslate"><span class="pre">1</span></code>,
depending on whether the opt-out bit in the NSEC3
chain should be set. <code class="docutils literal notranslate"><span class="pre">iterations</span></code> defines the number of additional times to apply
the algorithm when generating an NSEC3 hash. The <code class="docutils literal notranslate"><span class="pre">salt</span></code> is a string
of data expressed in hexadecimal, a hyphen (<code class="docutils literal notranslate"><span class="pre">-</span></code>) if no salt is to be
used, or the keyword <code class="docutils literal notranslate"><span class="pre">auto</span></code>, which causes <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> to generate a
random 64-bit salt.</p>
<p>The only recommended configuration is <code class="docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">signing</span> <span class="pre">-nsec3param</span> <span class="pre">1</span> <span class="pre">0</span> <span class="pre">0</span> <span class="pre">-</span> <span class="pre">zone</span></code>,
i.e. no salt, no additional iterations, no opt-out.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Do not use extra iterations, salt, or opt-out unless all their implications
are fully understood. A higher number of iterations causes interoperability
problems and opens servers to CPU-exhausting DoS attacks.</p>
</div>
<p><code class="docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">signing</span> <span class="pre">-nsec3param</span> <span class="pre">none</span></code> removes an existing NSEC3 chain and
replaces it with NSEC.</p>
<p><code class="docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">signing</span> <span class="pre">-serial</span> <span class="pre">value</span></code> sets the serial number of the zone to
<code class="docutils literal notranslate"><span class="pre">value</span></code>. 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-stats">
<span class="sig-name descname"><span class="pre">stats</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-rndc-arg-stats" title="Link to this definition"></a></dt>
<dd><p>This command writes server statistics to the statistics file. (See the
<code class="docutils literal notranslate"><span class="pre">statistics-file</span></code> option in the BIND 9 Administrator Reference
Manual.)</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-status">
<span class="sig-name descname"><span class="pre">status</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-rndc-arg-status" title="Link to this definition"></a></dt>
<dd><p>This command displays the status of the server. Note that the number of zones includes
the internal <code class="docutils literal notranslate"><span class="pre">bind/CH</span></code> zone and the default <code class="docutils literal notranslate"><span class="pre">./IN</span></code> hint zone, if
there is no explicit root zone configured.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-stop">
<span class="sig-name descname"><span class="pre">stop</span></span><span class="sig-prename descclassname"> <span class="pre">-p</span></span><a class="headerlink" href="#cmdoption-rndc-arg-stop" title="Link to this definition"></a></dt>
<dd><p>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 <code class="docutils literal notranslate"><span class="pre">-p</span></code> is specified, <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a>’s process ID is returned.
This allows an external process to determine when <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> has
completed stopping.</p>
<p>See also <a class="reference internal" href="#cmdoption-rndc-arg-halt"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">halt</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-sync">
<span class="sig-name descname"><span class="pre">sync</span></span><span class="sig-prename descclassname"> <span class="pre">-clean</span> <span class="pre">[zone</span> <span class="pre">[class</span> <span class="pre">[view]]]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-sync" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-tcp-timeouts">
<span class="sig-name descname"><span class="pre">tcp-timeouts</span></span><span class="sig-prename descclassname"> <span class="pre">[initial</span> <span class="pre">idle</span> <span class="pre">keepalive</span> <span class="pre">advertised]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-tcp-timeouts" title="Link to this definition"></a></dt>
<dd><p>When called without arguments, this command displays the current values of the
<code class="docutils literal notranslate"><span class="pre">tcp-initial-timeout</span></code>, <code class="docutils literal notranslate"><span class="pre">tcp-idle-timeout</span></code>,
<code class="docutils literal notranslate"><span class="pre">tcp-keepalive-timeout</span></code>, and <code class="docutils literal notranslate"><span class="pre">tcp-advertised-timeout</span></code> 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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-thaw">
<span class="sig-name descname"><span class="pre">thaw</span></span><span class="sig-prename descclassname"> <span class="pre">[zone</span> <span class="pre">[class</span> <span class="pre">[view]]]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-thaw" title="Link to this definition"></a></dt>
<dd><p>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 are no longer
refused. If the zone has changed and the <code class="docutils literal notranslate"><span class="pre">ixfr-from-differences</span></code>
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 is removed. If no zone is specified, the reloading happens
asynchronously.</p>
<p>See also <a class="reference internal" href="#cmdoption-rndc-arg-freeze"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">freeze</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-trace">
<span class="sig-name descname"><span class="pre">trace</span></span><span class="sig-prename descclassname"> <span class="pre">[level]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-trace" title="Link to this definition"></a></dt>
<dd><p>If no level is specified, this command increments the server’s debugging
level by one.</p>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-trace-arg-level">
<span class="sig-name descname"><span class="pre">level</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-rndc-trace-arg-level" title="Link to this definition"></a></dt>
<dd><p>If specified, this command sets the server’s debugging level to the
provided value.</p>
</dd></dl>
<p>See also <a class="reference internal" href="#cmdoption-rndc-arg-notrace"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">notrace</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-tsig-delete">
<span class="sig-name descname"><span class="pre">tsig-delete</span></span><span class="sig-prename descclassname"> <span class="pre">keyname</span> <span class="pre">[view]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-tsig-delete" title="Link to this definition"></a></dt>
<dd><p>This command deletes a given TKEY-negotiated key from the server. This does not
apply to statically configured TSIG keys.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-tsig-list">
<span class="sig-name descname"><span class="pre">tsig-list</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-rndc-arg-tsig-list" title="Link to this definition"></a></dt>
<dd><p>This command lists the names of all TSIG keys currently configured for use by
<a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named</span></code></a> in each view. The list includes both statically configured keys and
dynamic TKEY-negotiated keys.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-validation">
<span class="sig-name descname"><span class="pre">validation</span></span><span class="sig-prename descclassname"> <span class="pre">(on</span> <span class="pre">|</span> <span class="pre">off</span> <span class="pre">|</span> <span class="pre">status)</span> <span class="pre">[view</span> <span class="pre">...]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-validation" title="Link to this definition"></a></dt>
<dd><p>This command enables, disables, or checks the current status of DNSSEC validation. By
default, validation is enabled.</p>
<p>The cache is flushed when validation is turned on or off to avoid using data
that might differ between states.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-rndc-arg-zonestatus">
<span class="sig-name descname"><span class="pre">zonestatus</span></span><span class="sig-prename descclassname"> <span class="pre">zone</span> <span class="pre">[class</span> <span class="pre">[view]]</span></span><a class="headerlink" href="#cmdoption-rndc-arg-zonestatus" title="Link to this definition"></a></dt>
<dd><p>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
signed, whether it uses automatic DNSSEC key management or inline
signing, and the scheduled refresh or expiry times for the zone.</p>
<p>See also <a class="reference internal" href="#cmdoption-rndc-arg-showzone"><code class="xref std std-option docutils literal notranslate"><span class="pre">rndc</span> <span class="pre">showzone</span></code></a>.</p>
</dd></dl>
<p><strong class="program">rndc</strong> commands that specify zone names, such as <a class="reference internal" href="#cmdoption-rndc-arg-reload"><code class="xref std std-option docutils literal notranslate"><span class="pre">reload</span></code></a>
<a class="reference internal" href="#cmdoption-rndc-arg-retransfer"><code class="xref std std-option docutils literal notranslate"><span class="pre">retransfer</span></code></a>, or <a class="reference internal" href="#cmdoption-rndc-arg-zonestatus"><code class="xref std std-option docutils literal notranslate"><span class="pre">zonestatus</span></code></a>, can be ambiguous when applied to zones
of type <code class="docutils literal notranslate"><span class="pre">redirect</span></code>. Redirect zones are always called <code class="docutils literal notranslate"><span class="pre">.</span></code>, and can be
confused with zones of type <code class="docutils literal notranslate"><span class="pre">hint</span></code> or with secondary copies of the root
zone. To specify a redirect zone, use the special zone name
<code class="docutils literal notranslate"><span class="pre">-redirect</span></code>, without a trailing period. (With a trailing period, this
would specify a zone called “-redirect”.)</p>
</section>
<section id="limitations">
<h3>Limitations<a class="headerlink" href="#limitations" title="Link to this heading"></a></h3>
<p>There is currently no way to provide the shared secret for a <code class="docutils literal notranslate"><span class="pre">server_key</span></code>
without using the configuration file.</p>
<p>Several error messages could be clearer.</p>
</section>
<section id="id141">
<h3>See Also<a class="headerlink" href="#id141" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-rndc.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc.conf(5)</span></code></a>, <a class="reference internal" href="#std-iscman-rndc-confgen"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc-confgen(8)</span></code></a>,
<a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named(8)</span></code></a>, <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf(5)</span></code></a>, BIND 9 Administrator
Reference Manual.</p>
</section>
</section>
<section id="tsig-keygen-tsig-key-generation-tool">
<span id="man-tsig-keygen"></span><span id="std-iscman-tsig-keygen"></span><h2>tsig-keygen - TSIG key generation tool<a class="headerlink" href="#tsig-keygen-tsig-key-generation-tool" title="Link to this heading"></a></h2>
<section id="id142">
<h3>Synopsis<a class="headerlink" href="#id142" title="Link to this heading"></a></h3>
<p><strong class="program">tsig-keygen</strong> [<strong>-a</strong> algorithm] [<strong>-h</strong>] [name]</p>
</section>
<section id="id143">
<h3>Description<a class="headerlink" href="#id143" title="Link to this heading"></a></h3>
<p><strong class="program">tsig-keygen</strong> is an utility that generates keys for use with TSIG
(Transaction Signatures) as defined in <span class="target" id="index-87"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2845.html"><strong>RFC 2845</strong></a>. The resulting keys can be used,
for example, to secure dynamic DNS updates to a zone, or for the <a class="reference internal" href="#std-iscman-rndc"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">rndc</span></code></a>
command channel.</p>
<p>A domain name can be specified on the command line to be used as the name
of the generated key. If no name is specified, the default is <code class="docutils literal notranslate"><span class="pre">tsig-key</span></code>.</p>
</section>
<section id="id144">
<h3>Options<a class="headerlink" href="#id144" title="Link to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-tsig-keygen-a">
<span class="sig-name descname"><span class="pre">-a</span></span><span class="sig-prename descclassname"> <span class="pre">algorithm</span></span><a class="headerlink" href="#cmdoption-tsig-keygen-a" title="Link to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-tsig-keygen-h">
<span class="sig-name descname"><span class="pre">-h</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-tsig-keygen-h" title="Link to this definition"></a></dt>
<dd><p>This option prints a short summary of options and arguments.</p>
</dd></dl>
</section>
<section id="id145">
<h3>See Also<a class="headerlink" href="#id145" title="Link to this heading"></a></h3>
<p><a class="reference internal" href="#std-iscman-nsupdate"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">nsupdate(1)</span></code></a>, <a class="reference internal" href="#std-iscman-named.conf"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named.conf(5)</span></code></a>, <a class="reference internal" href="#std-iscman-named"><code class="xref std std-iscman docutils literal notranslate"><span class="pre">named(8)</span></code></a>, BIND 9 Administrator Reference Manual.</p>
</section>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="general.html" class="btn btn-neutral float-left" title="General DNS Reference Information" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>© Copyright 2025, Internet Systems Consortium.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>