DHCP snooping<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
一
Dhcp监听是一种安全特性,它能够过滤来自网络中主机或者其他设备的非信任dhcp报文,通过建立并维护dhcp监听绑定表。
思科交换机支持在每个vlan基础上启用dhcp监听,通过这种技术,交换机能够截获二层vlan域内所有的dhcp报文。通过启用dhcp监听,交换机限制用户非信任端口只能够发送dhcp请求,丢弃来自于端口的其他dhcp报文请求,例如dhcp offer报文,并且并非所有来自用户端口的dhcp请求都被许可通过,交换机还会比较dhcp报文源mac地址和客户端的硬件地址,只有两者相同,请求报文还会被转发,否则被抛弃,这样就防止了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 //设置DHCP Snooping功能将作用于哪些VLAN
Switch(config)#ip dhcp snooping verify mac-adress
Switch(config)#ip dhcp snooping vlan 10 //设置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
建议:在配置了端口的DHCP报文限速之后,最好配置以下两条命令
Switch(config)#errdisable recovery cause dhcp-rate-limit
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
Switch(config)#ip dhcp snooping information option allow-untrusted
//设置汇聚交换机将接收从非信任端口收到的接入交换机发来的带有选项82的DHCP报文
Switch#ip dhcp snooping binding 000f.1fc5.1008 vlan 10 192.168.10.131 interface fa0/2 expiry 692000 //特权模式命令;手工添加一条DHCP监听绑定条目;expiry为时间值,即为监听绑定表中的lease(租期)
Switch(config)#ip dhcp snooping database
flash:dhcp_snooping.db
//将DHCP监听绑定表保存在flash中,文件名为dhcp_snooping.db
Switch(config)#ip dhcp snooping database
tftp://192.168.2.5/Switch/dhcp_snooping.db
//将DHCP监听绑定表保存到tftp服务器;192.168.2.5为tftp服务器地址,必须事先确定可达。URL中的Switch是tftp服务器下一个文件夹;保存后的文件名为dhcp_snooping.db,当更改保存位置后会立即执行“写”操作。
Switch(config)#ip dhcp snooping database write-delay 30
//指DHCP监听绑定表发生更新后,等待30秒,再写入文件,默认为300秒;可选范围为15-86400秒
Switch(config)#ip dhcp snooping database timeout 60
Switch(config)#ip dhcp snooping database timeout 60
//指DHCP监听绑定表尝试写入操作失败后,重新尝试写入操作,直到60秒后停止尝试。默认为300秒;可选范围为0-86400秒
说明:实际上当DHCP监听绑定表发生改变时会先等待write-delay的时间,然后执行写入操作,如果写入操作失败(比如tftp服务器不可达),接着就等待timeout的时间,在此时间段内不断重试。在timeout时间过后,停止写入尝试。但由于监听绑定表已经发生了改变,因此重新开始等待write-delay时间执行写入操作……不断循环,直到写入操作成功。
Switch#renew ip dhcp snooping database flash:dhcp_snooping.db
Switch#renew ip dhcp snooping database flash:dhcp_snooping.db
/特权级命令;立即从保存好的数据库文件中读取DHCP监听绑定表。
转载于:https://blog.51cto.com/yuchunwang/271765