The Cable GuyISATAP を使用してイントラネットを IPv6 に移行する

Joseph Davies

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

インターネット プロトコル バージョン 6 (IPv6) についてよく誤解されていることの 1 つに、IPv6 を使用するにはネイティブ IPv6 のアドレス指定とルーティングを展開しなければならないという誤った認識があります。この展開作業を行うには、IPv6 のアドレス体系を詳しく分析し、ルーターを更新および構成して、展開スケジュールを決定する必要があります。ネイティブ IPv6 接続を提供する場合は、最終的にこの作業を行う必要がありますが、

Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) を使用すると、トンネリングされた IPv6 接続を簡単に展開できます。トンネリングされた IPv6 接続を使用すると、ISATAP をサポートするホストは、IPv4 ヘッダーでカプセル化された IPv6 トラフィックを使用して通信を行うことができます (このとき、IPv4 プロトコル フィールドは 41 に設定されます)。ISATAP トラフィックは、IPv4 のみに対応したイントラネット内を通過できるため、ネイティブ IPv6 インフラストラクチャの準備が完了していなくても、すぐに IPv6 に対応したアプリケーションのテストを開始できます。

ISATAP とは、RFC 4214 で定義されているアドレス割り当ておよび自動トンネリング テクノロジであり、IPv4 のみに対応したイントラネット内で IPv6/IPv4 ホスト間のユニキャスト IPv6 接続を提供します。ISATAP ホストは、ISATAP アドレスが割り当てられた論理トンネリング インターフェイスを使用します。ISATAP アドレスの形式は、UnicastPrefix:0:5EFE:w.x.y.z (ISATAP ホストに割り当てられたプライベート IPv4 アドレスが w.x.y.z である場合) または UnicastPrefix:200:5EFE:w.x.y.z (ISATAP ホストに割り当てられたパブリック IPv4 アドレスが w.x. y.z である場合) です。UnicastPrefix は、リンクローカル、グローバル、および一意のローカル プレフィックスが含まれた 64 ビットのユニキャスト アドレスのプレフィックスです。たとえば、2001:DB8::98CA:200:131.107.28.9 や 2001:DB8::98CA:0:10.91.211.17 などの ISATAP アドレスがあります。

ISATAP を使用してイントラネットを IPv6 に移行する

ISATAP の展開は、1 つ以上の論理 ISATAP サブネットで構成されます。このサブネットは、64 ビットの IPv6 サブネットのプレフィックスが割り当てられた、IPv4 のみに対応したネットワークです。論理 ISATAP サブネットには、ISATAP ホストと ISATAP ルーターがあります。ISATAP ホストは、ISATAP トンネリング インターフェイスを使用して IPv6 トラフィックをカプセル化します。このトラフィックは、同じ論理 ISATAP サブネット上の他の ISATAP ホストに直接送信できます。送信先が他の ISATAP サブネットやネイティブ IPv6 サブネットである場合は、ISATAP ルーターにトラフィックを送信します。ISATAP ルーターとは、ISATAP ホストにサブネットのプレフィックスをアドバタイズし、ISATAP ホストと他の IPv6 サブネット上のホストとの間で IPv6 トラフィックを転送する IPv6 ルーターです。図 1 は、単純な構成のイントラネットに展開した ISATAP の構成要素を示しています。

図 1 イントラネット内の IPv4 のみに対応した部分と IPv6 に対応した部分

図 1** イントラネット内の IPv4 のみに対応した部分と IPv6 に対応した部分 **(画像を拡大するには、ここをクリックします)

ISATAP を使用すると、次の 3 つのフェーズを経て、ネイティブ IPv6 のアドレス指定およびルーティング機能をイントラネットに展開できます。

フェーズ 1: IPv4 のみに対応したイントラネット このフェーズでは、イントラネット全体を単一の論理 ISATAP サブネットとして使用できます。図 2 は、IPv4 のみに対応したイントラネットの例を示しています。このイントラネット内の ISATAP ルーターは、グローバル アドレスのプレフィックスまたは一意のローカル アドレスのプレフィックスのみを ISATAP ホストにアドバタイズします。

図 2 IPv4 のみに対応したイントラネット

図 2** IPv4 のみに対応したイントラネット **(画像を拡大するには、ここをクリックします)

フェーズ 2: イントラネット内の IPv4 のみに対応した部分と IPv6 に対応した部分 この中間フェーズでは、イントラネット内に IPv4 のみに対応した部分 (論理 ISATAP サブネット) と IPv6 に対応した部分が存在します。IPv6 に対応した部分では IPv4 がサポートされています。またこの部分は、ネイティブ IPv6 のアドレス指定とルーティングをサポートするように更新されています。この構成は、図 1 に示されています。

フェーズ 3: IPv6 に対応したイントラネット この最終フェーズでは、イントラネット全体で IPv4 とネイティブ IPv6 のアドレス指定とルーティングがサポートされます。このフェーズでは ISATAP が必要なくなります。図 3 に例を示します。

図 3 IPv6 に対応したイントラネット

図 3** IPv6 に対応したイントラネット **(画像を拡大するには、ここをクリックします)

ISATAP を使用すると、IPv4 のみに対応したイントラネットから IPv6 に対応したイントラネットに移行するための最初の 2 つのフェーズで、ホストとアプリケーションの間に IPv6 接続を提供することができます。

Windows Server 2008 と Windows Vista

Windows Server® 2008 と Windows Vista® の IPv6 プロトコルでは、ISATAP が ISATAP ホストと ISATAP ルーターとしてサポートされています。異なる DNS サフィックスを持つ複数の LAN インターフェイスがコンピュータに取り付けられている場合、各 LAN インターフェイスに別々の ISATAP トンネリング インターフェイスが提供されます。たとえば、Windows Vista を実行しているコンピュータに 2 つの LAN インターフェイスが取り付けられており、それらが両方とも同じイントラネットに接続され、同じ DNS サフィックスが割り当てられている場合、ISATAP トンネリング インターフェイスは 1 つのみ提供されます。これら 2 つの LAN インターフェイスが、異なる DNS サフィックスを持つ 2 つの異なるネットワークに接続されている場合、ISATAP トンネリング インターフェイスは 2 つ提供されます。Windows Server 2008 または Windows Vista SP1 を実行しているコンピュータでは、"ISATAP" という名前が解決されない限り、ISATAP トンネル インターフェイスの状態は "メディアが切断されている" 状態になります。

既定では、サービス パックがインストールされていない Windows Vista の IPv6 プロトコルでは、対応する LAN インターフェイスに割り当てられた IPv4 アドレス用のリンクローカル ISATAP アドレス (FE80::5EFE: w.x.y.z または FE80::200:5EFE:w.x.y.z) が自動的に ISATAP トンネル インターフェイスに構成されます。

Windows Server 2008 と Windows Vista SP1 の IPv6 プロトコルでは、"ISATAP" という名前が解決された場合のみ、ISATAP トンネル インターフェイスにリンクローカル ISATAP アドレスが構成されます。

ルーター アドバタイズ メッセージを ISATAP ルーターから受信するには、ISATAP ホストは ISATAP ルーターにルーター要請メッセージを送信する必要があります。イーサネット サブネットでは、ネイティブ IPv6 ホストがマルチキャスト ルーター要請メッセージを送信した後、サブネット上のルーターがルーター アドバタイズ メッセージに応答します。ISATAP は IPv4 マルチキャスト トラフィックを使用しない、つまり IPv4 マルチキャストに対応したインフラストラクチャを必要としないため、ISATAP ホストはユニキャスト ルーター要請メッセージを ISATAP ルーターに送信する必要があります。

ユニキャスト ルーター要請メッセージを ISATAP ルーターに送信するには、ISATAP ホストはまず論理 ISATAP サブネット上に存在する ISATAP ルーターのインターフェイスに割り当てられているユニキャスト IPv4 アドレスを特定する必要があります。Windows Server 2008 と Windows Vista の IPv6 プロトコルでは、ISATAP ホストがホスト名 "ISATAP" を IPv4 アドレスに解決するか、netsh interface isatap set router コマンドを使用して、ISATAP ルーターのユニキャスト IPv4 アドレスを取得します。

イントラネットの移行 : フェーズ 1

IPv6 への移行のフェーズ 1 で ISATAP をイントラネットに展開するには、次の手順を実行する必要があります。

ISATAP サブネットのプレフィックスを特定する イントラネットに対応した論理 ISATAP サブネットに割り当てる 64 ビットのサブネット プレフィックスを特定する必要があります。48 ビットのプレフィックスは ISP またはインターネット レジストリから取得できます。また、48 ビットの一意のローカル プレフィックスを独自に派生させることもできます (tools.ietf.org/html/rfc4193 で公開されている RFC 4193 を参照)。

この 48 ビットのプレフィックスから、論理 ISATAP サブネット用の 16 ビットのサブネット ID を選択します。この 48 ビットのプレフィックスと 16 ビットのサブネット ID を組み合わせると、64 ビットの ISATAP サブネットのプレフィックスになります。たとえば、48 ビットの一意のローカル プレフィックス FD8A:219C:052A::/48 とサブネット ID 1 を組み合わせると、64 ビットのサブネット プレフィックス FD8A:219C:052A:1::/64 になります。

ISATAP ルーター コンピュータを指定する ISATAP ルーターとして使用するコンピュータを決定します。市販の多くのルーターでは ISATAP ルーターの機能がサポートされていますが、ここでは Windows Server 2008 を実行しているコンピュータに固有の情報を提供します。

フェーズ 1 では、ISATAP ルーター コンピュータに複数の LAN インターフェイスを取り付けたり、このコンピュータをイントラネット内の IPv6 に対応した部分に接続する必要もありません。ただし、後から LAN インターフェイスを追加して、この IPv6 に対応した部分に接続できるコンピュータを選択する必要があります。

ISATAP ルーター コンピュータを構成する ISATAP ルーター コンピュータで次のコマンドを実行すると、そのコンピュータの ISATAP トンネリング インターフェイスの状態は、"メディアが接続された" 状態になります。

netsh interface isatap set router IPv4Address 

IPv4Address は、論理 ISATAP サブネットに接続されている ISATAP ルーター コンピュータの LAN インターフェイスに割り当てられた IPv4 アドレスです。

次に、論理 ISATAP サブネットに接続された ISATAP ルーター コンピュータの LAN インターフェイスに対応する ISATAP トンネリング インターフェイスの名前またはインターフェイス インデックスを特定します。この名前とインデックスは、次のコマンドの出力から特定します。

netsh interface ipv6 show interfaces

続いて、次のコマンドを使用して ISATAP インターフェイスのアドバタイズを有効にします。

netsh interface ipv6 set interface ISATAPInterfaceNameOrIndex advertise=enabled

ISATAPInterfaceNameOrIndex は、ISATAP トンネリング インターフェイスの名前またはインターフェイス インデックスです。

その後、次のコマンドを使用して、ISATAP サブネットのプレフィックスを ISATAP ホストにアドバタイズするよう ISATAP ルーター コンピュータを構成します。

netsh interface ipv6 add route ISATAPSubnetPrefix ISATAPInterfaceNameOrIndex publish=yes

ISATAPSubnetPrefix は、先ほど特定した ISATAP サブネットのプレフィックスです。

DNS を構成する イントラネット上の ISATAP ホストが "ISATAP" という名前を正しく解決できるように、DNS の適切なドメインに ISATAP という名前のアドレス (A) レコードを追加します。たとえば、イントラネット上のホストが contoso.com という DNS サフィックスを使用している場合、contoso.com ドメインに isatap.contoso.com という名前の A レコードを追加する必要があります。このレコードには、IPv4 のみに対応したイントラネット上にある ISATAP ルーターの LAN インターフェイスに割り当てられている IPv4 アドレスを指定します。

DNS サーバーが Windows Server 2008 を実行している場合は、DNS サーバーでレジストリ エディタ (regedit.exe) を使用して、HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DNS\Parameters\GlobalQueryBlockList レジストリ値から ISATAP エントリを削除します。

ISATAP ホストをテストする イントラネット上の ISATAP ホストで Ipconfig ツールを使用して、そのホストに割り当てられているアドレスを表示します。ISATAP ホストのアドレスの形式は、ISATAPSubnetPrefix:: 5EFE:w.x.y.z または ISATAPSubnetPrefix:: 200:5EFE:w.x.y.z です。たとえば、ISATAP サブネットのプレフィックスが FD8A:219C: 052A:1::/64、ISATAP ホストの IPv4 アドレスが 10.1.31.97 である場合、その ISATAP ホストの ISATAP トンネリング インターフェイスには、FD8A: 219C:052A:1::5FE:10.1.31.97 というアドレスが割り当てられています。

ISATAP サブネットのプレフィックスに基づいた ISATAP アドレスが ISATAP ホストに割り当てられていない場合は、そのホストが "ISATAP" という名前を解決できるかどうかを確認します。解決できない場合は、A レコードが適切なドメインに作成されているかどうかを確認します。また、DNS サーバーが Windows Server 2008 を実行している場合は、ISATAP エントリを削除するよう GlobalQueryBlockList レジストリ値が変更されているかどうかを確認します。名前を解決できる場合は、ISATAP ルーター コンピュータが正しく構成されているかどうかを確認します。正しく構成されている場合は、イントラネット上のルーターがプロトコル番号 41 の IPv4 トラフィックを転送できるかどうかを確認します。

ISATAP ホストは、ISATAP サブネットのプレフィックスに基づいたアドレスを使用して自身を正しく構成できる場合、これらの ISATAP アドレスを AAAA レコードとして DNS に登録し、IPv6 ベースの接続に使用します。

イントラネットの移行 : フェーズ 2

IPv6 への移行のフェーズ 2 では、ISATAP ルーターの構成を変更して、イントラネット上の IPv4 のみに対応した部分と IPv6 に対応した部分との間で転送を実行できるようにする必要があります。

ISATAP ルーター コンピュータで、次のコマンドを実行します。

netsh interface ipv6 show interfaces

上記のコマンドの出力から、イントラネット内の IPv6 に対応した部分に接続されている LAN インターフェイスと ISATAP トンネリング インターフェイスの名前またはインターフェイス インデックスを特定します。

次のコマンドを使用して、ISATAP インターフェイスの転送を有効にします。

netsh interface ipv6 set interface ISATAPInterfaceNameOrIndex forwarding=enabled

次のコマンドを使用して、LAN インターフェイスの転送を有効にします。

netsh interface ipv6 set interface LANInterfaceNameOrIndex forwarding=enabled

LANInterfaceNameOrIndex は、LAN インターフェイスの名前またはインターフェイス インデックスです。

次のコマンドを使用して、既定のルートを ISATAP ルーターに追加します。

netsh interface ipv6 add route ::/0 LANInterfaceNameOrIndex NextHopAddress publish=yes

NextHopAddress は、イントラネット内の IPv6 に対応した部分に隣接したネイティブ IPv6 ルーターの IPv6 アドレスです。

イントラネット内の IPv6 に対応した部分から論理 ISATAP サブネットにアクセスできるようにするには、ISATAP サブネットのプレフィックスに対応した、ISATAP ルーター コンピュータへのルートをネイティブ IPv6 ルーターに構成することが重要です。

イントラネット内の IPv6 に対応した部分に属するコンピュータの ISATAP を無効にするには、DNS 内の ISATAP という名前の A レコードを操作して、イントラネット内の IPv6 に対応した部分に属するコンピュータが ISATAP という名前を解決できないようにします。

また、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip6\Parameters\DisabledComponents レジストリ値を作成し、データを 0x4 (DWORD 型) に設定しても同じ操作を実行できます。

イントラネットの移行 : フェーズ 3

イントラネット全体が IPv6 に対応したフェーズ 3 では、DNS を使用して ISATAP の展開を削除し、ISATAP ルーター コンピュータを再構成する必要があります。まず DNS から ISATAP という名前の A レコードをすべて削除します。これにより、どのホストも ISATAP ルーターの IPv4 アドレスを特定できなくなります。

ISATAP ルーター コンピュータで、次のコマンドを実行します。

netsh interface isatap set router default 

このコマンドにより、ISATAP コンポーネントが既定の状態にリセットされます。

次のコマンドの出力から、ISATAP トンネリング インターフェイスの名前またはインターフェイス インデックスを特定します。

netsh interface ipv6 show interfaces

次のコマンドを使用して、ISATAP インターフェイスの転送とアドバタイズを無効にします。

netsh interface ipv6 set interface ISATAPInterfaceNameOrIndex forwarding=disabled advertise=disabled

次のコマンドを使用して、ISATAP サブネットのプレフィックスに対応するルートを ISATAP ルーター コンピュータから削除します。

netsh interface ipv6 delete route ISATAPSubnetPrefix ISATAPInterfaceNameOrIndex

ISATAPSubnetPrefix は ISATAP サブネットのプレフィックスです。

冗長な ISATAP ルーターやファイアウォールの考慮事項など、ISATAP の展開の詳細については、『Intra-Site Automatic Tunnel Addressing Protocol 展開ガイド』(go.microsoft.com/fwlink/?LinkId=106926) を参照してください。

Joseph Davies は、マイクロソフトのテクニカル ライターとして Windows ネットワークのトピックに関する講義および執筆を 1992 年から行っています。Microsoft Press から 8 冊の書籍を上梓しており、月間の TechNet Cable Guy コラムの執筆者でもあります。その他の The Cable Guy の記事については、microsoft.com/technet/community/columns/cableguy/about.mspx を参照してください。

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