テクネ平成20年度午後2問1設問3(3)ではまってた。

どうもです。


ITECの本試験問題の本の解説を読んでいたのだけれども,
なぜにRARPなのかさっぱり理解できなんだ。


必要条件を俺なりに整理すると・・・。

  • 仮想PC-A1が使用していたIPアドレスと同じIPアドレスで,仮想PC-B1にアクセスしてもらいたい。
  • L3SWが持つarpテーブル(IP:MACのペア)を更新したい。
    • つまり,A1-IP:A1-MAC だとすると,更新後は,A1-IP:B1-MAC にしたい。

となったんで,Gratuitous ARP だと確かに条件を満たしそうということは,
ググってみてわかった。えぇ,Gratuitous ARP という文字列は見たことあるけど,
中身は知りませんでしたよっと。
ほいで,RARPで上記条件をどうやって満たすんだろうと考えはじめたのが,
泥沼化への第一歩でした。


結論はというと,ITEC本の解説に誤りがありました。
正誤表(PDFなので注意されたし)
https://www.itec.co.jp/support/shusei/data/10au/S700628-10_01.pdf
引用させてもらいます。

しかし,L3SW は,仮想NIC が切り替わったかどうかを
知る手段がないので,仮想PC-B1 に切り替わった場合,仮想PC-B1 は,直ちに
仮想L2SW とL3SW の接続ポートを切り替えるように,L3SW に通知する必要があ
る。VMware(Virtual Machine Ware;Windows やLinux 系OS 上で,x86 互換機
を仮想的に作り出すソフトウェアのこと)では,切り替わった仮想PC は,
L3SW のMAC アドレステーブルを書き換える目的で,RARP(Reverse ARP)パケッ
トを送信するように規定している。したがって,解答としては「仮想PC-B1 か
らRARP パケットを送信する」旨を答えるとよい。なお,この問題では,仮想
PC-B1 のMAC アドレスをL3SWに通知し,L3SW が保持しているARP キャッシュ
(ARP テーブル)の内容を,仮想PC-A1 のMAC アドレスから仮想PC-B1 のMAC
アドレスに変更する必要があるとも解釈できる。そこで,仮想PC-B1 が,自分
のIP アドレスに対するARP パケットを送信し,L3SW に対し,ARP キャッシュ
を更新するという方法も考えられる。したがって,「仮想PC-B1 から自分のIP
アドレスに対するARP パケットを送信する」旨を解答してもよい。このような
ARP は,Gratuitous ARP と呼ばれている。


どうやら,ARPテーブルと,forwardingテーブルをごっちゃにしていたようです。
整理すると・・・。

  • RARPを使う場合は,Forwardingテーブルを更新したい。
    • つまり,(MAC:Port)のペアを更新したい。
  • Gratuitous ARPを使用する場合は,L3SWのARPテーブルを更新したい。
    • つまり,(IP:MAC)のペアを更新したい。


で,RARP の場合は,同じIPでアクセスされたら,どうやってPC-B1へ行くんだろう?
どのポートにどのMACアドレスの機器が接続されているかわかっても,
L3SWのARPテーブルで判断したら,サーバAの方に行っちゃいそうなんだけどなぁ。
Gratuitous ARPの方は,とりあえず,サーバBの方に行きそうなので,
大丈夫そうな気がする。


vmwareのコミュニティでも,なんでRARPなんじゃ? Gratuitous ARPでいいんじゃね?
誰か説明してくれよ。ったく。みたいなこと言っている人がいたよ。
http://communities.vmware.com/thread/129056


ま,Gratuitous ARPにしておけば間違いないということでどうでしょうか。
それでも,やはりというか,解説に関しては満足いっているので,
ITEC本が最強でしょうかね。