第11篇:华为交换机 VLAN 创建与 Access/Trunk/Hybrid 端口配置

关键词:VLAN、Access、Trunk、Hybrid、PVID、端口类型、802.1Q标签、华为交换机


一、引言

在第10篇中,我们学习了三层交换机通过 VLANIF 接口为不同 VLAN 提供网关服务。但 VLANIF 只是一个三层虚拟接口,要让终端真正归属到某个 VLAN,还需要在二层端口上做正确配置。华为交换机端口支持三种工作模式:Access、Trunk 和 Hybrid。这三种模式决定了端口如何处理 VLAN 标签,是 VLAN 技术中最核心的配置内容。本文将系统讲解 VLAN 的创建方法和三种端口模式的配置要点。

二、核心概念

2.1 VLAN 编号与分类

VLAN ID 由 IEEE 802.1Q 标准定义,占用以太网帧中 4 字节 Tag 字段的 12 bit。

分类 VLAN ID 范围 说明
正常 VLAN 1~4094 标准 VLAN,所有交换机支持
默认 VLAN 1 所有端口默认属于 VLAN 1,不建议使用
系统 VLAN 特定范围 部分设备保留给系统使用
扩展 VLAN 4096~4114 少数设备支持,非 802.1Q 标准

2.2 802.1Q 标签结构

当数据帧携带 VLAN 标签时,会在源 MAC 地址和以太网类型之间插入 4 字节的 802.1Q Tag。

字段 长度 说明
TPID 2 字节 固定值 0x8100,标识这是带标签帧
Priority 3 bit 802.1p 优先级(0~7,QoS 使用)
CFI 1 bit 规范格式指示器,以太网通常设为 0
VLAN ID 12 bit VLAN 编号(1~4094)

2.3 三种端口模式的角色定位

端口类型 连接对象 VLAN 数量 出方向标签 华为独有
Access 终端设备(PC/打印机) 仅 1 个 永远不带标签 否
Trunk 交换机互联 多个 默认 VLAN 不带标签,其余带标签 否
Hybrid 灵活场景 多个 可逐 VLAN 控制加/不加标签 是

2.4 PVID(Port Default VLAN ID)

PVID 决定了端口收到无标签帧时,将该帧归属到哪个 VLAN。

端口类型 默认 PVID 修改方式
Access 端口加入的 VLAN ID 通过 port default vlan 间接修改
Trunk 1 port trunk pvid vlan X
Hybrid 1 port hybrid pvid vlan X

三、技术细节

3.1 VLAN 的创建与管理

# ========== 方法1:单条创建(进入 VLAN 视图)==========
[HUAWEI] vlan 10
[HUAWEI-vlan10] description Sales-Department
[HUAWEI-vlan10] quit

# ========== 方法2:批量创建(推荐)==========
[HUAWEI] vlan batch 10 20 30

# ========== 方法3:范围批量创建 ==========
[HUAWEI] vlan batch 100 to 120

# ========== 方法4:混合批量创建 ==========
[HUAWEI] vlan batch 10 20 100 to 110 200 300

# ========== 删除 VLAN ==========
[HUAWEI] undo vlan 30

# ========== 查看 VLAN 信息 ==========
<HUAWEI> display vlan
<HUAWEI> display vlan 10

3.2 Access 端口:入打标签,出剥标签

Access 端口只属于一个 VLAN。收到无标签帧时打上 PVID 标签;发送帧时去掉标签。

Access 端口:入打标签,出剥标签 - 图示

配置要点:

[HUAWEI] interface GigabitEthernet 0/0/1
[HUAWEI-GigabitEthernet0/0/1] port link-type access
[HUAWEI-GigabitEthernet0/0/1] port default vlan 10
[HUAWEI-GigabitEthernet0/0/1] description PC-Sales-01
[HUAWEI-GigabitEthernet0/0/1] quit

3.3 Trunk 端口:多 VLAN 通道

Trunk 端口允许多个 VLAN 的数据帧通过,使用 802.1Q 标签区分不同 VLAN。

概念 说明 默认行为
PVID 端口默认 VLAN VLAN 1
Allow-pass VLAN 列表 允许通过的 VLAN 集合 VLAN 1(部分设备 all)
Native VLAN PVID 对应的 VLAN 发送时不带标签

Trunk 端口:多 VLAN 通道 - 图示

配置要点:

[HUAWEI] interface GigabitEthernet 0/0/24
[HUAWEI-GigabitEthernet0/0/24] port link-type trunk
# 精确允许指定 VLAN
[HUAWEI-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 30
# 或允许所有 VLAN
[HUAWEI-GigabitEthernet0/0/24] port trunk allow-pass vlan all
# 修改 PVID
[HUAWEI-GigabitEthernet0/0/24] port trunk pvid vlan 10

3.4 Hybrid 端口:灵活标签控制

Hybrid 端口是华为交换机的独特实现,允许对不同 VLAN 分别设置出方向是否携带标签。

# Hybrid 端口的三条核心命令
[HUAWEI] interface GigabitEthernet 0/0/5
[HUAWEI-GigabitEthernet0/0/5] port link-type hybrid
[HUAWEI-GigabitEthernet0/0/5] port hybrid pvid vlan 10
# 设置端口收到无标签帧时归入 VLAN 10

[HUAWEI-GigabitEthernet0/0/5] port hybrid tagged vlan 20 30
# VLAN 20 和 30 的帧出端口时携带标签

[HUAWEI-GigabitEthernet0/0/5] port hybrid untagged vlan 10 40
# VLAN 10 和 40 的帧出端口时不带标签

[HUAWEI-GigabitEthernet0/0/5] quit

3.5 批量端口配置技巧

# 方式1:连续端口范围
[HUAWEI] interface range GigabitEthernet 0/0/1 to GigabitEthernet 0/0/10

# 方式2:离散端口列表
[HUAWEI] interface range GigabitEthernet 0/0/1, GigabitEthernet 0/0/3, GigabitEthernet 0/0/5

# 方式3:混合范围与离散
[HUAWEI] interface range GigabitEthernet 0/0/1 to GigabitEthernet 0/0/5, GigabitEthernet 0/0/10

注意:使用 interface range 进入批量视图后,操作命令会对范围内所有端口生效;切换到下一个 interface range 时 VRP 会自动退出上一个范围视图。

四、实战配置/案例分析

4.1 案例一:企业网三层交换机完整 VLAN 配置

网络需求:承接第10篇的 VLANIF 场景,在核心三层交换机上配置 VLAN 和端口。

部门 VLAN 网段 接入端口
销售部 10 192.168.10.0/24 GE0/0/1 ~ GE0/0/5
技术部 20 192.168.20.0/24 GE0/0/6 ~ GE0/0/10
财务部 30 192.168.30.0/24 GE0/0/11 ~ GE0/0/15
服务器区 100 192.168.100.0/24 GE0/0/20
<HUAWEI> system-view
[HUAWEI] sysname Core-S6730

# ============ 1. 创建 VLAN ============
[Core-S6730] vlan batch 10 20 30 100
[Core-S6730] vlan 10
[Core-S6730-vlan10] description Sales
[Core-S6730-vlan10] quit
[Core-S6730] vlan 20
[Core-S6730-vlan20] description IT
[Core-S6730-vlan20] quit
[Core-S6730] vlan 30
[Core-S6730-vlan30] description Finance
[Core-S6730-vlan30] quit
[Core-S6730] vlan 100
[Core-S6730-vlan100] description Server
[Core-S6730-vlan100] quit

# ============ 2. 配置 Access 端口 ============
[Core-S6730] interface range GigabitEthernet 0/0/1 to GigabitEthernet 0/0/5
[Core-S6730-Port-range] port link-type access
[Core-S6730-Port-range] port default vlan 10
[Core-S6730-Port-range] description Sales-PC
[Core-S6730-Port-range] quit

[Core-S6730] interface range GigabitEthernet 0/0/6 to GigabitEthernet 0/0/10
[Core-S6730-Port-range] port link-type access
[Core-S6730-Port-range] port default vlan 20
[Core-S6730-Port-range] description IT-PC
[Core-S6730-Port-range] quit

[Core-S6730] interface range GigabitEthernet 0/0/11 to GigabitEthernet 0/0/15
[Core-S6730-Port-range] port link-type access
[Core-S6730-Port-range] port default vlan 30
[Core-S6730-Port-range] description Finance-PC
[Core-S6730-Port-range] quit

[Core-S6730] interface GigabitEthernet 0/0/20
[Core-S6730-GigabitEthernet0/0/20] port link-type access
[Core-S6730-GigabitEthernet0/0/20] port default vlan 100
[Core-S6730-GigabitEthernet0/0/20] description Server-01
[Core-S6730-GigabitEthernet0/0/20] quit

# ============ 3. 配置下行 Trunk 端口(连接接入层交换机)============
[Core-S6730] interface GigabitEthernet 0/0/24
[Core-S6730-GigabitEthernet0/0/24] description To-Access-SW
[Core-S6730-GigabitEthernet0/0/24] port link-type trunk
[Core-S6730-GigabitEthernet0/0/24] port trunk pvid vlan 1
[Core-S6730-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 30 100
[Core-S6730-GigabitEthernet0/0/24] quit

# ============ 4. 配置 VLANIF 网关(第10篇内容)============
[Core-S6730] interface Vlanif 10
[Core-S6730-Vlanif10] ip address 192.168.10.1 24
[Core-S6730-Vlanif10] quit

[Core-S6730] interface Vlanif 20
[Core-S6730-Vlanif20] ip address 192.168.20.1 24
[Core-S6730-Vlanif20] quit

[Core-S6730] interface Vlanif 30
[Core-S6730-Vlanif30] ip address 192.168.30.1 24
[Core-S6730-Vlanif30] quit

[Core-S6730] interface Vlanif 100
[Core-S6730-Vlanif100] ip address 192.168.100.1 24
[Core-S6730-Vlanif100] quit

验证:

# 查看 VLAN 列表
<Core-S6730> display vlan
  The total number of existing VLAN is: 5
  VLAN ID: 10  State: enabled
  VLAN ID: 20  State: enabled
  VLAN ID: 30  State: enabled
  VLAN ID: 100  State: enabled

# 查看端口 VLAN 归属
<Core-S6730> display port vlan 10
  VLAN ID: 10
  Port:
  GigabitEthernet0/0/1
  GigabitEthernet0/0/2
  GigabitEthernet0/0/3
  GigabitEthernet0/0/4
  GigabitEthernet0/0/5

# 查看 VLANIF 网关状态
<Core-S6730> display ip interface brief
  * represent interface is down
  Interface          IP Address      Physical Protocol
  Vlanif10           192.168.10.1    up       up
  Vlanif20           192.168.20.1    up       up
  Vlanif30           192.168.30.1    up       up
  Vlanif100          192.168.100.1   up       up

4.2 案例二:端口类型配错导致终端无法通信

故障描述:某台 PC 连入交换机 GE0/0/3 端口后无法获取 IP,ping 网关不通。

排查过程:

# 步骤1:检查物理链路
<Core-S6730> display interface GigabitEthernet 0/0/3
  GigabitEthernet0/0/3 current state : UP
  Line protocol current state : UP    ← 物理层正常

# 步骤2:检查端口配置
<Core-S6730> display current-configuration interface GigabitEthernet 0/0/3
  port link-type trunk                 ← 问题:应该连 PC 却配成了 Trunk
  port trunk allow-pass vlan 10

# 步骤3:分析原因
# PC 发送 ARP 请求(无标签帧),Trunk 端口收到后归入 PVID(默认 VLAN 1)
# 而 VLANIF 网关在 VLAN 10,ARP 请求到达不了网关

# 修复:改为 Access 端口
[Core-S6730] interface GigabitEthernet 0/0/3
[Core-S6730-GigabitEthernet0/0/3] port link-type access
[Core-S6730-GigabitEthernet0/0/3] port default vlan 10
[Core-S6730-GigabitEthernet0/0/3] quit

# 验证:PC 可以正常通信
<Core-S6730> ping -a 192.168.10.1 192.168.10.50
  192.168.10.50 is alive, loss rate: 0%

4.3 案例三:Trunk 链路两端 Allow-pass 不匹配

故障描述:核心交换机与接入交换机级联后,VLAN 30 的 PC 无法与 VLAN 10 的 PC 跨 VLAN 通信;同时,VLAN 100(服务器区)也无法被接入交换机下挂的设备访问到(因为接入交换机的 Trunk 也未放行 VLAN 100)。

# 核心交换机 Trunk 配置
<Core-S6730> display current-configuration interface GigabitEthernet 0/0/24
  port trunk allow-pass vlan 10 20 30 100

# 接入交换机 Trunk 配置
<Access-SW> display current-configuration interface GigabitEthernet 0/0/24
  port trunk allow-pass vlan 10 20    ← 漏了 VLAN 30 和 100

# 根因:
# 1. VLAN 30 的数据帧从核心交换机发出时被允许通过(已声明 allow-pass)
#    但到达接入交换机后,该 Trunk 未允许 VLAN 30 通过,帧被丢弃
# 2. VLAN 100 同样被接入交换机 Trunk 拒收,导致下挂设备无法访问服务器区
#    注:接入交换机本身的 VLAN 30 PC 之间通讯正常(帧不上行 Trunk),但跨 VLAN 到
#        核心交换机 VLANIF 网关时会失败

# 修复:补齐接入交换机 Trunk 的 allow-pass 列表
[Access-SW] interface GigabitEthernet 0/0/24
[Access-SW-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 30 100
[Access-SW-GigabitEthernet0/0/24] quit

# 验证:跨 VLAN 通信恢复
<Core-S6730> ping -a 192.168.30.1 192.168.10.50
  192.168.10.50 is alive, loss rate: 0%

注意:ping -a 后必须是本交换机已配置的 IP(如 192.168.30.1 即 VLANIF 30 的网关),不可写 PC 的 IP(如 192.168.30.50),否则 ping 一定失败。这里有一个坑,就是ping测试时一定要先把PC的防火墙关掉,否则PC是禁ping的。

五、总结

端口类型 入方向(无标签帧) 出方向(标签处理) 典型场景
Access 打 PVID 标签 所有帧剥标签 连接 PC、打印机、IP 电话
Trunk 保留已有标签;无标签帧打 PVID PVID VLAN 剥标签,其余带标签 交换机级联、连路由器
Hybrid 打 PVID 标签 tagged 列表带标签,untagged 列表剥标签 AP 多 SSID、连交换机+终端
排错检查清单 对应命令
VLAN 是否创建 display vlan
端口模式是否正确 display current-configuration interface X
Trunk 两端 allow-pass 是否一致 两端对比配置
VLANIF 是否 UP display interface Vlanif X
端口物理状态 display interface X

思考

  1. 一台 PC 连接 Access 端口,该端口的 PVID 是 VLAN 10。如果 PC 的网卡被配置为发送带 VLAN 20 标签的帧(如虚拟机),交换机会如何处理?
  2. Trunk 端口 PVID 默认为 VLAN 1,为什么不建议将 PVID 修改为业务 VLAN?
  3. 当交换机端口默认模式为 Hybrid 时(如 S6730),如果只执行 port default vlan 10 而不先设置 port link-type,端口会是什么模式?

下篇预告:第12篇:Access 与 Trunk 的区别:谁在打标签