1       ARP

ARP全称地址解析协议,就是把IP地址解析成二层MAC地址(物理地址)的协议。应用场景:在局域网中的一台主机或设备需要发生数据到另一台主机或设备时,需要知道对方的网络地址即IP地址。仅仅只有IP地址是不够的,因为IP数据报文需要封装层帧从能通过物理网络发送,因此发送站还需要接受站的物理地址,所以需要一个从IP地址到物理地址的映射关系,ARP就是实现这种关系的协议。

1.2   ARP报文结构

ARP报文分为ARP请求报文和ARP应答报文,总字节为28字节。

ARP报文结构如下:

1.        硬件类型:表示硬件地址的类型,它的值为1是表示以太网报文——2字节

2.        协议类型:表示要映射的协议地址的类型,它的值为0X0800即表示IP地址——2字节

3.        硬件地址长度和协议地址长度:指硬件地址和协议地址的长度,以字节为单位,对于以太网上IP地址的ARP请求和应答报文,其长度分别是64——硬件地址和协议地址长度各占1字节.

4.        类型操作(OP):1表示ARP请求,2表示ARP应答。——占2字节

5.        MAC地址:发送设备的硬件地址——占6字节

6.        IP地址:发送设备的IP地址——占4字节

7.        目的MAC地址:接受设备的硬件地址——占6字节

8.        目的IP地址:接受设备的IP地址——占4字节  

1.3  ARP地址解析过程

当主机A向主机B发送数据时,首先将B的地址跟A的地址进行一个与运算来确认两主机是否处于同一个网段。

当确认处于同一网段时,首先主机A会查看本地的ARP表,是否有B主机地址所对应的MAC地址。

如果存在,就直接把IP数据封装成帧进行通信,如果不存在,则先缓存该数据报文,然后发送一个以本地MAC为源MAC地址,以本地IP为源IP,以B主机IP地址为目的IP地址,以MAC地址全为0的地址为目的MAC地址的ARP请求广播包。

该网段上的所以主机都会收到该ARP请求广播包,所有主机先比较自己IP地址跟广播中的目的IP,如不匹配,就丢弃该包。如果匹配,会把该广播包的源IP地址和源MAC地址存入自己的ARP表项中,然后向A发送一个以本地IP地址为源IP地址,以本地MAC地址为源MAC地址,以A主机IP地址为目的IP地址,以A主机的MAC地址为目的MAC地址的单播,当主机A收到该报文之后,把B主机的IP地址和MAC地址添加到ARP表项中,然后把IP数据封装成帧与主机B进行通信。

当将主机B的地址跟主机A的地址进行一个与运算确认两主机处于不同网段。

主机A先向网关发送ARP请求报文,当收到网关ARP应答时,先把网关的MAC地址和IP地址记录的ARP表项中,然后把IP数据包封装成帧发送给网关,然后网关再查看ARP表项有没有主机Barp记录,如果有,就直接封装再发送,如果没有就发送广播,再获取主机BMAC地址,再封装发送。

1.4  ARP

1.4.1   动态ARP表项

动态ARP表项是由ARP协议通过ARP报文自动生成和维护,可以被被老化,可以被新的ARP报文更新,可以被静态ARP表项覆盖。到了老化时间,当接口down时会删除相应的ARP表项

1.4.2   静态ARP表项

静态ARP表项通过手动配置和维护,不能被动态ARP表项覆盖,不老化。配置动态的ARP表项可以增加通信的安全性

长静态ARP表项:配置IP +MAC+ARP表项所在的VLAN+出接口。长静态ARP表项可以用来直接转发报文。

短静态ARP表项:配置IP+MAC

当出接口为三层以太网接口时,可以直接用来转发报文。

当出接口为虚拟VLAN接口时,不能直接转发报文,先要发送ARP请求报文,如果收到的请求报文中的源IP地址和源MAC地址与所配置的IP地址和MAC地址相同时,则将接收ARP响应报文的接口加入该静态ARP表项中,之后就可以用于IP报文的转发。

2       免费ARP

免费ARP报文是一种特殊的报文,该报文中携带的的源IP地址和目的IP地址均为本地IP地址,源MAC地址为本地MAC地址,目的MAC地址为全0的广播MAC地址。实现如下两个功能:

1.        检测局域网中的其他设备的IP地址是否与本机IP地址冲突。

2.        当更改硬件地址之后,用来通知他设备来更新ARP表项

2.1   免费ARP报文学习功能的作用

1.        使用免费ARP学习功能之后,设备会根据免费ARP表中的IP地址和MAC地址来更新本地ARP表项。

2.        如果ARP表项中没有对应的ARP表项,会根据免费ARP中携带的信息来创建ARP表项

3.        如果ARP表项中有对应的ARP表项,则会根据免费ARP中携带的信息来更新ARP表项

4.        当关闭免费ARP报文学习功能之后,设备不会重新创建ARP表项,但会更新ARP表项

2.2   定时发送免费ARP功能的作用

使用定时发送免费ARP功能及时通知下行设备更新ARP表项和MAC地址表项,应用场景如下:

1.        防止仿冒网关的ARP攻击:攻击者仿冒网关发送免费ARP,把网关定向到一个错误的MAC,从而使得该网络中的主机无法正确访问网络。

2.        防止主机ARP表项老化:当接受端网络负载较大或CPU使用率过高时,可能会存在ARP报文的丢弃或无法及时出来ARP报文的情况,使得动态ARP表项因超时而是ARP表项老化。造成的后果是在重新学习ARP表项之前,两设备之间流量会发生中断。

3.        防止VRRP虚拟IP地址冲突:当网络中存在VRRP备份组时,需要由VRRP备份组中的Master路由器周期性的向网络中发送免费ARP,使主机更行ARP表项,确保网络中不会存在于虚拟机与VRRP虚拟IP相同的设备。

2.3   及时更新模糊终结VLAN内设备的MAC地址表

3       ARP代理

如果ARP请求是从一个网络的主机发往同一网段而处于不同物理网络的主机,那么连接他们的具有代理ARP功能的设备就可以回答该请求,这个过程就叫做代理ARP

1.        普通代理ARP:想要互通的主机处于同一网段,但连接在不同的三层接口下,且这两主机处于不同的广播域。

2.        本地代理ARP:想要互通的主机处于同一网段,并连接在同一的三层接口下,但这两台主机处于不同的广播域,比如:两台主机连接在二层交换机下,并都属于同一VLAN,但是配置了端口隔离 Super VLAN下不同sub VLAN下的主机之间的通信。Isolate-user-vlanSecondary VLAN下主机之间的通信。

4       ARP Snooping

4.1   ARP Snooping作用

ARP Snooping功能是一个用于二层交换环境下的特性,通过侦听ARP报文建立ARP Snooping表项,从而提供给ARP快速应答和MFF手动方式等使用。

4.2   ARP Snooping工作原理

设备上的一个VLAN是能了ARP Snooping之后,该VLAN上所有接口收到的ARP报文都会重定向到CPU,经过CPU的分析,获取该报文中的源IP地址、源MAC地址、源VLAN、入端口信息,建立用户信息ARP Snooping表项。

ARP Snooping老化时间为25分钟,有效时间为15分钟。当一个ARP Snooping表项自最后一次更新15分钟之后再收到更新时,该表项就处于失效状态,不再对外提供服务,当重新收到更新之后,该表项将重新启效,并重新老化计时

ARP Snooping收到ARP报文时检查到相同IP地址的ARP Snooping表项,但MAC地址发送改变,它会认为设备收到攻击,此时ARP Snooping处于冲突状态,表项失效,并在25分钟之后删除该表项。

4.3   ARP快速应答

4.3.1   ARP快速应答作用

在无线组网中,AP通过隧道与AC连接,client通过AP连接到AC,通过ACClient可以与网关连接。当Client发起ARP请求广播报文时,AC向所有AP复制该报文,这样会导致ARP请求报文占用过多的隧道资源,导致性能下降。开启ARP快速应答之后,AC会收集用户信息(通过DHCP Snooping收集用户信息或通过ARP Snooping收集用户信息),在指定VLAN内,尽可能快的对ARP请求进行应答。

4.3.2   ARP 快速应答机制

1.        当收到的ARP报文中的目的IP地址是设备VLAN的虚ip地址时,通过ARP特性应答

2.        当收到的ARP报文中的目的IP地址不是设备的VLAN的虚IP时,它会根据目的IP查找DHCP Snooping表项:

如果查找成功,但查到的表项的接口跟收到报文的接口一致,并接口为以太网接口,则不进行应答,否则快速应答

如果查找设备,它会根据目的IP地址来查找ARP Snooping表项,如果查找成功,但查到的表项的接口跟收到报文的接口一致,并接口为以太网接口,则不进行应答,否则快速应答。

5       ARP攻击防御

攻击类型如下:

1.        攻击者仿冒用户、仿冒网关发送伪造ARP报文,是网关或主机的ARP表项不正确,从而对网络攻击

2.        攻击者向设备发送大量目的IP地址不可解析的arp报文,使得设备反复尝试解析,从而到导致CPU负荷过重以及网络流量过大

3.        攻击者向设备发送大量ARP报文,对设备的CPU形成冲击

5.1   ARP防止IP报文攻击功能简介

如果网络中的主机向设备发送大量目的ip不能解析的ARP报文,会造成如下危害:

1.        设备向目的网段发送大量ARP请求报文,加重了目的网段的负载

2.        设备会尝试反复对目的Ip进行解析,增加了设备CUP的负担。

为了避免这种IP报文攻击所带来的危害,可以开启如下功能:

1.        如果攻击源是固定的,可以采用ARP源抑制功能 :在接口上设定单位时间内IP报文触发的的ARP请求流量的大小,当超过这个值时,设备将不允许其触发ARP请求,或经过一段时间之后,再进行处理

2.        如果攻击源不是固定的,可以采用ARP黑洞路由功能:当设备收到一个目的IP不能解析的报文时,设备会立即产生一个黑洞路由,使得设备在一段时间内收到去往该地址的报文直接丢弃 。当该黑洞路由老化之后,当收到该地址的报文时,如果解析成功将直接转发。如果不能解析成功,设备将再次启用黑洞路由

5.2   ARP报文限速功能简介

ARP报文限速是指对上送CPUarp报文进行限速,可以防止ARP报文对CPU进行冲击

5.3   MAC地址固定的ARP攻击检测功能简介

当在单位时间内,从某个接口收到同一个源MAC地址的ARP报文超过一定的阀值,设备将会该源MAC地址添加到攻击检测列表中。

当该攻击检测列表没有在老化之前,如果设置的检查模式为过滤模式,则会打印警告信息并过滤源MAC地址发过来的ARP报文。如果设置的监控模式,则只会发打印警告

对于网关或一些重要的服务器,可能会发送大量的ARP报文,为了使的这些ARP报文不被过滤掉,可以将这类MAC地址配置成保护MAC地址,这样,即使该MAC地址存在攻击也不回被过滤,只会对上送CPUARP进行统计。

5.4   ARP报文源MAC地址一致性检查功能简介

APP报文源MAC地址一致性检查功能主要应用于网关设备上,网关设备在进行ARP学习时先检查ARP报文,如果以太网中的源MAC地址与ARP报文中的源MAC地址是否一致。如果不一致,则会认为是攻击报文,如果一致,则添加到ARP表项中

6       MFF

MFFMAC-Forced Forwarding)为同一广播域内实现客户端主机间的二层隔离和三层互通,提供了一种解决方案

MFF截获用户ARP报文,通过ARP代答机制,回复网关MAC地址的ARP应答报文。通过这种方式可以强制用户将所有流量都发送到网关,从而使得网关能监控所有的流量,防止用户之间的恶意攻击,保证网络部署的安全性