华为交换机端口安全配置:Sticky MAC与接入数量限制 - 夜莺博客

华为交换机端口安全配置:Sticky MAC与接入数量限制

公司接入层交换机最头疼的问题之一,就是员工私自把个人电脑、随身 WiFi 或无线路由器接到工位网口上,导致 MAC 地址泛滥、IP 冲突甚至内网安全问题。华为交换机的端口安全(Port Security)功能可以把接口学习的 MAC 地址与端口绑定,并限制一个接口最多接入的用户数,超出即丢弃或告警,是接入层最常用的安全手段之一。本文基于华为官方典型配置案例,用 S5700/S6700 系列的真实命令演示端口安全 + Sticky MAC 的完整配置流程。

端口安全能解决什么问题

端口安全通过把接口学习到的动态 MAC 地址转换为安全 MAC 地址(安全动态 MAC、安全静态 MAC、Sticky MAC),阻止非法用户通过该接口与交换机通信。相比手工配置静态 MAC 绑定,端口安全实现的是"动态绑定",配置简单;相比 DHCP Snooping 绑定,它还能限制接入用户数量。典型场景:一个接入接口只允许 1 台 PC 上网,换设备即断网。

它是"接口级"的准入控制,落地速度快——不开认证服务器、不改终端,一条 port-security enable 就能拦住大部分私接行为。

配置思路

采用如下思路配置端口安全:

  • 配置 VLAN,实现二层转发;
  • 配置端口安全并开启 Sticky MAC,保证保存配置重启后 MAC 表项不丢失。

操作步骤:创建 VLAN 并加入接口

<HUAWEI> system-view
[HUAWEI] sysname Switch
[Switch] vlan 10
[Switch-vlan10] quit
[Switch] interface gigabitethernet 1/0/1
[Switch-GigabitEthernet1/0/1] port link-type access
[Switch-GigabitEthernet1/0/1] port default vlan 10
[Switch-GigabitEthernet1/0/1] quit

使能端口安全与 Sticky MAC

在 GE1/0/1 上使能端口安全,开启 Sticky MAC,并设置最大学习 MAC 数为 1(默认即为 1):

[Switch] interface gigabitethernet 1/0/1
[Switch-GigabitEthernet1/0/1] port-security enable
[Switch-GigabitEthernet1/0/1] port-security mac-address sticky
[Switch-GigabitEthernet1/0/1] port-security max-mac-num 1
[Switch-GigabitEthernet1/0/1] quit

注意事项:接口上已配置 mac-limit 后无法再配置端口安全,设备会直接报错 Error: The port-security function and the mac-limit function are mutually exclusive.,需先 undo mac-limit;如果 PC 通过 IP Phone 接入,MAC 学习限制数要配置为 3(IP Phone 占 2 个表项,PC 占 1 个)。

三条命令的顺序有讲究:先 port-security enable 打开功能,再决定是否使用 sticky,最后设置数量上限。把 max-mac-num 设在 1 只是最常见的"一人一口"策略,会议室、打印区这类多终端场景应放通 3~5。

三类安全 MAC 地址怎么选

类型 怎么产生 重启后是否保留 适用场景
安全动态 MAC 使能端口安全后自动学习 不保留,重启后需重新学习 临时测试、对持久性无要求的接口
安全静态 MAC 手工配置绑定表项 保留(随配置保存) 固定的服务器、打印机等关键终端
Sticky MAC 学习后只转换一次并在配置中固化 保留,且能随配置文件迁移 普通工位、需要"换设备即断网"的接口

Sticky MAC 的"粘性"体现在:MAC 地址一旦从动态转成 sticky 表项,就会像静态配置一样写进当前配置,重启、断电都不会丢;即使新设备是同一型号,MAC 不同也会被拒绝。这也是它比普通安全动态 MAC 更适合生产环境的原因。

保护动作:命中非法终端时做什么

[Switch-GigabitEthernet1/0/1] port-security protect-action protect
[Switch-GigabitEthernet1/0/1] port-security protect-action restrict
  • protect:静默丢弃超限/非法报文的 MAC 学习请求,不产生告警,适合不希望刷日志的接入场景;
  • restrict:丢弃并记录告警,便于通过网管发现"有人私接",这是多数生产环境的默认选择;
  • 部分型号/版本还提供更激进的关闭端口类动作,具体可选值以接口下 port-security protect-action ? 的帮助为准。

手工绑定 Sticky MAC(固定终端场景)

如果希望上线前就把表项固化下来,可以在接口下手工添加 sticky 表项,避免"谁先插上谁合法"的窗口期:

[Switch] interface gigabitethernet 1/0/1
[Switch-GigabitEthernet1/0/1] port-security mac-address sticky 5489-98aa-bb01 vlan 10
[Switch-GigabitEthernet1/0/1] quit
[Switch] display mac-address sticky

表项变更(换机、换挡板、终端网卡故障更换)时,先在原接口下清除再重新添加,避免残留表项导致新设备无法上线:

[Switch] interface gigabitethernet 1/0/1
[Switch-GigabitEthernet1/0/1] undo port-security mac-address sticky
[Switch-GigabitEthernet1/0/1] quit

验证配置

配置完成后,把 PC1/PC2/PC3 换成其他设备,将无法访问公司网络。常用验证命令:

[Switch] display port-security
[Switch] display port-security interface gigabitethernet 1/0/1
[Switch] display mac-address security
[Switch] display mac-address sec-config
[Switch] display mac-address sticky
[Switch] display current-configuration interface gigabitethernet 1/0/1

display port-security interface 会给出该接口的最大 MAC 数、当前已用数量和违规计数(Violation counts),违规计数持续增长说明确实有人在私接;display mac-address sec-config 则能看到接口的安全配置表项来源。保存配置后 Sticky MAC 表项不会因重启丢失,这也是它比普通安全动态 MAC 更适合生产环境的原因。

批量部署:用端口组一次性下发

接入层动辄几十个工位口,逐个接口配置既慢又容易漏。华为交换机支持端口组(port-group),可以把同一栋楼、同一排机柜的接口批量配置:

[Switch] port-group pg1
[Switch-port-group-pg1] group-member gigabitethernet 1/0/2 to gigabitethernet 1/0/24
[Switch-port-group-pg1] port-security enable
[Switch-port-group-pg1] port-security mac-address sticky
[Switch-port-group-pg1] port-security max-mac-num 1
[Switch-port-group-pg1] display port-group pg1
[Switch-port-group-pg1] quit
[Switch] save

端口组下发的配置会逐接口展开,后期在单个接口上 undo 不影响其他成员口。上联口、级联口务必排除在端口组之外,否则上联链路学习到的多个 MAC 一旦超过上限就会被丢弃,直接造成大面积断网——这是端口安全最危险的一次配置失误,建议下发前先 display port-group pg1 核对成员口清单。

与其他接入安全手段的分工

  • mac-limit:只限制接口能学习的 MAC 数量,不做"表项固化",与端口安全互斥,二选一;
  • DHCP Snooping + IPSG:防伪造网关和 IP 地址仿冒,解决"地址从哪来"的问题,与端口安全互补;
  • 802.1X / MAC 认证:基于账号或认证服务器的准入,更强但依赖 AAA 平台,适合办公区等需要审计的场景;
  • 端口安全:无需外部平台,一条命令即生效,适合机房外挂、会议室、弱电间等"先拦住再说"的位置。

常见报错与排障

  • 接口下配不上端口安全:接口已存在 mac-limit 配置,先 undo mac-limit 再重配。
  • 合法用户被拒:max-mac-num 太小(例如 IP Phone 场景仍设为 1),按终端数量调整,或在接口下清除残留的 sticky 表项后重学。
  • 换了新 PC 也上不了网,换回旧 PC 立刻恢复:这是端口安全在按预期工作;需要在原接口清除旧 sticky 表项再让新设备学习。
  • 重启后表项丢失:未开启 Sticky MAC 或未执行 save,安全动态 MAC 本身不持久化。
  • 排障时想临时放通:可在接口下 undo port-security enable 临时关闭功能,处理完立即恢复,避免接口长期失去保护。

相关阅读

端口安全通常与 VLAN 规划配合使用,可参考站内《华为交换机 VLAN 配置详解:Access、Trunk 与 Hybrid 端口》;防私接与地址仿冒建议同时部署《华为交换机 DHCP Snooping 与 IPSG 配置》;设备密码丢失时先看《华为交换机忘记 Console 密码恢复指南》;整机回收再上线可参考《华为交换机恢复出厂设置三种方法》。

原文链接:https://support.huawei.com/enterprise/zh/doc/EDOC1000069491/6b53bfef