catalinaの備忘録

ソフトウェアやハードウェアの備忘録。後で逆引きできるように。

ルータが送信していたIPv6のRA

家庭用ルータの配布するルータ広告って何が記載されているのか?

というわけで調査を開始。
話の発端は別件。WireShark立ち上げてパケットキャプチャしたらルータ広告(以下RA)出てたのが見えて「なんぞ?」となったから。

訂正:さらに詳細に調査した結果は次のURLです。
実際にRA出しているのはプロバイダのエッジルータと思われます。
http://catalina1344.hatenablog.jp/entry/2013/05/23/003349

1、復習をかねた自分の中の情報の整理


1、1 IPv6のお話

IPv6IPv4とアドレス体系が違うから、V4とは別物として扱う必要がある。
プロトコルもアドレスも別物ということは、移行期(v4アドレス枯渇からv6への移行中にあたるまさに今の状況)はIPv4/v6両方に対応する必要がある。

この「IPv4/IPv6両方に対応している」というノード(PCやルータ)をデュアルスタックノードという。
他の方法としてトンネリング等もあるらしいけど、それはまた別途。

1、2 RAって何?

RAが何をするのかという話の前に、アドレス割り当てのお話から。
IPv4時代の初期には、アドレスは手動設定していたらしい。でも端末の数が増えてくると全部に設定するの大変なので自動でやってくれる方法が考案された。これがDHCP
DHCPIPv6とv4では別物になる。ここではそれぞれを区別するために(DHCPv4/DHCPv6)と呼ぶ。
IPv6でのアドレス割り当て方法にはDHCPv6だけではなくて、ルータ広告という手段も存在する。

2、RAの気になった点

RAで配布できる情報の中で、今回気になったのは
・DHCPv6を起動するかどうかを示すフラグ(O/M)フラグ
の部分。
この部分は仕様がごちゃごちゃしていて、職場で議論になることもある。

RAのフラグの仕様はRFC2462(ステートレスアドレス自動設定)に示されている。
次のとおり。
・O=1, M=0のフラグを受信したら、INFORMATION-REQUESTを出すためにDHCPv6を起動せよ
・O=1, M=1のフラグを受信したら、SOLICIT-REPLYメッセージでアドレス割り当てを受けるために DHCPv6を起動せよ
・フラグの初期値はO=0,M=1という値はあり得ない。M=1ならばOも暗黙に1である。
・フラグの初期値はO=0,M=0

このフラグの仕様では「DHCPv6の動きをルータ広告という別プロトコルをもって制御せよ」ということを意味している。

新しいRFCではフラグについての文言が削除されている。
RFC4862(ステートレスアドレス自動設定)
確かに全部消えている。他にもいろいろと差分があるけど、気にしないでおこう。


2、1 ではRAのフラグの扱いは何が正解?

最新の仕様がすべて正解というなら話は楽だが、世界にはデファクトスタンダードとかダブルスダンダードというものも存在する。なので参考情報として「この機器はこう動いていたよ!」って情報があれば、議論の場での参考情報として使える。
日本人特有の「右へならえ」じゃないけども、ネットワークの世界ではお互いの意識合わせが大事なわけで。

というわけで、ウチで使っているルータ(Logitec製)が出していたRAの情報。特にフラグの部分。

f:id:Catalina1344:20130511091503p:plain

割り当てられたIPv6アドレスは念のため伏せておく。
さて、今回の議題はflag。
flags : 0x00とある中の先頭がMフラグ(Managed address configuration)
次がOフラグ(Other configuration)

どっちもゼロですね。。。
値がわかったところで、RA出してるルータ見たのは初めてなので、何が正解かわかんないです。だからこそこんなことやってるわけですが。
ちなみに、このルータの設定画面では「IPv6ブリッジ」モードらしい。

まずは情報の整理まで。
仕様が右往左往すると末端が苦労するってこういうことなんだなと実感。
「未確定だから、xxxxの実装まで終わらせてから議論しましょう」とかやったほうがいいよね。
アジャイル