The Cable Guy - 2001 年 7 月

IPv6 の現時点での使用方法

The Cable Guy

The Cable Guy の全コラムの一覧と概要をご覧になるには、ここをクリックしてください。

トピック

IPv6 (IP バージョン 6) の概要
6to4
Windows XP の 6to4 サポート
ISATAP
Windows XP の ISATAP サポート
まとめ

IPv6 (IP バージョン 6) の概要

IPv6 (IP バージョン 6) は、従来の IP バージョン 4 (IPv4) プロトコルの後継プロトコルです。IPv4 は現在、イントラネットおよびインターネットで採用されている TCP/IP ベースのネットワークの分野で幅広く使用されています。IPv6 は 後継プロトコルですが、IPv4 と互換性のある上位集合ではありません。IPv4 専用ノードは IPv6 専用パケットを受信できません。また、IPv6 ノードは IP v 4 パケットを受信できません。IPv6 と交信するホスト システムは IPv6 を実装する必要があります。今後、一般的なホスト システムは IPv6/IPv4 兼用となり、両方のプロトコルを実装することになります。

ソース ホストのローカル イントラネット、インターネット (ローカル インターネット サービス プロバイダ (ISP) から、バックボーンおよび送信先の ISP まで) および送信先ホストのイントラネットにわたる、エンドツーエンドのインフラストラクチャで IPv6 転送がサポートされるまでは、IPv6 は使用できないという考えが広まっています。しかし、この考えは誤りです。実際、IPv6 の設計者はネイティブの IPv6 パケット転送がサポートされていないインフラストラクチャによって分離されても、エンドツーエンドで使用できるように、十分に配慮して設計しています。

エンドツーエンドのインフラストラクチャが IPv4 のインターネットワークの場合、IPv6 は IPv4 のインターネットワークをリンク レイヤとして処理します。IPv6 パケットは IPv4 ヘッダーでカプセル化されて、アクセス可能な IPv4 送信元からアクセス可能な IPv4 送信先に送られます。また、IPv4 インフラストラクチャ経由で IPv4/IPv6 ノードの通信を可能にするために、IPv6 から IPv4 への移行テクノロジとして 6to4 や ISATAP (Intra-Site Automatic Tunnel Addressing Protocol) などが提供されています。

IPv6 のアドレス長は 128 ビットで、現在インターフェイスへの割り当てに使われているユニキャスト IPv6 アドレスはサブネット識別子 (上位 64 ビット) とインターフェイス識別子 (下位 64 ビット) から構成されています。6to4 テクノロジはパブリック IPv4 アドレスを使って IPv6 アドレスの 64 ビット サブネット識別子部分を作成します。ISATAP はローカルに割り当てられた IPv4 アドレス (パブリックまたはプライベート) を使って、64 ビット インターフェイス識別子を作成します。

どちらの場合も、IPv6 アドレスの部分に埋め込まれた IPv4 アドレスは (IPv6 パケットが IPv4 インフラストラクチャ経由で送られる場合)、カプセル化された IPv4 ヘッダー内の送信元と送信先を特定するために必要な情報を提供します。

6to4

6to4 はカプセル化とアドレス指定の手法で、詳細は RFC 3056 に載っています。 6to4 ホストは手動設定をまったく必要とせず、また標準 IPv6 によるアドレス自動構成メカニズムを通じて 6to4 アドレスを作成します。ただし、6to4 ルーターはカプセル化とカプセル化解除のために処理ロジックの追加を必要とし、実装に従って、追加設定が必要になる場合もあります。

6to4 はパブリック IPv4 アドレスからグローバル アドレス のプレフィックスを作成します。IPv6 グローバル アドレスは次の形式をとります。

001[TLA ID]:[NLA ID]:[SLA ID]:[Interface ID]

ここで、001 はこのタイプのアドレスのプレフィックスの形式を示します。TLA ID は最上位レベルの集合 (大規模の IPS) を特定します。NLA ID はその次のレベルの集合 (中規模の IPS) を特定します。SAL ID はサイトレベルの集合 (カスタマ サイト内のサブネット) を特定します。インターフェイス ID はサブネット内の特定の インターフェイスを識別します。

6to4 はプレフィックスが 2002:WWXX:YYZZ::/48 のグローバル アドレスを使います。 この場合、0x002 は 6to4 アドレス用に割り当てられている TLA ID です。 WWXX:YYZZ は、ホストまたはサイトに割り当てられたパブリック IPv4 アドレスのコロンと 16 進数の表示方式 (w.x.y.z) に対応する NLA ID です。6to4 ノードのフル アドレスは 2002:WWXX:YYZZ:[SLA ID]:[Interface ID] です。

IPv6 イントラネット内では、ローカルの IPv6 ルーターはプレフィックスの 2002:WWXX:YYZZ:[SLA ID]::/64 を通知するので、ホストは自動構成された 6to4 アドレスを作成できます。IPv6 イントラネット内の 64 ビットのプレフィックスは、個別のサブネット上の 6to4 ホスト間のトラフィックを実現します。さらに、2002::/16 経路は IPv6 トラフィックを他のイントラネット外の 6to4 ホストにトンネルするために使われます。サイトに属さないすべての 6to4 トラフィックは、ルーティング インフラストラクチャによって、IPv6 イントラネットの境界上の 6to4 ルーターに転送されます。

6to4 ルーターが受け取る他のサイトへの 6to4 トラフィックは、IPv4 ヘッダーによってカプセル化されて、送信先 IPv4 アドレスに送られます。送信先の IPv4 アドレスは送信先の IPv6 アドレスの一部である NLA ID に埋め込まれたパブリック IPv4 アドレスに対応しています。

6to4 トラフィックが IPv4 の送信先 (6to4 ルーター) に受信された後で、IPv4 のパケットはカプセル化が解除されて、送信先の IPv6 イントラネットのルーティング インフラストラクチャによって、該当するノードに転送されます。

RFC 3056 は以下の用語を定義します (詳細は「Windows XP の 6to4 サポート」セクションの説明を参照してください)。

  • 6to4 ホスト

    少なくとも 1 つ以上の 6to4 アドレスで構成される IPv6 ホスト。

  • 6to4 ルーター

    6to4 でアドレス指定された単一サイト内の 6to4 ホスト間のトラフィックを転送する IPv4/IPv6 ルーター、およびそれ以外のインターネットなどの IPv4 インターネットワーク上の 6to4 ルーター (または 6to4 リレー ルーター)。

  • 6to4 リレー ルーター

    6to4 ルーターと 6bone として知られるネイティブ IPv6 テスト ベッド上のホストとの間で 6to4 でアドレス指定されたトラフィックを転送する IPv4/IPv6 ルーター。

6to4 ホスト、6to4 サイト内の IPv6 ルーティング インフラストラクチャ、サイト境界上の 6to4 ルーターおよび 6to4 リレー ルーターを使う場合、以下のタイプの通信が行われます。

  • 6to4 ホストは同一サイト内の他の 6to4 ホストと通信できます。

    この通信タイプは IPv6 ルーティング インフラストラクチャを通じて利用可能で、サイト内のすべてのホストへの接続を提供します。

  • 6to4 ホストは他のサイトの 6to4 ホストにも IPv4 インターネット経由で通信できます。

    このような通信方法は 6to4 ホストが他のサイトの 6to4 ホストからローカル サイトの 6to4 ルーターへの IPv6 トラフィックを転送する場合に起こります。ローカル サイトの 6to4 ルーターは IPv6 トラフィックを IPv4 ヘッダーでカプセル化して、インターネット上の送信先サイトの 6to4 ルーターに送ります。送信先サイトの 6to4 ルーターは IPv4 ヘッダーを削除して、IPv6 パケットを適切な 6to4 ホストに転送します。

  • 6to4 ホストは 6bone 上のホストと通信できます。

    このタイプの通信は 6to4 ホストが 6bone ホストからローカル サイトの 6to4 ルーターへの IPv6 トラフィックを転送する場合に起こります。ローカル サイトの 6to4 ルーターは IPv6 トラフィックを IPv4 ヘッダーにカプセル化して、IPv4 インターネットと 6bone の両方に接続する 6to4 リレー ルーターに送信します。6to4 リレー ルーターは IPv4 ヘッダーを削除して、IPv6 パケットを適切な 6bone ホストに転送します。

これまで述べた通信タイプはすべて、6bone への直接接続や ISP からの IPv6 のグローバル アドレス プレフィックスの取得を必要とせずに、IPv6 トラフィックを使用します。

Windows XP の 6to4 サポート

6to4 ホストとルーターのサポートは Windows XP の IPv6 プロトコルに含まれる 6to4 サービスで提供されます。6to4 サービスの機能は以下の通りです。

  • コンピュータに割り当てられるすべてのパブリック IPv4 アドレスのための 6to4 トンネリング インターフェイスの 6to4 アドレスを自動的に構成します。

  • 6to4 トンネリング インターフェイス経由のすべての 6to4 トラフィックを転送する 2002::/16 経路を自動的に作成します。このホストによって 6to4 送信先に転送されるすべてのトラフィックは、IPv4 ヘッダーでカプセル化されます。

  • DNS (Domain Name System) クエリを自動的に実行して、インターネット上の 6to4 リレー ルーターの IPv4 アドレスを取得します。

Windows XP の IPv6 プロトコルを実行し、IPv4 パブリック アドレスで構成されているホストは、すべて 6to4 ホストとして自動的に構成されます。6to4 ホストは個別のトンネリングを実行して、インターネット上の 6to4 ホスト、他のサイトの 6to4 ホストまたは 6bone 上のホストに到達できます。

さらに、ICS (Internet Connection Sharing) がパブリック IPv4 アドレスを割り当てられたインターフェイス上で有効にされると、6to4 サービスは以下の機能を実行します。

  • プライベート インターフェイス上での IPv6 転送を可能にします。

  • 6to4 アドレス プレフィックスを含むルーター アドバタイズメント メッセージを、パブリック インターフェイスの IPv4 アドレスに従って送信します。6to4 アドレス プレフィックス内の SLA ID がアドバタイズメントの送信先のインターフェイスのインターフェイス インデックスに設定されます。

ICS を有効にすることで、Windows XP の IPv6 プロトコルを実行するコンピュータを 6to4 ルーターとして使用でき、6to4 トラフィックをカプセル化して、他の 6to4 ホストやインターネット サイトに転送できます。さらに、6bone トラフィックをインターネット上の 6to4 リレー ルーターに転送できます。

各サイトはパブリック インターフェイス上の ICS を有効にした Windows XP を実行するコンピュータを使用して、6to4 ルーターを作成します。Windows XP をプライベート ネットワーク セグメント上で実行するホスト コンピュータはそのサイトの 6to4 ルーターから送信されて、6to4 アドレス プレフィックスを含むルーター アドバタイズメント メッセージを受信します。その結果、異なるサイトの 2 つの 6to4 ホストはインターネット上の 6to4 アドレスを使用して、通信可能になります。

6to4 サービスを使用した場合の結果を、下の図に示します。

6to4 サービスを使用した場合の結果

6to4 サービスを使用すると、Windows XP を実行するコンピュータはインターネット経由で他のサイトにある 6to4 ホスト (6to4 ホスト A および 6to4 ホスト B)、インターネットに直接接続された 6to4 ホスト (6to4 C) および 6bone 上のホストと交信できます。

メモ ICS も 6to4 サービスも転送される IPv6 パケットのネットワーク アドレス変換は実行しません。ICS は IPv4 パケットのみアドレス変換を実行します。6to4 サービスは ICS 構成を使用して、パブリック IPv4 アドレスとパブリックインターフェイスを判別します。

ISATAP

ISATAP はアドレス割り当て手法で、インターネット標準として、"Intra-Site Automatic Tunnel Addressing Protocol (ISATAP)" というタイトルのページ (draft-ietf-ngtrans-isatap-0x.txt) で説明されています。ISATAP ホストは手動構成を不要として、ISATAP アドレスを標準アドレス自動構成メカニズムによって作成します。

ISATAP を使うと、IPv4 ネットワーク上の IPv6 ノードと IPv4 ノード間の通信を実現できます。ISATAP アドレスはローカルで管理されるインターフェイス識別子、::0:5EFE:w.x.y.z を使用します。この識別子の説明は以下の通りです。

  • 0:5EFE の部分は、IANA (Internet Assigned Numbers Authority) (00-00-5E) に割り当てられた OUI (Organizational Unit Identifier) と組み込まれた IPv4 アドレス (FE) を示すタイプから形成されています。

  • w.x.y.z の部分はユニキャスト IPv4 アドレスになり、パブリックとプライベート両方のアドレスを含みます。

ISATAP インターフェイス識別子は、IPv6 ユニキャスト アドレスのための 64 ビット プレフィックス (6to4 プレフィックスを含む) と組み合わせることができます。

Windows XP の ISATAP サポート

既定では、Windows XP の IPv6 プロトコルはノードに割り当てられる各 IPv4 アドレスの Automatic Tunneling Pseudo-Interface (自動トンネリング擬似インターフェイス) 上で FE80::5EFE:w.x.y.z の ISATAP アドレスを自動的に構成します。この ISATAP アドレスは、FE80::/64 のローカル プレフィックスに従って、IPv4 ネットワーク経由で 2 つのホストが、互いのリンクであるローカル ISATAP アドレスを使って通信できるようにします。

ローカル ISATAP アドレスのリンクの使用は、IPv4 イントラネット上の IPv6/IPv4 ホスト間の交信を可能にします。ただしサイト外の IPv6 ホストとは通信できません。サイト外の IPv6 ホストと交信するには、以下の追加構成が必要になります。

  • ホストは、ルーターがグローバル アドレス プレフィックスを含むサイト ボーダー ルーターの場合などには、ルーター アドバタイズメントを受け取る必要があります。

  • ホストはサイト ボーダー ルーターのイントラネット インターフェイスに対応する ISATAP アドレスを示す既定の経路を持つ必要があります。

サイト ボーダー ルーターはイントラネットとインターネットまたは 6bone との間のルーターです。一般的にはサイト ボーダー ルーターはインターネットに接続している 6to4 ルーターです。サイト ボーダー ルーターからルーター アドバタイズメントを受信した後は、グローバル プレフィックスに基づく追加 ISATAP アドレスが自動的に構成されます。

たとえば、サイトが 6bone に接続されて、ホスト (IPv4 アドレス 10.40.1.29 として構成) が 3000::/64 というグローバル プレフィックスをルーター アドバタイズメントで受信する場合、3000::5EFE:10.40.1.29 という ISATAP アドレスが自動的に構成されます。グローバル アドレス プレフィックスと 6bone 接続がない場合、サイトは 6to4 ベースのグローバル アドレス プレフィックスを使用し、IPv4 インターネット経由での他の 6to4 サイト、6to4 ホストおよび 6bone に接続します。サイトが 2002:836B:1:5::/64 という 6to4 アドレス プレフィックス (131.107.0.1 というパブリック アドレスと、SLA ID が 5 の場合) を使っているとき、2002:836B:1:5:0:5EFE:10.40.1.29 という ISATAP アドレスが自動的に構成されます。

次の図では、2 つの ISATAP ホストが、192.168.0.0/16 というプライベート空間を内部で使用してインターネット経由で通信する場合を示しています。2 つのホストは同一の IPv4 アドレスを個別のサイトで使用して、インターフェイス ID から同一の ISATAP を設定して、持つ場合もあります。 ただし、これらのホストは一意な IPv4 パブリック アドレスによる一意なサブネット ID に従ってグローバルで一意な IPv6 アドレスを持ちます。

2 つの ISATAP ホストが、192.168.0.0/16 というプライベート空間を内部で使用してインターネット経由で通信する場合

ISATAP ホスト A が IPv6 パケットを ISATAP ホスト B に送る場合、送信元アドレスは 2002:9D36:1:5:0:5EFE:192.168.12.9 になり、送信先アドレスは 2002:836B:1:5:0:5EFE:192.168.41.30 になります。ISATAP ホスト A から ISATAP ホスト B へのパケット送信の最初の段階では、ISATAP ホスト A は IPv6 パケットを IPv4 ヘッダーでカプセル化して、192.168.12.9 から 192.168.204.1 宛てとします (6to4 ルーター A のプライベート インターフェイスの IPv4 アドレス)。次の段階では、6to4 ルーター A は最初の段階で作成した IPv4 ヘッダーを削除して、157.54.0.1 (6to4 ルーター A のパブリック インターフェイス) から 131.107.0.1 (6to4 ルーター B のパブリック インターフェイス) 宛ての新規の IPv4 ヘッダーを追加します。最後の段階では、6to4 ルーター B は 2 番目の IPv4 ヘッダーを削除して、192.168.39.1 (6to4 ルーター B のプライベート インターフェイス) から 192.168.41.30 (ISATAP ホスト B) 宛ての新規の IPv4 ヘッダーを追加します。

まとめ

6to4 と ISATAP の移行テクノロジを使うと、IPv6 と IPv4 ノードは IPv4 にカプセル化された IPv6 トラフィックを通じて、プライベートの IPv4 イントラネットとインターネットを経由して交信可能になります。6to4 および ISATAP が同時に使われると、6to4 はアドレスの最初の 64 ビット (サブネット プレフィックス) を提供し、ISATAP はアドレスの最後の 64 ビット (インターフェイス ID) を提供します。

6to4 と ISATAP を使って IPv6 を試用できます。稼動中のインターネットおよびイントラネットを IPv6 転送に変更されるのを待たずに、IPv4 と IPv6 の両方でアプリケーションの修正と運用を試すことができます。

Microsoft による IPv6 サポートの詳細については、以下のリソースを参照してください。

The Cable Guy の全コラムの一覧と概要をご覧になるには、ここをクリックしてください。