您的位置:首页 > 其它

路由与交换 进阶 1 DHCP排错

2011-03-24 22:18 204 查看




客户的网络结构是,思科6509两台做hsrp为核心层,下面的接入层交换机为思科2950,在6509上启用了DHCP服务,为每个VLAN分配IP地址。现问题就出现在其中的几个VLAN,PC接在这VLAN下就是获取不到IP地址,这几个有问题的VLAN,都接在同一台交换机,看了下6509的配置,没发现什么问题,就是注意到开启了ip dhcp snooping ,问题出现在同一台交换机,那就确定方向了.

来到问题机器,交换机没做什么配置,网络中一部分VLAN不能自动获取IP地址,但注意到也配置了ip dhcp snooping ,dhcp snooping 的主要功能是:能够拦截第二层VLAN域内的所有DHCP报文,查看与6509所接的端口,没有启用dhcp snooping trust ,这就是问题所在了。

DHCP监听将交换机端口划分为两类:

●非信任端口:通常为连接终端设备的端口,如PC,网络打印机等

●信任端口:连接合法DHCP服务器的端口或者连接汇聚交换机的上行端口

根据以上可知,我在级连接口上启用ip dhcp snooping trust 后,把本地接口接上,马上获取到了IP地地址。

下面是我在网上查到的关于ip dhcp snooping 的东西,总结一下:

一、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 //设置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

//使由于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#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

//指DHCP监听绑定表尝试写入操作失败后,重新尝试写入操作,直到60秒后停止尝试。默认为300秒;可选范围为0-86400秒

说明:实际上当DHCP监听绑定表发生改变时会先等待write-delay的时间,然后执行写入操作,如果写入操作失败(比如tftp服务器不可达),接着就等待timeout的时间,在此时间段内不断重试。在timeout时间过后,停止写入尝试。但由于监听绑定表已经发生了改变,因此重新开始等待write-delay时间执行写入操作……不断循环,直到写入操作成功。

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

/特权级命令;立即从保存好的数据库文件中读取DHCP监听绑定表。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: