I've configured the DNS settings for a host (admin.example-preprod.foobar.it
with IP 100.100.100.100
) but it does not resolve from every server I try (it does for some).
For example, I'm on a server which uses the following 3 DNS servers:
foobar@server:~$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 200.200.200.1
nameserver 200.200.200.2
nameserver 200.200.200.3
dig
works for all of them.
first:
foobar@server:~$ dig admin.example-preprod.foobar.it @200.200.200.1
; <<>> DiG 9.9.5-3ubuntu0.7-Ubuntu <<>> admin.example-preprod.foobar.it @200.200.200.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6540
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 2
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;admin.example-preprod.foobar.it. IN A
;; ANSWER SECTION:
admin.example-preprod.foobar.it. 86400 IN A 100.100.100.100
;; AUTHORITY SECTION:
foobar.it. 86400 IN NS qwert.foobar.it.
foobar.it. 86400 IN NS ns0.xname.org.
foobar.it. 86400 IN NS ns1.xname.org.
;; ADDITIONAL SECTION:
qwert.foobar.it. 86400 IN A 200.200.200.1
;; Query time: 46 msec
;; SERVER: 200.200.200.1#53(200.200.200.1)
;; WHEN: Fri Nov 04 10:35:46 EET 2016
;; MSG SIZE rcvd: 156
second:
foobar@server:~$ dig admin.example-preprod.foobar.it @200.200.200.2
; <<>> DiG 9.9.5-3ubuntu0.7-Ubuntu <<>> admin.example-preprod.foobar.it @200.200.200.2
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 40127
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;admin.example-preprod.foobar.it. IN A
;; AUTHORITY SECTION:
foobar.it. 85817 IN SOA qwert.foobar.it. webmaster.foobar.it. 2016092901 10800 900 1814400 10800
;; Query time: 3 msec
;; SERVER: 200.200.200.2#53(200.200.200.2)
;; WHEN: Fri Nov 04 10:36:05 EET 2016
;; MSG SIZE rcvd: 111
third:
foobar@server:~$ dig admin.example-preprod.foobar.it @200.200.200.3
; <<>> DiG 9.9.5-3ubuntu0.7-Ubuntu <<>> admin.example-preprod.foobar.it @200.200.200.3
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2392
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;admin.example-preprod.foobar.it. IN A
;; ANSWER SECTION:
admin.example-preprod.foobar.it. 86400 IN A 100.100.100.100
;; AUTHORITY SECTION:
foobar.it. 86400 IN NS qwert.foobar.it.
foobar.it. 86400 IN NS ns1.xname.org.
foobar.it. 86400 IN NS ns0.xname.org.
;; ADDITIONAL SECTION:
qwert.foobar.it. 81845 IN A 200.200.200.1
;; Query time: 2309 msec
;; SERVER: 200.200.200.3#53(200.200.200.3)
;; WHEN: Fri Nov 04 10:35:56 EET 2016
;; MSG SIZE rcvd: 156
but then, when I try to ping it gives me unknown host
:
foobar@server:~$ ping admin.example-preprod.foobar.it
ping: unknown host admin.example-preprod.foobar.it
How is that possible and where should I look at to solve the problem?
dig doesn't work for all of them - your second nameserver (
200.200.200.2
in your example) isn't resolving the record.The Linux resolver randomises between entries in resolv.conf by default and I'd guess your ping has hit the failing resolver.
Not sure why yet, but commenting out ALL things in
/private/etc/hosts
seemed to fix a situation where dig worked but ping didn't (dig does not look at hosts but ping does)In my case I had forgotten that I had made an entry in /private/etc/hosts and needed to remove it. I had been trying to access a domain on my LAN server, but then I set up the same domain on a cloud VM.