限制端口能学到的 MAC 数量
端口安全把交换机端口能学到的 MAC 地址数量与身份锁定下来,用于防止私接小路由器、MAC 地址泛洪攻击与非法终端接入。做法是先在端口上使能该功能,再设置最大 MAC 数量与违规动作:超出上限后可以选择丢弃超额流量并告警、直接关闭端口或仅告警不处理。这一特性对动态学习的地址生效,手工写死的静态表项不受数量上限约束。
基本信息
| 适用平台 | 华为 S 系列交换机,思科与 H3C 交换机均有对应特性 |
|---|---|
| 适用端口 | 接终端的接入端口,不适合上联与服务器聚合口 |
| 关键参数 | 最大 MAC 数量、违规动作、是否转换为粘滞地址 |
| 数量上限 | 常见取值每端口 1 到 8 个,按实际终端数量设定 |
| 核对命令 | display port-security interface、show port-security interface |
典型使用场景
- 办公区接入端口限制为单终端,防止私接路由器或交换机
- 会议室与公共区域端口限制数量,减少非授权设备接入
- 服务器接入端口绑定固定 MAC,防止未授权设备替换
- 排障时防泛洪:限制端口学习数量,避免 MAC 表被瞬间打满
- 审计要求下为接入端口建立身份基线
华为 VRP
华为 VRP
[Huawei] interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1] port-security enable
[Huawei-GigabitEthernet0/0/1] port-security max-mac-num 2 # 最多两个 MAC
[Huawei-GigabitEthernet0/0/1] port-security protect-action restrict # 超额丢弃并告警
[Huawei-GigabitEthernet0/0/1] port-security mac-address sticky # 学到的地址转粘滞
<Huawei> display port-security interface GigabitEthernet 0/0/1思科 IOS
思科 IOS
SW-CORE-01(config)# interface GigabitEthernet0/1
SW-CORE-01(config-if)# switchport mode access
SW-CORE-01(config-if)# switchport port-security
SW-CORE-01(config-if)# switchport port-security maximum 2
SW-CORE-01(config-if)# switchport port-security violation restrict
SW-CORE-01(config-if)# switchport port-security mac-address sticky
SW-CORE-01# show port-security interface GigabitEthernet0/1H3C Comware
H3C Comware
[H3C] interface GigabitEthernet 1/0/1
[H3C-GigabitEthernet1/0/1] port-security enable
[H3C-GigabitEthernet1/0/1] port-security port-mode autolearn # 先选工作模式
[H3C-GigabitEthernet1/0/1] port-security max-mac-count 2
[H3C-GigabitEthernet1/0/1] port-security intrusion-mode disableport-temporarily
<H3C> display port-security interface GigabitEthernet 1/0/1三厂关键参数对照
| 参数 | 华为 VRP | 思科 IOS | H3C Comware |
|---|---|---|---|
| 使能命令 | port-security enable | switchport port-security | port-security enable |
| 数量上限 | max-mac-num | port-security maximum | max-mac-count |
| 违规动作 | protect-action、可用 restrict 或 protect | violation、可选 restrict 或 shutdown 或 protect | intrusion-mode,可选暂时关闭端口等 |
| 粘滞学习 | mac-address sticky | mac-address sticky | 需配合端口模式选择 |
| 查看命令 | display port-security interface | show port-security interface | display port-security interface |
配置与运维要点
- 只对动态学习生效:手工静态表项不占数量上限,绑定时要区分是静态配置还是学习结果
- 违规动作要选对:restrict 只丢弃并告警,端口保持 up;shutdown 直接关闭端口,需要人工或自动恢复
- 上联口与聚合成员口不要启用:成员口数量变化会导致误触发,服务器多网卡场景同样要预留足够数量
- 启用前先确认终端数量:上限设得比实际终端少会周期性触发违规,表现为主机时通时断
- 配合粘滞学习固定地址后,更换终端需要清理旧表项,运维流程要同步说明
常见疑问
- 为什么限制了 2 个仍然能接 3 台设备:检查是否只启用了功能但没设数量上限,或上限值被后续配置覆盖
- 端口为什么会自动关闭:违规动作设置为关闭端口时,超限会直接 down,处理后需手动恢复
- 粘滞地址怎么清理:先撤销功能或清除粘滞表项,再重新学习,注意清理时会短暂放行
- 会不会影响服务器多网卡:会影响,成员数量超过上限会触发违规,服务器口应放宽上限或改用其他绑定方式
- 与 MAC 绑定表的关系:端口安全限制数量,地址绑定限制身份,两者可以叠加使用,作用不同
端口安全是接入侧最直接的防私接手段,但要与边缘端口、BPDU 保护一起配置才有意义:只做限制数量而不防生成树消息,私接交换机仍可能引发环路导致整片区域中断。
启用前先按端口清点终端数量并留档:上限值属于需要长期维护的参数,终端增加时忘记调整会周期性触发违规,故障现象与链路问题很像。