8月
14
ISC BIND (bind-9.8.2-0.23.rc1.el6_5.1.i686 on CentOS 6) で、
- キャッシュサーバとして使っている
- 自分で解決せずにフォワーダを設定している
- 権威サーバも兼ねている
- 権威を持つドメインがサブドメインを委譲している
場合に、どうもうまく委譲されず困ってました。
# キャッシュサーバと権威サーバを兼ねるなよとか
# そもそも BIND 使ううなよとかそういう方向の突っ込みは却下で。
named.conf の主要部分は以下のとおり
options { ... forward only; forwarders { 192.168.0.1; }; .... }; zone "example.com" { type master; file "data/example.zone"; };
example.zone の中身は以下のとおり
@ IN SOA example.com. umezawa.example.com. ( 9 ; serial 8H ; refresh 2H ; retry 4W ; expire 1D) ; minimum TTL NS ns.example.com. ns A 192.168.1.53 sub NS subns.sub subns.sub A 192.168.2.53
ここで、この BIND に対して subns.sub.example.com を聞くと、(委譲先が正しく設定されていても) NXDOMAIN が返ってきます。チマチマゾーンファイルをいじっても解決せず、よーくパケットキャプチャを見たところ、自分のところのゾーンファイルに書いてあるグルーレコードを見ずにフォワード先に聞いているようでした。
…で、ググったら解決のヒントが見つかりました。 実用 BIND 9で作るDNSサーバ(最終回):BIND 9を徹底活用するためのTips集 (2/2) – @IT
ということで解決方法は named.conf を以下のように変更すること。
zone "example.com" { type master; file "data/example.zone"; forwarders {}; // <- これ };
これを書くと、自分のところのグルーレコードが使われるようになります。
ちなみに、委譲しないサブドメインの場合はどうやら大丈夫のようです。あくまでも委譲先のグルーレコードを期待したように処理してくれない、という問題です。
no comment untill now