![私のDNSサーバーでは、「dig ... @ip-address」は機能しますが、「dig ... @domainname」は機能しません。](https://rvso.com/image/1413925/%E7%A7%81%E3%81%AEDNS%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%A7%E3%81%AF%E3%80%81%E3%80%8Cdig%20...%20%40ip-address%E3%80%8D%E3%81%AF%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E3%80%8Cdig%20...%20%40domainname%E3%80%8D%E3%81%AF%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82.png)
最近、サーバーの仮想化を始めました。そのうちの1つはDebian 7でBIND 9を実行しているDNSサーバーです。DHCPサーバーはネットワークのプライマリDNSとして正しく発行しますが、使用しようとすると次のエラーが発生します。dig kilraine.lan @dns.kilraine.lan
couldn't get address for 'dns.kilraine.lan': not found
ただし、元の dig 出力は から取得されますdig kilraine.lan @192.168.1.2
。
詳細:
Debian 7 上の BIND 9、Proxmox による仮想化 CT。
ゾーンファイル(個人情報を隠すためにメールは変更されています)
; BIND data file for kilraine zone
;
$TTL 604800
@ IN SOA kilraine.lan. myaddress.myemail.com. (
2014060303 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
IN A 192.168.1.2
;
@ IN NS dns.kilraine.lan
@ IN A 192.168.1.2
dns2 IN A 192.168.1.1
dns IN A 192.168.1.2
dhcp IN A 192.168.1.3
main IN A 192.168.1.10
逆ゾーンファイル
;
; BIND reverse data file for kilraine.lan
;
$TTL 604800
@ IN SOA kilraine.lan. myaddress.myemail.com. (
3006201401 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS dns.
1 IN PTR dns2.kilraine.lan
2 IN PTR dns.kilraine.lan
3 IN PTR dhcp.kilraine.lan
10 IN PTR main.kilraine.lan
そして最後に、named.conf.local ファイルです。
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
// include "/etc/bind/zones.rfc1918";
zone "kilraine.lan" {
type master;
file "/etc/bind/db.kilraine.lan";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
};
私はBIND 9を何度も再起動しましたが、いつも「OK」でした。サーバーとクライアントの両方でdnsutilsツール「dig」を使用しましたが、それぞれ次の結果が返されました。
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> kilraine.lan
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 46467
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;kilraine.lan. IN A
;; Query time: 2 msec
;; SERVER: 192.168.1.2#53(192.168.1.2)
;; WHEN: Mon Jun 30 21:53:41 2014
;; MSG SIZE rcvd: 30
答え1
逆引きレコードにピリオドがいくつか抜けています。"kilraine.lan" ではなく "kilraine.lan" で終わる必要があります。また、NS レコードは "dns." または "dns.kilraine.lan" ではなく "dns.kilraine.lan" である必要があります。終了ピリオドを省略すると、基本的に BIND にゾーン名を追加するように要求していることになります (つまり、dns.kilraine.lan.kilraine.lan になります)。
その他の質問/コメント/ご意見:
- 変更を加えた後、サービスを再起動(またはゾーンを再読み込み)しましたか?
- リゾルバは DNS サーバーを指していますか?
- BIND はポート 53 でリッスンしていますか? サーバー上に DNS サービスへのアクセスをブロックするホスト ファイアウォールがありますか?
- 「dig main.kilraine.lan」は「dig @192.168.1.1 main.kilraine.com」と何か違うものを返しますか?
- サービスを再起動した後、ログ タイルを確認しましたか?