DNS 查询仅适用于完全限定域名 (FQDN),但不适用于短名称

xpt*_*xpt 5 networking windows linux dns ubuntu

这是 Windows 主机和环境中的 Linux (Ubuntu 13.10) VM 来宾。在进行 DNS 查询时,只有 FQDN 条目有返回,而短名称没有(见下文)。这是为什么?

hostname -f正在使用正确的域名返回我的 VM 的 FQDN,并且我/etc/resolv.conf已经有了该search mycompany.com行。但是,短名称仍然不起作用。

$ dig mySvr01 

; <<>> DiG 9.9.3-rpz2+rl.13214.22-P2-Ubuntu-1:9.9.3.dfsg.P2-4ubuntu1.1 <<>> mySvr01
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 27616
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1280
;; QUESTION SECTION:
;mySvr01.                  IN      A

;; Query time: 4 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Mon Mar 31 07:33:47 PDT 2014
;; MSG SIZE  rcvd: 41

$ dig mySvr01.mycompany.com 

; <<>> DiG 9.9.3-rpz2+rl.13214.22-P2-Ubuntu-1:9.9.3.dfsg.P2-4ubuntu1.1 <<>> mySvr01.mycompany.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7162
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
; mySvr01.mycompany.com.     IN      A

;; ANSWER SECTION:
mySvr01.mycompany.com. 3600 IN      A       10.192.78.38
mySvr01.mycompany.com. 3600 IN      A       10.192.78.66

;; Query time: 1 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Mon Mar 31 07:33:44 PDT 2014
;; MSG SIZE  rcvd: 86
Run Code Online (Sandbox Code Playgroud)

mta*_*tak 6

dig 命令不使用 DNS 搜索路径来搜索主机,它只是在 DNS 中查找 FQDN。这是因为 dig 直接查询名称服务器,而不是使用 nsswitch 方法(提供搜索路径功能)。

如您所见,使用 dig 无法解析非 fqdn: mtak@gen1:~$ dig svc1 +short mtak@gen1:~$ dig svc1.int.mtak.nl +short 10.100.0.11 您可以使用 host 命令检查 DNS 搜索路径是否正常工作: mtak@gen1:~$ host svc1 svc1.int.mtak.nl has address 10.100.0.11


小智 6

这是 dig 默认行为的一个特性。它会忽略 /etc/resolv.conf 中的搜索和域指令,除非您告诉它使用它们:

+[no]search 使用 [不使用] 由 resolv.conf 中的 searchlist 或 domain 指令定义的搜索列表(如果有)。默认情况下不使用搜索列表。

您可以将“+search”添加到 $HOME/.digrc 以使其自动查找短名称。