bindでコンテンツ兼キャッシュDNSサーバを内部と外部向けに1台で共存して構築する方法(後編)

DNSコンテンツサーバとして、内部向けに公開したいゾーン情報と、外部向けに公開したいゾーン情報を一つのサーバで構築しDNSキャッシュサーバとしての機能も持たせる設定を紹介する後編です。前編をご覧になりたい方はこちらより確認ください。

内部向け、外部向けのそれぞれのゾーンファイルの作成

まず、内部向けゾーンファイルの作成です。
ファイル名は、/var/named/master/hogehoge.local です。

具体的なファイルの中身は下記のようになります。

ORIGIN .
$TTL 3600      ; 1 hours
hogehoge.local          IN SOA  vhost01.hogehoge.local. info.hogehoge.local. (
                                2023051401 ; serial
                                21600      ; refresh (6 hours)
                                7200       ; retry (2 hours)
                                1209600    ; expire (2 weeks)
                                86400      ; minimum (1 day)
                                )
                       NS      vhost01.hogehoge.local.
                       NS      vhost02.hogehoge.local.
                       A       192.168.200.11
                       MX      10 vhost01.hogehoge.local.
                       IN TXT  "v=spf1 +ip4:192.168.200.0/24  ~all"
$ORIGIN hogehoge.local.
vhost01                   A       192.168.200.11
vhost02                   A       192.168.200.12

次に、外部向けのゾーンファイルです。
ファイル名は、/var/named/master/hogehoge.jp です。

具体的なファイルの中身は下記のようになります。

$ORIGIN .
$TTL 3600      ; 1hours
hogehoge.jp             IN SOA  vhost01.hogehoge.jp. info.hogehoge.jp. (
                                2023051401 ; serial
                                21600      ; refresh (6 hours)
                                7200       ; retry (2 hours)
                                1209600    ; expire (2 weeks)
                                86400      ; minimum (1 day)
                                )
                       NS      vhost01.hogehoge.jp.
                       NS      vhost02.hogehoge.jp.
                       A       192.168.0.1
                       MX      10 vhost01.hogehoge.jp.
                       IN TXT  "v=spf1 +ip4:192.168.0.0/24  ~all"
$ORIGIN hogehoge.jp.
vhost01                   A       192.168.0.23
vhost02                   A       192.168.0.25

設定したDNSサーバの様々な位置からの動作確認

先ほど設定した、設定ファイルの読み込みを実施します。

まず、内部向けゾーンの内容を確認します。

vhost01.hogehoge.localは、192.168.200.11 ですよ、と返ってきています。
次に外部向けのゾーンファイルの動作を確認します。

vhost01.hogehoge.jpは、値が返ってきませんでした。
理由がわかりますか?

注視頂きたい点は、digコマンドの@localhost の部分です。localhostは、acl で naibu に属すると /etc/named.confに定義しています。internal の view に hogehoge.jp のゾーンファイルがないので、回答ができないのです。(厳密には、再帰問い合わせを許可しているので、whoisに登録されていれば、ぐるっとインターネット(rootドメイン)経由で名前解決可能です。ここではテスト環境なのでNGとなります)

そこで、外部のIPアドレス(192.168.0.0/24)からdigコマンドを実行します。
同セグメントに存在するセカンダリのサーバから動作を確認してみます。

問題なく応答がありました。ANSWER SECTIONにて 192.168.0.23が返ってきています。

逆に内部向けのゾーン情報はどうでしょうか?

予想通りダメでした。@の後を内部用IP(192.168.200.11)にすれば正常な応答があることが確認できます。

いかがでしたでしょうか。ちなみにログ(/var/named/chroot/var/log/query.log)にも内部(intarnal)の問い合わせか、外部(external)の問い合わせか出力されているので確認してみてください。

digコマンドの結果で表示されているパラメータの意味を詳しく知りたい場合は、bindのクエリログに表記されている内容と意味を確認するをご確認ください。

今回はここまでです。最後までお読みいただきありがとうございました。