あるあるおハマり大事典 - 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 さん、ありがとうございましたー