僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
NAT の下で ipv4 しかないホストでもipv6 接続 ができる接続仕様(RFC 4380)のUNiX向け実装、らしい。 Squeeze は apt-get で入れるとすぐ使えた。
$ ip -6 a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000 inet6 fe80::20b:XXXX:XXXX:XXXX/64 scope link valid_lft forever preferred_lft forever 7: teredo: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qlen 500 inet6 2001:0:53aa:64c:XXXX:XXXX:XXXX:XXXX/32 scope global valid_lft forever preferred_lft forever inet6 fe80::ffff:ffff:ffff/64 scope link valid_lft forever preferred_lft forever
/etc/init.d/miredo start する前からwireshark を あげて、キャプチャしてみた。
$ tshark -t d -r $CAPTURE_FILE 'udp.port == 53 || udp.port == 3544' 1 0.000000 $HOST -> $ROUTER DNS Standard query A $TEREDO_SERVER 2 0.000415 $ROUTER -> $HOST DNS Standard query response CNAME 3 0.009955 $MIRE_V6 -> ff02::2 ICMPv6 Router solicitation 4 0.626136 $ANOTER_LINK_V6 -> $MIRE_V6 ICMPv6 Router advertisement 7 25.012169 $MIRE_V6 -> ff02::2 ICMPv6 Router solicitation 8 0.645867 $ANOTER_LINK_V6 -> $MIRE_V6 ICMPv6 Router advertisement 11 24.352712 $MIRE_V6 -> ff02::2 ICMPv6 Router solicitation 12 0.595800 $ANOTER_LINK_V6 -> $MIRE_V6 ICMPv6 Router advertisement 15 25.000153 $MIRE_V6 -> ff02::2 ICMPv6 Router solicitation 16 0.625789 $ANOTER_LINK_V6 -> $MIRE_V6 ICMPv6 Router advertisement
ICMPv6 とあるが、IPv4 の UDP 3544 との送受信の 中身が"Teredo IPv6 over UDP tunnelling"そして その中身が "Internet Protocol Version 6" そしてその中身がようやくICMPv6になっていた。
で、 www.kame.net に -i 10 とかで ping6。すると、
$ tshark -t d -r ping6.cap 1 0.000000 $HOST -> $ROUTER DNS Standard query AAAA www.kame.net 2 0.000316 $ROUTER -> $HOST DNS Standard query response CNAME orange.kame.net AAAA 2001:200:dff:fff1:216:3eff:feb1:44d7 3 0.000182 $HOST -> $ROUTER DNS Standard query PTR 7.d.4.4.1.b.e.f.f.f.e.3.6.1.2.0.1.f.f.f.f.f.d.0.0.0.2.0.1.0.0.2.ip6.arpa 4 0.000183 $ROUTER -> $HOST DNS Standard query response, No such name 5 10.007699 $HOST -> $A_HOST UDP Source port: 54775 Destination port: 59796 6 0.309591 $A_HOST -> $HOST UDP Source port: 59796 Destination port: 54775 7 0.000278 $HOST -> $ROUTER DNS Standard query PTR 7.d.4.4.1.b.e.f.f.f.e.3.6.1.2.0.1.f.f.f.f.f.d.0.0.0.2.0.1.0.0.2.ip6.arpa 8 0.000190 $ROUTER -> $HOST DNS Standard query response, No such name
ホストの正引きは一回だけ。後は5-8が -c の数だけ繰り返される。
$A_HOST を逆引きしたら、 "kotemachi03.
tokyo6to4.net." と出た。
そちらと交わしあっているUDP の中に、ICMPv6が丸ごと入っているのが
見える。
3と7 で逆引きしようとしているのは、orange.kame.net のv6アドレスだった。
wireshark でteredo をキャプチャすると、ふつーにv6ホスト同士で Echo request /reply しているように見えた。
ちなみに付与されるIPv6アドレスはグローバルらしく、簡単にNATの中同士が
繋がってしまった。ファイアウォール破りもいいとこだ。
WindowsXPではSP1 以降teredoに対応しているらしいが、
なんかの脆弱性と絡めて悪用されたことはなかったのだろうか。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。