对于很多刚开始接触华为交换机的学习者来说,VLAN 划分实验做完之后,紧接着会遇到一个非常典型的问题:不同 VLAN 里的 PC 互相 ping 不通。这个现象并不是故障,而是 VLAN 的默认行为——它在二层隔离了广播域,也同时隔离了不同网段之间的通信路径。真正需要补上的,是 VLAN 间通信配置。
这篇文章围绕 VLAN 间通信的两种主流实现方式展开:单臂路由(路由器子接口 + 802.1Q 封装)和三层交换机 VLANIF 接口。整套内容按照实验顺序组织,从地址规划、设备配置、连通性验证到排错思路,覆盖到学习环境和真实网络环境中的常见差异。适合刚完成 VLAN 基础配置、正在备考 HCIA 或准备用 eNSP 完成课程设计的读者。
在开始配置之前,先建立两个基本认知:VLAN 为什么默认不能互相通信,以及要打通不同 VLAN 需要哪个层面的设备参与。
1. 先理解 VLAN 隔离机制和三层转发的介入点
1.1 VLAN 划分完成后的默认行为:二层隔离
VLAN 的核心作用是把一个物理交换网络划分成多个逻辑广播域。默认情况下,交换机端口属于 VLAN 1,同一 VLAN 内的设备可以直接通过二层交换机转发通信,不同 VLAN 之间的帧默认不会互相转发。
这带来两个结果:
- 二层广播被限制在同一个 VLAN 内,一个 VLAN 的广播帧不会扩散到另一个 VLAN。
- 不同 VLAN 的 PC 即使连接在同一台交换机上,也无法直接通过二层通信,因为交换机的 MAC 地址表是按 VLAN 隔离的。
很多实验做完 VLAN 划分后,PC1 在 VLAN 10,PC2 在 VLAN 20,两边配置了不同网段,ping 不通。这是正确现象。要让它们通信,必须引入三层设备来执行路由转发。
1.2 跨 VLAN 通信本质上是三层路由
不同 VLAN 通常对应不同的 IP 子网。VLAN 间通信的实质是:一个 VLAN 内 PC 发出的数据帧到达三层设备后,三层设备根据目标 IP 地址查找路由表,并通过另一个 VLAN 的三层接口继续转发。
承担这个职责的设备有两种常见形态:
- 路由器:通过 802.1Q 子接口识别不同 VLAN 的标签,在同一个物理接口上处理多个 VLAN 的流量。
- 三层交换机:通过 VLANIF 接口为每个 VLAN 创建虚拟三层接口,直接进行高速路由转发。
前者是经典的单臂路由方案,适合小型网络教学实验和出口路由器场景;后者是园区网、企业网中最常用的 VLAN 间通信方案。
1.3 一个公共实验前提:地址规划要统一
无论选择哪种方案,地址规划都必须保持一致的规则:
- 每个 VLAN 对应一个独立 IP 网段。
- VLAN 的三层接口地址(网关)取该网段的首个可用地址。
- PC 使用该网段内的其他地址,并配置对应网关。
本文使用以下地址规划进行实验:
| 对象 | VLAN | IP 网段 | 网关 | PC 地址 |
|---|---|---|---|---|
| PC1 | VLAN 10 | 10.1.10.0/24 | 10.1.10.1 | 10.1.10.10 |
| PC2 | VLAN 20 | 10.1.20.0/24 | 10.1.20.1 | 10.1.20.10 |
| PC3 | VLAN 30 | 10.1.30.0/24 | 10.1.30.1 | 10.1.30.10 |
实验目标是让三个不同 VLAN 的 PC 全部互通。
2. 实验一:使用单臂路由(Router-on-a-Stick)实现 VLAN 间通信
2.1 实验拓扑和端口连接关系
单臂路由的拓扑结构非常简洁,使用一台路由器连接一台交换机,PC 分别接入交换机不同 VLAN:
- 路由器 R1 的 GigabitEthernet0/0/0 连接交换机 S1 的 GigabitEthernet0/0/1。
- 交换机 S1 的 GigabitEthernet0/0/2 连接 PC1,端口属于 VLAN 10。
- 交换机 S1 的 GigabitEthernet0/0/3 连接 PC2,端口属于 VLAN 20。
- 交换机 S1 的 GigabitEthernet0/0/4 连接 PC3,端口属于 VLAN 30。
在 eNSP 中建议选择 AR2220 作为路由器,S5700 作为交换机。设备型号不同,命令行的提示符和默认状态会有细微差异,但配置逻辑一致。
2.2 交换机侧配置:创建 VLAN、划分 Access 口、配置 Trunk
交换机侧的配置分为三部分。
第一部分,创建 VLAN:
system-view sysname S1 vlan batch 10 20 30 quit第二部分,将连接 PC 的端口配置为 Access 并划分到对应 VLAN:
interface GigabitEthernet0/0/2 port link-type access port default vlan 10 quit interface GigabitEthernet0/0/3 port link-type access port default vlan 20 quit interface GigabitEthernet0/0/4 port link-type access port default vlan 30 quit第三部分,将连接路由器的端口配置为 Trunk,并放行所需 VLAN:
interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 30 quitAccess 口发送给 PC 的帧不带 VLAN Tag,PC 不需要识别 802.1Q 标签。Trunk 口用于交换机与路由器之间传递带 VLAN 标签的帧,因此必须放行对应 VLAN。
配置完成后,使用display vlan查看 VLAN 和端口对应关系:
[S1]display vlan VID Type Status Property 10 common enable default 20 common enable default 30 common enable default VID Ports ----------------------------------------------------------------- 10 GigabitEthernet0/0/2 20 GigabitEthernet0/0/3 30 GigabitEthernet0/0/4如果看到端口没有出现在对应 VLAN 下,优先检查 Access 口的port default vlan是否配置成功,以及端口是否处于 up 状态。
2.3 路由器侧配置:通过子接口识别 VLAN 标签
单臂路由的关键在路由器侧。路由器的物理接口只接收一个网段的流量,无法直接作为多个 VLAN 的网关,因此需要创建子接口,并为子接口封装 802.1Q 协议。
进入路由器物理接口,先确保物理接口开启:
system-view sysname R1 interface GigabitEthernet0/0/0 undo shutdown quit创建三个子接口,分别对应 VLAN 10、VLAN 20、VLAN 30:
interface GigabitEthernet0/0/0.10 dot1q termination vid 10 ip address 10.1.10.1 255.255.255.0 arp broadcast enable quit interface GigabitEthernet0/0/0.20 dot1q termination vid 20 ip address 10.1.20.1 255.255.255.0 arp broadcast enable quit interface GigabitEthernet0/0/0.30 dot1q termination vid 30 ip address 10.1.30.1 255.255.255.0 arp broadcast enable quit子接口配置中有几个点需要重点解释:
dot1q termination vid 10表示该子接口只处理 VLAN 10 的带 Tag 帧。交换机发送过来的帧带有 VLAN 标签,路由器只有通过这个命令才能识别标签属于哪个 VLAN。- 子接口的 IP 地址就是对应 VLAN 内 PC 的网关。
arp broadcast enable的作用是允许子接口处理广播 ARP 报文。部分模拟器版本和真实设备上,子接口默认不处理 ARP 广播,会导致 PC 无法获取网关 MAC 地址。遇到 ping 不通且 ARP 表为空时,要回过来检查这条配置。- 物理接口是子接口的前提条件,如果物理接口 down,子接口状态也会异常。
查看子接口状态:
[R1]display ip interface brief Interface IP Address/Mask Physical Protocol GigabitEthernet0/0/0 unassigned up up GigabitEthernet0/0/0.10 10.1.10.1/24 up up GigabitEthernet0/0/0.20 10.1.20.1/24 up up GigabitEthernet0/0/0.30 10.1.30.1/24 up up如果子接口 Protocol 状态不是 up,通常是dot1q termination vid没有配置,或者交换机 Trunk 口没有放行对应 VLAN。
2.4 配置 PC 并验证连通性
为三台 PC 配置 IP 地址和网关。以 PC1 为例:
- IP 地址:10.1.10.10
- 子网掩码:255.255.255.0
- 网关:10.1.10.1
PC2 使用 10.1.20.10 和网关 10.1.20.1,PC3 使用 10.1.30.10 和网关 10.1.30.1。eNSP 中 PC 的配置在图形界面完成,也可以进入命令行模式通过ipconfig查看结果。
在 PC1 上 ping PC2:
PC> ping 10.1.20.10 Ping 10.1.20.10: 32 data bytes, Press Ctrl_C to break From 10.1.20.10: bytes=32 seq=1 ttl=126 time=31 ms From 10.1.20.10: bytes=32 seq=2 ttl=126 time=16 ms From 10.1.20.10: bytes=32 seq=3 ttl=126 time=15 ms能收到回复,说明 VLAN 间通信已经打通。同样可以验证 PC1 和 PC3、PC2 和 PC3 之间的互通。
在路由器上查看 ARP 表,可以看到各 PC 的学习记录:
[R1]display arp IP ADDRESS MAC ADDRESS EXPIRE(M) TYPE INTERFACE VPN-INSTANCE 10.1.10.10 5489-98d1-0a11 18 I GE0/0/0.10 10.1.20.10 5489-98d1-0a22 18 I GE0/0/0.20 10.1.30.10 5489-98d1-0a33 18 I GE0/0/0.30如果 ARP 表中没有某个 PC 的 MAC,说明 PC 到路由器子接口之间的链路存在 VLAN 标签识别问题,重点检查交换机的 Trunk 放行列表和子接口的dot1q termination vid。
2.5 单臂路由实验常见问题
单臂路由实验中最常出现的三个问题:
| 问题现象 | 常见原因 | 检查方式 | 处理建议 |
|---|---|---|---|
| PC 无法 ping 通其他 VLAN | PC 网关配置错误 | ipconfig查看网关 | 将网关改为对应子接口 IP |
| 子接口协议 down | 交换机 Trunk 口未放行 VLAN | display port vlan | 配置port trunk allow-pass vlan |
| ARP 表一直为空 | 子接口未开启 ARP 广播 | display arp对比 | 子接口下配置arp broadcast enable |
另一个非常容易踩的坑是:PC 配置了多个网段的地址,或者 Windows 防火墙拦截了 ICMP 请求。真实 PC 实验时,需要先关闭防火墙或允许 ICMP 入站,否则 PC 之间虽然配置正确,ping 依然显示超时。
3. 实验二:使用三层交换机 VLANIF 接口实现 VLAN 间通信
3.1 为什么三层交换机的 VLANIF 方案更常用
单臂路由的瓶颈在于所有跨 VLAN 流量都要经过一条链路和一个物理接口,既存在带宽瓶颈,也让路由器成为单点。实际园区网络中,大量 VLAN 间流量发生在交换机内部,使用三层交换机配置 VLANIF 接口是更常见的方案。
三层交换机既具备二层交换能力,也能为每个 VLAN 创建虚拟三层接口。VLANIF 接口作为该 VLAN 内 PC 的网关,数据包在同一台交换机内部完成三层转发,不需要把流量绕到外部路由器。
3.2 最小拓扑和交换机配置
实验拓扑比单臂路由更简单:
- 三层交换机 S1 连接 PC1、PC2、PC3。
- PC1 属于 VLAN 10,PC2 属于 VLAN 20,PC3 属于 VLAN 30。
- 交换机通过 VLANIF 接口作为各 VLAN 的网关。
交换机配置分为两步。
第一步,配置二层部分,创建 VLAN 并划分 Access 端口:
system-view sysname S1 vlan batch 10 20 30 interface GigabitEthernet0/0/2 port link-type access port default vlan 10 quit interface GigabitEthernet0/0/3 port link-type access port default vlan 20 quit interface GigabitEthernet0/0/4 port link-type access port default vlan 30 quit第二步,配置三层部分,为每个 VLAN 创建 VLANIF 接口并配置网关地址:
interface Vlanif10 ip address 10.1.10.1 255.255.255.0 quit interface Vlanif20 ip address 10.1.20.1 255.255.255.0 quit interface Vlanif30 ip address 10.1.30.1 255.255.255.0 quit这里要注意 VLANIF 接口与子接口的区别:子接口是路由器物理口上创建的虚拟接口,VLANIF 是三层交换机上直接创建的虚拟三层接口,两者都承担网关职责,但底层实现不同。
部分华为模拟器或真实设备默认没有启用 IP 路由能力。如果 VLANIF 配置完成后仍然不通,可以执行ip routing开启三层路由,再查看路由表。这个命令本身不会影响二层转发。
3.3 验证三层交换机方案
配置完成后,在 PC1 上 ping PC2 和 PC3。同时在三层交换机上查看 VLANIF 接口状态:
[S1]display ip interface brief Interface IP Address/Mask Physical Protocol Vlanif10 10.1.10.1/24 up up Vlanif20 10.1.20.1/24 up up Vlanif30 10.1.30.1/24 up up查看路由表,三个直连网段会自动出现在路由表中:
[S1]display ip routing-table Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Routing Tables: Public Destinations : 9 Routes : 9 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.1.10.0/24 Direct 0 0 D 10.1.10.1 Vlanif10 10.1.20.0/24 Direct 0 0 D 10.1.20.1 Vlanif20 10.1.30.0/24 Direct 0 0 D 10.1.30.1 Vlanif30VLANIF 配置成功后,路由表会自动生成直连路由。VLAN 间通信本质上依赖这张路由表,不依赖任何静态路由或动态路由协议。
三层交换机方案中常遇到的问题:
| 问题现象 | 常见原因 | 检查方式 | 处理建议 |
|---|---|---|---|
| 同 VLAN 通,跨 VLAN 不通 | VLANIF 地址与 PC 网关不一致 | display ip interface brief | 修改 VLANIF 地址或 PC 网关 |
| VLANIF 接口 down | 对应 VLAN 下没有 up 的二层端口 | display vlan | 检查 Access 端口和物理连接 |
| 跨 VLAN 不通且路由表为空 | 未启用 IP 路由 | display ip routing-table | 配置ip routing |
4. 两种 VLAN 间通信方案选型对比
4.1 单臂路由与 VLANIF 的核心差异
| 对比维度 | 单臂路由(路由器子接口) | 三层交换机 VLANIF |
|---|---|---|
| 转发性能 | 路由器软件转发,性能有限 | 交换机硬件转发,性能高 |
| 核心配置位置 | 路由器子接口 + 交换机 Trunk | 交换机 VLANIF 接口 |
| 关键命令 | dot1q termination vid | interface Vlanif10 |
| 典型场景 | 小型网络、出口路由器、教学实验 | 园区网、企业网、核心和汇聚层 |
| 扩展复杂度 | 每个 VLAN 增加一个子接口,流量容易集中到单链路 | 随 VLAN 增加 VLANIF 接口,内部转发不占外部链路 |
| 排错重点 | 802.1Q 封装、Trunk 放行、ARP | VLANIF 状态、路由使能、网关一致性 |
4.2 场景选型建议
单臂路由适合三种场景:
- 网络设备中已经有一台现成路由器,不需要额外采购三层交换机。
- 实验环境用于理解 802.1Q 标签和子接口概念。
- 园区网络出口需要执行 NAT、ACL 等策略,路由器承担 VLAN 间路由并连接外部网络。
三层交换机的 VLANIF 方案适合多数内部网络场景:
- 建筑内部、办公园区、数据中心内部的 VLAN 间互访。
- 需要承载大量南北向和东西向流量的核心交换层。
- 希望避免单臂路由单链路瓶颈的中小型企业网络。
一个常见的设计组合是:接入交换机做二层 VLAN 划分,汇聚或核心三层交换机配置 VLANIF 作为各 VLAN 网关,出口路由器只负责访问外部网络和策略控制。这个组合兼顾了内部转发性能和对外出口管理能力。
5. 跨方案排错思路与可复用检查清单
5.1 按“PC -> 接入 -> Trunk -> 三层设备”的顺序排查
VLAN 间通信的故障链路比普通二层故障长,排错时要避免直接怀疑某个设备。推荐按数据流向从底层到上层排查:
第一步,检查 PC 基础配置:
ipconfig确认 IP 地址、子网掩码、网管三项配置。网关写错是跨 VLAN ping 不通的最常见原因。
第二步,检查交换机二层配置:
display vlan display port vlan确认 PC 所在端口在正确 VLAN 中,连接路由器的端口是 Trunk,并且放行了所有需要通信的 VLAN。如果使用单臂路由,Trunk 口没有放行 VLAN,带标签的帧会被丢弃。
第三步,检查三层设备的接口状态:
display ip interface brief单臂路由方案检查子接口是否 up,VLANIF 方案检查 VLANIF 接口是否 up。如果接口 down,数据包无法完成三层转发。
第四步,检查 ARP 和路由表:
display arp display ip routing-tableARP 表能看到对端 PC 的 MAC,说明二层链路和网关的 ARP 交互正常。路由表存在三个直连网段,才能确保三层转发有路径。
5.2 两张验证命令输出速查表
| 命令 | 作用 | 关注点 |
|---|---|---|
display vlan | 查看 VLAN 和端口 | 端口是否在预期 VLAN |
display port vlan | 查看端口的链路类型和放行 VLAN | Trunk 是否放行、access 口 PVID |
display ip interface brief | 查看三层接口状态和地址 | 接口 Protocol 是否为 up |
display ip routing-table | 查看路由表 | 直连网段是否存在 |
display arp | 查看 ARP 表 | 网关是否学习到 PC 的 MAC |
| 故障现象 | 检查顺序 | 优先怀疑对象 |
|---|---|---|
| 所有 PC 互相 ping 不通 | PC IP -> VLAN 端口 -> 三层接口状态 | PC 网关、交换机端口 |
| 同 VLAN PC 通,跨 VLAN 不通 | 三层接口 -> 路由表 -> VLANIF/子接口 down | 网关地址不一致、未放行 VLAN |
| 单臂路由子接口协议 down | 物理接口 -> Trunk 放行 -> dot1q termination vid | Trunk 放行配置 |
| VLANIF 接口 down | VLAN 下是否有 up 的端口 -> access 配置 | Access 端口和 VLAN 归属 |
5.3 可复用的实验排错清单
- [ ] 确认 PC 的 IP、掩码、网关是否在同一网段规划中。
- [ ] 确认 PC 所在交换机端口属于正确的 VLAN。
- [ ] 确认交换机连接路由器的端口为 Trunk 且放行所有 VLAN。
- [ ] 确认路由器子接口或交换机 VLANIF 的 IP 是 PC 的网关。
- [ ] 确认三层接口状态为 up 且 Protocol 为 up。
- [ ] 确认 ARP 表中能看到 PC 的 MAC 地址。
- [ ] 确认路由表中存在对应网段的直连路由。
- [ ] 如果在真实 PC 上实验,关闭防火墙或放行 ICMP。
6. 实验到工程落地:常见错误与最佳实践
6.1 五个高频错误及规避方法
第一个错误:PC 配了 IP 但忘配网关。VLAN 内二层通信可以不需要网关,但 VLAN 间通信的数据包必须先发到网关,再由网关路由转发。
第二个错误:Trunk 口只配了链路类型,没有放行 VLAN。华为交换机 Trunk 口默认放行 VLAN 1,其他 VLAN 必须通过port trunk allow-pass vlan显式放行。
第三个错误:在 Trunk 口上执行port default vlan。Trunk 口用 PVID 表示默认 VLAN,但日常业务规划中很少需要同时修改 Trunk 口的 PVID。如果发现一个 Trunk 口既放行多个 VLAN,又修改了 PVID,很容易出现标签不匹配问题,建议只保留port trunk allow-pass vlan。
第四个错误:混用 Access 和 Trunk 链路类型的 PVID。Access 口发送不带标签的帧,Trunk 口通常发送带标签的帧。一个端口只能选择一种链路类型,不要在同一个端口上反复切换port link-type。
第五个错误:配置完不保存。在 eNSP 中设备重启后配置会丢失,真实设备也一样。实验完成后要执行save并确认保存成功:
save y6.2 从模拟器到真实生产环境要注意什么
模拟器实验验证的是配置逻辑,真实生产环境还需要补充以下内容:
网络设备上建议使用业务命名 VLAN,而不是只用数字编号:
vlan batch 10 20 30 vlan 10 name Sales vlan 20 name Finance规划网关地址时,建议为每台三层设备预留管理地址,并把它放在单独的网管 VLAN 中,不要与业务 VLAN 混合。
生产环境通常不会只有一台三层交换机。网关设备的冗余需要额外协议支撑,例如华为设备的 VRRP 或堆叠技术。VLANIF 接口在冗余网关场景中需要与 VRRP 虚拟 IP 配合,不能简单复制单台设备的配置。
VLAN 间通信打通之后,安全策略也要同步考虑。不同部门 VLAN 之间可能需要 ACL 限制互访范围,而不是默认全部放通。针对接入层还可以配置基于 IP 源地址的防护策略,防止终端伪造 IP 或 MAC 地址接入网络。
6.3 可以继续扩展的练习方向
完成本文两个实验之后,建议按以下顺序继续练习:
- 在 VLANIF 方案中配置 DHCP 服务,让 PC 从交换机或路由器自动获取地址,而不是使用静态 IP。
- 在 VLAN 间通信基础上配置 ACL,限制 VLAN 10 访问 VLAN 30 的流量。
- 在核心三层交换机和出口路由器之间配置静态路由,实现 PC 访问外部网络。
- 使用 VRRP 为 VLAN 网关提供冗余,观察主备设备切换时 PC 通信是否中断。
- 结合防火墙或 IPSG 组网,验证 VLAN 间安全策略对通信的实际影响。
对于初学者来说,最有价值的练习不是背命令,而是把两个实验反复做到不看笔记也能独立完成,并且能够从现象判断出问题出在二层还是三层。VLAN 间通信的真正难点从来不在单条命令,而在判断数据帧经过哪个设备、哪些标签被剥离、哪些接口承载了三层网关。把这张数据流转图完全画明白,后面学路由协议、防火墙策略、园区网设计都会顺畅得多。