为什么免费ARP用于HSRP?
#1 楼
免费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之后(故障转移,新的NIC等)更新ARP表
更新L2设备(交换机)上的MAC地址表,使MAC地址现在位于其他端口上
当接口上升时发送免费ARP,以提前通知其他主机有关新的MAC / IP绑定的信息,以便它们不再具有使用ARP请求找出
当收到免费ARP请求的回复时,您知道您的网络中存在IP地址冲突
关于问题的第二部分HSRP,VRR P等使用免费ARP更新L2设备(交换机)上的MAC地址表。也可以选择将内置的MAC地址用于HSRP,而不是“虚拟”一个。在这种情况下,免费ARP也将更新L3设备/主机上的ARP表。
评论
如何查看免费ARP报文?
–木马
2014年5月3日在18:31
使用Wireshark之类的网络嗅探器
–塞巴斯蒂安·维辛格
2014年5月4日12:02
是否有针对免费ARP的wireshark捕获。
–木马
2014年5月4日13:13
您可以在Wireshark主页上看到示例数据包
–塞巴斯蒂安·维辛格
2014年5月4日18:27
因为您收到的是ARP请求的答案,该请求中包含您自己的IP。因此,其他人拥有此IP并正在相应地回答。
–塞巴斯蒂安·维辛格
2014年8月12日在12:07
#2 楼
免费ARP是ARP请求未提示的ARP响应。免费ARP作为广播帧发送,作为节点宣布或更新其IP到MAC到整个网络的MAC映射的一种方式。数据包是请求还是响应。在免费ARP中,“操作码”字段设置为2
,它指示响应:某种形式的更新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地址表,该MAC地址表现在已由连接到交换端口2的设备服务。如果RouterB发生故障,则该过程再次发生,并且RouterA需要接管为IP / MAC提供服务。 Wireshark。
虽然不是您严格要求的内容,但鉴于此问答中的评论,我认为明智的做法是提及有关重复地址检测的内容: />关于重复地址检测和免费ARP,经常有一个混淆点。当计算机尝试查看网络上的其他主机是否正在使用特定IP地址时,它不会发送免费ARP。
其原因是根据定义,免费ARP旨在更新网络上其他设备的ARP映射。如果IP不是唯一的,则我们不希望“唯一性测试”导致不正确的ARP条目被更新。检测:一个ARP探针和ARP公告。
这两个数据包与实际的免费ARP的关键区别在于ARP探针没有完整的IP / MAC映射,因此不可能ARP探针会意外错误地更新ARP缓存。
一般过程是ARP探针发送了几次,如果IP是已经在使用了。如果未收到响应,则发送方将发送ARP公告以正式声明网络上的IP地址。
ARP公告甚至与免费ARP相似,但也并非如此。从技术上讲是相同的,因为ARP公告的操作码为
0053.ffff.1111
,表示请求(而免费ARP的操作码为10.0.0.1
)。#3 楼
如果您想要一些视频,请在此处进行详细说明。https://www.youtube.com/watch?v=JPLn6wfAmZY
评论
你在某处读过这个吗?如果没有,那应该。如果您这样做了,但不清楚的地方,请在问题中更具体。@Gerben我对arp的工作方式很清楚,但是这个概念使我感到困惑,尤其是在HSRP中,此ARP的工作方式..
一个说Grauitous ARP是一个请求,而另一个显示Wireshark方案说这是一个Reply。这是某种随机行为吗?在我的计算机中,嗅到的免费ARP数据包也被记录为请求(操作码:1)。