Windows 下网卡对802.1Q tag 的支持
Windows 下网卡对802.1Q tag 的支持
目标:测试设备对802.1p 的支持,即设备能对802.1q tag 里的priority 值, 对数据进行不同优先级级别的转发。由于手头没有smartbits ,也没有VLAN 终端设备,没有VLAN 交换机,所以只能依靠PC 机的网卡来生成802.1q 的网络包。
从理论上来讲,VLAN 是软件级别的功能,网卡只充当物理链路的角色,只要驱动支持的话,任何网卡都可以支持VLAN。比如在Linux下,只要加载了8021q.o 模块之后,就可以用vconfig 工具对VLAN ID、Priority 等进行任意设置。而在WINDOWS 系统下,很多网卡声称支持802.1q/p, 但是根据实际的测试结果,支持的情况不尽相同。本来可以通过Linux 直接进行我要的测试,出于好奇,进行了下面几种对Windows 的测试:
测试条件:
1, PC1 Linux 系统,用vconfig 配置VLAN ID 为3,IP 为192.168.1.5
2, PC2 Windows XP 系统(并装有Linux 虚拟机、Ethereal 抓包工具),上面插有待测的网卡,IP 为192.168.1.6
一、系统:Windows XP 网卡:Realtek RTL8169/8110 Family Gigabit Ethernet NIC 在网卡的配置页里有一项“802.1Q/1p VLAN Tagging”,如下:
到底Enable 这一项之后有什么作用呢?先用一台Linux 机(PC1)对其发VLAN ID 为3 的Tag 包,结果如下:
在PC2 用Ethereal 抓包发现,PC2 收到了带tag 的包,但是向PC1 回应ARP Reply 时却不带VLAN tag。所以PC1 就丢弃回应包,表面现象就是PC1 PING 不通PC2。
那怎么让PC2 发出带VLAN tag 的包呢?首先在Windows 下装一个虚拟机VMWare ,在这个虚拟机上装一个Linux 系统,RedHat9 或Fedora 都可以,主要是网卡的设置,要设置成Bidged 方式:
并且指定成物理网卡,Edit->Virtual Network Setting 里的Host Virtual Network Mapping 设置如下:
这样虚拟机直接连接RTL8169 外部网卡,而Linux 里又很容易加载VLAN 协议。(方法:
modprobe 8021q vconfig add eth0 3 ifconfig eth0.3 192.168.1.217 netmask 255.255.255.0
) OK, 现在可以在虚拟机上向PC1 发包了,或者PC1 向虚拟机发包,并且在PC2 用Ethereal 抓包发现都是带tag 的!
二、系统:Windows XP 网卡:Realtek RTL8139/810x Family Fast Ethernet NIC 在网卡的配置页里,没有找到对应VLAN/802.1Q 的配置项,配置页如下:
而测试结果和RTL 8169 的完全相同。
三、系统:Windows XP 网卡:Marvell Yukon 88E8038 PCI-E Fast Ethernet Controller
同样,用Linux 向其发带tag 的包,在PC2 上用Ethereal 抓包,这一次结果和以前不同,Ethereal 里抓到的是不带tag 的包, 说明网卡直接将802.1q 的tag 剥除了,自然,回应的时候也是不带tag 的包,网络自然不通。利用前面的方法,也在XP 系统下装一个虚拟机,并且也用vconfig 配置了VLAN, 然后向PC1 发包,在PC1 上抓包发现,虚拟机通过PC2 的网卡发出的包是带tag 的。PC1 于是向PC2 发带tag 的回应包,这时在PC1 抓包发现,网卡又将tag 标志给剥除了,导致虚拟机收到的是不带tag 的包,自然又不能通信了。
四、系统:Windows XP 网卡:SiS191 Ethernet Controller
这一款网卡对VLAN 有直接的支持,可设置VLAN ID,如下图:
设置之后就只能和相同的VLAN ID 的网络通信,自然和PC1 可以直接的通信,并且通信都是带tag 的。但是此网卡只能属于一个VLAN, 而且无法设置tag 里的priority 。
相比之下还是Linux 下使用起来比较方便,可以将网卡加入多个VLAN, 并且可以设置进出包的priority 。
Windows 下网卡对802.1Q tag 的支持相关推荐
- Windows下安装Curses库 + 查看pip所支持whl版本
今天在弄一个视频转字符动画的程序,里面会涉及到 curse. Curses 库是 Python 中的一个库,我们非常容易想到的安装方式当然就是 pip install curses 但是我们会发现,当 ...
- Windows下,Sublime text 在GoSublime中支持goimports
goimports 可以自动对代码中的依赖包进行管理,如果有用到,就会自动import,对没有用到的包会进行自动删除. 安装 goimports 方式1: git clone https://git ...
- Windows10 64位企业版 1909真机中使Wireshark可以抓取802.1q封装携带tag的数据帧
本次实验背景: 本想为学员抓取一下trunk的isl封装和802.1q封装,用于学习了解,两种不同的封装模式的区别以便于更好的理解dot1q,eve中并无法抓取到isl的封装,下午就用了真机抓,然而非 ...
- 802.1Q中的secure/check/fallback/disable的简单分析
802.1Q中的secure/check/fallback/disable的简单分析 芯片手册原文 Security & Port Mapping The 802.1Q Security fe ...
- windows下curl
1.下载 在官网处下载工具包:http://curl.haxx.se/download.html 这里找二进制的包,找了半天才找到,原来是CAB文件 2.使用方式一:在curl.exe目录中使用 解压 ...
- MinGW —— Minimalist GNU for Windows、Cygwin —— Windows 下的类 unix 系统
0. 楔子 Windows 下显然是没有 gcc 编译器的.对于一些软件或者工具如果想要在 Windows 平台下运行,而又需要依赖 gcc 编译其中的一些基于 C/C++ 实现的代码. 此时就借助 ...
- 个人整理的 Windows 下 .NET 开发必装的软件
注: 最后更新时间:2019-03-15 一..NET 开发 1. 必装 软件名称 说明 下载地址 JetBrains Toolbox JetBrins 全家桶管理工具. 下载地址 JetBrains ...
- windows 下编译 Ipopt 3.12
Ipopt这个库在linux下编译是很容易的,但是在windows下想用它就很麻烦了. 官方只提供了较旧版本的Ipopt的编译版本,只能用在较旧版本的vs上.如果想用新版本或支持新的vs则只能自行编译 ...
- Windows下的一个窗口SPY工具
Windows下的一个窗口SPY工具. 支持WinXP-Win10系统 支持十字光标拖动选择 显示窗口控件类及窗口名称 便于开发人员用于UI页面的调试开发 永久免费,便捷小巧 支持托盘显示 下载地址: ...
- windows下更改网卡mac地址
windows下更改网卡mac地址 xp.win7测试过.其他版本没试过,仅供参考. 此处介绍2种方式,一种是通过网卡属性高级选项卡来设置,另一种为通过修改注册表来设置. 1.网卡高级属性卡设置 我的 ...
最新文章
- 数据结构-线性表的顺序结构
- [ruby] wxRuby安装
- python课程价格哪个好-python课程价格
- 图像的Gamma(伽玛)校正的原理及OpenCV代码实现
- Apache Rewrite的主要功能
- PYTHON自动化Day4-交换变量,字符串方法,拷贝,集合,文件,文件指针
- 滚轮y坐标html,web交互之js事件
- rm删除报错 :-bash: syntax error near unexpected token `('
- 【VBA编程实例】 如何导出百度云盘的目录
- Atitit 人工智能体系树完整版 Atitit 人工智能体系培训列表 目录 1. 1.NLP自然语言处理文本处理	1 2. 知识图谱 知识处理系统	2 3. 2.机器视觉 图像处理	2 4.
- 视频教程-Excel VBA网抓教程【你学得会】-Office/WPS
- 基于51单片机的医院银行排队叫号系统proteus仿真程序原理图设计
- 汇编intel 8086/8088/80386 学习
- 七周成为数据分析师 第七周:Python
- 等高线的matlab编程,matlab等高线
- 前端HTML+CSS之网页排版(三)
- Android图形图像处理:马赛克(Mosaic)效果【直接可用】
- win 7硬盘安装centos7 亲测可行
- 人工智能工程师要具备的5项基本技能
- 百度网盘PC端缓存文件夹