Bv9ARM.ch12.html revision 5f0c46ca5f68c2148c735aa52d7541baac249c34
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<!--
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder - Copyright (C) 2000-2015 Internet Systems Consortium, Inc. ("ISC")
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder -
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder - This Source Code Form is subject to the terms of the Mozilla Public
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder - License, v. 2.0. If a copy of the MPL was not distributed with this
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder - file, You can obtain one at http://mozilla.org/MPL/2.0/.
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder-->
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<html>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<head>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<title>Appendix�D.�BIND 9 DNS Library Support</title>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<link rel="home" href="Bv9ARM.html" title="BIND 9 Administrator Reference Manual">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<link rel="up" href="Bv9ARM.html" title="BIND 9 Administrator Reference Manual">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<link rel="prev" href="Bv9ARM.ch11.html" title="Appendix�C.�General DNS Reference Information">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<link rel="next" href="Bv9ARM.ch13.html" title="Manual pages">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder</head>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<div class="navheader">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<table width="100%" summary="Navigation header">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<tr><th colspan="3" align="center">Appendix�D.�BIND 9 DNS Library Support</th></tr>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<tr>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<td width="20%" align="left">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<a accesskey="p" href="Bv9ARM.ch11.html">Prev</a>�</td>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<th width="60%" align="center">�</th>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<td width="20%" align="right">�<a accesskey="n" href="Bv9ARM.ch13.html">Next</a>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder</td>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder</tr>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder</table>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<hr>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder</div>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<div class="appendix">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<div class="titlepage"><div><div><h1 class="title">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<a name="Bv9ARM.ch12"></a>BIND 9 DNS Library Support</h1></div></div></div>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<div class="toc">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<p><b>Table of Contents</b></p>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<dl class="toc">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<dt><span class="section"><a href="Bv9ARM.ch12.html#bind9.library">BIND 9 DNS Library Support</a></span></dt>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<dd><dl>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<dt><span class="section"><a href="Bv9ARM.ch12.html#id-1.13.2.4">Prerequisite</a></span></dt>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<dt><span class="section"><a href="Bv9ARM.ch12.html#id-1.13.2.5">Compilation</a></span></dt>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<dt><span class="section"><a href="Bv9ARM.ch12.html#id-1.13.2.6">Installation</a></span></dt>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<dt><span class="section"><a href="Bv9ARM.ch12.html#id-1.13.2.7">Known Defects/Restrictions</a></span></dt>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<dt><span class="section"><a href="Bv9ARM.ch12.html#id-1.13.2.8">The dns.conf File</a></span></dt>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<dt><span class="section"><a href="Bv9ARM.ch12.html#id-1.13.2.9">Sample Applications</a></span></dt>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<dt><span class="section"><a href="Bv9ARM.ch12.html#id-1.13.2.10">Library References</a></span></dt>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder</dl></dd>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder</dl>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder</div>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<div class="section">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<div class="titlepage"><div><div><h2 class="title" style="clear: both">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<a name="bind9.library"></a>BIND 9 DNS Library Support</h2></div></div></div>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<p>This version of BIND 9 "exports" its internal libraries so
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder that they can be used by third-party applications more easily (we
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder call them "export" libraries in this document). In addition to
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder all major DNS-related APIs BIND 9 is currently using, the export
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder libraries provide the following features:</p>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<li class="listitem"><p>The newly created "DNS client" module. This is a higher
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder level API that provides an interface to name resolution,
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder single DNS transaction with a particular server, and dynamic
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder update. Regarding name resolution, it supports advanced
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder features such as DNSSEC validation and caching. This module
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder supports both synchronous and asynchronous mode.</p></li>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<li class="listitem"><p>The new "IRS" (Information Retrieval System) library.
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder It provides an interface to parse the traditional resolv.conf
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder file and more advanced, DNS-specific configuration file for
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder the rest of this package (see the description for the
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder dns.conf file below).</p></li>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<li class="listitem"><p>As part of the IRS library, newly implemented standard
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder address-name mapping functions, getaddrinfo() and
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder getnameinfo(), are provided. They use the DNSSEC-aware
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder validating resolver backend, and could use other advanced
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder features of the BIND 9 libraries such as caching. The
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder getaddrinfo() function resolves both A and AAAA RRs
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder concurrently (when the address family is unspecified).</p></li>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<li class="listitem"><p>An experimental framework to support other event
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder libraries than BIND 9's internal event task system.</p></li>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder</ul></div>
37354e3ed68875fb527338105a610df481f98cb0Christian Maeder<div class="section">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="titlepage"><div><div><h3 class="title">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<a name="id-1.13.2.4"></a>Prerequisite</h3></div></div></div>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<p>GNU make is required to build the export libraries (other
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder part of BIND 9 can still be built with other types of make). In
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder the reminder of this document, "make" means GNU make. Note that
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder in some platforms you may need to invoke a different command name
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder than "make" (e.g. "gmake") to indicate it's GNU make.</p>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder</div>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="section">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<div class="titlepage"><div><div><h3 class="title">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<a name="id-1.13.2.5"></a>Compilation</h3></div></div></div>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder<pre class="screen">
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder$ <strong class="userinput"><code>/configure --enable-exportlib <em class="replaceable"><code>[other flags]</code></em></code></strong>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder$ <strong class="userinput"><code>make</code></strong>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder</pre>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder This will create (in addition to usual BIND 9 programs) and a
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder separate set of libraries under the lib/export directory. For
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder example, <code class="filename">lib/export/dns/libdns.a</code> is the archive file of the
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder export version of the BIND 9 DNS library. Sample application
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder programs using the libraries will also be built under the
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder lib/export/samples directory (see below).</p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder</div>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="section">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="titlepage"><div><div><h3 class="title">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<a name="id-1.13.2.6"></a>Installation</h3></div></div></div>
065bbd1003ea42e2b6f02cedb18c4403f9e8c17eChristian Maeder<pre class="screen">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder$ <strong class="userinput"><code>cd lib/export</code></strong>
065bbd1003ea42e2b6f02cedb18c4403f9e8c17eChristian Maeder$ <strong class="userinput"><code>make install</code></strong>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder</pre>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder This will install library object files under the directory
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder specified by the --with-export-libdir configure option (default:
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder EPREFIX/lib/bind9), and header files under the directory
2424b7187abc20deab5b36ea6ce09b7280a0e5f6Christian Maeder specified by the --with-export-includedir configure option
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder (default: PREFIX/include/bind9).
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder Root privilege is normally required.
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder "<span class="command"><strong>make install</strong></span>" at the top directory will do the
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder same.
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder </p>
c184c32f97b04351abcff96a49f09086fb92fd98Christian Maeder<p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder To see how to build your own
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder application after the installation, see
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder <code class="filename">lib/export/samples/Makefile-postinstall.in</code>.</p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder</div>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="section">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="titlepage"><div><div><h3 class="title">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<a name="id-1.13.2.7"></a>Known Defects/Restrictions</h3></div></div></div>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<li class="listitem"><p>Currently, win32 is not supported for the export
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder library. (Normal BIND 9 application can be built as
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder before).</p></li>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<li class="listitem">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<p>The "fixed" RRset order is not (currently) supported in
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder the export library. If you want to use "fixed" RRset order
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder for, e.g. <span class="command"><strong>named</strong></span> while still building the
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder export library even without the fixed order support, build
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder them separately:
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder </p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<pre class="screen">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder$ <strong class="userinput"><code>/configure --enable-fixed-rrset <em class="replaceable"><code>[other flags, but not --enable-exportlib]</code></em></code></strong>
70cf3c3c9f61b4cfdfce09fafc050b90f85e4972Christian Maeder$ <strong class="userinput"><code>make</code></strong>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder$ <strong class="userinput"><code>/configure --enable-exportlib <em class="replaceable"><code>[other flags, but not --enable-fixed-rrset]</code></em></code></strong>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder$ <strong class="userinput"><code>cd lib/export</code></strong>
02cbf7551685bc3b33f15f4cebfe9e9da1cae33eChristian Maeder$ <strong class="userinput"><code>make</code></strong>
02cbf7551685bc3b33f15f4cebfe9e9da1cae33eChristian Maeder</pre>
02cbf7551685bc3b33f15f4cebfe9e9da1cae33eChristian Maeder<p>
7ac396cb2970523b02bed1a6c721f5e857a394a3Christian Maeder </p>
8e4d284b9578b300b3b93dba75143a6b6640fda8Christian Maeder</li>
35d5e815cf9d034b94232852d86550e159d8afd0Christian Maeder<li class="listitem"><p>The client module and the IRS library currently do not
7ac396cb2970523b02bed1a6c721f5e857a394a3Christian Maeder support DNSSEC validation using DLV (the underlying modules
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder can handle it, but there is no tunable interface to enable
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder the feature).</p></li>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<li class="listitem"><p>RFC 5011 is not supported in the validating stub
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder resolver of the export library. In fact, it is not clear
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder whether it should: trust anchors would be a system-wide
02cbf7551685bc3b33f15f4cebfe9e9da1cae33eChristian Maeder configuration which would be managed by an administrator,
02cbf7551685bc3b33f15f4cebfe9e9da1cae33eChristian Maeder while the stub resolver will be used by ordinary applications
02cbf7551685bc3b33f15f4cebfe9e9da1cae33eChristian Maeder run by a normal user.</p></li>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder<li class="listitem"><p>Not all common <code class="filename">/etc/resolv.conf</code>
f4a4521a8d3f171834ab351d1ac336c1898ece25Christian Maeder options are supported
4561227a776bdf0ab679b19fb92f1eaaed8786f7Christian Maeder in the IRS library. The only available options in this
a86b847d6ea0bc06d90cb01db0ac4e654d13ee98Christian Maeder version are "debug" and "ndots".</p></li>
af48251d509031fd4ee846da43cab43844751cf7Christian Maeder</ul></div>
d049e21661c3d0a2cf6339d3b94e4cd188b0188cChristian Maeder</div>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="section">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="titlepage"><div><div><h3 class="title">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<a name="id-1.13.2.8"></a>The dns.conf File</h3></div></div></div>
065bbd1003ea42e2b6f02cedb18c4403f9e8c17eChristian Maeder<p>The IRS library supports an "advanced" configuration file
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder related to the DNS library for configuration parameters that
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder would be beyond the capability of the
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder <code class="filename">resolv.conf</code> file.
70cf3c3c9f61b4cfdfce09fafc050b90f85e4972Christian Maeder Specifically, it is intended to provide DNSSEC related
70cf3c3c9f61b4cfdfce09fafc050b90f85e4972Christian Maeder configuration parameters. By default the path to this
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder configuration file is <code class="filename">/etc/dns.conf</code>.
eab576044505ba1fbc64610323053490fbd9e82cChristian Maeder This module is very
b8b9b89d0ff041c8f6293db1546fe27c5ae86b9aChristian Maeder experimental and the configuration syntax or library interfaces
70cf3c3c9f61b4cfdfce09fafc050b90f85e4972Christian Maeder may change in future versions. Currently, only the
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder <span class="command"><strong>trusted-keys</strong></span>
9818ec2fd12dd08c36cedfb75473ccb970a5eb62Christian Maeder statement is supported, whose syntax is the same as the same name
9818ec2fd12dd08c36cedfb75473ccb970a5eb62Christian Maeder of statement for <code class="filename">named.conf</code>. (See
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder <a class="xref" href="Bv9ARM.ch06.html#trusted-keys" title="trusted-keys Statement Grammar">the section called &#8220;<span class="command"><strong>trusted-keys</strong></span> Statement Grammar&#8221;</a> for details.)</p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder</div>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="section">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="titlepage"><div><div><h3 class="title">
887583f0578b4adc19e1110a4cc515e0991a7091Christian Maeder<a name="id-1.13.2.9"></a>Sample Applications</h3></div></div></div>
015103a92faa96f44d5384d171aec1caf93b1006Christian Maeder<p>Some sample application programs using this API are
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder provided for reference. The following is a brief description of
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder these applications.
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder </p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="section">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="titlepage"><div><div><h4 class="title">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<a name="id-1.13.2.9.3"></a>sample: a simple stub resolver utility</h4></div></div></div>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder It sends a query of a given name (of a given optional RR type) to a
9818ec2fd12dd08c36cedfb75473ccb970a5eb62Christian Maeder specified recursive server, and prints the result as a list of
35d5e815cf9d034b94232852d86550e159d8afd0Christian Maeder RRs. It can also act as a validating stub resolver if a trust
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder anchor is given via a set of command line options.</p>
942cd94b523c5f8d5b72fc45e1dfa43fe3d4484bChristian Maeder<p>
887583f0578b4adc19e1110a4cc515e0991a7091Christian Maeder Usage: sample [options] server_address hostname
942cd94b523c5f8d5b72fc45e1dfa43fe3d4484bChristian Maeder </p>
942cd94b523c5f8d5b72fc45e1dfa43fe3d4484bChristian Maeder<p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder Options and Arguments:
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder </p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="variablelist"><dl class="variablelist">
7ac396cb2970523b02bed1a6c721f5e857a394a3Christian Maeder<dt><span class="term">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder -t RRtype
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder </span></dt>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<dd><p>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder specify the RR type of the query. The default is the A RR.
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder </p></dd>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<dt><span class="term">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder [-a algorithm] [-e] -k keyname -K keystring
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder </span></dt>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<dd>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder specify a command-line DNS key to validate the answer. For
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder example, to specify the following DNSKEY of example.com:
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder</p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="literallayout"><p><br>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder example.com.�3600�IN�DNSKEY�257�3�5�xxx<br>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder</p></div>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<p>
1d4af077f64d8634de7155b26376ec83667d9af7Christian Maeder specify the options as follows:
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder</p>
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder<pre class="screen">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<strong class="userinput"><code>
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder -e -k example.com -K "xxx"
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder</code></strong>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder</pre>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder -e means that this key is a zone's "key signing key" (as known
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder as "secure Entry point").
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder When -a is omitted rsasha1 will be used by default.
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder </p>
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder</dd>
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder<dt><span class="term">
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder -s domain:alt_server_address
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder </span></dt>
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder<dd><p>
615ef723f845e48d74cd88934738ac9ba76de0b3Christian Maeder specify a separate recursive server address for the specific
39366a8c5aa917040fcc6360841277e33da0d605Christian Maeder "domain". Example: -s example.com:2001:db8::1234
39366a8c5aa917040fcc6360841277e33da0d605Christian Maeder </p></dd>
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder<dt><span class="term">server_address</span></dt>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<dd><p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder an IP(v4/v6) address of the recursive server to which queries
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder are sent.
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder </p></dd>
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder<dt><span class="term">hostname</span></dt>
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder<dd><p>
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder the domain name for the query
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder </p></dd>
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder</dl></div>
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder</div>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="section">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="titlepage"><div><div><h4 class="title">
b1ddd2f41ea1dfac428a366c5c3d413470dcbcfaChristian Maeder<a name="id-1.13.2.9.4"></a>sample-async: a simple stub resolver, working asynchronously</h4></div></div></div>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder Similar to "sample", but accepts a list
b1ddd2f41ea1dfac428a366c5c3d413470dcbcfaChristian Maeder of (query) domain names as a separate file and resolves the names
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder asynchronously.</p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<p>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder Usage: sample-async [-s server_address] [-t RR_type] input_file</p>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<p>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder Options and Arguments:
2f953c23da49e3d5eef38d3015bcb2c9aa1feeafChristian Maeder </p>
2f953c23da49e3d5eef38d3015bcb2c9aa1feeafChristian Maeder<div class="variablelist"><dl class="variablelist">
2f953c23da49e3d5eef38d3015bcb2c9aa1feeafChristian Maeder<dt><span class="term">
2f953c23da49e3d5eef38d3015bcb2c9aa1feeafChristian Maeder -s server_address
2f953c23da49e3d5eef38d3015bcb2c9aa1feeafChristian Maeder </span></dt>
2f953c23da49e3d5eef38d3015bcb2c9aa1feeafChristian Maeder<dd>
2f953c23da49e3d5eef38d3015bcb2c9aa1feeafChristian Maeder an IPv4 address of the recursive server to which queries are sent.
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder (IPv6 addresses are not supported in this implementation)
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder </dd>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<dt><span class="term">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder -t RR_type
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder </span></dt>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<dd>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder specify the RR type of the queries. The default is the A
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder RR.
7ac396cb2970523b02bed1a6c721f5e857a394a3Christian Maeder </dd>
7ac396cb2970523b02bed1a6c721f5e857a394a3Christian Maeder<dt><span class="term">
7ac396cb2970523b02bed1a6c721f5e857a394a3Christian Maeder input_file
7ac396cb2970523b02bed1a6c721f5e857a394a3Christian Maeder </span></dt>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<dd>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder a list of domain names to be resolved. each line
7ac396cb2970523b02bed1a6c721f5e857a394a3Christian Maeder consists of a single domain name. Example:
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder <div class="literallayout"><p><br>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder��www.example.com<br>
7ac396cb2970523b02bed1a6c721f5e857a394a3Christian Maeder��mx.example.net<br>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder��ns.xxx.example<br>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder</p></div>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder</dd>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder</dl></div>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder</div>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="section">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="titlepage"><div><div><h4 class="title">
7ac396cb2970523b02bed1a6c721f5e857a394a3Christian Maeder<a name="id-1.13.2.9.5"></a>sample-request: a simple DNS transaction client</h4></div></div></div>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder It sends a query to a specified server, and
7ac396cb2970523b02bed1a6c721f5e857a394a3Christian Maeder prints the response with minimal processing. It doesn't act as a
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder "stub resolver": it stops the processing once it gets any
065bbd1003ea42e2b6f02cedb18c4403f9e8c17eChristian Maeder response from the server, whether it's a referral or an alias
065bbd1003ea42e2b6f02cedb18c4403f9e8c17eChristian Maeder (CNAME or DNAME) that would require further queries to get the
065bbd1003ea42e2b6f02cedb18c4403f9e8c17eChristian Maeder ultimate answer. In other words, this utility acts as a very
065bbd1003ea42e2b6f02cedb18c4403f9e8c17eChristian Maeder simplified <span class="command"><strong>dig</strong></span>.
065bbd1003ea42e2b6f02cedb18c4403f9e8c17eChristian Maeder </p>
065bbd1003ea42e2b6f02cedb18c4403f9e8c17eChristian Maeder<p>
065bbd1003ea42e2b6f02cedb18c4403f9e8c17eChristian Maeder Usage: sample-request [-t RRtype] server_address hostname
065bbd1003ea42e2b6f02cedb18c4403f9e8c17eChristian Maeder </p>
065bbd1003ea42e2b6f02cedb18c4403f9e8c17eChristian Maeder<p>
065bbd1003ea42e2b6f02cedb18c4403f9e8c17eChristian Maeder Options and Arguments:
065bbd1003ea42e2b6f02cedb18c4403f9e8c17eChristian Maeder </p>
065bbd1003ea42e2b6f02cedb18c4403f9e8c17eChristian Maeder<div class="variablelist"><dl class="variablelist">
065bbd1003ea42e2b6f02cedb18c4403f9e8c17eChristian Maeder<dt><span class="term">
065bbd1003ea42e2b6f02cedb18c4403f9e8c17eChristian Maeder -t RRtype
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder </span></dt>
887583f0578b4adc19e1110a4cc515e0991a7091Christian Maeder<dd><p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder specify the RR type of
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder the queries. The default is the A RR.
887583f0578b4adc19e1110a4cc515e0991a7091Christian Maeder </p></dd>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<dt><span class="term">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder server_address
887583f0578b4adc19e1110a4cc515e0991a7091Christian Maeder </span></dt>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<dd><p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder an IP(v4/v6)
7ac396cb2970523b02bed1a6c721f5e857a394a3Christian Maeder address of the recursive server to which the query is sent.
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder </p></dd>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<dt><span class="term">
7ac396cb2970523b02bed1a6c721f5e857a394a3Christian Maeder hostname
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder </span></dt>
eab576044505ba1fbc64610323053490fbd9e82cChristian Maeder<dd><p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder the domain name for the query
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder </p></dd>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder</dl></div>
eab576044505ba1fbc64610323053490fbd9e82cChristian Maeder</div>
eab576044505ba1fbc64610323053490fbd9e82cChristian Maeder<div class="section">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<div class="titlepage"><div><div><h4 class="title">
7ac396cb2970523b02bed1a6c721f5e857a394a3Christian Maeder<a name="id-1.13.2.9.6"></a>sample-gai: getaddrinfo() and getnameinfo() test code</h4></div></div></div>
7ac396cb2970523b02bed1a6c721f5e857a394a3Christian Maeder<p>
7ac396cb2970523b02bed1a6c721f5e857a394a3Christian Maeder This is a test program
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder to check getaddrinfo() and getnameinfo() behavior. It takes a
37354e3ed68875fb527338105a610df481f98cb0Christian Maeder host name as an argument, calls getaddrinfo() with the given host
37354e3ed68875fb527338105a610df481f98cb0Christian Maeder name, and calls getnameinfo() with the resulting IP addresses
37354e3ed68875fb527338105a610df481f98cb0Christian Maeder returned by getaddrinfo(). If the dns.conf file exists and
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder defines a trust anchor, the underlying resolver will act as a
37354e3ed68875fb527338105a610df481f98cb0Christian Maeder validating resolver, and getaddrinfo()/getnameinfo() will fail
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder with an EAI_INSECUREDATA error when DNSSEC validation fails.
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder </p>
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder<p>
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder Usage: sample-gai hostname
c184c32f97b04351abcff96a49f09086fb92fd98Christian Maeder </p>
7ac396cb2970523b02bed1a6c721f5e857a394a3Christian Maeder</div>
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder<div class="section">
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder<div class="titlepage"><div><div><h4 class="title">
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder<a name="id-1.13.2.9.7"></a>sample-update: a simple dynamic update client program</h4></div></div></div>
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder<p>
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder It accepts a single update command as a
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder command-line argument, sends an update request message to the
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder authoritative server, and shows the response from the server. In
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder other words, this is a simplified <span class="command"><strong>nsupdate</strong></span>.
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder </p>
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder<p>
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder Usage: sample-update [options] (add|delete) "update data"
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder </p>
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder<p>
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder Options and Arguments:
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder </p>
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder<div class="variablelist"><dl class="variablelist">
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder<dt><span class="term">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder -a auth_server
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder </span></dt>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<dd><p>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder An IP address of the authoritative server that has authority
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder for the zone containing the update name. This should normally
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder be the primary authoritative server that accepts dynamic
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder updates. It can also be a secondary server that is configured
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder to forward update requests to the primary server.
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder </p></dd>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<dt><span class="term">
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder -k keyfile
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder </span></dt>
e6d733e9ab4fb48cb611637528e5694d1e092de0Christian Maeder<dd><p>
02cbf7551685bc3b33f15f4cebfe9e9da1cae33eChristian Maeder A TSIG key file to secure the update transaction. The keyfile
02cbf7551685bc3b33f15f4cebfe9e9da1cae33eChristian Maeder format is the same as that for the nsupdate utility.
9818ec2fd12dd08c36cedfb75473ccb970a5eb62Christian Maeder </p></dd>
9818ec2fd12dd08c36cedfb75473ccb970a5eb62Christian Maeder<dt><span class="term">
9818ec2fd12dd08c36cedfb75473ccb970a5eb62Christian Maeder -p prerequisite
9818ec2fd12dd08c36cedfb75473ccb970a5eb62Christian Maeder </span></dt>
02cbf7551685bc3b33f15f4cebfe9e9da1cae33eChristian Maeder<dd><p>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder A prerequisite for the update (only one prerequisite can be
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder specified). The prerequisite format is the same as that is
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder accepted by the nsupdate utility.
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder </p></dd>
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder<dt><span class="term">
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder -r recursive_server
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder </span></dt>
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder<dd><p>
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder An IP address of a recursive server that this utility will
9818ec2fd12dd08c36cedfb75473ccb970a5eb62Christian Maeder use. A recursive server may be necessary to identify the
35d5e815cf9d034b94232852d86550e159d8afd0Christian Maeder authoritative server address to which the update request is
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder sent.
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder </p></dd>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder<dt><span class="term">
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder -z zonename
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder </span></dt>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder<dd><p>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder The domain name of the zone that contains
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder </p></dd>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder<dt><span class="term">
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder (add|delete)
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder </span></dt>
35d5e815cf9d034b94232852d86550e159d8afd0Christian Maeder<dd><p>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder Specify the type of update operation. Either "add" or "delete"
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder must be specified.
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder </p></dd>
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder<dt><span class="term">
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder "update data"
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder </span></dt>
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder<dd><p>
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder Specify the data to be updated. A typical example of the data
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder would look like "name TTL RRtype RDATA".
9818ec2fd12dd08c36cedfb75473ccb970a5eb62Christian Maeder </p></dd>
35d5e815cf9d034b94232852d86550e159d8afd0Christian Maeder</dl></div>
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
4542eacf3e35ca3b52de55effecd2ffb3aef96b6Christian Maeder<h3 class="title">Note</h3>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder<p>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder In practice, either -a or -r must be specified. Others can
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder be optional; the underlying library routine tries to identify the
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder appropriate server and the zone name for the update.
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder </p>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder</div>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder<p>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder Examples: assuming the primary authoritative server of the
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder dynamic.example.com zone has an IPv6 address 2001:db8::1234,
35d5e815cf9d034b94232852d86550e159d8afd0Christian Maeder </p>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder<pre class="screen">
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder$ <strong class="userinput"><code>sample-update -a sample-update -k Kxxx.+nnn+mmmm.key add "foo.dynamic.example.com 30 IN A 192.168.2.1"</code></strong></pre>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<p>
f4a4521a8d3f171834ab351d1ac336c1898ece25Christian Maeder adds an A RR for foo.dynamic.example.com using the given key.
f4a4521a8d3f171834ab351d1ac336c1898ece25Christian Maeder </p>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<pre class="screen">
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder$ <strong class="userinput"><code>sample-update -a sample-update -k Kxxx.+nnn+mmmm.key delete "foo.dynamic.example.com 30 IN A"</code></strong></pre>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder<p>
887583f0578b4adc19e1110a4cc515e0991a7091Christian Maeder removes all A RRs for foo.dynamic.example.com using the given key.
eab576044505ba1fbc64610323053490fbd9e82cChristian Maeder </p>
887583f0578b4adc19e1110a4cc515e0991a7091Christian Maeder<pre class="screen">
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder$ <strong class="userinput"><code>sample-update -a sample-update -k Kxxx.+nnn+mmmm.key delete "foo.dynamic.example.com"</code></strong></pre>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder<p>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder removes all RRs for foo.dynamic.example.com using the given key.
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder </p>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder</div>
f82f141a6b1639a50064a6e66b14f7823220b5d5Christian Maeder<div class="section">
f82f141a6b1639a50064a6e66b14f7823220b5d5Christian Maeder<div class="titlepage"><div><div><h4 class="title">
0015e1756b734b34d4b550318c078f9a0c585611Christian Maeder<a name="id-1.13.2.9.8"></a>nsprobe: domain/name server checker in terms of RFC 4074</h4></div></div></div>
f82f141a6b1639a50064a6e66b14f7823220b5d5Christian Maeder<p>
35d5e815cf9d034b94232852d86550e159d8afd0Christian Maeder It checks a set
f4a4521a8d3f171834ab351d1ac336c1898ece25Christian Maeder of domains to see the name servers of the domains behave
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder correctly in terms of RFC 4074. This is included in the set of
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder sample programs to show how the export library can be used in a
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder DNS-related application.
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder </p>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder<p>
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder Usage: nsprobe [-d] [-v [-v...]] [-c cache_address] [input_file]
015103a92faa96f44d5384d171aec1caf93b1006Christian Maeder </p>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<p>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder Options
015103a92faa96f44d5384d171aec1caf93b1006Christian Maeder </p>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<div class="variablelist"><dl class="variablelist">
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<dt><span class="term">
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder -d
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder </span></dt>
015103a92faa96f44d5384d171aec1caf93b1006Christian Maeder<dd><p>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder run in the "debug" mode. with this option nsprobe will dump
615ef723f845e48d74cd88934738ac9ba76de0b3Christian Maeder every RRs it receives.
615ef723f845e48d74cd88934738ac9ba76de0b3Christian Maeder </p></dd>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<dt><span class="term">
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder -v
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder </span></dt>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<dd><p>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder increase verbosity of other normal log messages. This can be
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder specified multiple times
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder </p></dd>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<dt><span class="term">
015103a92faa96f44d5384d171aec1caf93b1006Christian Maeder -c cache_address
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder </span></dt>
015103a92faa96f44d5384d171aec1caf93b1006Christian Maeder<dd><p>
015103a92faa96f44d5384d171aec1caf93b1006Christian Maeder specify an IP address of a recursive (caching) name server.
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder nsprobe uses this server to get the NS RRset of each domain and
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder the A and/or AAAA RRsets for the name servers. The default
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder value is 127.0.0.1.
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder </p></dd>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<dt><span class="term">
015103a92faa96f44d5384d171aec1caf93b1006Christian Maeder input_file
015103a92faa96f44d5384d171aec1caf93b1006Christian Maeder </span></dt>
015103a92faa96f44d5384d171aec1caf93b1006Christian Maeder<dd><p>
015103a92faa96f44d5384d171aec1caf93b1006Christian Maeder a file name containing a list of domain (zone) names to be
015103a92faa96f44d5384d171aec1caf93b1006Christian Maeder probed. when omitted the standard input will be used. Each
015103a92faa96f44d5384d171aec1caf93b1006Christian Maeder line of the input file specifies a single domain name such as
887583f0578b4adc19e1110a4cc515e0991a7091Christian Maeder "example.com". In general this domain name must be the apex
015103a92faa96f44d5384d171aec1caf93b1006Christian Maeder name of some DNS zone (unlike normal "host names" such as
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder "www.example.com"). nsprobe first identifies the NS RRsets for
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder the given domain name, and sends A and AAAA queries to these
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder servers for some "widely used" names under the zone;
4c20d89b174474beb5f38cc4d47b1ff983c676a9Christian Maeder specifically, adding "www" and "ftp" to the zone name.
a326c4a2e1bb141ada3b3072f5c7be86700005f2Christian Maeder </p></dd>
35d5e815cf9d034b94232852d86550e159d8afd0Christian Maeder</dl></div>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder</div>
a326c4a2e1bb141ada3b3072f5c7be86700005f2Christian Maeder</div>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<div class="section">
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<div class="titlepage"><div><div><h3 class="title">
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<a name="id-1.13.2.10"></a>Library References</h3></div></div></div>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<p>As of this writing, there is no formal "manual" of the
0015e1756b734b34d4b550318c078f9a0c585611Christian Maeder libraries, except this document, header files (some of them
0015e1756b734b34d4b550318c078f9a0c585611Christian Maeder provide pretty detailed explanations), and sample application
0015e1756b734b34d4b550318c078f9a0c585611Christian Maeder programs.</p>
615ef723f845e48d74cd88934738ac9ba76de0b3Christian Maeder</div>
615ef723f845e48d74cd88934738ac9ba76de0b3Christian Maeder</div>
615ef723f845e48d74cd88934738ac9ba76de0b3Christian Maeder</div>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<div class="navfooter">
615ef723f845e48d74cd88934738ac9ba76de0b3Christian Maeder<hr>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<table width="100%" summary="Navigation footer">
615ef723f845e48d74cd88934738ac9ba76de0b3Christian Maeder<tr>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<td width="40%" align="left">
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<a accesskey="p" href="Bv9ARM.ch11.html">Prev</a>�</td>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<td width="20%" align="center">�</td>
615ef723f845e48d74cd88934738ac9ba76de0b3Christian Maeder<td width="40%" align="right">�<a accesskey="n" href="Bv9ARM.ch13.html">Next</a>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder</td>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder</tr>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<tr>
a326c4a2e1bb141ada3b3072f5c7be86700005f2Christian Maeder<td width="40%" align="left" valign="top">Appendix�C.�General <acronym class="acronym">DNS</acronym> Reference Information�</td>
a326c4a2e1bb141ada3b3072f5c7be86700005f2Christian Maeder<td width="20%" align="center"><a accesskey="h" href="Bv9ARM.html">Home</a></td>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<td width="40%" align="right" valign="top">�Manual pages</td>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder</tr>
615ef723f845e48d74cd88934738ac9ba76de0b3Christian Maeder</table>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder</div>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder<p xmlns:db="http://docbook.org/ns/docbook" style="text-align: center;">BIND 9.11.0b3</p>
615ef723f845e48d74cd88934738ac9ba76de0b3Christian Maeder</body>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder</html>
c26ff5708c4a855bf9503b3001bcc19e5fd6286fChristian Maeder