笔记本电脑设置抓带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。
二、 解决办法(修改注册表)
1.对于Intel PRO/1000或PRO/100网卡
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\00xx下的MonitorModeEnabled改为1,若不存在则新建一dword值,并设为1。 2.对于Broadcom千兆网卡,需增加字符串值(string),名称PreserveVlanInfoInRxPacket,并设为1,位置同上。
修改后需要重启机器,或禁用网卡,再重新启用网卡,让改动生效。
可以使用这个脚本进行设置:(修改后自动禁用重启用网卡,支持Win2k至Win7系统)
Broadcom&IntelPro 网卡抓包设置.vbs注意:目的端口不要配置default vlan及untag vlan。
三、 示例
Wireshark抓到的带802.1Q的包象下图这样:
PRI:0 ID:200
优先级 Vlan ID