lwresd.docbook revision 83a28ca274521e15086fc39febde507bcc4e145e
359a38ce40498397028473d956691915ed3e849atavmjong-free<!--
359a38ce40498397028473d956691915ed3e849atavmjong-free - Copyright (C) 2000, 2001, 2004, 2005, 2007-2009, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
359a38ce40498397028473d956691915ed3e849atavmjong-free -
359a38ce40498397028473d956691915ed3e849atavmjong-free - This Source Code Form is subject to the terms of the Mozilla Public
359a38ce40498397028473d956691915ed3e849atavmjong-free - License, v. 2.0. If a copy of the MPL was not distributed with this
359a38ce40498397028473d956691915ed3e849atavmjong-free - file, You can obtain one at http://mozilla.org/MPL/2.0/.
359a38ce40498397028473d956691915ed3e849atavmjong-free-->
359a38ce40498397028473d956691915ed3e849atavmjong-free
359a38ce40498397028473d956691915ed3e849atavmjong-free<!-- Converted by db4-upgrade version 1.0 -->
359a38ce40498397028473d956691915ed3e849atavmjong-free<refentry xmlns:db="http://docbook.org/ns/docbook" version="5.0" xml:id="man.lwresd">
359a38ce40498397028473d956691915ed3e849atavmjong-free <info>
359a38ce40498397028473d956691915ed3e849atavmjong-free <date>2009-01-20</date>
359a38ce40498397028473d956691915ed3e849atavmjong-free </info>
359a38ce40498397028473d956691915ed3e849atavmjong-free <refentryinfo>
359a38ce40498397028473d956691915ed3e849atavmjong-free <corpname>ISC</corpname>
359a38ce40498397028473d956691915ed3e849atavmjong-free <corpauthor>Internet Systems Consortium, Inc.</corpauthor>
359a38ce40498397028473d956691915ed3e849atavmjong-free </refentryinfo>
359a38ce40498397028473d956691915ed3e849atavmjong-free
359a38ce40498397028473d956691915ed3e849atavmjong-free <refmeta>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel <refentrytitle><application>lwresd</application></refentrytitle>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel <manvolnum>8</manvolnum>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel <refmiscinfo>BIND9</refmiscinfo>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel </refmeta>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel <refnamediv>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel <refname><application>lwresd</application></refname>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel <refpurpose>lightweight resolver daemon</refpurpose>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel </refnamediv>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel <docinfo>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel <copyright>
359a38ce40498397028473d956691915ed3e849atavmjong-free <year>2000</year>
359a38ce40498397028473d956691915ed3e849atavmjong-free <year>2001</year>
359a38ce40498397028473d956691915ed3e849atavmjong-free <year>2004</year>
359a38ce40498397028473d956691915ed3e849atavmjong-free <year>2005</year>
359a38ce40498397028473d956691915ed3e849atavmjong-free <year>2007</year>
359a38ce40498397028473d956691915ed3e849atavmjong-free <year>2008</year>
359a38ce40498397028473d956691915ed3e849atavmjong-free <year>2009</year>
359a38ce40498397028473d956691915ed3e849atavmjong-free <year>2014</year>
359a38ce40498397028473d956691915ed3e849atavmjong-free <year>2015</year>
359a38ce40498397028473d956691915ed3e849atavmjong-free <year>2016</year>
359a38ce40498397028473d956691915ed3e849atavmjong-free <holder>Internet Systems Consortium, Inc. ("ISC")</holder>
359a38ce40498397028473d956691915ed3e849atavmjong-free </copyright>
359a38ce40498397028473d956691915ed3e849atavmjong-free </docinfo>
359a38ce40498397028473d956691915ed3e849atavmjong-free
359a38ce40498397028473d956691915ed3e849atavmjong-free <refsynopsisdiv>
359a38ce40498397028473d956691915ed3e849atavmjong-free <cmdsynopsis sepchar=" ">
359a38ce40498397028473d956691915ed3e849atavmjong-free <command>lwresd</command>
359a38ce40498397028473d956691915ed3e849atavmjong-free <arg choice="opt" rep="norepeat"><option>-c <replaceable class="parameter">config-file</replaceable></option></arg>
359a38ce40498397028473d956691915ed3e849atavmjong-free <arg choice="opt" rep="norepeat"><option>-C <replaceable class="parameter">config-file</replaceable></option></arg>
359a38ce40498397028473d956691915ed3e849atavmjong-free <arg choice="opt" rep="norepeat"><option>-d <replaceable class="parameter">debug-level</replaceable></option></arg>
359a38ce40498397028473d956691915ed3e849atavmjong-free <arg choice="opt" rep="norepeat"><option>-f</option></arg>
359a38ce40498397028473d956691915ed3e849atavmjong-free <arg choice="opt" rep="norepeat"><option>-g</option></arg>
359a38ce40498397028473d956691915ed3e849atavmjong-free <arg choice="opt" rep="norepeat"><option>-i <replaceable class="parameter">pid-file</replaceable></option></arg>
359a38ce40498397028473d956691915ed3e849atavmjong-free <arg choice="opt" rep="norepeat"><option>-m <replaceable class="parameter">flag</replaceable></option></arg>
359a38ce40498397028473d956691915ed3e849atavmjong-free <arg choice="opt" rep="norepeat"><option>-n <replaceable class="parameter">#cpus</replaceable></option></arg>
359a38ce40498397028473d956691915ed3e849atavmjong-free <arg choice="opt" rep="norepeat"><option>-P <replaceable class="parameter">port</replaceable></option></arg>
359a38ce40498397028473d956691915ed3e849atavmjong-free <arg choice="opt" rep="norepeat"><option>-p <replaceable class="parameter">port</replaceable></option></arg>
359a38ce40498397028473d956691915ed3e849atavmjong-free <arg choice="opt" rep="norepeat"><option>-s</option></arg>
359a38ce40498397028473d956691915ed3e849atavmjong-free <arg choice="opt" rep="norepeat"><option>-t <replaceable class="parameter">directory</replaceable></option></arg>
359a38ce40498397028473d956691915ed3e849atavmjong-free <arg choice="opt" rep="norepeat"><option>-u <replaceable class="parameter">user</replaceable></option></arg>
359a38ce40498397028473d956691915ed3e849atavmjong-free <arg choice="opt" rep="norepeat"><option>-v</option></arg>
359a38ce40498397028473d956691915ed3e849atavmjong-free <arg choice="opt" rep="norepeat"><option>-4</option></arg>
359a38ce40498397028473d956691915ed3e849atavmjong-free <arg choice="opt" rep="norepeat"><option>-6</option></arg>
359a38ce40498397028473d956691915ed3e849atavmjong-free </cmdsynopsis>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel </refsynopsisdiv>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel <refsection><info><title>DESCRIPTION</title></info>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel
35087bff7509c736a32e0b74fd9ff0834bde7b6bMarkus Engel
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel <para><command>lwresd</command>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel is the daemon providing name lookup
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel services to clients that use the BIND 9 lightweight resolver
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel library. It is essentially a stripped-down, caching-only name
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel server that answers queries using the BIND 9 lightweight
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel resolver protocol rather than the DNS protocol.
35087bff7509c736a32e0b74fd9ff0834bde7b6bMarkus Engel </para>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel <para><command>lwresd</command>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel listens for resolver queries on a
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel UDP port on the IPv4 loopback interface, 127.0.0.1. This
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel means that <command>lwresd</command> can only be used by
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel processes running on the local machine. By default, UDP port
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel number 921 is used for lightweight resolver requests and
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel responses.
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel </para>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel <para>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel Incoming lightweight resolver requests are decoded by the
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel server which then resolves them using the DNS protocol. When
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel the DNS lookup completes, <command>lwresd</command> encodes
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel the answers in the lightweight resolver format and returns
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel them to the client that made the request.
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel </para>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel <para>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel If <filename>/etc/resolv.conf</filename> contains any
35087bff7509c736a32e0b74fd9ff0834bde7b6bMarkus Engel <option>nameserver</option> entries, <command>lwresd</command>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel sends recursive DNS queries to those servers. This is similar
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel to the use of forwarders in a caching name server. If no
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel <option>nameserver</option> entries are present, or if
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel forwarding fails, <command>lwresd</command> resolves the
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel queries autonomously starting at the root name servers, using
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel a built-in list of root server hints.
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel </para>
eb4b5da8fbdf95f44ae7f0c950e9a07763ebb50fMarkus Engel </refsection>
359a38ce40498397028473d956691915ed3e849atavmjong-free
359a38ce40498397028473d956691915ed3e849atavmjong-free <refsection><info><title>OPTIONS</title></info>
359a38ce40498397028473d956691915ed3e849atavmjong-free
359a38ce40498397028473d956691915ed3e849atavmjong-free
359a38ce40498397028473d956691915ed3e849atavmjong-free <variablelist>
359a38ce40498397028473d956691915ed3e849atavmjong-free
359a38ce40498397028473d956691915ed3e849atavmjong-free <varlistentry>
359a38ce40498397028473d956691915ed3e849atavmjong-free <term>-4</term>
359a38ce40498397028473d956691915ed3e849atavmjong-free <listitem>
359a38ce40498397028473d956691915ed3e849atavmjong-free <para>
Use IPv4 only even if the host machine is capable of IPv6.
<option>-4</option> and <option>-6</option> are mutually
exclusive.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-6</term>
<listitem>
<para>
Use IPv6 only even if the host machine is capable of IPv4.
<option>-4</option> and <option>-6</option> are mutually
exclusive.
</para>
</listitem>
</varlistentry>
<!-- this is in source but not mentioned? does this matter? -->
<varlistentry>
<term>-c <replaceable class="parameter">config-file</replaceable></term>
<listitem>
<para>
Use <replaceable class="parameter">config-file</replaceable> as the
configuration file instead of the default,
<filename>/etc/lwresd.conf</filename>.
<!-- Should this be an absolute path name? -->
<option>-c</option> can not be used with <option>-C</option>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-C <replaceable class="parameter">config-file</replaceable></term>
<listitem>
<para>
Use <replaceable class="parameter">config-file</replaceable> as the
configuration file instead of the default,
<filename>/etc/resolv.conf</filename>.
<option>-C</option> can not be used with <option>-c</option>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-d <replaceable class="parameter">debug-level</replaceable></term>
<listitem>
<para>
Set the daemon's debug level to <replaceable class="parameter">debug-level</replaceable>.
Debugging traces from <command>lwresd</command> become
more verbose as the debug level increases.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-f</term>
<listitem>
<para>
Run the server in the foreground (i.e. do not daemonize).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-g</term>
<listitem>
<para>
Run the server in the foreground and force all logging
to <filename>stderr</filename>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-i <replaceable class="parameter">pid-file</replaceable></term>
<listitem>
<para>
Use <replaceable class="parameter">pid-file</replaceable> as the
PID file instead of the default,
<filename>/var/run/lwresd/lwresd.pid</filename>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-m <replaceable class="parameter">flag</replaceable></term>
<listitem>
<para>
Turn on memory usage debugging flags. Possible flags are
<replaceable class="parameter">usage</replaceable>,
<replaceable class="parameter">trace</replaceable>,
<replaceable class="parameter">record</replaceable>,
<replaceable class="parameter">size</replaceable>, and
<replaceable class="parameter">mctx</replaceable>.
These correspond to the ISC_MEM_DEBUGXXXX flags described in
<filename>&lt;isc/mem.h&gt;</filename>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-n <replaceable class="parameter">#cpus</replaceable></term>
<listitem>
<para>
Create <replaceable class="parameter">#cpus</replaceable> worker threads
to take advantage of multiple CPUs. If not specified,
<command>lwresd</command> will try to determine the
number of CPUs present and create one thread per CPU.
If it is unable to determine the number of CPUs, a
single worker thread will be created.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-P <replaceable class="parameter">port</replaceable></term>
<listitem>
<para>
Listen for lightweight resolver queries on port
<replaceable class="parameter">port</replaceable>. If
not specified, the default is port 921.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-p <replaceable class="parameter">port</replaceable></term>
<listitem>
<para>
Send DNS lookups to port <replaceable class="parameter">port</replaceable>. If not
specified, the default is port 53. This provides a
way of testing the lightweight resolver daemon with a
name server that listens for queries on a non-standard
port number.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-s</term>
<listitem>
<para>
Write memory usage statistics to <filename>stdout</filename>
on exit.
</para>
<note>
<para>
This option is mainly of interest to BIND 9 developers
and may be removed or changed in a future release.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>-t <replaceable class="parameter">directory</replaceable></term>
<listitem>
<para>Chroot
to <replaceable class="parameter">directory</replaceable> after
processing the command line arguments, but before
reading the configuration file.
</para>
<warning>
<para>
This option should be used in conjunction with the
<option>-u</option> option, as chrooting a process
running as root doesn't enhance security on most
systems; the way <function>chroot(2)</function> is
defined allows a process with root privileges to
escape a chroot jail.
</para>
</warning>
</listitem>
</varlistentry>
<varlistentry>
<term>-u <replaceable class="parameter">user</replaceable></term>
<listitem>
<para>Setuid
to <replaceable class="parameter">user</replaceable> after completing
privileged operations, such as creating sockets that
listen on privileged ports.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-v</term>
<listitem>
<para>
Report the version number and exit.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection><info><title>FILES</title></info>
<variablelist>
<varlistentry>
<term><filename>/etc/resolv.conf</filename></term>
<listitem>
<para>
The default configuration file.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>/var/run/lwresd.pid</filename></term>
<listitem>
<para>
The default process-id file.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection><info><title>SEE ALSO</title></info>
<para><citerefentry>
<refentrytitle>named</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>lwres</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>resolver</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>.
</para>
</refsection>
</refentry>