应用场景:

此方案适合于接入用户使用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表