liuzan_abc 发表于 2011-12-21 08:43

无端ARP

<DIV>ARP封包中的操作码字段填充为:ARPOP_REQUEST.</DIV>
<DIV>常见的情况:发出这样的ARP包,是想与一个IP地址通信,需要找到对应的L2地址。</DIV>
<DIV>但也有例外情况,发送这个封包的目的不是为了获取信息,而是通知接收方的一些信息,</DIV>
<DIV>这就是所谓的无端ARP。</DIV>
<DIV>但它也是有用的,出现在:</DIV>
<DIV>(1)L2地址改变了(会导致其他网络节点中的ARP缓存失效&lt;neighbour项&gt;),这时需要更新</DIV>
<DIV>(2)IP地址冲突</DIV>
<DIV>(3) virtual IP</DIV>
<DIV>&nbsp;</DIV>
<DIV>IP地址冲突</DIV>
<DIV>&nbsp;&nbsp;&nbsp; 同一个局域网中不应该出现有两台主机有相同的L3地址,尤其在一个同时包括静态IP配置和动态IP配置(DHCP)的大型网络中很有可能。</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;地址重复的常见原因很可能是:存在多个地址池重叠的DHCP server 以及错误的手工配置</DIV>
<DIV>解决方法:</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp; 通过发送无端ARP封包,即发送一个目的IP地址是你自己的地址的ARP请求,那么只有当存在一台与你有相同IP配置的主机,你才会收到应答。</DIV>
<DIV>&nbsp;</DIV>
<DIV>虚拟IP</DIV>
<DIV>&nbsp;&nbsp;&nbsp;常作为HA的一部分实现机制</DIV>
<DIV>&nbsp;&nbsp;&nbsp;它可以允许服务器池中的故障迁移,这是为了使一个站点具有冗余度,该站点除了有一台活跃的server外,还有一定数目backup server</DIV>
<DIV>&nbsp;&nbsp; 当active server由于某些原因宕机后,与heartbeat定时器有关一个机制(通过server&nbsp;pool使用的协议实现)就会检测到这个故障,并启动新active server的选择,这个new active server会生成一个无端ARP封包来更新网络中的所有其他主机上的ARP缓存。因为new active server 继承了bad server's ip,发出的ARPOP_REQUEST不会被应答,但是所有的接收者会更新它们的缓存</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
页: [1]
查看完整版本: 无端ARP