web-dev-qa-db-ja.com

Bind9を備えたDNSサーバー:フォワードゾーンファイルとリバースゾーンファイルのDNSレコードを解決できません

みなさんこんにちは:) bind9でDNSサーバーを設定しようとしましたが、いくつかのチュートリアルを試しましたが、それでも同じエラーが発生します。 bind9の起動は正常に動作しますが、Host1(フォワードゾーンファイルに存在する)に対してnslookupまたはDigを使用すると、IPアドレスを解決できません。 Host1の代わりにIPアドレスを引数として使用して、逆ゾーンファイルでも同じ問題が発生します。代わりに、たとえばMicrosoft.comを検索すると、答えが得られます。

例:

nslookup Host1.dirks.crtn
;; Got SERVFAIL reply from 192.168.56.2, trying next server
;; Got SERVFAIL reply from 192.168.56.2, trying next server
server 127.0.0.1
address 127.0.0.1#53

** server can't fint Host1.dirks.crtn.dirks.crtn: SERVFAIL

Host1も試しました:

nslookup Host1
;; Got SERVFAIL reply from 192.168.56.2, trying next server 
server: 192.168.56.2
address 192.168.56.2#53

** server can't find Host1: NXDOMAIN

Microsoft.comの場合:

nslookup Microsoft.com
server: 192.168.56.2
address: 192.168.56.2#53

Non-authoritative answer:
name: Microsoft.com
address: 134.170.188.221
name: Microsoft.com
address 134.170.185.46

私の現在のファイル:

ファイル/etc/bind/named.conf.options:

options {
directory "/var/cache/bind";
recursion yes;

  forwarders {
  8.8.8.8;
  8.8.4.4;
  };
  allow-query {
  192.168.56.0/24;
  };
  allow-transfer {
  192.168.56.0/24;
  };
};

ファイル/etc/bind/named.conf.local:

zone "dirks.crtn" {
type master;
file "etc/bind/zones/dirks.crtn.db";
};

zone "56.168.192.in-addr.arpa" {
type master;
file "etc/bind/zones/rev.56.168.192.in-addr.arpa";
};

順ゾーンファイル-/etc/bind/zones/dirks.crtn.db:

$Origin .
$TTL 907200          ; 1 week 3 days 12 hours

dirks.crtn           IN SOA filtjener.dirks.crtn. webmaster.dirks.crtn. (
       1263527838    ; serial
       10800         ; refresh
       3600          ; retry (1 hour)
       604800        ; expire (1 week)
       38400         ; minimum (10 hours 40 minutes)
)
; name server - NS records
        NS   filtjener.dirks.crtn.
; name server - A records
filtjener.dirks.crtn.      A    192.168.56.2

$Origin dirks.crtn.
Host1   A   192.168.56.21
Host2   A   192.168.56.22
Host3   A   192.168.56.23

逆ゾーンファイル-/etc/bind/zones/rev.56.168.192.in-addr.arpa:

$TTL 907200     ; 1 week 3 days 12 hours

@ IN SOA filtjener.dirks.crtn. webmaster.dirks.crtn. (
     1263187356    ; serial
     10800         ; refresh (3 hours)
     3600          ; retry (1 hour)
     60400         ; expire (1 week)
     38400         ; minimum (10 hours 40 minutes)
)

         NS filtjener.dirks.crtn.
; PTR records
21      PTR      Host1.dirks.crtn.
22      PTR      Host2.dirks.crtn.
23      PTR      Host3.dirks.crtn.

ファイル/etc/resolvconf/resolv.conf.d/head:

search dirks.crtn
nameserver 192.168.56.2

ファイル/ etc/network/interfaces:

auto lo
iface eth1 inet static
address 192.168.56.2
netmask 255.255.255.0

ファイルをチェックしました:

Sudo named-checkconf

Sudo named-chekckzone rev.56.168.192.in-addr.arpa /etc/bind/zones/rev.56.168.192.in-addr.arpa
zone rev.56.168.192.in-addr.arpa/IN: loaded serial 1263187356
OK

Sudo named-checkzone dirks.crtn /etc/bind/zones/dirks.crtn.db
zone dirks.crtn/IN: loaded serial 1263527838
OK

bind9を再起動しました:

Sudo /etc/init.d/bind9 restart
* Stopping domain name service... bind9 [ok]
waiting for pid 2765 to die

* starting domain name service... bind9 [ok]

VirtualBoxを使用していますが、VirtualBoxからコピーして貼り付けることができなかったため、ファイルに小さなエラーが含まれている可能性があります。

私がここで間違っているかもしれないことを誰もが知っていますか? :)私は助けに感謝します:)

2
Madde

だから私は最終的に/etc/bind/named.conf.localで自分の問題に対する答えを見つけました。「etc」の前に「/」を追加するのを忘れていました。

私のやり方:

zone "dirks.crtn" {
type master;
file "etc/bind/zones/dirks.crtn.db";
};

正しい方法:

zone "dirks.crtn" {
type master;
file "/etc/bind/zones/dirks.crtn.db";
};

私はちょっとばかげていると感じますが、少なくともアドレスとホスト名を解決できます。

1
Madde

したがって、転送は正常に機能しています。構成ファイルの内容は、少し奇妙に見えます。 $Originで物事を機能させることができなかったことに注意してください。どういうわけかそれが機能するのは確かであり、私だけではありません。

dirks.crtn.dbの場合:

$TTL 38400
@      IN SOA filtjener.dirks.crtn. webmaster.dirks.crtn. (
       1263527838    ; serial
       10800         ; refresh
       3600          ; retry
       604800        ; expire
       38400 )       ; Negative Cache TTL
       IN  A  192.168.56.2
;
; name server - NS records
@      IN  NS   filtjener.dirks.crtn.
; name server - A records
filtjener IN   A    192.168.56.2

Host1   IN A   192.168.56.21
Host2   IN A   192.168.56.22
Host3   IN A   192.168.56.23

rev.56.168.192.in-addr.arpaの場合:

$TTL 38400

@ IN SOA filtjener.dirks.crtn. webmaster.dirks.crtn. (
     1263187356    ; serial
     38400         ; refresh
     3600          ; retry 1 hour
     60400         ; expire 1 week
     38400 )       ; negative cache TTL
;
@    IN   NS    filtjener.dirks.crtn.
2    IN   PTR   filtjener.dirks.crtn.
21   IN   PTR   Host1.dirks.crtn.
22   IN   PTR   Host2.dirks.crtn.
23   IN   PTR   Host3.dirks.crtn.

Sudonamed-checkzoneとともに使用する必要はありません。逆ゾーンチェックの場合、コマンドは次のようになります。

named-checkzone 56.168.192.in-addr.arpa rev.56.168.192.in-addr.arpa

参照

1
Doug Smythies