在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     不由dhcp分配的地址

!
ip dhcp pool main       定义地址池

     network 10.63.144.0 255.255.255.0        定义地址池做用的网段及地址范围
     default-router 10.63.144.1       定义客户端的默认网关
     domain-name nbyzzj.cn         定义客户端所在域
     dns-server 10.60.12.11         定义客户端的dns
     lease 7       定义地址租约时间为7天

ip dhcp snooping       打开dhcp snooping功能

ip dhcp snooping vlan 10-12,101-108,315      定义snooping作用的vlan
ip dhcp snooping database flash:dhcp-snooping.db       将绑定表保存在flash中,避免重启设备后,重新绑定


ip arp inspection vlan 10-12,101-108,315     定义arp inspection 作用的vlan,它是根据dhcp snooping binding表做判断的
ip arp inspection validate src-mac dst-mac ip      侦测有效客户端须满足src-mac dst-mac ip 均无错
ip arp inspection log-buffer entries 1024       inspection 日志大小
ip arp inspection log-buffer logs 1024 interval 300      inspection 日志刷新时间,interval太小会占用大量cpu时间
!
!
!
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 l3pxguard
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       当logging关闭时会占用大量cpu资源,一定勿忘打开

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
switchport trunk encapsulation dot1q
switchport mode trunk
ip arp inspection limit none
arp timeout 2
ip dhcp snooping limit rate 100


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



相关命令:
sh logging        查看Dymatic Arp Inspection (DAI) 是否生效.
sh ip dhcp snooping binding        查看snooping是否生效
sh ip dhcp binding        看dhcp server 是否生效.
sh arp        看arp信息是否与 dhcp snooping binding表一致


下级设备若支持dhcp snooping 可这样配置
ip dhcp snooping
int g0/1       上行端口
switchport trunk encapsulation dot1q
switchport mode trunk
ip dhcp snooping trust       定义此端口为信任端口,从此口来的dhcp server数据有效,可阻止其它dhcp server发送dhcp数据。



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

如果使用了dhcp中继服务,那需要在网关交换机上键入如下命令:
方法一:
    inter vlan10
     ip dhcp relay information trusted
方法二:
    switch(config)# ip dhcp relay information trust-all