目录
-
- [🎯 这节课为什么重要?](#🎯 这节课为什么重要?)
- [📦 核心概念:交换机就像"智能快递分拣中心"](#📦 核心概念:交换机就像"智能快递分拣中心")
- [📚 一、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配置)
- [⚠️ 五、常见误区与易错点](#⚠️ 五、常见误区与易错点)
-
- 误区1:混淆Access和Trunk端口
- 误区2:忘记配置Trunk允许的VLAN
- [误区3:Native VLAN不匹配](#误区3:Native VLAN不匹配)
- 误区4:VLAN间直接通信
- 误区5:忽略广播域大小
- [📌 六、本节重点总结](#📌 六、本节重点总结)
- [🔍 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内转发
发送方向(出方向):
-
检查数据帧的VLAN ID
-
如果VLAN ID == PVID
- 去掉标签发送
-
如果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
📌 六、本节重点总结
核心要点
-
交换机工作原理:
- 学习MAC地址
- 查表转发
- 未知单播泛洪
-
VLAN的作用:
- 隔离广播域
- 提高安全性
- 灵活管理
-
端口类型:
- Access:连接终端,1个VLAN
- Trunk:连接交换机,多个VLAN
- Hybrid:华为特有,灵活配置
-
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
- 创建VLAN:
-
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 = 不同的广播域 │
│ 广播域之间默认隔离,无法直接通信 │
└─────────────────────────────────────────┘
技术解释:
-
广播域隔离:
- VLAN 10的广播帧只会在G0/0/1~G0/0/10转发
- VLAN 20的广播帧只会在G0/0/11~G0/0/20转发
- 两者完全隔离
-
二层隔离:
- 交换机是二层设备,只能根据MAC地址转发
- MAC地址表按VLAN隔离
- VLAN 10的MAC地址在VLAN 20中不可见
-
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