Router Advertisementされているprefixを知りたい

Linux (kernel 2.6)で、RAされているprefixを使ってMACアドレスに依存しない固定的なアドレスをつけたい。

いまいちスマートな方法が見つからないので、prefixを拾ってIPアドレスをつけることに。

んで、そのprefixを拾う方法のお話。

radvdに含まれるradvdumpでしばらく待てば得られるが、RAが来るまで待つ必要がある。でもせっかちなので直ぐほしい。

Router Solicitation(ルータ要請)すればすぐもらえるはずなので、ECHO_REQUEST以外のICMPv6もしゃべれるツールを探したところあんまりなさげ。唯一めっけたのがNDisc6で、これのrdisc6で直ぐにprefixが取れたす。

# rdisc6 -1 -r 3 eth0 | grep Prefix
 Prefix                   : 2001:XXXX:XXXX:XXXX::/64

FreeBSDではじめるIPv6 第7回の1.3 グローバルアドレスのホスト識別子によれば、FreeBSDの実装ではリンクローカルアドレスのホスト識別子がグローバルアドレスのホスト識別子にも使われるらしい。いいなぁ。