• ベストアンサー

外部DNSのnamed.confの設定について

bind9にて外部DNSを作ろうとしたのですが 以下の点がクリアできなくて困っております。 ご教授頂ければと思います。 acl kyokaに書かれているIP以外を許可したいのですが iPの前に!をつける方法で問題ないでしょうか? また別の方法があるのでしょうか? acl kyoka { !192.168.0.0/16; !127.0.0.1; }; options { allow-recursion { any; }; allow-query { kyoka; }; recursion no; zone "hoge.jp" IN { type master; file "hoge.jp"; allow-query { kyoka; };

質問者が選んだベストアンサー

  • ベストアンサー
  • Toshi0230
  • ベストアンサー率51% (836/1635)
回答No.1

aclで"!"を使ったことがないのでなんともいえないところがありますが、以下のようにしてみたらどうなりますか? ----- acl kyoka { !192.168.0.0/16; !127.0.0.1; any; }; ----- また、以下の設定は相互に矛盾しているのでどちらかに統一したほうが良いかと。 ----- options { allow-recursion { any; }; recursion no; ----- なお、内部からのDNS queryと外部からのDNS queryを分けて処理したいのであれば、"view" を使って設定する、という手もあります。

yann_1981
質問者

お礼

最後にanyを付けたところ、問題なく動作いたしました。 ご指摘ありがとうございます。 外部DNSサーバと内部DNSサーバは分けるようにしましたので 外部は外部からの問い合わせのみで使用しようと思っております。

その他の回答 (1)

  • entree
  • ベストアンサー率55% (405/735)
回答No.2

lib/dns/acl.c を確認した限りでは、 acl は上から順に参照していき、 !がないエントリ:その時点でチェックを打ち切り許可する。 !があるエントリ:その時点でチェックを打ち切り拒否する。 エントリの最後に到達:拒否する。 という動作を行っているように見えます。 なので、No.1の方が回答されているように、 any をつけてあげる必要があると思います。 acl kyoka { !192.168.0.0/16; !127.0.0.1; any; <== ★ }; 他にも、view が上から acl をチェックすることを利用して、 192.168.0.0/16、127.0.0.1のみ参照できるview internal を 定義し、中身はすべてのアクセスを拒否でゾーンは hint (/dev/null) の みとし、view external で外向けの設定をする方法もあると思います。 ただし、同一サーバに内向け DNS を構成しないのであれば、 わざわざ内部からのアクセスを拒否する必要性はないと思うのですが、 いかがでしょうか?

yann_1981
質問者

お礼

anyをつけると解決しました。 ありがとうございます。 よく考えてみれば、たしかに内向けは構成しないので 必要なかったかもしれません)汗 何はともあれご指導ありがとうございました。

関連するQ&A