第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 是端口安全中最常用的模式。它的工作流程如下:

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 地址。开学第一天,有学生反映打开笔记本后无法上网。
排查过程:
- 检查学生端口状态:
[SW-ACC] display interface GigabitEthernet 0/0/10
# 端口状态为 Administrator Down(管理员关闭)
- 检查端口安全状态:
[SW-ACC] display port-security configuration interface GigabitEthernet 0/0/10
# 端口安全已启用,最大 MAC 数 = 1,违规动作 = shutdown
# 端口处于 Error-Down 状态
- 分析根因:该学生在上一学期使用了笔记本电脑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 网卡共享网络时,交换机端口被自动关闭。
排查过程:
- 检查端口安全统计:
[SW-ACC] display port-security statistics interface GigabitEthernet 0/0/15
# 检测到 2 个安全 MAC 地址,超过配置的最大值 1
- 查看 MAC 地址:
[SW-ACC] display port-security mac-address interface GigabitEthernet 0/0/15
# MAC1: 笔记本有线网卡
# MAC2: 手机 USB 网卡(Tethering)
- 根因分析:员工使用手机 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 违规动作 |
思考
-
Sticky MAC 学习到的安全 MAC 地址在交换机重启后会丢失吗?如果丢失,如何恢复?
-
如果端口安全配置了最大 MAC 数为 1,但终端支持网卡聚合(如 Intel PROSet 的 Team 技术),会产生什么问题?
-
端口安全与 DAI 是否可以同时部署在同一个端口上?两者在安全检查上是否存在冲突?
下篇预告:第113篇:MAC 地址漂移检测与处理