Teredo トンネリング
この想定が成り立たないと、二つのクライアント間の直接通信を確立することができず、より通信コストのかかるリレーを挟んだ三角ルーティング(英語版)を行う必要が出てくる。Teredo 実装はNATの種別を起動時に検知することを試み、NATが対称NATであれば動作を拒否する(この限界はNAT機器のポートフォワードルールを手動で設定することにより乗り越えることができる場合もあるが、機器への管理者アクセスが必要となる)。
Teredo はトンネルエンドポイントごとに単一のIPv6アドレスしか提供できない。したがって、6to4やいくつかのポイント・ツー・ポイントIPv6トンネルとは異なり、一つの Teredo トンネルを用いて複数ホストと接続することはできない。全ての Teredo クライアントが利用可能なIPv6インターネット向けの帯域幅は Teredo リレーの利用可能性により制限される。この点は6to4と変わらない。
Teredo リレーは多大なネットワーク帯域を消費する可能性がある。また、他のIPv6ホストに対して Teredo IPv6プレフィクス (2001::/32) 向けのルートをエクスポート(アドバタイズ)する必要がある。これにより、Teredo リレーは他のIPv6ホストから Teredo クライアント宛のトラフィックを受けとることになり、UDP/IPv4越しに転送を行う。それとは逆に、Teredo クライアントからネイティブ IPv6 ホスト宛のデータグラムを UDP/IPv4 越しに受けとった場合は、IPv6 ネットワーク越しに転送を行う。
運用上、ネットワーク管理者は自社もしくはキャンパス内限定のプライベート Teredo リレーを設置することができる。この場合は、Teredo クライアントとIPv6ネットワークをそのまま結ぶことができる。対して、単一ネットワークを越えるスケールの Teredo リレーを設置するためには別の自律システム (AS) 向けにIPv6ルートをBGPによりエクスポートする能力が求められる。
接続の行きと帰りで違うリレーを使うことのできる6to4とは違い、ネイティブIPv6ホストと Teredo クライアントの通信は同じ Teredo リレー、実際上はネイティブIPv6ホストにネットワーク的に最も近いリレーが使われる。
Teredo の実装としては、複数のものが存在する。
Windows XP SP2 (と Advanced Networking Pack for Service Pack 1)にはクライアントとホスト限定リレーが実装されている。
Windows Server 2003 向けにはマイクロソフトベータプログラムによりリレーおよびサーバーが提供された。
Windows Vista と Windows 7 には規格外の対称NATトラバーサル拡張をサポートする Teredo 実装が組み込まれている。しかし、リンクローカルおよび Teredo アドレスのみが利用可能な場合、これらのOSは IPv6 DNS AAAA レコードを解決しようとしないため、IPv4 が使用される。したがって、Teredo 使用時はIPv6アドレスをURLに直打ちする必要があった。
Miredo(英語版) は Linux, *BSD, Mac OS X 向けのクライアント・リレー・サーバー実装である。
ng_teredo はパリ第6大学の研究所、LIP6(英語版)とネットワークソフトウェアベンダの6WINDが開発した、FreeBSD 向けの netgraph(英語版) ベースのリレー・サーバー実装である。
NICI-Teredo は国立交通大学が開発した、Linux カーネル向けのリレーおよびユーザーランド Teredo サーバーである。