问题背景
接入层的常见风险是单个接入口被私接交换机或路由器占用,短时间内学习到大量 MAC 地址,导致 MAC 表项耗尽,正常终端流量被迫泛洪。限制单端口可学习的 MAC 数量,是最直接的缓解手段。
NSS3330 对此提供两套机制,命令形式与作用范围均不同。配置后未生效,多数情况是选错了功能。
一、机制区分
| 机制 | 命令 | 作用 |
|---|---|---|
| 端口安全 MAX 规则 | port-security maximum | 限制端口可学习、可接入的 MAC 数量,超限报文丢弃 |
| MAC 地址学习限制 | mac-address max-mac-count | 仅限制动态 MAC 学习数量,不涉及端口安全策略 |
端口安全须先使能策略再定义规则;MAC 学习限制只约束表项数量。若需配合 STICKY 固化地址,只能采用前者。
二、端口安全 MAX 规则
以接口gigabitethernet 0/1允许学习 3 个 MAC 为例:
Device# configure terminal Device(config)# interface gigabitethernet 0/1 Device(config-if-gigabitethernet0/1)# port-security enable Device(config-if-gigabitethernet0/1)# port-security maximum 3 Device(config-if-gigabitethernet0/1)# exit两条命令缺一不可:port-security enable在接口使能端口安全,port-security maximum 3将允许学习的动态 MAC 数量设为 3。
需注意默认值:port-security maximum缺省为0。仅执行port-security enable而未配置最大值时,该接口不允许学习任何 MAC 地址,终端无法通信。
此外,MAX 规则实际可学习的动态地址数量,同时受端口、VLAN 与系统 MAC 容量的限制,配置值不代表实际可达值。
三、STICKY 规则
MAX 规则学习到的地址为动态表项,重启或老化后丢失。如需保存至配置、仅允许指定地址接入,应增加 STICKY 规则:
Device# configure terminal Device(config)# interface gigabitethernet 0/1 Device(config-if-gigabitethernet0/1)# port-security enable Device(config-if-gigabitethernet0/1)# port-security maximum 3 Device(config-if-gigabitethernet0/1)# port-security permit mac-address sticky Device(config-if-gigabitethernet0/1)# exit前置条件有两条,缺一不可:
- 须先配置
port-security maximum; - 须先开启 STICKY 功能。
任一条件不满足,该命令将被拒绝。
四、验证
Device# show port-security active-address输出包含接口、MAC 地址、VLAN 等字段。配置完成后应核对该表,确认表项数量与预期一致。
五、MAC 地址学习限制
若仅需防止 MAC 表项耗尽,不涉及端口安全策略,可采用 MAC 地址学习限制:
Device# config terminal Device(config)# interface gigabitethernet 0/1 Device(config-if-gigabitethernet0/1)# mac-address max-mac-count 3 Device(config-if-gigabitethernet0/1)# exit达到上限后,该接口收到的、源 MAC 不在 MAC 地址转发表内的报文将被丢弃。该机制不涉及 STICKY,亦不写入配置。
六、两处常见偏差
修改限制值未生效:新值小于接口当前动态 MAC 表项数时,设备提示须先手工清除已有表项;清除后配置即时生效。
启用端口安全后终端不通:先核查port-security maximum是否已配置。缺省值 0 即全部禁止。
小结
- 需 STICKY 固化时使用
port-security;仅防表项耗尽使用mac-address max-mac-count。 port-security maximum缺省为 0,仅使能端口安全而不配置该值,接口将拒绝所有 MAC。- 验证查看
show port-security active-address;调小限制值前须手工清除动态表项。
以上命令与默认值说明出自迈普 NSS3330(V1) 官方配置手册 V9.5.0.2(R)。整理时以 BOOKRAG 按型号检索手册原文,回答附出处标注:
<https://liuxin4566.xin>