Can resolve hostname via dns using `host` but can't ping/ssh/ntp
This was on Ubuntu server 12.04 LTS and Ubuntu 12.04 LTS
Thanks all for the help. Turns out to be a result of a difference in the way host and the glibc resolver read /etc/resolv.conf.
I was managing resolv.conf with a puppet module that edited the appropriate files in /etc/resolvconf/resolv.conf.d/
.
Said puppet module resulted in an /etc/resolv.conf that looked like this:
nameserver 10.10.10.100
nameserver 192.168.3.100
nameserver 10.10.10.1
search example.com
with a space at the beginning of each line. After removing these spaces, I was able to resolve with both ping and manual lookups (host/nslookup/etc...)
I could've sworn that I've had those spaces on other OSes with no issues, but I just tried on a SL6.3 box and it caused the same behavior.
Thanks for your help and sorry for the trouble!
Related videos on Youtube
David Khan
Updated on September 18, 2022Comments
-
David Khan over 1 year
I'm setting up a local network and have configured a DNS server. I can resolve hostnames by querying the DNS server, but no programs can look them up.
I uninstalled libnss-mdns and removed avahi-daemon and even rebooted afterwards.
Here are some examples:
root@cloud2:~# host ns.example.com ns.example.com has address 10.10.10.100 root@cloud2:~# ping ns.example.com ping: unknown host ns.example.com root@cloud2:~# grep hosts /etc/nsswitch.conf hosts: files dns
my ntp server is configured for ns.example.com, but all I get is nxdomain on ntpq
any ideas?
EDIT:
This also applies to external DNS entries. I have my router both as a DNS forwarder on the custom DNS server and as an entry in resolvconf.
E.G.
root@cloud2:~# host google.com | head google.com has address 74.125.225.65 google.com has address 74.125.225.66 google.com has address 74.125.225.67 google.com has address 74.125.225.68 google.com has address 74.125.225.69 google.com has address 74.125.225.70 google.com has address 74.125.225.71 google.com has address 74.125.225.72 google.com has address 74.125.225.73 google.com has address 74.125.225.78 root@cloud2:~# traceroute google.com google.com: Temporary failure in name resolution Cannot handle "host" cmdline arg `google.com' on position 1 (argc 1)
-
jdthood over 11 yearsOdd. Please add the content of your /etc/resolv.conf file. Also mention which Ubuntu release you are running.
-
Steve-o over 11 yearsDNS cache such as named or sssd caching negative lookups?
-
David Khan over 11 years@Steve-o I had looked for DNS caching, I've been burned plenty of times by nscd in the past so that's a good suggestion :-)
-
-
jdthood over 11 yearsI don't see any unusual spaces in the earlier resolv.conf.
-
jdthood over 11 yearsBy the way, is this a custom Puppet module or one you got from somewhere else? If the latter then we should see to it that the bug gets fixed upstream.
-
David Khan over 11 yearsThe unsual spaces are leading spaces, which might be tricky to see given the way the gray boxes are. (I realize you've probably noticed, but I want to leave this question for posterity). Also, this is what I baesd my module on: danielhelm.com/blog/60-puppet-dns-client-module, but remember that ubuntu uses the resolvconf service - so I edited
/etc/resolvconf/resolv.conf.d/head
I'm putting a comment on that site... -
jdthood over 11 yearsI have edited the answer (pending acceptance) so as to make it clearer that there are spaces at the beginnings of the lines. I consider this to be a shortcoming in the glibc resolver; it should ignore leading whitespace, especially if
host
does so. -
jdthood over 11 yearsI left a comment on that site too. I also filed a wish in the Debian BTS (#699061) requesting that leading whitespace be ignored in resolv.conf.
-
ulidtko about 10 yearsWhat methods did you use to debug that? I'm experiencing exactly the same issue, but no leading spaces in my
resolv.conf
whatsoever.