Cisco dhcp snooping

在一个局域网中如果有人私接家用路由器将LAN接入了企业的接入层交换机,或者恶意攻击者伪造DHCP报文都将导致dhcp问题,如何防护成为关键,下面就对几种场景做出试验配置

场景1

DHCP server在三层交换机,每个vlan一个dhcp server,客户端和dhcp server处于同网段不涉及跨网段

拓扑

正常情况下,客户端获取到的网段是172.28.27.0/24的,此时将另外一台3725模拟为冒充的dhcp server 并且网段是192.168.1.0 由于模拟器的问题导致客户端第一次从哪里获取到IP后,后续就一直从该dhcp server 获取地址,这里为了实现试验效果,把正常的那台dhcp server的服务先关闭然后冒充者收到dhcp request报文进行应答

模拟正常未启用dhcp snooping的情况

core(config)#no service dhcp  //关闭正常dhcp server的服务(真实环境不用这么操作)

断开客户端的网络重连观察获取的IP地址

已经拿到了冒充者提供的错误IP地址

在接入层配置dhcp snooping进行防护

#三层交换机
core(config)#service dhcp //别忘了先打开dhcp服务
#接入层交换机
access(config)#ip dhcp snooping vlan 27   //针对vlan27开启dhcp snooping access(config)#ip dhcp snooping    //开启全局的dhcp snooping access(config)#int g0/2     access(config-if)#ip dhcp snooping trust //将连接合法的dhcp server的端口设置为trust端口

这个时候你会发现完蛋了。真实的dhcp地址拿不到了。假dhcp分配的地址也拿不到了。。。其实是因为还少了一个配置,具体原因如下:

由于默认情况下cisco交换机的ip dhcp snooping information option 是打开的,此时交换机会在PC来的DHCP请求报文中插入option82内容,又由于cisco3725 DHCP服务器与PC处于同一个VLAN中,所以请求并没有经过中继
代理。对于cisco3725
DHCP服务器来说,如果它收到的DHCP请求被插入了option82,那么它会认为这是一个从中继代理过来的请求报文,但是它检查了该报文的giaddr字段却又发现是0.0.0.0,而不是一个有效的IP地址,因此该报
文被认为“非法”,所以将被丢弃。

解决方案有两种

第一种:

#在dhcp server上面开启信任中继代理功能
core(config)#ip dhcp relay information trust-all

 然后观察地址获取情况

已经获取的正确的地址

第二种:

#就是在接入层上面关闭插入option82的选项,当然这个根据实际环境来配置
access(config)#no ip dhcp snooping information option

  

观察地址获取情况

猜你喜欢

转载自www.cnblogs.com/sun292393989/p/9077452.html