DHCP snooping
DHCP snooping基本功能简介:
DHCP snooping是DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)的一种安全特性,主要具有如下两种功能:
1.记录DHCP客户端MAC地址与IP地址的对应关系:
出于安全性的考虑,网络管理员可能需要记录用户上网时所用的IP地址,确认用户主机MAC地址和从DHCP服务器获取的IP地址的对应关系。
DHCP snooping通过监听DHCP请求报文和信任端口收到的DHCP应答报文,记录DHCP客户端的MAC地址以及获取到的IP地址。管理员可以通过DHCP snooping记录的绑定表项,来查看DHCP客户端获取的IP地址信息。
2.保证客户端从合法的服务器获取IP地址:
如果网络中存在私自假设的DHCP服务器,则DHCP客户端可能获取到错误的IP地址,导致通信异常或存在安全隐患。为保证DHCP客户端能通过合法的DHCP服务器获取IP地址,DHCP snooping功能允许将端口配置为信任端口或非信任端口:
(1)信任端口是与合法的DHCP服务器直接或间接连接的端口,信任端口对接收到的DHCP响应报文正常转发,从而保证DHCP客户端可以获取正确的IP地址;
(2)非信任端口是不与合法的DHCP服务器直接或间接连接的端口,如果从非信任端口接收到DHCP服务器发送的DHCP响应报文,则会将其丢弃,从而防止DHCP客户端获取错误的IP地址。
DHCP snooping支持对Option82选项的添加,转发和管理,Option82选项是一个DHCP报文选项,这个选项用于记录DHCP客户端的位置信息,管理员可以根据这个选项定位DHCP客户端,从而进行一些安全控制,比如限制某个端口或VLAN所能分配的IP地址个数等。根据DHCP报文类型的不同,对Option82选项的处理方式也不同:
1.当设备接收到的DHCP请求报文后,将根据报文中是否包含Option82选项以及用户配置的处理策略及填充格式对报文进行相应处理,并将处理后的报文转发给DHCP服务器;
2.当设备接收到DHCP服务器的响应报文时,如果报文中包含Option82选项,则删除Option82选项,并转发给DHCP客户端;如果报文中不包含Option82选项,则直接转发给DHCP客户端。
配置DHCP snooping基本功能:
DHCP snooping基本功能包括使能DHCP snooping功能,配置端口信任状态和DHCP报文限速功能。
配置条件:无
配置DHPC snooping功能:
使能DHCP snooping功能后,会对设备所有端口接收到的DHCP报文进行监控;
1.对接收到的请求报文,会依据报文中的信息生成相应的绑定表项;
2.对从信任端口接收到的应答报文,会更新对应绑定表项的状态及租约时间;
3.对从非信任端口接收到的应答报文,会直接将其丢弃。
进入全局配置模式: configure terminal
使能DHCP snooping功能: dhcp-snooping
缺省情况下,DHCP snooping功能处于禁用状态
配置端口信任状态:
为防止DHCP客户端从非法DHCP服务器获取地址,可通过配置与合法服务器直接或间接连接的端口为信任端口。
当端口配置为信任端口后,才允许DHCP响应报文正常转发;否则,将DHCP响应报文丢弃。
进入全局配置模式: configure terminal
进入二层以太接口配置模式: interface interface-name
进入二层以太接口配置模式后,后续配置只在当前端口生效;进入汇聚组配置模式后,后续配置只在汇聚组生效
进入汇聚组配置模式: link-aggregation link-aggregation-id
配置端口信任状态: dhcp-snooping trust
缺省情况,所有的端口均为非信任端口
说明:
1.与DHCP服务器相连的端口,需配置成信任端口,否则DHCP客户端无法获取到地址。
2.在端口被配置成信任端口后,就不会对通过该端口的DHCP报文速率进行限制。
3.将端口状态由信任端口改为非信任端口后,该端口的速率限制上限值为缺省值40.
配置DHCP snooping限速功能:
配置DHCP snooping限速功能可以对每秒处理的DHCP报文数目进行限制,避免系统由于长期处理DHCP报文,导致其他协议报文无法及时得到处理;
当一秒钟内收到的DHCP报文数目超过速率上限值时,后续DHCP报文会被丢弃。如果端口连续20秒收到的DHCP报文都超速,则会将相应端口关闭,来隔绝报文冲击源。
进入全局配置模式: configure terminal
进入二层以太接口配置模式: interface interface-name
进入二层以太接口配置模式后,后续配置只在当前端口生效;进入汇聚组配置模式后,后续配置只在汇聚组生效
进入汇聚组配置模式: link-aggregation link-aggregation-id
配置DHCP snooping限速功能: dhcp-snooping rate-limit limit-value
缺省情况,DHCP报文速率上限值为40pps
说明:
1.在汇聚组配置模式下配置DHCP报文速率上限值后,该汇聚组的每一个成员端口的DHCP报文速率上限值均为该值。
2.DHCP报文限速功能只对非信任端口生效,对信任端口不生效。
3.端口被自动关闭后,可通过配置Error-Disable将端口自动启用。缺省情况下,端口自动关闭功能处于使能状态;如果端口连续20秒收到的DHCP报文都超速,但未能将相应端口自动关闭。
Error-Disable管理简介:
Error-Disable功能是一种端口上的错误检测与故障恢复机制。
在端口上出现的异常情况,可能会导致整个网络性能下降或者瘫痪。使用Error-Disable功能可以把这些异常情况限制在单台设备或者局部网络范围内,避免影响其它正常工作的端口以及扩散异常情况。
在一个端口处于开启状态的情况下,当在这个端口上检测到异常情况时,这个端口会被自动关闭,使得这个端口不再继续转发报文,换句话说,当在这个端口上触发某种错误条件时,这个端口会被自动禁用,这种情况被称为Error-Disable管理功能,并且这时的端口状态被称为Error -Disabled状态。当前支持以下功能:风暴抑制,端口安全,链路震荡,DHCP限速,BPDU Guard,ARP检测,L2协议隧道,环回检测,OAM网管,Monitor Link。
当上述功能在端口上检测到异常情况时,这个端口会被自动关闭并且设置为Error-Disabled状态。但是,这种状态不能一直持续下去,等到故障解除之后需要重新启用这个端口,并且清楚端口的Error-Disabled状态,使得这个端口继续转发报文。这里就涉及Error-disable管理功能的自动恢复机制。
配置DHCP snooping绑定表项存储:
DHCP snooping功能支持绑定表项自动或手动存储到指定路径中,如果设备重启,可恢复已存储的绑定表项,避免因绑定表项丢失而影响通信。指定路径可以是设备FLASH,FTP服务器或TFTP服务器。
配置条件:
在配置绑定表项存储路径为FTP/TFTP服务器之前,首先完成以下任务:
1.FTP/TFTP服务器端,正常启用了FTP/TFTP服务器功能;
2.设备可以ping通FTP/TFTP服务器端的IP地址。
配置DHCP snooping绑定表项自动存储:
DHCP snooping绑定表项可配置为自动存储模式,即系统自行定时对绑定表项进行存储。系统会周期性地对绑定表项进行刷新,检测绑定表项是否存在更新,如存在更新,需在存储时延到时后,才将更新后的表项存储到指定路径中。存储时延可防止和控制因表项不断更新而导致系统频繁进行存储。
进入全局配置模式: configure terminal
配置DHCP snooping绑定表项自动存储
dhcp-snooping database savetype auto { flash file-name | ftp dest-ip-address ftp-username ftp-password file-name | tftp dest-ip-address file-name }
缺省情况,绑定表项存储模式为自动模式,存储路径为flash,存储文件名为“dhcpsp_binding.db”
配置绑定表项存储时延: dhcp-snooping database savedelay seconds
缺省情况,绑定表项存储时延为1800秒
配置绑定表项刷新时间间隔: dhcp-snooping database savepool seconds
缺省情况,绑定表项刷新时间间隔为30秒
配置DHCP snooping绑定表项手动存储:
DHCP snooping绑定表项可配置为手动存储模式,即须通过执行存储命令完成绑定表项的存储。
进入全局配置模式: configure terminal
配置DHCP snooping绑定表项手动存储
dhcp-snooping database savetype manual { flash file-name | ftp dest-ip-address ftp-username ftp-password file-name | tftp dest-ip-address file-name }
缺省情况,绑定表项存储模式为自动模式,存储路径为flash,存储文件名为“dhcpsp_binding.db”
配置存储绑定文件: dhcp-snooping database save
将绑定表项存储到指定路径中,缺省情况,绑定表项未存储到指定路径中
DHCP snooping监控与维护
clear dhcp-snooping database { interface interface-list | link-aggregation link-aggregation-id | mac-address | all }
清除绑定表项
clear dhcp-snooping packet statistics [ interface interface-name | link-aggregation link-aggregation-id ]
清除收发DHCP报文统计信息
show dhcp-snooping [ interface interface-name | link-aggregation link-aggregation-id | save ]
显示DHCP snooping的配置信息
show dhcp-snooping database [ | { { begin | exclude | include } expression | redirect { file file-name | ftp [ vrf vrf-name ] { hostname | dest-ip-address } ftp-username ftp-password file-name } } ] [ interface interface-name | link-aggregation link-aggregation-id [ | { { begin | exclude | include } expression | redirect { file file-name | ftp [ vrf vrf-name ] { hostname | dest-ip-address } ftp-username ftp-password file-name } } ] ]
显示DHCP snooping绑定表项信息
show dhcp-snooping packet statistics [ interface interface-name | link-aggregation link-aggregation-id ]
显示收发DHCP报文的统计信息
配置DHCP snooping的基本功能
网络需求:
1.DHCP Server1为合法的DHCP服务器,DHCP Server2为非法的DHCP服务器。
2.配置DHCP snooping功能后,PC1和PC2均只能从DHCP Server1获取地址。
网络拓扑:
配置步骤
步骤1:
在Device上配置VLAN和端口的链路类型。
#创建VLAN2。
Device#configure terminal
Device(config)#vlan 2
Device(config-vlan2)#exit
#配置端口gigabitethernet0/1~ gigabitethernet0/3的链路类型为Access,允许VLAN2的业务通过。
Device(config)#interface gigabitethernet 0/1-0/3
Device(config-if-range)#switchport mode access
Device(config-if-range)#switchport access vlan 2
Device(config-if-range)#exit
步骤2:
配置DHCP Server1的地址池为192.168.1.100~192.168.1.199和DHCP Server2的地址池为192.168.2.100~192.168.2.199。(略)
步骤3:
在Device上配置DHCP snooping功能。
#使能DHCP snooping功能。
Device(config)#dhcp-snooping
#配置端口gigabitethernet0/2为信任端口。
Device(config)#interface gigabitethernet 0/2
Device(config-if-gigabitethernet0/2)#dhcp-snooping trust
Device(config-if-gigabitethernet0/2)#exit
步骤4:
检验结果。
#PC1和PC2成功获取地址后,在Device上查看DHCP snooping表项。
Device#show dhcp-snooping database
dhcp-snooping database:
database entries count:2
database entries delete time :300
---------------------------------
macAddr ipAddr transtion-id vlan interface leaseTime(s) status
0013.0100.0002 192.168.1.101 1 2 gi0/1 107990 active
0013.0100.0001 192.168.1.100 0 2 gi0/1 107989 active
Total valid DHCP Client binding table for this criterion: 2
PC1、PC2均只能从DHCP Server1获取地址。