VLAN 划分完了,两台 PC 就是不互通?很多人在实验里走到这一步就卡住了:VLAN 10 的电脑能 ping 通自己的网关,VLAN 20 的电脑也能 ping 通自己的网关,但 VLAN 10 去 ping VLAN 20 就是没有回包。你翻来覆去检查端口类型、VLAN 绑定,发现都没有问题,问题到底出在哪?
答案可能和很多人想的不一样:VLAN 本身是二层隔离技术,隔离完成之后,跨 VLAN 的报文必须经过三层设备做“路由转发”。你划分完 VLAN,只完成了第一步;要让网络真正可用,还必须在三层设备上为每个 VLAN 配置网关,并保证转发路径上的链路和路由都正确。这篇实验教程,就是专门解决这个“第二步”的。
本文会基于华为 eNSP 模拟器,完成一个带接入交换机的 VLAN 间通信实验,使用三层交换机的 SVI(交换虚拟接口)方式打通 VLAN 10 和 VLAN 20。全文包含完整拓扑设计、可复制的配置命令、验证方法和排错清单,建议先收藏,再照着做。
1. 从“VLAN 划分成功”到“VLAN 间不通”:问题到底出在哪里?
很多人学 VLAN 的第一个实验是“划分 VLAN”,把不同部门放进不同 VLAN,用 Access 口接终端,用 Trunk 口级联交换机。配置完以后,你可能会发现一个有趣的现象:不同 VLAN 的 PC 不能互通了。看起来实验目标达到了,因为 VLAN 的隔离效果确实生效了。
但真实业务中,完全隔离的网络很少。财务要访问服务器,办公网要连打印机,监控系统要跨网段上报数据,这些场景都要求 VLAN 之间能够受控地互访。于是“VLAN 间通信”就成了比“划分 VLAN”更贴近生产环境的进阶实验。
如果你已经掌握了 VLAN 基础划分,第二个实验最应该补上的能力就是:在保留 VLAN 隔离的前提下,用三层设备让不同网段按规则互访。这就是实验 2 的核心目标。
判断实验是否成功的标准也很简单:PC1 能 ping 通 PC2,并且反过来 PC2 也能 ping 通 PC1。如果能做到,说明你对 VLAN、Trunk、网关、路由表这条完整的链路已经有了整体认识。
真正容易踩坑的地方在于:很多人只会在交换机上划分 VLAN,却对“网关放在哪”“谁来做三层转发”完全没有概念。配置 VLANIF 时也常常漏掉关键步骤,导致网关接口是 down 的。这篇文章后面会逐步拆开讲。
2. VLAN 间通信的核心原理:二层隔离与三层转发
先补齐两个基础概念,否则后面的配置容易变成“照着敲命令”。
第一个概念是二层转发。交换机工作在二层,通过 MAC 地址表转发数据帧。同一个 VLAN 内的 PC 可以直接通过交换机通信,因为它们在同一个广播域里。
第二个概念是三层转发。三层转发需要识别 IP 地址,并根据路由表决定报文从哪个接口出去。路由器天生干这个活儿,三层交换机则是“二层交换 + 三层路由”二合一,内部既维护 MAC 地址表,也维护路由表。
跨 VLAN 通信时,过程是这样的:
- PC1 发出 ping 请求,目标 IP 是 192.168.20.10,本地判断和自己不在同一网段,于是把报文的目的 MAC 填成网关(VLAN 10 的网关)的 MAC。
- 报文带着 VLAN 10 的标签进入三层交换机,交换机发现目的 MAC 是自家 VLANIF10 接口的 MAC,就把报文交给三层转发模块处理。
- 三层模块查找路由表,发现 192.168.20.0/24 这个网段直连在 VLANIF20 接口上,于是通过 ARP 查询 PC2 的 MAC。
- 交换机把报文重新封装成 VLAN 20 的帧,目的 MAC 改成 PC2 的 MAC,从对应端口转发出去。
- PC2 收到请求后,按同样的逻辑把回包发回 PC1。
所以“网关”不是一个虚拟概念,它就是一个真实的接口 IP。在单臂路由方案里,网关是路由器子接口的 IP;在三层交换机方案里,网关是 VLANIF 接口的 IP。没有这个接口,跨网段报文就没有出口;没有路由表,三层转发就不知道往哪个方向送。
很多同学卡住的根因就在这里:VLAN 配了,但 VLANIF 没配,或者 VLANIF 配了却因为对应 VLAN 没有活跃端口而处于 down 状态。后面会详细展开这一步。
3. 两种主流方案:单臂路由与三层交换机 SVI
解决 VLAN 间通信,业界有两套成熟方案,理解了它们的区别,你就知道实验 2 为什么选三层交换机。
3.1 单臂路由方案
单臂路由是把路由器的一个物理口接到交换机,交换机侧端口配置为 Trunk,路由器上再划分多个子接口,每个子接口绑定一个 VLAN 并配置一个 IP 作为该 VLAN 的网关。
报文从交换机出来进入路由器子接口,路由器打上 VLAN 标签识别出属于哪个子网,再根据路由表转发到另一个子接口,返回给交换机。实现起来很直观,但性能瓶颈明显:所有跨 VLAN 流量都要绕道路由器,路由器 CPU 要处理大量报文,规模稍大就扛不住。
3.2 三层交换机 SVI 方案
SVI 的全称是 Switch Virtual Interface,在华为设备上直接叫 VLANIF。它的思路是在三层交换机上为每个 VLAN 创建一个逻辑三层接口,这个接口的 IP 就是该 VLAN 内 PC 的网关。
报文到达三层交换机后,如果目的 MAC 是 VLANIF 的 MAC,就直接在交换机内部完成三层转发,不需要绕到外部设备。因为走的是硬件芯片转发,性能远高于路由器。
| 对比维度 | 单臂路由 | 三层交换机 SVI |
|---|---|---|
| 承载设备 | 路由器 + 二层交换机 | 三层交换机 |
| 网关位置 | 路由器子接口 | 交换机 VLANIF |
| 转发性能 | 较低,依赖路由器 CPU | 高,硬件转发 |
| 配置复杂度 | 中等,需要子接口封装 VLAN | 简单,每个 VLAN 一个接口 |
| 适用场景 | 小规模实验室或临时组网 | 园区网、企业网主流方案 |
| 典型成本 | 低 | 相对较高,但性能优势明显 |
结论很清晰:实验 2 采用三层交换机 SVI 方案。这不仅是考试和实验的热点,也是生产环境中最常见的集中式网关设计。理解了 SVI,你等于掌握了园区网里 80% 以上的 VLAN 间路由场景。
4. 实验 2 拓扑设计与 IP 规划
为了让这个实验接近真实组网,我没有把两台 PC 直接接到同一台三层交换机上,而是引入了一台接入交换机,用 Trunk 链路把核心交换机和接入交换机关联起来。这样做的目的是把 Trunk 放通、VLAN 透传这些真实故障点一并覆盖到。
4.1 拓扑结构
PC1 (192.168.10.10/24, 网关 192.168.10.1) | | G0/0/1 Access VLAN10 | [SW1] S5700 三层交换机 - VLANIF 10: 192.168.10.1/24 - VLANIF 20: 192.168.20.1/24 | | G0/0/2 Trunk 允许 VLAN 10 20 | [SW2] S3700 接入交换机 | | G0/0/2 Access VLAN20 | PC2 (192.168.20.10/24, 网关 192.168.20.1)SW1 是三层核心交换机,SW2 是二层接入交换机。PC1 直接接入 SW1 的 G0/0/1,PC2 接入 SW2 的 G0/0/2。SW1 与 SW2 之间通过 G0/0/2 和 G0/0/1 相连,链路类型为 Trunk。
4.2 地址规划
| 设备 | 接口位置 | 所属 VLAN | IP 地址 | 网关 |
|---|---|---|---|---|
| PC1 | 接 SW1 G0/0/1 | VLAN 10 | 192.168.10.10/24 | 192.168.10.1 |
| PC2 | 接 SW2 G0/0/2 | VLAN 20 | 192.168.20.10/24 | 192.168.20.1 |
| SW1 | VLANIF 10 | - | 192.168.10.1/24 | - |
| SW1 | VLANIF 20 | - | 192.168.20.1/24 | - |
| SW1-SW2 | G0/0/2 与 G0/0/1 | Trunk | 无 IP | - |
这个设计的核心思路是:网关全部集中在 SW1,SW2 只做二层透传,一台接入交换机不需要配置任何三层地址。这符合中小型园区网的典型架构,也方便后面扩展 VLAN 和策略。
5. 实验环境准备与设备基础配置
实验设备使用华为 eNSP 模拟器,SW1 选择 S5700 三层交换机,SW2 选择 S3700 或任意支持 Trunk 的 S 系列交换机。如果你用的是真实设备或其它厂商设备,大部分概念相通,但命令会有差异,本文以华为 VRP 命令为准。
启动 eNSP 后,按第 4 章拓扑拖入两台交换机、两台 PC,然后给设备上电。这里有一个很容易忽略的重点:接线位置必须和拓扑一致。PC1 接 SW1,PC2 接 SW2,不要因为偷懒把两台 PC 都接到同一台接入交换机上,那样就失去了 Trunk 链路验证的意义。
在开始配置前,建议先清空两台交换机的默认配置或直接重启设备,确保环境干净。eNSP 中右键设备选择“重启”,再等待设备启动到命令行状态。
也有同学会问:华为交换机划 VLAN 的配置是不是都一样的?这里统一回答:核心命令在 S 系列、CE 系列等主流框式或盒式交换机上非常接近,但高端框式设备的接口编号、VLANIF 支持情况、以及部分默认策略可能不同。做实验时以 eNSP 的 S5700/S3700 为准,放到生产环境前务必查阅对应型号的配置手册。
6. 核心配置步骤:三层交换机 SVI 实现 VLAN 间通信
这部分是整个实验的核心。总体思路分三步:
- SW1 创建 VLAN 10、20,配置接口类型和对应 VLANIF 网关;
- SW2 创建同样的 VLAN,配置 Trunk 并下挂 PC2;
- PC 配置好 IP、掩码、网关。
6.1 配置 SW1(三层核心交换机)
在 SW1 上依次输入以下命令:
<Huawei>system-view [Huawei]sysname SW1 [SW1]vlan batch 10 20 [SW1]interface GigabitEthernet0/0/1 [SW1-GigabitEthernet0/0/1]port link-type access [SW1-GigabitEthernet0/0/1]port default vlan 10 [SW1-GigabitEthernet0/0/1]quit [SW1]interface GigabitEthernet0/0/2 [SW1-GigabitEthernet0/0/2]port link-type trunk [SW1-GigabitEthernet0/0/2]port trunk allow-pass vlan 10 20 [SW1-GigabitEthernet0/0/2]quit [SW1]interface Vlanif 10 [SW1-Vlanif10]ip address 192.168.10.1 255.255.255.0 [SW1-Vlanif10]quit [SW1]interface Vlanif 20 [SW1-Vlanif20]ip address 192.168.20.1 255.255.255.0 [SW1-Vlanif20]quit [SW1]return逐条解释关键命令:
vlan batch 10 20:一次创建两个 VLAN,支持连续写法如vlan batch 10 to 20。port link-type access与port default vlan 10:把 G0/0/1 配置为 Access 口,并将该端口划入 VLAN 10。Access 口通常用于连接终端,收到的未打标帧会进入默认 VLAN。port link-type trunk与port trunk allow-pass vlan 10 20:Trunk 口用于交换机级联,放行 VLAN 10 和 VLAN 20 的流量。这里必须显式放通,华为 Trunk 口默认只允许 VLAN 1 通过,漏掉这条命令是跨交换机 VLAN 不通的最常见原因。interface Vlanif 10与ip address 192.168.10.1 255.255.255.0:创建 VLANIF10 并配置 IP,此 IP 就是 VLAN 10 内 PC 的网关。
6.2 配置 SW2(二层接入交换机)
SW2 不需要配置任何三层接口,只需要创建 VLAN、配置 Trunk 和 Access。
<Huawei>system-view [Huawei]sysname SW2 [SW2]vlan batch 10 20 [SW2]interface GigabitEthernet0/0/1 [SW2-GigabitEthernet0/0/1]port link-type trunk [SW2-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20 [SW2-GigabitEthernet0/0/1]quit [SW2]interface GigabitEthernet0/0/2 [SW2-GigabitEthernet0/0/2]port link-type access [SW2-GigabitEthernet0/0/2]port default vlan 20 [SW2-GigabitEthernet0/0/2]quit [SW2]return注意:SW2 上同样要创建 VLAN 10 和 VLAN 20。虽然 SW2 下只挂了 VLAN 20 的 PC2,但 Trunk 链路需要同时透传 VLAN 10 和 VLAN 20 的数据帧,如果只创建了 VLAN 20,port trunk allow-pass vlan 10 20会因找不到 VLAN 10 而报错或无法生效。
6.3 配置 PC1 与 PC2
在 eNSP 中双击 PC1,在“基础配置”页填写:
- PC1 IP:192.168.10.10,掩码:255.255.255.0,网关:192.168.10.1
再双击 PC2:
- PC2 IP:192.168.20.10,掩码:255.255.255.0,网关:192.168.20.1
这里的关键点是网关必须和 PC 所在 VLAN 的 VLANIF IP 一致。PC1 在 VLAN 10,所以网关是 VLANIF10 的 192.168.10.1;PC2 在 VLAN 20,网关是 VLANIF20 的 192.168.20.1。如果两台 PC 的网关都填成同一个,跨 VLAN 通信必然会失败,因为报文到了错误的三层接口后找不到目标网段的路由。
6.4 单臂路由配置对照(扩展学习)
如果你想同时掌握单臂路由方案,可以参考下面这一段。假设 R1 的 G0/0/0 连接交换机,交换机侧端口是 Trunk。
[R1]interface GigabitEthernet0/0/0.10 [R1-GigabitEthernet0/0/0.10]dot1q termination vid 10 [R1-GigabitEthernet0/0/0.10]ip address 192.168.10.1 255.255.255.0 [R1-GigabitEthernet0/0/0.10]arp broadcast enable [R1-GigabitEthernet0/0/0.10]quit [R1]interface GigabitEthernet0/0/0.20 [R1-GigabitEthernet0/0/0.20]dot1q termination vid 20 [R1-GigabitEthernet0/0/0.20]ip address 192.168.20.1 255.255.255.0 [R1-GigabitEthernet0/0/0.20]arp broadcast enable单臂路由的核心在于子接口要dot1q termination vid指定 VLAN,并开启arp broadcast enable,否则路由器无法响应交换机侧广播的 ARP 请求,网关会一直不可达。
7. 验证与结果分析:判定实验是否成功的标准
配置完成后立刻验证,这是工程师的基本素养。先做基本连通性测试,再看交换机状态。
7.1 PC1 ping PC2
在 PC1 的命令行工具中执行:
ping 192.168.20.10正常输出应该是四条Reply from 192.168.20.10,丢包率为 0。反向测试在 PC2 上执行:
ping 192.168.10.10如果 PC1 能 ping 通 PC2,但 PC2 不能 ping 通 PC1,问题通常出在回程路径:检查 PC1 的网关、VLANIF 配置或 Trunk 放通状态。
7.2 查看 SW1 上的 VLAN 与三层接口状态
在 SW1 上执行:
[SW1]display vlan预期会看到 VLAN 10 和 VLAN 20 都是up状态。继续查看三层接口:
[SW1]display ip interface brief *down: administratively down !down: FIB overload down Interface IP Address/Mask Physical Protocol Vlanif10 192.168.10.1/24 up up Vlanif20 192.168.20.1/24 up up两个 Vlanif 都处于 up/up,说明网关已就绪。如果某个 Vlanif 是 down,优先检查对应 VLAN 是否有活跃端口,以及 PC 是否开机、Access/Trunk 是否配置正确。
7.3 查看路由表确认直连路由
继续在 SW1 上执行:
[SW1]display ip routing-table预期能看到两个直连路由条目:
192.168.10.0/24 Direct 0 0 D 192.168.10.1 Vlanif10 192.168.20.0/24 Direct 0 0 D 192.168.20.1 Vlanif20看到 Direct 路由后,说明三层交换机的转发基础已经具备。跨 VLAN 报文会在交换机内部查这两条路由,完成封装和转发。
7.4 进阶验证:Trunk 抓包观察 VLAN 标签
如果你用的是 eNSP 新版本且支持在链路抓包,可以在 SW1 与 SW2 之间的 Trunk 链路上抓包。你会看到同一物理链路上同时存在带 VLAN 10 标签的 ICMP 请求,以及带 VLAN 20 标签的 ICMP 应答。这个画面能非常直观地解释“Trunk 为什么要放通多个 VLAN”。
8. 常见问题与排查思路
实验命令不多,但实际排错时层次很多。下面这张表基本覆盖了初学者最容易遇到的问题。
| 问题现象 | 可能原因 | 排查命令与动作 | 解决方案 |
|---|---|---|---|
| 所有 PC 互 ping 不通 | PC 网关配置错误或未配置 | ping 网关IP,检查 PC 的 IP/掩码/网关 | 按规划重新填写 PC 配置 |
| ping 网关不通,Vlanif 是 down | VLAN 内没有活跃物理端口 | display vlan、display ip interface brief | 检查端口是否划入 VLAN、Trunk 是否放通、PC 是否开机 |
| 从 PC1 能 ping 通网关,但 ping 不通 PC2 | 目的 VLAN 网关或 PC2 配置异常 | 在 SW1 上ping 192.168.20.10 | 检查 PC2 网关和 IP 是否属于 192.168.20.0/24 |
| 跨交换机 VLAN 不通 | Trunk 未放通对应 VLAN | display port vlan | 在两端执行port trunk allow-pass vlan 10 20 |
| 接入交换机报错:VLAN 不存在 | 只在下发 Trunk 命令,未先创建 VLAN | display vlan | 在 SW2 创建需要透传的全部 VLAN |
| 配置正确但 PC 收不到响应 | ARP 表项学习异常或旧表项残留 | display arp | 执行reset arp all后重新 ping |
| 单臂路由模式下子接口收不到广播 | 子接口未开启 ARP 广播 | display interface brief | 执行arp broadcast enable |
| 带标签帧在 Trunk 上表现异常 | 两端 PVID 不一致或放通列表不一致 | display port vlan | 保持两端 trunk 配置一致,PVID 默认同为 1 |
8.1 关于 trunk pvid 的特殊说明
很多人在研究 Trunk 时会碰到pvid这个名词。华为交换机 Trunk 端口的缺省 PVID 是 1,它的作用是决定“未打标帧”进入交换机时被划分到哪个 VLAN,以及从 Trunk 发送未打标帧时属于哪个 VLAN。
在本文拓扑中,PC1 发出的帧从 Access 口进入交换机会被打上 VLAN 标签,到达 Trunk 后已经带标签,所以 PVID 不影响正常通信。但如果你的设备接入的是未打标帧,而两端 PVID 不一致,帧就可能被划分到错误的 VLAN,造成非常隐蔽的通信故障。排查时用display port vlan查看端口 PVID 和放通列表,保持两端一致即可。
9. 最佳实践与工程建议
实验通关后,这些经验可以直接迁移到真实项目。
9.1 网关放核心层,接入层只做转发
实验 2 的拓扑体现了企业网络的经典分层思路:核心层负责高速转发和三层网关,接入层只做终端接入和二层透传。SW2 不配置任何三层地址,所有网关集中在 SW1。这种集中式网关设计配置简单、排错清晰,适合中小型园区网。
9.2 VLAN 与网段一一对应,网关地址固定规则
建议一个 VLAN 对应一个独立网段,网关地址统一使用该网段的第一个地址或约定地址,例如 192.168.X.1。不要在同一个 VLAN 里混入多个网段,也不要让 PC 自己分配网关地址,否则广播、ARP 和路由排查的成本会大幅上升。
9.3 为端口和 VLANIF 添加描述
生产环境配置一定要写描述,不然三个月后回来看配置会非常痛苦。
[SW1]interface GigabitEthernet0/0/1 [SW1-GigabitEthernet0/0/1]description to-PC1_VLAN10 [SW1-GigabitEthernet0/0/1]quit [SW1]interface Vlanif 10 [SW1-Vlanif10]description Office_Gateway这个习惯对团队协作和故障定位都有很大帮助。
9.4 用 ACL 实现受控互访
VLAN 间通信不等于所有网段全通。实际业务中,办公网访问服务器通常需要放行指定服务端口,访问监控网段可能要阻断。三层交换机上的 ACL 可以做到精细化控制,但配置策略前务必在测试环境验证,并做好回滚准备。
9.5 保存配置与变更前快照
eNSP 实验里配置完成后记得执行save,否则设备重启后配置会全部丢失。生产环境变更前建议执行以下命令保存现场:
display current-configuration display vlan display ip interface brief display ip routing-table变更后再次对比,可以让影响范围一目了然。
10. 下一步还能学什么
实验 2 打通了 VLAN 间通信的最基本链路。但真实网络比这个实验复杂得多,建议按顺序完成下面三个延伸练习:
第一,在现有拓扑中加入 VLAN 30 和第三台 PC,扩展 VLAN、VLANIF、Trunk 放通配置,并验证三个网段互访。第二,把 SW1 与 SW2 之间的单条 Trunk 改成两条链路,实践链路聚合 Eth-Trunk,再验证 VLAN 间通信是否正常。第三,在 SW1 上配置 ACL,限制 VLAN 10 只能访问 VLAN 20 的指定服务端口,理解“受控互访”与“全通”的区别。
当你把这三个练习做完,再回头看“VLAN 间通信”这个题目,会发现它已经不是一个孤立的知识点,而是理解园区网络三层架构的一把钥匙。