应用场景:
此方案适合于接入用户使用DHCP动态获取IP地址的各种环境(要求同时部署了DHCP snooping防DHCP欺骗功能),包括802.1X认证环境、web认证环境、GSN环境、非认证环境等。也特别适用于要防PC私设IP地址的需求场景
优点:配置维护简单,无需手工的去做每个用户的IP&MAC绑定;和IP
Source Guard、授权绑定方案相比,可以节省设备所需的硬件安全资源表项。
缺点:DAI是将用户的ARP报文送CPU检查,检查的来源是DHCP
Snooping所记录的软件表项,会额外消耗设备的CPU资源,对于交换机上用户量较少,例如单台交换机带用户50个以内的可以采用,用户数超过此值时,建议推荐使用IP Source Guard方案。
功能简介:
DHCP Snooping +DAI防ARP欺骗方案:在用户PC动态获取IP地址的过程中,通过接入层交换机的DHCP
Snooping功能将用户DHCP获取到的,正确的IP与MAC信息记录到交换机的DHCP Snooping软件表;然后使用DAI功能(纯CPU方式)校验进入交换机的所有ARP报文,将ARP报文里面的Sender
IP及Sender MAC字段与DHCP Snooping表里面的IP+MAC 记录信息进行比较,如果一致则放通,否则丢弃。这样如果合法用户获取IP地址后试图进行ARP欺骗,或者是非法用户私自配置静态的IP地址,他们的ARP校验都将失败,这样的用户将无法使用网络。
一、组网需求
用户网关在核心交换机上,核心交换机创建DHCP Server,接入交换机下联PC使用动态DHCP获取IP地址,为了防止下联用户之间的ARP欺骗及下联用户欺骗网关,使用DHCP Snooping +DAI方案解决ARP欺骗问题。
二、组网拓扑
三、配置要点
1、在核心交换机上开启DHCP Server功能(用户端也有可能使用专用的DHCP服务器,核心交换机只需要启用DHCP Relay即可)
2、在接入交换机上全局开启dhcp snooping功能,并且在上联核心的端口开启DHCP
Snooping信任口
3、全局开启DAI检测功能,上联口开启DAI Trust功能
4、连接用户的接口开启IP
Source Guard功能
5、调整CPP限制和NFPP功能,TRUNK裁减优化
四、配置步骤
核心交换机配置:
1、开启核心设备的DHCP服务功能
Ruijie>enable
Ruijie#configure terminal
Ruijie(config)#service dhcp
2、创建核心设备的IP地址,即用户的网关地址
Ruijie(config)#interface
vlan 1
Ruijie(config-if-VLAN 1)#ip
address 192.168.1.254 255.255.255.0
Ruijie(config-if-VLAN
1)#exit
3、创建核心设备的DHCP地址池
Ruijie(config)#ip dhcp pool
vlan1
Ruijie(dhcp-config)#network
192.168.1.0 255.255.255.0 ------>子网掩码要和所设置IP地址的子网掩码一致,这里都是/24位掩码
Ruijie(dhcp-config)#dns-server
218.85.157.99 ------>设置分配给客户端的DNS地址
Ruijie(dhcp-config)#default-router
192.168.1.254 ------>设置分配给用户的网关地址,这个要和核心设备上所设置的IP地址一致,为192.168.1.254
Ruijie(dhcp-config)#end
Ruijie#wr
接入交换机配置:
1、在接入交换机上开启dhcp
snooping功能
Ruijie>enable
Ruijie#configure terminal
Ruijie(config)#ip dhcp snooping ------>开启DHCP snooping功能
2、连接DHCP服务器的接口配置为可信任口
Ruijie(config)#interface
gigabitEthernet 0/49
Ruijie(config-GigabitEthernet
0/49)#ip dhcp snooping trust ------>开启DHCP snooping的交换机所有接口缺省为untrust口,交换机只转发从trust口收到的DHCP响应报文(offer、ACK)
3、全局开启DAI功能
Ruijie(config)#Ruijie(config)#ip
arp inspection vlan 1 ------>对vlan1开启DAI检测功能
4 、上联口设置为信任口,不进行DAI检测
Ruijie(config)#int
gigabitEthernet 0/25
Ruijie(config-if-GigabitEthernet
0/25)#ip arp inspection trust ------>设置信任功能后送CPU的报文不进行检测,但是依然送CPU处理
5、连接用户的接口开启IP Source Guard功能
Ruijie(config)#interface
range gigabitEthernet 0/1-2 ------>同时进入1口和2口接口配置模式
Ruijie(config-if-range)#ip
verify source port-security ------>开启源IP+MAC的报文检测,将DHCP
Snooping形成的snooping表写入地址绑定数据库中,请正确配置ip verfiy soure port-security, 不要使用ip
verify source(仅绑定IP),部分产品存在限制,只绑定IP的情况下可能出现异常。
6 、保存配置
Ruijie(config-if-GigabitEthernet
0/25)#end
Ruijie#write ------> 确认配置正确,保存配置
DAI必选优化功能
开启DAI功能后,接口收到的所有ARP报文都会送CPU处理,此时,请务必做好如下功能优化:
1、在交换机的上联口或核心交换机上做好VLAN的裁剪
(trunk裁剪,例如只允许vlan1和vlan9通过,其余vlan均不允许通过,命令是
Ruijie(config-if-GigabitEthernet
0/25)#switchport trunk allowed vlan
remove 2-8,10-4094),把没有必要的vlan给裁剪,避免ARP报文广播泛洪到所有交换机,增加交换机的负担;
2、由于网关发给用户的报文从上联口下来,报文量可能比较大,超出NFPP的默认限速,导致部分用户ARP丢失,所以需要将上联口的NFPP功能关闭,
整体默认的NFPP功能保持开启,对CPU有一定保护左右。
Ruijie(config)#int g0/25
Ruijie(config-if-GigabitEthernet
0/25)#no nfpp arp-guard enable
------>关闭接口的ARP-guard功能,关闭该功能后,该接口进入的数据报文不进行NFPP检测
Ruijie(config-if-GigabitEthernet
0/25)#no nfpp dhcp-guard enable
------>关闭接口的dhcp-guard功能,关闭该功能后,该接口进入的数据报文不进行NFPP检测
Ruijie(config-if-GigabitEthernet
0/25)#no nfpp dhcpv6-guard enable
------>关闭接口的dhcpv6-guard功能,关闭该功能后,该接口进入的数据报文不进行NFPP检测
Ruijie(config-if-GigabitEthernet
0/25)#no nfpp icmp-guard enable
------>关闭接口的icmp-guard功能,关闭该功能后,该接口进入的数据报文不进行NFPP检测
Ruijie(config-if-GigabitEthernet
0/25)#no nfpp ip-guard enable
------>关闭接口的ip-guard功能,关闭该功能后,该接口进入的数据报文不进行NFPP检测
Ruijie(config-if-GigabitEthernet
0/25)#no nfpp nd-guard enable
------>关闭接口的nd-guard功能,关闭该功能后,该接口进入的数据报文不进行NFPP检测
Ruijie(config-if-GigabitEthernet
0/25)#exit
Ruijie(config)#
3、另外接入交换机的CPP值默认默认比较小仅为180PPS,开启DAI的情况下,所有ARP报文送CPU处理,在连接用户数多的情况很容易超过CPP设定的阀值,在存在大量ARP攻击或泛洪的情况下导致部分用户ARP丢弃,可能导致丢包。所以需要进行调整,通常建议调整到500PPS左右,非DAI方案无需调整。
CPP调整方法:
Ruijie(config)#cpu-protect
type arp pps 500
注意:如果CPP调的太大,可能导致CPU过高,可适当降低限速值,故在网络部署防ARP欺骗模型中,除非必要,否则尽量选择其他防ARP欺骗方案。
五、功能验证
1、查看DAI功能是否开启
2、查看DHCP
Snooping表