不正なテクニックを駆使して電通大に6to4でIPv6アクセスする(WinXP編)

追記 : 当たり前だけど6to4のようなトランスレータの設置にはかなりのセキュリティリスクがある。通常のヒューマンはマネしないこと。http://tools.ietf.org/html/rfc3964 等参照。
というわけで、方法論が完成した。大体手元の環境では30ms程度のRTTとなっている。

問題 : SINETがtokyo6to4のリレールータを知らない

  • 解決策 : 学内に6to4リレーを設置する(!)

原理上、6to4リレーはどこに有っても良い。
SINETがtokyo6to4のリレーを知らなかったとしても、IPv6インターネットを通って電通大に向かうパケットは正常にルーティングされる(ことが観察されている)。つまり、行き(自宅→電通大)は普通に6to4を使う

このケースでは、DIONIPv4インターネットを通ってtokyo6to4まで行き、SINETのIPv6インターネットを通って電通大まで到達する。
問題は帰りで、普通に6to4のアドレス(2002::/16)を持ったパケットを自宅に向けて返送しても、そのパケットは太平洋を渡ってアメリカに行ってしまう。なぜならSINETが知っている6to4リレールータはMicrosoftの設置しているものであるため。
というわけで、帰りは自宅に直接IPv4で届ける

この場合、返信パケットの送信元は僕の研究室のホスト(これはグローバルIPv4アドレスを持っている)のものになる。
大学に設置するリレーは、経路を広報していないので他人から見るといわゆる6to4リレーではない。あくまで送信専用になる。

WinXPの設定

ただし、リレー先のIPアドレスは192.26.91.178でなく192.88.99.1にする。

ここまでするメリット

これが実現できるということは、IPv4グローバルアドレスを電通大側に持っているわけで、通常の感覚では意味がないと思うかもしれない。
ただ、大学のように多くのサーバを抱える可能性がありNATによる管理では限界があるというシチュエーションでは役に立つ可能性もある。僕個人でもXenやその他のHypervisor経由で5台以上のホストを管理しており、そのためにグローバルIPアドレスを申請したりNATを設定したりVPNを設計したりするのはあまり面白い作業でもない。
もちろんtokyo6to4とSINETが直通する方がずっと望ましいことは言うまでも無い。結局のところIPv6対応アプリケーションを書いてもらうにはIPv6インターネット環境を整備するしか無い*1わけで、その投資先として大学という場はそれなりに魅力的で有ると個人的には考えている。

*1:Link-localアドレスの活用はとても興味深いが、名前解決に標準が無い - LLMNRとZeroconfに分裂している状況が色々と難しくしている。