一、DHCP snooping 技术介绍

DHCP监听(DHCP Snooping)是一种DHCP安全特性。Cisco交换机支持在每个VLAN基础上启用DHCP监听特性。通过这种特性,交换机能够拦截第二层VLAN域内的所有DHCP报文。

通过开启DHCP监听特性,交换机的非信任端口只能够发送DHCP请求,丢弃来自非信任端口的所有其它DHCP报文,例如DHCP Offer报文等。而且,并非所有来自非信任端口的DHCP请求都被允许通过,交换机还会比较DHCP请求报文的(报文头里的)源MAC地址和(报文内容里的)DHCP客户机的硬件地址(即CHADDR字段),只有这两者相同的请求报文才会被转发,否则将被丢弃。这样就防止了DHCP耗竭攻击。

信任端口可以接收所有的DHCP报文。通过只将交换机连接到合法DHCP服务器的端口设置为信任端口,其他端口设置为非信任端口,就可以防止用户伪造DHCP服务器来攻击网络。

DHCP监听特性还可以对端口的DHCP报文进行限速。通过在每个非信任端口下进行限速,将可以阻止合法DHCP请求报文的广播攻击。DHCP监听还有一个非常重要的作用就是建立一张DHCP监听绑定表(DHCP Snooping Binding)。一旦一个连接在非信任端口的客户端获得一个合法的DHCP Offer,交换机就会自动在DHCP监听绑定表里添加一个绑定条目,内容包括了该非信任端口的客户端IP地址、MAC地址、端口号、VLAN编号、租期等信息。

二、DHCP snooping 配置

Switch(config)#ip dhcp snooping                     

打开DHCP Snooping功能

Switch(config)#ip dhcp snooping vlan 10,20         

设置DHCP Snooping功能将作用于哪些VLAN

Switch(config)#ip dhcp snooping verify mac-adress                 

检测非信任端口收到的DHCP请求报文的源MAC和CHADDR字段是否相同,以防止DHCP耗竭攻击,默认为开启

在接口模式下:

Switch(config-if)#ip dhcp snooping trust            

配置接口为DHCP监听特性的信任接口,所有接口默认为非信任接口

Switch(config-if)#ip dhcp snooping limit rate 15  

限制非信任端口的DHCP报文速率为每秒15个包(默认即为每秒15个包)
如果不配该语句,则show ip dhcp snooping的结果里将不列出没有该语句的端口,可选速率范围为1-2048

Switch(config)#errdisable recovery cause dhcp-rate-limit                 

使由于DHCP报文限速原因而被禁用的端口能自动从err-disable状态恢复

Switch(config)#errdisable recovery interval 30

设置恢复时间;端口被置为err-disable状态后,经过30秒时间才能恢复

Switch(config)#ip dhcp snooping information option                 

设置交换机是否为非信任端口收到的DHCP报文插入Option 82,默认为开启状态

Switch(config)#ip dhcp snooping information option allow-untrusted                

设置汇聚交换机将接收从非信任端口收到的接入交换机发来的带有选项82的DHCP报文

Switch(config)#ip dhcp snooping database flash:dhcp_snooping.db                 

将DHCP监听绑定表保存在flash中,文件名为dhcp_snooping.db

Switch#renew ip dhcp snooping database flash:dhcp_snooping.db         

特权级命令;立即从保存好的数据库文件中读取DHCP监听绑定表。