别以为“配了IP就能通”——VLAN间不通?是你没看懂数据怎么走

前阵子一客户说:“我给两个VLAN都配了IP,为啥PC1 ping 不通 PC2?”我问:“你中间有三层设备吗?”

他说:“没有,就一台二层交换机。”我笑了:“那当然不通!VLAN天生隔离,就像两栋楼没连廊,你怎么过去?”

很多人会配VLAN,却不懂VLAN间通信的底层机制

今天,我不讲配置命令,直接上抓包截图+数据流分析,带你从PC到路由器,全程追踪一个跨VLAN的数据包。

讲到VLAN,给你分享一份VLAN相关的好东西,涵盖全面,码住领取!发送暗号“应用”,即可限时获取。

01 场景搭建:标准VLAN间通信拓扑

PC1 (192.168.10.10/24, VLAN10)
↓ (Access口)
SW1 (二层交换机)
↓ (Trunk口 → 连路由器G0/0/1)
Router (华为AR系列)
↑ (Trunk口 ← 连SW2 G0/0/2)
SW2 (二层交换机)
↓ (Access口)
PC2 (192.168.20.10/24, VLAN20)

✅ 关键点:路由器启用子接口(单臂路由)或三层交换机启用VLANIF。

02 全过程抓包解析(四步走)

第一步:PC1 发起请求(目标:192.168.20.10)

  • PC1检查目标IP:不在同一网段(192.168.10.0/24 vs 192.168.20.0/24)
  • → 将数据包发给默认网关:192.168.10.1
  • 执行ARP:“谁是192.168.10.1?请回复MAC”

抓包点:PC1网卡

Ethernet II:
Src: PC1-MAC
Dst: FF:FF:FF:FF:FF:FF (广播)
Type: ARP
ARP Request: Who has 192.168.10.1?

第二步:路由器回应ARP(通过子接口)

  • 路由器G0/0/1.10(VLAN10子接口)收到ARP
  • 回应:“我是192.168.10.1,MAC是 Router-MAC-A”

抓包点:SW1与路由器之间的Trunk链路(镜像抓包)

Ethernet II:
Src: Router-MAC-A
Dst: PC1-MAC
Type: ARP
ARP Reply: 192.168.10.1 is at Router-MAC-A

⚠️ 注意:此帧带802.1Q标签,VLAN ID=10

第三步:PC1发送ICMP包给网关

  • PC1构造ICMP Echo Request:
    • 源IP:192.168.10.10
    • 目标IP:192.168.20.10
    • 源MAC:PC1-MAC
    • 目标MAC:Router-MAC-A

抓包点:Trunk链路(出方向)

802.1Q Virtual LAN (VLAN 10):
Src: PC1-MAC
Dst: Router-MAC-A
Type: IPv4
IP:
Src: 192.168.10.10
Dst: 192.168.20.10
Protocol: ICMP

第四步:路由器路由并转发给PC2

  1. 路由器收到帧,剥离VLAN标签,解析IP包
  2. 查路由表:192.168.20.0/24 → 出接口为G0/0/1.20(VLAN20子接口)
  3. 路由器发ARP:“谁是192.168.20.10?”
  4. PC2回应MAC
  5. 路由器封装新帧:
    • 源MAC:Router-MAC-B(VLAN20子接口MAC)
    • 目标MAC:PC2-MAC
    • 打上VLAN 20标签

抓包点:Trunk链路(去往SW2方向)

802.1Q Virtual LAN (VLAN 20):
Src: Router-MAC-B
Dst: PC2-MAC
Type: IPv4
IP:
Src: 192.168.10.10
Dst: 192.168.20.10
Protocol: ICMP

  1. SW2收到后,从Access口(VLAN20)剥离标签,转发给PC2

03 关键机制总结

别以为“配了IP就能通”——VLAN间不通?是你没看懂数据怎么走

✅ 核心规律

  • 终端永远收发无标签帧
  • Trunk链路传输带标签帧(Native VLAN除外)
  • 三层设备负责“解封装→路由→再封装”

04 三层交换机方案对比(更高效!)

若用三层交换机替代路由器:

  • 无需子接口,直接配置 interface vlanif 10 和 vlanif 20
  • 首次通信走CPU路由,后续建立硬件转发表(MLS)
  • 转发延迟 < 5μs,远快于路由器

抓包差异:

  • 数据包不出交换机,内部完成路由
  • Trunk链路仍带标签(若跨物理端口)

05 常见故障排查点

别以为“配了IP就能通”——VLAN间不通?是你没看懂数据怎么走

06 结语

VLAN间通信不是“魔法”,而是一套严谨的“封装-路由-解封装”流程。

通过抓包,我们看清了VLAN标签如何在Trunk上“出生”,又在三层设备处“被解读”,最终实现跨网段互通。

理解这个过程,你就能在配置失败时精准定位:是标签没传?路由缺失?还是策略拦截?记住:真正的网络高手,不靠猜,靠看包

上一篇 【转载】HCIE R&S 备考笔记 Qos技术基础原理
下一篇 Linux系统篇 进程篇:从底层原理到 exec* 家族:彻底搞懂 Linux 进程程序替换