Bv9ARM.ch12.html revision b708ffc480d3e9c36247ac58f6ca2ea2ad842cdf
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright - Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC")
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright - Copyright (C) 2000-2003 Internet Software Consortium.
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright - Permission to use, copy, modify, and/or distribute this software for any
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright - purpose with or without fee is hereby granted, provided that the above
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright - copyright notice and this permission notice appear in all copies.
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright - PERFORMANCE OF THIS SOFTWARE.
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<title>Appendix�D.�BIND 9 DNS Library Support</title>
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<link rel="start" href="Bv9ARM.html" title="BIND 9 Administrator Reference Manual">
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<link rel="up" href="Bv9ARM.html" title="BIND 9 Administrator Reference Manual">
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<link rel="prev" href="Bv9ARM.ch11.html" title="Appendix�C.�General DNS Reference Information">
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<link rel="next" href="Bv9ARM.ch13.html" title="Manual pages">
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
4679bde12548e75a51abcb9c51cde874e70427a8Derek Gathright<table width="100%" summary="Navigation header">
4679bde12548e75a51abcb9c51cde874e70427a8Derek Gathright<tr><th colspan="3" align="center">Appendix�D.�BIND 9 DNS Library Support</th></tr>
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<a accesskey="p" href="Bv9ARM.ch11.html">Prev</a>�</td>
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<td width="20%" align="right">�<a accesskey="n" href="Bv9ARM.ch13.html">Next</a>
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<div class="titlepage"><div><div><h2 class="title">
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<a name="Bv9ARM.ch12"></a>Appendix�D.�BIND 9 DNS Library Support</h2></div></div></div>
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<dt><span class="sect1"><a href="Bv9ARM.ch12.html#bind9.library">BIND 9 DNS Library Support</a></span></dt>
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2615478">Prerequisite</a></span></dt>
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2615488">Compilation</a></span></dt>
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2613805">Installation</a></span></dt>
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2613836">Known Defects/Restrictions</a></span></dt>
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2613913">The dns.conf File</a></span></dt>
4679bde12548e75a51abcb9c51cde874e70427a8Derek Gathright<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2613940">Sample Applications</a></span></dt>
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2615595">Library References</a></span></dt>
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<div class="titlepage"><div><div><h2 class="title" style="clear: both">
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<a name="bind9.library"></a>BIND 9 DNS Library Support</h2></div></div></div>
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<p>This version of BIND 9 "exports" its internal libraries so
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright that they can be used by third-party applications more easily (we
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright call them "export" libraries in this document). In addition to
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright all major DNS-related APIs BIND 9 is currently using, the export
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright libraries provide the following features:</p>
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<li><p>The newly created "DNS client" module. This is a higher
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright level API that provides an interface to name resolution,
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright single DNS transaction with a particular server, and dynamic
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright update. Regarding name resolution, it supports advanced
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright features such as DNSSEC validation and caching. This module
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright supports both synchronous and asynchronous mode.</p></li>
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<li><p>The new "IRS" (Information Retrieval System) library.
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright It provides an interface to parse the traditional resolv.conf
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright file and more advanced, DNS-specific configuration file for
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright the rest of this package (see the description for the
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<li><p>As part of the IRS library, newly implemented standard
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright address-name mapping functions, getaddrinfo() and
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright getnameinfo(), are provided. They use the DNSSEC-aware
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright validating resolver backend, and could use other advanced
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright features of the BIND 9 libraries such as caching. The
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright getaddrinfo() function resolves both A and AAAA RRs
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright concurrently (when the address family is unspecified).</p></li>
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright<li><p>An experimental framework to support other event
6aaa468f50af23f08685835d1984767b81a4446aDerek Gathright libraries than BIND 9's internal event task system.</p></li>
$ <strong class="userinput"><code>/configure --enable-exportlib <em class="replaceable"><code>[other flags]</code></em></code></strong>
$ <strong class="userinput"><code>/configure --enable-fixed-rrset <em class="replaceable"><code>[other flags, but not --enable-exportlib]</code></em></code></strong>
$ <strong class="userinput"><code>/configure --enable-exportlib <em class="replaceable"><code>[other flags, but not --enable-fixed-rrset]</code></em></code></strong>
<a href="Bv9ARM.ch06.html#trusted-keys" title="trusted-keys Statement Grammar">the section called “<span><strong class="command">trusted-keys</strong></span> Statement Grammar”</a> for details.)</p>
example, to specify the following DNSKEY of example.com:
-e -k example.com -K "xxx"
"domain". Example: -s example.com:2001:db8::1234
<a name="id2614039"></a>sample-async: a simple stub resolver, working asynchronously</h4></div></div></div>
<a name="id2615317"></a>sample-gai: getaddrinfo() and getnameinfo() test code</h4></div></div></div>
returned by getaddrinfo(). If the dns.conf file exists and
<a name="id2615332"></a>sample-update: a simple dynamic update client program</h4></div></div></div>
dynamic.example.com zone has an IPv6 address 2001:db8::1234,
$ <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>
adds an A RR for foo.dynamic.example.com using the given key.
$ <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>
removes all A RRs for foo.dynamic.example.com using the given key.
$ <strong class="userinput"><code>sample-update -a sample-update -k Kxxx.+nnn+mmmm.key delete "foo.dynamic.example.com"</code></strong></pre>
removes all RRs for foo.dynamic.example.com using the given key.
<a name="id2615531"></a>nsprobe: domain/name server checker in terms of RFC 4074</h4></div></div></div>
"example.com". In general this domain name must be the apex
"www.example.com"). nsprobe first identifies the NS RRsets for