资源描述
锐捷DHCP-Snooping技术白皮书
锐捷DHCP-Snooping技术白皮书
摘要
本文介绍DHCP-Snooping和相关技术,说明了在DCHP应用环境下,如何利用DHCP-Snooping技术并结合相关技术进行安全方面的控制,包括屏蔽非法服务器、阻止用户私设IP、防止ARP欺骗等目的。
关键词
DHCP-Snooping IP报文硬件过滤 ARP DAI ARP-Check
技术白皮书修订记录
日期
修订版本
修改章节
修改描述
作者
2008-7-25
1.0
目 录
摘要 1
关键词 1
1 缩略语 4
2技术应用背景 4
3 DHCP-Snooping技术分析 5
3.1 DHCP技术简介 5
3.2 DHCP-Snooping技术简介 6
3.3非法DHCP报文拦截 7
3.3.1屏蔽非法DHCP 服务器 7
3.3.2过滤非法报文 8
3.4 Option 82 8
3.5提供安全过滤数据库 8
3.5.1 DHCP-Snooping数据库 8
3.5.2提供IP报文硬件过滤数据库 9
3.5.3提供ARP报文过滤数据库 9
4 DAI技术分析 10
4.1了解ARP 10
4.2 DAI技术简介 11
4.3 ARP报文限速 11
4.4信任端口 & 非信任端口 11
4.5 ARP报文检测步骤 12
5 应用方案 13
5.1应用部署 13
5.2应用拓扑 13
5.2 DHCP-Snooping + DAI 14
5.4 DHCP-Snooping + ARP-Check 16
5.5友商对比 17
1 缩略语
缩略语
英文全名
中文解释
IP
Internet Protocol
互联网协议
DHCP
Dynamic Host Configuration
Protocol
动态主机配置协议
C/S
Client / Server
客户端和服务器模式
DNS
Domain Name System
域名系统
ARP
Address Resolution Protocol
地址解析协议
DAI
Dynamic ARP Inspection
动态ARP检测
MAC
Media Access Control
介质访问控制
VLAN
Virtual Local Area Network
虚拟局域网
CPU
Central Processing Unit
中央处理器
FTP
File Transfer Protocol
文件传输协议
TFTP
Trivial File Transfer Protocol
日常文件传送协议
DoS
Denial of Service
拒绝服务
2技术应用背景
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)采用客户端和服务器的运行机制,是一种简化主机IP地址配置管理的TCP/IP标准。该标准允许DHCP服务器向客户端提供IP地址和其他相关配置信息。在网络中,通过启用DHCP服务可以让DHCP客户端在每次启动后自动获取IP地址和相关配置参数,减少了配置管理。在计算机数量众多并且划分多个子网的网络中,DHCP服务的优势更加明显,它避免了因手工设置IP地址及子网掩码所产生的错误;也避免了把一个IP地址分配给多台主机所造成的地址冲突,可以大大缩短网络管理员在主机地址配置上所耗费的时间,降低了管理员的设置负担。
但是,随着DHCP服务的广泛应用,也给网络管理带来一些新的问题,具体表现在:
1. 由于DHCP报文在客户端和服务器的交互过程中并没有认证机制,如果网络中存在非法DHCP服务器,管理员将无法保证客户端从管理员指定的DHCP服务器获取合法地址,客户机有可能从非法DHCP服务器获得IP地址等配置信息,导致网络地址分配混乱。
2. 在部署DHCP服务的子网中,如果出现用户私自设置IP地址,将有可能造成网络地址冲突,影响IP地址的正常分配。
通过以上分析,必须采取有效措施来应对上述两个问题。我司推出的支持DHCP-Snooping功能的设备具有屏蔽非法DHCP 服务器、过滤非法DHCP报文和防止用户私设IP的功能,可以有效解决非法DHCP服务器扰乱用户网络和防止私设IP用户使用网络。
网络管理的另外一大挑战是防止ARP欺骗。当前网络中,ARP欺骗报文肆意横行,而ARP协议本身无法辨别这些报文的真实性,因此网络中的主机和设备容易被欺骗,从而导致用户无法正常使用网络。ARP欺骗造成的危害较大,目前业界都在高度关注。我司针对这一问题推出的DHCP-Snooping + DAI(Dynamic ARP Inspection, 动态ARP检测),DHCP-Snooping + ARP Check解决方案可以有效拦截非法的ARP报文,抵御ARP欺骗,保证网络的畅通。
3 DHCP-Snooping技术分析
3.1 DHCP技术简介
DHCP技术,主要用于为网络上的主机动态分配可重用IP地址,提供参数配置。DHCP采用C/S运行机制,由客户端和服务器通过DHCP报文交互,完成IP 地址申请。服务器可以向客户端提供IP地址和其他主机配置参数,如子网掩码、DNS-server、default-router(默认网关)、租用时间等。在同一个子网内,一次典型的IP地址申请过程如下:
图1 DHCP报文交互过程
1. DHCP Client发出DHCP DISCOVER广播报文给DHCP Server,若DHCP Client在一定时间内没有收到服务器的响应,则重发DHCP DISCOVER报文。
2. DHCP Server收到DHCP DISCOVER报文后,根据一定的策略来给DHCP Client分配IP地址,发出DHCP OFFER报文。
3. DHCP Client收到DHCP OFFER报文后,发出DHCP REQUEST请求,向DHCP Server请求获取参数配置信息。
4. 服务器收到DHCP REQUEST报文,验证资源是否可以分配,如果可以分配,则发送DHCP ACK报文。
上面介绍了IP地址申请过程中DHCP报文的基本交互过程,在DHCP Client和DHCP Server之间的报文交互过程中还存在其他的报文,如:
1. DHCP Client发出DHCP RELEASE报文告知DHCP Server终止IP地址租用;
2. DHCP Server发出DHCP NAK报文回复DHCP Client地址申请失败;
3. DHCP Client发出DHCP DECLINE报文告知DHCP Server该IP地址为冲突地址不可使用;
如果DHCP Client和DHCP Server不在同一个子网内,申请地址需要DHCP中继(DHCP Relay)的支持。DHCP中继代理在DHCP Client和DHCP Server之间转发DHCP数据包。
3.2 DHCP-Snooping技术简介
DHCP-Snooping具有屏蔽非法DHCP 服务器和过滤非法DHCP报文的功能,解决了DHCP Client和DHCP Server之间DHCP报文交互的安全问题。DHCP-Snooping简称DHCP窥探,如图1所示,在我司交换设备上启动DHCP-Snooping功能后可实现对DHCP Client和DHCP Server之间DHCP交互报文的窥探。通过窥探,DHCP-Snooping记录合法DHCP用户的信息(IP、MAC、所属VLAN、端口、租约时间等),形成DHCP-Snooping数据库。该数据库可以提供:
1. IP报文过滤提供依据;
2. ARP报文过滤提供依据。
3.3非法DHCP报文拦截
DHCP-Snooping的一个重要功能是实现对非法DHCP报文的拦截,包括屏蔽非法DHCP服务器和过滤非法DHCP报文。
3.3.1屏蔽非法DHCP 服务器
为了屏蔽非法DHCP服务器,管理员需要将端口配置为信任口和非信任口二种类型。DHCP-Snooping通过软件对DHCP报文进行处理。对如图2所示,将合法服务器的连接端口配置为信任口,其他端口默认为非信任端口。对于DHCP客户端请求报文,设备仅将其转发至信任口。对于DHCP 服务器响应报文,设备仅转发从信任口收到的响应报文,丢弃所有来自非信任口的响应报文。
图2 信任口和非信任口DHCP报文处理过程
按照图2所示,对于PC1和PC2发出的DHCP DISCOVER报文,交换设备仅将其转发到信任口;对于Server1和Server2发出的DHCP OFFER报文,交换设备仅转发Server1的响应报文,丢弃Server2的响应报文。
3.3.2过滤非法报文
DHCP-Snooping对经过设备的DHCP报文进行合法性检查,过滤非法报文。以下几种类型的报文被认为是非法的DHCP报文:
1. 非信任口收到的DHCP服务器响应报文,包括DHCP ACK、DHCP NAK、DHCP OFFER等;
2. 经过DHCP中继转发的DHCP客户端请求报文;
3. 在开启DHCP-Snooping源MAC校验功能时, 如果Client发出的DHCP报文中所携带的Client MAC字段值与报文链路层头部源MAC地址不一致,则视为非法报文;
4. 如果收到的DHCP RELEASE、DHCP DECLINE报文信息与DHCP-Snooping数据库中的记录不一致,则视为非法报文。
3.4 Option 82
部分网络管理员在对当前的用户进行IP管理时,希望能够根据用户所连接的网络设备信息来给用户分配IP。DHCP-Snooping允许在交换设备进行DHCP窥探的同时把一些用户相关的设备信息以DHCP Option的方式加入到DHCP请求报文中。根据RFC3046标准规定,所使用的DHCP Option选项号为82。Option 82添加的信息包括用户的MAC、所处的VLAN号、端口号等。DHCP服务器根据DHCP请求报文中携带的Option 82信息,更准确地为用户分配IP地址。
3.5提供安全过滤数据库
3.5.1 DHCP-Snooping数据库
在交换设备上启动DHCP-Snooping功能后,DHCP-Snooping将对DHCP Client和DHCP Server之间交互的DHCP报文进行窥探。通过窥探DHCP报文交互流程,把用户成功申请到的IP地址、用户MAC、所属VLAN、端口、租约时间等信息组成一个用户记录表项,添加到 DHCP-Snooping数据库中。DHCP-Snooping数据库中的用户信息,如图3所示。
MacAddress IpAddress Lease(sec) Type VLAN Interface
---------- ------- ------- ------------ ----- -------------
00d0.f866.471c 192.168.10.2 2591469 dhcp-snooping 1 GigabitEthernet 0/5
图3 DHCP-Snooping数据库
DHCP-Snooping数据库具有添加、更新和删除的功能。当客户端成功申请到IP地址后,会添加相关记录到DHCP-Snooping数据库中;当客户端成功续约后,会更新DHCP-Snooping数据库中的租约时间;当客户端发出DHCP RELEASE报文或者地址租约到期后,会删除对应的DHCP-Snooping数据库表项。DHCP-Snooping数据库还允许进行手工添加和删除,配置静态绑定用户。
为了防止设备重新启动导致数据库中的用户信息丢失,DHCP-Snooping提供定时将数据库中的用户信息写入flash功能。设备在重启后,自动从flash加载DHCP-Snooping数据库,保证之前申请的DHCP用户可以正常使用网络。目前我司产品暂不支持将DHCP-Snooping数据库通过FTP、TFTP方式存储到远端服务器。
3.5.2提供IP报文硬件过滤数据库
IP报文硬件过滤功能是采用硬件对IP报文进行合法性检查,合法用户发送的IP报文允许通过,非法用户发送的IP报文被过滤。IP报文硬件过滤以DHCP-Snooping数据库为依据,只允许在DHCP-Snooping数据库中存在相应表项的用户发送IP报文,阻止了用户私设IP地址。
当打开IP报文硬件过滤功能后,DHCP-Snooping会将DHCP-Snooping数据库信息添加到硬件过滤表中。
3.5.3提供ARP报文过滤数据库
ARP报文过滤是指对收到的ARP报文进行合法性检查,对于非法的ARP报文进行直接丢弃处理,可以有效防止ARP欺骗。DHCP-Snooping数据库保存有合法DHCP用户的IP、MAC、VLAN、PORT等信息。通过对ARP报文信息与DHCP-Snooping数据库中的表项进行匹配,确定报文的合法性,过滤非法ARP报文。
4 DAI技术分析
为了解决ARP欺骗的问题,就需要对经过交换机的所有ARP报文做合法性检查,将ARP欺骗报文丢弃。根据这一需求,我司推出了基于软件的DAI(Dynamic ARP Inspection)和基于硬件的ARP-Check两种技术。本文主要介绍基于软件的DAI技术。ARP-Check技术请参考相应技术白皮书。
4.1了解ARP
ARP协议(Address Resolution Protocol)的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的进行。ARP协议是简单的报文交互而没有认证机制的,基于ARP协议的这一工作特性,任何人通过向计算机或者网络设备发送虚假的ARP报文便可达到ARP欺骗的目的。一种欺骗过程如下图所示:
图4 ARP欺骗过程
如图4所示,假设主机A要和主机B通信,那么主机A就会发送ARP请求报文请求主机B的MAC地址;这个时候主机B学习到主机A的MAC地址为MACA,同时主机B发送应答报文告诉主机A自己的MAC地址为MACB;主机A接收到应答报文后就学习到主机B的MAC地址;这样主机A、B都有对方的MAC地址,就可以进行通信。
如果此时存在一台主机C,主机C发送虚假的ARP应答报文告诉主机A:主机B的MAC地址为MACC,这时候主机A就会把要发送到主机B的报文错误的发送到主机C。
4.2 DAI技术简介
为了防止用户或者网络设备被非法ARP报文欺骗,将所有通过交换机的ARP报文都送到CPU进行合法性检查的技术,称为动态ARP检测,即DAI技术。DAI以DHCP-Snooping数据库为检测依据,必须启动DHCP-Snooping功能后,DAI功能才生效。启动DAI功能后,将收到ARP报文的源IP、源MAC、端口号、VLAN ID信息同DHCP-Snooping数据库的用户信息进行匹配。如果一致则认为合法ARP报文,按既有流程处理;否则视为非法ARP报文,丢弃处理。
DAI技术由ARP报文限速、端口信任状态设置和ARP报文合法性检查三部分组成,其中ARP报文合法性检查是DAI技术的核心组成部分。下面将分别介绍这三个组成部分。
4.3 ARP报文限速
由于设备执行DAI合法性检查,需要消耗一定的CPU资源,所以需要对ARP报文进行限速,这样可以在一定程度上抵御DoS攻击。默认情况下,非信任端口每秒钟ARP报文的最大个数是15,信任端口则不受限制。由于ARP报文限速采用软件实现,在交换机CPU繁忙的情况下,限速会有偏差。
4.4信任端口 & 非信任端口
在DAI功能中,并不是每个端口上收到的ARP报文都需要进行合法性检测,为了区分是否需要进行合法性检测,管理员需要将端口配置为信任口与非信任口。从信任口接收到的ARP报文,将跳过DAI检查;从非信任口接收到的ARP报文,将进行合法性检查。
图5 DAI功能端口配置
如图5所示,PC1和PC2有可能发送ARP欺骗报文,需要将连接PC1、PC2的端口配置为非信任口,对收到的ARP欺骗报文进行过滤;汇聚层设备不会发送ARP欺骗报文,需要将连接汇聚层设备的端口配置为信任口,对收到的ARP报文不进行合法性检查。
4.5 ARP报文检测步骤
DAI结合ARP报文限速和端口状态对ARP报文进行处理,主要执行以下步骤:
1. 将所有经过交换机的ARP报文截获;
2. 如果端口每秒钟收到的ARP报文的数量超过预设值,则超过部分的ARP报文将被丢弃;
3. 如果相应VLAN没有打开DAI功能,则按照既有流程处理;
4. 如果相应端口为信任口,则按照既有流程处理;
5. 如果相应VLAN打开了DAI功能且入口为非信任口,则根据DHCP-Snooping数据库,对所有ARP报文进行合法性检查;
6. 检查通过,则按照既有流程处理;检查失败,将报文丢弃。
5 应用方案
5.1应用部署
通过上面的介绍,DHCP-Snooping + DAI(或ARP-Check)技术的解决方案可以使当前网络更加稳定和安全。该解决方案主要部署在接入设备。如果将该方案部署在汇聚层及其以上的设备,那么接入层的非法DHCP、ARP报文将得不到有效的控制,不能充分发挥该方案的优势。如图6所示,如果将DAI(或ARP-Check)应用在SW2上,虽然PC3、PC4不会受到PC1、PC2发送的 ARP报文的欺骗,但是PC1、PC2和PC3、PC4内部之间可能相互欺骗。基于上述原因,建议将方案部署在接入层。
5.2应用拓扑
图6 DHCP-Snooping & DAI应用拓扑图
如图6所示,SW4-SW7为接入层设备,SW2-SW3为汇聚层设备,SW1为核心层设备。为了有效的防御DHCP和ARP报文欺骗,应该在SW4-SW7上开启DHCP-Snooping和DAI(或ARP-Check)功能。
5.2 DHCP-Snooping + DAI
这里以设备SW4上配置为例,SW5-SW7则完全类似。假设SW4连接PC1、PC2、SW2的端口分别为Fastethernet0/1、Fastethernet0/2、Fastethernet0/3。
1. 打开DHCP-Snooping全局开关;
configure terminal
ip dhcp snooping
end
2. DHCP服务器与DHCP客户端不在同一子网时,需要打开DHCP中继功能,并配置DHCP服务器地址;
configure terminal
service dhcp
ip helper-address 192.168.1.100
end
3. 将连接合法DHCP服务器的端口配置为信任口,连接用户的端口默认为非信任口;
configure terminal
interface fastethernet 0/3
ip dhcp snooping trust
end
4. 为了防止私设IP地址的用户使用网络,需要打开接口上的地址绑定开关,通过硬件对非法 IP报文进行过滤;
configure terminal
interface range fastethernet 0/1-2
ip dhcp snooping address-bind
end
5. 对于需要使用静态IP地址的用户,可以通过添加静态绑定实现;(假设PC2需要使用静态IP地址,其MAC为:00d0.fa88.5687;VLAN号为:1;IP为:192.168.11.3;端口为:2)
configure terminal
ip dhcp snooping binding 00d0.fa88.5687 vlan 1 ip 192.168.11.3 interface fastethernet 0/2
end
6. DAI功能基于VLAN进行控制,需要对该VLAN内的非法ARP报文进行过滤时,在VLAN 1上打开DAI功能
configure terminal
ip arp inspection vlan 1
end
7. 上连端口不存在ARP欺骗,因此将上连端口配置为信任口;(当然,若其它端口确定不会存在ARP欺骗,也可以配置为信任口,比如接的是可靠的服务器)
configure terminal
interface fastethernet 0/3
ip arp inspection trust
end
8. 为防止ARP报文送到CPU的速率过快,导致设备CPU 利用率过高,需要配置连接用户端口的ARP报文速率限制(如:20pps);
configure terminal
interface range fastethernet 0/1-2
ip arp inspection limit-rate 20
end
目前,我司推出的DHCP-Snooping + DAI虽然能够较好的解决ARP欺骗问题,但由于DAI采用软件技术对ARP报文进行合法性检查,需要将所有ARP报文送到CPU,因此在单位时间内发送大量ARP报文对设备进行攻击时,DAI功能会占用大量CPU,使CPU利用率过高,从而影响其他协议的正常运行。
因此,如果网络中存在ARP报文攻击量很大或很频繁的情况,需要慎用DAI功能。在条件允许的情况下,尽可能使用下面的DHCP-Snooping + ARP-Check应用方案。
5.4 DHCP-Snooping + ARP-Check
ARP-Check通过硬件过滤ARP欺骗报文,保证送到CPU的ARP报文都是合法的,有效降低了CPU的负荷。DHCP-Snooping功能在将DHCP-Snooping数据库用户信息添加到IP报文硬件过滤表时,同时添加到ARP报文硬件过滤表。ARP-Check根据ARP报文硬件过滤表对ARP欺骗报文进行过滤。DHCP-Snooping + ARP-Check应用方案相比DHCP-Snooping + DAI应用方案具有明显的优势,可以避免设备在受到ARP欺骗报文攻击时CPU利用率过高的问题。
DHCP-Snooping + ARP-Check应用方案同样部署于接入层设备,其应用拓扑如图6所示。在配置中需要注意以下几点:
1. DHCP-Snooping部分的配置,同DHCP-Snooping + DAI应用方案中的配置相同(步骤1 ---- 步骤5);由于ARP-Check依赖于DHCP Snooping地址绑定功能,因此步骤4必须配置;
2. 不同于DAI,ARP-Check应用于端口模式下,需要对该端口上对收到的ARP欺骗报文进行硬件过滤时,在该端口上启用ARP-Check功能,比如需要在端口1和端口2上启用该功能;
configure terminal
interface range fastethernet 0/1-2
arp check
end
DHCP-Snooping + ARP-Check的解决方案,可实现通过硬件对ARP欺骗报文进行过滤,以及通过硬件对非法IP报文进行过滤。每个DHCP-Snooping用户需要占用二条硬件过滤表项,分别是一条IP报文硬件过滤表项和一条ARP报文硬件过滤表项。
可添加到硬件过滤表中的DHCP-Snooping用户数目,由不同产品的硬件过滤表容量所决定。不同产品可以添加的DHCP-Snooping用户数目,如下表:
产品
绑定项目
S86
S76
S5750-24(48)
S5760
S3760
S3750
S32
S29
S5750S-24(48)
S26
DHCP- Snooping数据库容量(软件)
2000
2000
2000
2000
2000
2000
2000
2000
可添加到硬件过滤表中的DHCP- Snooping用户数目
-E线卡1790;
其它线卡894;
06SFP、GT和01XFP线卡894;
其它线卡382;
S5750-24:7*128-2*n-1 (n指绑定的端口数量);
S5750-48数目加倍,前24口和后24口各占一半;
250
500
每个千兆端口为58;每八个百兆端口(1-8,9-16,…)为123个;
S2924G
S2927XG为250;
S2951XG为500,前24口和后24口各占一半;
S2928G、
S2952G为
3*128-2*n-1(n指绑定的端口数量);
S5750S-24和S26为:3*128-2*n-1
(n指绑定的端口数量);
S5750S-48数目加倍,前24口和后24口各占一半;
表1 数据库容量表
上表为同时打开DHCP-Snooping和ARP-Check功能时,可以添加到硬件过滤表中的用户数目。在未打开ARP-Check,仅使用DHCP-Snooping功能进行非法IP报文硬件过滤功能时(ARP欺骗报文不会被过滤),可添加到硬件过滤表的用户数目会增加一倍。
S20、S23均不支持硬件过滤。
5.5友商对比
目前业界友商(H3C、CISCO)都推出了DHCP-Snooping + DAI的应用方案。CISCO未实现ARP-Check功能,H3C有ARP-Check功能,但H3C未推出DHCP-Snooping + ARP-Check的应用方案。
福建星网锐捷网络有限公司 17
未经本公司同意,严禁以任何形式拷贝
展开阅读全文