9.7.1 Problem
You want to configure the order in which a system's resolver consults various naming services.
9.7.2 Solution
Some vendor's BIND resolvers support configuration of the order in which the resolvers look up names using the various naming services they support. These naming services may include DNS, NIS, NIS+ and /etc/hosts. On the Solaris and HP-UX operating systems, as well as recent versions of Linux and Irix, resolver service order is configured using the nsswitch.conf file, which usually resides in the /etc directory. Lines in nsswitch.conf begin with the name of a database, followed by a colon and a list of one or more sources. For the resolver, the database name is hosts, and the possible sources are:
dns
The name servers listed in resolv.conf
files
/etc/hosts
nis
Sun's Network Information Service
nisplus
Sun's NIS+
The resolver tries the sources in the order listed, so to tell the resolver to check /etc/hosts before querying a name server, you could add this line to nsswitch.conf:
hosts: files dns
By default, the resolver continues to the next source if the previous isn't available or can't find a name. You can modify this behavior by adding condition=action clauses between source names. The possible conditions are:
unavail
True if the previous source hasn't been configured (for example, for DNS, there's no local name server running and no resolv.conf file).
notfound
True if a lookup using the previous source returns an answer that indicates that the name doesn't exist.
tryagain
True if a lookup using the previous source indicates a temporary failure (for example, a DNS query timeout).
success
True if a lookup using the previous source succeeds.
The supported actions are either return (return the result from the previous source) or continue (go on to the next source). The clause is written in square brackets:
hosts: files [notfound=continue] dns
On Windows 95, 98, and ME, you can configure resolver service order by adding subkeys to the following Registry key:
HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDMSTCPServiceProvider
The four Registry subkeys, each a signed, 16-bit number in hexadecimal format, control the order in which the Windows resolver uses the HOSTS and LMHOSTS files, name servers, and NBT queries to resolve names:
LocalPriority
The LMHOSTS file, default priority 499
HostsPriority
The HOSTS file, default priority 500
DNSPriority
The configured name servers, default priority 2000
NetbtPriority
NBT queries, default priority 2001
The lower the value of the key, the earlier the resolver uses that naming service. Deleting a subkey prevents the resolver from using the corresponding service.
9.7.3 Discussion
Some older versions of Linux support configuration of the service order using a file called host.conf; try man host.conf to see if your version does.
The only support in Windows NT 4.0 and Windows 2000 for configuring the service order is a single Registry key:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersDnsNbtLookupOrder
The default value, 0, tells the resolver to query name servers before using NBT queries. Set the value to 1 to instruct the resolver to use NBT queries first.
9.7.4 See Also
"Vendor-Specific Options" in Chapter 6 of DNS and BIND.
Getting Started
Zone Data
BIND Name Server Configuration
Electronic Mail
BIND Name Server Operations
Delegation and Registration
Security
Interoperability and Upgrading
Resolvers and Programming
Logging and Troubleshooting
IPv6