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

news2024/10/7 18:29:14

网络以太网之(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,则此报文需要被丢弃。

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

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

  1. 输出端口不在帧VID对应的VLAN当中,报文被丢弃。
  2. 如果端口要求输出UNTAG帧,但TAG中的CFI位为1,此时报文被丢弃。
  3. 当报文通过输出规则检查确定可以在此端口输出时,还需要确定是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和令牌环的vlan
  • 1025-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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1563712.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

输出100~200之间的素数(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>//实现素数判断函数&#xff1b; int Prime(int number) {//初始化变量值&#xff1b;int divided 2;int JudgementCondition 0;//循环判断素数&#xff1b;wh…

基于SpringBoot+微信小程序的外卖跑腿点餐(订餐)系统设计与实现+毕业论文(12000字)

介绍 Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。通过这种方式&#xff0c;Spring Boot致力于在蓬勃发展的快速应…

美联储,非必要,不降息

美联储“没必要、没空间、没动力”降息&#xff0c;也会尽量避免货币政策干扰大选&#xff0c;用“口头降息”代替实际调整是现实选择&#xff0c;市场降息预期将继续推迟和下调。 前言&#xff1a; 当前美国经济从各个方面看均并未表现出疲态——新增就业持续修复&#xff0c;…

俄罗斯Yandex广告推广如何开户及费用?

作为俄罗斯首屈一指的搜索引擎&#xff0c;Yandex凭借其超过60%的市场份额&#xff0c;成为企业进入俄罗斯、触及俄语消费者的关键入口。然而&#xff0c;对于不熟悉当地市场环境与网络营销规则的企业而言&#xff0c;成功开户并高效运营Yandex广告并非易事。云衔科技凭借专业的…

大模型量化技术-AWQ

大模型量化技术-AWQ 在2023年6月,Ji Lin等人发表了论文AWQ:Activation-aware Weight Quantization for LLM Compression and Acceleration。 这篇论文详细介绍了一种激活感知权重量化算法,可以用于压缩任何基于 Transformer 的语言模型,同时只有微小的性能下降。关于 AWQ 算…

2024 年云繁荣:驾驭人工智能驱动转型浪潮

在人工智能革命的核心&#xff0c;2024 年见证了云计算应用的空前激增。云计算的繁荣不仅仅是异地存储数据&#xff0c;而是创建动态的智能基础设施&#xff0c;推动人工智能的指数级增长。让我们深入探讨推动这一现象的关键因素和趋势。 01 人工智能和云&#xff1a;共生关系…

Mac上怎么合并多张图片?

Mac上怎么合并多张图片&#xff1f;上班过的小伙伴都应该知道&#xff0c;合并拼接图片是一件非常重要且经常需要使用到的图片处理技术&#xff0c;将多张图片合并拼成一张之后能够展现出更多的图片内容。在Mac电脑上&#xff0c;合并多张图片是一项常见的任务&#xff0c;无论…

鸿蒙OS开发实例:【ArkTS类库多线程@Concurrent装饰器校验并发函数】

在使用TaskPool时&#xff0c;执行的并发函数需要使用该装饰器修饰&#xff0c;否则无法通过相关校验。从API version 9开始&#xff0c;该装饰器支持在ArkTS卡片中使用。 装饰器说明 Concurrent并发装饰器说明装饰器参数无。使用场景仅支持在Stage模型的工程中使用。装饰的函…

2024最新软件测试【测试理论+ 接口测试】面试题(内附答案)

一、测试理论 3.1 你们原来项目的测试流程是怎么样的? 我们的测试流程主要有三个阶段&#xff1a;需求了解分析、测试准备、测试执行。 1、需求了解分析阶段 我们的 SE 会把需求文档给我们自己先去了解一到两天这样&#xff0c;之后我们会有一个需求澄清会议&#xff0c; …

【微信小程序】流量主-激励视频(激励广告)下发策略,每天三次免费体验,然后再次点击触发激励视频,当日不再触发。

如题&#xff1a; 允许用户有三次体验效果&#xff0c;然后弹出激励视频弹窗&#xff0c;之后当日不再弹出。 体验小程序&#xff1a; /*** 判断当前项目当天是否点击超过3次&#xff0c;触发广告效果。* 若&#xff0c;当天低于三次&#xff0c;则新增&#xff0c;若高于…

达梦数据库 优化

谁进行优化&#xff1f;优化什么&#xff1f; 优化不能仅从数据库方面考虑&#xff0c;比如&#xff0c;在存储达到数据库极限、应用涉及人员设计的代码稀巴烂的情况下&#xff0c;进行调优就是杯水车薪的效果。 涉及到优化人员&#xff1a; 数据库管理员应用程序架构师应用…

gulp的基本使用(二)

gulp的基本使用&#xff08;二&#xff09; 任务&#xff08;Tasks&#xff09;创建任务&#xff08;Tasks&#xff09;分类 series()和parallel()的区别series()parallel()代码运行命令结果series() 和 parallel()根据环境运行series() 和 parallel()相互深层嵌套当两个任务的…

C语言:二叉树的构建

目录 一、二叉树的存储 1.1 顺序存储 1.2 链式存储 二、二叉树的顺序结构及实现 2.1堆的概念及结构 2.2堆的构建 2.3堆的插入 2.4堆顶的删除 2.5堆的完整代码 三、二叉树的链式结构及实现 3.1链式二叉树的构建 3.2链式二叉树的遍历 3.2.1前序遍历 …

【Zblog搭建博客网站】windows环境搭建属于自己的博客并发布上线 – cpolar内网穿透

目录 1. 前言 2. Z-blog网站搭建 2.1 XAMPP环境设置 2.2 Z-blog安装 2.3 Z-blog网页测试 2.4 Cpolar安装和注册 3. 本地网页发布 3.1. Cpolar云端设置 3.2 Cpolar本地设置 4. 公网访问测试 5. 结语 1. 前言 想要成为一个合格的技术宅或程序员&#xff0c;自己搭建网…

论文精读--GPT4

现有的所有模型都无法做到在线学习&#xff0c;能力有限&#xff0c;而让大模型拥有一个tools工具库&#xff0c;则可以使大模型变成一个交互式的工具去协调调用API完成任务&#xff0c;同时GPT4还联网了&#xff0c;可以不断地更新自己的知识库 多模态模型&#xff0c;接受文…

docker容器之etcd安装

一、etcd介绍 1、etcd是什么 etcd是CoreOS团队于2013年6月发起的开源项目&#xff0c;它的目标是构建一个高可用的分布式键值(key-value)数据库。 2、etcd特点 简单的接口&#xff0c;通过标准的HTTP API进行调用&#xff0c;也可以使用官方提供的 etcdctl 操作存储的数据。…

鸿蒙开发岗位需求激增、鸿蒙迎来“薪”时代

随着科技的快速发展&#xff0c;智能操作系统已经成为科技巨头们争夺的焦点。近期&#xff0c;华为鸿蒙操作系统再次迎来重大突破&#xff0c;11家万亿市值的巨头纷纷宣布与华为达成合作&#xff0c;全面拥抱鸿蒙生态。 11家万亿市值巨头的签约涵盖了多个领域&#xff0c;包括…

yolov7代码 | model.named_models

文章目录 前言1. print(model)2. print(model.named_models)2.1 print(name)2.2 print(module)2.3 print(f"{name}:: {module}") 3. hasattr(module, weight) 前言 了解model.named_models&#xff0c;为剪枝做准备。 剪枝有一些层如果你不想剪掉&#xff0c;那就用…

OpenHarmony实战:小型系统 STM32MP1 芯片移植案例

本文章基于意法半导体 STM32MP157 芯片的小熊派 BearPi-HM Micro 开发板&#xff0c;进行小型带屏开发板的移植&#xff0c;实现了 ace_engine_lite、arkui_ui_lite、aafwk_lite、appexecfwk_lite、HDF 等部件基于 OpenHarmony LiteOS-A 内核的适配。移植架构上采用 Board 与 S…

总结UDP协议各类知识点

前言 本篇博客博主将详细地介绍UDP有关知识点&#xff0c;坐好板凳发车啦~ 一.UDP特点 1.无连接 UDP传输的过程类似于发短信&#xff0c;知道对端的IP和端口号就直接进行传输&#xff0c;不需要建立连接&#xff1b; 2.不可靠传输 没有任何的安全机制&#xff0c;发送端发…