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 的支持相关推荐

  1. Windows下安装Curses库 + 查看pip所支持whl版本

    今天在弄一个视频转字符动画的程序,里面会涉及到 curse. Curses 库是 Python 中的一个库,我们非常容易想到的安装方式当然就是 pip install curses 但是我们会发现,当 ...

  2. Windows下,Sublime text 在GoSublime中支持goimports

    goimports 可以自动对代码中的依赖包进行管理,如果有用到,就会自动import,对没有用到的包会进行自动删除. 安装 goimports  方式1: git clone https://git ...

  3. Windows10 64位企业版 1909真机中使Wireshark可以抓取802.1q封装携带tag的数据帧

    本次实验背景: 本想为学员抓取一下trunk的isl封装和802.1q封装,用于学习了解,两种不同的封装模式的区别以便于更好的理解dot1q,eve中并无法抓取到isl的封装,下午就用了真机抓,然而非 ...

  4. 802.1Q中的secure/check/fallback/disable的简单分析

    802.1Q中的secure/check/fallback/disable的简单分析 芯片手册原文 Security & Port Mapping The 802.1Q Security fe ...

  5. windows下curl

    1.下载 在官网处下载工具包:http://curl.haxx.se/download.html 这里找二进制的包,找了半天才找到,原来是CAB文件 2.使用方式一:在curl.exe目录中使用 解压 ...

  6. MinGW —— Minimalist GNU for Windows、Cygwin —— Windows 下的类 unix 系统

    0. 楔子 Windows 下显然是没有 gcc 编译器的.对于一些软件或者工具如果想要在 Windows 平台下运行,而又需要依赖 gcc 编译其中的一些基于 C/C++ 实现的代码. 此时就借助 ...

  7. 个人整理的 Windows 下 .NET 开发必装的软件

    注: 最后更新时间:2019-03-15 一..NET 开发 1. 必装 软件名称 说明 下载地址 JetBrains Toolbox JetBrins 全家桶管理工具. 下载地址 JetBrains ...

  8. windows 下编译 Ipopt 3.12

    Ipopt这个库在linux下编译是很容易的,但是在windows下想用它就很麻烦了. 官方只提供了较旧版本的Ipopt的编译版本,只能用在较旧版本的vs上.如果想用新版本或支持新的vs则只能自行编译 ...

  9. Windows下的一个窗口SPY工具

    Windows下的一个窗口SPY工具. 支持WinXP-Win10系统 支持十字光标拖动选择 显示窗口控件类及窗口名称 便于开发人员用于UI页面的调试开发 永久免费,便捷小巧 支持托盘显示 下载地址: ...

  10. windows下更改网卡mac地址

    windows下更改网卡mac地址 xp.win7测试过.其他版本没试过,仅供参考. 此处介绍2种方式,一种是通过网卡属性高级选项卡来设置,另一种为通过修改注册表来设置. 1.网卡高级属性卡设置 我的 ...

最新文章

  1. 数据结构-线性表的顺序结构
  2. [ruby] wxRuby安装
  3. python课程价格哪个好-python课程价格
  4. 图像的Gamma(伽玛)校正的原理及OpenCV代码实现
  5. Apache Rewrite的主要功能
  6. PYTHON自动化Day4-交换变量,字符串方法,拷贝,集合,文件,文件指针
  7. 滚轮y坐标html,web交互之js事件
  8. rm删除报错 :-bash: syntax error near unexpected token `('
  9. 【VBA编程实例】 如何导出百度云盘的目录
  10. Atitit 人工智能体系树完整版 Atitit 人工智能体系培训列表 目录 1. 1.NLP自然语言处理文本处理 1 2. 知识图谱 知识处理系统 2 3. 2.机器视觉 图像处理 2 4.
  11. 视频教程-Excel VBA网抓教程【你学得会】-Office/WPS
  12. 基于51单片机的医院银行排队叫号系统proteus仿真程序原理图设计
  13. 汇编intel 8086/8088/80386 学习
  14. 七周成为数据分析师 第七周:Python
  15. 等高线的matlab编程,matlab等高线
  16. 前端HTML+CSS之网页排版(三)
  17. Android图形图像处理:马赛克(Mosaic)效果【直接可用】
  18. win 7硬盘安装centos7 亲测可行
  19. 人工智能工程师要具备的5项基本技能
  20. 百度网盘PC端缓存文件夹

热门文章

  1. OpenStack 快速进阶教程
  2. Linux Kernel Security全景图系列之开篇
  3. ddl是什么意思mysql_ddl是什么意思(ddl数据库名词解释)
  4. 深度学习中的感受野计算
  5. YOLOv1: You Only Look Once: Unified, Real-Time Object Detection
  6. java编写小游戏大球吃小球
  7. ch340g电路图5v和3.3v供电电路
  8. 字节日常实习生面试 无了~
  9. kvm虚拟机上安装kata
  10. matlab fisher z变换,关于GCA统计