以太交换网络中为了实现报文之间的二层隔离,用户通常将*不同的端口*加入*不同的VLAN*,实现二层广播域的隔离。
只通过VLAN实现报文二层隔离,会浪费有限的VLAN资源,同时也只能实现基础的隔离操作。
如下图所示,由于某种业务需求,要求VLAN内主机不可互访 ,但允许三层互通,即PC3可以访问VLAN 3里的主机。
由于PC1~PC3之间都处于一个VLAN中,并不能通过继续划分VLAN的方式进行隔离VLAN内主机互访。
为此就需要通过“端口隔离”技术,实现这种需求。
用户只需要将端口加入到隔离组中,就可以实现隔离组内端口之间二层数据的隔离。
默认情况下,隔离组中的接口互相二层隔离,即组中接口A发送的广播报文不会转发到组中接口B。
能够三层互通的原因是,接口与网关并未做隔离。故网关作为中介实现了隔离组中的接口用户三层互通。
需求:
配置思路:
LSW1
[SW1]port-isolate mode l2
[SW1]int g0/0/1
[SW1-GigabitEthernet0/0/1]port-isolate enable group 1
[SW1-GigabitEthernet0/0/1]int g0/0/2
[SW1-GigabitEthernet0/0/2]port-isolate enable group 1
display port-isolate group 1
The ports in isolate group 1:
GigabitEthernet0/0/1 GigabitEthernet0/0/2
需求:
配置思路:
[SW1]int g0/0/2
[SW1-GigabitEthernet0/0/2]am isolate g0/0/3
端口安全(Port Security)通过将接口学习到的动态MAC地址转换为安全MAC地址(包括安全动态MAC和Sticky MAC),阻止除安全MAC和静态MAC之外的主机通过本接口和设备通信,从而增强设备的安全性。
通过端口安全技术可以实现:接入层交换机上每个连接终端设备的接口均只允许一台PC接入网络(限制MAC地址接入数量),如果有员工试图在某个接口下级联一台小交换机或集线器从而扩展上网接口,那么这种行为应该被端口安全感知,并做出相应的“惩罚”。
端口案例实现只有安全MAC地址的主机才能进行通信,非安全MAC地址无法通信。
而安全MAC地址分为:安全动态MAC地址、安全静态MAC、Sticky MAC地址。
安全动态MAC地址的老化类型分为:绝对时间老化和相对时间老化:
如设置绝对老化时间为5分钟:系统每隔1分钟计算一次每个MAC的存活时间,若大于等于5分钟,则立即将该安全动态MAC地址老化。否则,等待下1分钟再检测计算。
如设置相对老化时间为5分钟:系统每隔1分钟检测一次是否有该MAC的流量。若没有流量,则经过5分钟后将该安全动态MAC地址老化。
绝对时间:不考虑MAC是否正在转发流量,只要MAC地址存在时间≥5分钟,则直接老化。
相对老化时间:只要在5分钟内该MAC地址存活时间有更新,将不会老化。
关于端口安全的惩罚机制: Restrict丢弃、Protect保护、Shutdown关闭。
默认情况下,接口关闭(error-down)后不会自动恢复,只能由网络管理人员重启接口。
如果用户希望被关闭的接口可以自动恢复,则可在系统视图下执行:
error-down auto-recovery cause port-security interval 恢复时间(秒)
使能接口状态自动恢复为Up的功能,并设置接口自动恢复为Up的延时时间,使被关闭的接口经过延时时间后能够自动恢复。
需求:
Switch1
ENSP中并没有error-down auto-recovery cause port-security选项命令(但真机存在)
[SW1]int g0/0/1
[SW1-GigabitEthernet0/0/1]port-security enable
[SW1-GigabitEthernet0/0/1]port-security protect-action shutdown
[SW1-GigabitEthernet0/0/1]port-security aging-time 5 type absolute
[SW1-GigabitEthernet0/0/1]quit
[SW1]error-down auto-recovery cause port-security interval 1800
display mac-address
MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address VLAN/ PEVLAN CEVLAN Port Type LSP/LSR-ID
VSI/SI MAC-Tunnel
-------------------------------------------------------------------------------
5489-980c-7106 1 - - GE0/0/2 security -
5489-9859-4884 1 - - GE0/0/1 security -
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 2
#这是普通交换机的Switch2学习到的MAC地址
dis mac-address
MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address VLAN/ PEVLAN CEVLAN Port Type LSP/LSR-ID
VSI/SI MAC-Tunnel
-------------------------------------------------------------------------------
5489-9859-4884 1 - - GE0/0/1 dynamic 0/-
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 1
dis interface g0/0/3
GigabitEthernet0/0/3 current state : Administratively DOWN
Line protocol current state : DOWN
[SW1-GigabitEthernet0/0/3]shutdown
[SW1-GigabitEthernet0/0/3]undo shutdown
需求:
Switch1
port-security mac-address 无法在ENSP中输入,但真机可以。
[SW1]int g0/0/3
[SW1-GigabitEthernet0/0/3]port-security enable
[SW1-GigabitEthernet0/0/3]port-security max-mac-num 1
[SW1-GigabitEthernet0/0/3]port-security mac-address 5489-9817-4AFF vlan 1
需求:
Switch1
[SW1]int g0/0/3
[SW1-GigabitEthernet0/0/3]port-security enable
[SW1-GigabitEthernet0/0/3]port-security max-mac-num 1
[SW1-GigabitEthernet0/0/3]port-security mac-address sticky
[SW1-GigabitEthernet0/0/3]port-security mac-address sticky 5489-987B-35FA vlan 1
如果遇到这种报错:
Error: Security MAC number or Sticky MAC number reach the upper limit.
说明原接口已经学习到某个MAC地址,当敲下port-security mac-address sticky之后,会自动将该MAC地址转换为Sticky MAC地址。
故需要先取消Sticky命令再重新输入。
[SW1-GigabitEthernet0/0/3]undo port-security mac-address sticky
[SW1-GigabitEthernet0/0/3]port-security mac-address sticky
[SW1-GigabitEthernet0/0/3]port-security mac-address sticky 5489-987B-35FA vlan 1
display mac-address
MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address VLAN/ PEVLAN CEVLAN Port Type LSP/LSR-ID
VSI/SI MAC-Tunnel
-------------------------------------------------------------------------------
5489-980c-7106 1 - - GE0/0/2 security -
5489-9859-4884 1 - - GE0/0/1 sticky -
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 2
MAC地址作为交换机中重要的数据转发中枢,许多攻击均可通过对MAC地址表进行恶意更改来让网络瘫痪。
为了对MAC地址表项进行保护,需要先了解下MAC地址表项的类型:
为了防止恶意用户对交换设备MAC地址表项进行修改,通过设置以下五种限制来实现有效的保护。
实验拓扑:
[LSW1]mac-address static 5489-9859-4884 g0/0/1 vlan 1
[LSW1]dis mac-address
MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address VLAN/ PEVLAN CEVLAN Port Type LSP/LSR-ID
VSI/SI MAC-Tunnel
-------------------------------------------------------------------------------
5489-9859-4884 1 - - GE0/0/1 static -
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 1
[LSW1]mac-address blackhole 5489-987B-35FA vlan 1
[LSW1]dis mac-address
MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address VLAN/ PEVLAN CEVLAN Port Type LSP/LSR-ID
VSI/SI MAC-Tunnel
-------------------------------------------------------------------------------
5489-987b-35fa 1 - - - blackhole -
5489-9859-4884 1 - - GE0/0/1 static -
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 2
动态MAC地址表项:(全局)设置动态MAC地址老化时间为10秒。
[LSW1]mac-address aging-time 10
[LSW1]dis mac-address aging-time
Aging time: 10 seconds
禁止MAC地址学习功能:
[LSW1]int g0/0/2
[LSW1-GigabitEthernet0/0/2]mac-address learning disable
[LSW1]mac-address static 5489-980C-7106 g0/0/2 vlan 1
关闭基于VLAN的MAC地址学习功能(该VLAN下所有接口将无法学习新的MAC地址)
[LSW1]vlan 2
[LSW1-vlan2]mac-address learning disable
关于MAC地址学习的动作
1、关闭MAC地址学习功能的缺省动作为forward,不管咋样都对发来的报文进行转发,但不记录报文的源MAC地址。
2、当配置动作为discard时,会对报文的源MAC地址进行匹配,当报文的源MAC地址与MAC地址表项匹配时,则对该报文进行转发。当报文的源MAC地址与MAC地址表项不匹配时,则丢弃该报文。[LSW1-GigabitEthernet0/0/2]
mac-address learning disable action discard
[LSW1-GigabitEthernet0/0/2]
mac-address learning disable action forward
限制MAC地址学习数量(可使用端口安全,也能使用mac-limit)
mac-limit maximum 1
,设置接口最多学习到1个MAC地址。[LSW1-GigabitEthernet0/0/3]mac-limit maximum 1
mac-limit action discard|forward
,可以设置违规动作。[LSW1-GigabitEthernet0/0/3]mac-limit action discard
mac-limit alarm enable
,开启违规告警。[LSW1-GigabitEthernet0/0/3]mac-limit alarm enable
[LSW1]dis mac-limit
MAC Limit is enabled
Total MAC Limit rule count : 1
PORT VLAN/VSI/SI SLOT Maximum Rate(ms) Action Alarm
----------------------------------------------------------------------------
GE0/0/3 - - 1 - forward enable
当一个MAC地址在两个端口之间频繁发生迁移时,即会产生MAC地址漂移现象。
正常情况下,网络中不会在短时间内出现大量MAC地址漂移的情况。出现这种现象一般都意味着网络中存在环路,或者存在网络攻击行为。
如果是环路引发MAC地址漂移,治本的方法是部署防环技术,例如STP,消除二层环路。
如果由于网络攻击等其他原因引起,则可使用如下:
MAC地址学习优先级
默认所有接口的优先级为0,数值越大越优先。
高优先可以漂移到低优先接口上,反之不可以。
# 设置接口MAC地址学习优先级为100
[Huawei-GigabitEthernet0/0/1] mac-learning priority 100
不允许相同的MAC地址学习优先级接口进行漂移
# 默认情况下全局开启了相同接口优先级可以飘移
[Huawei] mac-learning priority 0 allow-flapping
# 全局关闭相同优先级接口发生漂移
[Huawei] undo mac-learning priority 0 allow-flapping
(该时长使用block-time关键字指定)
,接口被阻塞时无法正常收发数据。(该次数使用retry-times关键字指定)
,如果交换机依然能检测到该接口发生MAC地址漂移,则永久阻塞该接口。 缺省情况下,已经配置了对交换机上所有VLAN进行MAC地址漂移检测的功能。
在VLAN10上配置MAC地址漂移检测,动作为阻塞。阻塞时间为10s,重试次数为3次。
目前ENSP模拟器未支持该命令
[HUAWEI] vlan 10
[HUAWEI-vlan10] loop-detect eth-loop block-time 10 retry-times 3
[LSW1]mac-address flapping detection
[LSW1]mac-address flapping detection exclude vlan 1
[LSW1]mac-address flapping action quit-vlan
[LSW1]mac-address flapping action error-down
[LSW1]error-down auto-recovery cause mac-address-flapping interval 500
[LSW1]mac-address flapping aging-time 300
[LSW3]dis 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:2024-01-09 15:19:25 1 5489-98d5-14ea GE0/0/2 GE0/0/1 7
E:2024-01-09 15:21:31
-------------------------------------------------------------------------------
Total items on slot 0: 1
流量抑制和风暴控制是两种用于控制**广播**、**未知组播**以及**未知单播报文**,防止这三类报文引起广播风暴的安全技术。
流量抑制主要通过配置阈值来限制流量,而风暴控制则主要通过关闭端口来阻断流量。
当设备某个二层以太接口收到广播、未知组播或未知单播报文时,如果根据报文的目的MAC地址设备不能明确报文的出接口,设备会向同一VLAN内的其他二层以太接口转发这些报文,这样可能导致广播风暴,降低设备转发性能,引入流量抑制和风暴控制特性,可以控制这三类报文流量,防范广播风暴。
流量抑制特性按以下三种形式来限制广播、未知组播以及未知单播报文产生的广播风暴。
# 配置流量抑制模式
# 缺省的抑制模式为packets,在bits模式下,流量抑制的粒度更小、抑制更精确。
[Switch] suppression mode by-packets
[Switch] suppression mode by-bits
[Switch] interface GigabitEthernet 0/0/1
# 配置【未知单播】流量抑制,按百分比抑制,百分比值为80%
[Switch-GigabitEthernet0/0/1] unicast-suppression 80
# 配置【未知组播】流量抑制,按百分比抑制,百分比值为70%
[Switch-GigabitEthernet0/0/1] multicast-suppression 70
# 配置【广播】流量抑制,按百分比抑制,百分比值为60%
[Switch-GigabitEthernet0/0/1] broadcast-suppression 60
# 配置流量抑制及风暴控制白名单
[Switch] storm-control whitelist protocol arp-request 【协议】
协议:arp-request | bpdu | dhcp | igmp | ospf
# 三种类型报文的风暴速率控制
[Switch] interface gigabitethernet0/0/1
[Switch-GigabitEthernet0/0/1] storm-control broadcast min-rate 1000 max-rate 2000
[Switch-GigabitEthernet0/0/1] storm-control multicast min-rate 1000 max-rate 2000
[Switch-GigabitEthernet0/0/1] storm-control unicast min-rate 1000 max-rate 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
DHCP Snooping的信任功能,能够保证DHCP客户端从合法的DHCP服务器获取IP地址。
# 全局开启DHCP Snooping功能
[HUAWEI] dhcp snooping enable
# 接口/VLAN 视图下开启Snooping功能
[HUAWEI] int g0/0/1
[HUAWEI-GigabitEthernet0/0/1] dhcp snooping enable
[HUAWEI] vlan 2
[HUAWEI-vlan2] dhcp snooping enable
# 仅对某个接口设置为信任接口(缺省情况下,设备接口为非信任状态)。
[HUAWEI]int g0/0/1
[HUAWEI-GigabitEthernet0/0/1] dhcp snooping trusted
# 仅对VLAN中某个接口设置为信任接口
[HUAWEI] vlan 2
[HUAWEI-vlan2] dhcp snooping trusted interface g0/0/2
# 对VLAN2的DHCP客户端进行参数匹配
[Huawei] dhcp snooping check dhcp-request enable vlan 2
对于饿死攻击,可以通过DHCP Snooping的MAC地址限制功能来防止。
但高级一点的攻击者,可能会设置报文中的MAC地址不变,只改变CHADDR字段从而继续进行DHCP饿死攻击。
为此,单纯的限制MAC地址数量并不能根本解决问题。
需要配置DHCP Snooping功能,检查DHCP Request报文中CHADDR字段,如果该字段跟数据帧头部的源MAC相匹配,转发报文;否则,丢弃报文。
注解:CHADDR(客户端硬件地址)字段是指客户端设备的物理地址,通常与源MAC地址相对应。
# 开启检查DHCP Request中的CHADDR与SMAC信息匹配
[HUAWEI] dhcp snooping check dhcp-chaddr enable vlan
# 设置接口最多绑定1个DHCP客户端
[HUAWEI] dhcp snooping enable
[HUAWEI] interface gigabitethernet 0/0/1
[HUAWEI-GigabitEthernet0/0/1] dhcp snooping enable
[HUAWEI-GigabitEthernet0/0/1] dhcp snooping max-user-number 1
关于CHADDR的解释,看以下DHCP的报文字段和抓包信息即可理解:
交换机的系统视图下执行配置命令:
[Huawei] arp dhcp-snooping-detect enable
[Huawei]dis dhcp snooping
DHCP snooping global running information :
# DHCP Snooping基础信息
DHCP snooping : Enable
Static user max number : 1024
Current static user number : 0
Dhcp user max number : 1024 (default)
Current dhcp user number : 0
# 防ARP中间人攻击防护是否开启
Arp dhcp-snooping detect : Disable (default)
# 丢弃报文告警阈值,当Snooping丢弃100个包之后告警。
Alarm threshold : 100 (default)
# 报文上送速率检测,速率过快将影响DHCP报文的处理效率。
# 默认允许 100包/秒,超过这个速率的DHCP报文将会被丢弃
Check dhcp-rate : Disable (default)
Dhcp-rate limit(pps) : 100 (default)
# 当上送速率超过阈值之后丢包次数超过默认的100将进行告警
# 目前该功能处于关闭
Alarm dhcp-rate : Disable (default)
Alarm dhcp-rate threshold : 100 (default)
# 因速率限制而丢弃的dhcp报文数量
Discarded dhcp packets for rate limit : 0
# 是否自动保护DHCP Snooping绑定表
Bind-table autosave : Disable (default)
# 客户端下线之后,是否马上删除其MAC信息。
# 开启删除:dhcp snooping user-offline remove mac-address
# 功能关闭时,客户端下线后,只要在MAC老化前重新上线就能重新实现通信。
Offline remove mac-address : Disable (default)
# 是否允许用户迁移。
Client position transfer allowed : Enable (default)
IPSG是IP Source Guard的简称。IPSG可以防范针对源IP地址进行欺骗的攻击行为。
IPSG功能是基于绑定表(DHCP动态和静态绑定表)对IP报文进行匹配检查。当设备在转发IP报文时,将此IP报文中的源IP、源MAC、接口、VLAN信息和绑定表的信息进行比较,如果信息匹配,表明是合法用户,则允许此报文正常转发,否则认为是攻击报文,并丢弃该IP报文。
由于需要先进行配置DHCP绑定表,故需要使用到DHCP Snooping功能作为辅助。
全局开启dhcp enable
与dhcp snooping enable
。
给DHCP服务器端口设置为dhcp snooping trusted
。
如果部分安全IP通过静态绑定的,也需要及时补上DHCP静态绑定表:
# 如0001-0001-0001用户使用地址10.0.0.1接入g0/0/1口
[Switch] user-bind static ip-address 10.0.0.1 mac-address 0001-0001-0001 interface gigabitethernet 0/0/1
配置IPSG功能
基于VLAN的IPSG
[Huawei]vlan 1
[Huawei-vlan1]ip source check user-bind enable
# 默认IPSG需要检测IP、MAC、接口对应信息,也可自定义检测某些项。
ip source check user-bind check-item { ip-address | mac-address | interface }
基于接口的IPSG
[Huawei]interface g0/0/1
[Huawei-GigabitEthernet0/0/1]ip source check user-bind enable
配置IPSG告警功能
[Huawei]interface g0/0/1
# 开启告警功能
ip source check user-bind alarm enable
# 默认丢包数量达到100个时,将发出告警。
ip source check user-bind alarm threshold 100
目前,网络的攻击日益增多,而通信协议本身的缺陷以及网络部署问题,导致网络攻击造成的影响越来越大。特别是对网络设备的攻击,将会导致设备或者网络瘫痪等严重后果。
攻击防范主要分为畸形报文攻击防范、分片报文攻击防范和泛洪攻击防范。
攻击防范针对上送CPU的不同类型攻击报文,采用丢弃或者限速的手段,以保障设备不受攻击的影响,使业务正常运行。
默认情况下,攻击防范功能已经是开启的了:
参数 | 缺省值 |
---|---|
畸形报文攻击防范功能 | 已使能 |
分片报文攻击防范功能 | 已使能 |
分片报文发送速率 | 155000000bit/s |
TCP Syn攻击防范功能 | 已使能 |
TCP Syn泛洪报文发送速率 | 155000000bit/s |
UDP泛洪攻击防范功能 | 已使能 |
ICMP泛洪攻击防范功能 | 已使能 |
ICMP泛洪报文发送速率 | 155000000bit/s |
关于相应攻击防范开启命令:
# 开启攻击防范(默认开启)
[Huawei]anti-attack enable
# 畸形报文攻击防范
[Huawei]anti-attack abnormal enable
# 分片报文攻击防范
[Huawei]anti-attack fragment enable
# ICMP泛洪攻击防范
[Huawei]anti-attack icmp-flood enable
# TCP SYN泛洪攻击防范
[Huawei]anti-attack tcp-syn enable
# UDP泛洪攻击防范
[Huawei]anti-attack udp-flood enable