一.工作原理:

A.根据DHCP Snooping或手工方式形成的MAC地址与IP地址绑定表,来确定网络中的非法接入的MAC地址

B.同时为了防止恶意ARP欺骗,还可以对接口的arp请求包进行限速

---测试发现,对于非信任口的arp请求和回复(包括无理arp)都会被丢弃,因此觉得在非信任端口做限速没有多大必要(没有手工修改DHCP绑定表,或用arp access-list做排除的情况)

参考链接:http://wenku.baidu.com/view/cda2e815c5da50e2534d7f05.html

二.测试拓扑:

Dynamic ARP Inspection(DAI)工作原理及测试_DAI

测试交换机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 显示动态和静态绑定项