Reverse ARP is ..ええと、私が知る限り、ほとんど死んでいますか?プロトコルを殺すというインターネットの素晴らしいサクセスストーリーの1つですか?ほぼ30年間、BOOTP(および後にDHCP)を優先して非推奨になりました。
そのため、DHCPを介して完全に適切なIPアドレスを取得した後でも、PXEブート中にRARPを介して容赦なくIPアドレスを要求するVMに気づいたことに少し驚きました。
ブートの開始時に、送信される最初のブロードキャストパケットはReverse ARPパケットであり、直後にDHCPブロードキャストが続きます。
20:31:19.408086 ARP, Reverse Request who-is 00:0c:29:20:fd:ce tell 00:0c:29:20:fd:ce, length 46
20:31:19.441857 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:0c:29:20:fd:ce, length 548
20:31:19.443536 IP 192.168.100.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
どうやら、最初のDHCP応答は別の応答を待つため(ブロードキャストパケットのみをキャプチャしているため、tcpdump
はDHCP会話の残りの部分を認識しないことに注意してください)、送信する前ではありません。 RARPリクエストの別のカップル:
20:31:19.935341 ARP, Reverse Request who-is 00:0c:29:20:fd:ce tell 00:0c:29:20:fd:ce, length 46
20:31:20.935426 ARP, Reverse Request who-is 00:0c:29:20:fd:ce tell 00:0c:29:20:fd:ce, length 46
20:31:21.500371 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:0c:29:20:fd:ce, length 548
20:31:21.501288 IP 192.168.100.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
20:31:21.504278 ARP, Request who-has 192.168.100.40 tell 192.168.100.6, length 46
20:31:22.935467 ARP, Reverse Request who-is 00:0c:29:20:fd:ce tell 00:0c:29:20:fd:ce, length 46
わかりました。 IPを取得し、PXEサーバーに対してARPを実行して、TFTPを起動できるようにしました。最後に別のRARPをそこに忍び込ませます。これで、pxelinux環境に完全に移行しました。
その後?最後のリクエストからちょうど1秒後の別のRARPリクエスト。
20:31:23.935340 ARP, Reverse Request who-is 00:0c:29:20:fd:ce tell 00:0c:29:20:fd:ce, length 46
そしてもう1つ、ちょうど2秒後。
20:31:25.935384 ARP, Reverse Request who-is 00:0c:29:20:fd:ce tell 00:0c:29:20:fd:ce, length 46
そしてその後、いくつかの。 3秒後、5秒後、8秒、13秒、21秒..そしてその時点でようやく治まります。
20:31:28.935548 ARP, Reverse Request who-is 00:0c:29:20:fd:ce tell 00:0c:29:20:fd:ce, length 46
20:31:33.935518 ARP, Reverse Request who-is 00:0c:29:20:fd:ce tell 00:0c:29:20:fd:ce, length 46
20:31:41.935633 ARP, Reverse Request who-is 00:0c:29:20:fd:ce tell 00:0c:29:20:fd:ce, length 46
20:31:54.935970 ARP, Reverse Request who-is 00:0c:29:20:fd:ce tell 00:0c:29:20:fd:ce, length 46
20:32:15.936232 ARP, Reverse Request who-is 00:0c:29:20:fd:ce tell 00:0c:29:20:fd:ce, length 46
Pxelinux環境では、動作中のIPアドレスがすでにそのNICにバインドされています。
それで、誰かがこのVM(または、少なくとも4.1と5.0のすべてのESX(i)VM)が何を考えているかを知っていますか?
エミュレートされたE1000とvmxnet3デバイスの両方で発生することを確認しました。これは、VMware PXEコードのちょっとした「特別な」動作ですか、それとも古いPXEコードの典型的な動作ですか。
プロトコルとしてPXEサーバー情報を提供できないため(私が知る限り)、RARPを探すことはまったく意味がありますか?
PXEデバイスがどのように反応するかを確認するには、弾丸を噛んでrarpd
を設定する必要がありますか?
私は間違っているかもしれませんが、vswitchで「スイッチの通知」構成がオンになっている場合(デフォルトではオン)、これはvkernelによって送信されたRARPパケットのようです。