特定のドメインを外部の DNS サーバーへフォワードする (CentOS 5.5): Linux の使い方


特定のドメインに対する問い合わせを外部 DNS サーバーへフォワードする

DNS サーバーは、再帰問い合わせが有効でなければ、自身に登録されているゾーン情報を用いて問い合わせに対して回答を行おうとします。

他の DNS サーバーに登録されているゾーン情報を使用したい場合には、その問い合わせを別の適切な DNS サーバーへ転送(フォワード)することで、それを実現することができるようになっています。

キャッシュサーバーのように再帰問い合わせが有効になっている場合にも、ルートヒントを頼りに外部の DNS へ問い合わせを転送して情報を取得しますが、このフォワーディングによる問い合わせは、あらかじめ DNS の管理者がピンポイントで指定した DNS サーバーを使用するという点が大きく異なります。

たとえば、社内専用のローカルドメインなどの場合には、ルートヒントからそれを辿ることができませんので、そのようなときにもこのフォワーディング設定を行うことで、キャッシュサーバーがローカルドメインのゾーン情報を検索することができるようになります。

 

CentOS 5.5 の BIND 9.3.6 で特定のドメインに対してフォワーディング設定を行う場合には、"/etc/named.conf" の設定を調整します。

たとえば "OFFICE1.DOMAIN.LOCAL" というドメインを DNS サーバー "192.168.3.1" にフォワードする場合、次のような設定を行います。

zone "office1.domain.local"

{

type forward;

forward only;

 

forwarders

{

192.168.3.1;

};

};

ゾーン情報の "type" を "forward" にすることにより、このゾーンはフォワードされることを示します。

また "forward" として "only" を指定することで、必ず指定された DNS サーバーへフォワードするようにしています。ここを "first" とした場合には、フォワード先の DNS で名前解決ができなかった場合には自力での検索を試みるという動作になるそうです。

そして "forwarders" で、フォワードする DNS サーバーの IP アドレスを指定しています。

 

このように設定したら、次のようにして DNS サーバーにゾーンファイルを読み込ませます。

service named reload

これで、ドメイン "OFFICE1.DOMAIN.LOCAL" に関する問い合わせが、DNS サーバー "192.168.3.1" へフォワーディングされるようになりました。

注意点として、もしも "DOMAIN.LOCAL" というようなゾーンが既に登録されている場合、つまり、フォワーディングとして指定したドメインが既に登録されているドメインのサブドメインに当たる場合には、フォワーディングせずに登録されているゾーン情報を用いて名前解決を行おうとするようでした。

ですので、サブドメインに当たるドメインを別の DNS サーバーへ転送したい場合には、サブドメインを別の DNS サーバーへ委譲する で示したような、サブドメインの委譲設定を行う必要があるようでした。