1.2 ARP 简介
1.2.1 定义
在局域网中,当主机或网络设备有数据要发送给另一个主机或设备时,它必须知道对方的网络层地址。
但是仅有 IP 地址是不够的,因为 IP 数据报文必须封装成帧才能通过物理网络发送,因此发送方还必须有接收方的物理地址(MAC地址),所以需要一个从 IP 地址到物理地址的映射。
ARP 就是实现这个功能的协议。 地址解析协议 ARP(Address Resolution Protocol)是用来将 IP 地址解析为 MAC 地址的 协议。
[反向地址解析协议 RARP(Reverse Address Resolution Protocol)是用来将 MAC 地址 解析为 IP 地址的协议。] ARP 属于三层(网络层)协议。
1.2.2 ARP 基本原理
(1)ARP报文格式

主要字段解释如下:
Hardware Type:硬件地址的类型。对于以太网,该类型的值为“1”。
Protocol Type:映射的协议地址类型。 对于 IP 地址,该值为 0x0800。
Hardware Length:硬件地址长度。对于 ARP 请求或应答来说,该值为 6。
Protocol Length:协议地址长度。对于 ARP 请求或应答来说,该值为 4。
OP:操作类型。1 表示 ARP 请求,2 表示 ARP 应答。
Ethernet Address of sender:发送方 MAC 地址。
IP Address of sender:发送方 IP 地址。
Ethernet Address of destination:接收方 MAC 地址。
IP Address of destination:接收方 IP 地址。
(2)ARP 地址解析过程(动态 ARP)
ARP 通过以广播 ARP 请求和单播 ARP 应答这两个过程完成地址解析。
图 1 ARP 地址解析过程

当需要通信的两台主机处于同一网段时,如图 1 中的 Host_1 和 Host_3,Host_1 要向 Host_3 发送数据。
首先,Host_1 会查找自己本地缓存的 ARP 表,确定是否包含 Host_3 对应的 ARP 表项。
如果 Host_1 在 ARP 表中找到了 Host_3 对应的 MAC 地址,则 Host_1 直接利用 ARP 表中的 MAC 地址,对数据报文进行帧封装,并将数据报文发送给 Host_3。
如果 Host_1 在 ARP 表 中找不到 Host_3 对应的 MAC 地址,则先缓存该数据报文,并以广播方式发送一个 ARP 请 求报文。
如图 1 中所示,OP 字段为 1 表示该报文为 ARP 请求报文,ARP 请求报文中的源 MAC 地址和源 IP 地址为 Host_1 的 MAC 地址和 IP 地址,目的 MAC 地址为全 0 的 MAC 地 址,目的 IP 地址为 Host_3 的 IP 地址。
Router_1 收到 ARP 请求报文后,将该 ARP 请求报文在同一广播域内转发。
同一广播域内的主机 Host_2 和 Host_3 都能接收到该 ARP 请求报文,但只有被请求的 主机(即 Host_3)会对该 ARP 请求报文进行处理。Host_3 比较自己的 IP 地址和 ARP 请求 报文中的目的 IP 地址,当两者相同时进行如下处理:将 ARP 请求报文中的源 IP 地址和源 MAC 地址(即 Host_1 的 IP 地址和 MAC 地址)存入自己的 ARP 表中。之后以单播方式发送 ARP 应答报文给 Host_1,ARP 应答报文内容如图 1 中所示,OP 字段为 2 表示该报文为 ARP 应答报文,源 MAC 地址和源 IP 地址为 Host_3 的 MAC 地址和 IP 地址,目的 MAC 地址和目 的 IP 地址为 Host_1 的 MAC 地址和 IP 地址。
Router_1 收到 ARP 应答报文后,将该 ARP 应答报文转发给 Host_1。Host_1 收到 ARP 应答报文后,将 Host_3 的 MAC 地址加入到自己的 ARP 表中以用于后续报文的转发,同时 将数据报文进行帧封装,并将数据报文发送给 Host_3。
当需要通信的两台主机处于不同网段时,如图 1 中的 Host_1 和 Host_4,Host_1 上已经 配置缺省网关,Host_1 首先会发送 ARP 请求报文,请求网关 Router 的 IP 地址对应的 MAC 地址。Host_1 收到 ARP 应答报文后,将数据报文封装并发给网关,再由网关将数据报文发 送给目的主机 Host_4。Host_1 学习网关 IP 地址对应的 ARP 表项的过程,以及网关设备学习Host_4 的 IP 地址对应的 ARP 表项的过程与上述同网段主机 Host_1 和 Host_3 之间进行 ARP 地址解析的过程类似,不再赘述
一、同网段场景(A 与 B 在同一局域网)
A 要向 B 发送数据,先查本地 ARP 表:
若有 B 的 MAC 地址:直接封装数据帧,单播发送给 B。
若无 B 的 MAC 地址:先缓存数据,再广播发送 ARP 请求
网关在同一广播域内转发该 ARP 请求,只有 B 会响应:
B 核对 IP 一致后,将 A 的 MAC/IP 存入自身 ARP 表,再单播回复 ARP 应答
A 收到应答后,将 B 的 MAC 加入 ARP 表,完成数据帧封装并发送给 B。
######
以太网帧头的目的 MAC:FFFF-FFFF-FFFF(广播,确保请求报文被同网段所有设备接收)。
ARP 报文内部的目的 MAC:0000-0000-0000(未知,明确表示当前未获取到目标设备的物理地址)。
二、不同网段场景(A 与 B 不在同一局域网,A 已配置网关)
A 先发送 ARP 请求,获取网关的 MAC 地址(过程与同网段解析一致)。
A 将数据帧封装为 “目的 MAC 是网关 MAC,目的 IP 是 B 的 IP”,单播发给网关。
网关再通过 ARP 解析获取 B 的 MAC 地址,将数据转发给 B。
(3)ARP 老化机制
●高速缓存
•如果每次 Host_1 和 Host_3 通信前都要发送一个广播的 ARP 请求报文的话,会极大的增加 网络负担。而且网络上的所有机器都必须接收和处理这个广播的 ARP 请求报文,也极大的影响了网络运行效率。
•为了解决以上问题,每台主机上都维护着一个高速缓存,这是 ARP 高效运行的一个关键。 在这个高速缓存中,存放最近获得的 IP 地址到 MAC 地址的映射关系。
•发送方在每次发送报文时,都先在缓存中查找目标 IP 地址所对应的 MAC 地址。如果 ARP 缓存中有对应的 MAC 地址,主机就不会再发送 ARP 请求报文,而是直接将报文发至这个 MAC 地址。如果 ARP 缓存中没有对应的 MAC 地址时,主机才会发送广播的 ARP 请求报文。
●动态 ARP 表项的老化超时时间
•当 Host_1 收到 Host_3 的 ARP 回应时,在 Host_1 的缓存中会形成 Host_3 的 IP 地址和 MAC 地址的映射关系。
但是,如果 Host_3 发生故障或者更换了网卡时,Host_1 没有得到关于 Host_3 的任何通告,于是 Host_1 仍会继续将报文发送给 Host_3。造成地址解析出现错误的 原因就是 Host_1 中的映射表的信息没有得到及时的更新。
•为了减少地址解析过程中所出现的错误,ARP 高速缓存中的表项一般都会设定一个定时器。 当达到定时器的动态 ARP 表项的老化超时时间,设备进行老化探测,如果探测失败,删除 该表项;否则,保留该表项。
•通过设置定时器,在地址解析过程中出现错误的现象得到了改善但并没有完全消除,其原因在于时延。如果定时器的动态 ARP 表项的老化超时时间是 N 秒,发送方只有等到 N 秒后 才能检测到接收方出现了故障,在此期间发送方缓存表的信息还是没有得到及时的更新。
●动态 ARP 表项的老化探测次数
•除了设置定时器中动态 ARP 表项的老化超时时间,还可以通过设置动态的探测次数来减少地址的解析错误。
在将一条动态 ARP 表项老化之前,系统先进行探测,如果超过设置的探测次数后探测的目标主机仍没有应答,则此 ARP 表项将被删除。
●动态 ARP 表项的老化探测模式
•ARP 表项老化之前,接口会发送 ARP 老化探测报文。老化探测报文可以是单播报文,也可 以是广播报文。
设备只在最后一次发送 ARP 老化探测报文是广播模式,其余均为单播模式 发送。
•当对端设备的 IP 地址不变化而 MAC 地址频繁更新时,建议使用广播模式发送 ARP 老化探 测报文。
•当对端设备 MAC 地址不变,当前网络带宽资源特别紧缺,且 ARP 表项的老化时间设置的 比较小时,建议使用单播模式发送 ARP 老化探测报文。
•当其他厂商设备与华为设备互联时,其他厂商设备接收到目的 MAC 地址为广播地址的 ARP 老化探测报文后,若 ARP 表项中已存在华为设备的 IP 地址与 MAC 地址映射,则丢弃该广 播 ARP 老化探测报文。
华为设备由于收不到该探测报文的应答报文,而删除对应的 ARP 表 项,导致网络侧过来的流量不通。这种特殊情况下华为设备需要配置成以单播方式发送 ARP
1.2.3 ARP 类型
(1)动态 ARP 动态
ARP 表项由 ARP 协议通过 ARP 报文自动生成和维护,可以被老化,可以被新的 ARP 报文更新,可以被静态 ARP 表项覆盖。当到达老化时间、接口 Down 时会删除相应的 动态 ARP 表项。
ARP 表项出接口是隧道的时候,当隧道状态发生变化,ARP 表项不联动感知。ARP 表项靠老化删除。
(2)静态 ARP
静态 ARP 是指 IP 地址和 MAC 地址之间有固定的映射关系,由网络管理员手动配置生成。
静态 ARP 表项不会被老化,不会被动态 ARP 表项覆盖。
正常情况下网络中设备可以通过 ARP 协议进行 ARP 表项的动态学习,生成的动态 ARP 表项可以被老化,可以被更新。
但是当网络中存在 ARP 攻击时,设备中动态 ARP 表 项可能会被更新成错误的 ARP 表项,或者被老化,造成合法用户通信异常。
静态 ARP 表 项不会被老化,也不会被动态 ARP 表项覆盖,可以保证网络通信的安全性。
静态 ARP 表项可以限制本端设备和指定 IP 地址的对端设备通信时只使用指定的 MAC 地址,此时攻击 报文无法改本端设备的 ARP 表中 IP 地址和 MAC 地址的映射关系,从而保护了本端设 备和对端设备间的正常通信。
一般在网关设备上配置静态 ARP 表项。
1.2.4 ARP 应用
(1)免费 ARP
(1)免费 ARP 设备主动使用自己的 IP 地址作为目的 IP 地址发送 ARP 请求,此种方式称免费 ARP。
作用
①IP 地址冲突检测:当设备接口的协议状态变为 Up 时,设备主动对外发送免费 ARP 报文。
正常情况下不会收到 ARP 应答,如果收到,则表明本网络中存在与自身 IP 地 址重复的地址。
如果检测到 IP 地址冲突,设备会周期性的广播发送免费 ARP 应答 报文,直到冲突解除。
②用于通告一个新的 MAC 地址:发送方更换了网卡,MAC 地址变化,为了能够在动 态 ARP 表项老化前通告网络 中其他设备,发送方可以发送一个免费 ARP。
③在 VRRP 备份组中用来通告主备发生变换:发生主备变换后,MASTER 设备会广播发 送一个免费 ARP 报文来通告发 生了主备变换。
设备收到免费 ARP 报文后,进行如下判断:
⚫ 如果免费 ARP 报文中源 IP 地址和自己的 IP 地址相同,则周期性的广播发送免费 ARP 应答报文,告知此 IP 地址在网络中存在冲突,直到冲突解除。
⚫ 如果免费 ARP 报文中源 IP 地址和自己的 IP 地址不同,免费 ARP 报文是在 VLANIF接口收到的,并且设备上已经有免费 ARP 报文中源 IP 地址对应的动态 ARP 表项,则进 行 ARP 学习,即根据收到的免费 ARP 报文更新该 ARP 表项。
其余情况收到免费 ARP 报文后均不进行 ARP 学习。
(2)ARP 代理(Proxy ARP)
如果ARP请求是从一个网络的主机发往同一网段但不在同一物理网络上的另一台主机, 那么连接这两个网络的设备就可以回答该 ARP 请求,这个过程称作 ARP 代理(Proxy ARP)。
●产生原因:
ARP 只适用于处于同一物理网络的相同网段主机之间的通信。网络中的交换机收到主 机发送的 ARP 请求报文后,会检查报文的目的 IP 地址是否是本机的 IP,以确定该报文请求 的是不是本机的 MAC 地址。如果是,则回复 ARP 响应报文;如果不是,则丢弃该 ARP 请 求报文。
对于不在同一物理网络但属于相同网段的主机,或者在同一物理网络属于相同网段但不 能二层互通的主机,可以在其之间的交换机上部署 ARP 代理功能,以实现这些主机之间的 通信。
部署 ARP 代理功能后,交换机收到 ARP 请求报文且发现其目的地址不是自己,则使 用交换机自己的 MAC 地址以及目的主机的 IP 地址向源主机回复 ARP 响应报文,即交换机代替目的主机回复 ARP 响应报文。
●适用场景:

Proxy ARP 分为路由式 Proxy ARP、VLAN 内 Proxy ARP 和 VLAN 间 Proxy ARP,如表 1 所示。
Proxy ARP
●实现过程:
▪ 路由式 Proxy ARP 如果主机属于同一网段却不在同一物理网络上并且连接主机的网关设备具有不同的网关地址,此时主机间要互通,则需要在交换机连接主机的接口上启用路由式 Proxy ARP 功 能。

如图 1 所示,HostA 的 IP 地址为 10.10.10.1/16,HostB 的 IP 地址为 10.10.11.1/16, HostA 与 HostB 处于同一网段。Switch 通过 VLANIF 10 和 VLANIF 20 连接两个网络,VLANIF10 和 VLANIF 20 的 IP 地址不在同一个网段。当 HostA 需要与 HostB 通信时,由于目的 IP 地 址与本机的 IP 地址为同一网段,因此 HostA 以广播形式发送 ARP 请求报文,请求 HostB 的 MAC 地址。但是,由于两台主机处于不同的物理网络(不同广播域)中,HostB 无法收到 HostA 的 ARP 请求报文,因此也就无法应答。
通过在 Switch 的 VLANIF 10 和 VLANIF 20 上使能路由式 Proxy ARP 功能,可以解决上 述问题。
HostA 发送 ARP 请求报文,请求目的主机 HostB 的 MAC 地址。 Switch 收到此 ARP 请求报文后,检查报文的目的 IP 地址,发现并不是自己本机的 IP, 因此确定该报文请求的不是自己的 MAC 地址。然后,Switch 检查是否存在到达 HostB 的路 由:
如果没有到 HostB 的路由,则丢弃 HostA 发送的 ARP 请求报文。 如果有到 HostB 的路由,则判断接收报文的接口上是否使能了路由式 Proxy ARP 功能:
如果使能了路由式 Proxy ARP 功能,则将 VLANIF 10 的 MAC 地址通过 ARP 响应报文发 送给 HostA。 HostA 收到 Switch 发送的 ARP 响应报文后,认为此报文是 HostB 发送的 ARP 响应报 文。HostA 从报文中学习 Switch 设备 VLANIF 10 的 MAC 地址,并使用此 MAC 地址向 HostB 发送数据报文。
如果没有使能路由式 Proxy ARP 功能,则丢弃 HostA 发送的 ARP 请求报文。
▪ VLAN 内 Proxy ARP
如果主机属于相同的 VLAN,但 VLAN 内配置了二层端口隔离,此时主机间要互通,则 需要在关联 VLAN 的接口上启用 VLAN 内 Proxy ARP 功能。

如图 2 所示,HostA 和 HostB 是 Switch 下的两个主机。
连接 HostA 和 HostB 的两个接 口在 Switch 属于同一个 VLAN 4。
由于在 Switch 上配置了 VLAN 内的二层端口隔离,因此 HostA 和 HostB 不能直接在二层互通。
通过在 Switch 的 VLANIF 4 上使能 VLAN 内 Proxy ARP 功能,可以解决上述问题。
1. HostA 发送 ARP 请求报文,请求目的主机 HostB 的 MAC 地址。
2.Switch 收到此 ARP 请求报文后,检查报文的目的 IP 地址,发现并不是自己本机的 IP, 因此确定该报文请求的不是自己的 MAC 地址。然后,Switch 检查是否存在到达 HostB 的 ARP 表:
1) 如果有 HostB 对应的 ARP 表项,且该表项中的 VLAN 信息与接收报文的端口的 VLAN 信息相同,
则判断关联 VLAN 的接口是否使能了 VLAN 内 Proxy ARP 功能:
如果使能了 VLAN 内 Proxy ARP 功能,则将 VLANIF 4 的 MAC 地址发送给 HostA。 HostA 收到Switch发送的ARP响应报文后认为此报文是HostB发送的ARP响应报文 HostA 从报文中学习 Switch 设备 VLANIF 4 的 MAC 地址,并使用此 MAC 地址向 HostB 发送数据报文。
如果没有使能 VLAN 内 Proxy ARP 功能,则丢弃该 ARP 请求报文。
2)如果没有 HostB 对应的 ARP 表项,则丢弃 HostA 发送的 ARP 请求报文,同时判断关联 VLAN 的接口是否使能了 VLAN 内 Proxy ARP 功能:
如果使能了 VLAN 内 Proxy ARP 功能,则在 VLAN 4 内广播发送 ARP 请求报文,该请求 报文的目的 IP 地址为 HostB 的 IP 地址。收到 HostB 发送的 ARP 响应报文后,生成相应的 ARP 表项。
如果没有使能 VLAN 内 Proxy ARP 功能,则不进行任何操作。
▪ VLAN 间 Proxy ARP
如果主机处于同一物理网络相同网段但属于不同的 VLAN,主机间要进行三层互通,则 需要在关联这些 VLAN 的接口上使能 VLAN 间 Proxy ARP 功能。
如图 3 所示,HostA 和 HostB 是 Switch 下的两个用户,HostA 和 HostB 处于相同网段, 但 HostA 属于 VLAN 3,HostB 属于 VLAN 2。由于 HostA 和 HostB 属于不同的 Sub-VLAN, HostA 和 HostB 不能直接实现二层互通
通过在 Switch 的 VLANIF 4 上使能 VLAN 间 Proxy ARP 功能,可以解决上述问题。

1. HostA 发送 ARP 请求报文,请求目的主机 HostB 的 MAC 地址。
2. Switch 收到此 ARP 请求报文后,检查报文的目的 IP 地址,发现并不是自己本机的 IP, 因此确定该报文请求的不是自己的 MAC 地址。然后,Switch 检查是否存在到达 HostB 的 ARP 表:
如果有 HostB 对应的 ARP 表项,且该表项中的 VLAN 信息与接收报文的端口的 VLAN 信息不同,则判断关联 VLAN 的接口是否使能了 VLAN 间 Proxy ARP 功能:
如果使能了 VLAN 间 Proxy ARP 功能,则将 VLANIF 4 的 MAC 地址发送给 HostA。
HostA 收到 Switch 发送的 ARP 响应报文后,认为此报文是 HostB 发送的 ARP 响应报文。
HostA 从报文中学习 Switch 设备 VLANIF 4 的 MAC 地址,并使用此 MAC 地址向 HostB 发送数据报文。
如果没有使能 VLAN 间 Proxy ARP 功能,则丢弃该 ARP 请求报文。
如果没有 HostB 对应的 ARP 表项,则丢弃 HostA 发送的 ARP 请求报文,同时判断关联 VLAN 的接口是否使能了 VLAN 间 Proxy ARP 功能:
如果使能了 VLAN 间 Proxy ARP 功能,则在 VLAN 2 内广播发送 ARP 请求报文,该请求 报文的目的 IP 地址为 HostB 的 IP 地址。收到 HostB 发送的 ARP 响应报文后,生成相应的 ARP 表项。
如果没有使能 VLAN 间 Proxy ARP 功能,则不执行任何操作。
(3)ARP 快速应答

如图 1 所示,设备 Switch 作为网关时,连接多台服务器或虚拟机。服务器或虚拟机以 固定时间间隔向网关设备发送探测性质的 ARP 请求报文(ARP 请求报文的目的 IP 地址为网 关的 IP 地址),探测网关设备是否正常工作。
大量的 ARP 请求报文使网关设备的 ARP 响应 速度变慢,甚至出现部分服务器或虚拟机的 ARP 请求报文得不到响应的情况,引起网关设 备上服务器或虚拟机的 ARP 表项被老化,从而导致丢包或业务中断。
ARP 快速应答能够有效缓解网关设备的 ARP 报文处理压力。当网关设备已经学习到服 务器或虚拟机的 ARP 后,对收到的探测性质的 ARP 请求报文,网关设备可以不进行 ARP 学习而直接发送 ARP 应答报文给服务器或虚拟机,减少网关设备处理流程。
因此 ARP 快速应 答的核心思想即对目的 IP 地址是本设备的 IP 地址的 ARP 请求报文,直接回复 ARP 应答报 文,提高了 ARP 响应速度,并保证业务不中断。
(5)ARP 二层代答
●产生原因
ARP 请求报文是广播报文,即当网络中的交换设备收到一个 ARP 请求报文时,会将该 报文在自己的广播域内转发。如果某交换设备在某一时间段内收到大量的 ARP 请求报文, 并且将这些报文都进行广播转发,这样网络中就会出现大量的 ARP 请求报文,占用过多的 网络资源,造成网络拥塞,导致网络性能下降,影响用户业务的正常运行。
ARP 二层代答是一种有效分散 ARP 报文处理压力的方法,其核心思想是隔离 ARP 广播 域,对 ARP 请求报文尽量进行本地优先代答。ARP 二层代答适用于接入设备或者汇聚设备。
●实现过程
设备收到 ARP 请求报文时,会根据报文中的目的 IP 地址查找 DHCP Snooping 表项和 ARP Snooping 表项。 ⑴查找 DHCP Snooping 表项 如果查找成功,则用查找到的 DHCP Snooping 表项的内容对 ARP 请求报文进行代答。 如果查找失败,则执行步骤 2。
⑵查找 ARP Snooping 表项 如果查找成功,则用查找到的 ARP Snooping 表项的内容对 ARP 请求报文进行代答。 如果查找失败,则按原有的流程处理该 ARP 请求报文。
(6)ARP 网关代答
●产生原因
如果用户希望在同一个 BD 域内避免二层用户直接通信,可以通过执行该命令采用网关 代答,将流量引向对应的网关,在网关上实现对二层流量的监控,保证流量安全转发。
●实现过程
用户使能网关代答,ARP 应答报文中的 MAC 地址则会是所在网段的三层网关的 MAC 地址,从而实现将流量引向三层网关。如图 1 所示,Device A 作为三层网关,介绍 ARP 网关代答实现过程。

ARP 学习流程
1. HostA 发送 ARP 请求报文,请求 HostB 的 MAC 地址。ARP 请求报文的目的 IP 地址为 10.10.10.2,目的 MAC 为全 0;然后封装成以太报文发送出去。
2. DeviceA 识别是 ARP 请求报文,判断是否使能网关代答。
使能网关代答:回应 ARP 应答报文,ARP 应答报文中的源 IP 地址是 10.10.10.2,源 MAC 是 3-3-3(DeviceA 的 MAC 地址,目的是不让 HostA 和 HostB 直接进行二层通信,实现 DeviceA 对报文的控制)。
未使能网关代答:走普通流程。
(7)ARP-Ping
ARP-Ping 包括 ARP-Ping IP 和 ARP-Ping MAC
ARP-Ping IP 通过发送 ARP 请求报文确定特定的 IP 地址是否被网络中其他设备使用;
ARP-Ping MAC 通过发送 ICMP 请求报文来确定特定的 MAC 地址是否被网络中其他设使用。
●ARP-Ping IP
ARP-Ping IP 是利用 ARP 报文在局域网内探测 IP 地址是否被其它的设备使用的一种方 法。
用户在设备上配置 IP 地址前,如果需要确认该 IP 地址有没有被网络中其他设备使用, 可以通过发送 ARP 请求报文,确认该 IP 的使用情况,以便做出相应调整。
通过 ping 命令也可以探测该 IP 地址是否被网络中其他设备使用。但是如果带有防火墙 功能的目的主机和路由设备设置了对 Ping 报文不进行回复的功能时,就不会响应 Ping 报 文,造成该 IP 地址没有被使用的假象。
由于 ARP 报文是二层协议,大多数情况下可以透过 设置了对 Ping 报文不进行回复的防火墙,从而可以避免此类情况的发生。
ARP-Ping IP 发送的是 ARP 请求报文。以下是 ARP-Ping IP 的具体实现过程。
⑴用户通过命令 arp-ping ip 设置指定的 IP 地址后,设备发送 ARP 请求报文并且启动 ARP 应答报文的超时定时器。
⑵局域网内路由设备或主机收到 ARP 请求报文后,如果发现报文中的目的 IP 地址和本 设备的 IP 地址相同,则回复 ARP 应答报文。
⑶发送方设备根据是否收到 ARP 应答报文进行如下两种操作。
•发送方设备收到 ARP 应答报文后,将应答报文中的源 IP 地址和命令行中输入的 IP 地 址进行比较。
若匹配,则在发送方设备上显示与所输入 IP 地址相对应的 MAC 地址并且关闭 ARP 应答报文的超时定时器,本次操作结束。
若不匹配,则丢弃该 ARP 应答报文,并且输 出该 IP 地址未被使用的提示信息。
•若 ARP 应答报文的超时定时器超时,则在发送方设备上输出该 IP 地址未被使用的提 示信息。
●ARP-Ping MAC
ARP-Ping MAC 是通过发送 ICMP 请求(ECHO Request)报文来确定 MAC 地址是否被 其他设备使用的一种方法。
以下是 ARP-Ping MAC 的具体实现过程。
⑴用户通过命令 arp-ping mac 设置指定的 MAC 地址后,发送 ICMP 报文并且启动 ICMP 应答报文的超时定时器。
⑵局域网内的设备收到 ICMP 请求报文后,会回复 ICMP 应答(ECHO Reply)报文。
⑶发送方设备根据是否收到 ICMP 应答报文进行如下两种操作。
•发送方设备收到 ICMP 应答报文后,将应答报文中的源 MAC 地址和命令行中输入的 MAC 地址相比较。
若匹配,在发送方设备上显示出该报文的 IP 地址,并提示该 MAC 地址 已被使用并且关闭超时定时器,本次操作结束。
若所有收到的 ICMP 应答报文的源 MAC 地 址和命令行中输入的 MAC 地址均不匹配,则丢弃这些 ICMP 应答报文,并在发送方设备上 输出该 MAC 地址未被使用的提示信息。
•若 ICMP 应答报文的超时定时器超时并且未收到 ICMP 响应报文,在发送方设备上输 出该 MAC 地址未被使用的提示信息





