allowed vlan 的两种写法
Cisco 的 switchport trunk allowed vlan 有两种语义:不带关键字时是整体覆盖,把列表直接替换成给出的值;带 add 或 remove 时是在现有列表上增删。线上变更必须用增量写法,因为覆盖写法的语法看起来同样自然,一条手滑的命令就会把其他业务 VLAN 从 Trunk 上全部清除,而设备侧不会有任何提示。
基本信息
| 适用平台 | Cisco IOS / IOS-XE |
|---|---|
| 整体设置 | switchport trunk allowed vlan 10,20,30 |
| 追加 | switchport trunk allowed vlan add 40 |
| 移除 | switchport trunk allowed vlan remove 30 |
| 排除式 | switchport trunk allowed vlan except 1,1002-1005 |
| 恢复默认 | switchport trunk allowed vlan 1-4094 或 no 该命令 |
常用写法
常用写法
switchport trunk allowed vlan 10,20,30 # 整体覆盖为 10、20、30
switchport trunk allowed vlan add 40 # 在现有基础上追加 40
switchport trunk allowed vlan remove 30 # 从现有列表中移除 30
switchport trunk allowed vlan except 1,1002-1005 # 放行除这些以外的全部 VLAN
switchport trunk allowed vlan add 100-110 # 追加连续段
show interfaces trunk # 变更前后各执行一次留档关键字速查
| 关键字 | 语义 | 使用建议 |
|---|---|---|
| (无) | 整体覆盖 | 仅初始化时使用,生产变更禁用 |
| add | 在现有列表上追加 | 扩容新增 VLAN 时使用 |
| remove | 从现有列表移除 | 下线 VLAN 时使用 |
| except | 排除式放行 | 需要放行大范围时使用,注意隐含风险 |
| all | 等价 1-4094 | 一般不用,泛洪范围过大 |
不带 add/remove 的写法是整体覆盖:补一条不带增量关键字的命令会把其他 VLAN 清出列表。这类变更建议在带外管理会话中执行,或提前配置 reload 定时回滚作为保险。
VLAN 1 通常无法从 allowed 列表移除,控制协议流量默认仍走 VLAN 1,因此不要指望通过清空列表完全阻断控制帧。1002-1005 这几个历史保留 VLAN 在多数平台上也不参与实际转发,排除它们只是让输出更清爽。
变更 Trunk 放行列表属于典型的高风险配置:建议在带外通道操作,或提前配置 reload 定时回滚作为保险,变更后立刻用 show interfaces trunk 核对放行列表与实际转发 VLAN 是否一致。