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

关键词

端口安全、Sticky MAC、MAC 地址绑定、MAC 泛洪、安全 MAC、端口封锁


一、什么是端口安全?

1.1 问题场景

场景一:MAC 地址泛洪攻击
攻击者发送大量源 MAC 不断变化的帧 → 交换机 MAC 表充满
→ 交换机退化为 HUB 模式(泛洪所有帧)
→ 攻击者可以嗅探所有流量

场景二:非法设备接入
某员工私自将个人笔记本接入办公网络 → 绕过 IT 合规检查

场景三:端口 MAC 数量过多
一个端口下接了小型交换机,下面又接了多台 PC
→ 广播域不受控,排障困难

1.2 端口安全的作用

端口安全(Port Security) 控制交换机端口的 MAC 地址学习行为:

功能 说明
限制 MAC 地址数量 端口最多学习 N 个 MAC 地址
限制特定 MAC 地址 只允许指定 MAC 的设备接入
Sticky MAC 动态学习到的 MAC 自动变成静态绑定
违规动作 发现违规后保护/封锁/告警

二、端口安全的工作模式

2.1 MAC 学习方式

模式 说明
动态学习 端口自动学习 MAC 地址,到达上限后不再学习
静态配置 手动指定允许的 MAC 地址
Sticky MAC 动态学习到的 MAC 自动保存到配置中(重启不丢失)

2.2 违规处理动作

动作 说明 恢复方式
Protect 丢弃非法源 MAC 的帧,不告警 不自动恢复
Restrict 丢弃非法帧并记录日志 不自动恢复
Shutdown 端口 Error-Disable,彻底中断 手动恢复或 auto-recovery

三、配置示例

3.1 限制 MAC 地址数量

# 端口最多学习 5 个 MAC 地址,超限 shutdown
interface GigabitEthernet0/0/1
 port-security enable
 port-security max-mac-num 5
 port-security protect-action shutdown

# 自动恢复
error-down auto-recovery cause port-security interval 300

3.2 静态 MAC 绑定

# 只允许指定 MAC 的设备接入
interface GigabitEthernet0/0/2
 port-security enable
 port-security mac-address aaaa-bbbb-cccc
 port-security mac-address dddd-eeee-ffff
 port-security max-mac-num 2
 port-security protect-action shutdown

3.3 Sticky MAC(推荐方式)

Sticky MAC 结合了动态学习的便利和静态配置的持久性:

interface GigabitEthernet0/0/3
 port-security enable
 port-security max-mac-num 2
 port-security mac-address sticky
 port-security protect-action restrict

# 端口学习到 MAC 后自动 sticky

当端口学习到第一个 MAC(0001-0001-0001),配置会自动变为:

interface GigabitEthernet0/0/3
 port-security mac-address sticky 0001-0001-0001 vlan 10

3.4 查看端口安全状态

# 查看端口安全配置
display port-security
-----------------------------------------------
Port            Enable  MAC num  Action     Sticky
GE0/0/1         Y       5        shutdown   No
GE0/0/3         Y       2        restrict   Yes

# 查看安全 MAC 地址表
display mac-address security
-----------------------------------------------
MAC地址          VLAN  接口          Type
0001-0001-0001   10     GE0/0/3      Sticky
0001-0001-0002   10     GE0/0/3      Sticky

四、Sticky MAC 的工作原理

Sticky MAC 本质是动态 MAC 自动转换为安全静态 MAC

1. 端口启用 Sticky MAC → 开始学习(端口初始状态正常)

2. PC-A 接入(MAC=AAAA)→ 交换机学习到 AAAA
   └→ 自动保存:port-security mac-address sticky AAAA vlan 10

3. PC-A 离线 → MAC 地址不老化(因为是静态)
   └→ 配置文件中永久存在

4. PC-A 再次上线 → 直接匹配静态 MAC,端口正常

5. 非法设备(MAC=BBBB)接入 → MAC 地址计数已达上限
   └→ 触发 protect-action

注意:Sticky MAC 的老化时间由用户决定——可以通过 undo port-security mac-address sticky <mac> 手动清除。


五、实战案例

5.1 案例:某楼层交换机 CPU 异常高

现象:某楼层接入交换机 CPU 经常 100%,网络时断时续。

排查: 1. display mac-address → MAC 表有 8000+ 条目(已满) 2. MAC 表统计显示 90% 的 MAC 来自一个端口(GE0/0/10) 3. display mac-address interface GigabitEthernet0/0/10 → 几秒就换一批 MAC

根因:某个端口下被接入了小型交换机(或恶意攻击),大量 MAC 涌上来。

解决方案

interface GigabitEthernet0/0/10
 port-security enable
 port-security max-mac-num 5
 port-security protect-action shutdown

error-down auto-recovery cause port-security interval 600

5.2 案例:违规私接设备

现象:某工位的员工离职后,新员工用自己的笔记本上网被阻断。

根因:端口配置了 Sticky MAC,绑定了旧员工的 MAC 地址。

处理

# 查看安全 MAC 表
display mac-address security interface GigabitEthernet0/0/5

# 清除旧 MAC
undo port-security mac-address sticky <old-mac> vlan 10

# 重新学习新 MAC(或者手工添加新 MAC)
port-security mac-address sticky <new-mac> vlan 10

六、端口安全 vs IPSG

对比项 端口安全(Port Security) IP Source Guard
检查内容 MAC 地址 IP 地址 + MAC 地址
数据来源 动态学习 / 静态 / Sticky DHCP Snooping 绑定表
防护目标 防 MAC 泛洪、防非法 MAC 防 IP 欺骗
检查层级 二层(MAC 帧) 三层(IP 报文)
适用场景 限制设备接入数量 防止篡改 IP 地址

最佳实践:两者配合使用——端口安全限制 MAC,IPSG 限制 IP。


七、注意事项

注意点 说明
不能同时与 MAC 地址漂移检测共享部分功能 注意冲突
Trunk 端口谨慎使用 Trunk 端口的多个 VLAN 多有大量 MAC
Sticky MAC 有保存上限 设备 Flash 空间有限
Shutdown 后需手动/自动恢复 error-down auto-recovery cause port-security
端口安全不能防 ARP 欺骗 需要 DAI

八、总结

知识点 核心要点
端口安全 控制端口 MAC 地址学习的行为
MAC 数量限制 防止 MAC 泛洪攻击
Sticky MAC 动态 MAC 自动保存在配置中
违规动作 Protect/Restrict/Shutdown 三种选择
适用场景 接入层限制设备接入
组合使用 端口安全 + IPSG + DAI 完整防护

九、思考

  1. 端口安全的三种违规处理动作分别是什么?有什么区别?
  2. Sticky MAC 和静态 MAC 有什么区别?
  3. 如果端口配置了 max-mac-num=2 但第三台设备接入,会发生什么?
  4. 端口安全能防 ARP 欺骗吗?为什么?
  5. 为什么 Trunk 端口通常不建议启用端口安全?

下篇预告:第113篇《MAC 地址漂移检测与处理》——讲解 MAC 地址在网络中频繁迁移的原因、检测方法和处理策略。