这次我们来做“VLAN 间的通信配置实验 1”。实验目标很明确:让两台分属不同 VLAN 的 PC 最终能够互相 ping 通。很多初学者在学完 VLAN 划分之后都会遇到同一个问题——同 VLAN 能通,跨 VLAN 就完全不通,这很正常,因为 VLAN 本身就是一个隔离广播域的技术。本实验就是要在华为 eNSP 模拟器里,分别用“单臂路由”和“三层交换机 VLANIF 接口”两种主流方案,把 VLAN 间的三层通信打通,并给出完整的验证和排错思路。
这个实验不需要任何真实硬件,用 eNSP 软件就能完成,非常适合网络工程专业学生、HCIA 备考者以及刚接触交换机配置的读者。文中的配置命令都是华为 VRP 平台的通用命令,在 eNSP、真机模拟环境以及部分华三设备上都能对照参考。实验的核心逻辑就一句话:二层隔离、三层互通。本文会先把 VLAN 间通信的原理讲清楚,再给出完整拓扑和 IP 规划,然后分别演示单臂路由和 VLANIF 两种配置过程,最后用 ping、display 和抓包来验证效果,并把最常见的故障排查整理成清单。
1. VLAN 间通信原理:为什么 VLAN 之间默认不通
先解决一个概念问题:为什么两台 PC 划分到不同 VLAN 之后,互相 ping 不通?
VLAN 的作用是在二层网络中隔离广播域。交换机收到数据帧之后,会根据 VLAN 配置给帧打上 802.1Q 标签,同 VLAN 的端口之间可以转发,不同 VLAN 的端口之间默认互相隔离。也就是说,VLAN 10 的 PC1 发出的广播帧,VLAN 20 的 PC2 根本收不到,ARP 请求也就无法到达对方。
如果 PC1 要访问 PC2,并且两个 PC 配置的是不同网段的 IP 地址,那么 PC1 首先发现自己和目标不在同一个网段,它会去找自己的网关。这个逻辑和普通路由器转发流量是完全一样的。问题的关键在于:VLAN 之间缺少一个“三层网关”。
解决思路就是让一个三层设备介入:
- 方案一,使用路由器做单臂路由。在路由器和交换机之间的 trunk 链路上,用路由器的子接口分别终结不同 VLAN 的 tag,让路由器成为各 VLAN 的网关。
- 方案二,使用三层交换机。在三层交换机上创建 VLANIF 接口并配置 IP 地址,交换机自己既做二层交换又做三层路由,流量在交换机内部完成跨 VLAN 转发。
理解了上面这个因果链条,后面所有配置命令就都顺理成章了。本实验选择的模拟器是华为 eNSP,设备型号用常见的 AR2220 路由器加 S5700 交换机,这两款设备在 eNSP 里是默认提供的。
2. 核心能力速览
| 能力项 | 说明 |
|---|---|
| 实验类型 | VLAN 间三层通信配置实验 |
| 实验环境 | 华为 eNSP 模拟器,无需真实硬件 |
| 核心设备 | AR2220 路由器、S5700 三层交换机、普通 PC |
| 实现方案 | 方案一:单臂路由(路由器子接口);方案二:三层交换机 VLANIF 接口 |
| 关键配置点 | VLAN 创建、Access 口划分、Trunk 放行、Dot1q 子接口终结、VLANIF IP |
| 验证方式 | ping 测试、display 命令、eNSP 数据抓包 |
| 适用人群 | 网络工程专业学生、HCIA 备考人员、交换机配置初学者 |
| 推荐学习路径 | 先做单臂路由,再做 VLANIF,最后用抓包对比两种方案的帧结构差异 |
这个实验不需要高配置电脑,eNSP 对硬件要求很低,普通 Windows 电脑即可运行。如果遇到 eNSP 启动设备失败,优先检查 VirtualBox 版本兼容性、Windows 防火墙是否拦截,以及是否以管理员身份运行。
3. 实验拓扑与 IP 规划
在动手配置前,先把实验拓扑固定下来。整个网络中包含一台路由器 AR1、一台交换机 SW1、两台 PC。交换机分别提供两个接口给 PC,另有一个接口上行连接路由器。
拓扑要点:
- PC1 连接交换机的 GigabitEthernet0/0/1,划分到 VLAN 10。
- PC2 连接交换机的 GigabitEthernet0/0/2,划分到 VLAN 20。
- 交换机的 GigabitEthernet0/0/3 连接路由器的 GigabitEthernet0/0/0,链路类型为 Trunk,需要同时放行 VLAN 10 和 VLAN 20。
IP 地址规划如下:
| 设备 | 接口 | 所属 VLAN | IP 地址 | 网关 |
|---|---|---|---|---|
| PC1 | Ethernet0/0/1 | VLAN 10 | 192.168.10.10/24 | 192.168.10.1 |
| PC2 | Ethernet0/0/2 | VLAN 20 | 192.168.20.10/24 | 192.168.20.1 |
| AR1 | GigabitEthernet0/0/0.10 | VLAN 10 | 192.168.10.1/24 | - |
| AR1 | GigabitEthernet0/0/0.20 | VLAN 20 | 192.168.20.1/24 | - |
如果使用方案二,则是把路由器换成三层交换机 SW2,PC1 接 G0/0/1 并在 VLAN 10,PC2 接 G0/0/2 并在 VLAN 20,PC1 网关指向交换机上的 Vlanif10 地址 192.168.10.254,PC2 网关指向 Vlanif20 地址 192.168.20.254。
在实际做实验时,建议把 PC1、PC2 的网段错开,不要配成同网段不同 VLAN,否则既不符合 VLAN 间通信的典型应用,排错时也不容易讲清楚。
4. 方案一:单臂路由实现 VLAN 间通信
单臂路由是理解 VLAN 间三层通信最直观的方案。核心思想是:路由器只用一个物理接口接交换机,但这个物理接口被拆成多个逻辑子接口,每个子接口处理一个 VLAN 的报文。交换机发往路由器的帧是带 802.1Q tag 的,路由器子接口要做dot1q termination vid来终结对应的 VLAN,然后进行三层转发。
4.1 交换机 SW1 配置
第一步,在交换机上创建 VLAN 10 和 VLAN 20。
system-view sysname SW1 vlan batch 10 20 quit第二步,把连接 PC 的接口划入对应 VLAN。PC1 接 G0/0/1,PC2 接 G0/0/2,两个接口都配置为 Access 口。
interface GigabitEthernet0/0/1 port link-type access port default vlan 10 quit interface GigabitEthernet0/0/2 port link-type access port default vlan 20 quit需要注意,port link-type access是强制将接口设置为 Access 模式,port default vlan表示该接口默认属于哪个 VLAN,未打 tag 的帧进入交换机后会被打上这个 VLAN 的 tag。
第三步,配置上行接口为 Trunk,并放行 VLAN 10 和 VLAN 20。
interface GigabitEthernet0/0/3 port link-type trunk port trunk allow-pass vlan 10 20 quit在华为交换机上,Trunk 口默认放行 VLAN 1,所以要显式放行实验需要的 VLAN。如果漏了这一步,路由器子接口上根本收不到对应 VLAN 的帧,后面 ping 一定不通。
4.2 路由器 AR1 配置
路由器侧配置单臂路由。进入物理接口 G0/0/0 后,创建子接口,并在子接口下完成三层参数配置。
system-view sysname AR1 interface GigabitEthernet0/0/0.10 dot1q termination vid 10 ip address 192.168.10.1 255.255.255.0 arp broadcast enable quit interface GigabitEthernet0/0/0.20 dot1q termination vid 20 ip address 192.168.20.1 255.255.255.0 arp broadcast enable quit逐条解释一遍:
GigabitEthernet0/0/0.10是 G0/0/0 的子接口,逻辑上对应 VLAN 10。dot1q termination vid 10告诉路由器,这个子接口负责处理带 VLAN 10 tag 的帧,相当于把 802.1Q 标签剥离后交给三层转发。ip address是给子接口配置网关 IP,也就是 PC1 的网关。arp broadcast enable开启子接口的 ARP 广播功能。华为路由器子接口默认不处理广播报文,如果没有这条命令,PC 发出来的 ARP 请求无法通过子接口得到响应,ping 会直接超时。
4.3 PC 配置
在 eNSP 中给 PC 配置 IP 时,直接在设备上双击 PC1,在 IP 配置页填入:
- IP 地址:192.168.10.10
- 子网掩码:255.255.255.0
- 网关:192.168.10.1
PC2 配置:
- IP 地址:192.168.20.10
- 子网掩码:255.255.255.0
- 网关:192.168.20.1
这一步最容易出错的是网关地址写错。网关必须指向路由器对应子接口的 IP,也就是路由器上与 PC 同网段的那个地址。
4.4 验证 ping
配置完成之后,从 PC1 ping PC2。
ping 192.168.20.10如果配置正确,PC1 会先 ARP 请求网关,然后由路由器将 ICMP 报文转发给 PC2,最终收到来自 192.168.20.10 的回复。ping 通之后,再从 PC2 反向 ping PC1,确认双向通信正常。
5. 方案二:三层交换机 VLANIF 接口实现 VLAN 间路由
单臂路由的缺点很明显:所有跨 VLAN 流量都要绕到路由器转发,路由器成为瓶颈,链路带宽也受限。更常用的生产环境方案是使用三层交换机,直接在交换机上配置 VLANIF 接口,交换机自己完成三层路由。
5.1 交换机 SW2 配置
在 eNSP 中新建一个拓扑,放入一台 S5700 交换机和两台 PC。PC1 接 G0/0/1,PC2 接 G0/0/2。
先创建 VLAN 并划分端口。
system-view sysname SW2 vlan batch 10 20 quit interface GigabitEthernet0/0/1 port link-type access port default vlan 10 quit interface GigabitEthernet0/0/2 port link-type access port default vlan 20 quit然后创建 VLANIF 接口并配置 IP 地址。VLANIF 接口就是三层交换机上的 VLAN 网关接口,每个 VLAN 对应一个 VLANIF。
interface Vlanif10 ip address 192.168.10.254 255.255.255.0 quit interface Vlanif20 ip address 192.168.20.254 255.255.255.0 quit配置完成之后,交换机上会自动生成两条直连路由:一条到 192.168.10.0/24,一条到 192.168.20.0/24。PC1 给 PC2 发包时,报文到达交换机,交换机查找路由表,发现目标网段 192.168.20.0/24 的下一跳就是本设备上的 Vlanif20,于是直接在内部完成转发。
5.2 PC 配置
PC1:
- IP 地址:192.168.10.10
- 子网掩码:255.255.255.0
- 网关:192.168.10.254
PC2:
- IP 地址:192.168.20.10
- 子网掩码:255.255.255.0
- 网关:192.168.20.254
注意网关和方案一不同,现在网关是交换机的 VLANIF 接口地址。
5.3 验证 ping
PC1 ping PC2:
ping 192.168.20.10正常情况下,只需要一发就能通。如果 ping 不通,先检查 PC 的网关是否指向 VLANIF,再检查交换机的display ip routing-table里是否有两条直连路由。
5.4 两种方案对比
| 对比项 | 单臂路由 | VLANIF 三层交换 |
|---|---|---|
| 使用设备 | 路由器 + 二层交换机 | 三层交换机 |
| 转发路径 | 所有跨 VLAN 流量经路由器 | 交换机内部直接转发 |
| 配置复杂度 | 需要配置子接口和 Trunk | 直接配置 VLANIF,更简单 |
| 性能 | 路由器转发,受链路带宽限制 | 交换机硬件转发,性能更高 |
| 适用场景 | 小型网络、学习理解原理 | 企业园区网、数据中心接入层 |
从实验角度,两个方案都值得完整做一遍。单臂路由能让你更清楚 VLAN tag 在交换机与路由器之间如何传递;VLANIF 则更贴近真实网络环境。
6. 功能验证与效果测试
配置完成后,除了 ping,还需要用 display 命令和抓包来确认配置确实生效。
6.1 验证交换机 VLAN 信息
在交换机 SW1 上执行:
display vlan预期输出中可以看到 VLAN 10 和 VLAN 20 都存在,并且 GigabitEthernet0/0/1 属于 VLAN 10,GigabitEthernet0/0/2 属于 VLAN 20,GigabitEthernet0/0/3 以 Trunk 模式放行这两个 VLAN。
6.2 验证路由器接口状态
在路由器 AR1 上执行:
display ip interface brief预期看到 GigabitEthernet0/0/0.10 的 IP 为 192.168.10.1,并且状态为 up;GigabitEthernet0/0/0.20 的 IP 为 192.168.20.1,状态为 up。如果子接口显示 down,多半是 Trunk 没有放行对应 VLAN,或者物理接口没有连接。
6.3 验证三层交换机的直连路由
在方案二中,执行:
display ip routing-table路由表中应该能看到:
Destination/Mask Proto Pre Cost Flags NextHop Interface 192.168.10.0/24 Direct 0 0 D 192.168.10.254 Vlanif10 192.168.20.0/24 Direct 0 0 D 192.168.20.254 Vlanif20这两条直连路由是 VLANIF 方案能转发跨 VLAN 流量的根本原因。没有这两条路由,交换机收到 VLAN 10 的报文后就不知道该把包往哪里发。
6.4 抓包观察帧结构
建议在方案一的 Trunk 链路上做一次抓包:在 eNSP 中右键路由器的 GigabitEthernet0/0/0 接口,选择“数据抓包”,然后让 PC1 ping PC2。抓包结果里会看到两类帧:
- 交换机发送到路由器的帧,以太网头部带有 802.1Q Tag,Type 字段为 0x8100,VID 为 10 或 20。
- 路由器发出的 ICMP 请求和响应,帧同样带有 VLAN tag,但源 MAC 会变成路由器子接口的 MAC 地址。
通过抓包可以直观理解 VLAN tag 的作用,以及单臂路由为什么需要dot1q termination vid。如果抓包只看到某个方向的数据,没有回复包,重点排查路由器的 ARP 表项和子接口配置。
6.5 测试矩阵
| 测试项 | 操作 | 预期结果 |
|---|---|---|
| 同 VLAN 通信 | PC1 ping 192.168.10.10 | 通 |
| VLAN 间通信 | PC1 ping 192.168.20.10 | 通 |
| 反向通信 | PC2 ping 192.168.10.10 | 通 |
| 网关可达性 | PC1 ping 192.168.10.1 | 通 |
| ARP 学习 | display arp | 可看到 PC1、PC2 的 IP 与 MAC 映射 |
| 路由表检查 | display ip routing-table | 存在 192.168.10.0/24 与 192.168.20.0/24 直连路由 |
7. 常见问题与排查方法
如果实验做到一半 ping 不通,不要急着删掉重做,先按照下面的排查顺序走一遍。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 同 VLAN 内的 PC 也 ping 不通 | 接口 Access VLAN 配置错误,或 PC 网段配置错误 | display vlan,检查接口归属 | 重新划分端口到正确 VLAN,核对 PC 的 IP 和掩码 |
| 跨 VLAN ping 不通,抓包无流量 | Trunk 口未放行对应 VLAN | display port vlan 或 display interface GigabitEthernet0/0/3 | 在 Trunk 口执行 port trunk allow-pass vlan 10 20 |
| 路由器子接口状态 down | 物理接口未连接,或交换机 Trunk 未放行 | display ip interface brief | 检查链路,确认 Trunk 配置完整 |
| ping 时显示无法解析网关 ARP | ARP 广播被路由器子接口丢弃 | 检查子接口下是否有 arp broadcast enable | 增加 arp broadcast enable 命令 |
| PC 无法 ping 通对端 VLAN 的 IP | 网关地址填错 | 检查 PC 的网关配置 | 修改为路由器子接口或 VLANIF 的 IP 地址 |
| VLANIF 方案 ping 不通 | 交换机型号不支持三层转发,未建立直连路由 | display ip routing-table | 确认使用的是三层交换机;部分二层交换机不支持 VLANIF |
| 修改配置后仍不通 | eNSP 设备配置未保存或接口假 up | 检查设备状态、重启接口 | 重启交换机或重新启动模拟器,重新加载配置 |
其中最容易忽略的两个坑,第一个是arp broadcast enable缺失。华为路由器物理接口默认支持 ARP 广播,但拆成子接口之后,子接口默认不处理广播报文,必须手动开启。第二个是 Trunk 放行列表。很多初学者只把 Trunk 口类型改对,忘了allow-pass vlan,导致带 tag 的帧在半路就被丢弃。
还有一种常见情况是:PC1 ping PC2 时,前两个包超时,第三个包才通。这通常不是配置错误,而是 PC 一开始没有网关的 ARP 缓存,需要先完成 ARP 解析,再发出 ICMP 请求。等第二次 ping 时会明显变快。
8. 最佳实践与扩展方向
本实验做完之后,建议不要直接关掉模拟器,而是把下面几个扩展方向也顺手做一遍。
第一个扩展是配置 DHCP。把路由器或三层交换机配置成 DHCP 服务器,PC 改为自动获取 IP。这样可以验证 DHCP 报文在跨 VLAN 场景下的中继过程。在 VLANIF 方案的交换机上配置 DHCP Server,核心命令是dhcp enable、dhcp select global或dhcp select interface,再配置地址池和网关。
第二个扩展是加 ACL 做访问控制。比如只允许 VLAN 10 的 PC 访问 VLAN 20 中的某台服务器,拒绝访问另一台。ACL 可以放在路由器子接口上,也可以放在三层交换机的 VLANIF 上,这是实际网络项目中很常见的需求。
第三个扩展是把拓扑扩大到多台交换机。比如四台 PC 分别接两台不同的交换机,交换机之间用 Trunk 互联,再统一上联到路由器或三层交换机。多交换机场景下要注意 VLAN 信息跨越所有交换机保持一致,Trunk 口放行所有需要的 VLAN。
在真机上做同类实验时,要特别注意网络环境和授权边界。不要在未授权的生产网络里随意配置 VLAN 或路由,不要对不属于自己的设备发包扫描。实验环境最好是 eNSP、HCL 等模拟器,或者公司、学校提供的专门实验平台。涉及操作系统、业务服务器、对外网络时,必须确认操作范围并提前备份配置。
实验过程中保留一份完整的配置文档也很有必要。把每台设备的配置命令、测试结果、故障截图整理成文档,既能帮助复习,也是写实验报告的第一手材料。推荐按设备分别存放配置文件,例如用display current-configuration导出最终配置,保存为 txt 文件,方便后续对照。
9. 总结与下一步
这个 VLAN 间通信配置实验 1,核心价值不是记住几条命令,而是把“二层隔离、三层互通”这条主线彻底弄清楚。建议想深入掌握 VRP 配置的同学,把本实验的两个方案都完整敲一遍,不要只复制命令。手敲过程中你会遇到真实的报错和拼写问题,这些本身就是最有效的学习素材。
完成本实验后,接下来可以继续挑战 VLAN 间通信配置实验 2、实验 3,方向包括:在三层交换机上配置 DHCP Relay、VLANIF 配合静态路由实现跨网段转发、VLAN 间 ACL 策略控制、以及 VRRP 网关冗余。每一步都建议保留配置备份和验证截图,后面的综合实验很可能要用到前面搭好的拓扑。这个系列做完,华为数通方向的交换部分基本就能形成完整的知识闭环了。