OT: What Might Break getbostbyname() ?

Dan Nelson dnelson at allantgroup.com
Thu Jan 17 06:49:30 UTC 2013


In the last episode (Jan 16), Tim Daneliuk said:
> This is not really a FreeBSD problem ... in fact, it's happening on a
> Solaris 10 machine.  But because the TCP stack and its userland interface
> came from BSD, I am hoping some kind soul might have an insight into
> what's going on ...

Solaris hasn't used a BSD TCP stack for many many years afaik..

> The machine in question does DNS lookups fine via dig or nslookup.  I
> believe these connect directly to the DNS server(s) specified in
> /etc/resolv.conf.
> 
> However, any program that uses gethostbyname() - like ping - fails and
> says it cannot resolve the name.
> 
> I'm looking for hints here on why or how gethostbyname() and/or the
> network stack could get clobbered so as to not be able to talk to the DNS
> servers which I know are reachable via dig and nslookup.

First, check /etc/nsswitch.conf and verify that "dns" is listed on the
"hosts:" line.  Next, try disabling nscd ("svcadm disable
name-service-cache") , and then running "truss ping www.google.com" (make
sure to reenable nscd when you're done debugging).  You should see syscalls
to open /etc/resolv.conf, read the contents, and then open a socket to the
nameserver listed in that file.

-- 
	Dan Nelson
	dnelson at allantgroup.com


More information about the freebsd-questions mailing list