Windows 笑传之 VLAN 串串包

SerinaNya

0x01: 多出来的 IPv6 地址

突然发现自己的网卡上多了几个 IPv6 地址,并且从外部不可达,导致电脑无法访问 IPv6 网络。定睛一看才发现,居然是隔壁 VLAN 的网段 😱

我自己的 Windows PC 是接在交换机的一个 Trunk 口下的,这个 Trunk 口上会承载 untagged + tagged VLAN45。虽然我这个配置确实不太好,但是理论上不应该出这种问题才对。

在这种模式下运行着的还有几个 Linux 开发板,他们并没有出现任何问题,这让我确信是 Windows 有什么特殊之处。

0x02: 抓包看到确实有 VLAN Tag

通过 Wireshark 抓包,可以看到 Windows PC 确实收到了来自 VLAN 45 里的路由器的 RA 报文,并且带有 VLAN Tag。

既然数据包带上了 VLAN Tag,Windows 为什么没有忽略而是盲目听信呢?

0x03: Windows 其实没有看到 VLAN Tag

既然系统会响应 VLAN 45 的 RA,说明协议栈把它当成了 untagged 帧。

并且,SLAAC 是单向的,只要 Windows 接收到 RA 报文,Windows 就可以独立给网卡配置 IPv6 地址。这一点不同于 DHCP 需要双向交互才能得到地址,所以只会莫名其妙多出来 SLAAC 的 IPv6 地址,而 IPv4 地址却一切正常。

0x04: 是网卡的锅

我使用的网卡是 Realtek Gaming 2.5GbE Family Controller,基于 RTL8125 芯片。这种芯片的 Windows 驱动默认开启了 Rx VLAN Offload,或者也可以称之为 VLAN Stripping。

网卡硬件收到带 802.1Q 标签的帧后,直接在芯片内剥离 4 字节的 VLAN 标签头,将剥离后的“裸以太网帧”通过 DMA 上传到系统内存,交给 TCP/IP 协议栈。

同时,硬件会把被剥离的 VLAN ID、802.1p 优先级等信息,存放在该帧对应的接收描述符(Rx Descriptor)元数据字段中,留给驱动做 QoS 或调试使用。

Windows 协议栈拿到的是已经被剥掉标签的裸帧,完全感知不到 VLAN 的存在。

而 Wireshark 依赖的 Npcap 驱动工作在 NDIS 网络驱动层,它不会只读取协议栈收到的裸帧,而是会读取网卡接收描述符里的 VLAN 元数据,自动将 802.1Q 标签重新插回报文结构再展示出来。

所以,虽然在 Wireshark 里看到了 VLAN Tag,但是 Windows 看不到。

0x05: 解决方案

最简单的解决方案是关闭系统的 IPv6 功能。但这操作杀敌一千自损一万,不考虑。

其次就是调整交换机接口类型,把 Trunk 口改成 Access 口,只允许 untagged 帧。治标不治本,半个多小时白研究了,不甘心。


终极解决方案:修改注册表禁用 VLAN 硬件剥离

需要通过添加 Realtek 驱动的隐藏注册表参数,强制禁止硬件剥离 VLAN 标签。

在注册表编辑器中定位到如下路径:

1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\00xx

末尾的 00xx 需要自己找,一个个点进去看 DriverDesc 的值,找到对应的网卡就行。

在右侧空白处右键新建 DWORD (32 位) 值,创建或修改现有的以下键名并设置对应数值:

键名 数值 作用说明
SkDisableVlanStrip 1 禁用硬件 VLAN 标签剥离功能
*PriorityVLANTag 0 关闭优先级与 VLAN 处理。* 前缀必须要加上,并不是输入错误
MonitorModeEnabled 1 启用报文监控模式,保留完整帧结构
MonitorMode 1

注册表修改

最后重启电脑即可。完美解决,实测不影响后续 Wireshark 抓包分析。


参考:

  1. How to configure “Realtek PCIe GBE Family Controller” to capture vlan tag packet?, Wireshark Q&A
  2. windows修改注册表抓带vlan的报文, 知乎
  • 标题: Windows 笑传之 VLAN 串串包
  • 作者: SerinaNya
  • 创建于 : 2026-07-08 15:56:19
  • 更新于 : 2026-08-05 11:17:39
  • 链接: https://serinanya.cn/2026/fix-realtek-vlan-offload-on-windows/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。