在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地址,造成地址冲突的问题。

 


  
  1. ip dhcp excluded-address 10.63.150.100 10.63.150.120 不由dhcp分配的地址
  2. !
  3. ip dhcp pool main 定义地址池
  4. network 10.63.144.0 255.255.255.0 定义地址池做用的网段及地址范围
  5. default-router 10.63.144.1 定义客户端的默认网关
  6. domain-name nbyzzj.cn 定义客户端所在域
  7. dns-server 10.60.12.11 定义客户端的dns
  8. lease 7 定义地址租约时间为7天
  9. ip dhcp snooping 打开dhcp snooping功能
  10. ip dhcp snooping vlan 10-12,101-108,315 定义snooping作用的vlan
  11. ip dhcp snooping database flash:dhcp-snooping.db 将绑定表保存在flash中,避免重启设备后,重新绑定

 


  
  1. ip arp inspection vlan 10-12,101-108,315 定义arp inspection 作用的vlan,它是根据dhcp snooping binding表做判断的
  2. ip arp inspection validate src-mac dst-mac ip 侦测有效客户端须满足src-mac dst-mac ip 均无错
  3. ip arp inspection log-buffer entries 1024 inspection 日志大小
  4. ip arp inspection log-buffer logs 1024 interval 300 inspection 日志刷新时间,interval太小会占用大量cpu时间
  5. !
  6. !
  7. !
  8. errdisable recovery cause udld
  9. errdisable recovery cause bpduguard
  10. errdisable recovery cause security-violation
  11. errdisable recovery cause channel-misconfig
  12. errdisable recovery cause pagp-flap
  13. errdisable recovery cause dtp-flap
  14. errdisable recovery cause link-flap
  15. errdisable recovery cause gbic-invalid
  16. errdisable recovery cause l2ptguard
  17. errdisable recovery cause psecure-violation
  18. errdisable recovery cause dhcp-rate-limit
  19. errdisable recovery cause unicast-flood
  20. errdisable recovery cause vmps
  21. errdisable recovery cause arp-inspection
  22. errdisable recovery interval 30

在开始应用Dynamic ARP Inspection时,交换机会记录大量的数据包,当端口通过的数据包过多时,交换机会认为遭受DoS***,从而将端口自动errdisable,造成通信中断。为了解决这个问题,我们需要加入命令errdisable recovery cause arp-inspection

 


  
  1. no file verify auto
  2. logging on 当logging关闭时会占用大量cpu资源,一定勿忘打开
  3. no spanning-tree loopguard default 最好不要打开
  4. ip source binding 0004.76f6.e3e9 vlan 315 10.63.150.100 interface Gi1/0/11 手动增加静态地址的条目
  5. !

 


  
  1. interface GigabitEthernet1/0/11
  2. switchport trunk encapsulation dot1q
  3. switchport mode trunk
  4. ip arp inspection limit none
  5. arp timeout 2
  6. ip dhcp snooping limit rate 100

由于下连设备,为了避免inspection让端口errdisable,所以对arp的侦测不做限制,若直接为接入设备, 可使用ip arp inspection limit rate 100

相关命令:

 


  
  1. sh logging 查看Dymatic Arp Inspection (DAI) 是否生效.
  2. sh ip dhcp snooping binding 查看snooping是否生效
  3. sh ip dhcp binding 看dhcp server 是否生效.
  4. sh arp 看arp信息是否与 dhcp snooping binding表一致

下级设备若支持dhcp snooping 可这样配置:

 


  
  1. ip dhcp snooping
  2. int g0/1 上行端口
  3. switchport trunk encapsulation dot1q
  4. switchport mode trunk
  5. ip dhcp snooping trust 定义此端口为信任端口,从此口来的dhcp server数据有效,可阻止其它dhcp server发送dhcp数据。

经实验,对于已存在于绑定表中的mac和ip对于关系的主机,不管是dhcp获得,还是静态指定,只要符合这个表就可以了。如果表中没有就阻塞相应流量。

如果使用了dhcp中继服务,那需要在网关交换机上键入如下命令:

方法一:

 


  
  1. inter vlan10
  2. ip dhcp relay information trusted

方法二:

 


  
  1. switch(config)# ip dhcp relay information trust-all