🏗️ サーバー構築・運用 第3章-1節

DNSサーバーの構築と運用

DNSの基本と役割

DNS(Domain Name System)は、ホスト名とIPアドレスを相互に変換する名前解決サービスです。Active Directory環境ではDNSが必須インフラであり、ドメインコントローラーの検出、Kerberos認証、サービスロケーションなど、すべてDNSに依存しています。DNSが停止するとAD環境全体が機能しなくなるため、その構築と運用は最重要事項です。

DNSレコードの種類

レコード正式名称用途設定例
AAddressホスト名→IPv4アドレスの変換server01 → 192.168.1.10
AAAAQuad-Aホスト名→IPv6アドレスの変換server01 → 2001:db8::10
CNAMECanonical Name別名(エイリアス)の定義mail → exchange01.example.co.jp
MXMail Exchangerメールサーバーの指定example.co.jp → mail.example.co.jp (優先度10)
TXTTextテキスト情報(SPF、DKIM、DMARC等)v=spf1 include:spf.protection.outlook.com -all
SRVServiceサービスの場所を示す(ADで多用)_ldap._tcp → dc01.example.co.jp:389
PTRPointerIPアドレス→ホスト名の逆引き192.168.1.10 → server01.example.co.jp
NSName Serverゾーンの権威DNSサーバーを指定example.co.jp → dc01.example.co.jp
SOAStart of Authorityゾーンの管理情報(シリアル番号、TTL等)自動管理される

ポイント:Active Directory環境ではSRVレコードが特に重要です。クライアントPCはSRVレコードを検索してドメインコントローラーを発見します。SRVレコードが壊れるとドメイン参加やログオンに失敗するため、DNS管理は慎重に行いましょう。

正引きゾーンと逆引きゾーン

ゾーン機能必要性
正引きゾーンホスト名→IPアドレスの変換必須。ADドメイン名と一致するゾーンを作成
逆引きゾーンIPアドレス→ホスト名の変換推奨。メール送受信やログ解析で必要

逆引きゾーンは「10.168.192.in-addr.arpa」のようにIPアドレスを逆順にした名前で作成します。

Active Directory統合DNS

Windows Serverでは、DNSゾーンデータをActive Directoryデータベースに格納するAD統合DNSが利用できます。

  • セキュアな動的更新:ドメインメンバーのみがDNSレコードを自動更新可能
  • マルチマスターレプリケーション:すべてのDCがDNSゾーンを更新でき、自動的にレプリケート
  • 冗長性:ゾーンデータがADレプリケーションで全DCに複製されるため、単一障害点がない
  • ACLによるアクセス制御:ADの権限でDNSレコードの更新権限を制御

⚠️ 注意

AD統合DNSを使用する場合、DNSサーバーの役割はドメインコントローラーにインストールする必要があります。メンバーサーバーにはAD統合ゾーンを配置できません。ドメインコントローラーが2台あれば、両方にDNSサーバーの役割を入れてDNSの冗長化も同時に実現しましょう。

条件付き転送(Conditional Forwarder)

特定のドメイン名の問い合わせを指定したDNSサーバーに転送する機能です。

📋 具体例

利用シーン:
・自社ADドメイン(ad.example.co.jp)の問い合わせは自社DCが応答
・取引先のドメイン(partner.co.jp)の問い合わせは取引先のDNS(10.0.0.53)に転送
・それ以外のインターネット上のドメインは外部DNS(ISPやGoogle 8.8.8.8)にフォワーダー転送

設定方法(PowerShell):
Add-DnsServerConditionalForwarderZone -Name "partner.co.jp" -MasterServers 10.0.0.53

DNS動的更新

Windowsクライアントは起動時やIPアドレス変更時に、自身のDNSレコードを自動的に更新(動的更新)します。

更新モード説明推奨
なし動的更新を受け付けないインターネット公開ゾーンには推奨
非セキュアおよびセキュア誰でもレコード更新可能非推奨(スプーフィングのリスク)
セキュアのみAD認証されたクライアントのみ更新可能AD統合DNSで強く推奨

DNSのトラブルシューティング

コマンド説明使用例
nslookupDNSクエリの手動実行nslookup server01.ad.example.co.jp
Resolve-DnsNamePowerShellのDNS問い合わせコマンドレットResolve-DnsName -Name server01 -Type A
ipconfig /displaydnsクライアントのDNSキャッシュを表示キャッシュされた古い情報の確認
ipconfig /flushdnsクライアントのDNSキャッシュをクリアレコード変更後のキャッシュ問題の解消
Clear-DnsClientCachePowerShell版のDNSキャッシュクリアスクリプトでの利用
dcdiag /test:dnsDCのDNS構成を包括的にテストAD環境のDNS問題の診断

ひとり情シスの視点:DNS問題は「ネットワークが遅い」「サーバーに接続できない」など広範な障害として現れます。まずnslookupで名前解決ができるか確認するクセをつけましょう。DNSが正常なら別の原因を調査する、という切り分けが迅速なトラブル対応の第一歩です。