社内用に内部DNSをBIND9で運用しています。
外部にHPサイトがあり、内部に開発用のWEBサーバーがあり、
DMZ内にも外部からの接続できるWEBサーバーがあります。
運用形態として、開発用サーバーで単体テスト、DMZ内のサーバーで
結合テストと&仮運用、システムテストが終れば、
外部のレンタルサーバーに移行し、外部に運用を任せています。
インターネット用のネームサーバーは、ドメインを取得した所のサーバーを
利用しているのですが、開発用のサブドメインは外部に公開する必要が無い
(&したくない)ので、社内の内部用DNSにしか登録していません。
社内の端末から、外部公開用のwwwを見に行くのは社外のネームサーバーの情報、
開発用のドメインの設定は、社内のDNSサーバーを見に行くように、
社内DNSサーバーの設定でなんとかならないでしょうか?というのが今回の質問の主旨です。
よろしくお願いします。
結論から言います。できます。
まずクライアントのネットワーク設定では参照するDNSサーバを「内部用DNSサーバ」に設定します。
次に「内部用DNSサーバ」には開発用ドメインに属するサイトのみを登録します。
最後に「内部用DNSサーバ」の「フォワーダ」に「社外ネームサーバ」を登録します。
このように設定すると、
(1)各クライアントは内部用DNSサーバに問い合わせて名前を解決しようとします。
(2)内部用DNSサーバは自らにその情報を持っていればその情報を返します。
(3)内部用DNSサーバにその情報が無ければ「フォワーダ」に指定されているDNSサーバに再度問い合わせます。
(4)フォワーダに指定されているDNSサーバで名前解決ができれば、内部用DNSサーバにその情報を返します。
(5)内部用DNSサーバはクライアントにフォワーダから渡された情報を返します。
といった流れで、名前解決ができます。
このあたりの情報はいかがでしょうか?
http://d.hatena.ne.jp/detchi/20050218/1108694143
http://www.cee.ehime-u.ac.jp/~structural/STEL/staf/niho/install/...
view を使えば、クエリーの送信元 IP アドレスによって違った結果を返すことが出来ます。
@IT:次世代のセキュリティ拡張DNSSECをBIND 9で実現(3/3)
公開サーバが www.example.jp、開発用が www.dev.example.jp だとすると、内向けの view に dev.example.jp のゾーンを用意すれば、中から *.dev.exapmle.jp を引いたときだけ、この DNS サーバのゾーンファイルから結果を返します。
ご回答ありがとうございます!
前述の回答者の方の件を試しているうちに解決できました。
Viewという方法もあるんですね、勉強になりました、有難うございます。
回答ありがとうございます。この方法ではちょっと解決できるかどうかが思いつきません。
今回は、ゾーン自体は存在します。
named.confには、下記のような感じで設定してあり、
zone "hogehoge.co.jp" {
type master;
file "hogehoge.co.jp";
};
「hogehoge.co.jp」ファイルの中味は、下記のようになってます。(抜粋)
www A 123.111.1.1 ←インターネット
dev A 192.168.1.1 ←LAN
「hogehoge.co.jp」ファイルから、wwwを削除すると名前解決できませんでした。
追記です。===============================
フォワーダを使い、ゾーンファイルをhogehoge.co.jpではなく、dev.hogehoge.co.jpとすることによって
親のDNSサーバーの情報を見るようにすることができました。
こちらのご回答と、
http://www.atmarkit.co.jp/flinux/rensai/bind906/bind906c.html
の「子側の設定」辺りがヒントになりました。
どうもありがとうございます!