Teredo の仕組み
先ほど、IPv6トンネル接続の概念を図2を用いて説明したが、Teredoのシステムはやや複雑だ。マイクロソフトのTechNet(技術情報サイト)に掲載された概念図を用いて説明する。
Teredoのクライアント(ユーザーのPC)は、まず、図3の中央にあるTeredoサーバーと通信し、自分の使用しているルーターのNAT情報を取得したり、グローバルIPv6アドレスを得る。ここまで完了すると、画面3のようにTeredoの状態が「qualified」になる。これで、実際にIPv6ホストとの通信が可能な状態になったというわけだ。

図3 Teredoの概念図
次に、実際にIPv6ホストと通信する手順である。最初はTeredoサーバーを経由して、通信相手のIPv6ホストにpingを投げる(図4の①)。

図4 Teredo によるIPv6ホストとの通信
IPv6ホストは、通常のIPv6の経路選択メカニズムに基づいて(ユーザーPCのIPv6アドレスを見て)、パケットを返送する経路を決める。この時、ユーザーPCのIPv6アドレスはTeredoサーバーが割り当てているため、必ずTeredoリレー(Teredo Relay、リレーサーバー・中継サーバーとも呼ぶ)を通過する(図4の②)。それ以降の通信は、このTeredoリレーがIPv6トンネルの終端になる。つまり、ユーザーPCとTeredoリレーの間にIPv6 over IPv4 トンネルが構築され、TeredoリレーとIPv6ホストの間は、通常のIPv6で通信する(図4の③)。
Teredo を操作する
それでは、PC(Windows 7)でnetshを使ってTeredoを操作してみよう。前述の通り、Windows 7の初期設定ではマイクロソフトのTeredoサーバーへ接続される。まずこれを別のサーバーに変えてみよう。インターネット上には、マイクロソフトのほかにも複数のTeredoサーバーがある。ここでは、そのうちの1つである“teredo.remlab.net”を使ってみる。Teredoサーバーを変更するには、コマンドプロンプトを「管理者として実行」で開いてから、画面5のように操作すればよい。

画面5 Teredoサーバーを変更する
また、コマンドプロンプトから、
netsh interface ipv6 set teredo type=client teredo.remlab.net
と入力してもよい。
そのあとで、数秒おきに“show teredo”コマンドでTeredoの状態を確認したのが画面6である。ここではまず、サーバー名が変わっていることを確認しよう(画面6の①)、

画面6 Teredo トンネルの状態を確認する
1回目に“show teredo”コマンドを実行したタイミングでは、まだTeredoトンネルの準備中の状態だった(画面6の②)。2回目に“show teredo”コマンドを実行した時点では、正常に利用可能になっている(画面6の③)。この時、Teredoの通信で使用する情報として、PCのLANインターフェイスに設定されたプライベートIPv4アドレスおよびポート番号(画面6の④)や、NATルーターのグローバルIPv4アドレスおよびポート番号(画面6の⑤)も表示される。
ただし、マイクロソフトのTeredoサーバーを除いて、ほとんどが評価用・試験用という位置づけで信頼性や安定性はマイクロソフトのサーバーよりも劣る。Googleなどで検索すれば、公開されたTeredoサーバーがいくつか見つかるが、サービスが停止していることもけっこうある。通常は、初期設定の通りマイクロソフトのTeredoサーバーを使ったほうがよいだろう。

この連載の記事
-
第11回
ネットワーク
IIJ IPv6仮想アクセス(ネットワーク型)を使ってみる(後編) -
第10回
ネットワーク
IIJ IPv6仮想アクセス(ネットワーク型)を使ってみる (前編) -
第9回
ネットワーク
「IPv6仮想アクセス」でPPTPを使ったIPv6接続を試す -
第8回
ネットワーク
NVR500でフレッツ・ドットネットに接続する -
第7回
ネットワーク
OCN IPv6を複数のPCで共有するには? -
第6回
ネットワーク
国内で実績のあるOCN IPv6でIPv6を使ってみよう -
第4回
ネットワーク
WebのIPv6対応を加速した「World IPv6 Day」 -
第3回
ネットワーク
ルーターでIPv6のLANを接続しよう -
第2回
ネットワーク
IPv6を使ったLANを試してみよう -
第1回
ネットワーク
WindowsでIPv6の基本を試してみよう - この連載の一覧へ