Domain-Name-System
dig 有效,但 ping 無法解析主機
我已經為主機(
admin.example-preprod.foobar.it
使用 IP100.100.100.100
)配置了 DNS 設置,但它並不能從我嘗試的每台伺服器上解析(它適用於某些伺服器)。例如,我在使用以下 3 個 DNS 伺服器的伺服器上:
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
適用於所有人。第一的:
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
第二:
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
第三:
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
但是,當我嘗試 ping 時,它給了我
unknown host
:foobar@server:~$ ping admin.example-preprod.foobar.it ping: unknown host admin.example-preprod.foobar.it
這怎麼可能,我應該在哪裡解決問題?
dig 不適用於所有這些 - 您的第二個名稱伺服器(
200.200.200.2
在您的範例中)沒有解析記錄。預設情況下,Linux 解析器會在 resolv.conf 中的條目之間隨機化,我猜你的 ping 已經擊中了失敗的解析器。
還不知道為什麼,但是註釋掉所有的東西
/private/etc/hosts
似乎可以解決 dig 工作但 ping 沒有的情況(dig 不查看主機但 ping 確實)