[SwitchA] vlan 10
[SwitchA-vlan10] arp detection enable [SwitchA-vlan10] quit
# 开启Switch A的端口Ethernet1/0/2、Ethernet1/0/3上的ARP报文限速功能。
[SwitchA] interface Ethernet1/0/2
[SwitchA-Ethernet1/0/2] arp rate-limit enable [SwitchA-Ethernet1/0/2] arp rate-limit 20 [SwitchA-Ethernet1/0/2] quit
[SwitchA] interface Ethernet1/0/3
[SwitchA-Ethernet1/0/3] arp rate-limit enable [SwitchA-Ethernet1/0/3] arp rate-limit 20 [SwitchA-Ethernet1/0/3] quit
# 配置端口状态自动恢复功能,恢复时间间隔为100秒。
[SwitchA] arp protective-down recover enable
[SwitchA] arp protective-down recover interval 100
# 配置网关的缺省路由。
[SwitchA] ip route-static 0.0.0.0 0 192.168.0.1
4. 配置Switch B
# 创建VLAN20,并将相应端口加入VLAN20中。
[SwitchB-vlan20] port Ethernet 1/0/1 to Ethernet 1/0/4 [SwitchB-vlan20] quit
# 配置Switch B的上行口为DHCP snooping信任端口。
[SwitchB] interface ethernet1/0/1
[SwitchB-Ethernet1/0/1] dhcp-snooping trust [SwitchB-Ethernet1/0/1] quit
# 开启DHCP snooping。
[SwitchB] dhcp-snooping
# 配置Switch B的上行口为ARP信任端口。
[SwitchB] interface ethernet1/0/1
[SwitchB-Ethernet1/0/1] arp detection trust [SwitchB-Ethernet1/0/1] quit
# 开启VLAN 20内所有端口的ARP入侵检测功能。
[SwitchB] vlan 20
[SwitchB-vlan20] arp detection enable [SwitchB-vlan20] quit
# 开启Switch A的端口Ethernet1/0/2、Ethernet1/0/3、Ethernet1/0/4上的ARP报文限速功能。
[SwitchB] interface Ethernet1/0/2
[SwitchB-Ethernet1/0/2] arp rate-limit enable [SwitchB-Ethernet1/0/2] arp rate-limit 20 [SwitchB-Ethernet1/0/2] quit
[SwitchB] interface Ethernet1/0/3
[SwitchB-Ethernet1/0/3] arp rate-limit enable [SwitchB-Ethernet1/0/3] arp rate-limit 20 [SwitchB-Ethernet1/0/3] quit
[SwitchB] interface Ethernet1/0/4
[SwitchB-Ethernet1/0/4] arp rate-limit enable [SwitchB-Ethernet1/0/4] arp rate-limit 20 [SwitchB-Ethernet1/0/4] quit
# 配置端口状态自动恢复功能,恢复时间间隔为100秒。
[SwitchB] arp protective-down recover enable
[SwitchB] arp protective-down recover interval 100
# 配置网关的缺省路由。
[SwitchB] ip route-static 0.0.0.0 0 192.168.1.1
5. 配置Gateway
# 创建VLAN 10和VLAN 20,并添加相应端口。
[Gateway] vlan 10
[Gateway–vlan10] port Ethernet 1/0/1 [Gateway–vlan10] quit [Gateway] vlan 20
[Gateway–vlan20] port Ethernet 1/0/2 [Gateway–vlan20] quit
# 配置Vlan-interface10的IP地址为192.168.0.1/24。
[Gateway] interface vlan 10
[Gateway-Vlan-interface10] ip address 192.168.0.1 24 [Gateway-Vlan-interface10] quit
# 配置Vlan-interface20的IP地址为192.168.1.1/24。
[Gateway] interface vlan 20
[Gateway-Vlan-interface20] ip address 192.168.1.1 24 [Gateway-Vlan-interface20] quit
6. 配置DHCP服务器
由于作为DHCP服务器的设备不同,所需进行的配置也不同,故此处从略。具体配置请参考DHCP服务器操作手册。
2.1.5 注意事项
?
配置ARP入侵检测功能之前,需要先在交换机上开启DHCP Snooping功能,并设置DHCP Snooping信任端口,否则所有ARP报文将都不能通过ARP入侵检测。
目前,H3C低端以太网交换机上开启DHCP Snooping功能后,所有端口默认被配置为DHCP Snooping非信任端口。为了使DHCP客户端能从合法的DHCP服务器获取IP地址,必须将与合法DHCP服务器相连的端口设置为信任端口,设置的信任端口和与DHCP客户端相连的端口必须在同一个VLAN内。
DHCP Snooping表只记录了通过DHCP方式动态获取IP地址的客户端信息。如果固定IP地址的用户需要访问网络,必须在交换机上手工配置IP静态绑定表的表项,即:用户的IP地址、MAC地址及连接该用户的端口之间的绑定关系。
?
?
?
目前,H3C系列以太网交换机在端口上配置的IP静态绑定表项,其所属VLAN为端口的缺省VLAN ID。因此,如果ARP报文的VLAN TAG与端口的缺省VLAN ID值不同,报文将无法通过根据IP静态绑定表项进行的ARP入侵检测。
H3C系列以太网交换机上手工配置的IP静态绑定表项的优先级高于DHCP Snooping动态表项。具体表现在:如果手工配置的IP静态绑定表项中的IP地址与已存在的DHCP Snooping动态表项的IP地址相同,则
?
覆盖DHCP Snooping动态表项的内容;如果先配置了IP静态绑定表项,再开启交换机的DHCP Snooping功能,则DHCP客户端不能通过该交换机获取到IP静态绑定表项中已经存在的IP地址。
?
实际组网中,为了解决上行端口接收的ARP请求和应答报文能够通过ARP入侵检测问题,交换机支持通过配置ARP信任端口,灵活控制ARP报文检测功能。对于来自信任端口的所有ARP报文不进行检测,对其它端口的ARP报文通过查看DHCP Snooping表或手工配置的IP静态绑定表进行检测。
建议用户不要在汇聚组中的端口上配置ARP入侵检测、ARP报文限速功能。
?
2.2 认证模式下的ARP攻击防御配置举例
2.2.1 组网需求
某校园网内大部分用户通过接入设备连接网关和外网的服务器。管理员希望通过客户端和服务器间的认证机制,在客户端绑定网关的IP/MAC对应关系,过滤掉仿冒网关的ARP攻击报文。详细网络应用需求分析如下:
?
接入用户可以通过DHCP自动获取IP地址,也可以手工配置静态IP地址。但需要安装802.1x客户端,即:通过802.1x认证才能访问网络。 服务器采用H3C公司的CAMS认证/授权、计费服务器;CAMS通过将网关的IP-MAC对应关系下发到认证客户端,防止用户端的网关仿冒等ARP攻击。
接入交换机需要开启802.1x和AAA相关配置。
?
?
2.2.2 组网图
DHCP serverCAMSIP networkIP:20.10.1.1/16Eth1/0/3Vlan-int 10192.168.0.1/24Eth1/0/1Vlan-int 20192.168.1.1/24Eth1/0/2IP:10.10.1.1/16GatewayVLAN10Host area1Switch AEth1/0/1Eth1/0/3Eth1/0/2Eth1/0/1Eth1/0/4Swtich BVLAN20Host area2Eth1/0/2Eth1/0/3Host AHost BHost CHost DHost E 图2-3 认证模式下的ARP攻击防御组网示意图
2.2.3 配置思路
? ? ?
用户安装802.1x客户端,即需要通过802.1x认证才能访问网络。 接入交换机Switch A和Switch B上开启802.1x和AAA相关配置。 通过CAMS服务器将网关的IP-MAC对应关系下发到认证客户端,防止用户端的网关仿冒等ARP攻击。
2.2.4 配置步骤
1. 配置SwitchA
# 创建VLAN 10,并添加相应端口。
[SwitchA-vlan10] port Ethernet 1/0/1 to Ethernet 1/0/3 [SwitchA-vlan10] quit
# 设置RADIUS方案cams,设置主服务器。
[SwitchA] radius scheme cams
[SwitchA-radius-cams] primary authentication 10.10.1.1 [SwitchA-radius-cams] accounting optional
# 设置系统与认证Radius服务器交互报文时加密密码为expert。
[SwitchA-radius-cams] key authentication expert
#设置用户名为带域名格式。
[SwitchA-radius-cams] user-name-format with-domain
#服务类型为extended。
[SwitchA-radius-cams] server-type extended [SwitchA-radius-cams] quit
# 定义ISP域abc,并配置认证采用RADIUS方案cams。
[SwitchA] domain abc
[SwitchA-isp-abc] radius-scheme cams [SwitchA-isp-abc] quit
# 将ISP域abc设置为缺省ISP域。
[SwitchA] domain default enable abc
# 交换机全局开启802.1x功能。
[SwitchA] dot1x
# 在端口Ethernet1/0/2下开启802.1x功能。
[SwitchA] interface Ethernet1/0/2 [SwitchA-Ethernet1/0/2] dot1x [SwitchA-Ethernet1/0/2] quit
# 在端口Ethernet1/0/3下开启802.1x功能。
[SwitchA] interface Ethernet1/0/3 [SwitchA-Ethernet1/0/3] dot1x [SwitchA-Ethernet1/0/3] quit
# 配置网关的缺省路由
[SwitchA] ip route-static 0.0.0.0 0 192.168.0.1
2. 配置SwitchB
# 创建VLAN 20,并添加相应端口。
[SwitchB-vlan20] port Ethernet 1/0/1 to Ethernet 1/0/4 [SwitchB-vlan20] quit
# 设置RADIUS方案cams,设置主服务器。
[SwitchB] radius scheme cams
[SwitchB-radius-cams] primary authentication 10.10.1.1 [SwitchB-radius-cams] accounting optional
# 设置系统与认证Radius服务器交互报文时加密密码为expert。
[SwitchB-radius-cams] key authentication expert
#设置用户名为带域名格式。
[SwitchB-radius-cams] user-name-format with-domain
#服务类型为extended。
[SwitchB-radius-cams] server-type extended [SwitchB-radius-cams] quit
# 定义ISP域abc,并配置认证采用RADIUS方案cams。
[SwitchB] domain abc
[SwitchB-isp-abc] radius-scheme cams [SwitchB-isp-abc] quit
# 将ISP域abc设置为缺省ISP域。
[SwitchB] domain default enable abc
# 交换机全局开启802.1x功能。
[SwitchB] dot1x
# 在端口Ethernet1/0/2、Ethernet1/0/3、Ethernet1/0/4开启802.1x功能。