一.工作原理:
A.根据DHCP Snooping或手工方式形成的MAC地址与IP地址绑定表,来确定网络中的非法接入的MAC地址
B.同时为了防止恶意ARP欺骗,还可以对接口的arp请求包进行限速
---测试发现,对于非信任口的arp请求和回复(包括无理arp)都会被丢弃,因此觉得在非信任端口做限速没有多大必要(没有手工修改DHCP绑定表,或用arp access-list做排除的情况)
参考链接:http://wenku.baidu.com/view/cda2e815c5da50e2534d7f05.html
二.测试拓扑:
测试交换机IOS:
--Cisco IOS Software, C3560 Software (C3560-IPSERVICESK9-M), Version 12.2(55)SE3, RELEASE SOFTWARE (fc1)
三.配置步骤:
A.交换机:
①全局开启DHCP Snooping
ipdhcp snooping
②在VLAN 11启用DHCP Snooping
ipdhcp snooping vlan 11
③指定连接R2(DHCP服务器)的接口为信任接口
interface FastEthernet0/2
ip dhcp snooping trust
④在VLAN 11开启DAI
ip arp inspection vlan 11
B.DHCP服务器配置:
①设定ip地址池
ip dhcp pool dhcppool
network 10.1.1.0 255.255.255.0
default-router 10.1.1.2
②信任82选项
interface GigabitEthernet0/0
ip dhcp relay information trusted
四.测试:
A.R1和PC1都作为DHCP客户端
---这时DHCP Snooping binding表中同时有R1和PC1的mac地址和IP对照表,因此当R1去ping PC1时,PC1的ARP Reply包能够被交换机正常转发,相反也是一样,所以能ping通
B.将PC的IP手工指定为DHCP分派之外的其他地址
---比如10.1.1.130
---这时DHCP Snooping binding表中没有PC1的mac地址和IP对照表,立马报出日志:
*Mar 2 00:45:40.424: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Fa0/9, vlan 11.([0050.56bc.9f6a/10.1.1.130/0000.0000.0000/10.1.1.130/00:45:40 UTC Tue Mar 2
---这时R1 ping PC1不通,在PC1上面抓包,可以看到由R1发出的arp请求包,PC也给R1回复了一个arp reply包,但是R1上show arp却没有PC1的arp记录,可见DAI依据DHCP Snooping binding表来判断,如果没有记录的话,则把该端口的arp reply包给丢弃了
---如果这时PC1去ping R1的接口地址,不通,在PC上面抓包可以看到,发出的arp request包根本就没有得到回应,在R1上debug也看不到arp request,说明开启DAI后,DAI把没有记录的接口的ARPrequest包也给丢弃了。
---可见:交换机对DHCP Snooping绑定表没有记录及没有做特殊设置的接口的ARP回复包和请求包都会丢弃
C.对于DHCNP Snooping binding表没记录的解决方式
---R1和PC1虽然都作为DHCP客户端时能互相ping通,但是它们都ping不通10.1.1.2,DHCP服务器的地址。
---原因是DAI检查DHCP绑定表没有10.1.1.2的条目,将10.1.1.2回复的ARP Reply包给丢弃了
---这时R2上能收到R1和PC1发出的Arp Request包的,所以它的arp缓存里面有R1和PC1对应的条目的
---如果R1和PC1上手工添加R2的ARP记录,它们是可以PING通R2的
①指定连接静态IP的设备接口为信任接口
SW1(config-if)#ip arp inspection trust
②设定arp access-list,并在vlan arp审查过滤时调用
arp access-list testarp
permit ip host 10.1.1.2 mac host 0002.0002.0002
ip arp inspection filter testarp vlan 11 <static>
---这个static是可选的,输入和不输入有什么区别没有测试出来
---在输入arp access-list名称时是不进行检查的,即使输入不存在的名称,也不做提示
③在DHCP Snooping表中增加静态条目
ip source binding 0002.0002.0002 vlan 11 10.1.1.2 interface Fa0/2
---增加后可以通过如下命令查看:show ip source binding 显示动态和静态绑定项