デュアルスタック環境での名前解決(前編)Windows Server 2012 ×「ちょっとだけ連携」でネットワーク管理を便利に(8)(2/3 ページ)

» 2013年08月26日 18時00分 公開

リソースレコードの手動登録とダイナミックDNSによる自動登録

 ダイナミックDNS(DNS動的更新)は、DNSクライアントの要求に基づき、DNSサーバにリソースレコードを自動登録する機能です(図3)。

図3

 ダイナミックDNSでは、あらかじめ、DNSクライアントにドメイン名とDNSサーバのIPアドレスを自動または手動で設定しておく必要があります。現在は、IPv4のDNSサーバのアドレスだけが設定されているため、クライアントから送信されているAおよびAAAAリソースレコードのDNS動的更新要求が、IPv4で送信されています(図4)。

図4

(1)送信元(L3SW1)のDNSサーバには、IPv4アドレスしか登録されていないため、DNSクエリや動的更新要求はIPv4で送受信されています。この例では、client01(10.1.1.1)からDNSサーバ(10.1.2.100)に向けて、DNS動的更新要求が送信されています。

(2)Updatesセクションの1、2行目は、DNSサーバに登録されている、既存のリソースレコードを削除するための要求です。3、4行目がリソースレコードの登録要求です。なお、ダイナミックDNSでは、リンクローカルアドレスと一時アドレスは登録対象外なので、要求には含まれません。

 このように、ダイナミックDNSによって、ドメインのWindowsコンピュータのAおよびAAAAリソースレコードは自動的に登録されるため(注1)、Windowsコンピュータに対する名前解決はすぐに行えます。

注1:Windowsクライアントやメンバーサーバが動的更新要求で登録するのは、A、AAAAおよび逆引き用のPTRリソースレコードです。ただし、Active Directory用のDNSでは、デフォルトでは逆引き用のゾーンは作成されないため、PTRリソースレコードを動的更新によって登録する場合は、後述する方法で、あらかじめ逆引き用のゾーンを手動作成しておく必要があります。


 しかし、ネットワークデバイスはダイナミックDNSに対応していないため、DNSサーバにAAAAリソースレコードを手動で設定する必要があります。

 Aリソースレコードは、第5回で登録済みなので、ここではAAAAリソースレコードを追加する手順を紹介します。

管理ツールの起動方法や機能の解説は、連載5回目で行っているため、詳細については連載第5回の「DNSサーバの設定(Windows Server 2012)」も参照してください。また、Windows Serverの基本操作については、「ステップバイステップガイド Windows Server 2012のインストールと初期設定」を参照してください。


1. dc001でAdministratorとしてサインインし、管理ツール[DNSマネージャー]を起動します。

2. 管理ツール[DNSマネージャー]で、[DNSサーバー名]−[前方参照ゾーン]の順に展開します。

3. ここでは、edifist.co.jpドメインに、ネットワークデバイスのIPv6アドレスとホスト名を登録するための「AAAAリソースレコード」を作成します。[edifist.co.jp]を右クリックし、[新しいホスト(AまたはAAAA)]を選択します。

4. [新しいホスト]ウインドウで、[名前]と[IPアドレス]にネットワークデバイスのホスト名とIPアドレスを入力し、[ホストの追加]をクリックします(例では、L3SW1のVLAN10の仮想インターフェイスに割り当てたIPアドレスを登録しています)。

5. リソースレコードが正しく登録されたことを示すメッセージが表示されたら、[OK]をクリックします。

6. 引き続き、4の画面が表示されるため、4と5の手順を繰り返し、すべてのネットワークデバイスのAAAAリソースレコードを登録します。登録が終わったら[完了]をクリックし、登録を終了します。

7. リソースレコードが登録されたことを、一覧で確認します(一覧に表示されない場合は画面を更新します)。

 以上で、必要なリソースレコードの登録は完了です。

 次に、名前解決が正しく動作するかを確認します。最初に、レイヤ3スイッチL3SW1でpingコマンドを実行したときの状態を確認します。図5は、L3SW1でping dc001コマンドを実行したときの様子を、Wiresharkで確認したものです。

図5

(1)L3SW1からdc001のAAAAリソースレコードに対するDNSクエリが最初に送信されています(1行目)。その後、DNSサーバから対象のIPv6アドレスが応答されています(2行目)。

(2)(1)でdc001のIPv6アドレスが取得できたため、Aリソースレコードに対するクエリは送信せずに、すぐにIPv6を使ってpingメッセージを送信しています。

 図6は、client01からL3SW1に対して、SSHによる管理接続を行ったときの様子です。Windowsの場合は、AおよびAAAAリソースレコードに対するDNSクエリを順番に送信し、名前解決が行われた後にIPv4を使ってSSHを実行しています。

図6

(1)client01からL3SW1のAリソースレコード(1行目)とAAAAリソースレコード(3行目)のDNSクエリが送信されています。これに対するDNSサーバからの応答が、2行目と4行目です。

(2)(1)で取得したL3SW1のIPアドレスに対して、IPv4を使ってSSHによる接続を行っています。

 DNSクエリの送信や、AおよびAAAAの両方のIPアドレスが解決したときにどちらを使って通信するかは、製品やOSの実装に依存します。例えばWindows 7やVistaはIPv6を優先しますが、Windows 8ではIPv4とIPv6でマイクロソフトのWebサイトに接続できるかをバックグラウンドで定期的にテストし、接続できた方を優先(両方で接続できた場合はIPv6を優先)します

 しかし、いずれの場合もDNSクエリそのものがIPv4で送受信されているため、IPv6に完全移行するときに問題になります。DNSクエリと応答をIPv6で送受信するためには、本稿の最後にある「DNSクライアントに対するDNSサーバのIPv6アドレス設定」で紹介する方法で、各コンピュータとネットワークデバイスに、DNSサーバのIPv6アドレスを登録する必要があります。

逆引きゾーンの作成とPTRリソースレコードの登録(オプション)

 最初に確認した通り、Active Directory環境では、正引き(Windows Serverでは前方参照)ゾーンは自動的に作成されますが、逆引き(Windowsでは逆引き参照)ゾーンは作成されません。

 逆引きは必須ではありませんが、できると便利な場合もあります。例えば、以下の例では、逆引きゾーンがないために、tracerouteコマンドの実行結果には、経路上のレイヤ3デバイスのIPアドレスが表示されています。逆引きができれば、経路上のネットワークデバイスのIPアドレスをホスト名に変換して表示してくれます。特にIPv6環境では、すべてのネットワークデバイスのIPv6アドレスを覚えておくのは難しいので、逆引きも可能な環境にしておくと管理がしやすくなります。

L2SW1#traceroute l2sw2

Translating "l2sw2"...domain server (10.1.2.100) [OK]

Type escape sequence to abort.

Tracing the route to l2sw2.edifist.co.jp (FDF4:1B39:8777:2::2)

1 FDF4:1B39:8777:1::1 0 msec 0 msec 0 msec

2 l2sw2.edifist.co.jp (FDF4:1B39:8777:2::2) 0 msec 0 msec 0 msec

 tracerouteコマンドは、デフォルトで逆引きを行います。上の実行結果例にある、下から2行目の「1 FDF4:1B39:8777:1::1」は逆引きに失敗したため、途中経路上のルータまたはレイヤ3スイッチのIPアドレスが表示されています。最後の行でホスト名(l2sw2.edifist.co.jp)が表示されているのは、もともとtracerouteコマンドの宛先をホスト名で指定しているので、最初に正引きで解決済みだったためです。


 逆引きゾーンの作成は、IPv4とIPv6で個別に行います。

 逆引きゾーンは、IPv4ではin-addr.arpa、IPv6ではipv6.arpaという専用のドメインを使用します(図7)。DNSサーバではこれらの逆引きゾーンを作成し、PTR(Pointer)リソースレコードを登録します。IPv4のPTRリソースレコードでは、IPv4アドレスのピリオドで区切られた部分をin-addr.arpaのサブドメイン名とみなして、逆の順番に並べます。例えば、10.1.2.3のPTRリソースレコードは、3.2.1.10.in-addr.arpa.になります。

図7

 IPv6の場合も同じように考えますが、IPv4よりも複雑です。IPv6の場合は、0を省略しない形式に直して、:を削除し、1文字(4ビット)ごとにピリオドを挿入して、逆に並べ替えます。例えばfdf4:1b39:8777:1::1(fdf4:1b39:8777:0001:0000:0000:0000:0001)のPTRリソースレコードは、1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.7.7.7.8.9.3.b.1.4.f.d.f.ipv6.arpaになります。特にIPv6では、PTRリソースレコードの手動登録は非常に大変なので、WindowsのDNSサーバによる自動登録機能をうまく活用しましょう。

 本稿では、IPv4の逆引きドメイン用に1.10.in-addr.arpa、IPv6の逆引きドメイン用に7.7.7.8.9.3.b.1.4.f.d.f.ipv6.arpaの2つの逆引きゾーンを作成する例を紹介します。

(1)IPv4用の逆引きゾーン作成

1. dc001でAdministratorとしてサインインし、管理ツール[DNSマネージャー]を起動します。

2. 管理ツール[DNSマネージャー]で、[DNSサーバー名]を展開します。

3. [逆引き参照ゾーン]を右クリックし、[新しいゾーン]を選択します。

4. [新しいゾーンウィザードの開始]ウインドウで、[次へ]をクリックします。

5. [ゾーンの種類]ウインドウでは、[プライマリゾーン]と[Active Directoryにゾーンを格納する]が選択されていることを確認し(注2)、[次へ]をクリックします。

注2:最初に作成するゾーンは「プライマリ」を選択します。セカンダリは、耐障害性や負荷分散のために、プライマリゾーンのコピーを保持するDNSサーバを構築したときに選択します。

 [Active Directoryにゾーンを格納する]チェックをオフにした場合は、ゾーンファイルはテキストファイルとして作成されます。オンにした場合は、Active Directory統合ゾーンになります。


6. [Active Directoryゾーンレプリケーションスコープ]ウインドウでは、リソースレコードの複製範囲を指定します。本環境ではDNSサーバは1台しかなく、リソースレコードの複製は行われないため、デフォルトのまま[次へ]をクリックします。

7. [逆引き参照ゾーン名]ウインドウで、[IPv4逆引き参照ゾーン(4)]を選択し、[次へ]をクリックします。

8. [逆引き参照ゾーン名]ウインドウで、[ネットワークID]を選択し、以下のようにネットワークアドレスを指定します。サブネットアドレスをどこまで指定するかは、環境によって異なりますが、ここでは先頭の16ビット目までを指定しています。すると、自動的に逆引きゾーン名が生成されるため、[次へ]をクリックします。

ここで[ネットワークID]に10.1.1(1.1.10.in-addr.arpa)まで指定した場合は、もう1つのサブネット用の逆引きゾーン2.1.10.in-addr.arpaを別途作成する必要があります。[ネットワークID]を指定すると、Windowsでは自動的に逆引きゾーン名が生成されます。


9. [動的更新]ウインドウでは、デフォルトの[セキュリティで保護された動的更新のみを許可する]を選択し、[次へ]をクリックします。

10.[新しいゾーンウィザードの完了]ウインドウで、[完了]をクリックします。

(2)IPv6用の逆引きゾーン作成

 次に、IPv6用の逆引きゾーンを作成します。手順は、ゾーン名を指定する以外は、IPv4とほとんど同じです。

1. 管理ツール[DNSマネージャー]で、[逆引き参照ゾーン]を右クリックし、[新しいゾーン]を選択します。

2. [新しいゾーンウィザードの開始]ウインドウで、[次へ]をクリックします。

3. [ゾーンの種類]ウインドウでは、[プライマリゾーン]と[Active Directoryにゾーンを格納する]が選択されていることを確認し、[次へ]をクリックします。

4. [Active Directoryゾーンレプリケーションスコープ]ウインドウでは、デフォルトの[このドメインのドメインコントローラー上で実行しているすべてのDNSサーバー]が選択された状態で、[次へ]をクリックします。

5. [逆引き参照ゾーン名]ウインドウで、[IPv6逆引き参照ゾーン(6)]を選択し、[次へ]をクリックします。

6. [逆引き参照ゾーン名]ウインドウの[IPv6アドレスプレフィックス]に、fdf4:1b39:8777::/48を指定します。ネットワークプレフィックスをどこまで指定するかは、環境によって異なりますが、ここでは先頭の48ビット目までを指定しています。

 すると、自動的に逆引きゾーン名が生成され、選択された状態になるため、確認後[次へ]をクリックします。

7. [動的更新]ウインドウでは、デフォルトの[セキュリティで保護された動的更新のみを許可する]を選択し、[次へ]をクリックします。

8. [新しいゾーンウィザードの完了]ウインドウで、[完了]をクリックします。

(3)PTRリソースレコードの登録

 最後に、作成した逆引きゾーンに、ネットワークデバイスのPTRリソースレコードを作成します。しかし、IPv4はともかくIPv6のPTRレコードを手動で間違いなく登録するのはとても大変です。

 WindowsのDNSサーバ機能には、AおよびAAAAリソースレコードを登録するときに、PTRリソースレコードも作成・更新する機能があるため、これを利用します。

1. 管理ツール[DNSマネージャー]で、edifist.co.jpドメインを選択し、ウインドウの右側の領域でネットワークデバイスのAまたはAAAAリソースレコードのうち、どれか1つをダブルクリックします。

2. [関連付けられたポインター(PTR)レコードを更新する]チェックをオフにし、[適用]をクリックします。

3. [関連付けられたポインター(PTR)レコードを更新する]チェックをオンにし、[OK]をクリックします。

4. 2から4の手順を、ネットワークデバイスのすべてのAおよびAAAAに対して行います。

5. 逆引きドメインをクリックし、リソースレコードを表示すると、PTRリソースレコードが作成されていることが確認できます(表示されない場合は、逆引きドメイン名を右クリックし、[最新の情報に更新]を選択します)。以下は、IPv6の逆引きゾーンの例です。

 本来は、ドメインで最初のドメインコントローラ兼DNSサーバをインストールした直後に逆引きゾーンを作成しておくと、ドメイン内の各WindowsコンピュータのPTRリソースレコードも、動的更新によって自動的に登録されるため、上記手順を実行する必要はなくなります。

 ネットワークデバイスのPTRリソースレコードも、逆引きゾーンがあれば、AおよびAAAAリソースレコードを手動で作成するときに[関連付けられたポインター(PTR)レコードを更新する]を有効にすることで(デフォルト有効)、自動的に登録できます。

 このため、逆引きが必要な場合は、Active DirectoryとDNSサーバをインストールした直後に逆引きゾーンを手動作成しておくことをお勧めします。

Windowsの場合は、DNSクライアント側でコンピュータの再起動やIPアドレスの変更、ipconfig /registerdnsコマンドの実行などが行われると、動的更新要求が自動的に送信されます。


 これまでの手順で逆引きもできるようになったため、Windowsコンピュータやネットワークデバイスでtraceroute(Windowsの場合はtracert)コマンドを実行すると、途中経路上のネットワークデバイスがホスト名で表示されるようになります。ただし、DNSサーバのIPアドレスは、まだIPv4しか設定していないため、DNSクエリと応答メッセージのやり取りはIPv4で行われています。

L2SW1#traceroute l2sw2

Translating "l2sw2"...domain server (10.1.2.100) [OK]

Type escape sequence to abort.

Tracing the route to l2sw2.edifist.co.jp (FDF4:1B39:8777:2::2)

1 l3sw1.edifist.co.jp (FDF4:1B39:8777:1::1) 0 msec 8 msec 0 msec

2 l2sw2.edifist.co.jp (FDF4:1B39:8777:2::2) 0 msec 8 msec 0 msec


 次ページでは、コンピュータやネットワークデバイスにDNSサーバのIPv6アドレスを登録します。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。