Datacom-HCIE-16 网络安全技术(一) 以太网交换安全
目前网络中以太网技术的应用非常广泛。然而,各种网络攻击的存在(例如针对ARP、DHCP等协议的攻击),不仅造成了网络合法用户无法正常访问网络资源,而且对网络信息安全构成严重威胁,因此以太网交换的安全性越来越重要。
在大中型企业通常部署防火墙双机热备,可以保证网络中主用设备出现故障时,备用设备能够平滑地接替主用设备的工作,从而实现业务的不间断运行;防火墙虚拟系统是指将一台防火墙设备划分为多个虚拟系统,每台虚拟系统相当于一台真实的设备。
本文主要介绍常见的以太网交换安全技术:包括端口隔离、端口安全、MAC地址漂移检测、风暴控制、端口限速、MAC地址表安全、DHCP Snooping及IP Source Guard;介绍防火墙高级特性:双机热备,虚拟系统。
端口隔离
端口隔离技术背景
以太交换网络中为了实现报文之间的二层隔离,用户通常将不同的端口加入不同的VLAN,实现二层广播域的隔离。
大型网络中,业务需求种类繁多,只通过VLAN实现报文二层隔离,会浪费有限的VLAN资源。
如下图所示,由于某种业务需求,PC1与PC2虽然属于同一个VLAN ,但是要求它们在二层不能互通(但允许三层互通),PC1与PC3在任何情况下都不能互通,但是VLAN 3里的主机可以访问VLAN 2里的主机。 那么该如何解决这个问题呢?
端口隔离技术概述
采用端口隔离功能,可以实现同一VLAN内端口之间的隔离。用户只需要将端口加入到隔离组中,就可以实现隔离组内端口之间二层数据的隔离。端口隔离功能为用户提供了更安全、更灵活的组网方案。
端口隔离技术原理
端口隔离配置命令
- 使能端口隔离功能
[Huawei-GigabitEthernet0/0/1] port-isolate enable [ group group-id ]
缺省情况下,未使能端口隔离功能。如果不指定group-id参数时,默认加入的端口隔离组为1。 - (可选)配置端口隔离模式
[Huawei] port-isolate mode { 12 | all }
缺省情况下,端口隔离模式为L2,L2端口隔离模式为二层隔离三层互通,all端口隔离模式为二层三层都隔离。 - 配置端口单向隔离
[Huawei-GigabitEthernet0/0/1] am isolate {interface-type interface-number }&<1-8>
am isolate命令用来配置当前接口与指定接口的单向隔离。在接口A上配置与接口B之间单向隔离后,接口A发送的报文
不能到达接口B,但从接口B发送的报文可以到达接口A。缺省情况下,未配置端口单向隔离。
端口隔离配置举例
Switch配置如下:
[Switch] vlan 2
[Switch] port-isolate mode all
[Switch] interface GigabitEthernet 0/0/1
[Switch-GigabitEthernet0/0/1] port link-type access
[Switch-GigabitEthernet0/0/1] port default vlan 2
[Switch-GigabitEthernet0/0/1] port-isolate enable group 2
[Switch] interface GigabitEthernet 0/0/2
[Switch-GigabitEthernet0/0/2] port link-type access
[Switch-GigabitEthernet0/0/2] port default vlan 2
[Switch-GigabitEthernet0/0/2] port-isolate enable group 2
[Switch] interface GigabitEthernet 0/0/3
[Switch-GigabitEthernet0/0/3] port link-type access
[Switch-GigabitEthernet0/0/3] port default vlan 2
端口隔离配置验证
- 通过display port-isolate group group-number查看端口隔离组中的端口。
[SW]display port-isolate group 2
The ports in isolate group 2:
GigabitEthernet0/0/1 GigabitEthernet0/0/2
- 验证同一端口隔离组下主机网络不能互通。
PC1>ping 10.1.1.2
Ping 10.1.1.2: 32 data bytes, Press Ctrl_C to break
From 10.1.1.1: Destination host unreachable
From 10.1.1.1: Destination host unreachable
From 10.1.1.1: Destination host unreachable
From 10.1.1.1: Destination host unreachable
From 10.1.1.1: Destination host unreachable
--- 10.1.1.2 ping statistics ---
5 packet(s) transmitted
0 packet(s) received
100.00% packet loss
MAC地址表安全
MAC地址表项类型
MAC地址表项类型包括:
动态MAC地址表项:由接口通过报文中的源MAC地址学习获得,表项可老化。在系统复位、接口板热插拔或接口板复位后,动态表项会丢失。
静态MAC地址表项:由用户手工配置并下发到各接口板,表项不老化。在系统复位、接口板热插拔或接口板复位后,保存的表项不会丢失。接口和MAC地址静态绑定后,其他接口收到源MAC是该MAC地址的报文将会被丢弃。
黑洞MAC地址表项:由用户手工配置,并下发到各接口板,表项不可老化。配置黑洞MAC地址后,源MAC地址或目的MAC地址是该MAC的报文将会被丢弃。
MAC地址表安全功能
MAC地址表项配置
- 配置静态MAC表项
[Huawei] mac-address static mac-address interface-type interface-number vlan vlan-id
指定的VLAN必须已经创建并且已经加入绑定的端口;指定的MAC地址,必须是单播MAC地址,不能是组播和广播MAC
地址。 - 配置黑洞MAC表项
[Huawei] mac-address blackhole mac-address [ vlan vlan-id ]
当设备收到目的MAC或源MAC地址为黑洞MAC地址的报文,直接丢弃。 - 配置动态MAC表项的老化时间
[Huawei] mac-address aging-time aging-time
禁止MAC地址学习功能
- 关闭基于接口的MAC地址学习功能
[Huawei-GigabitEthernet0/0/1] mac-address learning disable [ action { discard | forward } ]
缺省情况下,接口的MAC地址学习功能是使能的:
关闭MAC地址学习功能的缺省动作为forward,即对报文进行转发。
当配置动作为discard时,会对报文的源MAC地址进行匹配,当接口和MAC地址与MAC地址表项匹配时,则对该报文进行转发。当接口和MAC地址与MAC地址表项不匹配时,则丢弃该报文。 - 关闭基于VLAN的MAC地址学习功能
[Huawei-vlan2] mac-address learning disable
缺省情况下,VLAN的MAC地址学习功能是使能的。
当同时配置基于接口和基于VLAN的禁止MAC地址学习功能时,基于VLAN的优先级要高于基于接口的优先级配置。
限制MAC地址学习数量
- 配置基于接口限制MAC地址学习数
[Huawei-GigabitEthernet0/0/1] mac-limit maximum max-num
缺省情况下,不限制MAC地址学习数。 - 配置当MAC地址数达到限制后,对报文应采取的动作
[Huawei-GigabitEthernet0/0/1] mac-limit action { discard | forward }
缺省情况下,对超过MAC地址学习数限制的报文采取丢弃动作。 - 配置当MAC地址数达到限制后是否进行告警
[Huawei-GigabitEthernet0/0/1] mac-limit alarm { disable | enable }
缺省情况下,对超过MAC地址学习数限制的报文进行告警。 - 配置基于VLAN限制MAC地址学习数
[Huawei-vlan2] mac-limit maximum max-num
缺省情况下,不限制MAC地址学习数。
MAC地址表安全配置举例
Switch3的配置如下:
配置方式一:在接口视图下配置
#在接口GEO/0/1上配置禁止MAC地址学习
[Switch3-GigabitEthernet0/0/1] mac-address learning disable action discard
#在接口GEO/0/2上配置限制MAC地址学习数量,超过阈值策略及告警
[Switch3-GigabitEthernet0/0/2] mac-limit maximum 100
[Switch3-GigabitEthernet0/0/2] mac-limit alarm enable
[Switch3-GigabitEthernet0/0/2] mac-limit action discard
配置方式二:在VLAN视图下配置
#在VLAN 10上配置禁止MAC地址学习
[Switch3-vlan10] mac-address learning disable
#在VLAN 20上配置限制MAC地址学习数量与告警
[Switch3-vlan20] mac-limit maximum 100 alarm enable
配置验证
执行display mac-limit命令,查看MAC地址学习限制规则是否配置成功。
端口安全
端口安全技术背景
企业要求接入层交换机上每个连接终端设备的接口均只允许一台PC接入网络(限制MAC地址接入数量)。如果有员工试图在某个接口下级联一台小交换机或集线器从而扩展上网接口,那么这种行为应该被发现或被禁止,如左图所示。
另一些企业还可能会要求只有MAC地址为可信任的终端发送的数据帧才允许被交换机转发到上层网络,员工不能私自更换位置(变更交换机的接入端口),如右图所示。
通过交换机的端口安全(port security)特性可以解决这些问题。
端口安全概述
通过在交换机的特定接口上部署端口安全,可以限制接口的MAC地址学习数量,并且配置出现越限时的惩罚措施。
端口安全通过将接口学习到的动态MAC地址转换为安全MAC地址(包括安全动态MAC,安全静态MAC和Sticky MAC),阻止非法用户通过本接口和交换机通信,从而增强设备的安全性。
端口安全技术原理
安全MAC地址分为以下类型:
安全MAC地址通常与安全保护动作结合使用,常见的安全保护动作有:
Restrict:丢弃源MAC地址不存在的报文并上报告警。
Protect:只丢弃源MAC地址不存在的报文,不上报告警。
Shutdown:接口状态被置为error-down,并上报告警。
端口安全技术应用
端口安全配置命令
- 使能端口安全功能
[Huawei-GigabitEthernet0/0/1] port-security enable
缺省情况下,未使能端口安全功能。 - 配置端口安全动态MAC学习限制数量
[Huawei-GigabitEthernet0/0/1] port-security max-mac-num max-number
缺省情况下,接口学习的安全MAC地址限制数量为1。 - (可选)手工配置安全静态MAC地址表项
[Huawei-GigabitEthernet0/0/1] port-security mac-address mac-address vlan vlan-id
- (可选)配置端口安全保护动作
[Huawei-GigabitEthernet0/0/1] port-security protect-action { protect | restrict | shutdown }
缺省情况下,端口安全保护动作为restrict。 - (可选)配置接口学习到的安全动态MAC地址的老化时间
[Huawei-GigabitEthernet0/0/1] port-security aging-time time [ type { absolute | inactivity } ]
缺省情况下,接口学习的安全动态MAC地址不老化。 - 使能接口Sticky MAC功能
[Huawei-GigabitEthernet0/0/1] port-security mac-address sticky
缺省情况下,接口未使能Sticky MAC功能。 - 配置接口Sticky MAC学习限制数量
[Huawei-GigabitEthernet0/0/1] port-security max-mac-num max-number
使能接口Sticky MAC功能后,缺省情况下,接口学习的MAC地址限制数量为1。 - (可选)手动配置一条sticky-mac表项
[Huawei-GigabitEthernet0/0/1] port-security mac-address sticky mac-address vlan vlan-id
端口安全配置举例:安全动态MAC
Switch1配置如下:
[Switch1] interface GigabitEthernet 0/0/1
[Switch1-GigabitEthernet 0/0/1] port-security enable
[Switch1-GigabitEthernet 0/0/1] port-security max-mac-num 1
[Switch1-GigabitEthernet 0/0/1] port-security protect-action restrict
[Switch1] interface GigabitEthernet 0/0/2
[Switch1-GigabitEthernet 0/0/2] port-security enable
[Switch1-GigabitEthernet 0/0/2] port-security max-mac-num 1
[Switch1-GigabitEthernet 0/0/2] port-security protect-action restrict
[Switch1] interface GigabitEthernet 0/0/3
[Switch1-GigabitEthernet 0/0/3] port-security enable
[Switch1-GigabitEthernet 0/0/3] port-security max-mac-num 2
[Switch1-GigabitEthernet 0/0/3] port-security protect-action shutdown
配置验证
执行命令display mac-address security,查看动态安全MAC表项。
[Switch1]display mac-address security
MAC address table of slot 0:
----------------------------------------------------------------------------------------------------------------
MAC Address VLAN/ PEVLAN CEVLAN Port Type LSP/LSR-ID
VSI/SI MAC-Tunnel
----------------------------------------------------------------------------------------------------------------
5489-98ac-71a9 1 - - GE0/0/3 security -
5489-98b1-7b30 1 - - GE0/0/1 security -
5489-9815-662b 1 - - GE0/0/2 security -
----------------------------------------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 3
端口安全配置举例:Sticky MAC
配置要求:
在Switch上部署端口安全。将GE0/0/1~GE0/0/3都激活端口安全。
GE0/0/1及GE0/0/2接口都将学习MAC地址的数量限制为1,并将在这两个接口上学习到的动态安全MAC地址转换为Sticky MAC地址。
对于GE0/0/3将学习MAC地址的数量限制为1,但是通过手工的方式为该接口创建一个sticky MAC地址表项,将该接口与MAC地址5489-98ac-71a9绑定。各接口违例惩罚保持缺省。
Switch配置如下:
[Switch] interface GigabitEthernet 0/0/1
[Switch-GigabitEthernet 0/0/1] port-security enable
[Switch-GigabitEthernet 0/0/1] port-security max-mac-num 1
[Switch-GigabitEthernet 0/0/1] port-security mac-address sticky
[Switch] interface GigabitEthernet 0/0/2
[Switch-GigabitEthernet 0/0/2] port-security enable
[Switch-GigabitEthernet 0/0/2] port-security max-mac-num 1
[Switch-GigabitEthernet 0/0/2] port-security mac-address sticky
[Switch] interface GigabitEthernet 0/0/3
[Switch-GigabitEthernet 0/0/3] port-security enable
[Switch-GigabitEthernet 0/0/3] port-security max-mac-num 1
[Switch-GigabitEthernet 0/0/3] port-security mac-address sticky
[Switch-GigabitEthernet 0/0/3] port-security mac-address sticky 5489-
98ac-71a9 vlan 1
配置验证
执行命令display mac-address sticky,查看Sticky MAC表项。
[Switch1]display mac-address sticky
MAC address table of slot 0:
-------------------------------------------------------------------------------------------------------
MAC Address VLAN/ PEVLAN CEVLAN Port Type LSP/LSR-ID
VSI/SI MAC-Tunnel
-------------------------------------------------------------------------------------------------------
5489-98ac-71a9 1 - - GE0/0/3 sticky -
5489-98b1-7b30 1 - - GE0/0/1 sticky -
5489-9815-662b 1 - - GE0/0/2 sticky -
-------------------------------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 3
MAC地址漂移防止与检测
MAC地址漂移概述
MAC地址漂移是指交换机上一个VLAN内有两个端口学习到同一个MAC地址,后学习到的MAC地址表项覆盖原MAC地址表项的现象。
当一个MAC地址在两个端口之间频繁发生迁移时,即会产生MAC地址漂移现象。
正常情况下,网络中不会在短时间内出现大量MAC地址漂移的情况。出现这种现象一般都意味着网络中存在环路,或者存在网络攻击行为。
防止MAC地址漂移
如果是环路引发MAC地址漂移,治本的方法是部署防环技术,例如STP,消除二层环路。如果由于网络攻击等其他原因引起,则可使用如下MAC地址防漂移特性:
MAC地址漂移检测
交换机支持MAC地址漂移检测机制,分为以下两种方式:
基于VLAN的MAC地址漂移检测
配置VLAN的MAC地址漂移检测功能可以检测指定VLAN下的所有的MAC地址是否发生漂移。
当MAC地址发生漂移后,可以配置指定的动作,例如告警、阻断接口或阻断MAC地址。
全局MAC地址漂移检测
该功能可以检测设备上的所有的MAC地址是否发生了漂移。
若发生漂移,设备会上报告警到网管系统。
用户也可以指定发生漂移后的处理动作,例如将接口关闭或退出VLAN。
基于VLAN的MAC地址漂移检测
在配置基于VLAN的MAC地址漂移检测功能后,如果MAC地址发生漂移时,则可根据需求配置接口做出的动作有以下三种:
- 发送告警,当检测到MAC地址发生漂移时只给网管发送告警。
- 接口阻断,当检测到MAC地址发生漂移时,根据设置的阻塞时间对接口进行阻塞,并关闭接口收发报文的能力。
- MAC地址阻断,当检测到MAC地址发生漂移时,只阻塞当前MAC地址,而不对物理接口进行阻塞,当前接口下的其他MAC的通信不受影响。
全局MAC地址漂移检测
当交换机检测到MAC地址漂移,在缺省情况下,它只是简单地上报告警,并不会采取其他动作。在实际网络部署中,可以根据网络需求,对检测到MAC地址漂移之后定义以下动作:
error-down: 当配置了MAC地址漂移检测的端口检测到有MAC地址漂移时,将对应接口状态置为error-down,不再转发数据。
quit-vlan: 当配置了MAC地址漂移检测的端口检测到有MAC地址漂移时,将退出当前接口所属的VLAN。
MAC地址漂移配置命令介绍
- 配置接口学习MAC地址的优先级
[Huawei-GigabitEthernet0/0/1] mac-learning priority priority-id
缺省情况下,接口学习MAC地址的优先级为0,数值越大优先级越高。 - 配置禁止MAC地址漂移时报文的处理动作为丢弃
[Huawei-GigabitEthernet0/0/1] mac-learning priority flapping-defend action discard
缺省情况下,禁止MAC地址漂移时报文的处理动作是转发。 - 配置不允许相同优先级的接口发生MAC地址漂移
[Huawei] undo mac-learning priority priority-id allow-flapping
缺省情况下,允许相同优先级的接口发生MAC地址漂移。 - 配置MAC地址漂移检测功能。
[Huawei-vlan2] mac-address flapping detection
缺省情况下,已经配置了对交换机上所有VLAN进行MAC地址漂移检测的功能。 - (可选)配置MAC地址漂移检测的VLAN白名单
[Huawei] mac-address flapping detection exclude vlan { vlan-id1 [ to vlan-id2 ] } &<1-10>
缺省情况下,没有配置MAC地址漂移检测的VLAN白名单。 - (可选)配置发生漂移后接口的处理动作
[Huawei-GigabitEthernet0/0/1] mac-address flapping action { quit-vlan | error-down }
缺省情况下,没有配置接口MAC地址漂移后的处理动作。 - (可选)配置MAC地址漂移表项的老化时间
[Huawei] mac-address flapping aging-time aging-time
缺省情况下,MAC地址漂移表项的老化时间为300秒。 - 配置MAC地址漂移检测功能
[Huawei-vlan2] loop-detect eth-loop { [ block-mac ] block-time block-time retry-times retry-times | alarm-only }
MAC地址漂移配置举例
实验介绍:
网络基础配置已完成,Switch3与Switch4之间误接网线导致网络出现环路;
在Switch1的接口GE0/0/1上配置MAC地址防漂移功能,防止被非法用户攻击;
在Switch2上配置MAC地址漂移检测功能,判断网络中存在的环路,排除故障。
在Switch1与Server相连的接口GEO/0/1上配置MAC地址
- 学习优先级高于其他接口,此优先级默认值为0。
[Switch1] interface GigabitEthernet 0/0/1
[Switch1-GigabitEthernet 0/0/1] mac-leaning priority 3
- 在Switch2上配置MAC地址漂移检测功能,并配置接口
MAC地址漂移后的处理动作。
[Switch2] mac-address flapping detection
[Switch2] mac-address flapping aging-time 500
[Switch2-GigabitEthernet0/0/1] mac-address flapping action error-down
[Switch2-GigabitEthernet0/0/2] mac-address flapping action error-down
[Switch2] error-down auto-recovery cause mac-address-flapping interval 500
配置验证
配置完成后,当Switch2的接口GE0/0/1的MAC地址漂移到接口GE0/0/2后,接口GE0/0/2关闭;使用display mac-address flapping record可查看到漂移记录。
[Switch2] display mac-address flapping record
S : start time
E : end time
(Q) : quit vlan
(D) : error down
---------------------------------------------------------------------------------------------------
Move-Time VLAN MAC-Address Original-Port Move-Ports MoveNum
---------------------------------------------------------------------------------------------------
S:2020-06-22 17:22:36 1 5489-9815-662b GE0/0/1 GE0/0/2(D) 83
E:2020-06-22 17:22:44
---------------------------------------------------------------------------------------------------
Total items on slot 0: 1
MACsec,提供二层数据安全传输
MACsec工作机制
在设备运行点到点MACsec时,网络管理员在两台设备上通过命令行预配置相同的CAK,两台设备会通过MKA协议选举出一个KeyServer,Key Server决定加密方案,Key Server会根据CAK等参数使用某种加密算法生成SAK数据密钥,由Key Server将SAK分发给对端设备,这样两台设备拥有相同的SAK数据密钥,可以进行后续MACsec数据报文加解密收发。
CAK(Secure Connectivity Association Key,安全连接关联密钥)不直接用于数据报文的加密,由它和其他参数派生出数据报文的加密密钥。
MKA(MACsec Key Agreement protocol)用于MACsec 数据加密密钥的协商协议。
SAK(Secure Association Key,安全关联密钥)由CAK根据算法推导产生,用于加密安全通道间传输的数据。
Key Server决定加密方案和进行密钥分发的MKA实体。
MACsec
MACsec使用指南
MACsec功能需要安装特定插件
具体配置方法可参考华为官网的MACsec使用指南。
交换机流量控制
流量抑制
流量抑制概述
网络中存在的问题:
正常情况下,当设备某个二层以太接口收到广播、未知组播或未知单播报文时,会向同一VLAN内的其他二层以太接口转发这些报文,从而导致流量泛洪,降低设备转发性能。
当设备某个以太接口收到已知组播或已知单播报文时,如果某种报文流量过大则可能会对设备造成冲击,影响其他业务的正常处理。
可用的解决方案:
流量抑制可以通过配置阈值来限制广播、未知组播、未知单播、已知组播和已知单播报文的速率,防止广播、未知组播报文和未知单播报文产生流量泛洪,阻止已知组播报文和已知单播报文的大流量冲击。
流量抑制工作原理
在接口入方向上,设备支持对广播、未知组播、未知单播、已知组播和已知单播报文按百分比、包速率和比特速率进行流量抑制。设备监控接口下的各类报文速率并和配置的阈值相比较,当入口流量超过配置的阈值时,设备会丢弃超额的流量。
在VLAN视图下,设备支持对广播报文按比特速率进行流量抑制。设备监控同一VLAN内广播报文的速率并和配置的阈值相比较,当VLAN内流量超过配置的阈值时,设备会丢弃超额的流量。
流量抑制的应用
流量抑制通过对不同类型的报文采取不同的限制措施,达到限制报文发送速率的目的。具体实施可分为以下三种情况:
在交换机接口的入方向,例如下图中SW1的GE0/0/1入方向,通过流量抑制功能可以限制任意报文的发送速率。
在交换机接口出方向,例如下图中SW1的GE0/0/1出方向,通过流量抑制功能可以阻塞广播,未知组播和未知单播报文。
在交换机的VLAN视图下,通过配置VLAN内流量抑制限制VLAN内广播报文。
流量抑制配置命令介绍
1.(可选)配置流量抑制模式
[Huawei] suppression mode { by-packets | by-bits }
缺省情况下,缺省的抑制模式为packets,在bits模式下,流量抑制的粒度更小、抑制更精确。
2. 配置流量抑制
[Huawei-GigabitEthernet0/0/1] { broadcast-suppression | multicast-suppression | unicast-suppression} { percent-value | cir
cir-value [ cbs cbs-value ] | packets packets-per-second }
接口下配置流量抑制时,抑制模式需与全局的流量抑制模式保持一致。
3. 配置在接口出方向上阻塞报文
[Huawei-GigabitEthernet0/0/1] { broadcast-suppression | multicast-suppression | unicast-suppression } block outbound
4. 配置VLAN的广播抑制速率
[Huawei-vlan2] broadcast-suppression threshold-value
流量抑制配置举例
配置要求:
在GE0/0/1接口视图下配置流量抑制功能,限制二层网络转发的广播、未知组播和未知单播报文的能力。
配置广播流量抑制,按百分比抑制,百分比值为60%。
配置未知组播流量抑制,按百分比抑制,百分比值为70%。
配置未知单播流量抑制,按百分比抑制,百分比值为80%。
Switch配置如下:
[Switch] suppression mode by-packets
[Switch] interface GigabitEthernet 0/0/1
[Switch-GigabitEthernet0/0/1] unicast-suppression 80
[Switch-GigabitEthernet0/0/1] multicast-suppression 70
[Switch-GigabitEthernet0/0/1] broadcast-suppression 60
配置验证
使用命令display flow-suppression interface 查看流量抑制配置信息。
[Switch]dis flow-suppression interface GigabitEthernet 0/0/1
storm type rate mode set rate value
-------------------------------------------------------------------------------
unknown-unicast percent percent: 80%
multicast percent percent: 70%
broadcast percent percent: 60%
-------------------------------------------------------------------------------
风暴控制
风暴控制概述
网络中存在的问题:
正常情况下,当设备某个二层以太接口收到广播、未知组播或未知单播报文时,会向同一VLAN内的其他二层以太接口转发这些报文,如果网络存在环路,则会导致广播风暴,严重降低设备转发性能。
可用的解决方案:
风暴控制可以通过阻塞报文或关闭端口来阻断广播、未知组播和未知单播报文的流量。
风暴控制工作原理
风暴控制可以用来防止广播、未知组播以及未知单播报文产生广播风暴。在风暴控制检测时间间隔内,设备监控接口下接收的三类报文的包平均速率与配置的最大阈值相比较。当报文速率大于配置的最大阈值时,风暴控制将根据配置的动作来对接口进行阻塞报文或关闭接口的处理。
流量抑制与风暴控制的主要区别是:风暴控制功能可以对端口下发惩罚动作(block和shutdown),而流量抑制功能只是对端口流量进行限制。
风暴控制的应用
风暴控制与流量抑制相比的优势是可以同时监控接口下的广播报文、未知组播报文和未知单播报文各自的包平均速率,并根据阈值对接口采取阻塞相关报文或者关闭物理接口的惩罚动作。
本例中,Switch作为二层网络到路由器的衔接点,当需要限制二层网络转发过来的用户广播、未知组播和未知单播报文时,可以通过在Switch的GE0/0/1上配置风暴控制功能来实现。
风暴控制配置命令介绍
- 配置接口对报文的风暴控制
[Huawei-GigabitEthernet0/0/1] storm-control { broadcast | multicast | unicast } min-rate min-rate-value max-rate max-rate-value
对接口上的广播、未知组播或未知单播报文进行风暴控制。 - 配置风暴控制的动作
[Huawei-GigabitEthernet0/0/1] storm-control action { block | error-down }
- 配置风暴控制的检测时间间隔
[Huawei-GigabitEthernet0/0/1] storm-control interval interval-value - 配置使能接口状态自动恢复
[Huawei-GigabitEthernet0/0/1] error-down auto-recovery cause storm-control interval interval-value
使能接口状态自动恢复为Up的功能,并设置接口自动恢复为Up的延时时间。 - (可选)配置流量抑制及风暴控制白名单
[Huawei] storm-control whitelist protocol { arp-request | bpdu | dhcp | igmp | ospf }*
风暴控制配置举例
配置需求
在交换机Switch上需要配置防止二层网络转发的广播、未知组播和未知单播报文产生的广播风暴。
配置思路:
通过在接口GE0/0/1上配置风暴控制限制二层网络的广播风暴的产生。
Switch配置如下:
[Switch] storm-control whitelist protocol arp-request
[Switch] interface gigabitethernet0/0/1
[Switch-GigabitEthernet0/0/1] storm-control broadcast min-rate 1000 maxrate 2000
[Switch-GigabitEthernet0/0/1] storm-control multicast min-rate 1000 maxrate 2000
[Switch-GigabitEthernet0/0/1] storm-control unicast min-rate 1000 maxrate 2000
[Switch-GigabitEthernet0/0/1] storm-control interval 90
[Switch-GigabitEthernet0/0/1] storm-control action block
[Switch-GigabitEthernet0/0/1] storm-control enable trap
#使能风暴控制上报告警
配置验证
执行命令display storm-control interface查看GE0/0/1接口下的风暴控制配置情况。
[Switch]display storm-control interface GigabitEthernet 0/0/1
PortName Type Rate Mode Action Punish- Trap Log Int Last-
(Min/Max) Status Punish-Time
----------------------------------------------------------------------------------------------------------
GE0/0/1 Multicast 1000 Pps Block Normal On Off 90
/2000
GE0/0/1 Broadcast 1000 Pps Block Normal On Off 90
/2000
GE0/0/1 Unicast 1000 Pps Block Normal On Off 90
DHCP Snooping
DHCP工作原理概述
DHCP Snooping概述
为了保证网络通信业务的安全性,引入了DHCP Snooping技术,在DHCP Client和DHCP Server之间建立一道防火墙,以抵御网络中针对DHCP的各种攻击。
DHCP Snooping是DHCP的一种安全特性,用于保证DHCP客户端从合法的DHCP服务器获取IP地址。DHCP 服务器记录DHCP客户端IP地址与MAC地址等参数的对应关系,防止网络上针对DHCP攻击。
目前DHCP协议在应用的过程中遇到很多安全方面的问题,网络中存在一些针对DHCP的攻击,如DHCPServer仿冒者攻击、DHCP Server的拒绝服务攻击、仿冒DHCP报文攻击等。
DHCP Snooping主要是通过DHCP Snooping信任功能和DHCP Snooping绑定表实现DHCP网络安全
DHCP Snooping信任功能
DHCP Snooping的信任功能,能够保证DHCP客户端从合法的DHCP服务器获取IP地址。
DHCP Snooping信任功能将接口分为信任接口和非信任接口:
信任接口正常接收DHCP服务器响应的DHCP ACK、DHCP NAK和DHCP Offer报文。
设备只将DHCP客户端的DHCP请求报文通过信任接口发送给合法的DHCP服务器,不会向非信任接口转发。
非信任接口收到的DHCP Server发送的DHCP OFFER、DHCP ACK、DHCP NAK报文会被直接丢弃。
DHCP Snooping绑定表
二层接入设备使能了DHCP Snooping功能后,从收到DHCP ACK报文中提取关键信息(包括PC的MAC地址以及获取到的IP地址、地址租期),并获取与PC连接的使能了DHCP Snooping功能的接口信息(包括接口编号及该接口所属的VLAN),根据这些信息生成DHCP Snooping绑定表。
由于DHCP Snooping绑定表记录了DHCP客户端IP地址与MAC地址等参数的对应关系,故通过对报文与DHCPSnooping绑定表进行匹配检查,能够有效防范非法用户的攻击。
DHCP饿死攻击
攻击原理:攻击者持续大量地向DHCP Server申请IP地址,直到耗尽DHCP Server地址池中的IP地址,导致DHCPServer不能给正常的用户进行分配。
漏洞分析:DHCP Server向申请者分配IP地址时,无法区分正常的申请者与恶意的申请者。
DHCP Snooping防饿死攻击
解决方法:对于饿死攻击,可以通过DHCP Snooping的MAC地址限制功能来防
改变CHADDR值的DoS攻击
DHCP消息中有一个名叫CHADDR(Client Hardware Address)的字段,该字段是由DHCP客户端填写的,表示的是客户端的硬件地址(也就是客户端的MAC地址)。DHCP Server是针对CHADDR来分配IP地址的,对于不同的CHADDR,DHCP Server会分配不同的IP地址;DHCP Server无法区分什么样的CHADDR是合法的,什么样的CHADDR是非法的。利用这个漏洞,攻击者每申请一个IP地址时,就在DHCP消息的CHADDR字段中填写一个不同的值,以此来冒充是不同的用户在申请IP地址。
漏洞分析:DHCP Server向申请者分配IP地址时,无法区分正常的申请者与恶意的申请者。
DHCP Snooping防改变
CHADDR值的DoS攻击
解决方法:为了避免受到攻击者改变CHADDR值的攻击,可以在设备上配置DHCP Snooping功能,检查DHCPRequest报文中CHADDR字段。如果该字段跟数据帧头部的源MAC相匹配,转发报文;否则,丢弃报文。从而保证合法用户可以正常使用网络服务。
DHCP中间人攻击
攻击原理:攻击者利用ARP机制,让Client学习到DHCP Server IP与Attacker MAC的映射关系,又让Server学习到Client IP与Attacker Mac的映射关系。如此一来,Client与Server之间交互的IP报文都会经过攻击者中转。
漏洞分析:从本质上讲,中间人攻击是一种Spoofing IP/MAC攻击,中间人利用了虚假的IP地址与MAC地址之间的映射关系来同时欺骗DHCP的客户端和服务器。
DHCP Snooping防DHCP中间人攻击
解决方法:为防御中间人攻击与IP/MAC Spoofing攻击,可使用DHCP Snooping的绑定表工作模式,当接口接收到ARP或者IP报文,使用ARP或者IP报文中的“源IP+源MAC”匹配DHCP Snooping绑定表。如果匹配就进行转发,如果不匹配就丢弃。
DHCP Snooping配置命令介绍
- 全局使能DHCP Snooping功能
[Huawei] dhcp snooping enable [ ipv4 | ipv6 ]
- VLAN视图下使能DHCP Snooping功能
[Huawei-vlan2] dhcp snooping enable
在VLAN视图下执行此命令,则对设备所有接口接收到的属于该VLAN的DHCP报文命令功能生效。 - VLAN视图下配置接口为“信任”状态
[Huawei-vlan2] dhcp snooping trusted interface interface-type interface-number
在VLAN视图下执行此命令,则命令功能仅对加入该VLAN的接口收到的属于此VLAN的DHCP报文生效。 - 接口视图下使能DHCP Snooping功能
[Huawei-GigabitEthernet0/0/1] dhcp snooping enable
- 接口视图下配置接口为“信任”状态
[Huawei-GigabitEthernet0/0/1] dhcp snooping trusted
缺省情况下,设备接口为非信任状态。 - (可选)配置丢弃GIADDR字段非零的DHCP报文
[Huawei] dhcp snooping check dhcp-giaddr enable vlan { vlan-id1 [ to vlan-id2 ] }
使能检测DHCP Request报文中GIADDR字段是否非零的功能。此命令同时可以在VLAN视图或接口视图下进行配置。
在VLAN视图下执行此命令,则对设备所有接口接收到的属于该VLAN的DHCP报文命令功能生效;在接口下执行该命令,
则对该接口下的所有DHCP报文命令功能生效。
DHCP Snooping配置举例
如图所示,DHCP和VLAN基础配置已完成,在Switch配置DHCP Snooping功能。
配置方式一:接口视图
[Switch] dhcp snooping enable ipv4
[Switch] interface GigabitEthernet 0/0/1
[Switch-GigabitEthernet0/0/1] dhcp snooping enable
[Switch] interface GigabitEthernet 0/0/2
[Switch-GigabitEthernet0/0/2] dhcp snooping enable
[Switch] interface GigabitEthernet 0/0/3
[Switch-GigabitEthernet0/0/3] dhcp snooping enable
[Switch-GigabitEthernet0/0/3] dhcp snooping trusted
配置方式二:VLAN视图
[Switch] dhcp snooping enable ipv4
[Switch] vlan 2
[Switch-vlan2] dhcp snooping enable
[Switch] interface GigabitEthernet 0/0/3
[Switch-GigabitEthernet0/0/3] dhcp snooping trusted
配置验证
执行命令display dhcp snooping interface,查看接口下的DHCP Snooping运行信息。
[Switch]display dhcp snooping interface GigabitEthernet 0/0/3
DHCP snooping running information for interface GigabitEthernet0/0/3 :
DHCP snooping : Enable
Trusted interface : Yes
Dhcp user max number : 1024 (default)
Current dhcp user number : 0
Check dhcp-giaddr : Disable (default)
Check dhcp-chaddr : Disable (default)
Alarm dhcp-chaddr : Disable (default)
Check dhcp-request : Disable (default)
Alarm dhcp-request : Disable (default)
----- more ------
IP Source Guard
IPSG技术概述
IP地址欺骗攻击中,攻击者通过伪造合法用户的IP地址获取网络访问权限,非法访问网络,甚至造成合法用户无法访问网络,或者信息泄露。IPSG针对IP地址欺骗攻击提供了一种防御机制,可以有效阻止此类网络攻击行为。
IP源防攻击(IPSG,IP Source Guard)是一种基于二层接口的源IP地址过滤技术。它能够防止恶意主机伪造合法主机的IP地址来仿冒合法主机,还能确保非授权主机不能通过自己指定IP地址的方式来访问网络或攻击网络。
IPSG工作原理
IPSG利用绑定表(源IP地址、源MAC地址、所属VLAN、入接口的绑定关系)去匹配检查二层接口上收到的IP报文,只有匹配绑定表的报文才允许通过,其他报文将被丢弃。常见的绑定表有静态绑定表和DHCP Snooping动态绑定表。
IPSG应用场景
通过IPSG防止PC私自更改IP地址。
PC只能使用DHCP Server分配的IP地址或者管理员配置的静态地址,随意更改IP地址后无法访问网络,防止PC非法取得上网权限。
小型网络IP地址是静态分配时,通过IPSG限制非法PC接入。
外来人员自带电脑不能随意接入内网,防止内网资源泄露。
IPSG配置命令介绍
- 配置静态用户绑定表项
[Huawei] user-bind static { { { ip-address | ipv6-address } { start-ip [ to end-ip ] } &<1-10> | ipv6-prefix prefix/prefix-length } |mac-address mac-address } * [ interface interface-type interface-number ] [ vlan vlan-id [ ce-vlan ce-vlan-id ] ]
IPSG按照静态绑定表项进行完全匹配。 - 使能IPSG功能
[Huawei-GigabitEthernet0/0/1] ip source check user-bind enable
使能接口或者VLAN的IP报文检查功能,VLAN视图配置与接口视图一致。 - 使能IP报文检查告警功能
[Huawei-GigabitEthernet0/0/1] ip source check user-bind alarm enable
- 配置IP报文检查告警阈值
[Huawei-GigabitEthernet0/0/1] ip source check user-bind alarm threshold threshold
配置了IP报文检查告警功能后,当丢弃的IP报文超过告警阈值时,会产生告警提醒用户。
IPSG配置举例
如图所示:网络终端设备通过手工方式配置静态IP地址统一管理,通过在接入交换机上配置IPSG,防止主机私自更改IP地址非法获取访问网络权限。
配置静态绑定表
使能IPSG及告警上报功能
Switch1配置如下:
#在接入交换机上配置静态绑定表
[Switch1] user-bind static ip-address 10.1.1.1 mac-address 5489-98C2-1486
[Switch1] user-bind static ip-address 10.1.1.10 mac-address 5489-98AB-22A7
#使能GE0/0/1接口IPSG和IP报文检查告警功能
[Switch1] interface GigabitEthernet 0/0/1
[Switch1-GigabitEthernet0/0/1] ip source check user-bind enable
[Switch1-GigabitEthernet0/0/1] ip source check user-bind alarm enable
[Switch1-GigabitEthernet0/0/1] ip source check user-bind alarm threshold 100
#接口GE0/0/2配置与GE0/0/1类似,此处省略
配置验证
在Switch1上执行display dhcp static user-bind all命令,可以查看静态绑定表信息。
PC1和PC2使用管理员分配的固定IP地址可以正常访问网络,更改IP地址后无法访问网络。
[Switch1] display dhcp static user-bind all
DHCP static Bind-table:
Flags:O - outer vlan ,I - inner vlan ,P - Vlan-mapping
IP Address MAC Address VSI/VLAN(O/I/P) Interface
-------------------------------------------------------------------------------------------------
10.1.1.1 5489-98C2-1486 -- /-- /-- --
10.1.1.10 5489-98AB-22A7 -- /-- /-- --
-------------------------------------------------------------------------------------------------
Print count: 2 Total count: 2
端口隔离实现同一VLAN内端口之间的隔离。端口隔离模式分别为二层隔离三层互通、二层三层都隔离。
交换机MAC地址表可以分为静态MAC地址表、黑洞MAC地址表、动态MAC地址表。
端口安全通过将接口学习到的动态MAC地址转换为安全MAC地址,安全MAC地址通常与安全保护动作结合使用。
交换机开启MAC地址漂移检测有助于工程师快速处理交换机环路故障。
MACsec定义了基于以太网的数据安全通信的方法,通过逐跳设备之间数据加密,保证数据传输安全性。
流量抑制与风暴控制主要区别在于流量控制仅仅是对各种报文进行限速处理,超过阈值之后就丢弃,而风暴控制能够根据报文速率的大小采取不同的惩罚动作,包括关闭端口或者阻塞报文。
DHCP Snooping技术对于防御以太网中关于终端设备自动获取IP的网络攻击有很大的作用,通过配置DHCP Snooping信任端口功能和DHCP Snooping绑定表,可以很好的防范针对DHCP的网络攻击。
IPSG通过查看交换机绑定表,阻止IP地址欺骗攻击,杜绝非法用户盗用合法IP地址对网络发起攻击