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服务器;

DHCP snooping

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获取地址。

网络拓扑:

DHCP snooping

配置步骤

步骤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获取地址。