在cisco网络环境下,boot request在经过了启用DHCP SNOOPING特性的设备上时,会在DHCP数据包中插入option 82的选项(具体见RFC3046)
这个时候,boot request中数据包中的gateway ip address:为全0,所以一旦dhcp relay 设备检测到这样的数据包,就会丢弃。
虽然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地址,造成地址冲突的问题。
!
ip dhcp excluded-address 10.63.150.100 10.63.150.120
!
ip dhcp pool main
ip dhcp snooping
ip dhcp snooping vlan 10-12,101-108,315
ip dhcp snooping database flash:dhcp-snooping.db
ip arp inspection vlan 10-12,101-108,315
ip arp inspection validate src-mac dst-mac ip
ip arp inspection log-buffer entries 1024
ip arp inspection log-buffer logs 1024 interval 300
!
!
!
errdisable recovery cause udld
errdisable recovery cause bpduguard
errdisable recovery cause security-violation
errdisable recovery cause channel-misconfig
errdisable recovery cause pagp-flap
errdisable recovery cause dtp-flap
errdisable recovery cause link-flap
errdisable recovery cause gbic-invalid
errdisable recovery cause l2ptguard
errdisable recovery cause psecure-violation
errdisable recovery cause dhcp-rate-limit
errdisable recovery cause unicast-flood
errdisable recovery cause vmps
errdisable recovery cause arp-inspection
errdisable recovery interval 30
在开始应用Dynamic ARP Inspection时,交换机会记录大量的数据包,当端口通过的数据包过多时,交换机会认为遭受DoS攻击,从而将端口自动errdisable,造成通信中断。为了解决这个问题,我们需要加入命令errdisable recovery cause arp-inspection
no file verify auto
logging on
no spanning-tree loopguard default
ip source binding 0004.76f6.e3e9 vlan 315 10.63.150.100 interface Gi1/0/11
!
interface GigabitEthernet1/0/11
由于下连设备,为了避免inspection让端口errdisable,所以对arp的侦测不做限制,若直接为接入设备, 可使用ip arp inspection limit rate 100
相关命令:
sh logging
sh ip dhcp snooping binding
sh ip dhcp binding
sh arp
下级设备若支持dhcp snooping 可这样配置:
ip dhcp snooping
int g0/1
switchport trunk encapsulation dot1q
switchport mode trunk
ip dhcp snooping trust
经实验,对于已存在于绑定表中的mac和ip对于关系的主机,不管是dhcp获得,还是静态指定,只要符合这个表就可以了。如果表中没有就阻塞相应流量。
如果使用了dhcp中继服务,那需要在网关交换机上键入如下命令:
方法一:
方法二:
通过日志发现手配IP恶意冲突MAC:
(实验IP:172.16.11.200,网关:172.16.9.254)
sh log | in 172.16.11.200 <-----反映IP 冲突的 IP。
3172099: Jun 4 15:42:26: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Gi3/10, vlan 6.([74e5.0bc0.6cd4/0.0.0.0/0000.0000.0000/172.16.11.200/15:42:26 GMT Mon Jun 4 2012])
3172100: Jun 4 15:42:27: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Gi3/10, vlan 6.([74e5.0bc0.6cd4/172.16.11.200/0000.0000.0000/172.16.9.254/15:42:27 GMT Mon Jun 4 2012])
74e5.0bc0.6cd4 此MAC手动配置IP:172.16.11.200,通过核心禁止此MAC接入网络。