网络以太网之(2)VLAN协议

CSDN 2024-06-23 11:37:10 阅读 87

网络以太网之(1)VLAN协议

Author: Once Day Date: 2024年4月1日

一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦…

漫漫长路,有人对你微笑过嘛…

全系列文档可参考专栏:通信网络技术_Once-Day的博客-CSDN博客

参考文章:

《TCP/IP详解卷一》


文章目录

网络以太网之(1)VLAN协议1. VLAN虚拟局域网1.1 VLAN协议格式1.2 VlAN的作用1.3 VLAN的划分1.4 VLAN的输入规则检查1.5 VLAN的输出规则检查 2. VLAN与端口2.1 VLAN的端口类型2.1 VLAN报文输入输出规则2.3 实例分析

1. VLAN虚拟局域网
1.1 VLAN协议格式

VLAN(Virtual Local Area Network)又称虚拟局域网,是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的新兴数据交换技术。

一个VLAN组成一个逻辑子网,即一个逻辑广播域,它可以覆盖多个网络设备,允许处于不同地理位置的网络用户加入到一个逻辑子网中。

VLAN工作在OSI参考模型的第2层和第3层,IEEE标准为 802.1Q,VLAN之间的通信是通过第3层的路由来完成的。

Tag帧格式

在这里插入图片描述

TPID (Tag Protocol Identifier,也就是EtherType)IEEE定义的新的类型,表明这是一个加了802.1Q标签的帧。TPID包含了一个固定的值0x8100。TCI (Tag Control Information),定义了两字节的控制信息。User Priority:用于定义用户优先级,共有8个优先级别。IEEE 802.1P 为3比特的用户优先级位定义了操作。最高优先级为7,应用于关键性网络流量,如路由选择信息协议(RIP)和开放最短路径优先(OSPF)协议的路由表更新。优先级6和5主要用于延迟敏感(delay-sensitive)应用程序,如交互式视频和语音。优先级4到1主要用于受控负载(controlled-load)应用程序,如流式多媒体(streaming multimedia)和关键性业务流量(business-critical traffic)。优先级0是缺省值,并在没有设置其它优先级值的情况下自动启用。CFI(规范格式指示器Canonical Format Indicator):CFI值为0说明是规范格式,1为非规范格式。它被用在令牌环/源路由FDDI介质访问方法中来指示封装帧中所带地址的比特次序信息。规范格式指地址的十六进制表示中每一个字节的最低位,代表规范格式地址中相应字节的最低位。VID:该字段为12-bit, 是对 VLAN 的识别字段,在标准 802.1Q 中常被使用。支持4096(2的12次方) VLAN 的识别。在4096可能的VID 中,VID=0 用于识别帧优先级。 4095(FFF)作为预留值,所以 VLAN 配置的最大可能值为4094。 所以有效的VLAN ID范围一般为1-4094。

1.2 VlAN的作用
控制网络的广播风暴安全,由于VLAN 功能划分了多个广播域,不属于同一个VLAN的端口将不能进行通信,增强了安全性。简化网络管理。
1.3 VLAN的划分

基于端口划分

根据交换机接口分配VLAN ID。优点: 划分简单缺点: 是某个用户的端口连到新端口后,需要重新定义。

基于MAC地址划分

根据报文的源MAC地址分配VLAN ID优点: 当用户物理位置移动时,VLAN不用重新配置缺点: 初始化时所有的用户都必须进行配置,如果有几百个甚至上千个用户的话,配置是非常累的。而且这种划分的方法也导致了交换机执行效率的降低,因为在每一个交换机的端口都可能存在很多个VLAN组的成员,这样就无法限制广播包了。另外,网卡如果更换,也会导致VLAN需要重新配置。

基于子网划分

根据报文的源IP地址分配VLAN ID,一般用于对同一网段的用户,进行统一管理的场景。优点: 用户的物理位置改变了,不需要重新配置所属的VLAN,而且可以根据协议类型来划分VLAN,这对网络管理者来说很重要,还有,这种方法不需要附加的帧标签来识别VLAN,这样可以减少网络的通信量。

基于用户划分:

基于用户定义、非用户授权来划分VLAN,是指为了适应特别的VLAN网络,根据具体的网络用户的特别要求来定义和设计VLAN,而且可以让非VLAN群体用户访问VLAN,但是需要提供用户密码,在得到VLAN管理的认证后才可以加入一个VLAN。

1.4 VLAN的输入规则检查

输入规则检查即交换机接收到一个数据报文时,需要判定端口是否在接收到的报文所划分的VLAN中,如果端口不在接收报文所划分的VLAN,则此报文需要被丢弃。

对输的帧的VID进行检查,如果VID==0xFFF,报文将会被丢弃。帧的VID属性是否与设置一致,即端口可以使能只接收含有VLAN-TAG的帧,此时收到VID==0x0的报文则直接丢弃。在使能VLAN检查的情况下:端口不在所收到的帧的VID对应的VLAN中,则丢弃此报文。

1.5 VLAN的输出规则检查

输出规则检查用于在报文输出时,判定端口是否在输出报文VID所对应的VLAN中。

输出端口不在帧VID对应的VLAN当中,报文被丢弃。如果端口要求输出UNTAG帧,但TAG中的CFI位为1,此时报文被丢弃。当报文通过输出规则检查确定可以在此端口输出时,还需要确定是tag输出还是untagged输出,也即输出报文是否带有802.1q tag,此规则也由用户指定。当确定输出报文为tag报文时,其tag中的VID即为此报文所划分的VLAN ID。

2. VLAN与端口
2.1 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都为协议保留值。

0 表示不属于任何VLAN,但携带802.1Q的优先级标签,一般被称为Priority-only frame,其一般作为系统使用,用户不可使用和删除。1为系统默认VLAN,即Native VLAN。2-1001是普通的vlan。1006-1024保留仅系统使用,用户不能查看和使用1002-1005是支持fddi和令牌环的vlan1025-4095是扩展的vlan。

Tag、untag:tag是指以太网数据帧中携带有4字节802.1Q信息的VLAN标签,其中vlan id,用于指名数据包属于那个vlan,untag指数据包不属于任何vlan,没有vlan标签。

Access的端口类型:Access口只能属于1个VLAN,一般用于连接计算机的端口。

在这里插入图片描述

Trunk端口: Trunk口上可以同时传送多个VLAN的包,一般用于交换机之间的链接。

在这里插入图片描述

2.1 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,然后再发送该报文。

2.3 实例分析

Tag table表示是否输出Tag帧。

成员table表示是否属于该VLAN。

在这里插入图片描述

端口1收到Untagged帧,打上默认的PVID=1。端口2不属于VLAN 1网络,因此不能转发。端口3属于VLAN 1网络,且需要转发Tag帧。端口4属于VLAN 1网络,且需要输出Untagged帧。端口1和4非Access/Trunk口,因为PVID指向的VLAN,不能输出Tag帧,都应该是Untagged帧。端口4缺省PVID为3,根据Trunk口规则,非缺省PVID都输出Tag帧。

在这里插入图片描述

端口1输入Tagged帧,Vid=2,其属于VLAN 2成员,因此可以输入。端口2非VALN 2成员,不输出。端口3缺省PVID为2,因此不能输出Tagged帧,因此非Access/Trunk口。端口4缺省PVID为3,因此VLAN 2要输出Tagged帧,因此非Access/Trunk口。

总结

默认PVID不能输出Tagged帧,非默认PVID必须输出Tagged帧。

Alt

Once Day

也信美人终作土,不堪幽梦太匆匆......

如果这篇文章为您带来了帮助或启发,不妨点个赞👍和关注,再加上一个小小的收藏⭐!

(。◕‿◕。)感谢您的阅读与支持~~~



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。