一、应用场景
某企业办公区使用一台交换机连接两个部门的电脑,财务部属于 VLAN 10,技术部属于 VLAN 20。按照前面的实验,不同 VLAN 之间是二层隔离的,财务部的电脑无法访问技术部的共享服务器。但在实际工作中,两个部门之间有时确实需要互访,例如技术部需要访问财务部的报表系统,财务部需要访问技术部的文件服务器。
要实现不同 VLAN 之间的通信,必须借助三层设备进行路由转发。常见的实现方式有两种:一种是使用路由器,通过在一个物理接口上创建多个子接口,每个子接口对应一个 VLAN,这种方式称为单臂路由;另一种是使用三层交换机,通过 VLANIF 接口实现 VLAN 间路由。单臂路由配置简单、成本低,适合小型网络;三层交换机性能更高,适合中大型网络。
本实验模拟该企业场景,通过路由器单臂路由实现 VLAN 10 和 VLAN 20 之间的互通。通过本实验,你将理解"二层隔离、三层互通"的基本思想,掌握子接口的配置方法和 VLAN 标签的处理过程。
二、配置目标
- 理解 VLAN 间通信为什么需要三层设备。
- 掌握单臂路由的工作原理:路由器通过一个物理接口的多个子接口,分别对应不同 VLAN。
- 掌握子接口的配置方法,包括
dot1q termination vid和arp broadcast enable。 - 掌握交换机上 Trunk 端口的配置,使其能够承载多个 VLAN 的数据到路由器。
- 完成 PC 的 IP 地址和默认网关配置,网关指向对应子接口的 IP 地址。
- 验证同一 VLAN 内互通、不同 VLAN 之间通过单臂路由互通。
- 掌握查看子接口状态和路由表的方法。
三、重要概念说明
3.1 单臂路由
单臂路由是指路由器使用一个物理接口,通过创建多个子接口(Sub-Interface)来连接多个 VLAN。每个子接口对应一个 VLAN,配置该 VLAN 的网关 IP 地址。路由器与交换机之间的链路配置为 Trunk,承载多个 VLAN 的数据。
当 VLAN 10 的 PC 要访问 VLAN 20 的 PC 时,数据帧首先到达交换机,交换机根据 Trunk 配置打上 VLAN 10 的标签,发送给路由器的子接口。路由器子接口识别标签后,进行路由查找,发现目标属于 VLAN 20,于是通过对应 VLAN 20 的子接口转发出去,并打上 VLAN 20 的标签。交换机收到后,根据标签将数据帧转发给 VLAN 20 的 PC。
3.2 子接口
子接口是路由器物理接口上的逻辑接口,编号格式为"物理接口.子接口号",例如 GigabitEthernet0/0/0.10。子接口可以独立配置 IP 地址,并处理带有 VLAN 标签的数据帧。
配置子接口时需要两条关键命令:
| 命令 | 作用 |
|---|---|
dot1q termination vid 10 |
指定该子接口处理 VLAN 10 的标签,收到带 VLAN 10 标签的帧时剥离标签,发送时打上 VLAN 10 标签 |
arp broadcast enable |
允许子接口转发 ARP 广播报文,否则 VLAN 间无法解析 MAC 地址 |
3.3 单臂路由与三层交换机的区别
| 对比项 | 单臂路由 | 三层交换机 |
|---|---|---|
| 实现方式 | 路由器子接口 | VLANIF 接口 |
| 转发性能 | 较低,受路由器接口带宽限制 | 较高,硬件转发 |
| 适用场景 | 小型网络、实验环境 | 中大型园区网 |
| 配置复杂度 | 简单 | 简单 |
本实验使用单臂路由,三层交换机方式将在后续交换进阶篇中介绍。
四、实验拓扑
本实验采用一台路由器、一台交换机、两台 PC 的拓扑。PC1 属于 VLAN 10,PC2 属于 VLAN 20,通过路由器 R1 的单臂路由实现互通。

接口与 IP 地址规划表:
| 设备 | 接口 | IP 地址 | 子网掩码 | VLAN | 对端设备 |
|---|---|---|---|---|---|
| PC1 | 以太网 | 192.168.10.2 | 255.255.255.0 | 10 | SW1 GE0/0/1 |
| PC2 | 以太网 | 192.168.20.2 | 255.255.255.0 | 20 | SW1 GE0/0/2 |
| SW1 | GE0/0/1 | --- | --- | 10 | PC1 |
| SW1 | GE0/0/2 | --- | --- | 20 | PC2 |
| SW1 | GE0/0/24 | --- | --- | Trunk | R1 GE0/0/0 |
| R1 | GE0/0/0 | --- | --- | --- | SW1 GE0/0/24 |
| R1 | GE0/0/0.10 | 192.168.10.1 | 255.255.255.0 | 10 | VLAN 10 网关 |
| R1 | GE0/0/0.20 | 192.168.20.1 | 255.255.255.0 | 20 | VLAN 20 网关 |
注意:PC1 的默认网关为 192.168.10.1,PC2 的默认网关为 192.168.20.1,分别对应路由器两个子接口的 IP 地址。
五、实验步骤
5.1 配置 PC 的 IP 地址
双击 PC1,进入"基础配置"选项卡:
| 配置项 | 值 |
|---|---|
| IPv4 地址 | 192.168.10.2 |
| 子网掩码 | 255.255.255.0 |
| 网关 | 192.168.10.1 |
双击 PC2,进入"基础配置"选项卡:
| 配置项 | 值 |
|---|---|
| IPv4 地址 | 192.168.20.2 |
| 子网掩码 | 255.255.255.0 |
| 网关 | 192.168.20.1 |
配置完成后,分别在两台 PC 上使用 ipconfig 确认。
5.2 配置 SW1 的 VLAN 和 Access 端口
双击 SW1,进入命令行,执行以下配置:
bash
<Huawei> system-view
[Huawei] sysname SW1
[SW1] vlan batch 10 20
[SW1] interface GigabitEthernet 0/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 GigabitEthernet 0/0/2
[SW1-GigabitEthernet0/0/2] port link-type access
[SW1-GigabitEthernet0/0/2] port default vlan 20
[SW1-GigabitEthernet0/0/2] quit
5.3 配置 SW1 的 Trunk 端口
将与路由器相连的 GE0/0/24 配置为 Trunk,允许 VLAN 10 和 VLAN 20 通过:
bash
[SW1] interface GigabitEthernet 0/0/24
[SW1-GigabitEthernet0/0/24] port link-type trunk
[SW1-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20
[SW1-GigabitEthernet0/0/24] quit
配置完成后,查看 Trunk 端口信息:
bash
[SW1] display port vlan
确认 GE0/0/24 的链路类型为 Trunk,允许 VLAN 10 和 VLAN 20 通过。
5.4 配置 R1 的子接口
双击 R1,进入命令行,执行以下配置:
bash
<Huawei> system-view
[Huawei] sysname R1
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] quit
[R1] interface GigabitEthernet 0/0/0.10
[R1-GigabitEthernet0/0/0.10] dot1q termination vid 10
[R1-GigabitEthernet0/0/0.10] ip address 192.168.10.1 24
[R1-GigabitEthernet0/0/0.10] arp broadcast enable
[R1-GigabitEthernet0/0/0.10] quit
[R1] interface GigabitEthernet 0/0/0.20
[R1-GigabitEthernet0/0/0.20] dot1q termination vid 20
[R1-GigabitEthernet0/0/0.20] ip address 192.168.20.1 24
[R1-GigabitEthernet0/0/0.20] arp broadcast enable
[R1-GigabitEthernet0/0/0.20] quit
配置说明:
| 命令 | 作用 |
|---|---|
interface GigabitEthernet 0/0/0.10 |
创建子接口,编号 10 对应 VLAN 10 |
dot1q termination vid 10 |
子接口处理 VLAN 10 的标签 |
ip address 192.168.10.1 24 |
配置子接口 IP,作为 VLAN 10 的网关 |
arp broadcast enable |
允许子接口转发 ARP 广播,否则无法解析 MAC 地址 |
注意:主接口 GE0/0/0 不需要配置 IP 地址,只需要保持物理状态 up 即可。子接口的 IP 地址才是 VLAN 的网关地址。
5.5 验证子接口状态
在 R1 上执行:
bash
[R1] display ip interface brief
应该能看到 GE0/0/0.10 和 GE0/0/0.20 两个子接口,IP 地址分别为 192.168.10.1 和 192.168.20.1,状态均为 up。
查看路由表:
bash
[R1] display ip routing-table
应该能看到两条直连路由,分别指向 192.168.10.0/24 和 192.168.20.0/24,出接口为对应的子接口。
5.6 验证 VLAN 间通信
- 验证同 VLAN 内互通
如果 SW1 上还有其他空闲端口属于同一 VLAN,可以接入另一台 PC 验证。本实验中每台 PC 独占一个 VLAN,可暂时跳过此步。 - 验证跨 VLAN 互通
在 PC1 上 ping PC2:
bash
PC1> ping 192.168.20.2
第一次 ping 可能会丢一个包(ARP 解析过程),之后应能正常收到回复。这说明 VLAN 10 和 VLAN 20 之间已经通过单臂路由实现互通。
- 反向验证
在 PC2 上 ping PC1:
bash
PC2> ping 192.168.10.2
也应能 ping 通,说明双向路由均正常。
- 跟踪路由路径
在 PC1 上执行:
bash
PC1> tracert 192.168.20.2
可以看到数据包先到达网关 192.168.10.1(R1 的子接口),然后直接转发到 192.168.20.2。由于只有一跳路由,tracert 结果中只会显示网关地址。
5.7 查看 ARP 表
在 R1 上执行:
bash
[R1] display arp
应该能看到 PC1 和 PC2 的 IP 地址与 MAC 地址映射,分别学习在 GE0/0/0.10 和 GE0/0/0.20 子接口上。这说明 ARP 广播已经通过子接口正常转发。
5.8 保存配置
在 SW1 和 R1 上分别执行保存命令:
bash
<SW1> save
<R1> save
按提示输入 y 确认。
六、思考
- 为什么不同 VLAN 之间不能直接通信?单臂路由是如何解决这个问题的?
- 子接口上的
dot1q termination vid 10命令的作用是什么?如果不配置会怎样? arp broadcast enable命令的作用是什么?为什么子接口需要单独开启 ARP 广播?- 主接口 GE0/0/0 为什么不需要配置 IP 地址?如果给主接口也配置了 IP,会有什么影响?
- 如果 SW1 的 Trunk 端口只允许 VLAN 10 通过,VLAN 20 的 PC 还能访问 VLAN 10 吗?为什么?
- 单臂路由和三层交换机实现 VLAN 间路由,各有什么优缺点?分别适用于什么场景?
- 在 R1 上执行
display ip routing-table,观察去往 192.168.10.0/24 和 192.168.20.0/24 的路由,它们的出接口分别是什么?
本实验是 VLAN 部分的关键实验,重点在于理解"二层隔离、三层互通"的思想,以及单臂路由如何通过子接口处理不同 VLAN 的标签。建议在完成基本验证后,尝试关闭 R1 的某个子接口,观察对应 VLAN 的通信是否中断,进一步加深对子接口作用的理解。后续交换进阶篇中还会介绍用三层交换机实现 VLAN 间路由的方式,可以与本实验进行对比学习。