梅利333

从无到有,自有至精

导航

dhcp snooping DHCP安全

技术背景

你有没有遇到过这样的现象,在公司网络环境中,有人私接小路由,导致下发非法IP地址,而获取到非法IP地址的终端将无法正常访问网络。

是不是很气人,而且在实际当中,接路由器一般都是藏起来,你找都不好找,

 

那有没有一种办法,让这种小路由无法使用呢?即便是你接上了,也不让你用!!

(其实如果接对的话,是没有问题的,就怕是你接错了)

 

DHCP snooping 横空出世

1)什么是DHCPsnooping

DHCP snooping,是针对于dhcp(动态分配主机协议)所做的安全机制,在一个内网中我们比较常见的情况如下,一个工位上的员工,为了自己上无线方便,自己私接了一台无线路由器,而恰巧又接在了lan口上,这种小型家用路由器的内网是可以分配 DHCP的,这样一台内网有些终端就从这里获得到了IP,而这个IP是根本就没有办法上网的,所以要通过dhcp snooping来解决(确认的说应该是在出现问题之间就解决掉)不让非法的DHCP服务器在网络中活动

 

2)配置在哪里?

 确认的说,配置在接入交换机,并将上联口配置为trust信任

 

3)有哪些特点

 只要开启了DHCPsnooping功能,那么所有的接口默认都是不信任的

DHCP snooping的两种状态,

   1 信任 :接收和转发所有DHCP

   2 不信任:接收客户端的请求包,但是不转发

 

实例

 

 

 在此拓扑中,R1为公司的GW,负责DHCP下发IP

R2充当 TP-LINK,非法的DHCPserver

三层交换机做DHCP 中继,配置在这里不再多说,(如果有不明白的,可以回看DHCP HELP那一篇)

  

先保证全网能够正常通信,PC1能够获得公司合法的IP地址

 

 

 

 

 另外两台交换机的互联接口本配置TRUNK

 

 

 此时是正常的情况,PC可以获得到正确的IP地址

 

此时开启R2,摸拟DHCP,并配置一个非法的DHCP地址池

 

 再用PC进行测试,这个时候,PC机就要看运气了,有的时候能够获得到正确的,有的时候获得到的就是非法的

 

 

 这个时候就要开启DHCP snooping

先到最后一台,SW4上开启

 

 

 1)全局开启(config)#ip dhcp snooping

2)针对vlan(config)#ip dhcp snooping vlan 10     //记住,cisco的设备是针对于VLAN的,所以在开启的时候后面一定要加上VLAN编号

3)进入接口配置信任:(config-if)#ip dhcp snooping trust

SW4配置完成,此时如果用PC请求的话,还是有可能请求到非法的IP地址,因为TP-LINKSW3上,所以SW3也要进行开启,

 

 

 配置完了吗?

PC机请求一下发现SW3会有系统消息

 

直接给的drop丢弃了,

 你会发现,在开启snooping之前,是没有这个消息的,为什么?

关键词 option82

wireshark 抓包看一下

 

 

 这个82选项中包含了啥?这个紫色的框框中是什么 意思?

AABBCC004000,像是一个MAC,

 

 

 

为什么会有它的MAC?

:这个是客户机请求DHCP时,会携带的交换机MAC地址,用于定位用,在一个局域网中有很多交换机,当请求到达路由器在回包的时候,好知道应该给哪台交换机,

而这时,开启了DHCP snooping的设备是无法辨识82选项的,也就不允许通过。

如果不通过的话,终端就无法获得到地址了。

所以,在开启DHCPsnoopinP功能后,在dhcp包的必经之路接口上,都应该开启信任端口

 

所以SW3 上的两个接口也必须要开启,当然,这里要除了和TP-LINK相连的那个口

换句话说,就是我这个PC请求DHCP时,沿途的所有站点,都应该认识82选项,交换机肯定是要开启信任端口的,那路由器呢?别急

 

完事儿了吗?

请求一下地址?还是不行,为什么?

这里还有一点特殊,就是三层设备,图中的三层交换,

开启了snooping后,路由设备是不能识别这个包儿的,也就无法进行转发,

所以在三层设备上也要允许这个82option 的包通过(配置信任)

 

 

 Sw1(config)#ip dhcp snooping relay information trust-all

 

最后在PC上进行测试,又可以获得真正合活的地址了

 

 

  

二:为防止PC中病毒随意的修改MAC地址,不断的请求IP地址,导致DHCP地址池枯竭攻击,可以在接入层交换机上配置相应机制

Sw(config)#ip dhcp snooping verify mac-address

 也可以针对这种接入端口(非信任端口)做DHCP数据包请求的限制,系统默认已经开启,每S15个,为了安全起见,也可以改的更小一些

(配置一定要在接口下做)

Sw(config-if)#ip dhcp snooping limit rate <1-2048>

这样的话,接口如果超过规定数值的请求,就会触发惩罚措施,被置为err-disable 

 

 

由于我们设置了每秒钟1个包,肯定会被干掉,(当然,我只是为了看这个效果)

 

同样接口也是可以配置自动恢复的

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

Sw(config)#errdisable recovery interval 30

 

Sw#show errdisable recovery 

关于自动恢复这件事儿,不再赘述,

 

-------------------------------------------------------

CCIE成长之路-----梅利

 

posted on 2020-07-12 08:31  梅利333  阅读(1739)  评论(0编辑  收藏  举报