BINDでサブドメインの委譲ではまった事
FreeBSD や Ubuntu に BIND をインストールして DNS の設定ではまった事のメモ
試したかったことは、サブドメインの委譲
以下のようなイメージ
・本社・支店A・支店BそれぞれにDNSを置く。
・支店A内の資源は支店AのDNSに設定する。同様に支店BのDNSには支店B内の資源を設定する。
・本社DNSは支店A・支店Bのネームサーバーを登録し、サブドメインの名前解決をそれぞれに委譲する。
・支店AのPCから支店B内の資源の名前解決を行う。
VMでUbuntuの仮想PCを3台準備し、それぞれにBINDをインストールし設定した。
それぞれのPCからdigコマンドで確認
・それぞれのサーバー自身に設定してある資源については名前解決される。
$ dig @支店A 支店AのWEBサーバー
=> NOERROR
・本社に支店の資源を要求すると名前解決できない。
$ dig @本社 支店AのWEBサーバー
=> NXDOMAIN
原因
・本社DNSのname.confのoption(Ubuntuではname.conf.optionsのoption)のforwardersを指定していた。
forwardersにプロバイダのDNSを指定すると、自前で名前解決できないときにルートDNSに問い合わせず、
指定したDNSに問い合わせるためパフォーマンスが向上するということから指定していた。
(参考)Linuxで自宅サーバー – 内部向け DNS サーバの構築
今回は fowarders を指定していたために、本社DNSで解決できなかった名前解決がプロバイダのDNSに
向かったが、支店のDNSは外部からは見えないため、名前解決できなかった模様。
解決法
・optionからforwardersを削除する。
・または、name.confのゾーンファイルの記述のことろで、forwarders {}; と記述する。
(参考)…pudding – diary – [Software] BINDでサブドメインの委任