五、交换技术与VLAN
目录
🎯 这节课为什么重要?
作为工程师,您会遇到这些场景:
- 🔧 “为什么两个部门之间能直接访问?”
- 🔧 “如何隔离不同部门的网络?”
- 🔧 “交换机之间如何连接多个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. 转发:
- 如果表中存在 → 从指定接口转发(单播)
- 如果表中不存在 → 从所有接口广播(泛洪)
学习过程可视化:
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) | 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
配置示例:
[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的设备
配置示例:
[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
三种端口类型对比:
| 特性 | Access端口 | Trunk端口 | Hybrid端口 |
|---|---|---|---|
| 连接设备 | 终端设备(PC、打印机) | 交换机、路由器 | 任何设备 |
| VLAN数量 | 1个 | 多个 | 多个 |
| 发送标签 | ❌ 剥离标签 | ✅ 保留标签 | ⚙️ 可配置 |
| 接收处理 | 打上PVID标签 | 检查允许列表 | ⚙️ 灵活配置 |
| 使用场景 | 接入层 | 汇聚层、核心层 | 华为特有,灵活场景 |
| 华为命令 | port link-type access |
port link-type trunk |
port link-type hybrid |
Trunk端口处理流程:
- 在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
[LSW1] system-view
[LSW1] vlan batch 10 20 30
[LSW1] quit
步骤2:配置Access端口(连接PC)
# 财务部端口
[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端口(连接路由器/其他交换机)
[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:验证配置
# 查看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的数据
数据流向:
配置步骤:
LSW1配置:
[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配置:
[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
验证测试:
# 在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间通信数据流向(PC1访问PC3):
配置步骤:
步骤1:配置交换机(LSW1)
[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)
[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
验证测试:
# 在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配置
配置示例:
# 启用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无法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交换机完整配置:
<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>
配置验证命令:
# 查看所有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:如何实现财务部和研发部互通?
方案一:单臂路由(适合小型网络)
步骤1:配置交换机(LSW1)
[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)
[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:测试连通性
# 在PC1上ping研发部PC3
C:\> ping 192.168.20.10
# 数据流向:
PC1 (VLAN 10) → 交换机 → 路由器子接口.10 → 路由查找
→ 子接口.20 → 交换机 → PC3 (VLAN 20)
方案二:三层交换机(推荐,适合大中型网络)
# 配置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完整配置:
<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完整配置:
<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
关键配置说明:
✅ 问题3:如何验证配置是否成功?
验证命令和预期输出:
# 验证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
# 验证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端口)
# 验证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:你会依次检查什么?(排查步骤)
系统性排查流程(从简单到复杂):
详细排查命令:
步骤1:检查物理连接
<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配置
<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:登录对端交换机检查
# 通过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创建
<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:验证连通性
# 在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 |
| 速度/双工 | 严重丢包 | 网络极慢或不稳定 | 统一速度和双工模式 |
最佳实践:
# 推荐的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
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)