基于RTL8364/RTL8367的vlan划分

平台

arm芯片:ast1520
内核版本:2.4.6
交换芯片:RTL8364/RTL8367

需求描述

在这里插入图片描述
需求如上图所示:
eth1不带vlan_tag的包,要能与dante口互通但是不能跟eth2与ast1520那个端口通。
eth1带vlan_tag为30的包,可以与ast1520互通。
eth2网口与任何一个网口都不能通。

调试过程

arm芯片自身需要划分vlan,那么就需要开启Linux内核的802.1q协议。

什么是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,经常在实现以太网封装协议的架构下被提及。

什么是vlan?

因为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 数据帧;

怎么编译进去802.1q与vlan划分命令vconfig?

在这里插入图片描述
在内核编译选项中,要启用如上图这个选项;
vconfig命令为busybox中,编译的时候需要使能busybox Makefile中的宏编译即可。
在这里插入图片描述

vconfig的使用
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
交换芯片上的划分vlan

具体交换芯片的API文档里会有介绍,可以查看具体的介绍与使用,每个交换芯片使用的API不一样,这里就不再过多介绍。

调试小技巧

PC怎么发出带vlan的包

可以使用usb网卡,发出带vlan的包,进行测试。
在这里插入图片描述
点击属性,左边的以太网为电脑自带的网卡,右边的以太网3为usb网卡,电脑自带的网卡好像不能发出带vlan id的tag包,不知道为啥,我们就配置右边的usb网卡为例子;点击配置进入:
在这里插入图片描述
记得先把vlan & 优先级包打开,然后配置vlan id(记得先把网线拔了在配置,不然电脑会崩溃),这里我们把vlan id配置成30后,电脑就ping板子可以ping通,板子去ping电脑也可以ping通,设置成其他值ping不通。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值