The Cable GuyWindows Vista での IPv6 自動構成

Joseph Davies

IPv6 は、アドレス空間を IPv4 の 32 ビットから 128 ビットに広げるだけのものではありません。DHCP for IPv6 (DHCPv6) などのアドレス構成プロトコルを使用せずに、IPv6 ホスト自体を自動構成できます。

RFC 2462 に基づき、すべての IPv6 ノードがインターフェイスごとにリンクローカル アドレスを自動構成します。IPv6 ホストは、ルーター発見 (ルーター要請メッセージとルーター アドバタイズ メッセージの交換) を使用して追加アドレスと構成設定を判断することもできます。ルーターから送信されるルーター アドバタイズ メッセージには、管理されたアドレス構成 (M) フラグとその他のステートフル構成 (O) フラグが含まれます。これらのフラグによって、ホストが追加アドレスまたは構成設定のために DHCPv6 を使用する必要があるかどうかが示されます。

IPv6 自動構成の種類

リンクローカル アドレス以外にも、ホストはステートレス自動構成を使用して、受信したルーター アドバタイズ メッセージの内容に基づいてアドレスやその他の設定を構成することもできます。これらのメッセージには 1 つまたは複数のプレフィックス情報オプションが含まれ、受信側ホストはこれらのオプションを使用してステートレス アドレスを導き出すことができます。

同様に、ステートフル自動構成は、アドレスの取得を DHCPv6 の使用に基づく、アドレスやその他の設定の構成です。ホストは、M フラグの値が 1 に設定されたルーター アドバタイズ メッセージを受信したときにステートフル自動構成を使用します。

最後に、ホストはステートレス自動構成とステートフル自動構成の両方を使用できます。これは、ルーター アドバタイズに含まれるアドレスと DHCPv6 サーバーから取得したアドレスの組み合わせです。

自動構成されたアドレスの状態

自動構成されたアドレスが仮承諾状態の場合は、このアドレスは重複アドレスの検出 (DAD) を使って、一意であるかどうかを確認しています。DAD の実行方法に関する詳細については、補足記事「RFC 2462 IPv6 自動構成プロセス」を参照してください。有効状態のアドレスとは、一意であることが確認され、ユニキャスト トラフィックの送受信に使用できるアドレスです。有効状態には、優先状態と非推奨状態の両方を含みます。優先状態のアドレスは、無制限通信に使用できます。非推奨状態のアドレスは、新しい通信での使用は推奨されませんが、このアドレスを使用する既存の通信は続行できます。

RFC 2462 IPv6 自動構成プロセス

次の手順では、RFC 2462 の定義に従った IPv6 ホストの自動構成プロセスについて説明します。

  • Extended Unique Identifier (EUI)-64 インターフェイス識別子 (ID) を使用して、仮承諾リンクローカル アドレスを導き出します。
  • 仮承諾リンクローカル アドレスで DAD を実行します。これは、メッセージのターゲット アドレスに仮承諾リンクローカル アドレスを設定した近隣要請メッセージを送信することで行います。
  • 近隣要請メッセージへの応答として送信された近隣アドバタイズ メッセージを受信した場合、仮承諾リンクローカル アドレスは重複アドレスです。この場合、アドレスの自動構成を停止します。この時点で、ホストで手動構成を実行する必要があります。
  • (近隣要請メッセージへの応答として送信される) 近隣アドバタイズ メッセージを受信しなかった場合は、仮承諾リンクローカル アドレスは一意です。インターフェイスのアドレスの状態を優先に変更します。
  • ルーター要請メッセージを送信します。
  • ルーター アドバタイズ メッセージを受信しなかったら、DHCPv6 を使用してアドレスやその他の構成パラメータを取得します。
  • ルーター アドバタイズ メッセージを受信したら、受信メッセージに含まれるプレフィックスの仮承諾アドレスを構成し、仮承諾アドレスごとに重複アドレスの検出を実行します。アドレスが一意であれば、インターフェイスのアドレスの状態を優先に変更します。
  • ルーター アドバタイズ メッセージの M フラグの値が 1 に設定されている場合、DHCPv6 を使用して追加のステートフル アドレスを取得します。
  • ルーター アドバタイズ メッセージの M フラグの値が 0、O フラグの値が 1 にそれぞれ設定されている場合は、DHCPv6 を使用して追加の構成パラメータを取得します。

アドバタイズ ルーターまたは DHCPv6 サーバーによって、アドレス プレフィックスの有効期間と優先する有効期間が指定されます。優先する有効期間を過ぎると、アドレスは非推奨状態になります。自動構成アドレスを優先する有効期間は、ルーター アドバタイズの受信または DHCPv6 アドレス構成の更新によって更新されます。図 1 は、自動構成アドレスの状態と、優先する有効期間と有効期間との関係を示しています。

図 1 自動構成アドレスの状態

図 1** 自動構成アドレスの状態 **(画像を拡大するには、ここをクリックします)

リンクローカル アドレスの自動構成を除き、アドレス自動構成は IPv6 ホストにのみ指定できます。IPv6 ルーターは、手動構成などの別の方法を使用してアドレスおよび構成パラメータを取得する必要があります。

補足記事「RFC 2462 IPv6 自動構成プロセス」では、RFC 2462 で定義されている、ホストの IPv6 アドレス自動構成の詳細なプロセスについて説明しています。

Windows Vista での IPv6 自動構成の動作

Windows Vista® または Windows Server® 2008 (以前のコードネーム "Longhorn") を実行中のコンピュータでは、パブリック アドレスやリンクローカル アドレスなどの、一時的ではない自動構成 IPv6 アドレスに対して、EUI-64 ベースのインターフェイス ID ではなく、ランダムなインターフェイス ID を既定で生成します。パブリック IPv6 アドレスは、DNS に登録され、通常 Web サーバーなどのサーバー アプリケーションが着信接続用に使用するグローバル アドレスです。この既定の動作は、次のコマンドを使用して無効にできます。

netsh interface ipv6 set global randomize­identifiers=disabled 

無効にすると、IPv6 は EUI-64 ベースのインターフェイス ID を使用します。

ランダムに生成されたインターフェイス ID を使用すると、リンクローカル アドレスが重複する可能性が非常に低くなります。そのため、Windows Vista または Windows Server 2008 を実行中のコンピュータでは、DAD が完了するまで待機せずに、生成されたリンクローカル アドレスを使用してルーター要請メッセージを送信します。これを、オプティミスティック DAD と呼びます。ルーター発見と DAD は、インターフェイスの初期化プロセス中に、時間節約のために並列実行されます。

Windows Vista または Windows Server 2008 を実行中のコンピュータでは、ルーター アドバタイズを受信しなければ、DHCPv6 によるステートフル アドレスの自動構成は試みません。

Windows Vista での IPv6 自動構成プロセス

次の手順では、Windows Vista を実行中の IPv6 ホストの自動構成プロセスについて説明します。

  • ランダムに生成されたインターフェイス ID (既定の設定) を使用して、LAN インターフェイスに仮承諾リンクローカル アドレスを生成します。
  • LAN インターフェイスに生成されたリンクローカル アドレスに対して DAD を実行します (ターゲット アドレス フィールドに仮承諾リンクローカル アドレスを設定した近隣要請メッセージを送信します)。
  • LAN インターフェイスでルーター発見を実行します (仮承諾リンクローカル アドレスからルーター要請メッセージを送信します)。
  • 手順 2 の近隣要請メッセージへの応答として送信された近隣アドバタイズ メッセージを受信したら、リンクローカル アドレスに重複アドレスのマークを付けます。
  • 近隣要請メッセージへの応答として送信される近隣アドバタイズ メッセージを受信しなかったら、LAN インターフェイスのリンクローカル アドレスの状態を優先に変更します。
  • ルーター アドバタイズを受信しなかった場合は、LAN インターフェイスでの IPv6 アドレス自動構成を停止します。手順 13 に進みます。
  • ルーター アドバタイズを受信したら、手順 1 のランダムに生成されたインターフェイス ID に基づいて、メッセージのグローバル アドレス プレフィックスまたは一意のローカル アドレス プレフィックスに対応する仮承諾パブリック アドレスを作成し、DAD を実行します。
  • 新しくランダムに生成されたインターフェイス ID を使用して、メッセージのグローバル アドレス プレフィックスまたは一意のローカル アドレス プレフィックスに対応する仮承諾一時アドレスを作成し、DAD を実行します。
  • 新しい各アドレスについて、近隣要請メッセージへの応答として送信される近隣アドバタイズ メッセージを受信しなかったら、LAN インターフェイスのアドレスの状態を優先に変更します。
  • ルーター アドバタイズの M フラグと O フラグの値が 0 に設定されていたら、LAN インターフェイスでの IPv6 自動構成を停止します。手順 13 に進みます。
  • ルーター アドバタイズの M フラグの値が 1 に設定されていたら、DHCPv6 を使用してステートフル IPv6 アドレスおよび追加の構成設定を両方取得します。
  • ルーター アドバタイズの M フラグの値が 0、O フラグの値が 1 にそれぞれ設定されていたら、DHCPv6 を使用して追加の構成設定を取得します。
  • LAN インターフェイスの IPv4 アドレスに基づいてリンクローカル ISATAP アドレスを生成し、ISATAP トンネリング インターフェイスに割り当てます。
  • ホスト名 "ISATAP" から IPv4 アドレスへの解決を試みます。
  • ホスト名 "ISATAP" を解決できない場合は、IPv6 構成を停止します。
  • ホスト名 "ISATAP" を IPv4 アドレスに解決できたら、IPv4 によりカプセル化されたルーター要請を ISATAP ルーターに送信します。
  • ISATAP ルーターからのルーター アドバタイズを受信したら、アドバタイズされたグローバル アドレス プレフィックスまたは一意のローカル アドレス プレフィックスに対応する追加の ISATAP アドレスを作成し、ISATAP トンネリング インターフェイスに割り当てます。

Windows Vista の自動構成アドレス

前述のように、Windows Vista および Windows Server 2008 の IPv6 プロトコルは、すべての LAN インターフェイスに対してランダムに生成されたインターフェイス識別子を使用して、自動的にリンクローカル アドレスを構成します。

受信したルーター アドバタイズにグローバル プレフィックスまたは一意のローカル プレフィックスが含まれる場合、IPv6 はランダムに生成された同じインターフェイス ID を使用してグローバル アドレスまたは一意のローカル アドレスを構成し、ルーター アドバタイズを受信した LAN インターフェイスに割り当てます。これらのアドレスを、パブリック アドレスと呼びます。

また、Windows Vista の IPv6 は既定で、ランダムに生成された別のインターフェイス ID を使用して一時的なグローバル アドレスまたは一意のローカル アドレスを構成し、ルーター アドバタイズを受信した LAN インターフェイスに割り当てます。一時アドレスは RFC 3041 で定義されていて、クライアントから開始した通信に一定レベルの匿名性を提供するために使用されます。一方、Windows Server 2008 の既定では、IPv6 は一時アドレスを作成しません。一時アドレスは、次のコマンドを使用することで有効にできます。

netsh interface ipv6 set privacy-enabled

受信したルーター アドバタイズ メッセージの M フラグの値が 1 に設定されている場合、IPv6 は DHCPv6 を使用して、LAN インターフェイスに追加のグローバル アドレスまたは一意のローカル アドレスを構成します。

また IPv6 は、Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) トンネリング インターフェイスをホストの LAN インターフェイスごとに作成します。RFC 4214 では、ISATAP IPv6 移行テクノロジが記述されています。IPv6 ホストは ISATAP を使用して、IPv6 パケットを IPv4 ヘッダーにカプセル化することで、IPv4 のみに対応するイントラネット経由で通信できます。ISATAP の詳細については、「IPv6 移行テクノロジ」を参照してください。

IPv6 は、ISATAP トンネリング インターフェイスごとに、対応する LAN インターフェイスに割り当てられた IPv4 アドレスに、リンクローカル ISATAP アドレスを構成します。たとえば、IPv4 アドレス 192.168.91.211 が割り当てられている LAN インターフェイスに対応する ISATAP トンネリング インターフェイスには、IPv6 はリンクローカル ISATAP アドレス FE80::0:5EFE:192.168.91.211 を割り当てます。

また、ISATAP ホストは、ISATAP ルーター発見も実行します。ISATAP ルーターからルーター アドバタイズを受信するには、IPv6 は既定で、ホスト名 "ISATAP" を IPv4 アドレスに解決する必要があります。これは、DNS などの Windows ベースのホスト名解決手法を使用して実行できます。名前が解決されると、ホストは IPv4 によりカプセル化されたルーター要請を ISATAP ルーターに送信します。次に、ISATAP ルーターは IPv4 によりカプセル化されたルーター アドバタイズをホストに送信します。受信したルーター アドバタイズの内容に基づき、IPv6 は ISATAP トンネリング インターフェイスにグローバル ISATAP アドレスまたは一意のローカル ISATAP アドレスを構成します。

また、Windows Vista では、6to4 IPv6 移行テクノロジおよび Teredo IPv6 移行テクノロジがサポートされます。ただし、ここでは論点を簡略化するため、Windows Vista ベースの IPv6 ホストの 6to4 トンネリング インターフェイスおよび Teredo トンネリング インターフェイスの自動構成については説明しません。

補足記事「Windows Vista での IPv6 自動構成プロセス」では、単一の LAN インターフェイスを使用した Windows Vista ベースの IPv6 ホストのアドレス自動構成プロセスについて説明しています。単一の LAN インターフェイスは、LAN インターフェイスまたは ISATAP トンネリング インターフェイスのグローバル アドレス プレフィックスまたは一意のローカル アドレス プレフィックスを使用して構成されます。

たとえば、Windows Vista を実行中のホストには単一の LAN インターフェイスがあります。ホストは LAN インターフェイスで、M フラグおよび O フラグの両値が 0 に設定されたルーター アドバタイズを受信し、プレフィックス 2001:DB8:D005:F282::/64 および FD4A:3A9:27A1:F282::/64 を保持します。ISATAP ルーターからのルーター アドバタイズ メッセージは受信しません。図 2 は、コマンドの出力の結果例を示しています。

Figure 2 netsh interface ipv6 show address の出力

Interface 1: Loopback Pseudo-Interface 1

Addr Type DAD State Valid Life Pref. Life Address
--------- ----------- ---------- ---------- ------------------------
Other   Preferred  infinite infinite ::1

Interface 8: Local Area Connection

Addr Type DAD State Valid Life Pref. Life Address
--------- ----------- ---------- ---------- ------------------------
Temporary Preferred 6d19h37m21s 6d19h37m21s 2001:db8:d005:f282:ed46:5dd4:5439:2e1c
Public  Preferred  infinite infinite 2001:db8:d005:f282:3521:12fa:2c44:87d1
Temporary Preferred 6d19h37m21s 6d19h37m21s fd4a:3a9:27a1:f282:ed46:5dd4:5439:2e1c
Public   Preferred  infinite infinite fd4a:3a9:27a1:f282:3521:12fa:2c44:87d1
Other   Preferred  infinite infinite fe80::3521:12fa:2c44:87d1%8

Interface 17: Local Area Connection* 9

Addr Type DAD State Valid Life Pref. Life Address
--------- ----------- ---------- ---------- ------------------------
Other   Preferred  infinite infinite fe80::5efe:10.47.181.92%17

netsh interface ipv6 show address

コマンドは、上記のホスト例に対するコマンドです。この図では、Local Area Connection という名前の LAN インターフェイスに対応する ISATAP トンネリング インターフェイスの名前は、Local Area Connection* 9 です。

Windows Server 2008 および Windows Vista の IPv6 プロトコルは、自動構成アドレスだけでなく、次のコマンドを使用することで静的 IPv6 アドレスの手動構成もサポートします。

netsh interface ipv6 add address

または、ネットワーク接続フォルダの接続のプロパティからインターネット プロトコル バージョン 6 (TCP/IPv6) コンポーネントを使用することでサポートします。

今月のコラムは、読者に IPv6 アドレスとプロトコルの動作に関する一般的な基礎知識があることを前提としています。このトピックの詳細については、ホワイトペーパー「IPv6 概説」(microsoft.com/technet/ network/ipv6/introipv6.mspx) を参照してください。

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

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