2008-05-23
# UbuntuでTeredo(IPv6)
前回に引き続き、Ubuntu+IPv6の検索結果に、UbuntuでIPv6を使う、情報を載せる試みをしてみる。 使うのは、Teredo。またトンネリングかよ、と思われるかもしれないが、TeredoはそもそもNAT越えを目的としてたトンネリングプロトコル。NATでも相性が良い*1。Teredo自身はMicrosoftが提唱したプロトコルで、現在はRFC化されている。RFC4380(Teredo: Tunneling IPv6 over UDP through Network Address Translations (NATs))だ。Teredoのオープンソースの実装がMiredo。ミレドちゃん。いや、ミレードさんはGPLライセンスで、Ubuntuの公式リポジトリにも含まれている。
$ apt-cache search miredo miredo - Teredo IPv6 tunneling through NATs miredo-server - Teredo IPv6 tunneling server
あるある。で、さくっとクライアントをインストールする。クライアントだからね。
$ sudo aptitude install miredo
これだけで、IPv6でお外の世界と繋がっている。とっても簡単だ。前回同様、ipv6.google.comなり、The Kame Projectで踊る亀を見てIPv6でアクセスしているか確認していただきたい。
Miredoが何をしているかは、
$ tail /var/log/syslog May 22 22:46:08 fuga miredo[8544]: Starting... May 22 22:46:08 fuga kernel: [15202.396805] teredo: Disabled Privacy Extensions May 22 22:46:08 fuga miredo[8545]: New Teredo address/MTU May 22 22:46:08 fuga miredo[8545]: Teredo pseudo-tunnel started May 22 22:46:08 fuga miredo[8545]: (address: 2001:0:53aa:64c:2822:5293:2169:5b23, MTU: 1280) May 22 22:46:18 fuga kernel: [15212.278120] teredo: no IPv6 routers present
で、確認できる。IPv6アドレスも記載されている。ifconfigでは、
$ ifconfig
teredo Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet6 addr: fe80::ffff:ffff:ffff/64 Scope:Link
inet6 addr: 2001:0:53aa:64c:2822:5293:2169:5b23/32 Scope:Global
UP POINTOPOINT RUNNING NOARP MTU:1280 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 B) TX bytes:144 (144.0 B)
となっている。
どのTeredoサーバを利用しているかは、/etc/miredo/miredo.confを確認すれば良い。
UbuntuのデフォルトTeredoサーバは、teredo-debian.remlab.netだ。remlab.netは、Miredoの開発者であるRemi Denis-Courmont(Remiのeにはアポストロフィが付く)氏の保有しているドメイン。サーバはフランスはパリにあり、合州国経由大西洋横断航路で通信するため、けっこう遠い。近場なパブリックTeredoサーバに切り替えてしまうのも手かもしれないが、それほどパブリックTeredoサーバは多くない。U.S.のteredo.ipv6.microsoft.com辺りが妥当かもしれない。なお、kayakayaはMiredoを使っているので、遠くても我慢している。いや、それほど体感では違わんのだよ。
*1 Microsoftの実装ではUPnPを使用している
