配置:
switch(config)#ip dhcp snooping
switch(config)#ip dhcp snooping vlan 10
switch(config-if)#ip dhcp snooping limit rate 10
/*dhcp包的转发速率,超过就接口就shutdown,默认不限制
switch(config-if)#ip dhcp snooping trust
/*这样这个端口就变成了信任端口,信任端口可以正常接收并转发DHCP Offer报文,不记录ip和mac地址的绑定,默认是非信任端口
switch#ip dhcp snooping binding 0009.3452.3ea4 vlan 7 192.168.10.5 interface gi1/0/10
/*这样可以静态ip和mac一个绑定
switch(config)#ip dhcp snooping database tftp:// 10.1.1.1/dhcp_table
/*因为掉电后,这张绑定表就消失了,所以要选择一个保存的地方,ftp,tftp,flash皆可。本例中的dhcp_table是文件名,而不是文件夹,同时文件名要手工创建一个
2. ARP inspection
1.介绍
DAI是以dhcp-snooping的绑定表为基础来检查mac地址和ip地址的合法性。
2.配置
switch(config)#ip dhcp snooping vlan 7
switch(config)#ip dhcp snooping information option
/*默认
switch(config)#ip dhcp snooping
switch(config)#ip arp inspection vlan 7
/* 定义对哪些 VLAN 进行 ARP 报文检测
switch(config)#ip arp inspection validate src-mac dst-mac ip
/*对源,目mac和ip地址进行检查
switch(config-if)#ip dhcp snooping limit rate 10
switch(config-if)#ip arp inspection limit rate 15
/* 定义接口每秒 ARP 报文数量
switch(config-if)#ip arp inspection trust
/*信任的接口不检查arp报文,默认是检测
3.注意点
对于前面dhcp-snooping的绑定表中关于端口部分,是不做检测的;同时对于已存在于绑定表中的mac和ip对于关系的主机,不管是dhcp获得,还是静态指定,只要符合这个表就可以了。如果表中没有就阻塞相应流量。
在开始应用Dynamic ARP Inspection时,交换机会记录大量的数据包,当端口通过的数据包过多时,交换机会认为遭受DoS攻击,从而将端口自动errdisable,造成通信中断。为了解决这个问题,我们需要加入命令errdisable recovery cause arp-inspection
在cisco网络环境下,boot request在经过了启用DHCP SNOOPING特性的设备上时,会在DHCP数据包中插入option 82的选项(具体见RFC3046)
这个时候,boot request中数据包中的gateway ip address:为全0,所以一旦dhcp relay 设备检测到这样的数据包,就会丢弃。
如果dhcp服务器使用了中继服务,那需要在网关交换机上键入如下命令:
方法一:
inter vlan7
ip dhcp relay information trusted
方法二:
switch(config)# ip dhcp relay information trust-all
三.总结
虽然dhcp snooping是用来防止非法的dhcp server接入的,但是它一个重要作用是一旦客户端获得一个合法的dhcp offer。启用dhcp snooping设备会在相应的接口下面记录所获得IP地址和客户端的mac地址。这个是后面另外一个技术ARP inspection检测的一个依据。ARP inspection是用来检测arp请求的,防止非法的ARP请求。认为是否合法的标准的是前面dhcp snooping时建立的那张表。因为那种表是dhcp server正常回应时建立起来的,里面包括是正确的arp信息。如果这个时候有arp攻击信息,利用ARP inspection技术就可以拦截到这个非法的arp数据包。
其实利用这个方法,还可以防止用户任意修改IP地址,造成地址冲突的问题。