
开启Cisco交换机DHCPSnooping功能.pdf
16页开启 Cisco 交换机 DHCP Snooping功能ZDNET 网络频道 时间:2009-04-02作者:Cisco|Cisco 本文关键词:Cisco snooping DHCP 思科一、采用DHCP 服务的常见问题架设 DHCP 服务器可以为客户端自动分配IP 地址、掩码、默认网关、DNS 服务器等网络参数,简化了网络配置,提高了管理效率但在DHCP 服务的管理上存在一些问题,常见的有:DHCP Server的冒充 DHCP Server的 DOS 攻击,如DHCP 耗竭攻击 某些用户随便指定IP 地址,造成IP 地址冲突1、DHCP Server的冒充由于 DHCP 服务器和客户端之间没有认证机制,所以如果在网络上随意添加一台DHCP服务器,它就可以为客户端分配IP 地址以及其他网络参数只要让该DHCP 服务器分配错误的 IP 地址和其他网络参数,那就会对网络造成非常大的危害2、DHCP Server的拒绝服务攻击通常 DHCP 服务器通过检查客户端发送的DHCP 请求报文中的CHADDR(也就是 Client MAC address)字段来判断客户端的MAC 地址正常情况下该CHADDR字段和发送请求报文的客户端真实的MAC 地址是相同的。
攻击者可以利用伪造MAC 的方式发送DHCP 请求,但这种攻击可以使用Cisco 交换机的端口安全特性来防止端口安全特性(Port Security)可以限制每个端口只使用唯一的MAC 地址但是如果攻击者不修改DHCP 请求报文的源MAC 地址,而是修改DHCP 报文中的CHADDR 字段来实施攻击,那端口安全就不起作用了由于 DHCP 服务器认为不同的CHADDR值表示请求来自不同的客户端,所以攻击者可以通过大量发送伪造CHADDR 的 DHCP 请求,导致DHCP 服务器上的地址池被耗尽,从而无法为其他正常用户提供网络地址,这是一种DHCP 耗竭攻击DHCP 耗竭攻击可以是纯粹的 DOS 攻击,也可以与伪造的DHCP 服务器配合使用当正常的DHCP 服务器瘫痪时,攻击者就可以建立伪造的DHCP 服务器来为局域网中的客户端提供地址,使它们将信息转发给准备截取的恶意计算机甚至即使DHCP 请求报文的源MAC 地址和 CHADDR字段都是正确的,但由于DHCP 请求报文是广播报文,如果大量发送的话也会耗尽网络带宽,形成另一种拒绝服务攻击3、客户端随意指定IP 地址客户端并非一定要使用DHCP 服务,它可以通过静态指定的方式来设置IP 地址。
如果随便指定的话,将会大大提高网络IP 地址冲突的可能性二、DHCP snooping技术介绍名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 16 页 -DHCP 监听(DHCP snooping)是一种 DHCP 安全特性Cisco 交换机支持在每个VLAN基础上启用DHCP 监听特性通过这种特性,交换机能够拦截第二层VLAN 域内的所有DHCP 报文DHCP 监听将交换机端口划分为两类:非信任端口:通常为连接终端设备的端口,如PC,网络打印机等 信任端口:连接合法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 编号、租期等信息如:Switch#show ip DHCPsnooping bindingMacAddress IpAddress Lease(sec)Type VLAN Interface-00:0F:1F:C5:10:08 192.168.10.131 682463 DHCP-snooping 10 FastEthernet0/1 这张 DHCP 监听绑定表为进一步部署IP 源防护(IPSG)和动态ARP 检测(DAI)提供了依据说明:I.非信任端口只允许客户端的DHCP 请求报文通过,这里只是相对于DHCP 报文来说的其他非DHCP 报文还是可以正常转发的。
这就表示客户端可以以静态指定IP 地址的方式通过非信任端口接入网络由于静态客户端不会发送DHCP 报文,所以DHCP 监听绑定表里也不会有该静态客户端的记录信任端口的客户端信息不会被记录到DHCP 监听绑定表里如果有一客户端连接到了一个信任端口,即使它是通过正常的DHCP 方式获得IP 地址,DHCP 监听绑定表里也不有该客户端的记录如果要求客户端只能以动态获得IP 的方式接入网络,则必须借助于IPSG 和 DAI 技术II.交换机为了获得高速转发,通常只检查报文的二层帧头,获得目标 MAC 地址后直接转发,不会去检查报文的内容而DHCP 监听本质上就是开启交换机对DHCP 报文的内容部分的检查,DHCP 报文不再只是被检查帧头了名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 16 页 -III.DHCP监听绑定表不仅用于防御DHCP 攻击,还为后续的IPSG 和 DAI 技术提供动态数据库支持IV.DHCP监听绑定表里的Lease 列就是每个客户端对应的DHCP 租约时间当客户端离开网络后,该条目并不会立即消失当客户端再次接入网络,重新发起 DHCP 请求以后,相应的条目内容就会被更新。
如上面的00F.1FC5.1008这个客户端原本插在Fa0/1 端口,现在插在 Fa0/3 端口,相应的记录在它再次发送DHCP 请求并获得地址后会更新为:Switch#show ip DHCPsnooping bindingor Switch#show ip source bindingMacAddress IpAddress Lease(sec)Type VLAN Interface-00:0F:1F:C5:10:08 192.168.10.131 691023 DHCP-snooping 10 FastEthernet0/3 V.当交换机收到一个DHCPDECLINE或 DHCPRELEASE广播报文,并且报文头的源MAC 地址存在于DHCP 监听绑定表的一个条目中但是报文的实际接收端口与绑定表条目中的端口字段不一致时,该报文将被丢弃DHCPRELEASE报文:此报文是客户端主动释放IP 地址(如 Windows 客户端使用ipconfig/release),当 DHCP 服务器收到此报文后就可以收回IP 地址,分配给其他的客户端了 DHCPDECLINE报文:当客户端发现DHCP 服务器分配给它的IP 地址无法使用(如IP 地址发生冲突)时,将发出此报文让DHCP 服务器禁止使用这次分配的IP 地址。
VI.DHCP监听绑定表中的条目可以手工添加VII.DHCP监听绑定表在设备重启后会丢失,需要重新绑定,但可以通过设置将绑定表保存在 flash 或者 tftp/ftp 服务器上,待设备重启后直接读取,而不需要客户端再次进行绑定VIII.当前主流的Cisco 交换机基本都支持DHCP snooping功能三、DHCP Option 82当 DHCP 服务器和客户端不在同一个子网内时,客户端要想从DHCP 服务器上分配到IP地址,就必须由DHCP 中继代理(DHCP Relay Agent)来转发DHCP 请求包DHCP 中继代理将客户端的DHCP 报文转发到DHCP 服务器之前,可以插入一些选项信息,以便DHCP 服务器能更精确的得知客户端的信息,从而能更灵活的按相应的策略分配IP 地址和其他参数这个选项被称为:DHCP relay agent information option(中继代理信息选项),选项号为82,故又称为option 82,相关标准文档为RFC3046Option 82 是对 DHCP 选项的扩展应用选项82 只是一种应用扩展,是否携带选项82 并不会影响DHCP 原有的应用。
另外还要看DHCP 服务器是否支持选项82不支持选项82 的 DHCP 服务器接收到插名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 16 页 -入了选项 82 的报文,或者支持选项82 的 DHCP 服务器接收到了没有插入选项82 的报文,这两种情况都不会对原有的基本的DHCP 服务造成影响要想支持选项82 带来的扩展应用,则 DHCP 服务器本身必须支持选项82 以及收到的DHCP 报文必须被插入选项82 信息从非信任端口收到DHCP 请求报文,不管DHCP 服务器和客户端是否处于同一子网,开启了DHCP 监听功能的Cisco 交换机都可以选择是否对其插入选项82 信息默认情况下,交换机将对从非信任端口接收到的DHCP 请求报文插入选项82 信息当一台开启DHCP 监听的汇聚交换机和一台插入了选项82 信息的边界交换机(接入交换机)相连时:如果边界交换机是连接到汇聚交换机的信任端口,那么汇聚交换机会接收从信任端口收到的插入选项82 的 DHCP 报文信息,但是汇聚交换机不会为这些信息建立DHCP 监听绑定表条目如果边界交换机是连接到汇聚交换机的非信任端口,那么汇聚交换机会丢弃从该非信任端口收到的插入了选项82 的 DHCP 报文信息。
但在IOS 12.2(25)SE 版本之后,汇聚交换机可以通过在全局模式下配置一条ip DHCP snooping information allow-untrusted命令这样汇聚交换机就会接收从边界交换机发来的插入选项82 的 DHCP 报文信息,并且也为这些信息建立DHCP 监听绑定表条目在配置汇聚交换机下联口时,将根据从边界交换机发送过来的数据能否被信任而设置为信任或者非信任端口四、DHCP snooping的配置Switch(config)#ip DHCPsnooping /打开DHCP snooping 功能Switch(config)#ip DHCPsnooping vlan 10 /设置DHCPsnooping功能将作用于哪些VLAN Switch(config)#ip DHCPsnooping verify mac-address /检测非信任端口收到的DHCP 请求报文的源 MAC 和 CHADDR 字段是否相同,以防止 DHCP 耗竭攻击,该功能默认即为开启Switch(config-if)#ip DHCPsnooping trust /配置接口为 DHCP 监听特性的信任接口,所有接口默认为非信任接口Switch(config-if)#ip DHCPsnooping limit rate 15 /限制非信任端口的DHCP 报文速率为每秒15个包(默认即为每秒15 个包)如果不配该语句,则show ip DHCP snooping的结果里将不列出没有该语句的端口,可选速率范围为1-2048 建议:在配置了端口的DHCP 报文限速之后,最好配置以下两条命令Switch。
