ARP
基本原理
以太网的同一网段内以广播的方式查询某个IP地址对应的MAC地址,以实现三层IP地址与二层MAC地址之间的动态映射,这是任何以太网主机设备都支持的一个协议。我们有的时候称ARP为2.5层协议。进行数据封包时或进行ping测试时,我们此时仅知道目标L3 IP地址,而不知道目标L2 MAC地址,此时以太网就会通过ARP协议来获取对方二层MAC地址,以此进行链路层封包。
ARP地址解析过程
发送数据分组之前,会在本机ARP缓存中查找目标IP地址是否存在对应MAC表象,若存在对应的MAC地址,主机将不再发送ARP请求报文;若不存在,则发送广播ARP请求报文进行ARP请求解析。
对方收到ARP请求报文时将查看请求的目标IP地址是否为自身收到该报文的入接口IP地址,若是则回应一个单播的ARP应答报文,告知对方我的MAC地址。若请求不是自身,则丢弃。
ARP表项的创建与更新
若满足如下条件中任意一条,系统将创建或更新ARP表项:
1、ARP报文的源IP地址与入接口IP地址处于同一网段,且不是广播地址,目的地址是本接口IP地址。
2、ARP报文的源IP地址与入接口IP地址处于同一网段,且不是广播地址,目的地址是本接口的VRRP虚拟IP地址。
3、ARP报文的源IP地址与入接口IP地址处于同一网段,且不是广播地址,入接口是IPoEoA应用的Virtual-Ethernet接口。
4、ARP报文的目的IP地址是入接口上配置的NAT地址池中的地址。
如果收到的ARP报文的源IP地址在入接口的ARP表中已经存在对应表项,也将对ARP表项进行更新。
ARP抑制功能
在特殊组网或者遭受ARP攻击时,系统会在同一时间内接收刀多个Src IP相同的ARP报文,这就需要系统对ARP表项进行重复更新。为了保证系统性能,可启用ARP抑制功能,即:在1秒内收到多次Src IP相同的ARP报文,系统只通知发送ARP报文的设备已接收到ARP报文,但不进行ARP表项的更新。
二层拓扑探测功能
二层拓扑探测功能,是指当二层接口的状态由Down变为Up时,二层接口所属VLAN对应的所有ARP表项的老化超时时间变为0,使设备重新发送ARP探测报文,更新二层接口所属VLAN对应的所有ARP表项。
报文格式
ARP报文有ARP Requese请求和应答Replay
- ARP请求报文:Request报文,为广播发送,用于查找目标IP地址所对应的MAC
- ARP应答报文:Reply报文,单播应答。
老化机制
需要说明的是,MAC地址表项分为静态和动态,静态为人工配置,永不过期
ARP表项缓存都存在一个老化超时时间,在该时间超时后即删除该表项。缺点:时间周期太漫长,缺省300秒。
老化探测次数
即在一个ARP表项老化之前,系统先进行探测,如果超过设置的探测次数后仍没有应答,则此ARP表项将被删除。
老化探测模式
ARP表项老化之前,接口会发出ARP老化探测报文。而该报文可以是单播/广播。华为缺省为广播模式
建议:当对端设备IP地址不变但MAC地址频繁更新时,建议使用广播模式;若对端设备MAC地址不变,
当对端设备MAC地址不变,当前网络带宽资源特别紧缺,且ARP表项的老化时间设置的比较小时,建议使用单播模式发送ARP老化探测报文。
当其他厂商设备与华为设备互联时,其他厂商设备接收到目的MAC地址为广播地址的ARP老化探测报文后,若ARP表项中已存在华为设备的IP地址与MAC地址映射,则不响应该广播ARP老化探测报文。这种特殊情况下华为设备需要配置成以单播方式发送ARP老化探测报文,即单播的ARP老化探测模式。
ARP代理
当向位于不同网络的主机发送ARP
请求时,由两个网络之间的路由器响应该ARP
请求,这个过程称为ARP
代理。
ARP
代理也称为混合ARP
:通过两个网络之间的路由器可以互相隐藏物理网络。
免费ARP
主机主动使用自己的IP地址作为目标地址发送ARP请求,此种方式称免费ARP。免费ARP有三方面的作用:
- 用于重复IP地址检测:正常情况下不会收到ARP回应,如果收到,则表明本网络中存在与自身IP地址重复的地址。
- 用于通告一个新的MAC地址:发送方更换了网卡,MAC地址变了,为了能够在ARP表项老化前通告所有主机,发送方可以发送一个免费ARP。
- 在VRRP中用来通告主备发生变换。
收到免费ARP的处理方式:
(1)如果收到免费ARP报文中源IP地址与入接口IP地址相同,则周期性广播发送免费ARP应答报文,告知该IP地址在网络内存在地址冲突。直到冲突解除,报文发送停止。
(2)如果收到免费ARP报文中源IP地址与入接口IP地址不同,
RARP 反向ARP
RARP
通常用于无盘系统,无盘系统从物理网卡上读到硬件地址后,发送一个RARP
请求查询自己的IP
地址。RARP
的协议格式:与ARP
协议一致,只不过帧类型代码为0x8035
RARP
使用链路层广播,这样阻止了大多数路由器转发ARAP
请求,只返回很小的信息,即IP
地址。
ARPing
-
ARP-Ping IP
ARP-Ping IP是利用ARP报文在局域网内探测IP地址是否被其它的设备使用的一种方法。用户对设备配置IP地址前,需要确认该IP地址有没有被网络上的其他设备使用,可以通过发送ARP报文,确认该IP的使用情况,以便做出相应调整。
通过ping命令也可以探测该IP地址是否被网络上的其他设备使用。但是如果带有防火墙功能的目的主机和路由器设置了对ping报文不进行回复的功能时,就不会响应ping报文,造成该IP没有被使用的假象。由于ARP是二层协议,大多数情况下可以透过设置了对ping报文不进行回复的防火墙,从而避免了此类情况的发生。
-
ARP-Ping MAC
ARP-Ping MAC是利用ICMP报文在局域网范围内探测MAC地址是否被其它的设备使用的一种方法。
当只知道该网段一个特定的MAC地址而不知道其对应的IP地址时,通过ARP-Ping MAC发送广播的ICMP报文可以得到该MAC所对应的IP地址。通过这种方法,可以查询到该网段内特定MAC所对应的IP地址。