赞
踩
网络以太网之(1)VLAN协议
Author: Once Day Date: 2024年4月1日
一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦…
漫漫长路,有人对你微笑过嘛…
全系列文档可参考专栏:通信网络技术_Once-Day的博客-CSDN博客
参考文章:
- 《TCP/IP详解卷一》
VLAN(Virtual Local Area Network)又称虚拟局域网,是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的新兴数据交换技术。
一个VLAN组成一个逻辑子网,即一个逻辑广播域,它可以覆盖多个网络设备,允许处于不同地理位置的网络用户加入到一个逻辑子网中。
VLAN工作在OSI参考模型的第2层和第3层,IEEE标准为 802.1Q,VLAN之间的通信是通过第3层的路由来完成的。
Tag帧格式:
基于端口划分:
基于MAC地址划分:
基于子网划分:
基于用户划分:
输入规则检查即交换机接收到一个数据报文时,需要判定端口是否在接收到的报文所划分的VLAN中,如果端口不在接收报文所划分的VLAN,则此报文需要被丢弃。
输出规则检查用于在报文输出时,判定端口是否在输出报文VID所对应的VLAN中。
PVID:Port VLAN ID,指端口的缺省VLAN ID。Hybrid端口和Trunk端口属于多个VLAN,所以需要设置缺省VLAN ID。Hybrid端口和Trunk端口的缺省VLAN为VLAN 1。
PVID主要有两个作用:第一对于接收到的Untag包则添加本端口的PVID再进行转发;第二是接收过滤作用,比如只接收等于PVID的VLAN TAG包。
VLAN ID:VLAN TAG包的VLAN ID号,有效范围是1-4094,0和4095都为协议保留值。
Tag、untag:tag是指以太网数据帧中携带有4字节802.1Q信息的VLAN标签,其中vlan id,用于指名数据包属于那个vlan,untag指数据包不属于任何vlan,没有vlan标签。
Access的端口类型:Access口只能属于1个VLAN,一般用于连接计算机的端口。
Trunk端口: Trunk口上可以同时传送多个VLAN的包,一般用于交换机之间的链接。
接口类型 | 接收不带Tag的报文 | 接收带Tag的报文 | 发送帧处理过程 |
---|---|---|---|
Access接口 | 接收该报文,并打上缺省的VLAN ID。 | 对比VLAN ID与缺省VLAN ID相同时,接收该报文。 不同时,丢弃该报文。 | 先剥离帧的PVID Tag,然后再发送。 |
Trunk接口 | 打上缺省的VLAN ID。当缺省VLAN ID在允许通过的VLAN ID列表里时,接收该报文。当缺省VLAN ID不在允许通过的VLAN ID列表里时,丢弃该报文。 | 当VLAN ID在接口允许通过的VLAN ID列表里时,接收该报文。 当VLAN ID不在接口允许通过的VLAN ID列表里时,丢弃该报文。 | 当VLAN ID与缺省VLAN ID相同,且是该接口允许通过的VLAN ID时,去掉Tag,发送该报文。 当VLAN ID与缺省VLAN ID不同,且是该接口允许通过的VLAN ID时,保持原有Tag,发送该报文。 |
Access端口只属于1个VLAN,所以它的缺省VLAN就是它所在的VLAN,不用设置;
Trunk端口属于多个VLAN,所以需要设置缺省VLAN ID。缺省情况下,Trunk端口的缺省VLAN为VLAN 1 如果设置了端口的缺省VLAN ID,当端口接收到不带VLAN Tag的报文后,则将报文转发到属于缺省VLAN的端口;当端口发送带有VLAN Tag的报文时,如果该报文的VLAN ID与端口缺省的VLAN ID相同,则系统将去掉报文的VLAN Tag,然后再发送该报文。
Tag table表示是否输出Tag帧。
成员table表示是否属于该VLAN。
总结:
也信美人终作土,不堪幽梦太匆匆......
如果这篇文章为您带来了帮助或启发,不妨点个赞
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。