19-ARP攻击防御配置
本章节下载: 19-ARP攻击防御配置 (600.78 KB)
设备提供了多种ARP攻击防御技术对局域网中的ARP攻击和ARP病毒进行防范、检测和解决。常见的ARP攻击方式包括:
· 攻击者通过向设备发送大量目标IP地址不能解析的IP报文,使得设备试图反复地对目标IP地址进行解析,导致CPU负荷过重及网络流量过大。
· 攻击者向设备发送大量ARP报文,对设备的CPU形成冲击。
· 攻击者可以仿冒用户、仿冒网关发送伪造的ARP报文,使网关或主机的ARP表项不正确,从而对网络进行攻击。
如下所有配置均为可选,请根据实际情况选择配置。
· 防止泛洪攻击
· 防止仿冒用户、仿冒网关攻击
如果网络中有主机通过向设备发送大量目标IP地址不能解析的IP报文来攻击设备,则会造成下面的危害:
· 设备向目的网段发送大量ARP请求报文,加重目的网段的负载。
· 设备会试图反复地对目标IP地址进行解析,增加了CPU的负担。
为避免这种IP报文攻击所带来的危害,设备提供了下列两个功能:
· ARP源抑制功能:如果发送攻击报文的源是固定的,可以采用ARP源抑制功能。开启该功能后,如果网络中每5秒内从某IP地址向设备某接口发送目的IP地址不能解析的IP报文超过了设置的阈值,则设备将不再处理由此IP地址发出的IP报文直至该5秒结束,从而避免了恶意攻击所造成的危害。
· ARP黑洞路由功能:无论发送攻击报文的源是否固定,都可以采用ARP黑洞路由功能。开启该功能后,一旦接收到目标IP地址不能解析的IP报文,设备立即产生一个黑洞路由,并同时发起ARP主动探测,如果在黑洞路由老化时间内ARP解析成功,则设备马上删除此黑洞路由并开始转发去往该地址的报文,否则设备直接丢弃该报文。在删除黑洞路由之前,后续去往该地址的IP报文都将被直接丢弃。用户可以通过命令配置ARP请求报文的发送次数和发送时间间隔。等待黑洞路由老化时间过后,如有报文触发则再次发起解析,如果解析成功则进行转发,否则仍然产生一个黑洞路由将去往该地址的报文丢弃。这种方式能够有效地防止IP报文的攻击,减轻CPU的负担。
(1) 进入系统视图。
system-view
(2) 开启ARP源抑制功能。
arp source-suppression enable
缺省情况下,ARP源抑制功能处于关闭状态。
(3) 配置ARP源抑制的阈值。
arp source-suppression limit limit-value
缺省情况下,ARP源抑制的阈值为10。
当用户配置的ARP主动探测总时长(发送次数×发送时间间隔)大于黑洞路由老化时间时,系统只会取小于等于该老化时间的最大值作为真正的探测总时长。
当发起ARP主动探测过程结束且生成的黑洞路由还未老化时,设备无法主动对黑洞路由对应的设备进行ARP解析,为了缓解该问题,用户可以配置较大的发送ARP请求报文次数。
(1) 进入系统视图。
system-view
(2) 开启ARP黑洞路由功能。
arp resolving-route enable
缺省情况下,ARP黑洞路由功能处于开启状态。
(3) (可选)配置发送ARP请求报文的次数。
arp resolving-route probe-count count
缺省情况下,发送ARP请求报文的次数为3次。
(4) (可选)配置发送ARP请求报文的时间间隔。
arp resolving-route probe-interval interval
缺省情况下,发送ARP请求报文的时间间隔为1秒。
在完成上述配置后,在任意视图下执行display命令可以显示配置后ARP源抑制的运行情况,通过查看显示信息验证配置的效果。
表1-1 ARP防止IP报文攻击显示和维护
操作 |
命令 |
显示ARP源抑制的配置信息 |
display arp source-suppression |
显示ARP源抑制表项 |
(独立运行模式) display arp source-suppression cache [ slot slot-number ] (IRF模式) display arp source-suppression cache [ chassis chassis-number slot slot-number ] |
某局域网内存在两个区域:研发区和办公区,分别属于VLAN 10和VLAN 20,通过接入交换机连接到网关Device,如图1-1所示。
网络管理员在监控网络时发现办公区存在大量ARP请求报文,通过分析认为存在IP泛洪攻击,为避免这种IP报文攻击所带来的危害,可采用ARP源抑制功能和ARP黑洞路由功能。
图1-1 ARP防止IP报文攻击配置组网图
· 如果发送攻击报文的源地址是固定的,需要配置ARP源抑制功能
# 开启ARP源抑制功能,并配置ARP源抑制的阈值为100。即当每5秒内的ARP请求报文的流量超过100后,对于由此IP地址发出的IP报文,设备不允许其触发ARP请求,直至5秒后再处理。
<Device> system-view
[Device] arp source-suppression enable
[Device] arp source-suppression limit 100
· 如果发送攻击报文的源地址是不固定的,需要配置ARP黑洞路由功能
# 开启ARP黑洞路由功能。
[Device] arp resolving-route enable
ARP报文限速功能是指对上送CPU的ARP报文进行限速,可以防止大量ARP报文对CPU进行冲击。例如,在配置了ARP Detection功能后,设备会将收到的ARP报文重定向到CPU进行检查,这样引入了新的问题:如果攻击者恶意构造大量ARP报文发往设备,会导致设备的CPU负担过重,从而造成其他功能无法正常运行甚至设备瘫痪,这个时候可以配置ARP报文限速功能来控制接口收到ARP报文的速率。
设备上配置ARP报文限速功能后,当接口上单位时间收到的ARP报文数量超过用户设定的限速值,超过限速部分的报文会被丢弃。设备还将进行如下操作:
· 当开启了ARP模块的告警功能后,设备将这个时间间隔内的超速峰值作为告警信息发送出去,生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关特性。有关告警信息的详细介绍请参见“网络管理和监控命令参考”中的SNMP。
· 当开启了ARP限速日志功能后,设备将这个时间间隔内的超速峰值作为日志的速率值发送到设备的信息中心,通过设置信息中心的参数,最终决定日志报文的输出规则(即是否允许输出以及输出方向)。有关信息中心参数的配置请参见“网络管理和监控配置指导”中的“信息中心”。
对于S12500G-AF系列交换机,仅SF系列接口板支持本功能。
· 建议用户在配置了ARP Detection、ARP Snooping、ARP快速应答,或者发现有ARP泛洪攻击的情况下,配置ARP报文限速功能。
· 为防止过多的告警和日志信息干扰用户工作,用户可以设定较大的信息发送时间间隔。当用户设定的时间间隔超时时,设备执行发送告警或日志的操作。
· 如果开启了ARP报文限速的告警和日志功能,并在聚合接口上开启了ARP报文限速功能,则只要聚合成员接口上的ARP报文速率超过用户设定的限速值,就会发送告警和日志信息。
· 在接口下配置ARP报文限速功能,以太网接口视图下的配置只对当前端口生效;聚合接口视图下的配置只对当前接口生效;聚合成员端口上的配置,只有当成员端口退出聚合组后才能生效。
(1) 进入系统视图。
system-view
(2) (可选)开启ARP模块的告警功能。
snmp-agent trap enable arp [ rate-limit ]
缺省情况下,ARP模块的告警功能处于关闭状态。
(3) (可选)开启ARP报文限速日志功能。
arp rate-limit log enable
缺省情况下,设备的ARP报文限速日志功能处于关闭状态。
(4) (可选)配置当设备收到的ARP报文速率超过用户设定的限速值时,设备发送告警或日志的时间间隔。
arp rate-limit log interval interval
缺省情况下,当设备收到的ARP报文速率超过用户设定的限速值时,设备发送告警或日志的时间间隔为60秒。
(5) 进入接口视图。
interface interface-type interface-number
支持的接口类型包括二层以太网接口、二层聚合接口视图、三层以太网接口和三层聚合接口视图。
(6) 开启ARP报文限速功能,并指定ARP报文限速速率。
arp rate-limit [ pps ]
缺省情况下,ARP报文限速功能处于开启状态。
网络中可能存在某些特定的客户端发送大量ARP请求报文的情况,如果网关设备性能较低,收到大量ARP请求报文后,会导致CPU负担过重,从而造成其他功能无法正常运行甚至设备瘫痪等问题。为了解决这个问题,管理员可以执行debugging arp packet命令查询问题ARP报文的源MAC地址,再通过本功能对指定源MAC地址的ARP请求报文进行限速操作,超过限速部分的报文会被丢弃。
若要开启本功能,未指定mac-address参数的命令行和指定mac-address参数的命令行可以同时配置。当两条命令行限速不一致时,对于源MAC地址为指定mac-address的ARP报文,限速值取两条命令中配置较小的值。此时若执行不指定mac-address参数的undo arp rate-limit source-mac命令行关闭对所有ARP报文的限速功能,不会关闭指定了源MAC地址的ARP报文的限速功能的配置。
(1) 进入系统视图。
system-view
(2) 开启指定源MAC的ARP报文限速功能,并设置限速速率。
arp rate-limit source-mac [ mac-address ] pps
缺省情况下,指定源MAC地址的ARP报文限速功能处于关闭状态。
本特性根据ARP报文的源MAC地址对上送CPU的ARP报文进行统计,在5秒内,如果收到同一源MAC地址(源MAC地址固定)的ARP报文超过一定的阈值,则认为存在攻击,系统会将此MAC地址添加到攻击检测表项中。当开启了源MAC地址固定的ARP攻击检测日志信息功能,且在该攻击检测表项老化之前,如果设置的检查模式为过滤模式,则会打印日志信息并且将该源MAC地址发送的ARP报文过滤掉;如果设置的检查模式为监控模式,则只打印日志信息,不会将该源MAC地址发送的ARP报文过滤掉。
对于已添加到源MAC地址固定的ARP攻击检测表项中的MAC地址,在等待设置的老化时间后,会重新恢复成普通MAC地址。
对于S12500G-AF系列交换机,仅SF系列接口板支持配置源MAC地址固定的ARP攻击检测功能。
当设备同时配置arp source-mac threshold命令和arp source-mac filter命令时,设备接收到源MAC固定的ARP报文超过该阈值时,会通过arp source-mac filter命令配置生成源MAC固定的报文丢弃表项,当源MAC固定的报文丢弃表项到达老化时间后,设备再次接收到表项中的报文时,即使不达到阈值也会重新刷新表象。
切换源MAC地址固定的ARP攻击检查模式时,如果从监控模式切换到过滤模式,过滤模式马上生效;如果从过滤模式切换到监控模式,已生成的攻击检测表项,到表项老化前还会继续按照过滤模式处理。
对于网关或一些重要的服务器,可能会发送大量ARP报文,为了使这些ARP报文不被过滤掉,可以将这类设备的MAC地址配置成保护MAC地址,这样,即使该设备存在攻击也不会被检测或过滤。
(1) 进入系统视图。
system-view
(2) 开启源MAC地址固定的ARP攻击检测功能,并选择检查模式。
arp source-mac { filter | monitor }
缺省情况下,源MAC地址固定的ARP攻击检测功能处于关闭状态。
(3) 配置源MAC地址固定的ARP报文攻击检测的阈值。
arp source-mac threshold threshold-value
缺省情况下,源MAC地址固定的ARP报文攻击检测的阈值为30。
(4) 配置源MAC地址固定的ARP攻击检测表项的老化时间。
arp source-mac aging-time time
缺省情况下,源MAC地址固定的ARP攻击检测表项的老化时间为300秒,即5分钟。
(5) (可选)配置保护MAC地址。
arp source-mac exclude-mac mac-address&<1-10>
缺省情况下,未配置任何保护MAC地址。
(6) 开启源MAC地址固定的ARP攻击检测日志信息功能。
arp source-mac log enable
缺省情况下,源MAC地址固定的ARP攻击检测日志信息功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置后源MAC地址固定的ARP攻击检测的运行情况,通过查看显示信息验证配置的效果。
表1-2 源MAC地址固定的ARP攻击检测显示和维护
操作 |
命令 |
显示检测到的源MAC地址固定的ARP攻击检测表项 |
(独立运行模式) display arp source-mac { interface interface-type interface-number [ slot slot-number ] | slot slot-number } (IRF模式) display arp source-mac { chassis chassis-number slot slot-number | interface interface-type interface-number [ chassis chassis-number slot slot-number ] } |
某局域网内客户端通过网关与外部网络通信,网络环境如图1-2所示。
网络管理员希望能够防止因恶意用户对网关Device发送大量ARP报文,造成设备Device瘫痪,并导致其它用户无法正常地访问外部网络;同时,Device对于正常的大量ARP报文仍然会进行处理。
图1-2 源MAC地址固定的ARP攻击检测功能配置组网图
# 开启源MAC固定ARP攻击检测功能,并选择过滤模式。
<Device> system-view
[Device] arp source-mac filter
# 配置源MAC固定ARP报文攻击检测阈值为30个。
[Device] arp source-mac threshold 30
# 配置源MAC地址固定的ARP攻击检测表项的老化时间为60秒。
[Device] arp source-mac aging-time 60
# 配置源MAC固定攻击检查的保护MAC地址为0012-3f86-e94c。
[Device] arp source-mac exclude-mac 0012-3f86-e94c
ARP报文源MAC地址一致性检查功能主要应用于网关设备上,防御以太网数据帧首部中的源MAC地址和ARP报文中的源MAC地址不同的ARP攻击。
配置本特性后,网关设备在进行ARP学习前将对ARP报文进行检查。如果以太网数据帧首部中的源MAC地址和ARP报文中的源MAC地址不同,则认为是攻击报文,将其丢弃;否则,继续进行ARP学习。
(1) 进入系统视图。
system-view
(2) 开启ARP报文源MAC地址一致性检查功能。
arp valid-check enable
缺省情况下,ARP报文源MAC地址一致性检查功能处于关闭状态。
ARP的主动确认功能主要应用于网关设备上,防止攻击者仿冒用户欺骗网关设备。
ARP主动确认功能分为非严格模式和严格模式,这两种模式的实现如下:
· 配置非严格模式的ARP主动确认功能时,处理方式如下:
¡ 收到目标IP地址为自己的ARP请求报文时,设备会发送ARP应答报文,但先不建立对应的表项。同时,设备立即向ARP请求报文的发送端IP地址发送ARP请求,在一个探测周期内如果收到发送端IP地址对应的设备回复的ARP应答报文,则建立ARP表项。
¡ 收到ARP应答报文时,需要确认本设备是否在当前探测时间周期内对该报文中的源IP地址发起过ARP请求:
- 若发起过请求,则设备建立该ARP表项;
- 若未发起过请求,则不建立ARP表项。同时,设备立即向ARP应答报文的发送端IP地址发送ARP请求,在一个探测周期内如果收到发送端IP地址对应的设备回复的ARP应答报文,则建立ARP表项。
· 配置严格模式的ARP主动确认功能时,处理方式如下:
¡ 收到目标IP地址为自己的ARP请求报文时,设备会发送ARP应答报文,但不建立ARP表项;
¡ 收到ARP应答报文时,需要确认本设备是否在当前探测时间周期内对该报文中的源IP地址发起过ARP请求:若发起过请求,则设备建立该ARP表项;若未发起过请求,则设备丢弃该报文,不建立表项。
(1) 进入系统视图。
system-view
(2) 开启ARP主动确认功能。
arp active-ack [ strict ] enable
缺省情况下,ARP主动确认功能处于关闭状态。
在严格模式下,只有ARP黑洞路由功能处于开启状态,ARP主动确认功能才能生效。
所谓授权ARP(Authorized ARP),就是动态学习ARP的过程中,只有和DHCP服务器生成的租约或DHCP中继生成的安全表项一致的ARP报文才能够被学习。关于DHCP服务器和DHCP中继的介绍,请参见“三层技术-IP业务配置指导”中的“DHCP服务器”和“DHCP中继”。
配置接口的授权ARP功能后,可以防止用户仿冒其他用户的IP地址或MAC地址对网络进行攻击,保证只有合法的用户才能使用网络资源,增加了网络的安全性。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
支持的接口类型包括三层以太网接口、三层以太网子接口、三层聚合接口、三层聚合子接口、VSI虚接口和VLAN接口视图。
(3) 开启授权ARP功能。
arp authorized enable
缺省情况下,接口下的授权ARP功能处于关闭状态。
· Switch A是DHCP服务器,为同一网段中的客户端动态分配IP地址,地址池网段为10.1.1.0/24。通过在接口Vlan-interface2上开启授权ARP功能来保证客户端的合法性。
· Switch B是DHCP客户端,通过DHCP协议从DHCP服务器获取IP地址。
图1-3 授权ARP功能典型配置组网图
(1) 配置Switch A
# 配置接口的IP地址。
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] ip address 10.1.1.1 24
[SwitchA-Vlan-interface2] quit
# 开启DHCP服务。
[SwitchA] dhcp enable
[SwitchA] dhcp server ip-pool 1
[SwitchA-dhcp-pool-1] network 10.1.1.0 mask 255.255.255.0
[SwitchA-dhcp-pool-1] quit
# 进入VLAN接口视图。
[SwitchA] interface vlan-interface 2
# 开启接口授权ARP功能。
[SwitchA-Vlan-interface2] arp authorized enable
[SwitchA-Vlan-interface2] quit
(2) 配置Switch B
<SwitchB> system-view
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] ip address dhcp-alloc
[SwitchB-Vlan-interface2] quit
Switch B获得Device A分配的IP后,在Switch A查看授权ARP信息。
[SwitchA] display arp all
Type: S-Static D-Dynamic O-Openflow R-Rule M-Multiport I-Invalid
IP address MAC address VLAN/VSI name Interface Aging Type
10.1.1.2 0012-3f86-e94c 2 XGE3/0/1 960 D
从以上信息可以获知Switch A为Switch B动态分配的IP地址为10.1.1.2。
此后,Switch B与Switch A通信时采用的IP地址、MAC地址等信息必须和授权ARP表项中的一致,否则将无法通信,保证了客户端的合法性。
· Device A是DHCP服务器,为不同网段中的客户端动态分配IP地址,地址池网段为10.10.1.0/24。
· Device B是DHCP中继,通过在接口Ten-GigabitEthernet3/0/2上开启授权ARP功能来保证客户端的合法性。
· Device C是DHCP客户端,通过DHCP中继从DHCP服务器获取IP地址。
图1-4 授权ARP功能典型配置组网图
(1) 配置Device A
# 配置接口的IP地址。
<DeviceA> system-view
[DeviceA] interface ten-gigabitethernet 3/0/1
[DeviceA-Ten-GigabitEthernet3/0/1] ip address 10.1.1.1 24
[DeviceA-Ten-GigabitEthernet3/0/1] quit
# 开启DHCP服务。
[DeviceA] dhcp enable
[DeviceA] dhcp server ip-pool 1
[DeviceA-dhcp-pool-1] network 10.10.1.0 mask 255.255.255.0
[DeviceA-dhcp-pool-1] gateway-list 10.10.1.1
[DeviceA-dhcp-pool-1] quit
[DeviceA] ip route-static 10.10.1.0 24 10.1.1.2
(2) 配置Device B
# 开启DHCP服务。
<DeviceB> system-view
[DeviceB] dhcp enable
# 配置接口的IP地址。
[DeviceB] interface ten-gigabitethernet 3/0/1
[DeviceB-Ten-GigabitEthernet3/0/1] ip address 10.1.1.2 24
[DeviceB-Ten-GigabitEthernet3/0/1] quit
[DeviceB] interface ten-gigabitethernet 3/0/2
[DeviceB-Ten-GigabitEthernet3/0/2] ip address 10.10.1.1 24
# 配置Ten-GigabitEthernet3/0/2接口工作在DHCP中继模式。
[DeviceB-Ten-GigabitEthernet3/0/2] dhcp select relay
# 配置DHCP服务器的地址。
[DeviceB-Ten-GigabitEthernet3/0/2] dhcp relay server-address 10.1.1.1
# 开启接口授权ARP功能。
[DeviceB-Ten-GigabitEthernet3/0/2] arp authorized enable
[DeviceB-Ten-GigabitEthernet3/0/2] quit
# 开启DHCP中继用户地址表项记录功能。
[DeviceB] dhcp relay client-information record
(3) 配置Device C
<DeviceC> system-view
[DeviceC] ip route-static 10.1.1.0 24 10.10.1.1
[DeviceC] interface ten-gigabitethernet 3/0/2
[DeviceC-Ten-GigabitEthernet3/0/2] ip address dhcp-alloc
[DeviceC-Ten-GigabitEthernet3/0/2] quit
(1) Device C获得Device A分配的IP后,在Device B查看授权ARP信息。
[DeviceB] display arp all
Type: S-Static D-Dynamic O-Openflow R-Rule M-Multiport I-Invalid
IP address MAC address VLAN/VSI name Interface Aging Type
10.10.1.2 0012-3f86-e94c -- XXGE3/0/2 960 D
从以上信息可以获知Device A为Device C动态分配的IP地址为10.10.1.2。
(2) 此后,Device C与Device B通信时采用的IP地址、MAC地址等信息必须和授权ARP表项中的一致,否则将无法通信,保证了客户端的合法性。
ARP Detection功能主要应用于接入设备上,通过检测并丢弃非法用户的ARP报文来防止仿冒用户、仿冒网关的攻击,具体包括以下几个功能:
· 用户合法性检查;
· ARP报文有效性检查;
· ARP报文强制转发;
· ARP Detection忽略端口匹配检查;
· ARP Detection支持VSI;
· ARP Detection日志功能。
如果既配置了报文有效性检查功能,又配置了用户合法性检查功能,那么先进行报文有效性检查,然后进行用户合法性检查。
ARP Detection功能与ARP Snooping功能不能同时配置,否则会导致ARP Snooping表项无法生成。
只要在二层以太网接口或二层以太网接口所在的VLAN上开启了ARP Detection功能,二层以太网网接口的ARP Detection功能就会被开启;只有将二层以太网接口和二层以太网接口所在的VLAN上的ARP Detection功能全部关闭后,接口上的ARP Detection功能才能被关闭。
在一个二层接口上同时配置arp detection enable命令和arp detection trust命令时,接口接收报文不会经过ARP Detection功能检查。
对于ARP信任接口,不进行用户合法性检查;对于ARP非信任接口,需要进行用户合法性检查,以防止仿冒用户的攻击。
用户合法性检查是根据ARP报文中源IP地址和源MAC地址检查用户是否是所属VLAN所在接口上的合法用户,包括基于用户合法性规则检查、IP Source Guard静态绑定表项的检查、基于DHCP Snooping表项的检查和基于802.1X安全表项的检查。设备收到ARP报文后,首先进行基于用户合法性规则检查,如果找到与报文匹配的规则,则按照该规则对报文进行处理;如果未找到与报文匹配的规则,则继续进行基于IP Source Guard静态绑定表项的检查、基于DHCP Snooping表项的检查和基于802.1X安全表项的检查:
· 只要符合其中的任何一个,就认为该ARP报文合法,进行转发。转发时查询报文目的IP地址对应的IP Source Guard静态绑定表项、DHCP Snooping表项和802.1X安全表项:
¡ 如果查询到其中的任何一个,且和源IP地址对应表项的接口不一致,则将报文从目的IP地址对应的表项中的接口发送出去;
¡ 如果查询到其中的任何一个,且和源IP地址对应表项的接口一致,则将报文进行二层转发;
¡ 如果未查到任何表项,则将报文进行二层转发。
· 如果所有检查都没有找到匹配的表项,则认为是非法报文,直接丢弃。
IP Source Guard静态绑定表项通过ip source binding命令生成,详细介绍请参见“安全配置指导”中的“IP Source Guard”。DHCP Snooping安全表项通过DHCP Snooping功能自动生成,详细介绍请参见“三层技术-IP业务配置指导”中的“DHCP Snooping”。
802.1X安全表项通过802.1X功能产生,802.1X用户需要使用支持将IP地址上传的客户端,用户通过了802.1X认证并且将IP地址上传至配置ARP Detection的设备后,设备自动生成可用于ARP Detection的用户合法性检查的802.1X安全表项。802.1X的详细介绍请参见“安全配置指导”中的“802.1X”。
配置用户合法性检查功能时,必须至少配置用户合法性规则或者IP Source Guard静态绑定表项、DHCP Snooping功能和802.1X功能四者之一,否则所有从ARP非信任接口收到的ARP报文都不会被正常转发。
在配置IP Source Guard静态绑定表项时,必须指定IP、MAC和VLAN参数,否则ARP报文将无法通过基于IP Source Guard静态绑定表项的检查。
(1) 进入系统视图。
system-view
(2) 配置用户合法性检查规则。
arp detection rule rule-id { deny | permit } ip { ip-address [ mask ] | any } mac { mac-address [ mask ] | any } [ vlan vlan-id | vsi vsi-name ]
缺省情况下,未配置用户合法性检查规则。
(1) 进入系统视图。
system-view
(2) 进入VLAN视图。
vlan vlan-id
(3) 开启ARP Detection功能。
arp detection enable
缺省情况下,ARP Detection功能处于关闭状态,即不进行用户合法性检查。
(4) (可选)将不需要进行用户合法性检查的接口配置为ARP信任接口。
a. 退回系统视图。
quit
b. 进入接口视图。
interface interface-type interface-number
支持的接口类型包括二层以太网接口和二层聚合接口视图。
c. 将不需要进行用户合法性检查的接口配置为ARP信任接口。
arp detection trust
缺省情况下,接口为ARP非信任接口。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
支持的接口类型包括二层以太网接口和二层聚合接口。
(3) 开启ARP Detection功能。
arp detection enable
缺省情况下,ARP Detection功能处于关闭状态,即不进行用户合法性检查。
对于ARP信任接口,不进行报文有效性检查;对于ARP非信任接口,需要根据配置对MAC地址和IP地址不合法的报文进行过滤。可以选择配置源MAC地址、目的MAC地址或IP地址检查模式。
· 源MAC地址的检查模式:会检查ARP报文中的源MAC地址和以太网报文头中的源MAC地址是否一致,一致则认为有效,否则丢弃报文;
· 目的MAC地址的检查模式(只针对ARP应答报文):会检查ARP应答报文中的目的MAC地址是否为全0或者全1,是否和以太网报文头中的目的MAC地址一致。全0、全1、不一致的报文都是无效的,需要被丢弃;
· IP地址检查模式:会检查ARP报文中的源IP或目的IP地址,如全1、或者组播IP地址都是不合法的,需要被丢弃。对于ARP应答报文,源IP和目的IP地址都进行检查;对于ARP请求报文,只检查源IP地址。
配置本功能前需保证已经配置了“1.10.3 用户合法性检查”。
(1) 进入系统视图。
system-view
(2) 开启ARP报文有效性检查功能。
arp detection validate { dst-mac | ip | src-mac } *
缺省情况下,ARP报文有效性检查功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入VLAN视图。
vlan vlan-id
(3) 开启ARP Detection功能。
arp detection enable
缺省情况下,ARP Detection功能处于关闭状态,即不进行报文有效性检查。
(4) (可选)将不需要进行ARP报文有效性检查的接口配置为ARP信任接口。
a. 退回系统视图
quit
b. 进入接口视图。
interface interface-type interface-number
支持的接口类型包括二层以太网接口和二层聚合接口。
c. 将不需要进行ARP报文有效性检查的接口配置为ARP信任接口。
arp detection trust
缺省情况下,接口为ARP非信任接口。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
支持的接口类型包括二层以太网接口和二层聚合接口。
(3) 开启ARP Detection功能。
arp detection enable
缺省情况下,ARP Detection功能处于关闭状态,即不进行报文有效性检查。
对于从ARP信任接口接收到的ARP报文不受此功能影响,按照正常流程进行转发;对于从ARP非信任接口接收到的并且已经通过用户合法性检查的ARP报文的处理过程如下:
· 对于ARP请求报文,通过信任接口进行转发;
· 对于ARP应答报文,首先按照报文中的以太网目的MAC地址进行转发,若在MAC地址表中没有查到目的MAC地址对应的表项,则将此ARP应答报文通过信任接口进行转发。
ARP报文强制转发功能不支持目的MAC地址为多端口MAC的情况。
配置本功能前需保证已经配置了“1.10.3 用户合法性检查”。
(1) 进入系统视图。
system-view
(2) 进入VLAN视图。
vlan vlan-id
(3) 开启ARP报文强制转发功能。
arp restricted-forwarding enable
缺省情况下,ARP报文强制转发功能处于关闭状态。
设备开启ARP Detection功能后,会对非信任端口执行用户合法性检查,包括基于IP Source Guard静态绑定表项的检查、基于DHCP Snooping安全表项的检查、基于802.1X安全表项的检查。使用这些表项进行检查时,其中会检查ARP报文入端口和表项中的端口是否匹配,如果不匹配则丢弃此报文。
开启ARP Detection忽略端口匹配检查功能后,ARP Detection在根据表项进行用户合法性检查时,会忽略ARP报文入端口和表项中的端口是否匹配的检查。用户合法性检查通过后,则将报文进行二层转发,不再查询报文目的IP地址对应的IP Source Guard静态绑定表项、DHCP Snooping表项和802.1X安全表项转发报文。
(1) 进入系统视图。
system-view
(2) 开启ARP Detection忽略端口匹配检查功能。
arp detection port-match-ignore
缺省情况下,ARP Detection忽略端口匹配检查功能处于关闭状态。
在VXLAN组网中,用户可以在VTEP设备上的VSI内配置用户合法性检查和ARP报文有效性检查。与VLAN内不同的是,在VLAN内,这两项检查针对的是ARP非信任接口,而在VSI内,这两项检查均针对的是ARP非信任AC。在VXLAN中,与VSI关联的以太网服务实例统称为AC(Attachment Circuit,接入电路),详细介绍请参见“VXLAN配置指导”中的“VXLAN”。
VSI内的用户合法性检查和ARP报文有效性检查所依赖的安全表项和检查过程与VLAN环境下的相同。
(1) 进入系统视图。
system-view
(2) (可选)配置用户合法性检查规则。
arp detection rule rule-id { deny | permit } ip { ip-address [ mask ] | any } mac { mac-address [ mask ] | any } [ vlan vlan-id | vsi vsi-name ]
缺省情况下,未配置用户合法性检查规则。
(3) 进入VSI视图。
vsi vsi-name
(4) 开启ARP Detection功能。
arp detection enable
缺省情况下,ARP Detection功能处于关闭状态,即不进行用户合法性检查。
(5) (可选)配置ARP Detection信任AC。
a. 退回系统视图。
quit
b. 进入二层以太网接口或者二层聚合接口视图。
interface interface-type interface-number
c. 进入以太网服务实例视图。
service-instance instance-id
d. 配置ARP Detection信任AC。
arp detection trust
缺省情况下,AC为ARP Detection非信任AC。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 开启ARP Detection功能。
arp detection enable
缺省情况下,ARP Detection功能处于关闭状态,即不进行用户合法性检查。
(4) 退回系统视图。
quit
(5) 开启ARP报文有效性检查功能。
arp detection validate { dst-mac | ip | src-mac } *
缺省情况下,ARP报文有效性检查功能处于关闭状态。
(6) (可选)配置ARP Detection信任AC。
a. 进入二层以太网接口或者二层聚合接口视图。
interface interface-type interface-number
b. 进入以太网服务实例视图。
service-instance instance-id
c. 配置ARP Detection信任AC。
arp detection trust
缺省情况下,AC为ARP Detection非信任AC。
配置ARP Detection日志功能后,设备在检测到非法ARP报文时将生成检测日志,日志内容包括:
· 受到攻击的端口编号;
· 非法ARP报文的源IP地址;
· 丢弃的ARP报文总数。
(1) 进入系统视图。
system-view
(2) 开启ARP Detection日志功能。
arp detection log enable [ interval interval | number number | threshold threshold-value ]*
缺省情况下,ARP Detection日志功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置后ARP Detection的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,用户可以执行reset命令清除ARP Detection的统计信息。
表1-3 ARP Detection显示和维护
操作 |
命令 |
显示开启了ARP Detection功能的VLAN、VSI和接口 |
display arp detection |
显示ARP Detection攻击源统计信息 |
(独立运行模式) display arp detection statistics attack-source slot slot-number (IRF模式) display arp detection statistics attack-source chassis chassis-number slot slot-number |
显示ARP Detection丢弃报文的统计信息 |
display arp detection statistics packet-drop [ interface interface-type interface-number [ service-instance instance-id ] ] |
清除ARP Detection攻击源统计信息 |
(独立运行模式) reset arp detection statistics attack-source [ slot slot-number ] (IRF模式) reset arp detection statistics attack-source [ chassis chassis-number slot slot-number ] |
清除ARP DetectionARP Detection的报文丢弃统计信息 |
reset arp detection statistics packet-drop [ interface interface-type interface-number [ service-instance service-instance-id ] ] |
· Device A是DHCP服务器;Device B是支持802.1X的设备,在VLAN 10内配置ARP Detection功能,对认证客户端进行保护,保证合法用户可以正常转发报文,否则丢弃。
· Host A和Host B是本地802.1X接入用户。
图1-5 配置用户合法性检查组网图
(1) 配置组网图中所有接口属于VLAN及Switch A对应VLAN接口的IP地址(略)
(2) 配置DHCP服务器Device A
# 配置DHCP地址池0。
<DeviceA> system-view
[DeviceA] dhcp enable
[DeviceA] dhcp server ip-pool 0
[DeviceA-dhcp-pool-0] network 10.1.1.0 mask 255.255.255.0
(3) 配置客户端Host A和Host B(略),必须使用上传IP地址方式。
(4) 配置设备Device B
# 配置802.1X功能。
<DeviceB> system-view
[DeviceB] dot1x
[DeviceB] interface ten-gigabitethernet 3/0/1
[DeviceB-Ten-GigabitEthernet3/0/1] dot1x
[DeviceB-Ten-GigabitEthernet3/0/1] quit
[DeviceB] interface ten-gigabitethernet 3/0/2
[DeviceB-Ten-GigabitEthernet3/0/2] dot1x
[DeviceB-Ten-GigabitEthernet3/0/2] quit
# 添加本地接入用户。
[DeviceB] local-user test class network
[DeviceB-luser-network-test] service-type lan-access
[DeviceB-luser-network-test] password simple test
[DeviceB-luser-network-test] quit
# 开启ARP Detection功能,对用户合法性进行检查。
[DeviceB] vlan 10
[DeviceB-vlan10] arp detection enable
# 接口状态缺省为非信任状态,上行接口配置为信任状态,下行接口按缺省配置。
[DeviceB-vlan10] interface ten-gigabitethernet 3/0/3
[DeviceB-Ten-GigabitEthernet3/0/3] arp detection trust
[DeviceB-Ten-GigabitEthernet3/0/3] quit
完成上述配置后,对于接口Ten-GigabitEthernet3/0/1和Ten-GigabitEthernet3/0/2收到的ARP报文,需基于802.1X安全表项进行用户合法性检查。
· Device A是DHCP服务器;
· Host A是DHCP客户端;用户Host B的IP地址是10.1.1.6,MAC地址是0001-0203-0607。
· Device B是DHCP Snooping设备,在VLAN 10内配置ARP Detection功能,对DHCP客户端和用户进行用户合法性检查和报文有效性检查。
(1) 配置组网图中所有接口属于VLAN及Device A对应VLAN接口的IP地址(略)
(2) 配置DHCP服务器Device A
# 配置DHCP地址池0。
<DeviceA> system-view
[DeviceA] dhcp enable
[DeviceA] dhcp server ip-pool 0
[DeviceA-dhcp-pool-0] network 10.1.1.0 mask 255.255.255.0
(3) 配置DHCP客户端Host A和用户Host B(略)
(4) 配置设备Device B
# 开启DHCP Snooping功能。
<DeviceB> system-view
[DeviceB] dhcp snooping enable
[DeviceB] interface ten-gigabitethernet 3/0/3
[DeviceB-Ten-GigabitEthernet3/0/3] dhcp snooping trust
[DeviceB-Ten-GigabitEthernet3/0/3] quit
# 在接口Ten-GigabitEthernet3/0/1上开启DHCP Snooping表项记录功能。
[DeviceB] interface ten-gigabitethernet 3/0/1
[DeviceB-Ten-GigabitEthernet3/0/1] dhcp snooping binding record
[DeviceB-Ten-GigabitEthernet3/0/1] quit
# 开启ARP Detection功能,对用户合法性进行检查。
[DeviceB] vlan 10
[DeviceB-vlan10] arp detection enable
# 接口状态缺省为非信任状态,上行接口配置为信任状态,下行接口按缺省配置。
[DeviceB-vlan10] interface ten-gigabitethernet 3/0/3
[DeviceB-Ten-GigabitEthernet3/0/3] arp detection trust
[DeviceB-Ten-GigabitEthernet3/0/3] quit
# 在接口Ten-GigabitEthernet3/0/2上配置IP Source Guard静态绑定表项。
[DeviceB] interface ten-gigabitethernet 3/0/2
[DeviceB-Ten-GigabitEthernet3/0/2] ip source binding ip-address 10.1.1.6 mac-address 0001-0203-0607 vlan 10
[DeviceB-Ten-GigabitEthernet3/0/2] quit
# 配置进行报文有效性检查。
[DeviceB] arp detection validate dst-mac ip src-mac
完成上述配置后,对于接口Ten-GigabitEthernet3/0/1和Ten-GigabitEthernet3/0/2收到的ARP报文,先进行报文有效性检查,然后基于IP Source Guard静态绑定表项、DHCP Snooping安全表项进行用户合法性检查。
· Device A是DHCP服务器。
· Host A是DHCP客户端;用户Host B的IP地址是10.1.1.6,MAC地址是0001-0203-0607。
· Host A和Host B在设备Device B上端口隔离,但是均和网关Device A相通,Ten-GigabitEthernet3/0/1、Ten-GigabitEthernet3/0/2、Ten-GigabitEthernet3/0/3均属于VLAN 10。
· Device B是DHCP Snooping设备,在VLAN 10内开启ARP Detection功能,对DHCP客户端和用户进行保护,保证合法用户可以正常转发报文,否则丢弃。
要求:Device B在开启ARP Detection功能后,对于ARP广播请求报文仍然能够进行端口隔离。
图1-7 配置ARP报文强制转发组网图
(1) 配置组网图中所有接口属于VLAN及Device A对应VLAN接口的IP地址(略)
(2) 配置DHCP服务器Device A
# 配置DHCP地址池0。
<DeviceA> system-view
[DeviceA] dhcp enable
[DeviceA] dhcp server ip-pool 0
[DeviceA-dhcp-pool-0] network 10.1.1.0 mask 255.255.255.0
(3) 配置DHCP客户端Host A和用户Host B(略)
(4) 配置设备Device B
# 开启DHCP Snooping功能。
<DeviceB> system-view
[DeviceB] dhcp snooping enable
[DeviceB] interface ten-gigabitethernet 3/0/3
[DeviceB-Ten-GigabitEthernet3/0/3] dhcp snooping trust
[DeviceB-Ten-GigabitEthernet3/0/3] quit
# 开启ARP Detection功能,对用户合法性进行检查。
[DeviceB] vlan 10
[DeviceB-vlan10] arp detection enable
# 配置上行接口为信任状态,下行接口为缺省配置(非信任状态)。
[DeviceB-vlan10] interface ten-gigabitethernet 3/0/3
[DeviceB-Ten-GigabitEthernet3/0/3] arp detection trust
[DeviceB-Ten-GigabitEthernet3/0/3] quit
# 在接口Ten-GigabitEthernet3/0/2上配置IP Source Guard静态绑定表项。
[DeviceB] interface ten-gigabitethernet 3/0/2
[DeviceB-Ten-GigabitEthernet3/0/2] ip source binding ip-address 10.1.1.6 mac-address 0001-0203-0607 vlan 10
[DeviceB-Ten-GigabitEthernet3/0/2] quit
# 配置进行报文有效性检查。
[DeviceB] arp detection validate dst-mac ip src-mac
# 配置端口隔离。
[DeviceB] port-isolate group 1
[DeviceB] interface ten-gigabitethernet 3/0/1
[DeviceB-Ten-GigabitEthernet3/0/1] port-isolate enable group 1
[DeviceB-Ten-GigabitEthernet3/0/1] quit
[DeviceB] interface ten-gigabitethernet 3/0/2
[DeviceB-Ten-GigabitEthernet3/0/2] port-isolate enable group 1
[DeviceB-Ten-GigabitEthernet3/0/2] quit
完成上述配置后,对于接口Ten-GigabitEthernet3/0/1和Ten-GigabitEthernet3/0/2收到的ARP报文,先进行报文有效性检查,然后基于IP Source Guard静态绑定表项、DHCP Snooping安全表项进行用户合法性检查。但是,Host A发往Device A的ARP广播请求报文,由于通过了用户合法性检查,所以能够被转发到Host B,端口隔离功能失效。
# 开启ARP报文强制转发功能。
[DeviceB] vlan 10
[DeviceB-vlan10] arp restricted-forwarding enable
[DeviceB-vlan10] quit
此时,Host A发往Device A的合法ARP广播请求报文只能通过信任接口Ten-GigabitEthernet3/0/3转发,不能被Host B接收到,端口隔离功能可以正常工作。
建议在网吧这种环境稳定的小型网络中使用ARP自动扫描、固化功能。ARP自动扫描功能一般与ARP固化功能配合使用:
· 配置ARP自动扫描功能后,设备会对局域网内的邻居自动进行扫描(向邻居发送ARP请求报文,获取邻居的MAC地址,从而建立动态ARP表项)。
· 开启了ARP周期自动扫描功能后,会按照扫描速率周期性的向扫描区间的所有IP地址发送ARP请求报文进行扫描。设备发送ARP报文的速率可在系统视图下通过arp scan auto send-rate命令设置。
· ARP固化用来将当前的ARP动态表项(包括ARP自动扫描生成的动态ARP表项)转换为静态ARP表项。通过对动态ARP表项的固化,可以有效防止攻击者修改ARP表项。
固化后的静态ARP表项与配置产生的静态ARP表项相同。
接口上开启了ARP自动扫描功能后,会向扫描区间的所有IP地址同时发送ARP请求报文,这会造成设备瞬间CPU利用率过高、网络负载过大的问题。用户可以通过设置接口发送ARP报文的速率解决此问题。
· 对于已存在ARP表项的IP地址不进行扫描。
· 如果接口下同时配置了ARP自动扫描功能和ARP周期性扫描功能,则两个功能可以同时生效。通常,仅建议在网络中用户频繁上下线的环境下开启ARP周期性扫描功能。
· 固化生成的静态ARP表项数量同样受到设备可以支持的静态ARP表项数目的限制,由于静态ARP表项数量的限制可能导致只有部分动态ARP表项被固化。
· 通过arp fixup命令将当前的动态ARP表项转换为静态ARP表项后,后续学习到的动态ARP表项可以通过再次执行arp fixup命令进行固化。
· 通过固化生成的静态ARP表项,可以通过命令行undo arp ip-address [ vpn-instance-name ]逐条删除,也可以通过命令行reset arp all或reset arp static全部删除。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启ARP自动扫描功能。
arp scan [ start-ip-address to end-ip-address ] [ send-rate { ppm ppm | pps } ]
扫描操作可能比较耗时,且会占用较大的设备资源和网络负载。可以通过<Ctrl_C>来终止扫描(在终止扫描时,对于已经收到的邻居应答,会建立该邻居的动态ARP表项)。
(1) 进入系统视图。
system-view
(2) 设置ARP周期自动扫描速率。
arp scan auto send-rate { ppm ppm | pps pps }
缺省情况下,ARP周期自动扫描速率为48pps。
(3) 进入接口视图。
interface interface-type interface-number
(4) 开启ARP周期自动扫描功能。
arp scan auto enable [start-ip-address to end-ip-address]
缺省情况下,接口上的ARP周期性扫描功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 将设备上的动态ARP表项转化成静态ARP表项。
arp fixup
在规模较大的组网环境中(比如园区网络),使用ARP周期性扫描功能后,如果指定的扫描范围过大,会导致需要较长的时间才能扫描到异常下线的主机。开启本功能后系统可以通过Keepalive表项快速定位异常下线的主机,并在老化时间内对异常下线主机的状态进行监测。
ARP的Keepalive表项的老化时间可以在系统视图和接口视图下同时配置,优先使用接口视图下的配置,如果接口视图下为缺省配置则使用系统视图下的配置。
用户上线后,系统会生成动态ARP表项和IP Source Guard绑定表项。开启本功能后,系统会根据这些表项建立状态为在线的Keepalive表项。用户下线后其ARP表项会被删除,对应的Keepalive表项的状态被置为离线。设备每隔一段时间会向处于离线状态的Keepalive表项对应的IP发送ARP请求报文,直到Keepalive表项的状态恢复成在线或离线状态的Keepalive表项被删除。处于离线状态的Keepalive表项在老化时间内没有恢复成在线便会被删除。对于某处于离线状态的Keepalive表项,设备发送ARP请求报文的间隔时间由已经向此Keepalive表项对应的IP地址发送的ARP请求报文的个数决定。关于IP Source Guard的详细介绍,请参见“安全配置指导”中的“IP Source Guard”。
(1) 进入系统视图。
system-view
(2) (可选)设置ARP的Keepalive表项扫描速率。
arp scan keepalive send-rate pps
缺省情况下,ARP的Keepalive表项扫描速率为每秒发送48个ARP请求报文。
(3) (可选)配置ARP的Keepalive表项的老化时间
arp scan keepalive aging-time time
缺省情况下,系统视图下ARP的Keepalive表项的老化时间为60分钟,接口视图下ARP的Keepalive表项的老化时间采用系统视图下的配置。
(4) 进入接口视图。
interface interface-type interface-number
(5) 开启ARP的Keepalive表项扫描功能。
arp scan keepalive enable
缺省情况下,接口上的ARP的Keepalive表项扫描功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示ARP的Keepalive表项扫描的相关信息。
在用户视图下,用户可以执行reset命令清除接口向异常状态的Keepalive表项发送的ARP请求报文的计数信息。
表1-4 ARP的Keepalive表项扫描显示和维护
操作 |
命令 |
显示ARP的Keepalive表项信息 |
display arp scan keepalive entry [ interface interface-type interface-number ] [ count ] |
显示接口向异常状态的Keepalive表项发送的ARP请求报文个数 |
(独立运行模式) display arp scan keepalive statistics [ slot slot-number ] [ interface interface-type interface-number ] (IRF模式) display arp scan keepalive statistics [ chassis chassis-number slot slot-number ] [ interface interface-type interface-number ] |
清除接口向异常状态的Keepalive表项发送的ARP请求报文的计数信息 |
(独立运行模式) reset arp scan keepalive statistics [ slot slot-number ] (IRF模式) reset arp scan keepalive statistics [ chassis chassis-number slot slot-number ] |
在设备上不与网关相连的接口上配置此功能,可以防止伪造网关攻击。
在接口上开启此功能后,当接口收到ARP报文时,将检查ARP报文的源IP地址是否和配置的被保护网关的IP地址相同。如果相同,则认为此报文非法,将其丢弃;否则,认为此报文合法,继续进行后续处理。
在以太网服务实例视图下配置此功能,可以为以太网服务实例过滤指定源IP地址的ARP报文。有关以太网服务实例的详细介绍请参见“EVPN配置指导”中的“EVPN VXLAN”。
仅SF系列接口板支持以太网服务实例视图下的ARP网关保护功能。
· 在接口视图下和以太网服务实例视图下,分别最多支持配置8个受保护的网关IP地址。
· 不能在同一接口下同时配置命令arp filter source和arp filter binding。接口下的arp filter binding命令与以太网服务实例视图下的arp filter source命令可同时配置。
· 本功能与ARP Detection、MFF、ARP Snooping和ARP快速应答功能配合使用时,先进行本功能检查,本功能检查通过后才会进行其他配合功能的处理。
(1) 进入系统视图。
system-view
(2) 进入接口视图或以太网服务实例视图。
¡ 进入接口视图。
interface interface-type interface-number
支持的接口类型包括二层以太网接口和二层聚合接口。
¡ 请依次执行以下命令进入以太网服务实例视图。
interface interface-type interface-number
service-instance instance-id
(3) 开启ARP网关保护功能,配置被保护的网关IP地址。
arp filter source ip-address
缺省情况下,ARP网关保护功能处于关闭状态。
与Device B相连的Host B进行了仿造网关Device A(IP地址为10.1.1.1)的ARP攻击,导致与Device B相连的设备与网关Device A通信时错误发往了Host B。
要求:通过配置防止这种仿造网关攻击。
图1-8 配置ARP网关保护功能组网图
# 在Device B上开启ARP网关保护功能。
<DeviceB> system-view
[DeviceB] interface ten-gigabitethernet 3/0/1
[DeviceB-Ten-GigabitEthernet3/0/1] arp filter source 10.1.1.1
[DeviceB-Ten-GigabitEthernet3/0/1] quit
[DeviceB] interface ten-gigabitethernet 3/0/2
[DeviceB-Ten-GigabitEthernet3/0/2] arp filter source 10.1.1.1
完成上述配置后,对于Host B发送的伪造的源IP地址为网关IP地址的ARP报文将会被丢弃,不会再被转发。
本功能用来限制接口下允许通过的ARP报文,可以防止仿冒网关和仿冒用户的攻击。
在接口上配置此功能后,当接口收到ARP报文时,将检查ARP报文的源IP地址和源MAC地址是否和允许通过的IP地址和MAC地址相同:
· 如果相同,则认为此报文合法,继续进行后续处理;
· 如果不相同,则认为此报文非法,将其丢弃。
· 每个接口最多支持配置8组允许通过的ARP报文的源IP地址和源MAC地址。
· 不能在同一接口下同时配置命令arp filter source和arp filter binding。
· 本功能与ARP Detection、MFF、ARP Snooping和ARP快速应答功能配合使用时,先进行本功能检查,本功能检查通过后才会进行其他配合功能的处理。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
支持的接口类型包括二层以太网接口和二层聚合接口。
(3) 开启ARP过滤保护功能,配置允许通过的ARP报文的源IP地址和源MAC地址。
arp filter binding ip-address mac-address
缺省情况下,ARP过滤保护功能处于关闭状态。
· Host A的IP地址为10.1.1.2,MAC地址为000f-e349-1233。
· Host B的IP地址为10.1.1.3,MAC地址为000f-e349-1234。
· 限制Device B的Ten-GigabitEthernet3/0/1、Ten-GigabitEthernet3/0/2接口只允许指定用户接入,不允许其他用户接入。
图1-9 配置ARP过滤保护功能组网图
# 开启Device B的ARP过滤保护功能。
<DeviceB> system-view
[DeviceB] interface ten-gigabitethernet 3/0/1
[DeviceB-Ten-GigabitEthernet3/0/1] arp filter binding 10.1.1.2 000f-e349-1233
[DeviceB-Ten-GigabitEthernet3/0/1] quit
[DeviceB] interface ten-gigabitethernet 3/0/2
[DeviceB-Ten-GigabitEthernet3/0/2] arp filter binding 10.1.1.3 000f-e349-1234
完成上述配置后,接口Ten-GigabitEthernet3/0/1收到Host A发出的源IP地址为10.1.1.2、源MAC地址为000f-e349-1233的ARP报文将被允许通过,其他ARP报文将被丢弃;接口Ten-GigabitEthernet3/0/2收到Host B发出的源IP地址为10.1.1.3、源MAC地址为000f-e349-1234的ARP报文将被允许通过,其他ARP报文将被丢弃。
配置本功能后,网关设备在进行ARP学习前将对ARP报文进行检查。如果指定VLAN内的ARP报文的发送端IP地址不在指定源IP地址范围内,则认为是攻击报文,将其丢弃;否则,继续进行ARP学习。
· 当Super VLAN与Sub VLAN间建立映射关系时,本功能在Sub VLAN内配置。
· 如果配置了Primary VLAN和指定的Secondary VLAN间三层互通,则本功能必须Primary VLAN中配置;否则,本功能可在Primary VLAN或任意Secondary VLAN中配置。
(1) 进入系统视图。
system-view
(2) 进入VLAN视图。
vlan vlan-id
(3) 配置ARP报文发送端IP地址检查功能,并配置允许学习ARP报文的发送端IP地址范围。
arp sender-ip-range start-ip-address end-ip-address
缺省情况下,ARP报文发送端IP地址检查功能处于关闭状态。
Device为网关设备连接不同的VLAN。现有如下组网需求:
· 通过创建Super VLAN,实现Device连接的各VLAN用户(均在10.1.1.0/24网段)之间能够二层隔离和三层互通,且各VLAN的用户公用IP地址10.1.1.1/24作为三层通信的网关地址。
· 通过配置ARP报文发送端IP地址检查功能,实现VLAN 2内只允许IP地址范围为10.1.1.1~10.1.1.10的用户访网关设备。
图1-10 ARP报文发送端IP地址检查功能组网图
# 创建VLAN 10,配置VLAN接口的IP地址为10.1.1.1/24。
<Device> system-view
[Device] vlan 10
[Device-vlan10] quit
[Device] interface vlan-interface 10
[Device-Vlan-interface10] ip address 10.1.1.1 255.255.255.0
[Device] quit
# 创建VLAN 2,并向VLAN 2中添加端口Ten-GigabitEthernet3/0/1和端口Ten-GigabitEthernet3/0/2。
[Device] vlan 2
[Device-vlan2] port ten-gigabitethernet 3/0/1 ten-gigabitethernet 3/0/2
[Device-vlan2] quit
# 创建VLAN 3,并向VLAN 3中添加端口Ten-GigabitEthernet3/0/3和端口Ten-GigabitEthernet3/0/4。
[Device] vlan 3
[Device-vlan3] port ten-gigabitethernet 3/0/3 ten-gigabitethernet 3/0/4
[Device-vlan3] quit
# 创建VLAN 4,并向VLAN 4中添加端口Ten-GigabitEthernet3/0/5和端口Ten-GigabitEthernet3/0/6。
[Device] vlan 4
[Device-vlan4] port ten-gigabitethernet 3/0/5 ten-gigabitethernet 3/0/6
[Device-vlan4] quit
# 配置VLAN 10为Super VLAN,其关联的Sub VLAN为VLAN 2、VLAN 3和VLAN 4。
[Device] vlan 10
[Device-vlan10] supervlan
[Device-vlan10] subvlan 2 3 4
[Device-vlan10] quit
# 在VLAN 2内,配置ARP报文发送端IP地址检查功能,并指定允许学习ARP报文的发送端IP地址范围为10.1.1.1~10.1.1.10。
[Device] vlan 2
[Device-vlan2] arp sender-ip-range 10.1.1.1 10.1.1.10
完成上述配置后,只有当VLAN 2内的ARP报文的发送端IP地址属于10.1.1.1~10.1.1.10地址范围时,才允许用户访问网关设备Device,其他不属于该地址范围内的ARP报文将被丢弃。
用户可根据业务需求开启指定功能的ARP模块的告警:
· 开启了触发ARP主动确认的告警功能后,如果设备由于主动确认功能而没有建立ARP表项,设备会将收到的ARP报文的发送端IP地址和收到ARP报文的接口信息作为告警信息发送到设备的SNMP模块。
· 开启了ARP Miss消息和ARP报文发送限速的告警功能后,如果设备每秒发送的ARP Miss消息或ARP报文的个数超过了设备定制的阈值,设备会将超速峰值作为告警信息发送到设备的SNMP模块。
· 开启了ARP Detection丢包的告警功能后,设备会将ARP Detection丢包的VLAN ID、Service ID、VSI、丢包类型等信息作为告警信息发送到设备的SNMP模块。
· 开启了ARP表项被修改的告警功能后,当设备检测到用户在设备上的ARP表项可能被刷新成攻击者的ARP表项时,设备会将ARP欺骗攻击报文的IP地址、MAC地址等信息作为告警信息发送到设备的SNMP模块。
· 开启了ARP表项达到最大个数的告警功能后,如果当前全局ARP表项的数量超过了告警阈值,设备会将当前ARP表项的数目作为告警信息发送到设备的SNMP模块。
· 当开启了ARP网关保护的告警功能后,当设备受到仿冒网关攻击时,设备会将因网关保护功能丢弃的ARP攻击报文的发送端IP地址、发送端MAC地址、收到ARP攻击报文的接口索引等作为告警信息发送到设备的SNMP模块。当同一发送端IP地址的ARP报文3分钟内再次触发告警,则认为此次告警恢复,同时发送告警恢复信息到设备的SNMP模块。
· 开启了ARP模块终端与本机冲突的告警功能后,设备会将冲突报文的发送端IP地址和MAC地址、目标IP地址和MAC地址等信息作为告警信息发送到设备的SNMP模块。
· 开启了ARP MAC地址不一致的告警功能后,当设备上配置的静态ARP表项的MAC地址和用户实际的MAC地址不一致时,设备会将该ARP表项的IP地址、VRF、MAC地址等信息作为告警信息发送到设备的SNMP模块。
· 非法ARP报文指报文中的硬件类型、协议类型、硬件地址长度、协议地址长度、操作类型或VLAN等信息存在非法值的ARP报文。比如当ARP报文的操作类型不是请求或响应时,操作类型为非法值,此ARP报文非法。当开启了非法ARP报文检查的告警功能后,设备将接收到的非法ARP报文的接口名、发送端MAC地址、发送端IP地址、用户VLAN ID、服务提供商VLAN ID作为告警信息发送出去,生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关特性。
· 开启了ARP报文限速的告警功能后,如果某接口上的ARP报文速率超过用户设定的限速值,设备会将超速峰值作为告警信息发送到设备的SNMP模块。有关ARP报文限速的配置请参见“配置ARP报文限速功能”。
· 开启了ARP模块终端用户间IP地址冲突的告警功能后,设备会将冲突报文的发送端IP地址和MAC地址、发生冲突的本地表项的MAC地址等信息作为告警信息发送到设备的SNMP模块。有关开启ARP记录终端用户间IP地址冲突功能请参见“三层技术-IP业务配置指导”中的“ARP”。
· 开启了ARP模块终端用户端口迁移的告警功能后,设备会将发生了端口迁移的用户的IP地址、MAC地址、迁移前后的端口名称等信息作为告警信息发送到设备的SNMP模块。有关开启ARP记录终端用户端口迁移功能请参见“三层技术-IP业务配置指导”中的“ARP”。
可以通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关特性。有关告警信息的详细描述,请参见“网络管理和监控配置指导”中的“SNMP”。
仅SF系列接口板支持rate-limit参数。
(1) 进入系统视图。
system-view
(2) 开启ARP模块的告警功能。
snmp-agent trap enable arp [ active-ack | arp-miss | detection-drop | entry-check | entry-limit | gateway-check | local-conflict | mac-mismatch | packet-check | rate-limit | user-ip-conflict | user-move ] *
缺省情况下,ARP模块的告警功能处于关闭状态。
如果不指定任何参数,则表示打开ARP模块的所有告警功能。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!