五、交换技术与VLAN

目录

    • [🎯 这节课为什么重要?](#🎯 这节课为什么重要?)
    • [📦 核心概念:交换机就像"智能快递分拣中心"](#📦 核心概念:交换机就像"智能快递分拣中心")
    • [📚 一、VLAN(虚拟局域网)基础](#📚 一、VLAN(虚拟局域网)基础)
      • [1.1 为什么需要VLAN?](#1.1 为什么需要VLAN?)
      • [1.2 VLAN的类型](#1.2 VLAN的类型)
      • [1.3 VLAN的范围](#1.3 VLAN的范围)
    • [📖 二、交换机端口类型](#📖 二、交换机端口类型)
      • [2.1 Access端口(接入端口)](#2.1 Access端口(接入端口))
      • [2.2 Trunk端口(干道端口)⭐重点](#2.2 Trunk端口(干道端口)⭐重点)
      • [2.4 三种端口类型对比](#2.4 三种端口类型对比)
    • [💼 三、VLAN配置实战](#💼 三、VLAN配置实战)
      • [3.1 基础VLAN配置](#3.1 基础VLAN配置)
      • [3.2 跨交换机VLAN配置](#3.2 跨交换机VLAN配置)
      • [3.3 VLAN间路由(单臂路由)](#3.3 VLAN间路由(单臂路由))
    • [⚙️ 四、生成树协议(STP)](#⚙️ 四、生成树协议(STP))
      • [4.1 为什么需要STP?](#4.1 为什么需要STP?)
      • [4.2 STP端口状态](#4.2 STP端口状态)
      • [4.3 STP配置](#4.3 STP配置)
    • [⚠️ 五、常见误区与易错点](#⚠️ 五、常见误区与易错点)
    • [📌 六、本节重点总结](#📌 六、本节重点总结)
    • [🔍 VLAN故障排查决策树](#🔍 VLAN故障排查决策树)
    • [🎯 思考题与实操任务](#🎯 思考题与实操任务)
      • 思考题1:基础理解(必答)
        • [✅ 问题1:完整的VLAN配置命令](#✅ 问题1:完整的VLAN配置命令)
        • [✅ 问题2:财务部PC能直接ping通研发部PC吗?](#✅ 问题2:财务部PC能直接ping通研发部PC吗?)
        • [✅ 问题3:如何实现财务部和研发部互通?](#✅ 问题3:如何实现财务部和研发部互通?)
      • 思考题2:Trunk配置(进阶)
        • [✅ 问题1:应该配置什么类型的端口?](#✅ 问题1:应该配置什么类型的端口?)
        • [✅ 问题2:完整的配置命令](#✅ 问题2:完整的配置命令)
        • [✅ 问题3:如何验证配置是否成功?](#✅ 问题3:如何验证配置是否成功?)
      • 思考题3:故障排查(高级)
        • [✅ 问题1:可能的原因有哪些?](#✅ 问题1:可能的原因有哪些?)
        • [✅ 问题2:你会依次检查什么?(排查步骤)](#✅ 问题2:你会依次检查什么?(排查步骤))
        • [✅ 问题3:如果两台交换机之间的Trunk配置不一致,会怎样?](#✅ 问题3:如果两台交换机之间的Trunk配置不一致,会怎样?)

🎯 这节课为什么重要?

作为工程师,您会遇到这些场景:

  • 🔧 "为什么两个部门之间能直接访问?"
  • 🔧 "如何隔离不同部门的网络?"
  • 🔧 "交换机之间如何连接多个VLAN?"
  • 🔧 "VLAN配置后为什么不通?"
  • 🔧 "网络环路导致广播风暴怎么办?"

交换技术与VLAN必修课,因为:

  • ✅ 局域网通信的基础
  • ✅ 网络隔离和安全的第一道防线
  • ✅ 实际工作中最常见的配置
  • ✅ 理解VLAN间路由的前提
  • ✅ 排查广播风暴的关键

📦 核心概念:交换机就像"智能快递分拣中心"

什么是交换机?

定义:交换机(Switch)是工作在数据链路层的网络设备,根据MAC地址转发数据帧。

类比 :交换机就像智能快递分拣中心

复制代码
场景:公司内部邮件分拣

集线器(Hub)- 笨拙分拣:
  收到邮件 → 复制多份 → 发给所有人
  问题:
  - 浪费资源(每个人都收到)
  - 不安全(所有人都能看到)
  - 效率低(带宽共享)

交换机(Switch)- 智能分拣:
  收到邮件 → 查看收件人 → 只发给收件人
  优点:
  - 节省资源(点对点传输)
  - 更安全(只有收件人收到)
  - 效率高(带宽独享)

交换机的工作原理

核心机制:MAC地址表(CAM表)

复制代码
MAC地址表结构:
MAC地址             接口        类型
AA:BB:CC:DD:EE:01  G0/0/1    Dynamic
AA:BB:CC:DD:EE:02  G0/0/2    Dynamic
AA:BB:CC:DD:EE:03  G0/0/3    Dynamic

工作流程:
1. 交换机收到数据帧
2. 提取源MAC地址
3. 学习:将MAC地址与接收接口绑定
4. 查表:查看目标MAC地址在哪个接口
5. 转发:
   - 如果表中存在 → 从指定接口转发(单播)
   - 如果表中不存在 → 从所有接口广播(泛洪)

学习过程可视化
PC3 MAC: CC:CC:CC PC2 MAC: BB:BB:BB 交换机 PC1 MAC: AA:AA:AA PC3 MAC: CC:CC:CC PC2 MAC: BB:BB:BB 交换机 PC1 MAC: AA:AA:AA MAC地址表:空 学习:AA:AA:AA → G0/0/1 MAC表: AA:AA:AA → G0/0/1 学习:BB:BB:BB → G0/0/2 MAC表: AA:AA:AA → G0/0/1 BB:BB:BB → G0/0/2 发送数据帧 源MAC: AA:AA:AA 泛洪(未知目标) 泛洪(未知目标) 回复帧 源MAC: BB:BB:BB 单播转发 (已知目标:AA:AA:AA) 再次发送给PC2 单播转发 (已知目标:BB:BB:BB)

MAC地址表演变过程

时间 PC1 (AA:AA:AA) PC2 (BB:BB:BB) PC3 (CC:CC:CC)
初始 - - -
第1次通信后 G0/0/1 - -
第2次通信后 G0/0/1 G0/0/2 -
第3次通信后 G0/0/1 G0/0/2 -

📚 一、VLAN(虚拟局域网)基础

1.1 为什么需要VLAN?

传统网络的问题

复制代码
场景:公司网络

物理结构:
  所有部门都在同一网段(192.168.1.0/24)
  交换机连接所有设备

问题:
1. 安全性差:
   - 财务部的电脑能被研发部直接访问
   - 广播帧所有人都能收到

2. 广播风暴:
   - 一台电脑中毒发送大量广播
   - 整个网络瘫痪

3. 管理困难:
   - 部门搬迁需要重新布线
   - 无法隔离故障域

4. 浪费带宽:
   - 无用的广播占用带宽

VLAN的解决方案
VLAN 30 市场部
VLAN 20 研发部
VLAN 10 财务部
物理交换机
G0/0/1
G0/0/2
G0/0/11
G0/0/12
G0/0/21
G0/0/22
交换机
财务PC1

192.168.10.10
财务PC2

192.168.10.11
研发PC1

192.168.20.10
研发PC2

192.168.20.11
市场PC1

192.168.30.10
市场PC2

192.168.30.11

效果对比

特性 传统网络(无VLAN) VLAN网络
广播域 1个广播域(所有设备) 多个广播域(每个VLAN独立)
安全性 ❌ 所有设备可直接通信 ✅ 不同VLAN隔离,需路由才能通信
故障影响 ❌ 一台中毒影响全网 ✅ 故障限制在VLAN内
管理灵活性 ❌ 部门搬迁需重新布线 ✅ 只需修改VLAN配置
广播风暴 ❌ 可能全网瘫痪 ✅ 限制在单个VLAN内

1.2 VLAN的类型

1. 基于端口划分(Port-based VLAN)⭐最常用

复制代码
配置方式:
  接口G0/0/1 ~ G0/0/10 → VLAN 10
  接口G0/0/11 ~ G0/0/20 → VLAN 20
  接口G0/0/21 ~ G0/0/30 → VLAN 30

优点:
  - 配置简单
  - 易于理解
  - 最常用

缺点:
  - 用户换端口需要重新配置

2. 基于MAC地址划分

复制代码
配置方式:
  MAC: AA:AA:AA:AA:AA:AA → VLAN 10
  MAC: BB:BB:BB:BB:BB:BB → VLAN 20

优点:
  - 用户换接口不需要重新配置
  - 移动办公方便

缺点:
  - 管理复杂(需要记录所有MAC)
  - 配置工作量大

3. 基于协议划分

复制代码
配置方式:
  IP协议 → VLAN 10
  IPX协议 → VLAN 20

用途:
  - 很少使用
  - 特定场景

4. 基于子网划分

复制代码
配置方式:
  192.168.10.0/24 → VLAN 10
  192.168.20.0/24 → VLAN 20

用途:
  - 配合DHCP使用
  - 自动分配VLAN

1.3 VLAN的范围

VLAN ID范围

复制代码
标准VLAN:1 ~ 1005
  - VLAN 1:默认VLAN(所有端口默认属于VLAN 1)
  - VLAN 1002 ~ 1005:保留用于令牌环和FDDI

扩展VLAN:1006 ~ 4094
  - 需要交换机支持
  - 用于大型网络

可用VLAN:
  - 推荐使用:2 ~ 1001
  - 避免使用VLAN 1(安全考虑)

📖 二、交换机端口类型

2.1 Access端口(接入端口)

定义:连接终端设备(PC、打印机、服务器)的端口

特点

  • 只能属于一个VLAN
  • 发送数据时不打VLAN标签
  • 接收数据时打上VLAN标签

工作原理

复制代码
配置:interface G0/0/1为Access端口,PVID=10

接收方向(入方向):
  PC1发送无标签帧 → 交换机G0/0/1
  ↓
  交换机打上VLAN 10标签
  ↓
  在VLAN 10内转发

发送方向(出方向):
  交换机收到VLAN 10的帧
  ↓
  去掉VLAN标签
  ↓
  发送给PC1

配置示例

shell 复制代码
[Switch] interface G0/0/1
[Switch-G0/0/1] port link-type access
[Switch-G0/0/1] port default vlan 10
[Switch-G0/0/1] quit

2.2 Trunk端口(干道端口)⭐重点

定义:连接交换机与交换机、或交换机与路由器的端口

特点

  • 可以承载多个VLAN的数据
  • 发送数据时保留VLAN标签(除Native VLAN)
  • 接收数据时检查VLAN标签

工作原理

复制代码
配置:interface G0/0/1为Trunk端口,允许VLAN 10,20,30通过

交换机A发送:
  VLAN 10的数据帧(带标签10)→ Trunk → 交换机B
  VLAN 20的数据帧(带标签20)→ Trunk → 交换机B
  VLAN 30的数据帧(带标签30)→ Trunk → 交换机B

Native VLAN(默认VLAN 1):
  - 不打标签传输
  - 用于兼容不支持VLAN的设备

配置示例

shell 复制代码
[Switch] interface G0/0/1
[Switch-G0/0/1] port link-type trunk
[Switch-G0/0/1] port trunk allow-pass vlan 10 20 30
[Switch-G0/0/1] port trunk pvid vlan 1
[Switch-G0/0/1] quit

三种端口类型对比
Hybrid端口
带标签
可配置

剥离/保留
多VLAN
Hybrid端口
不同设备
Trunk端口
带标签
保留标签
交换机A
Trunk端口
交换机B
Access端口
无标签
添加标签
PC
Access端口
交换机内部

特性 Access端口 Trunk端口 Hybrid端口
连接设备 终端设备(PC、打印机) 交换机、路由器 任何设备
VLAN数量 1个 多个 多个
发送标签 ❌ 剥离标签 ✅ 保留标签 ⚙️ 可配置
接收处理 打上PVID标签 检查允许列表 ⚙️ 灵活配置
使用场景 接入层 汇聚层、核心层 华为特有,灵活场景
华为命令 port link-type access port link-type trunk port link-type hybrid

Trunk端口处理流程
带标签
无标签




收到数据帧
是否有标签?
标签在允许列表?
打上PVID标签
接收并转发
丢弃帧
发送到哪个端口?
是否Native VLAN?
剥离标签发送
保留标签发送

复制代码
 - 在PVID VLAN内转发

发送方向(出方向):

  1. 检查数据帧的VLAN ID

  2. 如果VLAN ID == PVID

    • 去掉标签发送
  3. 如果VLAN ID != PVID

    • 保留标签发送

    2.3 Hybrid端口(混合端口)

    定义:华为设备的特殊端口类型,可以灵活配置标签处理方式

    特点

    • 可以像Access一样连接终端设备
    • 可以像Trunk一样承载多个VLAN
    • 可以指定哪些VLAN打标签,哪些不打标签

    配置示例

    shell 复制代码
    [Switch] interface G0/0/1
    [Switch-G0/0/1] port link-type hybrid
    [Switch-G0/0/1] port hybrid tagged vlan 10 20
    [Switch-G0/0/1] port hybrid untagged vlan 30
    [Switch-G0/0/1] port hybrid pvid vlan 30
    [Switch-G0/0/1] quit

应用场景

复制代码
场景:公司网络,需要部分VLAN互通

  VLAN 10(财务部)
  VLAN 20(管理部)
  VLAN 30(打印机)

需求:
  - 财务部和管理部能访问打印机
  - 财务部和管理部不能互访

Hybrid配置:
  打印机端口:
    port hybrid untagged vlan 10 20 30
    port hybrid pvid vlan 30

  效果:
    打印机可以接收VLAN 10、20、30的数据
    但VLAN 10和20无法直接互通

2.4 三种端口类型对比

特性 Access Trunk Hybrid
连接对象 终端设备 交换机/路由器 灵活(设备或交换机)
VLAN数量 1个 多个 多个
发送标签 无标签 保留标签 可配置
用途 接入层 汇聚层 灵活场景
华为特有
推荐使用 ✅ 连接PC ✅ 交换机互联 ⚠️ 特殊需求

💼 三、VLAN配置实战

3.1 基础VLAN配置

场景:公司网络划分

网络拓扑

复制代码
         [交换机LSW1]
  G0/0/1 G0/0/2 ... G0/0/10  → VLAN 10(财务部)
  G0/0/11 G0/0/12 ... G0/0/20 → VLAN 20(研发部)
  G0/0/21 G0/0/22 ... G0/0/30 → VLAN 30(市场部)
  G0/0/24 → 连接到路由器(Trunk)

配置步骤

步骤1:创建VLAN

shell 复制代码
[LSW1] system-view
[LSW1] vlan batch 10 20 30
[LSW1] quit

步骤2:配置Access端口(连接PC)

shell 复制代码
# 财务部端口
[LSW1] port-group group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/10
[LSW1-port-group] port link-type access
[LSW1-port-group] port default vlan 10
[LSW1-port-group] quit

# 研发部端口
[LSW1] port-group group-member GigabitEthernet 0/0/11 to GigabitEthernet 0/0/20
[LSW1-port-group] port link-type access
[LSW1-port-group] port default vlan 20
[LSW1-port-group] quit

# 市场部端口
[LSW1] port-group group-member GigabitEthernet 0/0/21 to GigabitEthernet 0/0/30
[LSW1-port-group] port link-type access
[LSW1-port-group] port default vlan 30
[LSW1-port-group] quit

步骤3:配置Trunk端口(连接路由器/其他交换机)

shell 复制代码
[LSW1] interface GigabitEthernet 0/0/24
[LSW1-GigabitEthernet0/0/24] port link-type trunk
[LSW1-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 30
[LSW1-GigabitEthernet0/0/24] quit

步骤4:验证配置

shell 复制代码
# 查看VLAN配置
[LSW1] display vlan

# 输出示例:
VLAN ID: 10
  Description: VLAN 0010
  Tagged   Ports: None
  Untagged Ports:
    GigabitEthernet0/0/1    GigabitEthernet0/0/2
    GigabitEthernet0/0/3    GigabitEthernet0/0/4
    GigabitEthernet0/0/5    GigabitEthernet0/0/6
    GigabitEthernet0/0/7    GigabitEthernet0/0/8
    GigabitEthernet0/0/9    GigabitEthernet0/0/10

VLAN ID: 20
  Description: VLAN 0020
  Tagged   Ports: None
  Untagged Ports:
    GigabitEthernet0/0/11   GigabitEthernet0/0/12
    ...

VLAN ID: 30
  Description: VLAN 0030
  Tagged   Ports: None
  Untagged Ports:
    GigabitEthernet0/0/21   GigabitEthernet0/0/22
    ...

# 查看接口配置
[LSW1] display port vlan

# 输出示例:
Port                Link Type    PVID    Trunk VLAN List
GigabitEthernet0/0/1 access       10      -
GigabitEthernet0/0/2 access       10      -
...
GigabitEthernet0/0/24 trunk       1       10 20 30

3.2 跨交换机VLAN配置

场景:两个交换机之间需要传输多个VLAN的数据
交换机LSW2
交换机LSW1
G0/0/1

Access
G0/0/2

Access
G0/0/1

Access
G0/0/2

Access
G0/0/3 Trunk

允许VLAN 10,20
LSW1
PC1

VLAN 10

192.168.10.10
PC2

VLAN 20

192.168.20.10
LSW2
PC3

VLAN 10

192.168.10.11
PC4

VLAN 20

192.168.20.11

数据流向
PC3 VLAN 10 LSW2 Trunk链路 (带标签) LSW1 PC1 VLAN 10 PC3 VLAN 10 LSW2 Trunk链路 (带标签) LSW1 PC1 VLAN 10 打上VLAN 10标签 保留标签传输 检查标签 在允许列表 发送数据 (无标签) 转发 (带VLAN 10标签) 接收 (VLAN 10标签) 转发 (剥离标签)

配置步骤

LSW1配置

shell 复制代码
[LSW1] system-view

# 创建VLAN
[LSW1] vlan batch 10 20

# 配置Access端口
[LSW1] interface GigabitEthernet 0/0/1
[LSW1-GigabitEthernet0/0/1] port link-type access
[LSW1-GigabitEthernet0/0/1] port default vlan 10
[LSW1-GigabitEthernet0/0/1] quit

[LSW1] interface GigabitEthernet 0/0/2
[LSW1-GigabitEthernet0/0/2] port link-type access
[LSW1-GigabitEthernet0/0/2] port default vlan 20
[LSW1-GigabitEthernet0/0/2] quit

# 配置Trunk端口(连接LSW2)
[LSW1] interface GigabitEthernet 0/0/3
[LSW1-GigabitEthernet0/0/3] port link-type trunk
[LSW1-GigabitEthernet0/0/3] port trunk allow-pass vlan 10 20
[LSW1-GigabitEthernet0/0/3] quit

LSW2配置

shell 复制代码
[LSW2] system-view

# 创建VLAN
[LSW2] vlan batch 10 20

# 配置Access端口
[LSW2] interface GigabitEthernet 0/0/1
[LSW2-GigabitEthernet0/0/1] port link-type access
[LSW2-GigabitEthernet0/0/1] port default vlan 10
[LSW2-GigabitEthernet0/0/1] quit

[LSW2] interface GigabitEthernet 0/0/2
[LSW2-GigabitEthernet0/0/2] port link-type access
[LSW2-GigabitEthernet0/0/2] port default vlan 20
[LSW2-GigabitEthernet0/0/2] quit

# 配置Trunk端口(连接LSW1)
[LSW2] interface GigabitEthernet 0/0/3
[LSW2-GigabitEthernet0/0/3] port link-type trunk
[LSW2-GigabitEthernet0/0/3] port trunk allow-pass vlan 10 20
[LSW2-GigabitEthernet0/0/3] quit

验证测试

shell 复制代码
# 在PC1上ping PC3(同VLAN,应该通)
C:\> ping 192.168.10.3

# 在PC1上ping PC4(不同VLAN,应该不通)
C:\> ping 192.168.20.4
Request timed out

# 在交换机上查看MAC地址表
[LSW1] display mac-address

# 输出示例:
MAC Address    VLAN/VSI/CEVLAN  Learned-From        Type
AA:AA:AA:AA:AA:AA  10           GigabitEthernet0/0/1 dynamic
BB:BB:BB:BB:BB:BB  20           GigabitEthernet0/0/2 dynamic

3.3 VLAN间路由(单臂路由)

场景:不同VLAN之间需要通信

原理:通过路由器或三层交换机实现VLAN间路由
VLAN 30 市场部
VLAN 20 研发部
VLAN 10 财务部
子接口
dot1q标签10
dot1q标签20
dot1q标签30
Access
Access
Access
Access
Access
Access
路由器RTA

单臂路由
G0/0/0.10

192.168.10.1
G0/0/0.20

192.168.20.1
G0/0/0.30

192.168.30.1
交换机LSW1
PC1

192.168.10.10
PC2

192.168.10.11
PC3

192.168.20.10
PC4

192.168.20.11
PC5

192.168.30.10
PC6

192.168.30.11

VLAN间通信数据流向(PC1访问PC3):
PC3 VLAN 20 192.168.20.10 路由器 子接口 交换机 PC1 VLAN 10 192.168.10.10 PC3 VLAN 20 192.168.20.10 路由器 子接口 交换机 PC1 VLAN 10 192.168.10.10 打VLAN 10标签 路由查找 192.168.20.0/24 → G0/0/0.20 剥离VLAN 20标签 打VLAN 20标签 路由查找 192.168.10.0/24 → G0/0/0.10 发送数据 目标:192.168.20.10 转发到子接口 G0/0/0.10 (VLAN 10标签) 转发 打VLAN 20标签 转发给PC3 回复数据 目标:192.168.10.10 转发到子接口 G0/0/0.20 转发 打VLAN 10标签 转发给PC1

配置步骤

步骤1:配置交换机(LSW1)

shell 复制代码
[LSW1] system-view

# 创建VLAN
[LSW1] vlan batch 10 20 30

# 配置Access端口(连接PC)
[LSW1] interface GigabitEthernet 0/0/1
[LSW1-GigabitEthernet0/0/1] port link-type access
[LSW1-GigabitEthernet0/0/1] port default vlan 10
[LSW1-GigabitEthernet0/0/1] quit

# 其他端口类似...

# 配置Trunk端口(连接路由器)
[LSW1] interface GigabitEthernet 0/0/24
[LSW1-GigabitEthernet0/0/24] port link-type trunk
[LSW1-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 30
[LSW1-GigabitEthernet0/0/24] quit

步骤2:配置路由器(RTA)

shell 复制代码
[RTA] system-view

# 创建子接口
[RTA] interface GigabitEthernet 0/0/0.10
[RTA-GigabitEthernet0/0/0.10] dot1q termination vid 10
[RTA-GigabitEthernet0/0/0.10] ip address 192.168.10.1 24
[RTA-GigabitEthernet0/0/0.10] arp broadcast enable
[RTA-GigabitEthernet0/0/0.10] quit

[RTA] interface GigabitEthernet 0/0/0.20
[RTA-GigabitEthernet0/0/0.20] dot1q termination vid 20
[RTA-GigabitEthernet0/0/0.20] ip address 192.168.20.1 24
[RTA-GigabitEthernet0/0/0.20] arp broadcast enable
[RTA-GigabitEthernet0/0/0.20] quit

[RTA] interface GigabitEthernet 0/0/0.30
[RTA-GigabitEthernet0/0/0.30] dot1q termination vid 30
[RTA-GigabitEthernet0/0/0.30] ip address 192.168.30.1 24
[RTA-GigabitEthernet0/0/0.30] arp broadcast enable
[RTA-GigabitEthernet0/0/30.30] quit

步骤3:配置PC网关

复制代码
VLAN 10的PC:
  IP地址:192.168.10.10
  子网掩码:255.255.255.0
  默认网关:192.168.10.1(路由器子接口IP)

VLAN 20的PC:
  IP地址:192.168.20.10
  子网掩码:255.255.255.0
  默认网关:192.168.20.1

VLAN 30的PC:
  IP地址:192.168.30.10
  子网掩码:255.255.255.0
  默认网关:192.168.30.1

验证测试

shell 复制代码
# 在VLAN 10的PC上ping VLAN 20的PC
C:\> ping 192.168.20.10

# 查看路由表
[RTA] display ip routing-table

# 输出应包含:
Destination/Mask    Proto   Pre  Cost        Flags NextHop         Interface
192.168.10.0/24     Direct  0    0             D   192.168.10.1    GE0/0/0.10
192.168.20.0/24     Direct  0    0             D   192.168.20.1    GE0/0/0.20
192.168.30.0/24     Direct  0    0             D   192.168.30.1    GE0/0/0.30

⚙️ 四、生成树协议(STP)

4.1 为什么需要STP?

问题:网络环路

复制代码
拓扑:
  [LSW1] ----- [LSW2]
    |             |
    +-----[LSW3]--+

问题:
1. 广播风暴
   - 广播帧不断循环
   - 占用所有带宽

2. MAC地址表震荡
   - 交换机学习到错误的MAC-端口映射
   - 表项不断更新

3. 多帧复制
   - 同一数据帧被重复接收

STP的解决方案

复制代码
工作原理:
  1. 选举根网桥(Root Bridge)
  2. 确定根端口(Root Port)
  3. 确定指定端口(Designated Port)
  4. 阻塞备用端口(Blocked Port)

效果:
  - 逻辑上阻断环路
  - 物理上保持冗余
  - 故障时自动切换

4.2 STP端口状态

复制代码
状态转换:
Blocking(阻塞)→ Listening(监听)→ Learning(学习)→ Forwarding(转发)

各状态说明:
1. Blocking(阻塞)
   - 不转发数据帧
   - 不学习MAC地址
   - 接收BPDU(桥协议数据单元)

2. Listening(监听)
   - 不转发数据帧
   - 不学习MAC地址
   - 参与根网桥选举
   - 持续时间:15秒

3. Learning(学习)
   - 不转发数据帧
   - 开始学习MAC地址
   - 持续时间:15秒

4. Forwarding(转发)
   - 正常转发数据帧
   - 学习MAC地址

状态转换时间:30秒(Listening + Learning)

4.3 STP配置

配置示例

shell 复制代码
# 启用STP(默认启用)
[Switch] stp enable

# 设置桥优先级(值越小优先级越高)
[Switch] stp priority 4096

# 查看STP状态
[Switch] display stp

# 输出示例:
-------[CIST Global Information][Mode STP]-------
CIST Bridge         :32768.4c1f-ccxx-xxxx
Bridge Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :32768.4c1f-ccxx-xxxx / 0
CIST RegRoot/ERPC   :32768.4c1f-ccxx-xxxx / 0
CIST Root Port      :0

⚠️ 五、常见误区与易错点

误区1:混淆Access和Trunk端口

错误认识

复制代码
"Access和Trunk随便选一个就行"

正确理解

复制代码
Access端口:
  ✅ 连接终端设备(PC、打印机、服务器)
  ✅ 只属于一个VLAN
  ✅ 发送数据时不带标签

Trunk端口:
  ✅ 连接交换机、路由器
  ✅ 可以承载多个VLAN
  ✅ 发送数据时保留标签(除Native VLAN)

选择原则:
  终端设备 → Access
  设备互联 → Trunk

误区2:忘记配置Trunk允许的VLAN

错误认识

复制代码
"配置成Trunk就能通过所有VLAN"

正确理解

复制代码
Trunk默认只允许VLAN 1通过!

错误配置:
[Switch] interface G0/0/1
[Switch-G0/0/1] port link-type trunk
# 忘记配置allow-pass

结果:
  - 只有VLAN 1能通过
  - VLAN 10、20、30的数据被丢弃

正确配置:
[Switch] interface G0/0/1
[Switch-G0/0/1] port link-type trunk
[Switch-G0/0/1] port trunk allow-pass vlan 10 20 30

# 或者允许所有VLAN(不推荐,安全风险)
[Switch-G0/0/1] port trunk allow-pass vlan all

误区3:Native VLAN不匹配

错误认识

复制代码
"Native VLAN不重要,随便配置"

正确理解

复制代码
Native VLAN不匹配会导致:

问题1:VLAN跨越
  - 交换机A的VLAN 10可能被识别为交换机B的VLAN 20
  - 导致安全漏洞

问题2:部分VLAN不通
  - Native VLAN的数据不带标签
  - 对端无法识别

最佳实践:
  1. 两端Native VLAN必须一致
  2. 不要把业务VLAN设为Native
  3. Native VLAN保持默认(VLAN 1)

配置检查:
[Switch] display port vlan
# 查看PVID是否一致

误区4:VLAN间直接通信

错误认识

复制代码
"配置了VLAN,不同VLAN就能通信"

正确理解

复制代码
VLAN默认隔离!

不同VLAN通信需要:
1. 三层设备(路由器或三层交换机)
2. VLAN间路由配置

通信方式:
1. 单臂路由(路由器子接口)
2. 三层交换机(VLANIF接口)
3. 叠加VLAN(QinQ)

示例错误:
  - PC1(VLAN 10)ping PC2(VLAN 20)
  - 不通(正常现象)
  - 需要配置路由器才能互通

误区5:忽略广播域大小

错误认识

复制代码
"一个VLAN越大越好"

正确理解

复制代码
VLAN过大的问题:
1. 广播风暴风险
   - 一个设备故障影响整个VLAN
   - 广播流量占用带宽

2. 安全性降低
   - 所有设备在同一广播域
   - 容易被ARP欺骗攻击

3. 性能下降
   - MAC地址表过大
   - 查表速度变慢

最佳实践:
  - 一个VLAN不超过254台设备(/24网段)
  - 按部门/功能划分VLAN
  - 关键服务器独立VLAN

📌 六、本节重点总结

核心要点

  1. 交换机工作原理

    • 学习MAC地址
    • 查表转发
    • 未知单播泛洪
  2. VLAN的作用

    • 隔离广播域
    • 提高安全性
    • 灵活管理
  3. 端口类型

    • Access:连接终端,1个VLAN
    • Trunk:连接交换机,多个VLAN
    • Hybrid:华为特有,灵活配置
  4. VLAN配置命令

    • 创建VLAN:vlan batch 10 20 30
    • Access端口:port link-type access + port default vlan 10
    • Trunk端口:port link-type trunk + port trunk allow-pass vlan 10 20 30
  5. VLAN间路由

    • 需要三层设备
    • 单臂路由或三层交换机

🔍 VLAN故障排查决策树















不匹配
匹配






VLAN通信故障
同VLAN内通信?
能ping通吗?
检查VLAN配置
问题解决
交换机学习到MAC地址?
display vlan

检查VLAN创建
VLAN存在?
创建VLAN

vlan batch X
检查端口类型
物理连接正常?
检查网线/接口状态
检查网线/LED灯
检查VLAN配置
接口状态UP?
display interface

检查错误
display port vlan
端口类型正确?
修改端口类型

port link-type access/trunk
检查PVID
Access端口PVID?
修改PVID

port default vlan X
网线连接?
重新插拔网线
更换网线/端口
灯亮?
display port vlan
端口类型正确?
修改端口类型
检查PVID配置

故障排查速查表

症状 可能原因 排查命令 解决方案
同VLAN无法ping通 VLAN未创建 display vlan vlan batch X
同VLAN无法ping通 端口类型错误 display port vlan 修改port link-type
同VLAN无法ping通 PVID配置错误 display port vlan port default vlan X
跨交换机不通 Trunk未配置 display port vlan 配置Trunk
跨交换机不通 allow-pass未配置 display port vlan port trunk allow-pass vlan X
VLAN间不通 未配置路由 display ip routing-table 配置VLAN间路由
部分VLAN不通 Native VLAN不匹配 display port vlan 统一Native VLAN
物理不通 网线/接口故障 display interface 更换网线/端口

配置公式速查

复制代码
1. 创建VLAN:
   vlan batch 10 20 30

2. 配置Access端口:
   interface G0/0/1
   port link-type access
   port default vlan 10

3. 配置Trunk端口:
   interface G0/0/1
   port link-type trunk
   port trunk allow-pass vlan 10 20 30

4. 查看VLAN:
   display vlan

5. 查看端口VLAN:
   display port vlan

🎯 思考题与实操任务

思考题1:基础理解(必答)

题目

复制代码
场景:公司网络,需要划分3个VLAN

设备信息:
- 交换机:华为S5700
- 接口:G0/0/1 ~ G0/0/24

需求:
1. 财务部(10人):使用VLAN 10,占用G0/0/1 ~ G0/0/10
2. 研发部(10人):使用VLAN 20,占用G0/0/11 ~ G0/0/20
3. 服务器区(4台服务器):使用VLAN 30,占用G0/0/21 ~ G0/0/24

问题:
1. 请写出完整的VLAN配置命令
2. 财务部PC能直接ping通研发部PC吗?为什么?
3. 如果需要财务部和研发部互通,应该怎么配置?
✅ 问题1:完整的VLAN配置命令

华为S5700交换机完整配置

shell 复制代码
<Switch> system-view
[Switch] sysname LSW1  # 给交换机命名

# 步骤1:批量创建VLAN
[LSW1] vlan batch 10 20 30
# 等效于:
# [LSW1] vlan 10
# [LSW1-vlan10] quit
# [LSW1] vlan 20
# [LSW1-vlan20] quit
# [LSW1] vlan 30
# [LSW1-vlan30] quit

# 步骤2:配置财务部端口(G0/0/1 ~ G0/0/10)
# 方法1:使用端口组批量配置(推荐)
[LSW1] port-group group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/10
[LSW1-port-group] port link-type access
[LSW1-port-group] port default vlan 10
[LSW1-port-group] quit

# 方法2:单独配置每个端口
# [LSW1] interface GigabitEthernet 0/0/1
# [LSW1-GigabitEthernet0/0/1] port link-type access
# [LSW1-GigabitEthernet0/0/1] port default vlan 10
# [LSW1-GigabitEthernet0/0/1] quit
# ... 依次配置到 G0/0/10

# 步骤3:配置研发部端口(G0/0/11 ~ G0/0/20)
[LSW1] port-group group-member GigabitEthernet 0/0/11 to GigabitEthernet 0/0/20
[LSW1-port-group] port link-type access
[LSW1-port-group] port default vlan 20
[LSW1-port-group] quit

# 步骤4:配置服务器区端口(G0/0/21 ~ G0/0/24)
[LSW1] port-group group-member GigabitEthernet 0/0/21 to GigabitEthernet 0/0/24
[LSW1-port-group] port link-type access
[LSW1-port-group] port default vlan 30
[LSW1-port-group] quit

# 步骤5:保存配置(重要!)
[LSW1] quit
<LSW1> save
  The current configuration will be written to the device.
  Are you sure to continue?[Y/N]y
<LSW1>

配置验证命令

shell 复制代码
# 查看所有VLAN
<LSW1> display vlan

# 预期输出:
VLAN ID: 10
  Description: VLAN 0010
  Tagged   Ports: None
  Untagged Ports:
    GigabitEthernet0/0/1    GigabitEthernet0/0/2
    GigabitEthernet0/0/3    GigabitEthernet0/0/4
    GigabitEthernet0/0/5    GigabitEthernet0/0/6
    GigabitEthernet0/0/7    GigabitEthernet0/0/8
    GigabitEthernet0/0/9    GigabitEthernet0/0/10

VLAN ID: 20
  Description: VLAN 0020
  Tagged   Ports: None
  Untagged Ports:
    GigabitEthernet0/0/11   GigabitEthernet0/0/12
    ... (到 G0/0/20)

VLAN ID: 30
  Description: VLAN 0030
  Tagged   Ports: None
  Untagged Ports:
    GigabitEthernet0/0/21   GigabitEthernet0/0/22
    GigabitEthernet0/0/23   GigabitEthernet0/0/24

# 查看特定端口的VLAN配置
<LSW1> display port vlan

# 查看接口状态
<LSW1> display interface brief
✅ 问题2:财务部PC能直接ping通研发部PC吗?

答案:❌ 不能直接ping通

原因分析

复制代码
VLAN隔离原理:
┌─────────────────────────────────────────┐
│  交换机LSW1                              │
│                                          │
│  ┌──────────┐      ┌──────────┐         │
│  │ VLAN 10  │      │ VLAN 20  │         │
│  │ 财务部   │      │ 研发部   │         │
│  │          │      │          │         │
│  │ 广播域A  │      │ 广播域B  │         │
│  └──────────┘      └──────────┘         │
│         │                 │              │
│         │   (隔离)         │              │
│         └─────────────────┘              │
│                                          │
│  不同VLAN = 不同的广播域                   │
│  广播域之间默认隔离,无法直接通信           │
└─────────────────────────────────────────┘

技术解释

  1. 广播域隔离

    • VLAN 10的广播帧只会在G0/0/1~G0/0/10转发
    • VLAN 20的广播帧只会在G0/0/11~G0/0/20转发
    • 两者完全隔离
  2. 二层隔离

    • 交换机是二层设备,只能根据MAC地址转发
    • MAC地址表按VLAN隔离
    • VLAN 10的MAC地址在VLAN 20中不可见
  3. Ping命令过程

    复制代码
    PC1 (VLAN 10) 发送 ping 给 PC2 (VLAN 20)
    → 交换机收到帧,源MAC=PC1,目标MAC=PC2
    → 查找MAC地址表(只在VLAN 10内查找)
    → 找不到PC2的MAC地址
    → 无法转发(即使泛洪也只在VLAN 10内)
    → Ping失败
✅ 问题3:如何实现财务部和研发部互通?

方案一:单臂路由(适合小型网络)
VLAN 20 研发部
VLAN 10 财务部
G0/0/0.10

192.168.10.1
G0/0/0.20

192.168.20.1
Access
Access
路由器

RTA
交换机

LSW1
PC1

192.168.10.10
PC2

192.168.10.11
PC3

192.168.20.10
PC4

192.168.20.11

步骤1:配置交换机(LSW1)

shell 复制代码
[LSW1] interface GigabitEthernet 0/0/24
[LSW1-GigabitEthernet0/0/24] port link-type trunk
[LSW1-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20
[LSW1-GigabitEthernet0/0/24] quit

步骤2:配置路由器(RTA)

shell 复制代码
[Router] system-view
[Router] sysname RTA

# 创建子接口用于VLAN 10
[RTA] interface GigabitEthernet 0/0/0.10
[RTA-GigabitEthernet0/0/0.10] dot1q termination vid 10
[RTA-GigabitEthernet0/0/0.10] ip address 192.168.10.1 24
[RTA-GigabitEthernet0/0/0.10] arp broadcast enable
[RTA-GigabitEthernet0/0/0.10] quit

# 创建子接口用于VLAN 20
[RTA] interface GigabitEthernet 0/0/0.20
[RTA-GigabitEthernet0/0/0.20] dot1q termination vid 20
[RTA-GigabitEthernet0/0/0.20] ip address 192.168.20.1 24
[RTA-GigabitEthernet0/0/0.20] arp broadcast enable
[RTA-GigabitEthernet0/0/0.20] quit

步骤3:配置PC网关

复制代码
PC1(财务部):
  IP地址:192.168.10.10
  子网掩码:255.255.255.0
  默认网关:192.168.10.1

PC3(研发部):
  IP地址:192.168.20.10
  子网掩码:255.255.255.0
  默认网关:192.168.20.1

步骤4:测试连通性

shell 复制代码
# 在PC1上ping研发部PC3
C:\> ping 192.168.20.10

# 数据流向:
PC1 (VLAN 10) → 交换机 → 路由器子接口.10 → 路由查找
→ 子接口.20 → 交换机 → PC3 (VLAN 20)

方案二:三层交换机(推荐,适合大中型网络)

shell 复制代码
# 配置VLANIF接口(三层接口)
[LSW1] interface Vlanif 10
[LSW1-Vlanif10] ip address 192.168.10.1 24
[LSW1-Vlanif10] quit

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

# 启用路由转发(华为默认启用)
[LSW1] ip routing

思考题2:Trunk配置(进阶)

题目

复制代码
场景:两台交换机互联

网络拓扑:
  [LSW1] G0/0/24 ←→ G0/0/24 [LSW2]

需求:
- LSW1上有VLAN 10、20、30
- LSW2上也有VLAN 10、20、30
- 两台交换机的相同VLAN需要互通

问题:
1. 应该配置什么类型的端口?
2. 写出完整的配置命令(两台交换机都要配置)
3. 如何验证配置是否成功?
✅ 问题1:应该配置什么类型的端口?

答案:Trunk端口

原因

  • 两台交换机之间需要传输多个VLAN的数据
  • Access端口只能承载1个VLAN
  • Trunk端口可以承载多个VLAN
✅ 问题2:完整的配置命令

LSW1完整配置

shell 复制代码
<LSW1> system-view
[LSW1] vlan batch 10 20 30

# 假设G0/0/1连接PC,配置为Access
[LSW1] interface GigabitEthernet 0/0/1
[LSW1-GigabitEthernet0/0/1] port link-type access
[LSW1-GigabitEthernet0/0/1] port default vlan 10
[LSW1-GigabitEthernet0/0/1] quit

# 配置G0/0/24为Trunk端口,连接LSW2
[LSW1] interface GigabitEthernet 0/0/24
[LSW1-GigabitEthernet0/0/24] port link-type trunk
# 允许VLAN 10、20、30通过
[LSW1-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 30
# 设置Native VLAN(可选,默认是VLAN 1)
[LSW1-GigabitEthernet0/0/24] port trunk pvid vlan 1
[LSW1-GigabitEthernet0/0/24] quit

# 保存配置
[LSW1] quit
<LSW1> save

LSW2完整配置

shell 复制代码
<LSW2> system-view
[LSW2] vlan batch 10 20 30

# 假设G0/0/1连接PC,配置为Access
[LSW2] interface GigabitEthernet 0/0/1
[LSW2-GigabitEthernet0/0/1] port link-type access
[LSW2-GigabitEthernet0/0/1] port default vlan 10
[LSW2-GigabitEthernet0/0/1] quit

# 配置G0/0/24为Trunk端口,连接LSW1
[LSW2] interface GigabitEthernet 0/0/24
[LSW2-GigabitEthernet0/0/24] port link-type trunk
# 允许VLAN 10、20、30通过(必须与LSW1一致)
[LSW2-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 30
# 设置Native VLAN(必须与LSW1一致)
[LSW2-GigabitEthernet0/0/24] port trunk pvid vlan 1
[LSW2-GigabitEthernet0/0/24] quit

# 保存配置
[LSW2] quit
<LSW2> save

关键配置说明
LSW2
Trunk链路
LSW1
G0/0/1

Access

VLAN 10
G0/0/24

Trunk

Allow: 10,20,30
VLAN 10 带标签
VLAN 20 带标签
VLAN 30 带标签
G0/0/1

Access

VLAN 10
G0/0/24

Trunk

Allow: 10,20,30

✅ 问题3:如何验证配置是否成功?

验证命令和预期输出

shell 复制代码
# 验证1:查看端口VLAN配置
<LSW1> display port vlan

# 预期输出:
Port                 Link Type    PVID  Trunk VLAN List
GigabitEthernet0/0/1 access       10    -
GigabitEthernet0/0/24 trunk        1     10 20 30

# 关键点:
# - G0/0/24的Link Type必须是trunk
# - Trunk VLAN List必须包含10、20、30
shell 复制代码
# 验证2:查看VLAN信息
<LSW1> display vlan 10

# 预期输出:
VLAN ID: 10
  Description: VLAN 0010
  Tagged   Ports:
    GigabitEthernet0/0/24           <-- Trunk端口打标签
  Untagged Ports:
    GigabitEthernet0/0/1             <-- Access端口不打标签

# 关键点:
# - Tagged Ports包含G0/0/24(Trunk端口)
# - Untagged Ports包含G0/0/1(Access端口)
shell 复制代码
# 验证3:测试连通性
# 在LSW1的G0/0/1连接的PC1上测试
C:\> ping 192.168.10.11

# 如果PC2(192.168.10.11)连接在LSW2的G0/0/1
# 应该能ping通,说明Trunk配置正确

Trunk故障排查

症状 可能原因 验证方法 解决方案
不同VLAN间不通 allow-pass未配置 display port vlan 添加port trunk allow-pass vlan X
部分VLAN不通 Trunk两端allow-pass不一致 对比两台交换机配置 统一allow-pass列表
VLAN 1不通 Native VLAN不匹配 display port vlan 统一port trunk pvid vlan 1
所有VLAN不通 端口类型错误 display port vlan 改为port link-type trunk
物理不通 网线/接口故障 display interface 检查物理连接

思考题3:故障排查(高级)

题目

复制代码
场景:VLAN配置完成后,PC无法通信

已完成配置:
[Switch] vlan batch 10 20
[Switch] interface G0/0/1
[Switch-G0/0/1] port link-type access
[Switch-G0/0/1] port default vlan 10
[Switch-G0/0/1] quit
[Switch] interface G0/0/2
[Switch-G0/0/2] port link-type trunk
[Switch-G0/0/2] port trunk allow-pass vlan 10 20
[Switch-G0/0/2] quit

PC配置:
- PC1连接G0/0/1,IP=192.168.10.10/24,VLAN 10
- PC2连接另一台交换机,IP=192.168.10.11/24,VLAN 10

现象:
- PC1无法ping通PC2
- display port vlan显示G0/0/1在VLAN 10
- display port vlan显示G0/0/2是Trunk

问题:
1. 可能的原因有哪些?(列出至少3个)
2. 你会依次检查什么?(给出排查步骤)
3. 如果两台交换机之间的Trunk配置不一致,会怎样?
✅ 问题1:可能的原因有哪些?

基于现象的可能原因分析

复制代码
已知信息:
✅ VLAN 10已创建
✅ G0/0/1正确配置为Access,VLAN 10
✅ G0/0/2正确配置为Trunk,允许VLAN 10,20
❌ PC1无法ping通PC2(PC2在另一台交换机上)

可能原因(按概率排序)

原因1:对端交换机G0/0/2未配置为Trunk(概率:40%)

复制代码
当前交换机:G0/0/2 Trunk ✓
对端交换机:G0/0/2 可能是Access或其他类型

结果:
  - 发送方向:当前交换机 → 对端(带标签)
  - 对端收到带标签帧,但不是Trunk端口
  - 对端丢弃帧
  - Ping失败

原因2:对端交换机未创建VLAN 10(概率:25%)

复制代码
当前交换机:VLAN 10存在 ✓
对端交换机:可能没有VLAN 10

结果:
  - 帧到达对端后,对端查找VLAN 10
  - 找不到VLAN 10
  - 丢弃帧
  - Ping失败

原因3:对端交换机G0/0/2未配置allow-pass vlan 10(概率:20%)

复制代码
当前交换机:port trunk allow-pass vlan 10 20 ✓
对端交换机:可能只允许VLAN 20,或使用默认(只允许VLAN 1)

结果:
  - 发送VLAN 10的帧到对端
  - 对端检查allow-pass列表
  - VLAN 10不在列表中
  - 丢弃帧
  - Ping失败

原因4:PC2的VLAN配置错误(概率:10%)

复制代码
PC1:连接在VLAN 10端口 ✓
PC2:可能连接在VLAN 20或其他VLAN的端口

结果:
  - PC1发送ARP请求(目标IP:192.168.10.11)
  - PC2不在VLAN 10,收不到ARP请求
  - 无法获取MAC地址
  - Ping失败

原因5:物理连接问题(概率:5%)

复制代码
可能的问题:
  - 网线未插好
  - 接口被shutdown
  - 网线损坏

结果:
  - 物理层不通
  - display interface显示DOWN
  - Ping失败
✅ 问题2:你会依次检查什么?(排查步骤)

系统性排查流程(从简单到复杂):
















PC1无法ping通PC2
步骤1

检查物理连接
接口状态UP?
重新插拔网线

检查接口shutdown
步骤2

检查本地配置
G0/0/2真的是Trunk?
修改为Trunk
步骤3

检查allow-pass
允许VLAN 10?
添加allow-pass vlan 10
步骤4

检查对端配置
对端有VLAN 10?
创建VLAN 10
步骤5

检查对端端口类型
对端是Trunk?
改为Trunk
步骤6

检查对端allow-pass
允许VLAN 10?
添加allow-pass
步骤7

检查PC2配置
PC2在VLAN 10?
修改PC2连接的端口
步骤8

检查PC2网络配置
IP配置正确?
修改IP地址
问题解决

详细排查命令

步骤1:检查物理连接

shell 复制代码
<Switch> display interface GigabitEthernet 0/0/2

# 检查要点:
# 1. Line protocol 是否为 UP
# 2. Hardware 是否有错误
# 预期输出:
GigabitEthernet0/0/2 current state : UP
Line protocol current state : UP

# 如果显示DOWN:
<Switch> system-view
[Switch] interface GigabitEthernet 0/0/2
[Switch-GigabitEthernet0/0/2] undo shutdown
[Switch-GigabitEthernet0/0/2] quit

步骤2:检查本地Trunk配置

shell 复制代码
<Switch> display port vlan

# 预期输出:
Port                 Link Type    PVID  Trunk VLAN List
GigabitEthernet0/0/1 access       10    -
GigabitEthernet0/0/2 trunk        1     10 20

# 关键检查:
# - G0/0/2的Link Type必须是trunk
# - Trunk VLAN List必须包含10

步骤3:登录对端交换机检查

shell 复制代码
# 通过Console或Telnet登录对端交换机
<Switch_Remote> display vlan

# 检查VLAN 10是否存在
<Switch_Remote> display port vlan

# 检查连接端口(假设是G0/0/2)
# 预期:
Port                 Link Type    PVID  Trunk VLAN List
GigabitEthernet0/0/2 trunk        1     10 20

# 如果不是Trunk:
<Switch_Remote> system-view
[Switch_Remote] interface GigabitEthernet 0/0/2
[Switch_Remote-GigabitEthernet0/0/2] port link-type trunk
[Switch_Remote-GigabitEthernet0/0/2] port trunk allow-pass vlan 10 20
[Switch_Remote-GigabitEthernet0/0/2] quit

步骤4:检查VLAN创建

shell 复制代码
<Switch_Remote> display vlan

# 确认VLAN 10存在
VLAN ID: 10
  Description: VLAN 0010
  ...

# 如果不存在:
<Switch_Remote> system-view
[Switch_Remote] vlan 10
[Switch_Remote-vlan10] quit

步骤5:验证连通性

shell 复制代码
# 在PC1上ping PC2
C:\> ping 192.168.10.11 -t

# 如果还是不通,使用以下命令排查:
# 1. 检查ARP缓存
C:\> arp -a

# 2. 检查PC2的IP配置
# 在PC2上执行:
C:\> ipconfig
# 确认IP地址是192.168.10.11/24

# 3. 在PC2上抓包(如果有Wireshark)
# 查看是否能收到来自PC1的ICMP包

快速排查清单

检查项 命令 预期结果 不符时的解决方案
物理连接 display interface G0/0/2 Line protocol: UP undo shutdown
本地端口类型 display port vlan Link Type: trunk port link-type trunk
本地allow-pass display port vlan 包含VLAN 10 port trunk allow-pass vlan 10
对端VLAN display vlan VLAN 10存在 vlan 10
对端端口类型 display port vlan Link Type: trunk port link-type trunk
对端allow-pass display port vlan 包含VLAN 10 port trunk allow-pass vlan 10
PC配置 ipconfig IP:192.168.10.11 修改IP地址
✅ 问题3:如果两台交换机之间的Trunk配置不一致,会怎样?

Trunk配置不一致的影响分析

场景1:allow-pass列表不一致

复制代码
LSW1配置:
  port trunk allow-pass vlan 10 20 30

LSW2配置:
  port trunk allow-pass vlan 10 20

结果:
  ✅ VLAN 10、20的数据可以互通
  ❌ VLAN 30的数据无法互通
  - LSW1发送VLAN 30的帧到LSW2
  - LSW2检查allow-pass列表
  - VLAN 30不在列表中
  - 丢弃帧

场景2:Native VLAN不一致

复制代码
LSW1配置:
  port trunk pvid vlan 1

LSW2配置:
  port trunk pvid vlan 10

结果:
  ⚠️ 可能导致VLAN 10的通信问题
  - LSW1发送不带标签的帧(认为是VLAN 1)
  - LSW2收到不带标签的帧,打上VLAN 10标签
  - 产生VLAN混淆
  - 可能引发广播风暴

场景3:一端是Trunk,一端是Access

复制代码
LSW1配置:
  port link-type trunk
  port trunk allow-pass vlan 10 20

LSW2配置:
  port link-type access
  port default vlan 10

结果:
  ❌ 所有VLAN通信失败
  - LSW1发送带标签的VLAN 10帧
  - LSW2(Access)不识别标签
  - 丢弃帧
  - 只有当LSW1发送不带标签的Native VLAN帧时可能通信

场景4:Trunk配置不一致的影响总结表

配置不一致点 影响 症状 解决方案
allow-pass列表 部分VLAN不通 特定VLAN无法通信 统一allow-pass列表
Native VLAN 可能VLAN混淆 不明原因的通信问题 统一pvid(建议VLAN 1)
端口类型 完全不通 所有VLAN无法通信 两端都配置为Trunk
速度/双工 严重丢包 网络极慢或不稳定 统一速度和双工模式

最佳实践

shell 复制代码
# 推荐的Trunk配置模板

# LSW1和LSW2都使用相同配置:
interface GigabitEthernet 0/0/24
 port link-type trunk
 port trunk allow-pass vlan 10 20 30
 port trunk pvid vlan 1
# 统一速度和双工(可选)
 speed 1000
 duplex full
 quit

# 验证一致性:
display port vlan interface GigabitEthernet 0/0/24
相关推荐
fanruitian2 小时前
k8s 更新镜像
java·服务器·kubernetes
梁洪飞2 小时前
使用rockchip sdk提供的uboot调通网络
linux·网络·arm开发·嵌入式硬件·arm
fanruitian2 小时前
k8s 创建service 暴漏集群ip
服务器·网络·kubernetes
Source.Liu2 小时前
【办公平台】在 Ubuntu 上部署 Synapse Matrix 服务器(本地网络版)
服务器·ubuntu
LYOBOYI1232 小时前
qml程序运行逻辑
java·服务器·数据库
Ar呐2 小时前
HCIP-Datacom-Core Technology~OSPF特殊区域及其他特性
网络
袁煦丞 cpolar内网穿透实验室2 小时前
mysql_exporter+cpolar远程监控 MySQL 不卡壳!cpolar 内网穿透实验室第 712 个成功挑战
服务器·数据库·mysql·远程工作·内网穿透·cpolar
yingzicat2 小时前
华为和华三交换机和路由器时间配置
网络·华为
jushisi2 小时前
下载eclipse MAT(Memory Analyzer Tool)
java·服务器