あるあるおハマり大事典 - Linuxの最近のkernelだとMACアドレス由来のグローバルアドレスだと通信できない気がするけど気のせいかもしれない
具体的にいうと、フレッツ・ドットネットを契約している2拠点で、それぞれMACアドレス由来のEUI64なグローバルアドレスだと通信(ping6とかssh -6とか)できない。できないっていっても拠点間の全ノードができないわけじゃなくて、通信できるノードもあったりするんでまたよくわからない。。。
なんか全然関係ないところでポカしてるかもしれないんですが、最近のLinux kernel (といっても古い方だと2.6.24とかですが) だとこうなるような気がするんですけど、ろくに調べてもいないので 2% ぐらいしか自信ないです。
で、どうしているかというと、sysctlで自動設定をオフにして、
net.ipv6.conf.default.autoconf = 0 net.ipv6.conf.all.autoconf = 0 net.ipv6.conf.lo.autoconf = 0 net.ipv6.conf.eth0.autoconf = 0
/etc/network/interfaces でオレオレなIPv6アドレスをつけつつ MAC アドレス由来のを削除しています。ソースアドレスの絡みと思うんですが、ip -6 route だと src 指定しても効かなかったんで削除ってます。
iface eth0 inet6 static address 2001:XXXX:YYYY:ZZZZ::25 netmask 64 up ip addr del 2001:XXXX:YYYY:ZZZZ:222:19ff:fe08:2b66/64 dev eth0
2009-12-07 追記
を読んで、MACアドレス由来の方のアドレスが選択されないように、そのlabelを変えました。
iface eth0 inet6 static address 2001:XXXX:YYYY:ZZZZ::25 netmask 64 up ip -6 addrlabel add prefix 2001:XXXX:YYYY:ZZZZ:222:19ff:fe08:2b66/128 label 99
これで、宛先アドレスとlabelが等しい2001:XXXX:YYYY:ZZZZ::25がソースアドレスとして選択されるようになりました。
id:nabekenta さん、ありがとうございましたー