印刷用ページ       送信     
クリックして評価とフィードバックをお寄せください
TechNet
TechNet ライブラリ
テクニカルドキュメント
Windows
Windows XP
運用
 Teredo の概要
Microsoft IPv6 - Teredo の概要
公開日: 2003年1月1日 | 最終更新日: 2005年10月20日

概要

Teredo は、IPv6 ホストや IPv4 ホストが 1 つまたは複数の IPv4 ネットワーク アドレス変換器 (NAT) の内側に配置されている場合に、ユニキャスト IPv6 トラフィックに対してアドレスの割り当てとホスト間の自動トンネリングを行う IPv6 移行テクノロジです。IPv4 NAT を通過するためには、IPv6 パケットを IPv4 ベースのユーザー データグラム プロトコル (UDP) メッセージとして送信します。この資料では、Teredo アドレスやパケット構造など、Teredo の概要について説明します。また、IPv4 インターネット、IPv6 インターネット、Teredo サーバー、および Teredo リレーを使用して、Teredo クライアント、Teredo ホスト固有のリレー、および IPv6 限定ホスト間で通信を開始する方法について詳しく説明します。この資料には英語のページへのリンクも含まれています。

謝辞

Joseph Davies, Technical Writer, Microsoft Corporation

Christian Huitema, Architect, Microsoft Corporation

Stewart Tansley, Program Manager, Microsoft Corporation

Mohit Talwar, Software Development Engineer, Microsoft Corporation

Dave Thaler, Software Development Lead, Microsoft Corporation

Michael Surkan, Program Manager, Microsoft Corporation

トピック

はじめに
ネットワーク アドレス変換器 (NAT) の概要
Teredo コンポーネント
Teredo アドレス
Teredo パケット形式
Teredo ルーティング
Teredo プロセス
Windows XP Service Pack 2 の Teredo の使用
まとめ
関連リンク

はじめに

Teredo は、IPv4 インターネット経由でユニキャスト IPv6 接続を行うアドレスの割り当てと自動トンネリング テクノロジです。6to4 は、IPv4 インターネット経由でユニキャスト IPv6 接続を行う別の自動トンネリング テクノロジです。ただし、サイトのエッジに 6to4 ルーターが存在するときは 6to4 が適しています。6to4 ルーターは、パブリック IPv4 アドレスを使用して 6to4 プレフィックスを作成し、IPv6 アドバタイズおよび転送ルーターとして機能します。6to4 ルーターでは、サイト ノードに送信される IPv6 トラフィックやサイト ノードから送信される IPv6 トラフィックのカプセル化およびカプセル化解除が行われます。

6to4 は、パブリック IPv4 アドレスの構成とエッジ デバイスへの 6to4 ルーティング機能の実装に依存します。多くの小規模オフィス/ホーム オフィス (SOHO) 構成では、インターネット接続に IPv4 ネットワーク アドレス変換器 (NAT) を使用します。ネットワーク アドレス変換の機能方法の詳細については、この資料の「ネットワーク アドレス変換器 (NAT) の概要」を参照してください。ほとんどの NAT 構成では、NAT 機能を提供するデバイスが 6to4 ルーターとして機能できません。6to4 がインターネット エッジ デバイスで共通にサポートされている場合でも、複数のレベルの NAT を含むいくつかのインターネット接続構成があります。6to4 対応のエッジ デバイスにパブリック IPv4 アドレスが割り当てられていない場合は、そのデバイスで 6to4 を使用できません。

Teredo では、IPv6 パケットをサイト内のホスト間でトンネリングすることによって、現行のインターネット エッジ デバイスやマルチレイヤ NAT 構成に 6to4 機能が欠落している問題を解決します。これに対し、6to4 ではエッジ デバイス間で IPv6 パケットをトンネリングします。ホストからのトンネリングも NAT にとって問題となります。つまり、IPv4 でカプセル化された IPv6 パケットでは、IPv4 ヘッダーの Protocol フィールドが 41 に設定されます。ほとんどの NAT では TCP トラフィックまたは UDP トラフィックのみを変換するため、それ以外のプロトコルのトラフィックを変換するように手動で構成するか、そうした変換を処理する NAT エディタをインストールする必要があります。Protocol 41 の変換は NAT の一般的な機能ではないので、IPv4 でカプセル化された IPv6 トラフィックは通常の NAT を通過できません。そのため、Teredo では、IPv6 トラフィックが 1 つまたは複数の NAT を通過できるようにするために、IPv6 パケットを IPv4 と UDP ヘッダーの両方を含む IPv4 UDP メッセージとしてカプセル化します。UDP メッセージは一様に NAT で変換できるので、NAT の複数の層を通過できます。

まとめると、Teredo は、1 つ以上の IPv4 NAT にまたがって存在するホスト間で自動 IPv6 トンネリングを可能にする IPv6 移行テクノロジであると言えます。Teredo ホストからの IPv6 トラフィックは IPv4 UDP メッセージとして送信されるので、NAT 間を通過できます。NAT で UDP ポート変換がサポートされる場合は、Teredo もサポートされます。ただし、対称型 NAT の場合は例外です。対称型 NAT については、この資料の「NAT の種類」で説明します。

Teredo は、最終的な手段として使用することを想定した IPv6 接続用の変換テクノロジです。ネイティブ IPv6、6to4、または Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) 接続が存在する場合、ホストは Teredo クライアントとして機能しません。さらに多くの IPv4 エッジ デバイスが 6to4 をサポートするようにアップグレードされ、IPv6 接続が普及すると、Teredo を使用する接続はしだいに少なくなり、最終的に Teredo はまったく使用されなくなります。

Teredo を使用するメリット

Teredo は、IPv6 トラフィックの NAT Traversal テクノロジです。Teredo を使用してトンネリングされた IPv6 トラフィックは 1 つまたは複数の NAT を通過でき、Teredo クライアントから IPv6 インターネット上のホストへのアクセス (Teredo リレー経由) が可能になります。IPv4 インターネットに接続される他の Teredo クライアントに接続できると、NAT 経由の通信で問題が発生するアプリケーション間で通信できます。Teredo を使用すると、IPv6 対応のアプリケーションで、IPv4 限定のアプリケーションの場合よりも頻繁かつ正常に IPv4 インターネット経由で通信できます。

一部の種類の IPv4 限定サーバー アプリケーションまたはピア アプリケーションは、NAT の内側に存在するコンピュータで実行すると問題が発生します。詳細については、「ネットワーク アドレス変換 (NAT) の使用に関する問題」を参照してください。このような種類のアプリケーションでは、(プライベート ネットワーク上のサーバーまたはピア コンピュータへの要請していない着信トラフィックを許可するように) NAT を手動で構成する必要があるか、NAT Traversal に対する独自のソリューションがアプリケーションに備わっている必要があります。

アプリケーションが IPv6 対応の場合は、Teredo を使用できます。NAT を構成したり、アプリケーションを変更して独自の NAT Traversal が実行されるようにする必要はありません。そのため、アプリケーション ベンダは、カスタム NAT Traversal ソリューション用にアプリケーションを変更する作業に時間を費やすのではなく、IPv6 に対応するようにアプリケーションを更新する必要があります。既にアプリケーションが IPv6 対応の場合は、Windows 用 NAT Traversal ソリューションである Teredo を使用できます。

Microsoft Windows での Teredo のサポート

次の表では、Teredo クライアントとホスト固有のリレーが備わっている Microsoft Windows のバージョンと、IPv6 や Teredo が既定で有効かどうかを一覧します。

Windows のバージョン

IPv6 が既定で有効かどうか

Teredo が既定で有効かどうか

Advanced Networking Pack for Windows XP を備えた Windows XP Service Pack 1 (SP1)

無効

無効

Windows XP Service Pack 2 (SP2)

無効

無効

Windows Server 2003 Service Pack 1

無効

無効

Windows Vista (現在、ベータ テスト段階)

有効

有効

Windows Server "Longhorn" (現在、ベータ テスト段階)

有効

有効

Windows へのすべての Teredo 実装は、「Teredo: Tunneling IPv6 over UDP through NATs」というタイトルのインターネット ドラフト (draft-huitema-v6ops-teredo-0x.txt) に基づいています。

Windows XP Service Pack 2 または Windows Server 2003 Service Pack 1 の Teredo 機能を使用するには、この資料の「Windows XP Service Pack 2 の Teredo の使用」を参照してください。

Windows Vista および Windows Server "Longhorn" の Teredo への変更については、「Windows Vista および Windows Server "Longhorn" の IPv6 への変更」を参照してください。

: この資料では、IPv6 と IPv6 移行テクノロジについての知識があることを前提としています。詳細については、「IPv6 概説」と「IPv6 Transition Technologies」(英語) を参照してください。

Teredo と要請していない着信 IPv6 トラフィックからの保護

IPv6 と Teredo を使用する」 で説明しているように、Teredo でトンネリングされた IPv6 トラフィックは、通常の NAT の IPv4 パケット フィルタ処理機能の影響を受けにくくなります。このため、Teredo が NAT を迂回し、プライベート ネットワーク上の悪意があるかもしれない IPv6 トラフィックを許可しているように思えるかもしれませんが、次のことを考えてみてください。

  • Teredo により、NAT の動作が変更されることはありません。Teredo クライアントでは、独自の Teredo トラフィックの動的な NAT 変換テーブル エントリが作成されます。NAT から、一致する NAT 変換テーブル エントリを作成したホストに着信 Teredo トラフィックが転送されます。NAT により、Teredo クライアントではないプライベート ネットワーク上のコンピュータに Teredo トラフィックが転送されることはありません。

  • Windows ファイアウォールなど、IPv6 トラフィックをサポートするホスト ベースのステートフルなファイアウォールを使用する Teredo クライアントは、要請していない不要な着信 IPv6 トラフィックから保護されます。Windows XP SP2、Windows Vista、および Windows Server "Longhorn" では、Windows ファイアウォールが既定で有効になっています。

IPv6、Teredo、およびホスト ベースのステートフルな IPv6 ファイアウォールを組み合わせて使用しても、IPv4 ベースのトラフィックに対する NAT のパケット フィルタ処理機能に影響しません。また、Windows ベースのコンピュータが、悪意のあるユーザーや、IPv4 トラフィックではなく IPv6 トラフィックを使用するプログラムからの攻撃の影響をより受けやすくなることはありません。

ネットワーク アドレス変換器 (NAT) の概要

ネットワーク アドレス変換器 (NAT) は、RFC 1631 で定義されている IPv4 ルーターで、パケットの転送時にそのパケットの IP アドレスや TCP/UDP ポート番号を変換します。たとえば、インターネットに接続されている複数のコンピュータが存在する小規模企業のネットワークについて考えてみましょう。通常、このような企業では、ネットワーク上の各コンピュータのパブリック IP アドレスをインターネット サービス プロバイダ (ISP) から取得する必要があります。ただし、NAT を使用すると、企業でプライベート アドレス指定 (RFC 1918 参照) を使用し、プライベート アドレスを 1 つまたは複数のパブリック IP アドレスに対応付ける NAT マップを保持できます。

次の要件が複数当てはまる場合は、NAT が一般的なソリューションになります。

  • インターネットへの接続に、複数のコンピュータ接続ではなく、1 つの接続を使用します。

  • プライベート アドレス指定を使用します。

  • プロキシ サーバーを展開しないでインターネット リソースにアクセスします。

ネットワーク アドレス変換のしくみ

小規模企業のイントラネットに接続しているプライベート ユーザーからインターネット リソースに接続すると、ユーザーの TCP/IP プロトコルにより、IP ヘッダーと TCP ヘッダーまたは UDP ヘッダーに次の値が設定された IP パケットが作成されます (太字は、NAT の影響を受けるフィールドを示します)。

  • 送信先 IP アドレス : インターネット リソース IP アドレス

  • 送信元 IP アドレス : プライベート IP アドレス

  • 送信先ポート : インターネット リソース TCP ポートまたは UDP ポート

  • 送信元ポート : 送信元アプリケーション TCP ポートまたは UDP ポート

送信元ホストまたは別のルーターによりこの IP パケットが NAT に転送され、NAT で発信パケットのアドレスが次のように変換されます。

  • 送信先 IP アドレス : インターネット リソース IP アドレス

  • 送信元 IP アドレス : ISP によって割り当てられたパブリック アドレス

  • 送信先ポート : インターネット リソース TCP ポートまたは UDP ポート

  • 送信元ポート : マップが変更された送信元アプリケーション TCP ポートまたは UDP ポート

NAT により、マップが変更された IP パケットがインターネット経由で送信されます。応答するコンピュータから NAT に応答が返されます。応答が NAT で受け取られるときは、パケットに次のアドレス指定情報が含まれています。

  • 送信先 IP アドレス : ISP によって割り当てられたパブリック アドレス

  • 送信元 IP アドレス : インターネット リソース IP アドレス

  • 送信先ポート : マップが変更された送信元アプリケーション TCP ポートまたは UDP ポート

  • 送信元ポート : インターネット リソース TCP ポートまたは UDP ポート

NAT でアドレスがマップおよび変換され、イントラネット クライアントにパケットが転送されるときは、パケットに次のアドレス指定情報が含まれています。

  • 送信先 IP アドレス : プライベート IP アドレス

  • 送信元 IP アドレス : インターネット リソース IP アドレス

  • 送信先ポート : 送信元アプリケーション TCP ポートまたは UDP ポート

  • 送信元ポート : インターネット リソース TCP ポートまたは UDP ポート

発信パケットの場合、送信元 IP アドレスと TCP または UDP ポート番号が、送信元パブリック IP アドレスと変更された可能性がある TCP または UDP ポート番号にマップされます。着信パケットの場合は、送信先 IP アドレスと TCP または UDP ポート番号が、プライベート IP アドレスと元の TCP または UDP ポート番号にマップされます。

たとえば、小規模企業で、イントラネット用に 192.168.0.0/24 のプライベート ネットワーク ID を使用していて、131.107.0.1 という 1 つのパブリック IP アドレスが ISP によって割り当てられているとします。小規模企業のイントラネットに 192.168.0.99 というプライベート アドレスのユーザーから、IP アドレス 157.60.0.1 の Web サーバーに接続すると、ユーザーの TCP/IP プロトコルにより、IP ヘッダーと TCP ヘッダーまたは UDP ヘッダーに次の値が設定された IP パケットが作成されます。

  • 送信先 IP アドレス : 157.60.0.1

  • 送信元 IP アドレス : 192.168.0.99

  • 送信先ポート : 80

  • 送信元ポート : 1025

送信元ホストによりこの IP パケットが NAT デバイスに転送され、NAT デバイスで発信パケットのアドレスが次のように変換されます。

  • 送信先 IP アドレス : 157.60.0.1

  • 送信元 IP アドレス : 131.107.0.1

  • 送信先ポート : 80

  • 送信元ポート : 5000

NAT により、マップが変更された IP パケットがインターネット経由で送信されます。Web サーバーから NAT に応答が返されます。応答が NAT で受け取られるとき、パケットには次のアドレス指定情報が含まれます。

  • 送信先 IP アドレス : 131.107.0.1

  • 送信元 IP アドレス : 157.50.0.1

  • 送信先ポート : 5000

  • 送信元ポート : 80

NAT でアドレスがマップおよび変換され、イントラネット クライアントにパケットが転送されるときは、パケットに次のアドレス指定情報が含まれています。

  • 送信先 IP アドレス : 192.168.0.99

  • 送信元 IP アドレス : 157.60.0.1

  • 送信先ポート : 1025

  • 送信元ポート : 80

図 1 にこの例の構成を示します。

Bb457011.tered01(ja-jp,TechNet.10).gif

図 1: NAT の例

プライベート トラフィックからパブリック トラフィックへのマッピングは、NAT 変換テーブルに保存されます。NAT 変換テーブルは、次の 2 種類のエントリを含むことができます。

  1. 動的マッピング

    プライベート ネットワーク クライアントで通信が開始されるときに作成されます。動的マッピングは、NAT 変換テーブル エントリに対応するトラフィックによって更新されない限り、指定した時間の経過後に NAT 変換テーブルから削除されます。

  2. 静的マッピング

    インターネット クライアントによって開始された通信を、特定のプライベート ネットワーク アドレスやポートにマップできるように、手動で構成されます。インターネットに接続されているコンピュータで使用できるようにする、プライベート ネットワーク上のサーバー (たとえば、Web サーバー) またはアプリケーション (たとえば、ゲーム) がある場合は、静的マッピングが必要です。静的マッピングは NAT 変換テーブルから削除されません。

NAT 変換テーブルにマッピングが存在する場合、NAT ではインターネットからプライベート ネットワークにのみトラフィックを転送します。このように、NAT により、プライベート ネットワーク上のコンピュータに単純かつステートフルなパケット フィルタ処理機能が提供されます。

NAT の種類

次の種類の NAT が定義されています。

  • cone NAT

    NAT 変換テーブル エントリに内部アドレスとポート番号、外部アドレスとポート番号との間のマッピングが保存される NAT。NAT 変換テーブル エントリが作成されると、任意の送信元アドレスとポート番号から外部アドレスとポート番号への着信トラフィックが許可され、変換されます。

  • 制限付き NAT

    NAT 変換テーブル エントリに、特定の送信元アドレスまたは特定の送信元アドレスとポート番号のいずれかに対応する、内部アドレスとポート番号と、外部アドレスとポート番号との間のマッピングが保存される NAT。外部送信先アドレスとポート番号の NAT 変換テーブル エントリと一致する不明な外部アドレスとポート番号からの着信パケットは、警告なしに破棄されます。

  • 対称型 NAT

    外部送信先アドレスに基づいて、同じ内部アドレスとポート番号を異なる外部アドレスとポート番号にマップする NAT (発信トラフィックの場合)。

    Teredo は cone NAT と制限付き NAT で適切に機能します。Windows XP SP2、Advanced Networking Pack for Windows XP を備えた Windows XP SP1、および Windows Server 2003 Service Pack 1 の Teredo は、対称型 NAT で機能しません。1 つの Teredo クライアントだけが 1 つ以上の対称型 NAT の内側に配置されている場合、Windows Vista および Windows Server "Longhorn" の Teredo は、複数の Teredo クライアント間で機能します。

Teredo コンポーネント

Teredo インフラストラクチャは、次のコンポーネントで構成されます (図 2 参照)。

  • Teredo クライアント

  • Teredo サーバー

  • Teredo リレー

  • Teredo ホスト固有のリレー

    Bb457011.tered02(ja-jp,TechNet.10).gif

    図 2: Teredo インフラストラクチャのコンポーネント

Teredo クライアント

Teredo クライアントは、パケットを (Teredo リレー経由で) 他の Teredo クライアントまたは IPv6 インターネット上のノードにトンネリングする Teredo トンネリング インターフェイスをサポートする IPv6 または IPv4 ノードです。Teredo クライアントは、Teredo サーバーと通信して Teredo ベースの IPv6 アドレスの構成元となるアドレス プレフィックスを取得したり、他の Teredo クライアントまたは IPv6 インターネット上のホストとの通信を開始するのに役立ちます。

Windows XP SP2、Advanced Networking Pack for Windows XP を備えた Windows XP SP1、Windows Server 2003 Service Pack 1、Windows Vista、および Windows Server "Longhorn" には、Teredo クライアントが含まれます。

Teredo サーバー

Teredo サーバーは、IPv4 インターネットと IPv6 インターネットの両方に接続され、パケットの受信時に経由する Teredo トンネリング インターフェイスをサポートする IPv6 または IPv4 ノードです。Teredo サーバーの一般的な役割は、Teredo クライアントのアドレス構成を支援すること、および Teredo クライアントと他の Teredo クライアント間、または Teredo クライアントと IPv6 限定ホスト間の初期通信を容易にすることです。Teredo サーバーでは、Teredo トラフィックを UDP ポート 3544 でリッスンします。

初期通信を容易にする際の Teredo サーバーの役割の詳細については、この資料の「Teredo プロセス」を参照してください。

Windows XP SP2、Advanced Networking Pack for Windows XP を備えた Windows XP SP1、Windows Server 2003 Service Pack 1、Windows Vista、および Windows Server "Longhorn" には、Teredo サーバーの機能が含まれません。Microsoft では、Windows ベースの Teredo クライアント コンピュータ間の通信を容易にするために、IPv4 インターネット上に Teredo サーバーを展開しました。また、Microsoft Beta Web サイトで、Windows Server 2003 を実行するコンピュータ用の Teredo サーバー機能を含む Teredo Server Relay Technology Preview をリリースしました。

Teredo リレー

Teredo リレーは、(Teredo トンネリング インターフェイスを使用する) IPv4 インターネット上の Teredo クライアントと IPv6 限定ホスト間でパケットを転送する IPv6 または IPv4 ルーターです。場合によっては、Teredo リレーが Teredo サーバーと相互作用して、Teredo クライアントと IPv6 限定ホスト間の初期通信を容易にするのに役立つことがあります。Teredo リレーでは、Teredo トラフィックを UDP ポート 3544 でリッスンします。

Teredo クライアントと IPv6 限定ホスト間の初期通信や現行の通信を容易にするときの Teredo リレーの役割の詳細については、この資料の「Teredo プロセス」を参照してください。

Windows XP SP2、Advanced Networking Pack for Windows XP を備えた Windows XP SP1、Windows Server 2003 Service Pack 1、Windows Vista、および Windows Server "Longhorn" には、Teredo リレー機能が含まれません。また、Teredo リレーは IPv4 インターネット上に展開しない予定です。インターネット サービス プロバイダ (ISP) は、それぞれ独自の Teredo リレーを展開できます。IPv6 インターネット上の IPv6 限定ホストにトラフィックを送信するとき、Windows ベースの Teredo クライアントは Teredo リレーと連携します。Teredo リレーは Teredo ホスト固有のリレーと通信する必要はありません。Microsoft では、Microsoft Beta Web サイトで、Windows Server 2003 を実行するコンピュータ用の Teredo リレー機能を含む Teredo Server Relay Technology Preview をリリースしました。

Teredo ホスト固有のリレー

グローバル アドレスを使用して構成されている Teredo クライアントと IPv6 ホスト間の通信は、Teredo リレー経由で行われる必要があります。これは、IPv6 インターネットに接続されている IPv6 限定ホストの要件です。ただし、IPv6 ホストが IPv6 と IPv4 の両方に対応し、IPv4 インターネットと IPv6 インターネットの両方に接続されている場合は、IPv6 インターネットを通過して Teredo リレーを経由するのではなく、IPv4 インターネット経由で Teredo クライアントと IPv6 ホスト間で通信が行われる必要があります。

Teredo ホスト固有のリレーは、IPv4 インターネットと IPv6 インターネットの両方に対するインターフェイスと接続を保持し、中間の Teredo リレーなしで直接 Teredo クライアントと IPv4 インターネット経由で通信できる IPv6 や IPv4 ノードです。IPv4 インターネットへの接続には、パブリック IPv4 アドレスまたはプライベート IPv4 アドレスと近くの NAT を使用できます。IPv6 インターネットへの接続には、IPv6 インターネットへの直接接続、または IPv6 パケットが IPv4 インターネット経由でトンネリングされる 6to4 などの IPv6 移行テクノロジを使用できます。Teredo ホスト固有のリレーでは、Teredo トラフィックを UDP ポート 3544 でリッスンします。

Windows XP SP2、Advanced Networking Pack for Windows XP を備えた Windows XP SP1、Windows Server 2003 Service Pack 1、Windows Vista、および Windows Server "Longhorn" には、Teredo ホスト固有のリレー機能が含まれます。この機能は、コンピュータにグローバル アドレスが割り当てられている場合は自動的に有効になります。グローバル アドレスは、ネイティブ IPv6 ルーター、ISATAP ルーター、または 6to4 ルーターから受信したルーター アドバタイズ メッセージによって割り当てることができます。コンピュータにグローバル アドレスが割り当てられていない場合は、Teredo クライアント機能が有効になります。

アドレスにグローバル プレフィックスを使用する組織内の 6to4 ホスト、6to4 以外のグローバル プレフィックスを持つ IPv6 ホスト、および ISATAP ホストや 6over4 ホストで Teredo をサポートするバージョンの Windows が使用されている場合、Teredo ホスト固有のリレーにより、Teredo クライアントはこれらのいずれかのホストと効率的に通信できます。

Teredo アドレス

図 3 に Teredo アドレスの形式を示します。

Bb457011.tered03(ja-jp,TechNet.10).gif

図 3: Teredo アドレスの形式

Teredo アドレスは次の要素で構成されます。

  • Teredo プレフィックス

    最初の 32 ビットは Teredo プレフィックスであり、すべての Teredo アドレスに共通です。Internet Assigned Numbers Authority (IANA) ではまだこのプレフィックスを定義していませんが、初期展開にはプレフィックス 3FFE:831F::/32 が使用されています。

  • Teredo サーバー IPv4 アドレス

    次の 32 ビットは、この Teredo アドレスの構成を支援する Teredo サーバーの IPv4 パブリック アドレスです。詳細については、この資料の「Teredo クライアントの初期構成」を参照してください。

  • フラグ

    次の 16 ビットは Teredo フラグ用に予約されています。Cone フラグと呼ばれる最上位ビットが唯一の定義済みフラグです。Cone フラグは、インターネットに接続された NAT が cone NAT である場合に設定されます。インターネットに接続された NAT が cone NAT であるかどうかは、Teredo クライアントの初期構成中に判断されます。詳細については、この資料の「Teredo クライアントの初期構成」を参照してください。

  • 隠ぺいされた外部ポート

    次の 16 ビットには、この Teredo クライアントのすべての Teredo トラフィックに対応する隠ぺいされた外部 UDP ポートが格納されます。Teredo クライアントから Teredo サーバーに初期パケットが送信されるとき、そのパケットの送信元 UDP ポートが NAT によって別の外部 UDP ポートにマップされます。Teredo クライアントでは、このポートのマッピングを保持して NAT の変換テーブルに残るようにします。そのため、ホストのすべての Teredo トラフィックで同じマップされた外部 UDP ポートが使用されます。Teredo サーバーでは、Teredo クライアントから送信され、Teredo クライアントに戻される着信初期パケットの送信元 UDP ポートから、この外部 UDP ポートを判断します。

    外部ポートを隠ぺいするには、外部ポートと 0xFFFF の XOR を実行します。たとえば、外部ポート 5000 を隠ぺいすると 16 進数形式で EC77 になります (5000 は 0x1388 となり、0x1388 XOR 0xFFFF は 0xEC77 になります)。外部ポートを隠ぺいすると、NAT では転送中のパケットのペイロード内の外部ポートが変換されなくなります。

  • 隠ぺいされた外部アドレス

    最後の 32 ビットには、この Teredo クライアントのすべての Teredo トラフィックに対応する隠ぺいされた外部 IPv4 アドレスが格納されます。外部ポートと同様に、Teredo クライアントから Teredo サーバーに初期パケットが送信されるとき、そのパケットの送信元 IP ポートが NAT によって別の外部 (パブリック) アドレスにマップされます。Teredo クライアントでは、このアドレスのマッピングを保持して NAT の変換テーブルに残るようにします。そのため、ホストのすべての Teredo トラフィックで同じマップされた外部パブリック IPv4 アドレスが使用されます。Teredo サーバーでは、Teredo クライアントから送信され、Teredo クライアントに戻される着信初期パケットの送信元 IPv4 アドレスから、この外部 IPv4 アドレスを判断します。

    外部アドレスを隠ぺいするには、外部アドレスと 0xFFFFFFFF の XOR を実行します。たとえば、パブリック IPv4 アドレス 131.107.0.1 を隠ぺいすると、コロン区切りの 16 進数形式の 7C94:FFFE になります (131.107.0.1 は 0x836B0001 となり、0x836B0001 XOR 0xFFFFFFFF は 0x7C94FFFE になります)。外部アドレスを隠ぺいすると、NAT では転送中のパケットのペイロード内の外部アドレスが変換されなくなります。

図 4 に、2 台の Teredo クライアントとそのアドレス指定の例を示します。

Bb457011.tered04(ja-jp,TechNet.10).gif

図 4: Teredo のアドレス指定の例

Teredo クライアント A では、Teredo アドレスを作成するために次の値を使用します。

  • 外部アドレスは 157.60.0.1 で、Teredo トラフィックのポートは UDP ポート 4096 です。

  • Teredo サーバーのパブリック IPv4 アドレスは 206.73.118.1 です。

  • cone NAT の内側に配置されていると判断されます。

そのため、Prefix:ServerAddr:Flags:ObscExtPort:ObscExtAddr という Teredo アドレス形式を使用すると、Teredo クライアントの Teredo アドレスは 3FFE:831F:CE49:7601:8000:EFFF:62C3:FFFE となります。これは、次のことに基づきます。

  • CE49:7601 は、206.73.118.1 のコロン区切りの 16 進数形式です。

  • 8000 は Cone フラグが 1 に設定されている Flags フィールドです。1 は Teredo クライアント A の NAT が cone NAT であることを示します。

  • EFFF は、4096 (0x1000) が隠ぺいされた値です。

  • 62C3:FFFE は、157.60.0.1 が隠ぺいされた値です。

Teredo クライアント B では、Teredo アドレスを作成するために次の値を使用します。

  • 外部アドレスは 131.107.0.1 で、Teredo トラフィックのポート は UDP ポート 8192 です。

  • Teredo サーバーのパブリック IPv4 アドレスは 206.73.118.1 です。

  • 制限付き NAT の内側に配置されていると判断されます。

そのため、Prefix:ServerAddr:Flags:ObscExtPort:ObscExtAddr という Teredo アドレス形式を使用すると、Teredo クライアントの Teredo アドレスは 3FFE:831F:CE49:7601:0:DFFF:7C94:FFFE となります。これは、次のことに基づきます。

  • CE49:7601 は、206.73.118.1 のコロン区切りの 16 進数形式です。

  • 0 は Cone フラグが 0 に設定されている Flags フィールドです。0 は Teredo クライアント B の NAT が制限付き NAT であることを示します。

  • DFFF は、8192 (0x2000) が隠ぺいされた値です。

  • 7C94:FFFE は、131.107.0.1 が隠ぺいされた値です。

Teredo アドレスは Teredo クライアントだけに割り当てられます。Teredo サーバー、Teredo リレー、および Teredo ホスト固有のリレーには Teredo アドレスが割り当てられません。

Teredo パケット形式

ここでは、次の内容について説明します。

  • Teredo データ パケット形式

  • Teredo バブル パケット

  • Teredo インジケータ

Teredo データ パケット形式

図 5 に Teredo データ パケットの形式を示します。

Bb457011.tered05(ja-jp,TechNet.10).gif

図 5: Teredo データ パケット形式

Teredo パケットは次の要素で構成されます。

  • IPv4 ヘッダー。自動トンネル エンドポイントに対応する送信元 IPv4 アドレスと送信先 IPv4 アドレスを含み、NAT によって変換できます。

  • UDP ヘッダー。Teredo トラフィックの送信元 UDP ポートと送信先 UDP ポートを含み、NAT によって変換できます。

  • IPv6 ヘッダー。送信元 IPv6 アドレスと送信先 IPv6 アドレスを含み、そのうち少なくとも 1 つは Teredo アドレスです。

  • IPv6 ペイロード。カプセル化された IPv6 パケットの 0 個以上の IPv6 拡張ヘッダーと上位層プロトコル データ ユニット (PDU) を含みます。

Teredo バブル パケット

通常、Teredo バブル パケットは NAT マッピングを作成または管理するために送信され、IPv6 ペイロードがない IPv6 ヘッダーで構成されます。図 6 に Teredo バブル パケットを示します。

Bb457011.tered06(ja-jp,TechNet.10).gif

図 6: Teredo バブル パケット

IPv6 ヘッダーでは、次のヘッダー フィールドが 59 に設定されます。これは、ペイロードがないことを示します。

Teredo インジケータ

Teredo では 2 つの異なるインジケータを使用します。これらのインジケータは、認証またはアドレスとポート情報を含めるために使用されるヘッダーです。

認証インジケータ

認証インジケータは、Teredo クライアントと Teredo サーバー間でのルーター要請メッセージとルーター アドバタイズ メッセージの交換のセキュリティを保護するために使用します。Teredo クライアントと Teredo サーバーはどちらも秘密キーを使用して構成されます。秘密キーは、認証インジケータの認証データを作成する場合に使用します。認証インジケータは UDP ヘッダーと IPv6 パケットの間に追加されます。送信元インジケータと認証インジケータの両方がルーター アドバタイズ メッセージに含まれている場合、認証インジケータは送信元インジケータの前に追加されます。

図 7 に認証インジケータの構造を示します。

Bb457011.tered07(ja-jp,TechNet.10).gif

図 7: 認証インジケータの構造

認証インジケータには次のフィールドが含まれます。

  • インジケータの種類

    この 2 バイト フィールドではインジケータの種類を指定します。認証インジケータの場合、このフィールドは 1 に設定されます。IPv6 パケットの上位 4 ビットは、IPv6 ヘッダーのバージョン フィールドに対応する 0110 (6) に設定されるので、Teredo クライアントと Teredo サーバーでは IPv6 パケットの最初の 2 バイトから、認証インジケータを区別できます。

  • クライアント ID 長

    この 1 バイト フィールドはクライアント ID フィールドの長さを示します。

  • 認証データ長

    この 1 バイト フィールドは認証値フィールドの長さを示します。

  • クライアント ID

    この可変長フィールドには、Teredo クライアントの ID 文字列が含まれます。

  • 認証値

    この可変長フィールドには、共有秘密キーを使用して計算されるこのパケットの認証値が含まれます。認証値の計算方法については、Teredo インターネット ドラフトの 5.2.2 項を参照してください。

  • ナンス

    この 8 バイト フィールドには乱数が含まれます。この乱数は、実際のパケット交換を立証し、パケットの再送攻撃を防止するために使用します。

  • 確認

    この 1 バイト フィールドには、Teredo クライアントで正しい秘密キーが使用されているかどうかを示す値が含まれます。ルーター要請メッセージでは、このフィールドが 0 に設定されます。ルーター アドバタイズ メッセージでは、秘密キーが正しい場合は 0 に、正しくない場合は 0 以外の値に設定されます。

Windows XP SP2、Advanced Networking Pack for Windows XP を備えた Windows XP SP1、Windows Server 2003 Service Pack 1、Windows Vista、および Windows Server "Longhorn" では、ルーター アドバタイズ (RA) メッセージとルーター要請 (RS) メッセージに認証インジケータが依然として含まれますが、Teredo でクライアント ID や認証値は使用されません。クライアント ID または認証値がない場合、認証インジケータの形式は図 8 のようになります。

Bb457011.tered08(ja-jp,TechNet.10).gif

図 8: クライアント ID または認証値がない場合の認証インジケータの構造

送信元インジケータ

送信元インジケータは、Teredo クライアント、Teredo リレー、または Teredo ホスト固有のリレーの IPv4 アドレスと UDP ポート番号を示すために使用します。たとえば、Teredo クライアントの RS メッセージへの応答として Teredo サーバーから RA メッセージが送信されるときに使用します。この場合、送信元インジケータには、Teredo クライアントの Teredo トラフィックに対応する、マップされた IPv4 アドレスと UDP ポート番号が含まれます。詳細については、この資料の「Teredo クライアントの初期構成」を参照してください。

送信元インジケータは、認証インジケータと同様に、UDP ヘッダーと IPv6 パケットの間に追加されます。図 9 に送信元インジケータの構造を示します。

図 9: 送信元インジケータの構造

図 9: 送信元インジケータの構造

送信元インジケータには、次のフィールドが含まれます。

  • インジケータの種類

    この 2 バイト フィールドではインジケータの種類を指定します。送信元インジケータの場合、このフィールドは 0 に設定されます。IPv6 パケットの上位 4 ビットは、IPv6 ヘッダーのバージョン フィールドに対応する 0110 (6) に設定されるので、Teredo クライアントでは IPv6 パケットの最初の 2 バイトから、送信元インジケータを区別できます。

  • 隠ぺいされた送信元ポート番号

    この 2 バイト フィールドには、Teredo クライアント、Teredo リレー、または Teredo ホスト固有のリレーの Teredo トラフィックに対応する隠ぺいされた (0xFFFF と XOR を実行した) 外部ポートが含まれます。元のポート番号を取得できるように、隠ぺいされた送信元ポート番号フィールドの値は 0xFFFF と XOR が実行されます。

  • 隠ぺいされた送信元アドレス

    この 4 バイト フィールドには、Teredo クライアント、Teredo リレー、または Teredo ホスト固有のリレーの Teredo トラフィックに対応する隠ぺいされた (0xFFFFFFFF と XOR を実行した) 外部 IPv4 アドレスが含まれます。元のアドレスを取得できるように、隠ぺいされた送信元アドレス フィールドの値は 0xFFFFFFFF と XOR が実行されます。

図 10 に、Windows Teredo クライアントに実装されているような、送信元インジケータや認証インジケータを含む 3 種類のパケットを示します。

Bb457011.tered10(ja-jp,TechNet.10).gif

図 10: 認証インジケータまたは送信元インジケータを含むパケットの種類

Teredo ルーティング

図 11 に、Teredo ホスト、Teredo ホスト固有のリレー、および IPv6 限定ホスト間での Teredo パケットの伝達を可能にするルートを示します。

Bb457011.tered11(ja-jp,TechNet.10).gif

図 11: Teredo ルート

IPv6 インターネットでは、定義済みの Teredo プレフィックスを使用して、最も近い Teredo リレーにパケットを転送するために、ルーティング インフラストラクチャの Prefix::/32 ルートを使用します。Teredo サーバー、Teredo リレー、および Teredo ホスト固有のリレーは、Prefix::/32 ルートを含みます。Prefix::/32 ルートでは、このプレフィックスを使用するすべてのアドレスをオンリンクと見なし、Teredo トンネリング インターフェイスが使用されると見なします。Teredo トンネリング インターフェイスは、転送されるパケットに対して IPv4 と UDP の自動カプセル化を実行する論理インターフェイスです。Teredo サーバー、Teredo リレー、および Teredo ホスト固有のリレーには、IPv6 インターネットを参照する既定のルート (::/0) もあります。通常、この既定のルートには、IPv6 インターネットに接続されている物理インターフェイスを使用する IPv6 インターネット上の近くのルータの次ホップ IPv6 アドレスが含まれます。

Teredo クライアントのルーティング

Windows XP SP2、Advanced Networking Pack for Windows XP を備えた Windows XP SP1、Windows Server 2003 Service Pack 1、Windows Vista、および Windows Server "Longhorn" の Teredo クライアントは、既定のルート (::/0) を含みます。既定のルートでは、このプレフィックスを使用するすべてのアドレスをオンリンクと見なし、Teredo トンネリング インターフェイスが使用されると見なします。この既定のルートを使用すると、次ホップ アドレスが IPv6 パケットの送信先アドレスに設定され、次ホップ インターフェイスが Teredo トンネリング インターフェイスに設定されます。

Teredo トンネリング インターフェイスからパケットが転送されるとき、次の 3 つの場合が区別されます。

  1. 送信先が同じ IPv4 リンク上にある Teredo クライアント。

  2. 送信先が別のサイトにある Teredo クライアント。

  3. 送信先が IPv6 インターネット上のノード。

オンリンク Teredo 送信先

同じサイト内および同じリンク上にある別の Teredo ホストに送信されるパケットの場合、Teredo トンネリング インターフェイスでは近隣探索のアドレス解決プロセスの代替手段としてバブル パケットの交換を使用します。バブル パケットの交換では、各 Teredo クライアントが相互に直接パケットを送信できるようになります。詳細については、この資料の「同じリンク上にある Teredo クライアント間の初期通信」を参照してください。

送信先 Teredo アドレスが同じリンク上にある Teredo クライアントに対応するかどうかを判断するために、Teredo クライアントのマルチキャスト バブル キャッシュがチェックされます。各 Teredo クライアントから、Teredo サーバーとの通信に使用する IPv4 リンク上のマルチキャスト バブル パケットが送信され、Teredo クライアントがリンク上に存在することが示されます。各 Teredo クライアントでは、他の Teredo クライアントのマルチキャスト バブル パケットを受信し、Teredo アドレスと IPv4 アドレスをマルチキャスト バブル キャッシュに追加します。そのため、送信先 Teredo アドレスがマルチキャスト バブル キャッシュに格納されている場合は、その送信先はオンリンクの近隣ノードです。

サイト間 Teredo 送信先

異なるサイトにある別の Teredo ホストに送信されるパケットの場合、両方の Teredo ホストが制限付きの NAT を経由するときに、Teredo トンネリング インターフェイスで近隣探索のアドレス解決プロセスの代替手段としてバブル パケットを使用します。バブル パケットを交換すると、アドレスとポート固有のマッピングが両方の制限付き NAT に作成されて、2 台の Teredo クライアントが相互に直接パケットを送信できるようになります。詳細については、この資料の「異なるサイトにある Teredo クライアント間の初期通信」を参照してください。

IPv6 インターネット送信先

IPv6 インターネットに送信されるパケットの場合、Teredo トンネリング インターフェイスでは近隣探索のアドレス解決プロセスの代替手段として ICMPv6 エコー要求メッセージとエコー応答メッセージを使用します。ICMPv6 エコー要求メッセージは送信先に送信されます。返される ICMP エコー応答メッセージには、IPv6 インターネット上にある IPv6 ホストに最も近い Teredo リレーの IPv4 アドレスが含まれます。詳細については、この資料の「Teredo クライアントから Teredo ホスト固有のリレーへの初期通信」および「Teredo クライアントから IPv6 限定ホストへの初期通信」を参照してください。

Teredo プロセス

ここでは、次のプロセスを実行するために交換される Teredo パケットのセットについて詳しく説明します。

  • Teredo クライアントの初期構成

  • NAT マッピングの保持

  • 同じリンク上にある Teredo クライアント間の初期通信

  • 異なるサイトにある Teredo クライアント間の初期通信

  • Teredo クライアントから Teredo ホスト固有のリレーへの初期通信

  • Teredo ホスト固有のリレーから Teredo クライアントへの初期通信

  • Teredo クライアントから IPv6 限定ホストへの初期通信

  • IPv6 限定ホストから Teredo クライアントへの初期通信

上記のすべてのプロセスは、Windows XP SP2、Advanced Networking Pack for Windows XP を備えた Windows XP SP1、Windows Server 2003 Service Pack 1、Windows Vista、および Windows Server "Longhorn" の Teredo クライアントでサポートされ、ユーザーによる構成や介入を必要とせずに自動的に実行されます。唯一の例外として Teredo サーバーの IPv4 アドレスの構成がありますが、これは省略可能です。

Teredo クライアントの初期構成

Teredo クライアントの初期構成は、Teredo アドレスを判断し、クライアントが cone NAT、制限付き NAT、または対称型 NAT のいずれの内側に配置されているかを判断するために、一連のルーター要請メッセージを Teredo サーバーに送信することで実現されます。

Bb457011.tered12(ja-jp,TechNet.10).gif

図 12: Teredo クライアントの初期構成

Teredo クライアントの初期構成は、次のプロセスで構成されます。

  1. ルーター要請 (RS) メッセージが、Teredo クライアントから推奨 Teredo サーバー (Teredo サーバー 1) に送信されます。Teredo クライアントにより、Cone フラグが設定されているリンク ローカル アドレスから RS が送信されます。

  2. Teredo サーバー 1 により、ルーター アドバタイズ (RA) メッセージで応答が返されます。RS に Cone フラグが設定されているので、Teredo サーバー 1 により、別の IPv4 アドレスから RA が送信されます。Teredo クライアントは RA を受信すると、cone NAT の内側に配置されていると判断します。

  3. Teredo クライアントが RA を受信しない場合、Teredo クライアントにより、Cone フラグが設定されていないリンク ローカル アドレスから別の RS が送信されます。

  4. Teredo サーバー 1 により、RA で応答が返されます。RS に Cone グラグが設定されていないので、Teredo サーバー 1 により、RS の送信先 IPv4 アドレスに対応する送信元 IPv4 アドレスから RA が送信されます。Teredo クライアントは RA を受信すると、制限付きの NAT の内側に配置されていると判断します。

  5. Teredo クライアントが対称型 NAT の内側に配置されていないことを確認するために、Teredo クライアントから第 2 Teredo サーバー (Teredo サーバー 2) に別の RA が送信されます。

  6. Teredo サーバー 2 により、RA で応答が返されます。Teredo クライアントにより、両方の Teredo サーバーが受信した RA の送信元インジケータで、マップされたアドレスと UDP ポートが比較されます。それぞれのマップされたアドレスと UDP ポートが異なる場合は、NAT により、同じ内部アドレスとポート番号が別の外部アドレスとポート番号にマップされます。Teredo クライアントでは、NAT が対称型 NAT なので Teredo を使用して通信できないことが判断されます。

Teredo クライアントでは、受信した RA (上記のプロセスの手順 2. または 手順 4.) に基づいて、次の要素で Teredo アドレスを作成します。

  • 最初の 64 ビットは、受信した RA のプレフィックス情報オプションに含まれる値に設定されます。Teredo サーバーによってアドバタイズされた 64 ビットのプレフィックスは、Teredo プレフィックス (32 ビット) と Teredo サーバーの IPv4 アドレス (32 ビット) で構成されます。

  • 次の 16 ビットは、0x8000 (cone NAT) または 0x0 (制限付き NAT) のいずれかです。

  • 次の 16 ビットは、RA の送信元インジケータに含まれている外部 UDP ポート番号に設定されます。

  • 最後の 32 ビットは、RA の送信元インジケータに含まれている外部 IP アドレスに設定されます。

Windows XP SP2、Advanced Networking Pack for Windows XP を備えた Windows XP SP1、Windows Server 2003 Service Pack 1、Windows Vista、および Windows Server "Longhorn" の Teredo クライアントでは、名前 teredo.ipv6.microsoft.com を解決することで、Teredo サーバーの IPv4 アドレスが自動的に判断されます。または、"netsh interface ipv6 set teredo servername=" コマンドを使用して Teredo サーバーの IPv4 アドレスを構成できます。

NAT マッピングの保持

図 13 に、Teredo トラフィックの NAT マッピングが Teredo クライアントでどのように保持されるかを示します。

Bb457011.tered13(ja-jp,TechNet.10).gif

図 13: NAT マッピングの保持

定期的 (既定では 30 秒ごと) に、1 つのバブル パケットが Teredo クライアントから Teredo サーバーに送信されます。そのバブル パケットは Teredo サーバーで破棄され、応答は送信されません。定期的なバブル パケットの送信により、NAT の変換テーブルに保存されている IP アドレスや UDP ポートのマッピングが更新されます。それ以外の場合、マッピングは古くなり、削除されます。マッピングが存在しない場合は、すべての着信 Teredo トラフィック (cone NAT の場合) または Teredo サーバーから Teredo ホストへの着信 Teredo トラフィック (制限付き NAT の場合) が NAT で警告なしに破棄されます。

同じリンク上にある Teredo クライアント間の初期通信

図 14 に、同じリンク上にある Teredo クライアント間の初期通信を示します。

図 14: 同じリンク上にある Teredo クライアント間の初期通信

図 14: 同じリンク上にある Teredo クライアント間の初期通信

同じリンク上にある Teredo クライアント A から Teredo クライアント B に初期通信パケットを送信するには、次のプロセスが使用されます。

  1. Teredo クライアント A から、予約されている IPv4 マルチキャスト アドレスである Teredo IPv4 探索アドレス (実際のアドレスは IANA によって決定されます) にバブル パケットが送信されます。このバブル パケットの IPv6 ヘッダーでは、送信先アドレスが Teredo クライアント B の Teredo アドレスに設定されます。

  2. Teredo クライアント B では、Teredo クライアント A からマルチキャスト バブル パケットを受信すると、Teredo クライアント A のオンリンク IPv4 アドレスと Teredo トラフィックで使用される UDP ポートを判断し、応答として Teredo クライアント A にユニキャスト バブル パケットを送信します。Teredo クライアント A では、Teredo クライアント B からユニキャスト バブル パケットを受信すると、Teredo クライアント A のオンリンク IPv4 アドレスと Teredo トラフィックで使用される UDP ポートを判断します。

  3. Teredo クライアント A から Teredo クライアント B に初期通信パケットが送信されます。

異なるサイトにある Teredo クライアント間の初期通信

異なるサイトにある Teredo クライアント間の初期通信は、サイトで cone NAT または制限付き NAT のどちらが使用されているかによって異なります。

cone NAT

図 15 に、2 つの異なるサイトで cone NAT が使用されている場合の、それらの各サイトにある Teredo クライアント間の初期通信を示します。

Bb457011.tered15(ja-jp,TechNet.10).gif

図 15: cone NAT を使用する異なるサイト内の Teredo クライアント間の初期通信

両方の Teredo クライアントが cone NAT の内側に配置されている場合、各 Teredo クライアントの Teredo トラフィックの NAT 変換テーブル エントリで、任意の送信元 IP アドレスまたは送信元 UDP ポートからのトラフィックが許可されます。そのため、バブル パケットを使用して追加の NAT 変換テーブル エントリを確立しなくても、Teredo クライアント A から Teredo クライアント B に直接パケットを送信できます。

制限付き NAT

図 16 に、2 つの異なるサイトで制限付き NAT が使用されている場合の、それらの各サイトにある Teredo クライアント間の初期通信を示します。

Bb457011.tered16(ja-jp,TechNet.10).gif

図 16: 制限付き NAT を使用する異なるサイト内の Teredo クライアント間の初期通信

Teredo クライアント A から Teredo クライアント B に初期通信パケットを送信するには、次のプロセスが使用されます。

  1. Teredo クライアント A から Teredo クライアント B にバブル パケットが直接送信されます。Teredo クライアント B は制限付き NAT の内側に配置されているので、送信元固有の NAT 変換テーブル エントリが存在する場合を除いて、任意の送信元 IPv4 アドレスと UDP ポート番号からの Teredo トラフィックは許可されません。送信元固有の NAT 変換テーブル エントリが存在しないと仮定すると、制限付き NAT によりバブル パケットが警告なしに破棄されます。ただし、Teredo クライアント A の制限付き NAT からバブル パケットが転送されたときに、Teredo クライアント B から今後送信されるパケットを Teredo クライアント A に転送できるようにする送信元固有の NAT 変換テーブル エントリが作成されました。

  2. Teredo サーバー 2 (Teredo クライアント B の Teredo サーバー) 経由で Teredo クライアント A から Teredo クライアント B にバブル パケットが送信されます。バブル パケットの IPv4 送信先アドレスが Teredo サーバー 2 の IPv4 アドレスに設定されます。このアドレスは、Teredo クライアント A により、Teredo クライアント B の Teredo アドレスの 3 番目と 4 番目のブロックから判断されます。

  3. Teredo サーバー 2 では、パケットが処理され、IPv6 送信先アドレスが Teredo クライアントのものであると判断されて、バブル パケットが Teredo クライアント B に転送されます。Teredo サーバー 2 からの Teredo トラフィックの送信元固有の既存のマッピングが存在するので、Teredo クライアント B の制限付き NAT からパケットが転送されます。

  4. Teredo クライアント B が、Teredo クライアント A に直接送信される独自のバブル パケットで、Teredo クライアント A から受信したバブル パケットに応答します。Teredo クライアント A の制限付き NAT には、(手順 1. で Teredo クライアント A から送信された初期バブル パケットによって確立されたように) Teredo クライアント B からの Teredo トラフィックの送信元固有のマッピングがあるので、Teredo クライアント A にバブル パケットが転送されます。

  5. Teredo クライアント A では、Teredo クライアント B からバブル パケットを受信すると、両方の NAT に送信元固有の NAT マッピングが存在するかどうかを判断します。Teredo クライアント A から Teredo クライアント B に初期通信パケットが直接送信されます。

Teredo クライアントから Teredo ホスト固有のリレーへの初期通信

Teredo クライアントから Teredo ホスト固有のリレーへの初期通信は、Teredo クライアントが cone NAT または制限付き NAT のどちらの内側に配置されているかによって異なります。

cone NAT

図 17 に、Teredo クライアントが cone NAT の内側に配置されている場合の Teredo クライアントから Teredo ホスト固有のリレーへの初期通信を示します。

Bb457011.tered17(ja-jp,TechNet.10).gif

図 17: cone NAT を使用する Teredo クライアントから Teredo ホスト固有のリレーへの初期通信

Teredo クライアントから Teredo ホスト固有のリレーに初期通信パケットを送信するには、次のプロセスが使用されます。

  1. Teredo クライアント A から Teredo ホスト固有のリレーに独自の Teredo サーバー経由で ICMPv6 エコー要求メッセージが送信されます。

  2. Teredo サーバーで ICMPv6 エコー要求メッセージを受信し、そのメッセージが IPv6 インターネットを経由するか IPv4 インターネットでのトンネリングによって Teredo ホスト固有のリレーに転送されます。

  3. Teredo ホスト固有のリレーにより、Teredo クライアント A の Teredo アドレスに送信される ICMPv6 エコー応答として応答が返されます。Teredo ホスト固有のリレーには Teredo ルート (Prefix::/32) と Teredo トンネリング インターフェイスが用意されているので、Teredo ホスト固有のリレーから Teredo クライアント A にパケットが直接送信されます。

  4. Teredo クライアントでは、Teredo ホスト固有のリレーからエコー応答を受信した後、初期通信パケットを Teredo ホスト固有のリレーの IPv4 アドレスと UDP ポートに送信します。

これ以降に Teredo クライアントと Teredo ホスト固有のリレー間で送信されるすべてのパケットは直接送信されます。

制限付き NAT

図 18 に、Teredo クライアントが制限付き NAT の内側に配置されている場合の Teredo クライアントから Teredo ホスト固有のリレーへの初期通信を示します。

Bb457011.tered18(ja-jp,TechNet.10).gif

図 18: 制限付き NAT を使用する Teredo クライアントから Teredo ホスト固有のリレーへの初期通信

Teredo クライアントから Teredo ホスト固有のリレーに初期通信パケットを送信するには、次のプロセスが使用されます。

  1. Teredo クライアントから Teredo ホスト固有のリレーに独自の Teredo サーバー経由で ICMPv6 エコー要求メッセージが送信されます。

  2. Teredo サーバーで ICMPv6 エコー要求メッセージを受信し、そのメッセージが IPv6 インターネットを経由するか IPv4 インターネットでのトンネリングによって Teredo ホスト固有のリレーに転送されます。

  3. Teredo ホスト固有のリレーで、Teredo クライアントが制限付き NAT の内側に配置されているかどうかが判断されます。Teredo リレーから Teredo クライアントに ICMPv6 エコー要求メッセージが送信される場合は、Teredo ホスト固有のリレーからの Teredo トラフィックの送信元固有のマッピングが存在しないので、NAT で ICMPv6 エコー要求メッセージが警告なしに破棄されます。そのため、Teredo ホスト固有のリレーから Teredo クライアントに IPv4 インターネット上の Teredo サーバー経由でバブル パケットが送信されます。

  4. Teredo サーバーで、Teredo ホスト固有のリレーからバブル パケットを受信します。Teredo サーバーから Teredo クライアントにバブル パケットが転送されます。この際、Teredo ホスト固有のリレーの IPv4 アドレスと UDP ポート番号を含む送信元インジケータも共に転送されます。Teredo サーバーからの Teredo トラフィックの送信元固有のマッピングが NAT に存在するので、Teredo クライアントにバブル パケットが転送されます。

  5. Teredo クライアントで、受信したバブル パケットの送信元インジケータから Teredo ホスト固有のリレーの IPv4 アドレスと UDP ポートが判断されます。Teredo ホスト固有のリレーからの Teredo トラフィックの送信元固有のマッピングを確立するために、Teredo クライアントから Teredo ホスト固有のリレーにバブル パケットが送信されます。

  6. Teredo ホスト固有のリレーでは、転送するためにキューに入れられているパケット (ICMPv6 エコー応答メッセージ) に対応する Teredo クライアントからのバブル パケットの受信に基づいて、Teredo クライアントの制限付き NAT に送信元固有の NAT マッピングが現在存在するかどうかが判断されます。Teredo ホスト固有のリレーから Teredo クライアントに ICMPv6 エコー応答メッセージが転送されます。

  7. 初期通信パケットが、Teredo クライアントから Teredo ホスト固有のリレーの IPv4 アドレスと UDP ポートに送信されます。

これ以降に Teredo クライアントと Teredo ホスト固有のリレー間で送信されるすべてのパケットは直接送信されます。

Teredo ホスト固有のリレーから Teredo クライアントへの初期通信

Teredo ホスト固有のリレーから Teredo クライアントへの初期通信は、Teredo クライアントが cone NAT または制限付き NAT のいずれの内側に配置されているかによって異なります。

cone NAT

図 19 に、Teredo クライアントが cone NAT の内側に配置されている場合の Teredo ホスト固有のリレーから Teredo クライアントへの初期通信を示します。

Bb457011.tered19(ja-jp,TechNet.10).gif

図 19: cone NAT を使用する Teredo ホスト固有のリレーから Teredo クライアントへの初期通信

Teredo ホスト固有のリレーから Teredo クライアントに初期通信パケットを送信するために、Teredo ホスト固有のリレーで、Teredo クライアントが cone NAT の内側に配置されているかどうかが判断されます。そのため、Teredo ホスト固有のリレーから Teredo クライアントに初期通信パケットが直接送信されます。

Teredo クライアントでは、初期通信パケットの IPv6 アドレスがスプーフィングされていないこと、および Teredo ホスト固有のリレーに対応していることを確認するために、Teredo ホスト固有のリレーと ICMPv6 エコー要求メッセージおよび ICMPv6 エコー応答メッセージの交換を実行します。この処理は、この資料の「Teredo クライアントから Teredo ホスト固有のリレーへの初期通信」(cone NAT の場合) の手順 1. ~ 3. を使用して行われます。この交換が完了した後、Teredo クライアントから Teredo ホスト固有のリレーに初期通信パケットへの応答が送信されます。

制限付き NAT

図 20 に、Teredo クライアントが制限付き NAT の内側に配置されている場合の Teredo ホスト固有のリレーから Teredo クライアントへの初期通信を示します。

Bb457011.tered20(ja-jp,TechNet.10).gif

図 20: 制限付き NAT を使用する Teredo ホスト固有のリレーから Teredo クライアントへの初期通信

Teredo ホスト固有のリレーから Teredo クライアントに初期通信パケットを送信するには、次のプロセスが使用されます。

  1. Teredo ホスト固有のリレーから Teredo クライアントに IPv4 インターネット上の Teredo サーバー経由でバブル パケットが送信されます。

  2. Teredo サーバーで、Teredo ホスト固有のリレーからバブル パケットを受信します。Teredo サーバーから Teredo クライアントにバブル パケットが転送されます。この際、Teredo ホスト固有のリレーの IPv4 アドレスと UDP ポート番号を含む送信元インジケータも共に転送されます。Teredo サーバーからの Teredo トラフィックの送信元固有のマッピングが NAT に存在するので、Teredo クライアントにバブル パケットが転送されます。

  3. Teredo クライアントで、受信したバブル パケットの送信元インジケータから Teredo ホスト固有のリレーの IPv4 アドレスと UDP ポートが判断されます。Teredo リレーからの Teredo トラフィックの送信元固有のマッピングを確立するために、Teredo クライアントから Teredo ホスト固有のリレーにバブル パケットが送信されます。

  4. Teredo ホスト固有のリレーでは、転送するためにキューに入れられているパケット (Teredo ホスト固有のリレーからのパケット) に対応するバブル パケットの受信に基づいて、Teredo クライアントの制限付き NAT に送信元固有の NAT マッピングが現在存在するかどうかが判断されます。Teredo ホスト固有のリレーから Teredo クライアントに初期通信パケットが送信されます。

Teredo クライアントでは、初期通信パケットの IPv6 アドレスがスプーフィングされていないこと、および Teredo ホスト固有のリレーに対応していることを確認するために、Teredo ホスト固有のリレーと ICMPv6 エコー要求メッセージおよび ICMPv6 エコー応答メッセージの交換を実行します。この処理は、この資料の「Teredo クライアントから Teredo ホスト固有のリレーへの初期通信」(制限付き NAT の場合) の手順 1. ~ 6. を使用して行われます。この交換が完了した後、Teredo クライアントから Teredo ホスト固有のリレーに初期通信パケットへの応答が送信されます。

Teredo クライアントから IPv6 限定ホストへの初期通信

Teredo クライアントから IPv6 限定ホストへの初期通信は、Teredo クライアントが cone NAT または制限付き NAT のいずれの内側に配置されているかによって異なります。

cone NAT

図 21 に、Teredo クライアントが cone NAT の内側に配置されている場合の Teredo クライアントから IPv6 限定ホストへの初期通信を示します。

Bb457011.tered21(ja-jp,TechNet.10).gif

図 21: cone NAT を使用する Teredo クライアントから IPv6 限定ホストへの初期通信

Teredo クライアントから IPv6 限定ホストに初期通信パケットを送信するには、次のプロセスが使用されます。

  1. Teredo クライアントでは、IPv6 限定ホストに初期通信パケットを送信するために、まず、IPv6 限定ホストに最も近い Teredo リレーの IPv4 アドレスと UDP ポートを判断する必要があります。Teredo クライアント A から IPv6 限定ホストに独自の Teredo サーバー経由で ICMPv6 エコー要求メッセージが送信されます。

  2. Teredo サーバーでは ICMPv6 エコー要求メッセージを受信すると、そのメッセージを IPv6 インターネット上の IPv6 限定ホストに転送します。

  3. IPv6 限定ホストにより、Teredo クライアント A の Teredo アドレスに送信される ICMPv6 エコー応答で応答が返されます。IPv6 インターネットのルーティング インフラストラクチャにより、Teredo アドレス指定のパケットが IPv6 限定ホストに最も近い Teredo リレーに転送されます。

  4. Teredo リレーにより、ICMPv6 エコー応答メッセージがカプセル化され、そのメッセージが Teredo クライアントに直接送信されます。NAT が cone NAT なので、Teredo リレーから Teredo クライアントにパケットが転送されます。

  5. Teredo クライアントで、ICMPv6 エコー応答メッセージの送信元 IPv4 アドレスと UDP ポートから、IPv6 限定ホストに最も近い Teredo リレーの IPv4 アドレスが判断されます。初期通信パケットが、Teredo クライアントから Teredo リレーの IPv4 アドレスと UDP ポートに送信されます。

  6. Teredo リレーにより、IPv4 ヘッダーと UDP ヘッダーが削除され、IPv6 限定ホストにパケットが転送されます。

これ以降に Teredo クライアントと IPv6 限定ホスト間で送信されるすべてのパケットは、この Teredo リレー経由の経路を通過します。

制限付き NAT

図 22 に、Teredo クライアントが制限付き NAT の内側に配置されている場合の Teredo クライアントから IPv6 限定ホストへの初期通信を示します。

Bb457011.tered22(ja-jp,TechNet.10).gif

図 22: 制限付き NAT を使用する Teredo クライアントから IPv6 限定ホストへの初期通信

Teredo クライアントから IPv6 限定ホストに初期通信パケットを送信するには、次のプロセスが使用されます。

  1. Teredo クライアントでは、IPv6 限定ホストに初期通信パケットを送信するために、まず、IPv6 限定ホストに最も近い Teredo リレーの IPv4 アドレスを判断する必要があります。Teredo クライアント A から IPv6 限定ホストに独自の Teredo サーバー経由で ICMPv6 エコー要求メッセージが送信されます。

  2. Teredo サーバーでは ICMPv6 エコー要求メッセージを受信すると、そのメッセージを IPv6 インターネット上の IPv6 限定ホストに転送します。

  3. IPv6 限定ホストにより、Teredo クライアント A の Teredo アドレスに送信される ICMPv6 エコー応答で応答が返されます。IPv6 インターネットのルーティング インフラストラクチャにより、Teredo アドレス指定のパケットが IPv6 限定ホストに最も近い Teredo リレーに転送されます。

  4. Teredo リレーで、Teredo クライアントが制限付き NAT の内側に配置されているかどうかが判断されます。Teredo リレーから Teredo クライアントに ICMPv6 エコー要求メッセージが送信される場合は、Teredo リレーからの Teredo トラフィックの送信元固有のマッピングが存在しないので、NAT で ICMPv6 エコー要求メッセージが警告なしに破棄されます。そのため、Teredo リレーから Teredo クライアントに IPv4 インターネット上の Teredo サーバー経由でバブル パケットが送信されます。

  5. Teredo サーバーで、Teredo リレーからバブル パケットを受信します。Teredo サーバーから Teredo クライアントにバブル パケットが転送されます。この際、Teredo リレーの IPv4 アドレスと UDP ポート番号を含む送信元インジケータも共に転送されます。Teredo サーバーからの Teredo トラフィックの送信元固有のマッピングが NAT に存在するので、Teredo クライアントにバブル パケットが転送されます。

  6. Teredo クライアントで、受信したバブル パケットの送信元インジケータから、IPv6 限定ホストに最も近い Teredo リレーの IPv4 アドレスが判断されます。Teredo リレーからの Teredo トラフィックの送信元固有のマッピングを確立するために、Teredo クライアントから Teredo リレーにバブル パケットが送信されます。

  7. Teredo リレーでは、転送するためにキューに入れられているパケット (ICMPv6 エコー応答メッセージ) に対応するバブル パケットの受信に基づいて、Teredo クライアントの制限付き NAT に送信元固有の NAT マッピングが現在存在するかどうかが判断されます。Teredo リレーから Teredo クライアントに ICMPv6 エコー応答メッセージが転送されます。

  8. 初期通信パケットが、Teredo クライアントから Teredo リレーの IPv4 アドレスと UDP ポートに送信されます。

  9. Teredo リレーにより、IPv4 ヘッダーと UDP ヘッダーが削除され、IPv6 限定ホストにパケットが転送されます。

これ以降に Teredo クライアントと IPv6 限定ホスト間で送信されるすべてのパケットは、この Teredo リレー経由の経路を通過します。

IPv6 限定ホストから Teredo クライアントへの初期通信

IPv6 限定ホストから Teredo クライアントへの初期通信は、Teredo クライアントが cone NAT または制限付き NAT のいずれの内側に配置されているかによって異なります。

cone NAT

図 23 に、Teredo クライアントが cone NAT の内側に配置されている場合の IPv6 限定ホストから Teredo クライアントへの初期通信を示します。

Bb457011.tered23(ja-jp,TechNet.10).gif

図 23: cone NAT を使用する IPv6 限定ホストから Teredo クライアントへの初期通信

IPv6 限定ホストから Teredo クライアントに初期通信パケットを送信するには、次のプロセスが使用されます。

  1. IPv6 限定ホストから Teredo クライアントに初期通信パケットが送信されます。IPv6 インターネットのルーティング インフラストラクチャにより、Teredo アドレス指定のパケットが IPv6 限定ホストに最も近い Teredo リレーに転送されます。

  2. Teredo リレーで、Teredo クライアントが cone NAT の内側に配置されているかどうかが判断されます。そのため、Teredo リレーから Teredo クライアントに、IPv4 ヘッダーと UDP ヘッダーでカプセル化されている IPv6 限定ホストから送信されたパケットが転送されます。

Teredo クライアントでは、このパケットを受信すると、Teredo リレーに対応する IPv4 アドレスと UDP ポートを保存して、応答パケットを Teredo リレーに転送できるようにします。Teredo リレーでは、応答パケットを受信すると、IPv4 ヘッダーと UDP ヘッダーを削除して、IPv6 パケットを IPv6 限定ホストに転送します。

Teredo クライアントでは、初期通信パケットの IPv6 アドレスがスプーフィングされていないこと、および IPv6 限定ホストに対応していることを確認するために、IPv6 限定ホストと ICMPv6 エコー要求メッセージおよび ICMPv6 エコー応答メッセージの交換を実行します。この処理は、この資料の「Teredo クライアントから IPv6 限定ホストへの初期通信」(cone NAT の場合) の手順 1. ~ 4. を使用して行われます。この交換が完了した後、Teredo クライアントから IPv6 限定ホストに初期通信パケットへの応答が送信されます。

制限付き NAT

図 24 に、Teredo クライアントが制限付き NAT の内側に配置されている場合の IPv6 限定ホストから Teredo クライアントへの初期通信を示します。

Bb457011.tered24(ja-jp,TechNet.10).gif

図 24: 制限付き NAT を使用する IPv6 限定ホストから Teredo クライアントへの初期通信

IPv6 限定ホストから Teredo クライアントに初期通信パケットを送信するには、次のプロセスが使用されます。

  1. IPv6 限定ホストから Teredo クライアントにパケットが送信されます。IPv6 インターネットのルーティング インフラストラクチャにより、Teredo アドレス指定のパケットが IPv6 限定ホストに最も近い Teredo リレーに転送されます。

  2. Teredo リレーで、Teredo クライアントが制限付き NAT の内側に配置されているかどうかが判断されます。Teredo リレーから Teredo クライアントにパケットが送信される場合は、Teredo リレーからの Teredo トラフィックの送信元固有のマッピングが存在しないので、NAT でパケットが警告なしに破棄されます。そのため、Teredo リレーから Teredo クライアントに IPv4 インターネット上の Teredo サーバー経由でバブル パケットが送信されます。

  3. Teredo サーバーで、Teredo リレーからバブル パケットを受信します。Teredo サーバーから Teredo クライアントにバブル パケットが転送されます。この際、Teredo リレーの IPv4 アドレスと UDP ポート番号を含む送信元インジケータも共に転送されます。Teredo サーバーからの Teredo トラフィックの送信元固有のマッピングが NAT に存在するので、Teredo クライアントにバブル パケットが転送されます。

  4. Teredo クライアントで、受信したバブル パケットの送信元インジケータから、IPv6 限定ホストに最も近い Teredo リレーの IPv4 アドレスが判断されます。Teredo リレーからの Teredo トラフィックの送信元固有のマッピングを確立するために、Teredo クライアントから Teredo リレーにバブル パケットが送信されます。

  5. Teredo リレーでは、転送するためにキューに入れられているパケット (IPv6 限定ホストからのパケット) に対応するバブル パケットの受信に基づいて、Teredo クライアントの制限付き NAT に送信元固有の NAT マッピングが現在存在するかどうかが判断されます。Teredo リレーから Teredo クライアントにパケットが転送されます。

Teredo クライアントでは、初期通信パケットの IPv6 アドレスがスプーフィングされていないこと、および IPv6 限定ホストに対応していることを確認するために、IPv6 限定ホストと ICMPv6 エコー要求メッセージおよび ICMPv6 エコー応答メッセージの交換を実行します。この処理は、この資料の「Teredo クライアントから IPv6 限定ホストへの初期通信」(制限付き NAT の場合) の手順 1. ~ 7. を使用して行われます。この交換が完了した後、Teredo クライアントから IPv6 限定ホストに初期通信パケットへの応答が送信されます。

Windows XP Service Pack 2 の Teredo の使用

Windows XP Service Pack 2 または Windows Server 2003 Service Pack 1 を実行しているコンピュータで Teredo クライアントまたはホスト固有のリレーを使用するには、アプリケーション開発者が次の作業を行う必要があります。

  • IPv4 と IPv6 の両方をサポートする Windows Sockets 2 の新しいプログラミング要素 (関数と構造体) を使用して、アプリケーションが IPv6 と互換性があることを確認します。詳細については、「IPv6 Guide for Windows Sockets Applications」(英語) を参照してください。

  • IPV6_PROTECTION_LEVEL Windows Sockets ソケット オプションを PROTECTION_LEVEL_UNRESTRICTED レベルに設定して、アプリケーションで Teredo を使用できるようにします。詳細については、「Using IPV6_PROTECTION_LEVEL」(英語) を参照してください。このオプションは、System.Net.Sockets .NET Framework クラスを使用して設定することもできます。

  • Windows ファイアウォールの例外を作成して、要請していない着信 Teredo トラフィックを許可します。Teredo トラフィックに割り当てられた UDP ポートのポート例外を作成するには、Windows Firewall API を使用します。

アプリケーションの実行時に Teredo を使用できるようにするには、アプリケーション開発者がアプリケーションのインストール プロセス中に次の操作を実行する必要があります。

  • "netsh interface ipv6 install" コマンドを使用して IPv6 をインストールします。Windows ファイアウォールにより、IPv4 トラフィックと同じ方法で、ユーザーのコンピュータが要請しない着信 IPv6 トラフィックから保護されます。

  • "netsh interface ipv6 set teredo client" コマンドを使用して Teredo を有効にします。

オプションで、アプリケーションを実行するたびに IPv6 がインストールされているかどうかをテストすることができます。インストールされていない場合は、IPv6 をインストールし、必要に応じて Teredo を有効にすることができます。

また、IPv6 のインストール中および Teredo の有効化中は、そのことをユーザーに通知することをお勧めします。

まとめ

Teredo は、IPv6 ホストや IPv4 ホストが 1 つまたは複数の IPv4 NAT の内側に配置されている場合に、ユニキャスト IPv6 接続を行うアドレスの割り当てとホスト間の自動トンネリング テクノロジです。Teredo でトンネリングされたパケットは、IPv4 UDP メッセージとして送信されます。Teredo 通信は、Teredo サーバーや Teredo リレーによって容易になります。Teredo ホスト固有のリレーは、Teredo アドレスを使用しませんが、通信経路上の Teredo リレーを使用しなくても Teredo クライアントと通信できる IPv6 または IPv4 です。Teredo アドレスの取得や NAT マッピングの保持、Teredo クライアント、Teredo ホスト固有のリレー、および IPv6 限定ホスト間での初期通信の実行のためのプロセスが定義されています。それぞれの場合の初期通信プロセスは、Teredo クライアントが cone NAT または制限付き NAT のいずれの内側に配置されているかによって異なります。

関連リンク

詳細については、次のリソースを参照してください。

© 2009 Microsoft Corporation. All rights reserved. 使用条件 | 商標 | プライバシー
Page view tracker