开发者社区> 技术小胖子> 正文

Cisco交换机DHCP​Snooping

简介:
+关注继续查看

一、为什么要使用DHCP服务及能解决的问题 

    DHCP提高了管理效率,但在DHCP服务的管理上存在一些问题,如DHCP Server的冒充,DHCP Server的DOS攻击,DHCP耗竭攻击,有些用户随便指定IP地址,造成IP地址冲突等。
二、DHCP Snooping技术 

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

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

    ●非信任端口:通常为连接终端设备的端口 

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

    通过开启DHCP监听特性,交换机限制用户端口(非信任端口)只能够发送DHCP请求,丢弃来自用户端口的所有其它DHCP报文,例如DHCPOffer 报文等。而且,并非所有来自用户端口的DHCP请求都被允许通过,交换机还会比较DHCP请求报文的(报文头里的)源MAC地址和(报文内容里 的)DHCP客户机的硬件地址(即CHADDR字段),只有这两者相同的请求报文才会被转发,否则将被丢弃。这样就防止了DHCP耗竭攻击。信任端口可以 接收所有的DHCP报文。通过只将交换机连接到合法DHCP服务器的端口设置为信任端口,其他端口设置为非信任端口,就可以防止用户伪造DHCP服务器来 攻击网络。DHCP监听特性还可以对端口的DHCP报文进行限速。通过在每个非信任端口下进行限速,将可以阻止合法DHCP请求报文的广播攻击。DHCP 监听还有一个非常重要的作用就是建立一张DHCP监听绑定表(DHCP SnoopingBinding)。一旦一个连接在非信任端口的客户端获得一个合法的DHCPOffer,交换机就会自动在DHCP监听绑定表里添加一个 绑定条目,内容包括了该非信任端口的客户端IP地址、MAC地址、端口号、VLAN编号、租期等信息。 

    Switch#show ip dhcp snooping binding 

    MacAddress 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报文不再只是被检查帧头了。 

    III. DHCP监听绑定表不仅用于防御DHCP攻击,还为后续的IPSG和DAI技术提供动态数据库支持。 IV.DHCP监听绑定表里的Lease列就是每个客户端对应的DHCP租约时间。当客户端离开网络后,该条目并不会立即消失。当客户端再次接入网络, 重新发起DHCP请求以后,相应的条目内容就会被更新。如上面的00F.1FC5.1008这个客户端原本插在Fa0/1端口,现在插在Fa0/3端口, 相应的记录在它再次发送DHCP请求并获得地址后会更新为: 

    Switch#show ip dhcp snooping binding or 

    Switch#show ip source binding 

    MacAddress 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 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-address //检测非信任端口收到的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监听绑定表。

五、显示DHCP Snooping的状态 

    Switch#show ip dhcp snooping //显示当前DHCP监听的各选项和各端口的配置情况 

    Switch#show ip dhcp snooping binding //显示当前的DHCP监听绑定表 

    Switch#show ip dhcp snooping database //显示DHCP监听绑定数据库的相关信息 

    Switch#show ip dhcp snooping statistics //显示DHCP监听的工作统计 Switch#clear ip dhcp snooping binding //清除DHCP监听绑定表;注意:本命令无法对单一条目进行清除,只能清除所有条目     Switch#clear ip dhcp snooping database statistics //清空DHCP监听绑定数据库的计数器         Switch#clear ip dhcp snooping statistics //清空DHCP监听的工作统计计数器

本文转自: http://www.linux78.com/cisco-switch-dhcp-snooping.html
Linux起点




      本文转自Tenderrain 51CTO博客,原文链接:http://blog.51cto.com/tenderrain/1601723,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
27776 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
15331 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
20000 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
14862 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
22230 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23528 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
36354 0
21115
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载