図1 IPv6自動トンネル機能「Teredo」のしくみ
図1 IPv6自動トンネル機能「Teredo」のしくみ
[画像のクリックで拡大表示]

 Teredoとは,Windows Vista端末からIPv6インターネットへの接続を試せる技術の一つ。IPv4のネットワーク経由でIPv6パケットを転送するトンネル技術を使ってIPv6インターネットへ接続する。

 Teredoは,Windows Vista端末にIPv4のプライベート・アドレスが設定されたときに自動的に有効になる。経路途中にルーターのアドレス変換(NAT)があってもIPv6通信が可能である。Windows Vistaが備えるIPv6インターネットへの自動トンネル機能には,もう一つ「6to4」がある。こちらは,端末にIPv4のグローバル・アドレスが設定されたときに自動的に有効になる技術である。

 それでは,「企業ネットワークなどにあるWindows Vista端末がすでにTeredoを使ってIPv6通信しているのか」というと,実際はそうではない。Windows Vistaでは,Teredoや6to4によるトンネル接続よりIPv4接続の方を優先するしくみになっているからだ。6to4やTeredoを使って確実にIPv6通信させたいときは,WebブラウザのURL入力欄にIPv6アドレスを直接入力する必要がある。

 Teredoのしくみを以下に説明しよう。Windows Vista端末は,最初に米マイクロソフトなどが用意するTeredoサーバーと通信して,NATルーターの送信元IPアドレスや送信元ポート番号などの情報を収集する(図1の(1))。次にTeredoサーバーを介して,目的のIPv6サーバーへIPv6を使ったping通信を実行する(同(2))。返信パケットは,サーバーの最寄りにあるTeredoリレー・ルーターを介して端末に届く。Teredoリレー・ルーターもマイクロソフトなどが設置している。この時点で端末はTeredoリレー・ルーターのアドレスを入手する。ここまでが準備段階だ。

 そして端末は,目的のデータを格納したIPv6パケットをIPv4パケットでカプセル化して送り出す。あて先は,先ほど応答を返してきたTeredoリレー・ルーターである(同(3))。IPv4パケットがTeredoリレー・ルーターに到着したら,Teredoリレー・ルーターがIPv6パケットを取り出して,目的のあて先へIPv6パケットを転送する(同(4))。

 なお,返信パケットは,(3)と(4)の逆の流れになる。このときなぜNATを越えられるかと言うと,Windows Vista端末が作るIPv6アドレスの中にNATルーターのIPアドレス(グローバル・アドレス)とポート番号の情報が入っているから。IPv6パケットのアドレス部分に,IPv4インターネットの返信先アドレスが記載されているわけだ。

 なお,Teredoを使うには,Windowsファイアウォールを有効にしておく必要がある。また,IPv6のグローバル・ユニキャスト・アドレスが割り当てられていないことが利用の条件だ。