Windows DNS サーバーの管理を解説していきます.
本記事ではまず初めに DNS サーバー自体の挙動を決定するオプションについての紹介,解説を行います.フォワーダーの動作などが理解できるようになります.
- DNS に関するお話
- DNS (Domain Name System) 概要 (1)
- DNS (Domain Name System) 概要 (2)
- DNS (Domain Name System) 概要 (3)
- DNS (Domain Name System) – nslookup を使いこなそう
- DNS (Domain Name System) – Windows DNS サーバーの設定・オプション
- DNS (Domain Name System) – DNS ゾーンの作成
- DNS (Domain Name System) – DNS ゾーンの設定とレコードの登録
- DNS (Domain Name System) – サブドメインと委任
- DNS (Domain Name System) – フォワーダーの構成
- DNS (Domain Name System) – DNS の動的更新
DNS サーバーのオプション
今回は DNS サーバーの管理のうち,サーバーオプションについて解説します.
DNS の管理を行うには,サーバーマネージャーのツールより「DNS」をクリックします.
DNS 管理画面が表示されますので,DNS サーバーを選択し右クリックで「プロパティ」を選択します.
DNS サーバーのプロパティが表示されます.
インターフェイス
インターフェイス設定では,DNS サービスをどのインターフェイスで待ち受けするかを決定できます.
デフォルトは「すべての IP アドレス」となっており,DNS サーバーの全てインターフェイスで待ち受けされていますが,「指定した IP アドレス」を選択のうえ,待ち受けしたい IP アドレスのみチェックを入れることで待ち受けインターフェイスを制限することが可能です.
バックアップ用ネットワーク向けなどの複数のインターフェイスを搭載しており,そこでは応答したくない場合などで利用したりします.
フォワーダー
フォワーダーは,この DNS サーバーに届いた名前解決要求を他の DNS サーバーに転送する場合に利用されます.
フォワーダーは複数設定可能で,指定した順番のとおりに問合せクエリーを転送します.
例えば,以下のイメージ図左側のように組織内に別のリゾルバーが存在しており,そこに集約したい場合.あるいは右側のように ISP などが提供している DNS サーバーに転送したい場合に利用します.
理由は様々なケースが考えられますが組織内部に DNS リゾルバーが乱立しても管理がしづらいため集約したい.であったり,セキュリティを考慮して ISP などの特定の DNS サーバーにだけトラフィックを投げたい.などが挙げられます.
また「フォワーダーが利用できない場合にルートヒントを使用する」にチェックが入っている場合,最初にフォワーダーを試行し,名前解決ができない場合は自身が直接名前解決を行う動作になります.
チェックが入っている場合は ① で問合せを転送します.この際に名前解決ができない場合は ② のとおり,自身がルートヒントを元に名前解決を試みる.という動作になります.
フォワーダーを有効にしている場合,先に述べた理由が多いと思いますので,自身が名前解決を行う動作は期待動作ではない可能性が高いです.
詳細設定
「詳細設定」はサーバーの挙動を決定するオプションが幾つかあります.
サーバー オプション
各オプションの解説を行います.
- 再帰を無効にする (フォワーダーも無効になります)
再帰問合せを無効にします.再帰問合せが有効な場合はリゾルバー (キャッシュサーバー) として動作します.
ですので,再帰問合せを行わないということは権威 DNS サーバー専用とする場合に利用します.
Active Directory ドメインサービスの DNS サーバーの場合,通常このオプションを有効にすることはないと思います.出来ないわけではありませんが,クライアントが参照する DNS サーバーが別に正しく存在しており,Active Directory ドメインへのフォワーダーが適切に設定されているのであれば可能です. - BIND セカンダリを有効にする
有効にすると,複数台の DNS サーバー構成において,DNS ゾーンの転送の際に BIND の転送方式を用いて BIND DNS サーバーへのゾーン転送を可能になります. - ゾーンデータが正しくない場合は、ロード時に失敗する
デフォルトではゾーンデータのエラーが検出された場合でもゾーンの読み込みを継続し,エラーをログに記録して動作を継続します.
このオプションを有効にすると,ゾーンデータのエラーが検出された場合,ゾーンのロードを停止します. - ラウンドロビンを有効にする
DNS ラウンドロビンは,同じ名前のレコードが複数存在した場合,問合せ毎に違う IP アドレスを返す機能です.
このように「www」に対する IP アドレスが3つある場合,1回目は「192.168.1.1」を,2回目は「192.168.1.2」を,3回目は「192.168.1.3」を返します.4回目は「192.168.1.1」という形でローテートされます.
- ネットマスクの順序を考慮する
このオプションが有効な場合,DNS ラウンドロビンの動作が変わります.
問合せクライアントと同じサブネットのホストが登録されている場合,そのサブネットの IP アドレスが返ります.
以下のイメージのとおり,接続元クライアントが「192.168.1.x」の場合は必ず「192.168.1.1」が返ります.接続元クライアントが全く違うサブネットにいる「192.168.4.x」などからの接続の場合は DNS ラウンドロビンが想定どおりに動作します.
ですので,DNS ラウンドロビンを有効にする環境の多くでは,本オプションは無効にした方が想定どおり動作になるケースが多いと思います.
- Pollution に対してセキュリティでキャッシュを保護する
DNS キャッシュの汚染は,DNS クエリの応答に権限のないデータや悪意のあるデータが含まれているときに発生します.
このオプションはデフォルトで有効になっています.そのため,攻撃者が DNS サーバーが要求していないリソース レコードを使用した DNS サーバーのキャッシュを汚染することを防げます.
無効にすると本セキュリティ機構が無効になるためチェックを外さないようにしましょう. - リモート応答の DNSSEC 検証を有効にする
リゾルバー (キャッシュサーバー) として利用する際,DNSSEC という公開鍵暗号を用いた DNS セキュリティ機構の検証有効にするかどうかを決定します.
このオプションはデフォルトで有効になっています.今後 DNSSEC の利用はもっと増えていくため利用することを前提にしておいた方が安全性は高まります.
名前の確認
DNS レコードとしてどのようなラベルを利用できるかを決定します.デフォルトは「マルチバイト (UTF8)」になっています.通常変更する必要はないと思います.
- 厳密な RFC (ANSI)
大文字,小文字の A から Z,数字およびハイフン「-」が利用可能です.また,先頭に限りアンダースコア「_」が利用できます. - 非 RFC (ANSI)
厳密な RFC に加えて,任意の場所でアンダースコア「_」が利用可能です. - マルチバイト (UTF8)
非 RFC に加えて UTF-8 のマルチバイト文字列が利用可能です. - すべての名前
マルチバイト (UTF8) に加えて任意の文字が利用可能です.
起動時にゾーンデータを読み込む
ゾーンデータをどこから読み込むのかを決定します.Active Directory ドメインサービスの統合 DNS の場合はデフォルトの「Active Directory とレジストリから」一択です.
古いレコードの自動清掃を有効にする
ダイナミックを利用しており,動的に DNS レコードが登録される環境において,更新されずに古いままとなっているレコードをクリーンアップ (削除) する場合にこのオプションを利用します.
デフォルトは無効ですが,有効にすることをお薦めします.
有効にした場合のデフォルトは「7日」となり,7日間更新されないままのレコードが清掃の対象となります.
デフォルトの「7日」は,DHCP リース期限のデフォルトに合わせているものと考えられますので,DHCP のリース期限で一番最長のリース期限に合わせるのが最良となります.
ルートヒント
リゾルバーとして動作させ,自身が名前解決を行う際に利用するルート DNS サーバーの一覧です.
a.root-servers.net から m.root-servers.net の13個があります.
通常は Windows Update を行うことで更新されますが,何らかの理由で更新が出来ない場合は適宜手動で更新する必要があります.
ルートヒントは IANA より「https://www.iana.org/domains/root/files」で公開されています.
デバッグのログ
DNSサーバーの動作をログファイルに出力できます.デバッグ用途で用いられる場合が多いのですが,DNS クエリーのログを保持しておきたい.という場合などでも利用されます.
ただし,ログのローテーションの機能は無いためタスクスケジューラーとスクリプトで実装する必要があります.
- パケットの方向
- 発信
チェックを付けると DNS サーバーから見て発信する方向のパケットのログを記録します. - 着信
チェックを付けると DNS サーバーから見て着信する方向のパケットのログを記録します.
- 発信
- トランスポート プロトコル
- UDP
チェックを付けると UDP パケットのログを記録します. - TCP
チェックを付けると TCP パケットのログを記録します.
- UDP
- パケットの内容
- クエリ/転送
チェックを付けると DNS 問合せに関するログを記録します. - 更新
チェックを付けると DNS レコードの更新に関するログを記録します. - 通知
チェックを付けると DNS ゾーンのレプリケーション (DNS Notify) に関するログを記録します.
- クエリ/転送
- パケットの種類
- 要求
チェックを付けると DNS サーバーに対する要求に関するログを記録します. - 応答
チェックを付けると DNS サーバーからの応答に関するログを記録します.
- 要求
- 一致しない着信応答パケットのログを記録する
- 詳細
チェックを付けるとログの内容が詳細になります.細かすぎるので使う必要はあまりないと思います. - IPアドレスでパケットにフィルターをかける
DNS サーバーへの問い合わせのクライアントや DNS サーバーから特定のホストへの再帰問合せなど,IP アドレスでマッチしたホスト間のログだけに絞る事ができます.
イベントのログ
イベントログにどのようなイベントを記録するかを決定します.デフォルトは「すべてのイベント」で,通常これを変える必要はないと思います.
監視
DNS サーバーの構成が正しく行われているかの検証を行うことができます.
NS のクエリーを送信しての動作確認を行っているようですが,正直言ってこれで OK と言えるようなテストにはなっていないように思えます.
設定を行ったら自分で確認を行う.および別途監視の仕組みを用いて任意のレコードの応答を確認する仕組みを用意したほうが良いです.
エージング / 清掃
Windows DNS サーバーは DNS レコードの動的更新が可能です.動的更新の動作については「次回」説明をします.
動的更新で登録されたレコードはデフォルトでは自動削除がなされず,長い時間を経過すると不要なレコードであふれる場合があります.
そのため,定期的な清掃が必要になります.これは DNS サーバー全体の設定として行うこともできますし,個々の DNS ゾーンで設定することもできます.
ここではDNS サーバー全体でエージング,清掃の設定を行う場合について説明します.
サーバーを選択,右クリックで「すべてのゾーンに対してエージング/清掃を設定する」をクリックします.
プロパティ画面が表示され,3つの設定項目が表示されます.
- 古いリソースレコードの清掃を行う
この設定を有効(チェックを付ける)と自動清掃が有効になります. - 非更新間隔
非更新期間の間で REFRESH の要求を DNS サーバーが受取っても,DNS レコードのタイムスタンプは更新されません.
REFRESH ではなく UPDATE の要求を受け取った場合はレコードを更新します.
(DNS レコードのタイムスタンプも更新されます) - 更新間隔
更新期間には,REFRESH と UPDATE のどちらの要求も更新します.
清掃を行うため「古いリソースレコードの清掃を行う」にチェックを入れて「OK」をクリックします.
清掃にチェックを入れると確認画面が表示されます.「OK」をクリックすると,今後作成する AD 統合ゾーンについてはこの設定が反映される事になります.
また,ここで「この設定を既存の Active Directory 統合ゾーンに適用する」にチェックを入れると,既存の AD 統合ゾーンすべてに適用されます.設定の統一化を考えるとチェックを入れることをお薦めします.
自動清掃と清掃期間,更新間隔の補足
自動清掃の動作は,上のサーバープロパティで設定したの「清掃期間」と「非更新間隔」および「更新間隔」が関連してきます.
DNS のサービス起動後、「清掃期間」で設定されている時間の間隔清掃の処理が行われますが,実際に削除の処理が行われるのは「非更新期間」と「更新期間」を超えて一切更新が発生していない DNS レコードに対してのみとなります.
ですので,その間に更新 REFRESH や UPDATE が入ったレコードは対象外となりますので安心してください.
以上,DNS サーバーのオプションについての解説でした.
次回はゾーンの管理,レコードの登録について解説します.
コメント