反向ARP是..好,几乎死了,据我所知? 互联网成功故事中的一个很好的例子是杀死一个协议? 近三十年来,它已经被弃用,以支持BOOTP(以及后来的DHCP)。
所以,在PXE启动过程中,即使在通过DHCP获得完美的IP地址之后,我仍然有点惊讶地发现虚拟机无情地通过RARP请求IP地址。
在启动开始时,发送的第一个广播数据包是一个反向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,然后ARP的PXE服务器,以便它可以启动TFTP。 它最后偷偷抓住另一个RARP,没问题。 现在进入pxelinux环境:

接着? 另一个RARP请求,正好在最后一个之后1秒。
20:31:23.935340 ARP, Reverse Request who-is 00:0c:29:20:fd:ce tell 00:0c:29:20:fd:ce, length 46
而另一个,恰恰是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。
那么,有没有人知道这个虚拟机(或者说每个ESX(i)虚拟机,至less在4.1和5.0上)在想什么?
我已经validation它在仿真的E1000以及vmxnet3设备上都会发生; 这是否是VMware PXE代码的“特殊”行为,或者这是任何ol PXE代码的典型行为?
它是否有任何意义,因为它作为一个协议,它不能提供任何PXE服务器信息(据我所知)是否一直在寻找RARP?
我是否需要硬着头皮来设置rarpd以查看PXE设备如何对其作出反应?
我可能是错的,但是这似乎像vwitnel发送的RARP数据包,如果vswitch具有“Notify Switches”configuration,默认情况下是打开的。