41
21
ping
tells me that it can't resolve some hostname ("ping: unknown host domain.company.local") in a URL but when I use host
or nslookup
on the same computer on the command line, the resolutions works fine (i.e. it's fast and reliable).
What could be causing this?
More testing: Firefox, wget
and ping
have the same problem. Pinging the IP address works.
OS: Linux (Ubuntu 13.04)
EDIT My /etc/resolv.conf
reads:
nameserver 127.0.1.1
search domain.company.local
netstat
reports:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN -
so something is running on this port (nslookup
also reports it uses 127.0.1.1
as DNS server).
There is no /etc/*inetd.conf
, so I'm not sure which application serves this port.
It seems that dnsmasq
is used:
/usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces
--pid-file=/var/run/NetworkManager/dnsmasq.pid --listen-address=127.0.1.1
--conf-file=/var/run/NetworkManager/dnsmasq.conf --cache-size=0 --proxy-dnssec
--enable-dbus=org.freedesktop.NetworkManager.dnsmasq
--conf-dir=/etc/NetworkManager/dnsmasq.d
All the config files and folders are empty. Since nslookup
says it uses 127.0.1.1#53
my guess is that dnsmasq
works even without a configuration. But how does it know which parent DNS to query?
EDIT2 Disabling dnsmasq
as suggested by harrymc didn't help. So I ran strace ping
which gave me this odd output (just the interesting parts):
open("/etc/host.conf", O_RDONLY|O_CLOEXEC) = 4
read(4, "127.0.0.1\tlocalhost\n#127.0.1.1\ta"..., 4096) = 613
...
open("/lib/libnss_mdns4_minimal.so.2", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\f\0\0\0\0\0\0"..., 832) = 832
...
mmap(NULL, 2105560, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f7829b00000
...
socket(PF_FILE, SOCK_STREAM, 0) = 4
fcntl(4, F_GETFD) = 0
fcntl(4, F_SETFD, FD_CLOEXEC) = 0
connect(4, {sa_family=AF_FILE, path="/var/run/avahi-daemon/socket"}, 110) = 0
fcntl(4, F_GETFL) = 0x2 (flags O_RDWR)
fstat(4, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f782a4f8000
lseek(4, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(4, "RESOLVE-HOSTNAME-IPV4 domain.com"..., 44) = 44
read(4, "-15 Timeout reached\n", 4096) = 20
So ping
looks in /etc/hosts
which makes sense. Then it loads and mmap()
s /lib/libnss_mdns4_minimal.so.2
which makes sense as well.
But then it talks to avahi!?
Which led me to this forum post: ping doesn't make a dns request.
My /etc/nsswitch.conf
also contains this line:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
If I ping
a working address, I see that the process also loads /lib/libnss_mdns4_minimal.so.2
but then, it does a DNS query via port 53.
So my guess is now that /lib/libnss_mdns4_minimal.so.2
is somehow noticing that the IP address ends with .local
and not with .com
and then the [NOTFOUND=return]
is triggered.
How do I fix this?
What's in your
/etc/resolv.conf
? – Joseph R. – 2014-01-21T12:23:59.323Which is correct and which is incorrect? Should the hostname resolve or shouldn't it? You didn't tell us which of two completely different problems you have. (And if it should resolve, explain in as much detail as possible how and why it should resolve, as that will likely lead to the explanation of why it doesn't.) – David Schwartz – 2014-01-21T12:43:14.953
... and what your HTTP proxy settings are for Chrome, Firefox, and
wget
. – JdeBP – 2014-01-21T13:27:14.743@DavidSchwartz: I'm expecting resolution to work. What I don't understand how
nslookup
orhost
can resolve the name and anything else on the system can't. – Aaron Digulla – 2014-01-21T15:39:15.627@JdeBP: I'm using a proxy.pac that returns
DIRECT
for this URL. But it never gets so far; all the programs already fail to resolve the host name (no matter whether I configure to use a proxy or not). – Aaron Digulla – 2014-01-21T15:40:13.117@AaronDigulla What is different about this name compared to names that work? – David Schwartz – 2014-01-21T15:42:15.993
@DavidSchwartz: It's a local/internal name (ie. something that only our internal DNS server knows about). I could imaging that web browser use special DNS lookup code but how can the command line tools
ping
andnslookup
disagree? – Aaron Digulla – 2014-01-21T15:59:41.137Under Windows I know that nslookup opens an Internet connection on the DNS port and issues an external query, whereas ping uses the locally installed DNS client service, which from what you say appears to be dnsmasq. I don't know enough about Linux and dnsmasq, but evidently there is a problem with it. Why do you need dnsmasq? The Ubuntu documentation talks about possible conflicts when installing it.
– harrymc – 2014-01-23T20:04:47.843Can programs like Chrome,
ping
,telnet
andwget
resolve any hostnames (e.g., Internet sites)? – Scott – 2014-01-24T00:30:11.127@Scott: Yes. Most sites work, only this one doesn't. – Aaron Digulla – 2014-01-24T09:11:25.623
@harrymc: I didn't install it. I just installed Kubuntu. I was surprised to find dnsmasq on my system and I know nothing about it. On my system, NetworkManager starts the process. – Aaron Digulla – 2014-01-24T09:53:58.573
The linked doc specifically says the conflicts are with Network Manager, and recommends to install dnsmasq-base but not dnsmasq. You might try uninstalling it but keeping dnsmasq-base. – harrymc – 2014-01-24T10:09:28.103
@harrymc: That is already the case. I only have
dnsmasq-base
installed. – Aaron Digulla – 2014-01-24T10:17:04.4531
If you are not doing connection sharing with other devices or VMs thru your computer, you could turn off dnsmasq in Network Manager. Edit
– harrymc – 2014-01-24T10:58:59.993/etc/NetworkManager/NetworkManager.conf
and comment thedns=dnsmasq
line (put a # in front of it) then do asudo restart network-manager
. That will turn off the local resolver. (source)@harrymc: Thanks, that works as well but I like the "fix the AVAHI config" approach better. Still, turn it into answer and I'll upvote it. – Aaron Digulla – 2014-01-29T16:32:31.040
@AaronDigulla: Done. – harrymc – 2014-01-29T18:35:20.917