在三层网络中,指导数据转发的表项是路由表和ARP表。

l  路由表是交换机之间通过交互路由协议报文生成的,交互过程没有用户参与,所以***者很难对其进行***,路由表一般也就不存在***。

l  ARP表是用户和交换机之间通过交互协议报文生成的,***者很容易对其进行***。

因此三层网络安全的核心就是保证ARP表安全。除此之外,IP地址作为三层网络最基本的存在,非法用户仿冒IP地址也成为三层网络中常见的一种***手段。所以本篇我们将从如何保证ARP表安全和如何防止IP地址欺骗两个方面讲解S交换机三层网络的安全。

1   如何保证ARP表安全?

ARP表项分为动态ARP和静态ARP。静态ARP是手动配置的,所以不存在安全问题。动态ARP是通过ARP报文动态学习的,所以在ARP动态学习过程中,比较容易受到非法用户的***,下面我们先从ARP学习过程看一下可能存在的ARP***以及防止***的思路。

表1 ARP学习过程分析

ARP学习过程

可能收到的***

防止***的思路

1. 交换机接口收到ARP报文,上送CPU处理

发送大量ARP报文,使合法用户的ARP报文无法上送CPU处理。

保证合法用户的ARP报文可以上送CPU处理。

2. 根据ARP报文中的源IP地址检查设备是否存在对应的ARP表项。如果存在,刷新ARP表项,如果不存在,添加新的ARP表项。

通过仿冒ARP报文,篡改正确的ARP表项。

保证ARP表项的正确性。

3. 判断是否有ARP表资源,如果有ARP表资源,记录新的ARP表项。否则丢弃该报文,不记录ARP表项。

发送大量源IP或源MAC变化的报文,耗尽ARP表资源。

保证合法用户的ARP表项可以正常生成。

下面我们以防止***的思路为维度,讲解一下S交换机防止ARP***的方法。

1.1   保证合法用户的ARP报文可以上送CPU处理

缺省情况下,为了保证CPU的正常运行,交换机对每种上送CPU的协议报文都设置了CPCAR值,对于超过CPCAR值的报文就会被丢弃。如果非法用户发送大量的ARP报文,就会导致合法用户的ARP报文无法上送CPU,也就无法正常生成ARP表项,S交换机可以通过下面几种方式防止非法用户的此类***。

Ø  ARP报文限速功能

S交换机支持从多种维度对ARP报文进行限速。

表2 ARP报文限速功能

维度

实现说明

基于源MAC地址

设备会对上送CPU的ARP报文根据源MAC地址进行统计,如果在1秒内收到的同一个源MAC地址的ARP报文超过设定限速值,设备则丢弃超出限速值部分的ARP报文。

S交换机不仅可以针对任意源MAC进行限速,还可以针对某一源MAC进行限速。

基于源IP地址

设备会对上送CPU的ARP报文根据源IP地址进行统计,如果在1秒内收到的同一个源IP地址的ARP报文超过设定限速值,设备则丢弃超出限速值部分的ARP报文。

S交换机不仅可以针对任意源IP进行限速,还可以针对某一源IP进行限速。

基于全局、VLAN、接口

限制全局、某个VLAN,某个接口处理的ARP报文数量。

如果在1秒内收到的ARP报文数目超过限速值,设备会丢弃超出限速值的ARP报文。

配置方法如下:

·         基于源MAC地址对ARP报文限速。

[HUAWEI] arp speed-limit source-mac maximum 10   //对于任意MAC地址,每秒最多允许10个ARP报文通过

·         基于源IP地址对ARP报文限速。

[HUAWEI] arp speed-limit source-ip maximum 10   //对于任意IP地址,每秒最多允许10个ARP报文通过

·         基于全局对ARP报文限速。

[HUAWEI] arp anti-attack rate-limit enable   //开启ARP限速功能

[HUAWEI] arp anti-attack rate-limit packet 200 interval 10   //指定设备在10秒钟内最多允许上送200个ARP报文,超过限速值则丢弃

·         基于VLAN对ARP报文限速。

[HUAWEI-vlan3] arp anti-attack rate-limit enable  //开启ARP限速功能

[HUAWEI-vlan3] arp anti-attack rate-limit packet 200 interval 10   //指定VLAN3在10秒钟内最多允许上送200个ARP报文,超过限速值则丢弃

·         基于接口对ARP报文限速。

[HUAWEI-GigabitEthernet0/0/1] arp anti-attack rate-limit enable   //开启ARP限速功能

[HUAWEI-GigabitEthernet0/0/1] arp anti-attack rate-limit packet 200 interval 10   //指定接口GE0/0/1在10秒钟内最多允许上送200个ARP报文,超过限速值则丢弃

Ø  ARP Miss消息限速功能

为什么对ARP Miss消息限速,可以保证合法用户的ARP报文得到处理呢?我们先看看ARP Miss消息是怎么产生的?

如果网络中有用户向设备发送大量目标IP地址不能解析的IP报文(即路由表中存在该IP报文的目的IP对应的路由表项,但设备上没有该路由表项中下一跳对应的ARP表项),将导致设备触发大量的ARP Miss消息。这种触发ARP Miss消息的IP报文会被上送到CPU进行处理,设备会根据ARP Miss消息生成和下发大量临时ARP表项并向目的网络发送大量ARP请求报文,这样就增加了设备CPU的负担。

通过对ARP Miss消息进行限速,可以减少设备CPU的负担,这样合法用户的ARP报文就有可能会被上送处理。

ARP Miss消息限速配置方法如下:

·         基于源IP地址的ARP Miss消息限速。

[HUAWEI] arp-miss speed-limit source-ip maximum 60   //允许设备每秒最多处理同一个源IP地址触发的60个ARP Miss消息

·         在全局对ARP Miss消息限速。另外也可以基于VLAN或接口对ARP Miss消息限速。

[HUAWEI] arp-miss anti-attack rate-limit enable   //开启ARP Miss限速功能

[HUAWEI] arp-miss anti-attack rate-limit packet 200 interval 10  //指定设备在10秒钟内最多允许上送200个ARP Miss消息,超过限速值则丢弃

Ø  出口ARP检测功能

ARP请求报文是广播报文,当设备收到一个ARP请求报文时,会将该报文在指定的广播域内转发。

出口ARP检测就是通过减少VLAN内广播报文减少CPU的负担。其核心原理是根据DHCP Snooping表查找目的IP地址对应的出接口,将ARP请求报文直接从查找到的出接口发送出去,减少VLAN内广播的ARP报文,从而减少CPU的负担。

出口ARP检测功能主要是为了减少网关设备处理的ARP报文个数。如图1所示,通过在L2switch上使能出口ARP检测功能,可以在L2switch广播ARP请求报文之前,查找DHCP Snooping绑定表,如果能够找到ARP报文中目的IP地址对应的出接口,则将ARP请求报文从找到的出接口发送出去,有效减少网关收到的ARP请求报文数量。

图1 出口ARP检测应用场景

20161221145227636001.png

出口ARP检测功能配置方法如下:

[L2switch] dhcp enable   //全局使能DHCP功能

[L2switch] dhcp snooping enable   //全局使能DHCP Snooping功能

[L2switch] vlan 10  

[L2switch-vlan10] dhcp snooping enable  

[L2switch-vlan10] dhcp snooping arp security enable  //使能出口ARP检测功能

1.2   保证ARP表项的正确性

ARP报文上送CPU后,交换机会根据ARP报文的源IP查询当前的ARP表中是否存在对应的ARP表项:如果存在,就会刷新ARP表项。***者利用这一点,通过仿冒ARP报文,篡改ARP表项,使合法用户的报文转发出现异常。针对***者不同的***方式,S交换机提供了不同的防***方法。

Ø  防止仿冒网关***

***者通过仿冒网关,在局域网内部发送源IP地址是网关IP地址的ARP报文,导致局域网内其他用户主机记录的网关地址映射关系被篡改。这样其他用户主机就会把发往网关的流量发送给***者,造成这些用户主机无法访问网络,***者还可以窃取到他们发送的数据内容,造成信息泄露。

如下图2所示,***者仿冒网关,告诉UserA网关MAC已更新为5-5-5,UserA信以为真,将本该发送给Gateway 1-1-1的数据发送给错误的网关5-5-5,导致通信中断。更糟糕的情况,***者的MAC正好是5-5-5,UserA把本该发送给网关的消息发送给***者,造成信息泄露。

图2 仿冒网关***场景

20161221145228596002.png

S交换机提供下面几种方法防止仿冒网关的***。

表3 防止仿冒网关***的方法

防***方法

防***原理

发送ARP免费报文

网关设备通过定时发送ARP免费报文,定期更新合法用户的ARP表项,使得合法用户ARP表项中记录的是正确的网关地址映射关系。

ARP防网关冲突检测

当设备收到的ARP报文的

源IP地址与报文入接口对应的VLANIF接口的IP地址相同ARP报文的源IP地址是入接口的虚拟IP地址,但ARP报文源MAC地址不是VRRP虚MAC时,就认为该ARP报文是与网关地址冲突的ARP报文,设备将生成ARP防***表项,并在后续一段时间内丢弃该接口收到的同VLAN以及同源MAC地址的ARP报文。

ARP网关保护功能

开启对网关地址保护功能的接口将可以正常接收转发该源IP地址的ARP报文。未开启对网关地址保护功能的接口将丢弃该源IP地址的ARP报文。

配置方法如下:

·         配置网关定时发送免费ARP报文。

[Gateway] arp gratuitous-arp send enable   //使能发送免费ARP报文,默认是发送时间间隔是30秒

·         配置ARP防网关冲突检测

[Gateway] arp anti-attack gateway-duplicate enable

·         配置ARP网关保护功能

[L2switch] interface gigabitethernet 0/0/1  

[L2switch-GigabitEthernet0/0/1] arp filter source 10.1.1.1   //被保护的网关IP地址是10.1.1.1

Ø  防止仿冒合法用户***

如下图3所示,***者仿冒合法用户,伪造ARP报文,篡改网关设备上UserA的ARP表项,导致UserB通过Gateway转发数据给UserA时,因查询到错误的ARP表项,导致UserA无法收到UserB发送给其的数据。

图3 仿冒合法用户***场景

20161221145229201003.png

S交换机提供下面几种方法防止仿冒合法用户的***。

表4 防止仿冒合法用户***的方法

防***方法

防***原理

ARP表项固化

ARP表项固化有三种方式:

·         fixed-macARP报文中的MAC地址与ARP表中对应条目的MAC地址不符则丢弃。

·         fixed-allARP报文中的MAC地址、接口、VLAN信息和ARP表项中的信息任一不匹配则丢弃。

·         send-ack设备对收到涉及MAC地址、VLAN、或接口信息修改的ARP报文时,先发送ARP请求报文,未收到回应则丢弃。

动态ARP检测功能

设备将根据DHCP Snooping绑定表对收到的ARP报文的IP地址、MAC地址、VLAN或接口信息与绑定表中记录的表项内容进行检查,不匹配则直接丢弃。

配置方法如下:

·         配置ARP表项固化,可以基于全局和接口分别进行配置。

[Gateway] arp anti-attack entry-check fixed-mac enable   //指定固化方式是fixed-mac

·         配置动态ARP检测功能,可以基于接口和VLAN分别进行配置。

[Gateway] vlan 10  

[Gateway-vlan10] arp anti-attack check user-bind enable

1.3   保证合法用户的ARP表项可以正常生成

设备上ARP表资源是有限的,***者通过ARP泛洪耗尽ARP表资源,就会导致合法用户的ARP表项无法生成,报文转发失败。

S交换机提供下面几种方法防止ARP表被***者耗尽。

表5 防止ARP表资源耗尽的方法

防***方法

防***原理

限制可以学习的ARP表项数量

当发现某个接口下存在***者,占用大量ARP表资源时,通过限制该接口可以学习的ARP表项数量,可以避免ARP表被耗尽。当接口上学习到的ARP表达到指定的限制值时,该接口不再学习新的ARP表项。

ARP表项严格学习

只有本设备主动发送的ARP请求报文的应答报文才能触发本设备进行ARP学习,其他设备主动向本设备发送的ARP报文不能触发本设备进行ARP学习。

配置方法如下:

·         限制ARP表项。

[HUAWEI] interface gigabitethernet 0/0/1 

[HUAWEI-GigabitEthernet0/0/1] arp-limit vlan 10 maximum 20  //配置接口GE0/0/1最多可以学习到20个VLAN10内的动态ARP表项

·         配置ARP表项严格学习

[HUAWEI] arp learning strict  //配置ARP表项严格学习

2   如何防止IP地址欺骗***?

IP地址欺骗***指的是***者通过仿冒合法用户的IP地址,对设备进行***的一种***方法。

下面我们将介绍两种常见的防IP地址欺骗***的方法:IPSG和URPF。

2.1   IPSG

IP源防***IPSG(IP Source Guard)是通过绑定表的方式防止IP地址欺骗***的。当用户发送的IP报文与绑定表信息不一致时,就认为是***报文被丢弃。

可是我们都知道通过配置静态ARP可以防止***者仿冒IP地址的***,为什么还需要IPSG呢?

静态绑定表的IPSG和静态ARP都可以实现IP和MAC的绑定。区别如下表所示。

表6 IPSG和静态ARP的区别

特性

功能说明

应用场景

IPSG

通过静态绑定表固定IP地址和MAC地址之间映射关系,设备会匹配检查接口上接收到的IP报文,只有匹配绑定表的IP报文才允许通过。

一般部署在与用户直连的接入设备上,防止内网中的IP地址欺骗***,如非法主机仿冒合法主机的IP地址获取上网权限。

静态ARP

通过静态ARP表固定IP地址和MAC地址之间映射关系,静态ARP表项不会被动态刷新,设备根据静态ARP表转发接收到的报文。

一般部署在网关上,配置重要服务器的静态ARP表项,防止ARP欺骗***,保证主机和服务器之间的正常通信。

图4 IPSG和静态ARP的应用场景

20161221145230915004.png

如上图4所示,假设Switch上未配置IPSG。当非法主机仿冒合法主机的IP地址访问Internet,报文转发过程如下:

1)   非法主机发送的报文到达Switch。

2)   Switch将报文转发到Gateway。

3)   Gateway将报文发往Internet。

4)   Internet回程报文到达Gateway。

5)   Gateway根据目的IP地址(即仿冒的合法主机的IP地址)查找静态ARP表项,这个IP对应的MAC为合法主机的MAC,Gateway将封装后的报文发送给Switch。

6)   Switch根据目的MAC地址将报文转发到合法主机。

从过程来看:

如果伪造的是合法主机的IP地址,配置静态ARP也能防止非法主机更改IP地址上网,但是会导致合法主机收到大量非法回应报文。如果合法主机在线时,非法主机不断构造并发送这种报文,则会对合法主机造成***。

如果非法主机仿冒的IP地址是一个未使用的IP地址,并且这个IP地址没有被添加到静态ARP表中,则会仿冒成功,回程报文可以到达非法主机。如果是希望通过配置静态ARP来防止主机仿冒IP,那就需要把所有的IP(包括未使用的IP)都添加到静态ARP表项中,这样配置工作量会很大。

所以,如果是为了防止内网中的IP地址欺骗的***行为,在Switch上配置IPSG更为合适。

从上面的应用场景可以看出,IPSG是用在二层网络中的,那么我们为什么要放在三层网络中讲述呢?那是因为IPSG是为了防止IP地址欺骗***的一种方法,IP地址是三层转发的概念,所以这里我们就放在三层网络中进行讲述了。

IPSG绑定表分为静态绑定表和动态绑定表,配置方法如下:

·         配置静态绑定表:手动配置IP、MAC、VLAN和接口的绑定关系。

[Gateway] user-bind static ip-address 10.1.1.1 mac-address 1E-1E-1E interface gigabitethernet 0/0/1 vlan 10  //创建静态绑定表

[Gateway] vlan 10

[Gateway-vlan10] ip source check user-bind enable   //使能VLAN 10内的IPSG功能,绑定表创建后,IPSG并未生效,只有在指定接口或在指定VLAN上使能IPSG后才生效

·         配置动态绑定表:配置DHCP Snooping,在用户通过DHCP方式获取IP地址的过程中,获取IP、MAC、VLAN和接口的绑定关系。

[Gateway] dhcp enable

[Gateway] dhcp snooping enable  //使能DHCP Snooping功能

[Gateway] vlan 10

[Gateway-vlan10] dhcp snooping enable  

[Gateway-vlan10] dhcp snooping trusted interface gigabitethernet 0/0/3  //配置信任接口

[Gateway-vlan10] ip source check user-bind enable  //使能VLAN 10内的IPSG功能

2.2   URPF

URPF(Unicast Reverse Path Forwarding)是单播逆向路径转发的简称,也是一种防止IP地址欺骗***的方法。

URPF根据数据包的源IP地址在路由表或ARP表中查找对应的出接口,并判断该接口是否与数据包的来源接口相匹配。如果没有匹配表项则丢弃该数据包,从而预防IP地址欺骗***。

根据不同的场景,URPF分为两种工作模式。

表7 URPF的工作模式

模式

功能说明

应用场景

严格模式

设备不仅要求报文源地址在路由表或ARP表中存在相应表项,还要求接口匹配才能通过URPF检查

建议在路由对称的环境下使用URPF严格模式,例如两个网络边界设备之间只有一条路径的话,这时,使用严格模式能够最大限度的保证网络的安全性

松散模式

设备不检查接口是否匹配,只要路由表中存在该报文源地址的路由,报文就可以通过。

建议在不能保证路由对称的环境下使用URPF的松散模式,例如两个网络边界设备之间如果有多条路径连接的话,路由的对称性就不能保证,在这种情况下,URPF的松散模式也可以保证较强的安全性。

图5 URPF实现机制

20161221145231174005.png

如上图5所示,***者伪造源地址为10.1.1.2的报文向SwitchA发起请求,SwitchA响应请求时将向真正的“10.1.1.2”即SwitchB发送报文。这种非法报文对SwitchA和SwitchB都造成了***。

如果在SwitchA上启用URPF严格检查,则SwitchA在收到源地址为10.2.1.1的报文时,URPF检查到以此报文源地址查找路由表或ARP表所找到的出接口与收到该报文的接口不匹配,报文会被丢弃。

URPF的配置方法如下:

[SwitchA] urpf slot 1  //使能slot 1号单板上的URPF功能

[SwitchA] interface gigabitethernet 1/0/1

[SwitchA-GigabitEthernet1/0/1] urpf strict //使能GE1/0/1的URPF严格检查