これはLinux(Ubuntu 13.10)VM Windowsホストおよび環境のゲストです。DNSクエリを実行すると、FQDNエントリのみが返され、短い名前は返されません(以下を参照)。なぜですか。それ?
ぼくの hostname -f
は、私のVMと正しいドメイン名、および私の/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
Digコマンドは、DNS検索パスを使用してホストを検索するのではなく、DNSでFQDNを検索するだけです。これは、Digがnsswitchメソッド(検索パス機能を提供する)を使用する代わりに、ネームサーバーに直接クエリを実行するためです。
ご覧のとおり、非fqdnはDigでは解決されません: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
これは、Digのデフォルトの動作の特異性です。 /etc/resolv.conf内の検索ディレクティブとドメインディレクティブを使用するように指示しない限り、それらを無視します。
+ [no] search resolv.conf(存在する場合)のsearchlistまたはdomainディレクティブで定義された検索リストを使用します[使用しません]。デフォルトでは、検索リストは使用されません。
$ HOME /.digrcに "+ search"を追加して、短い名前を自動的に検索することができます。