现状:
使用嗅探器软件(抓包软件),捕获的以太网帧中没有802.1Q VLAN标签或QoS标签。
如何修复?
备注:
在Windows系统中修改了注册表后,需要重新启动Windows让新的注册表设置生效。
以太网帧中的VLAN标签是被驱动程序剥离的,然而通过修改注册表就可以保留VLAN标签。
在Windows中,要允许带标签的帧传递到抓包软件,可通过添加或修改一个注册表dword值来实现。你当前使用的驱动程序(版本)会影响所需的注册表修改:
适配器驱动(版本) | 注册表键 |
e1g, e1e, e1y | MonitorModeEnabled |
e1c, e1d, e1k, e1q, e1r, ixe, ixn, ixt | MonitorMode |
译者注:
上述驱动程序版本,可以在网卡的硬件属性——驱动程序——驱动程序详细信息中,对比驱动程序文件名的前缀(前三位)。
备注:
Windows自带的驱动程序可能不支持混杂模式(promiscuous mode),请使用最新版的Intel官方驱动程序。
在此建立新的键(dword值):
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\00nn
00nn是你的物理网卡接口号。ControlSet001也可能是ControlSet或者ControlSet00x。
译者注:
你可以在00nn路径的右侧,观察“DriverDesc”的键值是否是你所需网卡的名称来判断。或在网卡硬件属性——详细信息——属性下拉菜单中选择“驱动程序关键字”查看。
MonitorModeEnabled
0——禁用。(不存储坏分组,不存储CRC,剥离802.1Q标签)
1——启用。(存储坏分组,存储CRC,保留802.1Q标签)
MonitorMode
0——禁用。(不存储坏分组,不存储CRC,剥离802.1Q标签)
1——启用。(接收坏/runt/错误CRC分组,保留CRC。不会剥离802.1Q标签,并且忽略发送到其他vlan的分组)
备注:
必须重新启动Windows,设置方能生效。