任何程序来帮助我检查以太网通道是否可以支持全长的VLAN数据包?

有时候,我必须面对这样的情况,我需要快速而明确地知道一个全长的VLAN数据包是否可以在两个RJ45端口之间穿越。

是的,我的意思是Etype = 81 00的802.1Q以太网帧(下图)。

VLAN数据包格式

我现在可以做的是:获取两台Windows PC,为每台PC安装英特尔千兆网卡和英特尔特定的驱动程序,以创build虚拟网卡,分配VLAN ID = 3。

在这里输入图像说明

然后将两台PC连接到两个RJ45端口的每一个。

最后执行ping来生成一个全长的以太网数据包。

ping -f -l 1472 <dest-IP> 

这样,我可以确定发送的数据包的最大“IP数据有效载荷”为1500字节(ICMP报头8字节,ICMP数据1472字节)。

以太网有效载荷

如果ping得到答复,我知道以太网通道支持全长的VLAN数据包。

在我的实验中,有些家庭交换机或宽带路由器(如Linksys WRT54G)不支持全长的VLAN数据包交换,所以只有ping -f -l 1468成功。

你看,我不得不用昂贵的Intel网卡来进行那个testing,挺不方便的。 对于目前大多数笔记本电脑来说,他们并不配备英特尔网卡,即使是英特尔网卡,英特尔VLAN驱动程序,英特尔在可安装VLAN驱动程序的型号上也存在限制。

所以,我的问题是:是否有一个小程序,可以让我发送一个完整的VLAN数据包,而无需安装专用的VLAN驱动程序? 或者更好的是,该scheme有一个股票function,为我的情况做了很好的工作。

Windows程序首选,Linux解决scheme欢迎。 越简单,程序越好。 谢谢。

[额外]

2006年左右购买的Linksys路由器使用官方固件v7.00.6。 (Linksys网站pipe理图片)

[2012-11-09]这个技巧可能相当有用。 要检查的以太网通道可能更有趣,例如802.11 WDS网桥。

如果NIC /驱动程序是限制,你不能做任何事情,即使程序允许你发送一个更大的数据包,它会碎片。

在Linux中启用VLAN标记很容易。 你需要安装vconfig(ubuntu中的vlan包),然后你可以使用相同的pingtesting或iperf。

我想另外一个select是使用一个像http://www.wireshark.org/&#x7684; wireshark这样的包嗅探软件包来监视两端的stream量,这样可以确保你看到数据通过,尽pipe它不允许你为testing创build一个全尺寸的数据包。

如果你把它与来自http://nemesis.sourceforge.net/的克星一&#x6837;; 这个工具可以用来制作包注入,也可以用来重新发送捕获的包,理论上你可以用你的方法生成testing包,捕获它,然后在远端重新使用它和监视器看看它是否通过,节省了安装和configuration能够进行vlan标记的卡的麻烦。 如果有效的话,你可以很容易地在预先捕获的数据包和克星周围build立一个脚本,然后用线鲨在远端监听,或者在近端监听icmp响应(如果远端configuration为VLAN)的。

这个方法是完全没有经过testing的,因为我从来没有使用过克星,但是它在wireshark网站上被列为一个有用和相当好支持的数据包注入工具。

有了Andres在Linux上的vconfig提示和一些空闲时间来尝试一下,我终于设法做到了。

我的实验箱包含以下内容:

  1. 运行Windows XP并具有至less两个空闲USB端口的便携式计算机。
  2. 在Windows上安装VMware Workstation 7.1,创build两台运行openSUSE 12.2的虚拟机。
  3. 两个支持全长VLAN数据包的USB以太网适配器。 我的select是Z-TEK ZK011 ,它有芯片Realtek RTL8150。

RTL8150非常好,openSUSE Linux(至less从SuSE 9.0开始)具有内置的驱动程序,vconfig也是一个预装的软件包。 一旦插入Linux,Linux为它创build一个eth1设备。

然后,要在eth1上创buildvlan = 30接口,

 vconfig add eth1 30 

现在ifconfig会显示一个名为eth1.30的新设备。

给eth1.30分配一个IP,

 ifconfig eth1.30 10.1.1.5 up 

为其他Linux VM执行上述操作,但分配不同的IP。

最后,通过任何集线器/交换机连接两个encryption狗与以太网电缆来检查。

现在,我可以尝试与最大MTU平。

 ping -s 1472 -M do 10.1.1.6 

干杯!

这里最不确定的因素是,USB-以太网适配器本身是否支持全长的VLAN数据包。 为了validation它,我曾经用一根交叉电缆连接两个encryption狗互相ping。

BTW:Z-TEK ZE543(Moschip MCS7830)似乎不支持全长的VLAN数据包,至less使用默认的Linux驱动程序。