[Fwd: /etc/hosts and /etc/host.conf confusion]

David Fuchs david at davidfuchs.ca
Fri Jul 2 20:39:53 PDT 2004


bump.  At the very least perhaps someone could point me to some docs 
that give a good explanation?

-------- Original Message --------
Subject: /etc/hosts and /etc/host.conf confusion
Date: Tue, 22 Jun 2004 11:40:10 -0700
From: David Fuchs <david at davidfuchs.ca>
To: freebsd-questions at freebsd.org

Hello,

	I'm having some difficulties understanding the semantics behind the 
resolver in FreeBSD, and how /etc/host.conf, /etc/hosts, and
/etc/resolv.conf fit together.

	The manpage 'host.conf(5)' states:

	"The host.conf file holds part of the configuration for the resolver of 
FreeBSD.  It describes what services (e.g., DNS or yp(8)) the C library 
resolving routines (like gethostbyname(3)) will use, and their order of 
use, when resolving host names or addresses."

	Well that explanation sounds good to me.  My /etc/host.conf file looks 
like this:

# $FreeBSD: src/etc/host.conf,v 1.6 1999/08/27 23:23:41 peter Exp $
# First try the /etc/hosts file
hosts
# Now try the nameserver next.
bind
# If you have YP/NIS configured, uncomment the next line
# nis

	Considering that 'hosts' is listed first, I would expect that any 
entries I add to /etc/hosts will take precedence over entries retrieved 
from bind.  So, I added an entry to this file for a random IP-to-name 
mapping, and tested it with the 'host(1)' command, and it failed.  When 
I enable debugging, it clearly shows that it's consulting the first 
nameserver listed in resolv.conf (an external host), no mention of a 
hosts file anywhere (or attempt to send a request to the local host).

	As an addition to this, the manpage 'hosts(5)' states the following:

	"When using the name server named(8), this file provides a backup used 
when the name server is not running."

	Would someone please clarify this, as it seems to contradict my default 
'host.conf(5)' file in /etc, which configures the resolver to consult 
/etc/hosts *before* bind (this behaviour is, of course, stated in the 
host.conf manpage).

	Additionally, what classifies as 'when the name server is not running' 
- does this mean that /etc/hosts is used when all the nameservers listed 
in /etc/resolv.conf are unavailable? (As I only use the local named(8) 
daemon to host my personal domain, not for everyday recursive lookups.) 
  Or does it literally refer to when my local copy of named(8) is not in 
the process list?

	Thanks in advance for clearing things up for me.

-- 
-David Fuchs



More information about the freebsd-questions mailing list