トップ «前の日記(2011-06-23(Thu)) 最新 次の日記(2011-07-06(Wed))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2011-06-28(Tue) 花火もセミもスイカもないが、蚊だけはいる

miredo

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や内容が変った場合はあしからず。

index.htmlは ここから。