实验环境与规划
- 模拟器:华为 eNSP
- 实验拓扑:PC1/PC2 PC3/PC4 接入 SW1;SW1 (GE0/0/5) 单线连接 R1 (GE0/0/0)。
- IP 与网关规划:
- VLAN 10(研发部):网段
192.168.1.0/24。PC1 IP 为192.168.1.1,网关必须指向 R1 的子接口192.168.1.254。 - VLAN 20(市场部):网段
192.168.2.0/24。PC3 IP 为192.168.2.3,网关必须指向 R1 的子接口192.168.2.254。

为什么一定要配网关? 当 PC1 发现要 Ping 的目标(
192.168.2.3)和自己不在同一个网段时,PC1 绝对不会在局域网里发 ARP 去找 PC3 的 MAC 地址。它会直接把数据包交给自己的“带路人”——网关(192.168.1.254)。如果不配网关,PC1 在底层直接就会放弃发包。
实验一:路由器直连路由表查看
操作步骤
交换机部分的 VLAN 10/20 创建及 Access 口划分配置与前文一致,详见 网络修炼笔记:交换机基础与 VLAN 隔离。
此外,还需将 SW1 的 GE0/0/5 口配置为 Trunk,允许 VLAN 10 和 VLAN 20 的标签通过:
| |
在路由器 R1 上配置子接口 GE0/0/0.10 和 GE0/0/0.20,并输入 arp broadcast enable(开启子接口的 ARP 广播功能)
| |
在R1系统视图下查看路由表:display ip routing-table

路由表底层拆解
配置完成后,路由表中会自动生成两条核心的直连路由表项:
- 目的网段
192.168.1.0/24,下一跳为192.168.1.254,Proto 为 Direct。 - 目的网段
192.168.2.0/24,下一跳为192.168.2.254,Proto 为 Direct。
什么是直连下一跳? 在路由表的 Proto(协议)一栏中,Direct 代表“直连路由”。这意味着路由器发现这两个网段就在它自己抬手就能碰到的“隔壁房间”(逻辑子接口上)。 当数据包到了路由器手里后,路由器发现目标的下一跳写的是它自己的子接口 IP,它就不需要再把包丢给别的路由器了,而是直接在自己内部把数据包从 VLAN 10 的接口“递给” VLAN 20 的接口。
实验二:单臂路由 Trunk 链路四步交互抓包分析
操作步骤
- 右键点击 SW1 与 R1 的互联链路(GE0/0/5),开始抓包。
- 从 PC1 发起跨网段 PING 测试:
ping 192.168.2.3。

Wireshark 报文时序与标签(802.1Q)透视
在这根“单臂”链路上,一个完整的 PING 交互(一问一答)其实在这根线上跑了 4 次(进去 2 次,出来 2 次)。抓包数据如下:
| |

单臂路由数据包完整生命周期(去程与回程)
为了让所有人都能看懂,我们将上述抓包的 4 个步骤详细说明一下:
去程:PC1(VLAN 10) → PC3(VLAN 20)
- 第一步:普通包出门 PC1 封装好一个普通的 ICMP Request 包,丢给交换机。此时包里干净无污染,没有带任何 VLAN 标签。
- 第二步:交换机强行打标签(包 10)
当包从交换机的
GE0/0/1(Access 接口)进入交换机内部时,接口像安检站一样,强行在数据包的二层以太网帧头塞入一个 VLAN 10 的标签(Tag)。随后,数据包带着这个标签,顺着 Trunk 链路(GE0/0/5)冲向路由器。此时因为没经过路由器转发,TTL 依然是初始值 128。 - 第三步:路由器换标签(包 11)
路由器
GE0/0/0.10子接口收到包,发现标签是 10,于是把标签剥掉,露出三层 IP 核心。路由器查路由表,发现要去192.168.2.3(VLAN 20),于是把数据包移交给GE0/0/0.20子接口。0.20子接口重新给数据包打上 VLAN 20 的标签,并吐回给交换机。因为跨越了网段,完成了三层转发,TTL 减 1 变成了 127。 - 第四步:交换机剥离标签送达
带着 VLAN 20 标签的数据包回到交换机内部。交换机发现目标 PC3 在
GE0/0/3(Access 接口)上。当数据包准备从这个接口跨出交换机、走向 PC3 的网卡时,Access 接口会强行把 VLAN 20 的标签剥离掉。
注意:普通的 PC 网卡默认是不认识 802.1Q 标签的,如果带着标签给电脑,电脑会直接报错丢弃。所以交换机出口必须剥标签,给电脑最干净的数据。
回程:PC3(VLAN 20) → PC1(VLAN 10)
回包的逻辑完全是对称的镜像过程:
- 包 12:PC3 回应 Reply,进交换机打上 VLAN 20 标签,通过 Trunk 线送到路由器,此时 TTL 为 128。
- 包 13:路由器接收后,在内部查路由表,把标签剥离并换成 VLAN 10 标签,重新扔回 Trunk 线,TTL 减 1 变为 127。
- 数据包回到交换机,从连接 PC1 的 Access 接口剥离 VLAN 10 标签,送回 PC1。
结论
- 电脑不带标,带标电脑抛:电脑收发都是普通包,标签只在交换机和路由器之间流转。
- 入向打标,出向剥标:交换机的 Access 接口,进去必须盖章(打标签),出来必须撕掉(剥标签)。
- 三层转发看 TTL:三层转发看 TTL:数据包每经过一次路由器(三层转发),IP 头的 TTL 值必然减 1。在单臂路由中,由于往返共用一根网线,我们能直观地在同条链路上抓到 TTL 从 128 变成 127 的轨迹。