Linux – hosts file seems to be ignored

domain-name-systemhostslinuxUbuntu

I have almost fresh Ubuntu desktop box. OS was installed two weeks ago and updated from karmic repositories. Last week I had no problems with DNS. But this week something had changed. I'm not sure what and when, and not sure whether I changed any configs.

So now I have some really weird situation. According to logs name resolving should work normally.

/etc/hosts

127.0.0.1   localhost test
127.0.1.1   desktop

/etc/host.conf

order hosts,bind
multi on

/etc/resolv.conf

# Generated by NetworkManager
search search servers obtained via DHCP
nameserver 192.168.0.3

/etc/nsswitch.conf

passwd:         compat
group:          compat
shadow:         compat

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

But if fact it is not.

user@test ~>ping test

PING localhost (127.0.0.1) 56(84) bytes of data.
[skip]

Pinging is ok.

user@test ~>host test

test.mydomain.com has address xx.xxx.161.201

I suspect that NetworkManager might cause this misbehavior, but don't know where to start to check it.
Any thoughts, suggestions?

Best Answer

With this configuration, most applications will happily work with your entry from /etc/hosts.

However host doesn't look at /etc/nsswitch.conf. That is by design, not by accident, since host is specifically a DNS lookup program. /etc/hosts is not DNS, it's (mostly) what we used before we had DNS.

The same is also true for dig and nslookup - they're DNS specific too.