内容发布更新时间 : 2024/12/25 13:51:00星期一 下面是文章的全部内容请认真阅读。
笔记本电脑设置抓带Vlan包标签方法
固网南京软件开发一部 徐斌斌
一、 问题的提出
VLAN tag是在802.1Q中定义的标签,带VLAN tag的报文头格式如下: 01 0c cd 01 00 01 00 01 7a 01 00 52 81 00 00 00
? 其中 81 00为TPID,即表明此数据包为带802.1Q/802.1P标签的数据包; ? 接下去的00 00为TCI(标签控制信息字段),表示为二进制共有16位,其中前3位为优先级,第4位为CFI,
通常为0,第5-16位为VLAN ID,VLAN ID为0用于识别帧优先级。
某一些网卡驱动默认会在接收数据包的时候过滤vlan tag,使得用wireshark抓到的数据包中不含vlan tag,此时需要通过修改注册表让驱动保留vlan tag。
二、解决办法
我司大部分使用的笔记本电脑网卡为Intel PRO/1000或PRO/100网卡,对于此类网卡需要将注册表:
HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\00xx,如果该目录下有多个子项,需要找到Intel(R) PRO/100 S网卡对应的子项(其中DriverDesc是设备类型):
将该子项中的MonitorModeEnabled的数据改为1,如果不存在则新建这么一个dword键。
电脑重启后,抓到的包中就有优先级标签了。如果原配的网卡驱动版本比较低,如果有抓包需要的建议先升级网卡驱动程序。
对于Broadcom千兆网卡,需要在注册表里增加一项PreserveVlanInfoInRxPacket=1,类型为string。位置与TxCoalescingTicks相同,后者可以在HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet下搜索到。修改后需要重启机器让它生效。(由于暂未找到此类网卡,所以未进行截图。)