The Cable GuyWindows Server 2008 における DNS の機能拡張

Joseph Davies

この記事は、Windows Server 2008 のプレリリース版に基づいています。記載されている内容は変更されることがあります。

マイクロソフトでは、Windows NT 4.0 以降の Windows サーバー製品にドメイン ネーム システム (DNS) サーバー サービスを同梱しています。DNS とは DNS ドメイン名とさまざまな種類のデータ ( IP アドレスなど) へのマッピングを含む階層型の分散型データベースです。

Windows Server 2008 では、DNS サーバー サービスに新しくバックグラウンド ゾーンの読み込み、IPv6 サポートの強化、読み取り専用ドメイン コントローラ (RODC) のサポート、グローバルな単一ラベル名をホストする機能が追加されました。

バックグラウンド ゾーンの読み込み

Windows Server® 2008 の DNS サーバー サービスでは、バックグラウンド ゾーンの読み込みを実装することで、データの取得が迅速化されます。これまで、Windows Server 2003 では、Active Directory® に膨大な数のレコードを保持するゾーンがある組織では、DNS サーバー サービスを再起動すると Active Directory から DNS データを取得するのに、最大 1 時間、もしくはそれ以上の待ち時間が発生していました。この待ち時間の間、DNS サーバーでは、ホストしているゾーンのいずれに対する DNS クライアントの要求も処理することができませんでした。

この問題に対処するため、Windows Server 2008 の DNS サーバー サービスでは、サービスの再起動後に、Active Directory からゾーンのデータをバックグラウンドで取得することで、他のゾーンのデータの要求に対応できるようになりました。DNS サーバー サービスでは、サービスが開始されると、Active Directory に格納されたゾーンを読み込む 1 つ以上の実行スレッドを作成します。Active Directory ベースの各ゾーンのデータを読み込む個別のスレッドがあるため、DNS サーバー サービスは、ゾーンの読み込み中でも、他の要求に対応することができます。DNS クライアントから読み込みが完了しているゾーンのデータが要求された場合、DNS サーバーでは、その要求に適切に対応できます。また、読み込み中のゾーンのデータが要求された場合、要求されているデータを Active Directory から取得します。

このゾーンの読み込み中に特定のデータを Active Directory から取得することができる機能は、ゾーンのデータをファイルに格納する場合にはないメリットがあります (具体的には、DNS サーバー サービスでは、要求にすぐに対応できるというメリットがあります)。ゾーンのデータがファイルに格納される場合、DNS サーバー サービスでは、データが見つかるまで順番にファイルを読み取っていかなくてはなりません。

IPv6 サポートの強化

IPv6 については、以前のコラムでも取り上げてきましたが、これは新しいインターネットの標準プロトコル群です。IPv6 は、アドレスの不足、セキュリティ、自動構成、拡張の必要性などの現在のバージョン (IPv4) が抱える多くの問題に対処するようにデザインされました。

IPv6 における変更点の 1 つとしては、IPv4 のアドレスが 32 ビットしかないのに対して、IPv6 のアドレスは 128 ビット長であることです。IPv6 のアドレスはコロン区切りの 16 進数を使用した形式で表されます。16 進数の各桁は IPv6 アドレスの 4 ビットです。完全な IPv6 アドレスは、8 つのブロックで構成された 32 桁の 16 進数で、各ブロックはコロンで区切られています。たとえば、完全な IPv6 アドレスは FD91:2ADD:715A:2111:DD48:AB34:D07C:3914 のような形式になります。

IPv6 アドレスの順方向の名前解決では、AAAA レコード ("クワッド エイ" と読みます) として知られている IPv6 ホスト DNS レコードを使用します。IPv6 では、逆引き名前解決に IP6.ARPA ドメインを使用し、IPv6 アドレスの 32 桁の各 16 進数の数字は、逆の順序で逆引きドメイン階層の個別のレベルを構成します。たとえば、FD91:2ADD:715A:2111:DD48:AB34:D07C:3914 というアドレスの逆引き参照ドメイン名は、4.1.9.3.C.7.0.D.4.3.B.A.8.4.D.D.1.1.1.2.A.5.1.7.D.D.A.2.1.9.D.F.IP6.ARPA となります。

Windows Server 2003 の DNS サーバー サービスでは、IPv6 の順方向の名前解決と逆引き名前解決をサポートしていますが、このサポートは完全には統合されていません。たとえば、Windows Server 2003 の DNS マネージャ スナップインで、IPv6 のアドレス レコード (前述の AAAA レコード) を作成するには、ゾーン名を右クリックし、[その他の新しいレコード] をクリックして、リソース レコードの種類として [IPv6 ホスト (AAAA)] をダブルクリックします。Windows Server 2008 の DNS マネージャ スナップインで AAAA レコードを追加するには、ゾーン名を右クリックし、[新しいホスト (A または AAAA)] をクリックします。[新しいホスト] ダイアログ ボックスでは IPv4 または IPv6 のアドレスを入力できます。図 1 に例を示します。

図 1 [新しいホスト] ダイアログ ボックス

図 1** [新しいホスト] ダイアログ ボックス **

IPv6 サポートの強化の一環として、逆引き IPv6 ゾーンが導入されました。Windows Server 2003 の DNS マネージャ スナップインで逆引き参照ゾーンを作成するには、新しいゾーン ウィザードの逆引き参照ゾーン名のページで、逆引き参照ゾーンの名前を手動で入力する必要があります。DNS 逆引きゾーン名は 1.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa のようになります (IPv6 サブネットのプレフィックス 2001:db8:0:1::/64 の完全な表記は 2001:0db8:0000:0001::/64 となります)。

Windows Server 2008 では、DNS マネージャ スナップインの IPv6 逆引きゾーンが完全に新しいゾーン ウィザードに統合されています。このウィザードには IPv4 逆引き参照ゾーンまたは IPv6 逆引き参照ゾーンを選択する新しいページが用意されています。IPv6 逆引き参照ゾーンでは、IPv6 サブネット プレフィックスを入力すると、ウィザードによりゾーンが自動的に作成されます。図 2 に例を示します。

図 2 IPv6 逆引き参照ゾーンの名前を付ける

図 2** IPv6 逆引き参照ゾーンの名前を付ける **(画像を拡大するには、ここをクリックします)

もう 1 つの逆引き参照ゾーンの機能拡張としては、DNS マネージャ スナップインの IPv6 ポインタ (PTR) レコードの表示方法が挙げられます。図 3 は、Windows Server 2003 の DNS マネージャ スナップインで PTR レコードが表示される状態を示しています。

図 3 Windows Server 2003 における IPv6 の PTR レコード

図 3** Windows Server 2003 における IPv6 の PTR レコード **(画像を拡大するには、ここをクリックします)

この状態は IPv6 逆引き参照ドメイン名の DNS 名前空間の構造を正確に反映していますが、IPv6 アドレスの PTR レコードを管理する作業は困難になります。図 4 は、Windows Server 2008 の DNS マネージャ スナップインで PTR レコードが表示される状態を示しています。

図 4 Windows Server 2008 における IPv6 の PTR レコード

図 4** Windows Server 2008 における IPv6 の PTR レコード **(画像を拡大するには、ここをクリックします)

Windows Server 2003 の DNS サーバー サービスでは IPv6 の操作がサポートされますが、dnscmd /config /EnableIPv6 1 コマンドを使用して手動で有効にする必要があります。これに対して、Windows Server 2008 では、IPv6 の操作が既定でサポートされます。Dnscmd.exe コマンド ライン ツールは、コマンド ライン オプションで IPv6 アドレスを受け付けるように更新されています。また、DNS サーバー サービスでは、再帰的クエリを IPv6 専用サーバーに送信できるようになり、サーバー フォワーダのリストには IPv4 と IPv6 両方のアドレスを含められるようになりました。

IPv6 と Windows® でのサポートの詳細については、microsoft.com/ipv6 を参照してください。

読み取り専用ドメイン コントローラのサポート

Windows Server 2008 では、RODC という新しい種類のドメイン コントローラが導入されました。RODC は、Active Directory 情報の読み取り専用のコピーを保持しており、Active Directory の機能を使用することはできますが、直接構成することはできません。RODC は攻撃を受けにくいという特性があるため、ドメイン コントローラの物理的なセキュリティを確保できない場所や、ネットワーク上に有害なホストが存在する可能性がある場所にも配置することができます。

RODC の導入に伴い、Windows Server 2008 の DNS サーバー サービスでは、新しい読み取り専用のプライマリ ゾーンの種類がサポートされます。RODC コンピュータでは、ドメイン パーティション、ForestDNSZones、DomainDNSZones など、DNS が使用するアプリケーション ディレクトリ パーティションのすべての完全な読み取り専用のコピーをレプリケートします。これにより RODC で実行されている DNS サーバー サービスでは、RODC ではないドメイン コントローラのディレクトリ パーティションに格納されている任意の DNS ゾーンの完全な読み取り専用のコピーにアクセスすることができます。RODC では、読み取り専用のプライマリ ゾーンの内容を参照できますが、変更することはできません。ゾーンの内容は RODC ではないドメイン コントローラで変更する必要があります。

GlobalNames ゾーン

GlobalNames ゾーンによる名前解決

GlobalNames ゾーンの展開後に、Windows Vista ベースの DNS クライアントが単一ラベル名を解決しようすると、単一ラベル名にプライマリ DNS サフィックスを追加して、名前の照会要求を DNS サーバーに送信します。

名前が見つからない場合、DNS クライアントは、DNS サフィックス検索一覧が構成されていれば、この一覧について単一ラベル名とサフィックスを組み合わせた名前の照会要求を追加で送信します。これらの方法で名前が解決されない場合、クライアントは単一ラベル名による名前解決を要求します。

DNS サーバーは GlobalNames ゾーンで単一ラベル名を検索します。このゾーンに名前があれば、DNS サーバーから DNS クライアントに解決された IPv4 アドレスまたは FQDN が送信されます。このゾーンに名前がなければ、DNS クライアント コンピュータでは、名前を NetBIOS 名に変換し、WINS などの NetBIOS 名の名前解決技術を使用します。GlobalNames ゾーンで単一ラベル名の解決を有効にするために、DNS クライアント サービスを変更する必要はありません。

Windows Server 2008 と Windows Vista® では NetBIOS over TCP/IP (NetBT) プロトコルがサポートされます。NetBT では、セッション層の NetBIOS アプリケーションの識別に NetBIOS 名を使用します。現在提供されているバージョンの Windows では、名前解決に Windows Sockets ベースのネットワーク アプリケーションと DNS が使用されるので、WINS による NetBIOS 名前解決は必要ではありません。しかし、多くのマイクロソフト ユーザーは、古い NetBT アプリケーションをサポートしたり、組織内で単一ラベル名の名前解決を提供したりするために、ネットワークに WINS を展開しています。通常、単一ラベル名では、電子メール サーバー、中央 Web サーバー、基幹業務アプリケーション用のサーバーなど、組織において重要で名前が知れ渡っていて広く使われているサーバーを参照します。

DNS のみが使用されている組織で、このような単一ラベル名を解決できるようにするには、Windows ベースの DNS クライアントが、それぞれに割り当てられている DNS ドメイン サフィックスやサフィックス検索一覧に関係なく名前を解決できるように、組織内にある複数の DNS ドメインに A レコードを追加することが必要になる場合があります。

たとえば、contoso.com という組織に central.contoso.com ドメインのメンバである CWEB という名前の中央 Web サーバーが設置されているとします。DNS クライアントに wcoast.contoso.com、central.contoso.com、または ecoast.contoso.com という DNS ドメイン サフィックスを割り当てられる場合、CWEB サーバーの単一ラベル名を実装するには、ネットワーク管理者は cweb.wcoast.contoso.com と cweb.ecoast.contoso.com の両方に 2 つの A レコードを追加で作成する必要があります。ただし、単一ラベル名の名前解決のために手動で作成した A レコードは IPv4 アドレスの割り当ての変更や新しい名前に合わせてメンテナンスが必要であることを忘れないでください。

contoso.com で既に古い NetBT アプリケーションに対して WINS を使用している場合、ネットワーク管理者は 1 つの WINS 静的レコードを WINS インフラストラクチャに追加することで、CWEB サーバーの単一ラベル名の名前解決を実装できます。IPv4 アドレスが変更された場合、変更する必要があるのは、1 つの WINS の静的レコードだけです。単一ラベル名は DNS よりも WINS での管理の方が容易なので、多くの Windows ベースのネットワークでは単一ラベル名に WINS の静的レコードが使用されています。

WINS の静的レコードと同じくらい管理が簡単な、DNS での単一ラベル名の名前解決を提供するために、Windows Server 2008 の DNS サーバー サービスでは単一ラベル名を格納する GlobalNames と呼ばれる新しいゾーンがサポートされます。通常、このゾーンのレプリケーション スコープはフォレストです。このスコープにより、Active Directory フォレスト全体にわたって単一ラベル名解決を提供できます。また、GlobalNames ゾーンの場所を公開するのにサービスの場所 (SRV) リソース レコードを使用している場合、GlobalNames ゾーンでは、複数のフォレストを含む組織全体にわたって単一ラベル名の解決をサポートできます。

GlobalNames ゾーンは、WINS とは異なり、通常、IT 部門が管理している組織の主要かつ重要なサーバーなど、特定の限られたホスト名の単一ラベル名の解決を提供することを目的としています。GlobalNames ゾーンは、IPv4 アドレスが変更される可能性のあるデスクトップ コンピュータや他のサーバーの名前の格納先として使用されることは目的としておらず、どのような状況においても DNS の動的な更新はサポートしません。最も一般的な用途は、単一ラベル名を完全修飾ドメイン名 (FQDN) に割り当てるために、エイリアス (CNAME) リソース レコードを保持することです。現在 WINS を使用しているネットワークの GlobalNames ゾーンには、一般的に、WINS で既に静的に構成され、IT で管理されたリソース レコードが含まれています。

GlobalNames ゾーンでは、すべての権限がある DNS サーバーで Windows Server 2008 が実行されている場合にのみ、単一ラベル名の解決を提供します。ただし、どのゾーンに対しても権限のない他の DNS サーバーでは、古いバージョンの Windows や他のオペレーティング システムが実行されていても問題ありません。GlobalNames ゾーンはフォレスト内で一意である必要があります。

パフォーマンスとスケーラビリティを最大限に高めるには、GlobalNames ゾーンを Active Directory と統合し、権限のある各 DNS サーバーは、Active Directory のローカル コピーを使用して構成することをお勧めします。これは複数のフォレストへの GlobalNames ゾーンの配置をサポートするために必要な構成です。

Windows における DNS のサポートと GlobalNames ゾーンの展開に関する詳細については、マイクロソフトの DNS Web サイト (microsoft.com/dns) を参照してください。

Joseph Davies は、マイクロソフトのテクニカル ライターとして Windows ネットワークのトピックに関する講義および執筆を 1992 年から行っています。Microsoft Press から 5 冊の書籍を上梓しており、月間の TechNet Cable Guy コラムの執筆者でもあります。

© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; 許可なしに一部または全体を複製することは禁止されています.