DNS サーバーが転送しないのはなぜですか?

DNS サーバーが転送しないのはなぜですか?

私は次のようにバインドを設定しました:

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
        listen-on port 53 { any; };
#       listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        forwarders      { 10.90.0.135; 10.90.0.174; };
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };
        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";


zone "appletop.local" IN {
        type master;
        file "appletop.local";
        allow-update { none; };
};

でも転送されないんですか?

DNS サーバーのアドレスを別のマシンに入力するとresolv.conf、正しい検索が実行されるので、DNS サーバーが名前を解決できるはずですが、その後、別のマシンをこのマシンに戻すと、名前を解決できません。

どうしたの?


MadHatter によって提案された変更後:

今は起動しますが、dig +trace でハングし、転送されません。下記の転送アドレスが表示されないのはなぜですか?

[root@ns1 ~]# ping www.yahoo.com
^C
[root@ns1 ~]# cd /etc/
[root@ns1 etc]# cp named.conf named.conf.last
[root@ns1 etc]# vi named.conf
[root@ns1 etc]# /etc/init.d/named reload
Reloading named-sdb:                                       [  OK  ]
[root@ns1 etc]# service named stop
Stopping named: .                                          [  OK  ]
[root@ns1 etc]# /etc/init.d/named start
Starting named:                                            [  OK  ]
[root@ns1 etc]# nslookup www.yahoo.com
;; connection timed out; trying next origin
Server:         10.138.10.30
Address:        10.138.10.30#53

** server can't find www.yahoo.com: NXDOMAIN

+trace で掘り下げてみましょう:

[root@ns1 etc]# dig +trace www.yahoo.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.0.2.el6_4.6 <<>> +trace www.yahoo.com
;; global options: +cmd
.                       518400  IN      NS      E.ROOT-SERVERS.NET.
.                       518400  IN      NS      M.ROOT-SERVERS.NET.
.                       518400  IN      NS      I.ROOT-SERVERS.NET.
.                       518400  IN      NS      F.ROOT-SERVERS.NET.
.                       518400  IN      NS      G.ROOT-SERVERS.NET.
.                       518400  IN      NS      K.ROOT-SERVERS.NET.
.                       518400  IN      NS      B.ROOT-SERVERS.NET.
.                       518400  IN      NS      A.ROOT-SERVERS.NET.
.                       518400  IN      NS      C.ROOT-SERVERS.NET.
.                       518400  IN      NS      L.ROOT-SERVERS.NET.
.                       518400  IN      NS      J.ROOT-SERVERS.NET.
.                       518400  IN      NS      H.ROOT-SERVERS.NET.
.                       518400  IN      NS      D.ROOT-SERVERS.NET.

ファイル全体がこのようになっていますが、何が問題なのでしょうか?


 options {
         listen-on port 53 { any; };
 #       listen-on-v6 port 53 { ::1; };
         directory       "/var/named";
         dump-file       "/var/named/data/cache_dump.db";
         statistics-file "/var/named/data/named_stats.txt";
         memstatistics-file "/var/named/data/named_mem_stats.txt";
         allow-query     { any; };
         recursion yes;

         dnssec-enable yes;
         dnssec-validation yes;
         dnssec-lookaside auto;

         /* Path to ISC DLV key */
         bindkeys-file "/etc/named.iscdlv.key";

         managed-keys-directory "/var/named/dynamic"; };

 logging {
         channel default_debug {
                 file "data/named.run";
                 severity dynamic;
         }; };

 zone "." IN {
         type forward;
         forward first;
         forwarders { 10.90.0.135;
                      10.90.0.174;
                    } ; };

 include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";


 zone "appletop.local" IN {
         type master;
         file "appletop.local";
         allow-update { none; }; };

答え1

どのフォワーダーを使用するかは指定しましたが、いつ使用するかは指定していません。すべての用途でフォワーダーを使用するようにしたい場合は、

zone "." IN {
        type hint;
        file "named.ca";
};

試す

zone "." {
        type forward;
        forward first;
        forwarders { 10.90.0.135;
                     10.90.0.174;
                   } ;
} ;

編集: わかりました。代わりに上記を試してください。ただし、「まずローカルで解決を試みる」とはどういう意味かわかりません。転送したいとおっしゃっています。

答え2

dnssec-validation yes;私の場合は、次のように変更するだけで問題は解決しました。dnssec-validation no;

答え3

MadHatter の回答の下にある OP のコメント「問題は dnssec でした」で明確にならなかった場合に備えて、私もこの回答で問題が解決したので、明示的にこの回答を投稿します。

キャッシュと転送のみを行う BIND サーバーをセットアップしましたが、転送されませんでした。クエリは数秒の遅延を伴ってルート サーバーに送信されていました。dnssec オプションを無効にすると、この問題は修正され、期待どおりに動作するようになりました。

dnssec-enable no;
dnssec-validation no;
dnssec-lookaside auto;

関連情報