I'm running kernel 1.2.0 with GCC 2.6.2. Yesterday afternoon we had an
interesting failure at our site, which comprises several class C subnets.
My subnet's primary name server went berserk and stopped resolving names.
It apparently stormed our subnet, and confused our secondary name server,
which bounced up and down for a few hours while losing all contact with
my subnet.
The effect on our Linux machines of losing both name servers was
interesting. Any attempt to resolve the hosts' names went first to the
name servers, and finally to the local /etc/hosts. That meant that the
login program waited about five minutes after accepting the password
before invoking the .login and .cshrc. Subshells took five minutes to
start up. Similarly for startx (resolving the name of the display).
Running "host -d" showed that it was interrogating the name servers right
off the bat.
Until yesterday I had assumed that my /etc/hosts file was resolving
name requests, and then the resolver was falling back on network
resolution if the entry wasn't in /etc/hosts. This experience shows that
it was not the case.
My resolv.conf reads:
domain physics.utoronto.ca
search physics.utoronto.ca utoronto.ca toronto.edu
order hosts bind
nameserver 128.100.75.99
nameserver 128.100.75.10
nameserver 128.100.51.81
That last nameserver field I added afterwards, it is for another
department on campus and that sped things up a lot. I'm still curious to
know why my resolver isn't checking 'hosts' first. Since these shells
took such a long time to start up I had ample time to check last access
times with "ls -ul" on these files. /etc/resolv.conf was accessed
immediately, but /etc/hosts was only read after the five minute delay. It
didn't fail to local the entry in hosts, it failed even to try.
According to the NAG, what I've put in there should work. Any ideas
why my /etc/hosts file isn't being used?
--
Home page: http://caliban.physics.utoronto.ca/neufeld/Intro.html
"Don't edit reality for the sake of simplicity"