跳到正文
Lutong's Homepage

华为H3C实战 | 第3章 VLAN 与二层转发

📚 本系列共 43 篇(第 3 / 43 篇) · 第一卷 基础篇 —— 交换机的骨架

← 上一篇:第 2 章 接口基础配置  下一篇:第 4 章 STP / RSTP / MSTP 生成树 →


本章导读:一台交换机、一层办公楼、所有部门互通,结果是广播风暴带崩全网、研发服务器被实习生随手 ping 通。VLAN 就是给每个部门发不同颜色的工牌:物理上还在一层楼,逻辑上切成互不相通的"虚拟楼层"。

本章结构:

  • 3.1 功能原理与业务场景 —— 802.1Q 标签怎么插进以太网帧(TPID 0x8100、12 位 VID 范围 1~4094)
  • 3.2 华为设备配置详解 —— vlan batch 批量建、access/trunk/hybrid 三种口、port trunk allow-pass vlan、hybrid 的 tagged/untagged 语序,以及三种跨 VLAN 方案的取舍(多口 / 单臂路由 / VLANIF)
  • 3.3 H3C 设备配置详解 —— port access vlan、port trunk permit vlan、name 代替 description,以及 H3C 主线已转向 MVRP(GVRP 兼容保留)
  • 3.4 命令对照表 —— allow-pass vs permit、batch、port default vlan vs port access vlan
  • 3.5 配置验证 —— display vlan 里的 U/D 标记、display port vlan 看 PVID
  • 3.6 排错与故障树 —— “同 VLAN 跨交换机不通 = trunk 没放行”、“跨 VLAN 通但同 VLAN 不通 = 两端 PVID 不一致”、hybrid 照抄 H3C 写法报错
  • 3.7 新手踩坑 —— PVID、VLAN 1 泛洪、私接交换机
  • 3.8 本章小结 —— 要点清单 + 自测题

重点提示:新配的 VLAN 不通,十有八九是 trunk 没放行——3.6 第一行给你命令和判据;如果"两个口在同 VLAN 却不通",别去查三层,先 display port vlan 比两端的 PVID。混合口写法华为是 tagged vlan 10,抄成 H3C 的 vlan 10 tagged 会直接报错。 关联章节:VLAN 之间要通,网关怎么建见第 6 章;VLAN 上跑生成树、防止私接交换机造成环路见第 4 章;VLAN 里接入终端的管理见第 9 章。

3.1 功能原理与业务场景

3.1.1 这功能是干嘛的(通俗版)

一家公司租了写字楼的一整层,财务、研发、行政全在一层楼里,工位挨着工位。如果所有电脑都接在同一台交换机上、彼此完全互通,会发生两件麻烦事:第一,财务部一台电脑中了病毒,广播包会在整层楼里乱窜,研发部的网速跟着一起崩;第二,研发部的服务器能被实习生随手一 ping 就通,安全上过不去。

虚拟局域网(Virtual Local Area Network,VLAN)就是给每个部门发不同颜色的工牌:物理上所有人还在同一层楼、同一台交换机,逻辑上被切成了几个独立的「虚拟楼层」。同一个 VLAN 里的人可以自由说话(二层互通),不同 VLAN 的人之间必须先经过「前台」(三层网关)才允许交流,而且前台可以查证件、可以拒绝。

关键的一点是:VLAN 隔的是广播域,不是物理位置。一个 VLAN 可以横跨十台交换机(研发部在三楼、五楼都有工位,但他们就是一个 VLAN),一台交换机上也可以有十几个 VLAN。这正是 VLAN 相对「物理隔离」的价值——省钱、省布线、灵活调整。

3.1.2 在网络里怎么落地(设计视角)

交换机怎么知道一帧属于哪个 VLAN?靠的是在以太网帧头里插一个标签(Tag),这就是 IEEE 802.1Q 标准。插入标签后的帧长这样:

原始以太网帧:
┌──────────┬──────────┬──────────┬───────────────┬─────┐
│ 目的MAC  │  源MAC   │  类型    │      数据     │ FCS │
│  6 字节  │  6 字节  │  2 字节  │  46~1500 字节 │4字节│
└──────────┴──────────┴──────────┴───────────────┴─────┘

加 VLAN 标签后(802.1Q):
┌──────────┬──────────┬────────────┬──────────┬───────────────┬─────┐
│ 目的MAC  │  源MAC   │  TPID      │   TCI    │      类型     │数据 │
│  6 字节  │  6 字节  │  0x8100    │  2 字节  │    2 字节     │     │
└──────────┴──────────┴────────────┴──────────┴───────────────┴─────┘
                                     │
                     ┌───────────────┴───────────────┐
                     │  TCI = PCP(3bit) DEI(1bit) VID(12bit)
                     │  VID 就是 VLAN ID,范围 1 ~ 4094
                     └───────────────────────────────┘

TPID(Tag Protocol Identifier)固定是 0x8100,交换机看到帧里这个值就知道「这是个带标签的帧」。VID(VLAN Identifier)12 位,理论范围 04095,实际可用 14094,其中 VLAN 1 是缺省,4095 保留。所以一台交换机最多能划 4094 个 VLAN,这个数字就是「VLAN 数量的天花板」。

交换机的接口有三种处理标签的模式,这是本章的核心:

Access(接入)口——接终端的地方。它只属于一个 VLAN,收到帧时给帧打上该 VLAN 的标签(内部转发用),发出帧时把标签剥掉。终端根本不知道 VLAN 的存在。像一个只有一个房间钥匙的门卫:从外面进来的都算这个房间的,出去时把门禁卡还给你。

Trunk(干道)口——交换机之间互联的地方。它能同时承载多个 VLAN,发出帧时大部分 VLAN 带标签(多个 VLAN 挤在一根线上,必须靠标签区分),但有一个特殊 VLAN(PVID 指定的)不打标签发出去。像一个公共走廊:不同部门的文件都从这过,但每份文件上都贴了部门标签。

Hybrid(混杂)口——最灵活的模式,可以针对每个 VLAN 单独决定「发出去带不带标签」。Trunk 其实是 Hybrid 的一个特例。像一条既能走带标签公文又能走不带标签私人物品的通道。

用一张图说清楚帧在三种口之间的流动:

  PC1(财务)                                              PC2(研发)
     │                                                       │
   [GE0/0/1 access]                                [GE0/0/3 access]
   VLAN10                                                  VLAN20
     │                                                       │
  ┌──┴──────────── 交换机A ────────────┐                     │
  │                                    │                     │
  │  [GE0/0/24 trunk]  ← 带标签 →  [GE0/0/24 trunk]          │
  │      允许 VLAN10,20                    │                 │
  └───────────────────────────────────┘                     │
                                        交换机B ─── [GE0/0/3 access] VLAN20

具体走一遍:PC1 发出一个不带标签的帧 → 交换机 A 的 access 口(PVID=10)收到,给它打上 VLAN 10 标签 → 查 MAC 表,发现目的 MAC 在 GE0/0/24 的 VLAN 10 里 → 从 trunk 口发出时 VLAN 10 允许通过,保留标签发出 → 交换机 B 的 trunk 口收到带 VLAN 10 标签的帧,查自己的 MAC 表 → 从对应 access 口发出时剥掉标签 → 目标 PC 收到不带标签的普通帧。

适用版本:华为 VRP V200R019 及以上,H3C Comware V7(R2610 及以上)。VLAN 数量上限(1~4094)、VLAN 1 不可删除、GVRP 支持情况与型号有关。

3.2 华为设备配置详解

3.2.1 命令行基础速览(本章会用到的那几条)

命令 在哪敲 干什么
vlan 10 系统视图 创建/进入 VLAN 10
vlan batch 10 20 30 系统视图 批量创建 VLAN
port link-type access 接口视图 设为 access 口
port default vlan 10 接口视图 access 口划进 VLAN 10
port link-type trunk 接口视图 设为 trunk 口
port trunk allow-pass vlan 10 20 接口视图 trunk 允许通过的 VLAN
port trunk pvid vlan 10 接口视图 trunk 口 PVID
port link-type hybrid 接口视图 设为 hybrid 口
port hybrid tagged vlan 10 接口视图 hybrid 口 VLAN 10 带标签
port hybrid untagged vlan 20 接口视图 hybrid 口 VLAN 20 不带标签
display vlan 任意视图 看 VLAN 与成员口
display port vlan 任意视图 看接口的 VLAN 配置

3.2.2 完整配置模板

一个部门两层楼的典型场景:接入交换机 SW1 接财务(VLAN 10)和研发(VLAN 20),通过 trunk 上联核心 SW2(SW2 上有网关,第 6 章展开)。

# 接入交换机 SW1
system-view
sysname SW1

# 批量创建业务 VLAN
vlan batch 10 20
vlan 10
 description FINANCE
 quit
vlan 20
 description RND
 quit

# VLAN 1 不放业务,但仍出现在所有口上,这里仅作说明

# 财务接入:access 口,PVID 自动等于 10
interface GigabitEthernet0/0/1
 description DESK-FIN-01
 port link-type access
 port default vlan 10
 quit

# 研发接入:access 口
interface GigabitEthernet0/0/2
 description DESK-RND-01
 port link-type access
 port default vlan 20
 quit

# 上联核心:trunk 口,允许 VLAN 10、20 通过
interface GigabitEthernet0/0/24
 description TO-CORE-SW2-GE0/0/1
 port link-type trunk
 port trunk allow-pass vlan 10 20
 quit

quit
save

核心交换机 SW2 的对应配置(这里只配二层部分,网关见第 6 章):

system-view
sysname CORE-SW2
vlan batch 10 20

# 下联接接入交换机的 trunk 口
interface GigabitEthernet0/0/1
 description TO-SW1-GE0/0/24
 port link-type trunk
 port trunk allow-pass vlan 10 20
 quit

quit
save

一个能看出 hybrid 价值的场景——同一个接口要同时承载「终端所在 VLAN(不带标签)」和「另一个管理 VLAN(带标签)」,而 trunk 口做不长这件事(trunk 的 PVID 只能是 VLAN 1 那个不带标签的例外,其余全部带标签)。用 hybrid 就能精确指定:

# 会议一体机接口:数据 VLAN 20 不带标签、管理 VLAN 99 带标签
interface GigabitEthernet0/0/5
 description MEETING-ROOM-SEAT-01
 port link-type hybrid
 port hybrid pvid vlan 20
 port hybrid untagged vlan 20
 port hybrid tagged vlan 99
 quit

⚠ 注意:把 VLAN 99 配成 untagged 也能配上去,但那意味着这个口会把 VLAN 99 的帧剥掉标签送给终端——终端根本不属于 VLAN 99,这种配置不会带来隔离效果,反而容易误判。想要「座位之间互不可见」,正确工具是端口隔离(第 9 章),不是 hybrid。

3.2.3 逐行讲解

先讲创建 VLAN。vlan 10 这条命令在一次执行中既「创建」也「进入」——VLAN 不存在就创建,存在就进它的视图加描述。vlan batch 10 20 30 可以一次建多个,也可以用 vlan batch 10 to 20 建一段连续的。

命令 作用 新手常错
vlan batch 10 20 批量创建 用逗号分隔会报错,空格分隔才对
vlan 10 进入 VLAN 视图 VLAN 1 是缺省 VLAN,删除会报错,不能删
description FINANCE VLAN 说明 写在 VLAN 视图里,不是全局
port link-type access 设接入口 顺序很重要,先改类型再指定 VLAN
port default vlan 10 指定缺省 VLAN 只在 access 口有效,trunk 口不认
port trunk allow-pass vlan 10 20 trunk 放行 不配这一条,trunk 只放行 VLAN 1,业务全不通
port trunk allow-pass vlan all 放行所有 VLAN 不推荐,会放行不该放的 VLAN
port trunk pvid vlan 10 trunk 口 PVID 缺省 PVID=1,两端 PVID 不一致会出问题
port link-type hybrid 设为 hybrid 口 必须先改成 hybrid 类型才能配 tagged/untagged
port hybrid tagged vlan 10 hybrid 带标签 语法是「tagged + vlan + 号」,不是「vlan 号 + tagged」
port hybrid untagged vlan 20 hybrid 不带标签 一个 VLAN 在同一个口上不能既 tagged 又 untagged

access 口有个细节值得强调:port default vlan 10 这条命令配完之后,access 口的 PVID 也随之变成 10。PVID(Port VLAN ID)是「接口收到不带标签的帧时,认为它属于哪个 VLAN」。access 口收到的一定是不带标签的帧(终端不会打标签),所以它的 PVID 决定了这些帧归哪个 VLAN。用 display port vlan 能看到:

<HUAWEI> display port vlan

输出里 PVID 与 Port Link Type 两列一目了然,Trunk VLAN List 显示 trunk 口允许的 VLAN——这个命令是查 VLAN 配置最快的入口,比翻 display current-configuration 快得多。

trunk 口最容易踩的坑是忘记配 port trunk allow-pass vlan。trunk 口的缺省行为是:只允许 VLAN 1 通过。所以两条 trunk 互联时,如果只在接入交换机上建了 VLAN 10,两边 trunk 都没配 allow-pass vlan 10,那么 VLAN 10 的帧在 trunk 上会被直接丢弃——现象是「同 VLAN 内、跨交换机不通,但同一台交换机上同 VLAN 是通的」。这个现象是判断「trunk 没放行」的重要线索。

PVID 在 trunk 上的作用也要讲清楚。trunk 口收到一个不带标签的帧时,会认为它属于 PVID 指定的 VLAN(缺省 VLAN 1)。发出时,PVID 指定的那个 VLAN 会不带标签发出,其他 VLAN 都带标签。所以:

  • 两端 trunk 的 PVID 必须一致。一端 PVID=1、另一端 PVID=10,那么从 A 发给 VLAN 10 的帧不带标签,B 收到后按自己的 PVID=1 归入 VLAN 1,VLAN 10 的业务就串到 VLAN 1 去了。这类故障极难查,现象是「相同 VLAN 不通,反而跨 VLAN 能通」。
  • trunk 的 PVID 一般保持缺省(VLAN 1)就好,除非为了对接某些只认不带标签帧的老设备。

hybrid 口的语法是最容易写错的。华为的写法是「动作在前,VLAN 在后」:port hybrid tagged vlan 10 / port hybrid untagged vlan 20。而 H3C 正好反过来:「VLAN 在前,动作在后」:port hybrid vlan 10 tagged。这是双厂商混编时最高频的抄错点,抄书的时候一定看清。

hybrid 的实际价值在于「一个物理口出多个 VLAN,且可以逐个 VLAN 决定带不带标签」。经典用法有两个:一是同一个口既给终端送不带标签的数据 VLAN、又给需要带标签的设备(如管理流量)送带标签的 VLAN;二是对接某些特殊设备(IP 电话的语音 VLAN + 数据 VLAN、部分国产老平台)。这是 trunk 做不到的——trunk 里除了 PVID 那一个例外,其余 VLAN 一律带标签。而「同一 VLAN 内终端之间互不可见」这个需求,属于端口隔离的范畴(第 9 章),不是 hybrid。

这里用一张图把三种接口的标签行为彻底钉死,图里的「PVID」一律假设为 10:

Access 口(PVID=10)
  收:不带标签 → 打标签 VLAN10 → 内部转发
  发:内部 VLAN10 → 剥标签 → 不带标签发出
  (收到带标签的帧?缺省丢弃,除非配了其他策略)

Trunk 口(PVID=1,允许 10、20)
  收:不带标签 → 归 PVID(VLAN1)
      带标签 VLAN10/20 → 认标签入对应 VLAN
  发:VLAN1 → 不带标签发出
      VLAN10/20 → 带标签发出

Hybrid 口(PVID=20,VLAN20 untagged,VLAN10 tagged)
  收:不带标签 → 归 PVID(VLAN20)
      带标签 VLAN10 → 认标签入 VLAN10
  发:VLAN20 → 不带标签发出
      VLAN10 → 带标签发出

看懂这张图,VLAN 的排障就完成了 80%。你可以拿任何一个现场问题往这张图上套:先问「这个帧从哪个口进、带不带标签」,再问「交换机怎么归类」,最后问「从哪个口出、该不该带标签」。三步走完,问题基本就自己浮出来了。

Trunk 与 Access 混用导致的经典事故

有一个场景值得单独讲,因为它每年都在无数机房里重复上演:把交换机之间的连线配成了 access 口。

假设 SW1 和 SW2 之间用一根线连接,两端都配成 access 口、都归 VLAN 10。看起来「能通」,而且同一时刻确实能通——但只在 VLAN 10 内通。如果这时有人想在这条线上再加一个 VLAN 20 的业务,无论怎么配 trunk 都没用,因为 access 口根本不认标签:SW1 把 VLAN 20 的帧打上标签从 access 口发出去(access 口行为是剥标签),标签被剥掉,SW2 收到后按自己的 PVID 归入 VLAN 10——VLAN 20 的业务全被塞进 VLAN 10 了。

更隐蔽的变体是:SW1 端是 trunk、SW2 端是 access。这时 SW1 发出的带标签帧到达 SW2 的 access 口,access 口不认标签,缺省直接丢弃——现象是「大量丢包、偶发能通」。排查这类问题,display port vlan 是最快的入口:端口之间互联的两个口,一边显示 access、一边显示 trunk,一眼就能看出来。

正确的做法只有一条:交换机之间的互联必须两端都是 trunk(或都是 hybrid 且标签规则匹配),绝不能一端 access 一端 trunk。

GVRP 命令已核实(H3C 侧):端口上的注册模式命令是 gvrp registration { fixed | forbidden | normal },其中 normal 表示允许该端口动态注册/注销 VLAN(也即最常用的模式)。H3C 的 VLAN 注册协议主线已演进到 MVRP(Multiple VLAN Registration Protocol,多 VLAN 注册协议),命令族为 mvrp global enable / mvrp enable / mvrp registration,并保留 mvrp gvrp-compliance enable 用于与 GVRP 兼容。也就是说,在新版本 H3C 设备上你更可能看到的是 MVRP 而不是 GVRP。

⚠ 版本差异:华为侧 gvrp / gvrp registration 命令的支持情况与 VRP 版本、型号强相关,部分新版本已不再支持;H3C 侧则是 GVRP→MVRP 的演进。两边都要先 ? 确认命令是否存在。无论哪家,生产环境仍建议静态配置 VLAN,不要依赖注册协议自动传播。

VLAN 号规划与 IP 规划的联动

VLAN 号和 IP 网段不是两件独立的事,而是一套规划的两面。工程上常见的规划方式是「VLAN 号 + 8 = 第三段网络号」,比如 VLAN 10 对应 192.168.10.0/24、VLAN 20 对应 192.168.20.0/24、VLAN 30 对应 192.168.30.0/24。这种映射的妙处在于:display arp 看到 192.168.37.5,你立刻就反应出「这是 VLAN 37 的设备」,连查表都不用。

实际的 VLAN 规划一般按功能分段,下面是一个中型企业网的典型规划:

VLAN 号段 用途 网段 说明
1 保留 — 不放业务,只作未配置口/管理口
10~19 办公终端 192.168.10.0/24 起 每个部门一个 VLAN
20~29 研发/测试 192.168.20.0/24 起 与办公隔离
30~39 门禁/监控/道闸 192.168.30.0/24 起 摄像头、门禁、IoT
40~49 无线用户 192.168.40.0/24 起 AP 的 SSID 业务 VLAN
50~59 语音 192.168.50.0/24 起 Voice VLAN
90~99 管理/带外 10.200.99.0/24 起 交换机、AP、AC 管理地址
100~199 预留 — 后续扩展
900+ 特殊用途 — 端口隔离、IRF MAD 等

这份规划不是要你照抄,而是要你意识到:VLAN 号是一种会存在十年以上的约定,项目一开始就规划好,后面就不会出现「VLAN 25 到底是哪个部门的」这类抓狂时刻。

VLAN 与广播域的定量认识

VLAN 的价值可以用数字说清楚。假设一个 500 人的办公网,全部放在一个 VLAN 里,每天会有什么现象?

  • 广播风暴的传播面是全网。一台中病毒的机器每秒发几千个广播帧,这五千多个帧要复制到所有 24 个接入口,每台 PC 的网卡都要中断处理一次,CPU 被吃掉。
  • ARP 请求的传播面是全网。500 台机器每个平均每 5 分钟发一次 ARP,也就是每秒将近 2 个 ARP,全部广播到所有终端。
  • 故障的传播面是全网。ARP 攻击、DHCP 伪造、STP 震荡,一台机器就能拖垮整个办公网。

切成 10 个 VLAN 之后,上面每一条的影响面都缩到原来的十分之一。这是 VLAN 最朴素的价值:它不是「隔离」,而是「限制故障半径」。

从协议实现角度还有一点要补充:交换机为每个 VLAN 维护独立的 MAC 地址表和独立的生成树实例(在 PVST/MSTP 下)。这意味着 VLAN 之间的转发决策是彻底独立的——VLAN 10 里即使出现环路、即使 MAC 表被打爆,也不会影响 VLAN 20 的转发。这个设计正是 VLAN 让人放心的根本原因。

QinQ 与 VLAN 嵌套(扩展了解)

最后补一个进阶概念,知道它叫什么、大概解决什么问题就够了,细节不在本章范围。

QinQ(也叫 VLAN 堆叠、Double Tagging)是把两层 VLAN 标签叠在一起:外层标签(Service VLAN,S-VLAN)由运营商网络使用,内层标签(Customer VLAN,C-VLAN)由客户自己使用。这样客户自己的 VLAN 规划与运营商的 VLAN 规划互不干扰,运营商只要给每个客户分配一个 S-VLAN 就能承载客户的几千个 VLAN。典型应用是运营商的宽带接入、多租户园区。

华为的命令族是 qinq vlan-translation、port vlan-stacking;H3C 是 qinq enable、qinq vid。两家的命令差异较大,且对芯片支持有要求,实际部署时以型号手册为准。本章只需记住:你看到配置里出现了两个 802.1Q 标签,那是 QinQ,不是配错了。

VLAN 划分方式的几种思路

工程上划分 VLAN 有几种思路,选哪种取决于管理需求,而不只是技术可行性:

划分方式 原理 优点 缺点 典型场景
按接口划分 接入哪个口的终端就归哪个 VLAN 简单、确定性强、性能好 换工位就要改配置 绝大多数企业网
按 MAC 地址划分 依据源 MAC 与 VLAN 绑定 跟着人走 MAC 易伪造、配置量大 极少用
按 IP 子网划分 依据源 IP 与 VLAN 绑定 与地址规划一致 依赖 IP 配置正确 特殊场景
按协议划分 依据以太网协议类型 — 不实用 基本淘汰

华为支持基于 MAC 和 IP 子网的 VLAN 划分(命令族 mac-vlan、ip-subnet-vlan),但实际项目里 99% 用的是按接口划分。为什么?因为按接口划分的行为是最确定的:你在哪个口插线,你就是哪个 VLAN,谁都不会配错。基于 MAC 的方式在「员工电脑换到别的会议室」时不用改配置,听着很美,但只要终端换个网卡、或者有人改了 MAC,立刻就乱——而且 MAC 地址本身可伪造,安全性上不成立。

如果确实需要按 MAC 划分,华为的配置骨架是:

# 华为:基于 MAC 地址划分 VLAN(在 VLAN 视图里绑 MAC)
[HUAWEI] vlan 10
[HUAWEI-vlan10] mac-vlan mac-address 00e0-fc12-3456 priority 0
[HUAWEI-vlan10] quit
[HUAWEI] interface GigabitEthernet0/0/1
[HUAWEI-GigabitEthernet0/0/1] mac-vlan enable

⚠ 基于 MAC 的 VLAN 划分需要接口上开启 mac-vlan enable,且同一接口下可以启用多种划分方式,优先级为 MAC > 子网 > 接口,具体优先级顺序请以设备手册为准。

Voice VLAN(语音 VLAN)

Voice VLAN 是为了让 IP 电话「插在 PC 和交换机之间」这种接法能正常工作而设计的。典型场景:办公桌上只有一根网线,IP 电话接交换机,PC 接 IP 电话后面的 PC 口。数据流是:PC → IP 电话 → 交换机。希望 PC 的流量走数据 VLAN(比如 VLAN 20),话机自己的流量走语音 VLAN(比如 VLAN 100),并且语音流量要做 QoS 优先。

关键点在于:IP 电话是能识别 802.1Q 标签的。所以交换机对 IP 电话的流量打语音 VLAN 标签发出,话机自己会给语音流量打标签、把 PC 的流量作为不带标签的透传。交换机的动作是:收到不带标签的帧 → 按 PVID 归入数据 VLAN(PC 的数据);收到带语音 VLAN 标签的帧 → 归入语音 VLAN(话机语音)。这正是 hybrid 口的天然用武之地。

# 华为:Voice VLAN 完整配置
[HUAWEI] vlan batch 20 100

# 全局开启 Voice VLAN 100,并设置语音 VLAN 的老化时间与安全模式
[HUAWEI] voice-vlan 100 enable

# 进入接话机的接口
[HUAWEI] interface GigabitEthernet0/0/6
[HUAWEI-GigabitEthernet0/0/6] port link-type hybrid
[HUAWEI-GigabitEthernet0/0/6] port hybrid untagged vlan 20
[HUAWEI-GigabitEthernet0/0/6] voice-vlan 100 enable
# auto 模式:由交换机根据话机发出的报文自动识别并加入语音 VLAN
[HUAWEI-GigabitEthernet0/0/6] voice-vlan mode auto
[HUAWEI-GigabitEthernet0/0/6] quit

实际工程里,话机识别有两条路:自动识别(auto) 是靠 OUI 或 LLDP 让交换机认出来「这是电话,给它分语音 VLAN」;手工指定(manual) 是直接把这个口划进语音 VLAN。auto 更省事但对老旧话机不一定认得出,manual 更确定但 PC 的流量也会串进语音 VLAN,需要额外配合 MAC 或策略。多数项目的做法是:先尝试 auto + 配置话机厂商的 OUI,认不出来再退到 manual。

语音流量的优先级:语音 VLAN 里的报文一般会被打上较高的 802.1p 优先级(PCP=5 或 6),这样交换机在拥塞时优先转发语音。这一层逻辑是 Voice VLAN 真正起作用的前提——没有 QoS 优先级的 Voice VLAN 只是个有名字的 VLAN。

⚠ 版本差异:voice-vlan mode auto 在部分型号上需要先配置 OUI 才能识别;voice-vlan security enable 用于防止假冒语音流量的攻击,缺省关闭。华为 Voice VLAN 的命令集合在不同版本上部分参数有差异,请以 voice-vlan ? 为准。

GVRP 与 VLAN 自动传播

GVRP(GARP VLAN Registration Protocol,GARP VLAN 注册协议)是一种让 VLAN 配置在交换机之间自动传播的协议:在一台交换机上创建 VLAN 10,通过 GVRP 可以让相邻交换机的 trunk 口自动放行 VLAN 10。听着很美,但工程上基本没有人用,原因是:

  • 只能在同厂商设备间跑,跨厂商完全不兼容(虽然标准是 IEEE 802.1Q 的一部分,但各厂商实现差异大)。
  • 收敛慢、报文多,大规模网络下会拖累性能。
  • 容易配错,VLAN 自动传播之后「哪里冒出来一个 VLAN 3」这种情况很难追。
  • 安全风险,恶意设备可以让交换机注册大量 VLAN,耗尽资源。

现代网络的通行做法是:VLAN 全部手工静态配置,用自动化工具(Ansible、脚本)批量下发,而不是让协议自己传播。如果真要在老设备上配,命令骨架是:

# 华为:开启 GVRP(全局 + trunk 口)
[HUAWEI] gvrp
[HUAWEI] interface GigabitEthernet0/0/24
[HUAWEI-GigabitEthernet0/0/24] port link-type trunk
[HUAWEI-GigabitEthernet0/0/24] gvrp
[HUAWEI-GigabitEthernet0/0/24] gvrp registration normal

⚠ GVRP 在部分新版本 VRP 上已被移除或默认不支持(厂商在推广更简单的手工/自动化方案),配置前请确认型号与版本是否支持 gvrp 命令;生产环境不建议使用 GVRP。

VLAN 间通信的三种方式

同一台交换机上,VLAN 10 和 VLAN 20 完全隔离,想让它们通信,必须引入三层转发设备。三种经典方案:

方案一:每个 VLAN 一个物理路由器接口。路由器有几个物理口,每个口接交换机的一个 access 口,一个口一个网段。缺点很明显:VLAN 多了就不够口,且每加一个 VLAN 就要加一根线和一个路由器口,扩展性极差。

方案二:单臂路由(Router on a Stick)。路由器和交换机只用一根 trunk 线连接,路由器上创建子接口(GigabitEthernet0/0/0.10、.20),每个子接口对应一个 VLAN,配各自的网关地址。优点是一根线解决所有 VLAN;缺点是所有跨 VLAN 流量都要经过这一根线,带宽成为瓶颈,而且路由器做二层转发性能远不如交换机。适合小型网络、临时方案。

方案三:三层交换机 VLANIF(SVI)。在三层交换机上为每个 VLAN 创建一个三层虚拟接口 Vlanif 10,配网关地址,VLAN 内的终端把网关指向它,三层交换机直接路由。优点是性能最高、不需要额外设备、扩展性好;缺点是三层交换机比二层贵。这是如今的主流方案,第 6 章会详细讲。

方案二(单臂路由)              方案三(VLANIF)
                                   
  [路由器]                      [三层交换机]
   GE0/0/0.10 ──┐                Vlanif10: 192.168.10.1
   GE0/0/0.20 ──┤                Vlanif20: 192.168.20.1
                │                      │
           [trunk]                 [trunk 或直接接终端]
                │                      │
          [二层交换机]            VLAN10 / VLAN20 终端
           /        \
      VLAN10      VLAN20

三种方案的对比:

方案 带宽瓶颈 扩展性 成本 适用场景
物理口 per VLAN 无(多链路) 差(口数受限) 高 极小规模
单臂路由 有(单链路汇聚所有 VLAN) 中 低(省交换机) 小型办公、临时
VLANIF 无(交换机内部硬件转发) 好 中 所有现代企业网

3.3 H3C 设备配置详解

3.3.1 命令行基础速览

H3C 的 VLAN 命令结构与华为几乎一一对应,但有几处决定性的语法差异必须记牢:

命令 在哪敲 干什么
vlan 10 系统视图 创建/进入 VLAN
name FINANCE VLAN 视图 VLAN 名称(华为用 description)
port link-type access 接口视图 access 口
port access vlan 10 接口视图 access 口划入 VLAN 10(华为是 port default vlan)
port link-type trunk 接口视图 trunk 口
port trunk permit vlan 10 20 接口视图 trunk 放行(华为是 allow-pass)
port trunk pvid vlan 10 接口视图 trunk PVID
port link-type hybrid 接口视图 hybrid 口
port hybrid vlan 10 tagged 接口视图 hybrid 带标签(语法顺序与华为相反)
port hybrid vlan 20 untagged 接口视图 hybrid 不带标签
display vlan 任意视图 看 VLAN

3.3.2 完整配置模板

同样的组网,H3C 侧的完整配置如下,注意 access 划 VLAN 与 trunk 放行的关键字差异:

# H3C 接入交换机 SW1
system-view
sysname SW1

# 批量创建 VLAN(V7 直接用 vlan 10 20 或 vlan 10 to 20)
vlan 10
 name FINANCE
quit
vlan 20
 name RND
quit

# 财务接入
interface GigabitEthernet1/0/1
 description DESK-FIN-01
 port link-type access
 port access vlan 10
 quit

# 研发接入
interface GigabitEthernet1/0/2
 description DESK-RND-01
 port link-type access
 port access vlan 20
 quit

# 上联核心 trunk(注意 permit 而非 allow-pass)
interface GigabitEthernet1/0/24
 description TO-CORE-SW2-GE1/0/1
 port link-type trunk
 port trunk permit vlan 10 20
 quit

quit
save force

Hybrid 口的对应写法,注意 tagged/untagged 的位置:

# H3C hybrid:VLAN 号在前,动作在后
interface GigabitEthernet1/0/5
 description MEETING-ROOM-SEAT-01
 port link-type hybrid
 port hybrid vlan 20 untagged
 port hybrid vlan 99 tagged
 port hybrid pvid vlan 20
 quit

Voice VLAN:

# H3C Voice VLAN
[H3C] vlan 20 100
[H3C] interface GigabitEthernet1/0/6
[H3C-GigabitEthernet1/0/6] port link-type hybrid
[H3C-GigabitEthernet1/0/6] port hybrid vlan 20 untagged
[H3C-GigabitEthernet1/0/6] voice-vlan 100 enable
[H3C-GigabitEthernet1/0/6] voice-vlan mode auto

⚠ 版本差异:H3C Voice VLAN 的 voice-vlan mode auto 依赖 OUI 配置(需在 Voice VLAN 视图下 voice-vlan oui 添加话机厂商 OUI,或在接口上 voice-vlan mac-address 手工指定),不同型号命令略有差异,请以 voice-vlan ? 为准。

3.3.3 逐行讲解

H3C 命令 对应华为 差异要点
name FINANCE description FINANCE 关键字不同;但 H3C 的 VLAN 视图下也有 description(与 name 并存)
port access vlan 10 port default vlan 10 一条顶一条,都只有一条
port trunk permit vlan 10 20 port trunk allow-pass vlan 10 20 permit vs allow-pass
port hybrid vlan 10 tagged port hybrid tagged vlan 10 语序完全相反,最容易抄错
port hybrid vlan 20 untagged port hybrid untagged vlan 20 同上
vlan 10 to 20 vlan batch 10 to 20 华为要 batch 关键字
display vlan 10 display vlan 10 相同

有一个 H3C 的细节必须单独说,而且是照抄必踩的一条:官方文档明确「Trunk 端口和 Hybrid 端口之间不能直接切换,只能先设为 Access 端口,再配置为其他类型端口」。也就是说,一个口原先是 trunk、你想改成 hybrid,直接敲 port link-type hybrid 会失败,正确顺序是 port link-type access → port link-type hybrid。华为侧没有这条限制,可以直接切换——这是两家行为不一致的地方,混编改配置时特别容易卡住。

另一个 H3C 细节:port link-type access 在 Comware V7 上其实是缺省类型(官方原文「所有端口的链路类型均为 Access 类型」),所以对 access 口来说这条命令可以省略,只写 port access vlan 10 也能生效。但只要涉及 trunk 和 hybrid,就必须显式切换。工程上的建议是宁可多敲一条,把类型显式写出来——因为看配置的人需要一眼确认这个口是什么类型,省掉这一条会让后续维护者多花时间去猜。

另一个差异是 VLAN 名称。华为在 VLAN 视图里用 description;H3C 两种都能用——name(官方限定 132 个字符)和 description(1255 个字符)在 H3C 的 VLAN 视图下都存在,前者是简洁名字、后者是长描述,按需要选。所以网上说「H3C 只能用 name」并不准确。

在 trunk 的 PVID 处理上,H3C 与华为的行为是一致的:缺省 PVID = VLAN 1,发出时 PVID 对应的 VLAN 不带标签。同样要求两端 PVID 一致。

关于 V5 老设备的提示

如果现场的 H3C 设备是 Comware V5(S5500、S5120 早期型号等),VLAN 命令与 V7 有细微差异:port link-type access 之后依然是 port access vlan 10,这一点与 V7 相同;但 V5 上没有 port hybrid vlan 10 tagged 这种写法,而是 port hybrid vlan 10 tagged 也支持,另外 V5 的 display vlan 输出格式与 V7 不同(V5 显示 Tagged ports / Untagged ports 分列,V7 显示 UT: ... / TG: ...)。看到输出格式不同不要慌,先 display version 确认版本。

接口 VLAN 属性的另一种视角:PVID 与「私有 VLAN」

前面反复提到 PVID,这里用一句大白话把它定死:PVID 是「这个口在没看到标签时,默认把帧当成哪个 VLAN」。它只在两种情况下起作用:一是收到不带标签的帧时,二是发出该 VLAN 的帧时决定要不要剥标签。

由此可以推出几条直接有用的结论:

  • access 口的 PVID 必然等于它所属的 VLAN,因为两者是一回事。
  • trunk 口的 PVID 缺省是 1,一般不去动它。
  • hybrid 口的 PVID 由你显式指定,但它只影响不带标签的帧怎么归类。
  • 端口隔离、Voice VLAN、QinQ 这些功能,全都是在 PVID 和标签规则上做文章。

H3C 还有一类在接入场景常用的机制叫「私有 VLAN(Private VLAN)」,它把一个 VLAN 再细分成隔离型(Isolated VLAN)和团体型(Community VLAN),用于运营商和大型企业宿舍网。这个机制在华为上叫做「MUX VLAN」,功能定位类似但命令完全不同,本章不展开,只需要记住:当你听到「同一个 VLAN 里也要再隔离一层」的时候,找的就是 MUX VLAN / Private VLAN,而不是 VLAN 本身。

VLAN 规划与端口数量的对应关系

工程上还有一个经常被忽略的细节:VLAN 的划分粒度和接入口的数量要匹配。假设一台 48 口接入交换机服务三个部门,每个部门 16 人,那么按部门划三个 VLAN、每个 VLAN 16 个口是最合理的。但如果某部门突然扩编到 30 人,这台交换机的口就不够了,需要从第二台交换机接过来——于是这个 VLAN 就横跨两台交换机了。

VLAN 横跨多台交换机带来两个后果:一是 trunk 上必须放行这个 VLAN,二是这个 VLAN 的生成树、广播域都变大。设计接入层时,通用的原则是:

原则 说明
一个 VLAN 尽量集中在一台或相邻几台接入交换机 减少 trunk 放行、减少生成树影响面
每个 VLAN 的终端数控制在 200 台以内 广播、ARP 压力可控
每个 VLAN 对应一个 /24 网段 地址充足、便于管理
一台接入交换机的业务 VLAN 数不超过 10 个 便于排查、便于 trunk 放行

这几条不是硬规定,但遵循它们能避开 90% 的「网络越建越乱」的坑。

3.4 华为 / H3C 命令对照表

功能 华为(VRP) H3C(Comware V7) 差异说明
创建 VLAN vlan 10 vlan 10 相同
批量创建 vlan batch 10 to 20 vlan 10 to 20 华为要 batch
VLAN 说明 description FINANCE name FINANCE 关键字不同
access 类型 port link-type access port link-type access 相同(V7 缺省即 access)
access 划 VLAN port default vlan 10 port access vlan 10 关键字不同
trunk 类型 port link-type trunk port link-type trunk 相同
trunk 放行 port trunk allow-pass vlan 10 20 port trunk permit vlan 10 20 allow-pass vs permit
trunk PVID port trunk pvid vlan 10 port trunk pvid vlan 10 相同
hybrid 带标签 port hybrid tagged vlan 10 port hybrid vlan 10 tagged 语序相反
hybrid 不带标签 port hybrid untagged vlan 20 port hybrid vlan 20 untagged 语序相反
hybrid PVID port hybrid pvid vlan 20 port hybrid pvid vlan 20 相同
查 VLAN display vlan 10 display vlan 10 输出格式略有差异
查接口 VLAN display port vlan display port vlan 相同
Voice VLAN 开启 voice-vlan 100 enable voice-vlan 100 enable 相同
Voice VLAN 模式 voice-vlan mode auto voice-vlan mode auto 相同
GVRP gvrp gvrp 均已不推荐使用

3.5 配置验证

VLAN 配置的验证思路是「从大到小」:先确认 VLAN 存在、成员口对不对,再确认接口类型与标签行为,最后用实际流量验证连通性。

第一步:确认 VLAN 与成员口。

<HUAWEI> display vlan

正常输出:

The total number of vlans is : 3
--------------------------------------------------------------------------------
U: Up;         D: Down;         TG: Tagged;         UT: Untagged;
MP: Vlan-mapping;               ST: Vlan-stacking;
#: ProtocolTransparent-vlan;    *: Management-vlan;
--------------------------------------------------------------------------------

VID  Type    Ports
--------------------------------------------------------------------------------
1    common  UT:GE0/0/3(D)     GE0/0/4(D)     GE0/0/5(D)     GE0/0/6(D)
             ...
10   common  UT:GE0/0/1(U)
             TG:GE0/0/24(U)
20   common  UT:GE0/0/2(U)
             TG:GE0/0/24(U)

读法很关键:UT 表示 untagged(不带标签发出),TG 表示 tagged(带标签发出)。GE0/0/1 在 VLAN 10 下显示 UT,说明它是 access 口;GE0/0/24 同时出现在 VLAN 10 和 VLAN 20 下且都是 TG,说明它是 trunk 口且放行了这两个 VLAN。如果某个 trunk 口在 VLAN 10 下面根本没出现,就是没放行 VLAN 10——这是排查「跨交换机不通」的第一手证据。

第二步:确认接口类型与 PVID。

<HUAWEI> display port vlan

正常输出:

Port                    Link Type    PVID  Trunk VLAN List
-------------------------------------------------------------------------------
GigabitEthernet0/0/1    access       10    -
GigabitEthernet0/0/2    access       20    -
GigabitEthernet0/0/24   trunk        1     1 10 20

这个命令能把「接口类型 / PVID / trunk 放行列表」一次性看全,比 display current-configuration 强得多。如果 Trunk VLAN List 里只有 1,那就是典型的「忘了 allow-pass」。

第三步:确认单个接口的完整二层配置。

<HUAWEI> display current-configuration interface GigabitEthernet0/0/1

或者更简洁:

<HUAWEI> display this

(需要先进入该接口视图。)

第四步:流量验证。这步不能省,因为上面三步都只能说「配置对」,只有数据通才算真通:

# 同一 VLAN 内两台终端互 ping
<HUAWEI> ping 192.168.10.20

# 看 MAC 是否学到了对端(学到说明二层通)
<HUAWEI> display mac-address 00e0-fc12-3456

# 跨交换机时,在对端交换机上也看一次 MAC

如果 ping 不通,先看 display mac-address vlan 10,如果 MAC 学不到,问题就在二层(VLAN 归属或 trunk 放行);如果 MAC 学到了但 ping 不通,问题大概率在 IP 层(地址、掩码、网关)。

第五步:用镜像口抓包(终极手段)。当以上手段都说不清时,配置一个端口镜像,把 trunk 口的报文抓下来看标签对不对:

# 华为:把 GE0/0/24 的入方向流量镜像到 GE0/0/10(接抓包电脑)
<HUAWEI> system-view
[HUAWEI] observe-port 1 interface GigabitEthernet0/0/10
[HUAWEI] interface GigabitEthernet0/0/24
[HUAWEI-GigabitEthernet0/0/24] port-mirroring to observe-port 1 inbound

抓包电脑上用 Wireshark 打开,看 802.1Q 标签里的 VID 是不是期望值,看 PVID 那个 VLAN 是否真的不带标签。能看报文标签,VLAN 问题就再没有玄学了。

H3C 的验证命令:

<H3C> display vlan
<H3C> display vlan 10
<H3C> display port vlan
<H3C> display mac-address

H3C 的 display vlan 输出格式是:

Total VLANs: 3
VLAN ID: 10
  VLAN type: Static
  VLAN description: FINANCE
  Tagged ports: GigabitEthernet1/0/24
  Untagged ports: GigabitEthernet1/0/1

字段名是 Tagged ports / Untagged ports,比华为的 TG/UT 更直白。

3.6 排错与故障树

症状 可能原因 排查命令 定位方法
同 VLAN 不跨交换机通,跨交换机不通 trunk 没放行 VLAN display vlan 10、display port vlan trunk 口不在 VLAN 成员里 → 补 allow-pass/permit
完全不通 接口类型错(access 口配了 trunk 命令)、VLAN 没建 display port vlan Link Type 与预期不符;VLAN 列表里缺失
跨 VLAN 能通、同 VLAN 不通 两端 trunk PVID 不一致 display port vlan 看 PVID 列 把两端 PVID 改一致(通常都回 1)
一个 VLAN 通、另一个不通 那个 VLAN 只在部分设备上建了 各设备 display vlan 对比 逐台建 VLAN
终端拿到的是 169.254 地址 接入口 VLAN 不对,DHCP 不在本 VLAN display port vlan 核对 access 口 PVID
语音不通、数据通 Voice VLAN 未启用或 OUI 未配 display voice-vlan 见下方说明
插上交换机就全网震荡 有人私接交换机,VLAN 1 泛洪 display stp、display mac-address 查接入侧是否私接、开 BPDU 保护(第 4 章)
hybrid 口配置不生效 语序写错(抄成了 H3C 写法) 命令报错 华为是 tagged vlan 10,不是 vlan 10 tagged

故障树(按「不通」这件事往下分):

VLAN 层不通
 |
 +-- 同交换机同 VLAN 不通
 |     +-- 两个口都在同一 VLAN?display port vlan
 |     +-- 接口被 shutdown?display interface brief
 |     +-- 端口隔离/端口安全挡了?(第 9 章)
 |
 +-- 跨交换机同 VLAN 不通
       +-- 两端 trunk 都放行了该 VLAN?display vlan N
       +-- trunk 类型对不对?display port vlan
       +-- 中间还有别的设备没放行?逐跳查
       +-- PVID 是否一致?
 |
 +-- 跨 VLAN 不通
       +-- 有没有三层网关?第 6 章
       +-- 终端网关指向对不对?

这里补一个 Voice VLAN 的专门排查点:语音不通但数据通,通常是三种原因之一——voice-vlan 100 enable 没在全局开、接口上 voice-vlan 100 enable 没开、或者 auto 模式下 OUI 没匹配上(话机不是主流品牌)。判断方法是用 display mac-address 看话机 MAC 有没有出现在语音 VLAN 里:出现在数据 VLAN 说明 OUI 没匹配上,压根没出现说明话机没在上电后发报文。

3.7 新手踩坑与注意事项

  1. trunk 忘了 allow-pass/permit——症状:跨交换机同 VLAN 不通;怎么避:配 trunk 后立刻 display vlan 确认该 VLAN 下出现了这个口。
  2. hybrid 语法抄反——症状:配置报错;怎么避:华为「tagged/untagged 在前」,H3C「VLAN 号在前」,记住这一句。
  3. trunk 两端 PVID 不一致——症状:同 VLAN 不通反而跨 VLAN 通;怎么避:trunk PVID 一律缺省(VLAN 1),不要乱改。
  4. 把 VLAN 1 用来跑业务——症状:STP 震荡时全网受影响,且容易被私接设备利用;怎么避:业务全部分到 VLAN 10 以上,VLAN 1 只留给管理口/未配置口。
  5. VLAN 建了一半——症状:某台交换机上网关通、终端不通;怎么避:新增 VLAN 时逐台确认,或用自动化脚本批量下发。
  6. access 口接交换机——症状:对端交换机的 VLAN 标签全丢,只能通一个 VLAN;怎么避:交换机之间的连线一律用 trunk(或 hybrid),不要用 access。
  7. VLAN 数量规划随意——症状:后期 VLAN 号冲突、跨网段混乱;怎么避:按「楼栋-楼层-职能」规划 VLAN 号段并写进 IP 规划文档。
  8. 以为 port default vlan 会同时改接口类型——症状:在 trunk 口上敲 port default vlan 10 报错;怎么避:port default vlan 只对 access 口有效。
  9. GVRP 以为能自动同步全网 VLAN——症状:VLAN 自动冒出来一堆、跨厂商不通;怎么避:不要用 GVRP,用自动化脚本静态下发。
  10. Voice VLAN 与数据 VLAN 混淆——症状:话机能上线但通话断续;怎么避:语音 VLAN 独立、并配 QoS 优先级;单靠 Voice VLAN 不打优先级不解决问题。

3.8 本章小结

VLAN 是二层网络的「第一性原理」,把本章浓缩成几条:

  • VLAN = 逻辑上的广播域切分,靠 802.1Q 标签(TPID 0x8100 + VID 12 位)实现,可用范围 1~4094。
  • 三种接口类型:access(只属于一个 VLAN,进出都不带标签)、trunk(多 VLAN,PVID 那个不带标签、其余带标签)、hybrid(可按 VLAN 单独指定带不带标签)。
  • 两家的语法差异:access 划 VLAN(port default vlan vs port access vlan)、trunk 放行(allow-pass vs permit)、hybrid 语序(正好相反)。
  • VLAN 间通信三方案:物理口 per VLAN、单臂路由、VLANIF;现代企业网一律 VLANIF。
  • Voice VLAN 靠 OUI/LLDP 自动识别话机,并配合 QoS 优先级才真正有用。
  • GVRP 不要用,静态 VLAN + 自动化下发才是正途。

自测题

  1. 一台 trunk 口两端 PVID 不一致(一端 1、一端 10),会出现什么奇怪现象?为什么?
  2. 华为和 H3C 的 hybrid 口配置命令有什么区别?请各写出一条把 VLAN 20 不打标签放行的命令。
  3. display vlan 10 输出里某 trunk 口没有出现在 VLAN 10 的成员列表中,说明什么?怎么修?
  4. 一个 IP 话机接在交换机上,PC 接在话机的 PC 口,希望语音走 VLAN 100、数据走 VLAN 20,交换机侧至少要配哪几条命令?
  5. 为什么现代企业网不推荐用单臂路由做 VLAN 间通信?
  1. 会出现「同 VLAN 不通、跨 VLAN 反而能通」的怪现象。原因:trunk 发出时 PVID 对应的 VLAN 不带标签,假设 A 端 PVID=1、B 端 PVID=10,A 发给 VLAN 10 的帧因为 A 的 PVID=1 所以带标签发出去没问题;但 A 发给 VLAN 1 的帧不带标签,B 收到后按自己的 PVID=10 归入 VLAN 10,于是「VLAN 1 的业务串进了 VLAN 10」。反过来现象也可能表现为某些 VLAN 不通。修法是把两端 PVID 统一(通常都设成缺省的 VLAN 1)。
  2. 华为:port hybrid untagged vlan 20;H3C:port hybrid vlan 20 untagged。语序相反是核心差异。
  3. 说明该 trunk 口没有把 VLAN 10 加入允许通过列表。修法:在该 trunk 口上执行 port trunk allow-pass vlan 10(华为)或 port trunk permit vlan 10(H3C),再用 display vlan 10 确认该口的 TG/Tagged ports 出现。
  4. 至少需要:全局创建 vlan batch 20 100;全局 voice-vlan 100 enable;接口上 port link-type hybrid、port hybrid untagged vlan 20、voice-vlan 100 enable、voice-vlan mode auto(若话机不被自动识别则需要配 OUI 或改成 manual)。若要语音优先,还需在 QoS 上给语音 VLAN 打高优先级。
  5. 单臂路由所有跨 VLAN 流量都要汇聚到路由器与交换机之间的那一条链路上,带宽成为瓶颈;同时路由器做二层转发性能远不如三层交换机的硬件转发;且 VLAN 越多,子接口越多,配置和维护成本上升。VLANIF 在交换机内部由硬件转发,无额外链路瓶颈,扩展性更好。

关于本书:《华为 / H3C 网络设备典型功能配置详解》—— 面向国内高校/企业网络环境, 华为 VRP 与 H3C Comware 双厂商并排配置的实操教材,共 43 章。 全书所有命令尽量有官方出处,查不到的显式标注「待核实」。 返回系列目录