Bind 9 Administrator Reference Manual

Chapter 5. The BIND 9 Lightweight Resolver
5.1. The Lightweight Resolver Library
Traditionally applications have been linked with a stub resolver library that sends recursive DNS queries
to a local caching name server.
IPv6 introduces new complexity into the resolution process, such as following A6 chains and DNAME
records, and simultaneous lookup of IPv4 and IPv6 addresses. These are hard or impossible to
implement in a traditional stub resolver.
Instead, BIND 9 provides resolution services to local clients using a combination of a lightweight
resolver library and a resolver daemon process running on the local host. These communicate using a
simple UDP-based protocol, the "lightweight resolver protocol" that is distinct from and simpler than the
full DNS protocol.
5.2. Running a Resolver Daemon
To use the lightweight resolver interface, the system must run the resolver daemon lwresd.
By default, applications using the lightweight resolver library will make UDP requests to the IPv4
loopback address (127.0.0.1) on port 921. The address can be overridden by lwserver lines in
/etc/resolv.conf. The daemon will try to find the answer to the questions "what are the addresses
for host foo.example.com?" and "what are the names for IPv4 address 10.1.2.3?"
The daemon currently only looks in the DNS, but in the future it may use other sources such as
/etc/hosts, NIS, etc.
The lwresd daemon is essentially a caching-only name server that answers requests using the lightweight
resolver protocol rather than the DNS protocol. Because it needs to run on each host, it is designed to
require no or minimal configuration. Unless configured otherwise, it uses the name servers listed on
nameserver lines in /etc/resolv.conf as forwarders, but is also capable of doing the resolution
autonomously if none are specified.
The lwresd daemon may also be configured with a named.conf style configuration file, in
/etc/lwresd.conf by default. A name server may also be configured to act as a lightweight resolver
daemon using the lwres statement in named.conf.
41