私のDNSサーバーでは、「dig ... @ip-address」は機能しますが、「dig ... @domainname」は機能しません。

私のDNSサーバーでは、「dig ... @ip-address」は機能しますが、「dig ... @domainname」は機能しません。

最近、サーバーの仮想化を始めました。そのうちの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」と何か違うものを返しますか?
  • サービスを再起動した後、ログ タイルを確認しましたか?

関連情報