赞
踩
需求如上图所示:
eth1不带vlan_tag的包,要能与dante口互通但是不能跟eth2与ast1520那个端口通。
eth1带vlan_tag为30的包,可以与ast1520互通。
eth2网口与任何一个网口都不能通。
arm芯片自身需要划分vlan,那么就需要开启Linux内核的802.1q协议。
IEEE802.1Q协议即Virtual Bridged Local Area Networks协议,规定了VLAN的国际标准实现,从而使得不同厂商之间的VLAN互通成为可能。802.1Q协议规定了一段新的以太网帧字段。与标准的以太网帧头相比, VLAN报文格式在源地址后增加了一个4字节的802.1Q标签。4个字节的802.1Q标签中,包含了两个字节的标签协议标识(Tag Protocol Identifier,TPID,它的值是8100)和两个字节的标签控制信息(Tag Control Information,TCI),TPID是IEEE定义的新的类型,表明这是一个加了802.1Q标签的报文。
IEEE 802.1q以及VLAN Tagging属于互联网下IEEE 802.1的标准规范,允许多个网桥(Bridge)在信息不被外泄的情况下公开的共享同一个实体网上。IEEE 802.1q-英文缩写写为dot1q,经常在实现以太网封装协议的架构下被提及。
因为lan都是位于一个广播域中,所以很容易造成广播风暴,而VLAN即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。VLAN内的主机间可以直接通信,而VLAN间不能直接互通,从而将广播报文限制在一个VLAN内。
其实最关键还是在于对vlan端口的untag概念理解,认为只有untag数据帧,其实端口也有untag端口与tag端口的区分,而且rtl8367的文档中对于untag端口的配置指的就是是否配置tag端口,而不是设置untag帧。
2 、所谓的Untagged Port和tagged Port不是讲述物理端口的状态,而是讲是物理端口所拥有的某一个VID的状态,所以一个物理端口可以在某一个VID上是Untagged Port,在另一个VID上是tagged Port;
3 、一个物理端口只能拥有一个PVID,当一个物理端口拥有了一个PVID的时候,必定会拥有和PVID的TAG等同的VID,而且在这个VID上,这个物理端口必定是Untagged Port;
4 、PVID的作用只是在交换机从外部接受到可以接受Untagged 数据帧的时候给数据帧添加TAG标记用的,在交换机内部转发数据的时候PVID不起任何作用;
5 、拥有和TAG标记一致的VID的物理端口,不论是否在这个VID上是Untagged Port或者tagged Port,都可以接受来自交换机内部的标记了这个TAG标记的tagged 数据帧;
6、拥有和TAG标记一致的VID的物理端口,只有在这个VID上是tagged Port,才可以接受来自交换机外部的标记了这个TAG标记的tagged 数据帧;
在内核编译选项中,要启用如上图这个选项;
vconfig命令为busybox中,编译的时候需要使能busybox Makefile中的宏编译即可。
Vlan设备是虚拟以太网设备,代表物理LAN上的虚拟服务器。
eth0接口添加带有以下命令的VLAN ID 20:
vconfig add eth0 20
vconfig add命令在eth0上创建一个vlan-device,结果为eth0.5接口。 您可以使用normal ifconfig命令查看设备信息:
ifconfig eth0.20
然后为其分配ip信息:
ifconfig eth0.20 192.168.191.122 netmask 255.255.0.0 up
获取Vlan0.5的详细信息:cat /proc/net/vlan/eth0.20
删除vlan的方法:ifconfig eth0.20 down
vconfig rem eth0.20
具体交换芯片的API文档里会有介绍,可以查看具体的介绍与使用,每个交换芯片使用的API不一样,这里就不再过多介绍。
可以使用usb网卡,发出带vlan的包,进行测试。
点击属性,左边的以太网为电脑自带的网卡,右边的以太网3为usb网卡,电脑自带的网卡好像不能发出带vlan id的tag包,不知道为啥,我们就配置右边的usb网卡为例子;点击配置进入:
记得先把vlan & 优先级包打开,然后配置vlan id(记得先把网线拔了在配置,不然电脑会崩溃),这里我们把vlan id配置成30后,电脑就ping板子可以ping通,板子去ping电脑也可以ping通,设置成其他值ping不通。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。