Advanced Networking Pack for Windows XP大解剖  第1回 IPv6接続をさらに透過的にするTeredo

Advanced Networking Pack for Windows XP大解剖  第1回 IPv6接続をさらに透過的にするTeredo

タグ:
マイクロソフト プロダクト ディベロップメント リミテッド
ウィンドウズ開発統括部 戦略プラットフォームグループ
及川 卓也




 2003年7月末、マイクロソフトよりAdvanced Networking Pack for Windows XP(以下、Advanced Networking Packと略)というIPv6対応モジュールがリリースされた。Windows XP SP1(サービスパック1)用の推奨アップデートとしてリリースされており、Windows XPユーザーは無料で利用できる。この記事では、このAdvanced Networking Packにより提供されるIPv6機能について2回に分けて解説する。第1回ではこのモジュールの基本機能と、新たに実装されたNAT越えの技術であるTeredoについて解説する。


Advanced Networking Packのインストール

 Advanced Networking PackはマイクロソフトのダウンロードセンターおよびWindows Updateを通じて提供されている。Windows UpdateではAdvanced Networking Pack は「Windows XP SP1用推奨修正プログラム (817778)」という名前のモジュールとして提供されている(図 1)。

図1
図 1 Windows UpdateからもAdvanced Networking Packを入手できる。

 また、ダウンロードセンターからの入手は次のURLから可能だ。

http://www.microsoft.com/downloads/details.aspx?
FamilyID=e88cc382-8ce6-4739-97c0-1a52a6f005e4
&DisplayLang=ja


 Advanced Networking PackのインストールのためにはWindows XP SP1が事前に適用されている必要がある。ただし、Windows XP Tablet PC EditionやWindows XP Media Center EditionはすでにSP1が含まれているので、直接Advanced Networking Packを適用することが可能だ。


Advanced Networking Packにより提供される機能

 Advanced Networking Packには、Windows Server 2003相当のIPv6スタック、IPv6対応のパーソナルファイアウォール、Teredoクライアント、ピアツーピア機能が含まれている。
 Windows XPでは当初、開発者向けエディションのIPv6スタックが搭載されており、サポートも限定されていたが、商用利用可能なIPv6スタックを搭載したSP1リリース以降は、正式サポートも提供されている。しかし、IPv6は技術の革新が非常に著しい分野であるため、新しい標準(RFCやインターネットドラフト)を取り入れる必要などあり、その後もスタックに改良が加えられている。このAdvanced Networking Packでは2003年6月に発売が開始されたWindows Server 2003相当のIPv6スタックが提供されている。
 Windows XPにはステートフルパケットインスペクション機能を持つパーソナルファイアウォールがインターネット接続ファイアウォール(ICF: Internet Connection Firewall)として提供されている。ICFは従来IPv4にのみ対応していたが、Advanced Networking PackによりIPv6にも対応が可能になった。
 Teredoクライアントは新しいIPv6トンネル機能を提供する。Windows標準機能としてトンネル機能は提供されていたが、NATを実装したブロードバンドルーターによりインターネットと接続されている家庭やSOHOではこれらのトンネル機能を利用することが難しかった。TeredoはNATデバイスが介在する環境においてトンネル技術を利用するための新しい技術である。
 Advanced Networking Packは以上のようなIPv6関連機能が搭載されている。ピアツーピア機能はこれらのIPv6機能を利用したマイクロソフトのピアツーピアアプリケーションのためのランタイムである。このようなピアツーピアアプリケーションの例として3°(スリーディグリーズ)(http://www.threedegrees.com/)が挙げられる。


NATトラバーサルトンネル技術Teredo

 インターネットへの接続や拠点間の接続にIPv6を用いる場合、一般的にはISPや回線事業者などにより提供されるIPv6接続サービスを利用することが多い。日本ではIPv6サービスが専用回線から比較的安価なDSLまで提供されており、他国に比べてIPv6サービスを利用するための敷居は低くなっている。しかし、一般家庭やSOHOなどは、いくら安価になったとはいえ、まださほど多くないと予想されるIPv6の接続のために別途サービスに加入することをためらうことも多いだろう。IPv6のトンネル技術はこのような場合に利用できる。IPv6トンネル技術はISPや回線事業者などにより提供されるものもあるが、6to4のようなトンネル技術は利用者側の機器を設定するだけで、回線は既存のIPv4回線をそのまま利用でき、利用者はIPv6接続のために別途費用が発生することはない。
 Windowsでは6to4(RFC 3056 Connection of IPv6 Domains via IPv4 Clouds)およびISATAP(インターネットドラフト: Intra-Site Automatic Tunnel Addressing Protocol (ISATAP))という2つのトンネル技術を提供しており、前者を公衆接続のため、後者をイントラネット内の接続のために利用することを推奨している。特に、6to4は既定の設定で有効にされており、IPv4のグローバルアドレスを持つインターフェイスがあった場合、自動的に6to4のインターフェイスが生成され、6to4接続が可能になる。
 6to4の問題は家庭やSOHOのようにNATデバイスの介在する環境でトンネルの利用が容易には行えないことだ。6to4はIPv6アドレス(インターフェイスID)の生成にグローバルIPv4アドレスを利用する。そのため、NAT内部で利用されるプライベートアドレスでは6to4のアドレスは生成できない。NATデバイスに振られたWAN側のグローバルアドレスを取得し、マニュアルで6to4を利用するように構成することも可能であるが、一般的ではない。また、6to4はIPv4ヘッダのプロトコルフィールドに41を設定するが、通常のNATデバイスはTCPおよびUDPのみを対象としており、プロトコル41のIPv4パケットはサポートされない。6to4リレー機能をNATデバイスが実装することにより、NAT内部のホストは通常のIPv6ホストとして振舞うだけでよくなるが、6to4リレー機能も残念ながらまだ一般的ではなく、たとえ6to4リレー機能をNATデバイスが実装していたとしても、ISPや通信事業者側でNATを利用しているような環境では、利用者宅のNATにはすでにIPv4プライベートアドレスしか割り当てられないため、6to4は利用できない。


Teredoのしくみ

 TeredoはNATを介して配置されたデバイス間でトンネルを実現するプロトコルとして、現在、マイクロソフトからIETFのv6opsワーキンググループに提案されている(Teredo: Tunneling IPv6 over UDP through NATs)。


TeredoがサポートするNAT

 Teredoの特徴はIPv4のUDPを用い、NATトラバーサル(NATを介在した通信)を実現していることだ。NATは一般的にアドレスおよびポートペアのマッピングの作成と管理の方法の違いにより以下の4種類に分類される。
  1. Cone NAT
    Cone NATと呼ばれるNATでは、内部アドレスおよびUDPポート(NAT内部に存在するホストの内部アドレスとポート)と外部アドレスおよびUDPポート(NATのWAN側に割り当てられたグローバルアドレスとポート)のマッピングを作成し、ポートがアクティブである限り、マッピングを有効に保持する。マッピングが有効の間は、NATのWAN側アドレスの該当UDPポートにて受信されたUDPパケットはNAT内部の対応するホストへと転送される。

    図1
    図 2 Cone NATの動作。内部ホストAから送信された(1)のパケットによりマッピングテーブル中にエントリが作成される。Cone NATでは対象となる外部ホストの管理は行われないため、同一外部ホストAからのパケット(2)だけでなく、異なる外部ホストBからのパケット(3)もNATデバイスにより内部ホストAに転送される。

  2. Restricted cone NAT
    Restricted cone NATと呼ばれるNATではNATは単にアドレスとUDPポートのマッピングを作成および維持するだけではなく、内部ホストからUDPパケットを送信した対象の外部ホストを管理している。これにより、内部ホストにより通信が開始された外部ホスト以外からのパケットの受信は拒否される。

    図1
    図 3 Restricted cone NATの動作。内部ホストAからのパケット(1)への返信となる(2)はNAT内部に転送される。しかし、Restricted cone NATではマッピングテーブルに対象となる外部ホストも管理されており、外部ホストBはNATで承認されていないため、パケット(3)は転送を拒否される。

  3. Port-restricted cone NAT
    Port-restricted cone NATはRestricted cone NATによる外部からのパケットの受信の制限をさらに強化したNATだ。Restricted cone NATが承認された外部ホストだけを管理しているのに対し、Port-restricted cone NATは使用されているポートも管理対象とする。外部からのパケットは内部ホストから通信が開始されたホストからであることとともに、そのときに利用されたポート宛であることが要求され、それ以外のパケットはすべて拒否される。

    図1
    図 4 Port-restricted cone NATの動作。パケット(1)と(2)の動作はRestricted cone NATと同様だが、たとえ同一のホストである外部ホストAであっても、異なるポートからのパケットである(3)はNAT内部に転送されない。

  4. Symmetric NAT
    Symmetric NATは同一の内部アドレスとポートのペアを異なる外部アドレスとポートのペアにマッピングする。

    図1
    図 5 Symmetric NATの動作。(1)と(2)のパケットで、同一の送信元アドレスとUDPポートを使っているにも関わらず、異なる外部ホストへのパケットであるために、異なる外部UDPポートにマッピングされている。これがSymmetric NATの特徴である。
 TeredoはこれらのNATのうち、Symmetric NAT以外のNATに対応する。なお、Restricted cone NATとPort-restricted cone NATはTeredoでは同一のタイプのNATとして扱われ、Restricted NATと総称される。


Teredoを実現するコンポーネント

 TeredoによるIPv6トンネリングは以下のコンポーネントによって実現される(図 6)。
  • Teredoクライアント
    TeredoクライアントはTeredoサーバーからTeredoアドレス(IPv6アドレス)を取得し、UDP/IPv4を用いたIPv6トンネルを実現する。ほかのTeredoクライアントおよびTeredoリレーを介したIPv6ノードとの通信を行う。

  • Teredoサーバー
    TeredoサーバーはIPv4グローバルアドレスおよびIPv6グローバルアドレスを持ち、Teredoクライアントに対してTeredoアドレスの付与などIPv6の接続性を提供する。また、IPv6ノードとの接続の際の支援も行う(IPv6インターネット間との実際のルーティングは行わない)。

  • Teredoリレー
    TeredoリレーはIPv4グローバルアドレスとIPv6グローバルアドレスを持ち、TeredoクライアントとIPv6インターネット上のノード間のルーティングを行う。
図1
図 6 Teredoを構成するコンポーネント

前のページ 1/2 次のページ

この記事のトラックバックURL

http://www.ipv6style.jp/trackback/302
Ads by Google

IPv6ブログ