首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无偿的ARP是怎么工作的?

问无偿的ARP是怎么工作的?
EN

Network Engineering用户
提问于 2014-05-02 06:00:20
回答 3查看 124.5K关注 0票数 41

无偿的ARP是否像正常的ARP请求一样工作?

为什么无偿的ARP被用于HSRP?

EN

回答 3

Network Engineering用户

回答已采纳

发布于 2014-05-02 08:17:00

无偿的ARP是一种“预先通知”,它在其他系统请求ARP缓存(没有ARP请求)或更新过时的信息之前更新ARP缓存。

当谈到无偿的ARP时,数据包实际上是特殊的ARP请求包,而不是人们可能期望的ARP回复数据包。在RFC 5227中解释了一些原因。

无偿的ARP包具有以下特点:

  • 数据包中的源IP和目标IP都是发出免费ARP的主机的IP。
  • 目标MAC地址是广播MAC地址(ff:ff:ff:ff:ff:ff) 。
    • 这意味着数据包将被淹没到交换机上的所有端口。

  • 预计不会有任何答复

使用无偿的ARP有以下几个原因:

  • 在MAC地址之后更新用于IP更改的ARP表(故障转移、新NIC等)
  • 更新L2设备(交换机)上的MAC地址表,该交换机现在位于另一个端口上
  • 当接口上升时发送免费的ARP,提前通知其他主机新的MAC/IP绑定,这样他们就不必使用ARP请求来查找
  • 当收到对无偿的ARP请求的答复时,您知道您的网络中存在IP地址冲突。

至于您问题的第二部分,HSRP、VRRP等使用免费的ARP更新L2设备(交换机)上的MAC地址表。此外,还可以选择使用HSRP的刻录MAC地址,而不是“虚拟”地址。在这种情况下,无偿的ARP还将更新L3设备/主机上的ARP表。

票数 48
EN

Network Engineering用户

发布于 2017-06-30 19:47:57

无偿ARP是没有由ARP请求提示的ARP响应。无偿的ARP作为广播帧发送,作为节点宣布或更新其IP到MAC映射到整个网络的一种方式。

ARP数据包包含"Opcode“字段,该字段指示包是请求还是响应。在无偿ARP中,Opcode字段设置为2,这表示响应:

有很多无偿ARP用例,通常都需要更新ARP映射或开关端口MAC地址表。

HSRP (和其他许多冗余协议)经常使用免费的ARP。此动画将演示如何:

注意,RouterA和RouterB共享IP地址10.0.0.1和MAC地址0053.ffff.1111。主机的10.0.0.1配置为默认网关,每个网关都有一个ARP映射,指示10.0.0.1 IP地址映射到0053.ffff.1111 MAC地址。由于MAC地址和IP地址都是在两个路由器之间共享的,因此这个ARP映射永远不需要更新。

然而,当RouterA是活动的HSRP路由器时,该MAC地址由连接到开关端口1的设备提供。如果RouterA失败,则RouterB发送一个免费的ARP来更新交换机的MAC地址表,该交换机地址0053.ffff.1111现在由连接到交换机端口2的设备提供。

如果RouterB失败,而RouterA需要重新服务IP/MAC 10.0.0.1/0053.ffff.1111,则该过程再次发生。

上面动画中HSRP转换和GARP数据包的包捕获可以是下载和研究中的Wireshark。

虽然这并不是严格意义上的问题,但考虑到这个问答中的评论,我认为提及重复地址检测是明智的:

对于重复地址检测和无偿的ARP,有一个经常混淆的点。当计算机试图查看网络上的另一个主机是否正在使用特定的IP地址时,它不会发送免费的ARP。

这样做的原因是,根据定义,无偿的ARP是为了更新网络上其他设备的ARP映射。如果IP不是唯一的,我们不希望“唯一性测试”导致一个不正确的ARP条目被更新。

实际上,一组特定的ARP消息用于重复地址检测:一个ARP探测与ARP公告。

这两个包与实际的免费ARP之间的关键区别在于ARP探针没有一个完整的IP/MAC映射,因此ARP探测不可能错误地更新ARP。

一般的过程是ARP探测被发送了几次,如果IP已经在使用,这将提示有关IP的所有者发送一个免费的ARP。如果没有收到响应,则发送方发送一个ARP公告来正式声明网络上的IP地址。

ARP声明甚至更类似于无偿的ARP,但从技术上讲,它(也)并不相同,因为ARP公告的操作码为1表示请求(其中表示为免费的ARP将有一个操作码2)。

票数 19
EN

Network Engineering用户

发布于 2015-04-15 07:14:34

如果你想要一些视频,这里有一个很好的解释。

https://www.youtube.com/watch?v=JPLn6wfAmZY

票数 0
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/7713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档