免费 ARP(Gratuitous ARP)包是一种特殊的 ARP 请求,它并非期待得到 IP 对应的 MAC 地址,而是当主机启动的时候,发送一个 Gratuitous ARP 请求,即请求自己的 IP 地址的 MAC 地址。
1. 免费 ARP 包的结构
免费 ARP 报文与普通 ARP 请求报文的区别在于报文中的目标 IP 地址。普通 ARP 报文中的目标 IP 地址是其他主机的 IP 地址;而免费 ARP 的请求报文中,目标 IP 地址是自己的 IP 地址。
2. 免费 ARP 的作用
免费 ARP 数据包有以下 3 个作用:
- 该类型报文起到一个宣告作用。它以广播的形式将数据包发送出去,不需要得到回应,只为了告诉其他计算机自己的 IP 地址和 MAC 地址。
- 可用于检测 IP 地址冲突。当一台主机发送了免费 ARP 请求报文后,如果收到了 ARP 响应报文,则说明网络内已经存在使用该 IP 地址的主机。
- 可用于更新其他主机的 ARP 缓存表。如果该主机更换了网卡,而其他主机的 ARP 缓存表仍然保留着原来的 MAC 地址。这时,可以发送免费的 ARP 数据包。其他主机收到该数据包后,将更新 ARP 缓存表,将原来的 MAC 地址替换为新的 MAC 地址。
3. 构造免费 ARP 包
用户可以使用 netwox 工具中编号为 33 的模块构造免费的 ARP 数据包。
【示例】构造免费的 ARP 数据包。
-
构造免费的 ARP 数据包,设置源 IP 地址和目标 IP 地址为 192.168.59.132,执行命令如下:
1$ netwox 33 -g 192.168.59.132 -i 192.168.59.132输出信息如下:
1234567Ethernet________________________________________________________.| 00:0C:29:AA:E0:27->00:08:09:0A:0B:0C type:0x0806 ||_______________________________________________________________|ARP Request_____________________________________________________.| this address : 00:0C:29:AA:E0:27 192.168.59.132 || asks : 00:00:00:00:00:00 192.168.59.132 ||_______________________________________________________________| -
使用 Wireshark 进行抓包,验证构造的免费 ARP 数据包,如图所示。
其中,第一个数据包的 Info 列显示 Gratuitous ARP for 192.168.59.132(Request),表示该数据包为构造的免费 ARP 数据包。
在 Address Resolution Protocol(request/gratuitous ARP) 部分中,Sender IP address 和 Target IP address 的值为同一个 IP 地址 192.168.59.132。
4. arp双发及作用?
-
ARP双发
ARP双发主要在A设备上:A下联基站(图左侧),与B1、B2建立主备PW,数据是单发双收(图右侧),但ARP/ND报文在A设备上是双发双收(即主、备PW都会收发ARP、ND报文)。
-
作用:IPRAN的配置基本都是为了快速收敛特性。
在MPLS L2VPN接入L3VPN或IP骨干网组网中,配置PW冗余保护功能的PE设备(图中A设备)只会在主PW上透传用户侧的ARP报文,这样在备PW上无法学习用户侧的MAC地址。当主PW发生节点故障时,备PW需要通过流量触发才能学习到用户侧ARP表项,导致部分流量丢失。
在AC所在的接口上配置本命令后,PE(A设备)从AC(最左侧)收到用户侧ARP报文会在主备PW上透传并缓存该报文,若只存在一条PW,则在备PW状态UP后将缓存的报文同步到主备PW上,减少主PW发生节点故障时的流量丢失。
转载自 免费ARP详解
赞赏微信赞赏
支付宝赞赏