第112篇:端口安全:MAC 地址绑定与 Sticky MAC

关键词:端口安全、Port Security、MAC 地址绑定、Sticky MAC、最大 MAC 数、违规处理、接入控制


一、引言

在前一篇第111篇中,我们学习了 DAI 如何防止 ARP 欺骗攻击。DAI 保护的是 ARP 协议的完整性,而端口安全(Port Security)解决的是更基础的问题:哪些设备允许接入到交换机端口上。

在网络接入场景中,一个端口可能连接一台合法终端,也可能被攻击者接入交换机、Hub 或恶意设备,从而接入大量未知 MAC 地址的设备。端口安全通过限制端口上允许的 MAC 地址数量和具体 MAC 地址,实现精准的接入控制。

二、核心概念

2.1 端口安全的威胁场景

威胁场景 描述 危害
非法设备接入 攻击者将个人设备接入交换机端口 未授权访问内网资源
级联 Hub/交换机 用户在端口上私自级联 Hub,接入多台设备 MAC 地址表膨胀,资源滥用
MAC 地址泛洪 攻击者伪造大量不同 MAC 地址的报文 交换机 MAC 表满,广播泛洪,拒绝服务
MAC 地址克隆 攻击者克隆合法设备的 MAC 地址 绕过 MAC 过滤,身份冒充

2.2 端口安全核心机制

端口安全核心机制 - 图示

2.3 MAC 地址学习模式

模式 说明 适用场景
动态学习 端口自动学习到达 MAC 地址 临时部署,灵活性要求高
静态绑定 手动配置允许的 MAC 地址 安全要求高的固定终端
Sticky MAC 自动学习后固化绑定 首次接入后锁定,兼顾便捷与安全
Sticky Secure Sticky MAC 的增强模式 支持配置后保存,重启不丢失

2.4 违规处理动作

动作 行为 说明
Protect 丢弃违规报文,不通知 静默丢弃,不产生告警
Restrict 丢弃违规报文,发送通知 产生 SNMP Trap 和日志
Shutdown 关闭端口(Error-Down) 最严厉,需要管理员手动恢复

三、技术细节

3.1 Sticky MAC 工作原理

Sticky MAC 是端口安全中最常用的模式。它的工作流程如下:

Sticky MAC 工作原理 - 图示

3.2 端口安全配置参数

参数 取值范围 默认值 说明
最大 MAC 数量 1-128 7 端口允许学习的安全 MAC 地址最大数
违规动作 Protect/Restrict/Shutdown Shutdown 检测到违规时的处理动作
Aging 时间 0-102400 分钟 0(不老化) Sticky MAC 地址的老化时间
Sticky 使能 Enable/Disable Disable 是否启用 Sticky MAC 学习

3.3 端口安全与 MAC 地址表的关系

端口安全在交换机 MAC 地址表的基础上增加了安全属性。端口安全学到的 MAC 地址被称为"安全 MAC 地址"(Secure MAC Address),它们具有更高的优先级和更强的约束力。

MAC 类型 学习方式 可删除 可老化
动态 MAC 自动学习 可手动删除 可自动老化
静态 MAC 手动配置 可手动删除 不可老化
安全动态 MAC 端口安全自动学习 不可手动删除 按配置老化
安全 Sticky MAC Sticky 学习后固化 仅清除端口安全配置 按配置老化

四、实战配置/案例分析

4.1 华为交换机端口安全配置

# ========== 基础端口安全配置 ==========

# 1. 在端口上启用端口安全
[HUAWEI] interface GigabitEthernet 0/0/5
[HUAWEI-GigabitEthernet0/0/5] port-security enable

# 2. 设置最大 MAC 地址数量(例如只允许 1 台设备)
[HUAWEI-GigabitEthernet0/0/5] port-security max-mac-count 1

# 3. 配置违规处理动作
[HUAWEI-GigabitEthernet0/0/5] port-security protect-action shutdown

# 4. 启用 Sticky MAC
[HUAWEI-GigabitEthernet0/0/5] port-security sticky enable

# ========== 静态 MAC 绑定 ==========
# 5. 手动绑定特定 MAC 地址
[HUAWEI-GigabitEthernet0/0/5] port-security sticky mac-address 00e0-fc12-3456

# ========== 端口安全老化 ==========
# 6. 配置安全 MAC 地址老化时间(30 分钟)
[HUAWEI-GigabitEthernet0/0/5] port-security aging time 30
[HUAWEI-GigabitEthernet0/0/5] port-security aging type inactivity

# ========== 验证 ==========
[HUAWEI] display port-security configuration interface GigabitEthernet 0/0/5
[HUAWEI] display port-security mac-address interface GigabitEthernet 0/0/5
[HUAWEI] display port-security statistics

4.2 故障案例:端口安全导致大面积断网

场景描述:某高校机房部署了端口安全,每个学生座位的交换机端口仅允许 1 个 MAC 地址。开学第一天,有学生反映打开笔记本后无法上网。

排查过程:

  1. 检查学生端口状态:
[SW-ACC] display interface GigabitEthernet 0/0/10
# 端口状态为 Administrator Down(管理员关闭)
  1. 检查端口安全状态:
[SW-ACC] display port-security configuration interface GigabitEthernet 0/0/10
# 端口安全已启用,最大 MAC 数 = 1,违规动作 = shutdown
# 端口处于 Error-Down 状态
  1. 分析根因:该学生在上一学期使用了笔记本电脑A(MAC_A),Sticky MAC 学习到 MAC_A 并固化。本学期学生更换了笔记本电脑B(MAC_B),新 MAC 不在安全列表中,触发违规动作 shutdown,端口被关闭。

处理措施:

# 方案一:清除旧绑定,恢复端口
[SW-ACC] interface GigabitEthernet 0/0/10
[SW-ACC-GigabitEthernet0/0/10] reset port-security sticky mac-address
[SW-ACC-GigabitEthernet0/0/10] undo shutdown
# 端口恢复,自动学习新 MAC

# 方案二:配置合理的 Aging 时间
[SW-ACC] interface GigabitEthernet 0/0/10
[SW-ACC-GigabitEthernet0/0/10] port-security aging time 4320
# 30天老化,学期结束时自动清除

# 方案三:将违规动作改为 Restrict,避免端口关闭
[SW-ACC] interface GigabitEthernet 0/0/10
[SW-ACC-GigabitEthernet0/0/10] port-security protect-action restrict

4.3 故障案例:手机双网卡导致端口安全告警

场景描述:某办公室员工连接手机作为 USB 网卡共享网络时,交换机端口被自动关闭。

排查过程:

  1. 检查端口安全统计:
[SW-ACC] display port-security statistics interface GigabitEthernet 0/0/15
# 检测到 2 个安全 MAC 地址,超过配置的最大值 1
  1. 查看 MAC 地址:
[SW-ACC] display port-security mac-address interface GigabitEthernet 0/0/15
# MAC1: 笔记本有线网卡
# MAC2: 手机 USB 网卡(Tethering)
  1. 根因分析:员工使用手机 USB 共享网络时,产生了第二个 MAC 地址。端口安全配置最大 MAC 数为 1,超出限制后执行 shutdown。

处理措施:

# 方案一:调整该端口最大 MAC 数为 2
[SW-ACC] interface GigabitEthernet 0/0/15
[SW-ACC-GigabitEthernet0/0/15] port-security max-mac-count 2
[SW-ACC-GigabitEthernet0/0/15] undo shutdown

# 方案二:对于特殊端口,使用 Restrict 代替 Shutdown
[SW-ACC] interface GigabitEthernet 0/0/15
[SW-ACC-GigabitEthernet0/0/15] port-security protect-action restrict

4.4 批量端口安全配置

# 对整组接入端口批量配置端口安全
[HUAWEI] port-group 1
[HUAWEI-port-group1] group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/24
[HUAWEI-port-group1] port-security enable
[HUAWEI-port-group1] port-security max-mac-count 2
[HUAWEI-port-group1] port-security protect-action restrict
[HUAWEI-port-group1] port-security sticky enable
[HUAWEI-port-group1] quit

五、总结

项目 说明
端口安全本质 限制端口上允许接入的 MAC 地址数量和具体内容
Sticky MAC 自动学习后固化,兼顾部署便捷性与管理可控性
最大 MAC 数 根据实际接入设备数量设置,单人工位建议 1-2 个
违规动作 Shutdown 最严厉但最安全,Restrict 兼顾安全与可用性
Aging 配置 避免永久绑定导致设备更换后无法恢复
华为推荐 Sticky MAC + 合理 Aging + Restrict 违规动作

思考

  1. Sticky MAC 学习到的安全 MAC 地址在交换机重启后会丢失吗?如果丢失,如何恢复?

  2. 如果端口安全配置了最大 MAC 数为 1,但终端支持网卡聚合(如 Intel PROSet 的 Team 技术),会产生什么问题?

  3. 端口安全与 DAI 是否可以同时部署在同一个端口上?两者在安全检查上是否存在冲突?

下篇预告:第113篇:MAC 地址漂移检测与处理