VLAN 详解一(VLAN 基本原理及 VLAN 划分原则)
VLAN 详解一(VLAN 基本原理及 VLAN 划分原则)
在早期的交换网络中,网络中只有 PC、终端和交换机,当某台主机发送一个广播帧或未知单播帧时,该数据帧会被泛洪,甚至传递到整个广播域。而广播域越大,产生的网络安全问题、垃圾流量问题,就越严重。为了应对这些问题就出现了 VLAN 技术,VLAN(Virtual LAN)就是虚拟局域网,其主要功能就是用来隔离广播域。
文章目录
- VLAN 详解一(VLAN 基本原理及 VLAN 划分原则)
- 一、什么是 VLAN?
- 二、VLAN 的作用及特点
- 1.VLAN 的作用
- 2.VLAN 的特点
- 三、VLAN 的基本原理
- 1.如何实现 VLAN 的划分
- 2.VLAN 数据帧
- 四、VLAN 的划分
- 1.VLAN 的规划原则
- 2.VLAN 的划分方式
一、什么是 VLAN?
VLAN(Virtual LAN)虚拟局域网就是一种可以将局域网在逻辑上划分为新的相互之间独立的局域网的技术。
通过使用 VLAN,可以将位于不同物理位置的设备划分到同一个逻辑网络中,或将位于同一物理位置的设备划分到不同的逻辑网络中。
这种划分是基于逻辑连接的而不是基于物理连接的。
二、VLAN 的作用及特点
1.VLAN 的作用
- 隔离广播域
- 提高网络的安全性
- 增强网络的健壮性
- 可以灵活的构建用户分组
2.VLAN 的特点
- 一个 VLAN 就是一个广播域
- 同一个 VLAN 内的终端(PC、服务器等)之间可以直接进行通信
- 不同 VLAN 内的终端,无法直接进行二层的通信,只能通过三层通信来进行互联
- 限制广播域,一个广播域的报文都会被隔离在一个VLAN内
- VLAN的划分不受地域的限制
三、VLAN 的基本原理
1.如何实现 VLAN 的划分

-
在数据帧中打上 VLAN 标签,如果不处理就无法识别它是属于哪一个 VLAN,也不知道往哪里。
-
要使交换机能够分辨不同 VLAN 的报文,就需要在报文中添加标识 VLAN 信息的字段。
2.VLAN 数据帧
注:终端(PC、服务器等)不能识别 Tagged 数据帧,所以终端处理和发出的都是 Untagged 数据帧;但为了提高处理效率,交换机内部处理的数据帧一律都是 Tagged 数据帧。
VLAN 数据帧形式分为 有标记帧(Tagged 帧)和 无标记帧(UnTagged 帧)
- 无标记帧(Untagged 帧):原始的以太网数据帧,未加入 4 字节 VLAN 标签的数据帧。
- 有标记帧(Tagged 帧):IEEE 802.1Q协议规定,在以太网数据帧的目的 MAC 地址和源 MAC 地址字段之后,协议类型字段之前,加入 4 个字节的 VLAN 标签(又称 VLAN Tag,简称 Tag)的数据帧。

VLAN 数据帧字段:
| 字段 | 长度 | 作用 | 备注 | 操作 |
|---|---|---|---|---|
| TPID | 16 bit | Tag Protocol Identifier(标签协议标识符),代表数据帧类型 | 设备厂商可以自定义 TPID 的值。当邻居设备将 TPID 值配置为非 0x8100 时,为了能够识别这样的报文,实现互通,必须在本设备上修改 TPID 值,确保和邻居设备的TPID值配置一致 | 取值为 0x8100 时表示 IEEE 802.1Q 的VLAN数据帧。如果不支持 IEEE 802.1Q 的设备收到这样的帧,就会将其丢弃 |
| PRI | 3 bit | Priority,表示数据帧的优先级,用于 QoS | 取值范围为 0~7,值越大优先级越高 | 当网络阻塞时,交换机优先发送优先级高的数据帧 |
| CFI | 1 bit | Canonical Format Indicator(标准格式指示位),表示 MAC 地址在不同的传输介质中是否以标准格式进行封装 | CFI 取值为 0 表示 MAC 地址以标准格式进行封装,为 1 表示以非标准格式封装 | CFI 用于兼容以太网和令牌环网 |
| VID | 12 bit | VLAN ID,表示该数据帧所属的 VLAN 编号 | VLAN ID取值范围是 0~4095。其中 0 和 4095 为协议保留取值,所以VLAN ID的有效取值范围是 1~4094 | 交换机利用 VLAN 标签中的 VID 来识别数据帧所属的 VLAN。广播帧只能在同一 VLAN 内转发,使用 VID 进行识别就可以将广播域限制在一个VLAN内。 |
四、VLAN 的划分
1.VLAN 的规划原则
VLAN 的分配原则可以依据实际的业务、部门、应用等场景进行划分。
VLAN ID 的分配在有效范围内,可以随意分配和选取,但是为了提高 VLAN ID 的连续性,一般采用VLAN ID 和子网关联的方式进行分配。

2.VLAN 的划分方式
VLAN 的划分方式大致可分为:基于接口划分、基于 MAC 地址划分、基于 IP 子网划分、基于协议划分、基于策略划分。
| 划分方式 | 基于内容 | 预设 | 操作 |
|---|---|---|---|
| 基于接口划分 | 根据交换机的接口来划分 VLAN | 预先给交换机的每个接口配置不同的 PVID | 当一个数据帧进入交换机时,如果没有带 VLAN 标签,该数据帧就会被打上接口指定 PVID 的标签,然后数据帧将在指定 VLAN 中传输 |
| 基于 MAC 地址划分 | 根据数据帧的源 MAC 地址来划分 VLAN | 预先配置 MAC 地址和 VLAN ID 映射关系表 | 当交换机收到的是 Untagged 帧时,就根据该表给数据帧添加指定 VLAN 的标签,然后数据帧将在指定 VLAN 中传输 |
| 基于IP子网划分 | 根据数据帧中的源 IP 地址和子网掩码来划分 VLAN | 预先配置 IP 地址和 VLAN ID 映射关系表 | 当交换机收到的是 Untagged 帧,就根据该表给数据帧添加指定 VLAN 的标签,然后数据帧将在指定 VLAN 中传输 |
| 基于协议划分 | 根据数据帧所属的协议(族)类型及封装格式来划分 VLAN | 预先配置以太网帧中的协议域和 VLAN ID 的映射关系表 | 如果收到的是 Untagged 帧,就根据该表给数据帧添加指定 VLAN 的标签,然后数据帧将在指定 VLAN 中传输 |
| 基于策略划分 | 根据配置的策略划分 VLAN | 预先配置策略,可以实现多种组合的划分方式,包括接口、MAC 地址、IP 地址等 | 如果收到的是 Untagged 帧,且匹配配置的策略时,就给数据帧添加指定 VLAN 的标签,然后数据帧将在指定 VLAN 中传输 |
如果文章对各位小伙伴有帮助的话欢迎三连!!!
另外,文章如有错误之处,也欢迎各位大佬批评指正!!!
相关文章:
VLAN 详解一(VLAN 基本原理及 VLAN 划分原则)
VLAN 详解一(VLAN 基本原理及 VLAN 划分原则) 在早期的交换网络中,网络中只有 PC、终端和交换机,当某台主机发送一个广播帧或未知单播帧时,该数据帧会被泛洪,甚至传递到整个广播域。而广播域越大ÿ…...
Android - 分区存储 MediaStore、SAF
官方页面 参考文章 一、概念 分区存储(Scoped Storage)的推出是针对 APP 访问外部存储的行为(乱建乱获取文件和文件夹)进行规范和限制,以减少混乱使得用户能更好的控制自己的文件。 公有目录被分为两大类:…...
Shiro框架权限控制
首先去通过配置类的用户认证,在用户认证完成后,进行用户授权,用户通过授权之后再跳转其他的界面时,会进行一个验证,当前账号是否有权限。 前端权限控制显示的原理 在前端中,通常使用用户的角色或权限信息来…...
centOS7 安装tailscale并启用子网路由
1、在centOS7上安装Tailscale客户端 #安装命令所在官网位置:https://tailscale.com/download/linux #具体命令为: curl -fsSL https://tailscale.com/install.sh | sh #命令执行后如下图所示2、设置允许IP转发和IP伪装。 安装后,您可以启动…...
spring 项目中如何处理跨越cors问题
1.使用 CrossOrigin 注解 作用于controller 方法上 示例如下 RestController RequestMapping("/account") public class AccountController {CrossOriginGetMapping("/{id}")public Account retrieve(PathVariable Long id) {// ...}DeleteMapping(&quo…...
importlib --- import 的实现
3.1 新版功能. 源代码 Lib/importlib/__init__.py 概述 importlib 包具有三重目标。 一是在 Python 源代码中提供 import 语句的实现(并且因此而扩展 __import__() 函数)。 这提供了一个可移植到任何 Python 解释器的 import 实现。 与使用 Python 以…...
【PyTorch】现代卷积神经网络
文章目录 1. 理论介绍1.1. 深度卷积神经网络(AlexNet)1.1.1. 概述1.1.2. 模型设计 1.2. 使用块的网络(VGG)1.3. 网络中的网络(NiN)1.4. 含并行连结的网络(GoogLeNet)1.5. 批量规范化…...
用python编写九九乘法表
1 问题 我们在学习一门语言的过程中,都会练习到编写九九乘法表这个代码,下面介绍如何编写九九乘法表的流程。 2 方法 (1)打开pycharm集成开发环境,创建一个python文件,并编写第一行代码,主要构建…...
Google Gemini 模型本地可视化
Google近期发布了Gemini模型,而且开放了Gemini Pro API,Gemini Pro 可免费使用! Gemini Pro支持全球180个国家的38种语言,目前接受文本、图片作为输入并生成文本作为输出。 Gemini Pro的表现超越了其他同类模型,当前版…...
数据修复:.BlackBit勒索病毒来袭,安全应对方法解析
导言: 黑色数字罪犯的新玩具——.BlackBit勒索病毒,近来成为网络安全领域的头号威胁。这种恶意软件以其高度隐秘性和毁灭性而引起广泛关注。下面是关于.BlackBit勒索病毒的详细介绍,如不幸感染这个勒索病毒,您可添加我们的技术服…...
拓扑排序实现循环依赖判断 | 京东云技术团队
本文记录如何通过拓扑排序,实现循环依赖判断 前言 一般提到循环依赖,首先想到的就是Spring框架提供的Bean的循环依赖检测,相关文档可参考: https://blog.csdn.net/cristianoxm/article/details/113246104 本文方案脱离Spring Be…...
Java的NIO工作机制
文章目录 1. 问题引入2. NIO的工作方式3. Buffer的工作方式4. NIO数据访问方式 1. 问题引入 在网络通信中,当连接已经建立成功,服务端和客户端都会拥有一个Socket实例,每个Socket实例都有一个InputStream和OutputStream,并通过这…...
一个简单的光线追踪渲染器
前言 本文参照自raytracing in one weekend教程,地址为:https://raytracing.github.io/books/RayTracingInOneWeekend.html 什么是光线追踪? 光线追踪模拟现实中的成像原理,通过模拟一条条直线在场景内反射折射,最终…...
C++学习笔记(十二)------is_a关系(继承关系)
你好,这里是争做图书馆扫地僧的小白。 个人主页:争做图书馆扫地僧的小白_-CSDN博客 目标:希望通过学习技术,期待着改变世界。 提示:以下是本篇文章正文内容,下面案例可供参考 文章目录 前言 一、继承关系…...
DC电源模块的设计与制造技术创新
BOSHIDA DC电源模块的设计与制造技术创新 DC电源模块的设计与制造技术创新主要涉及以下几个方面: 1. 高效率设计:传统的DC电源模块存在能量转换损耗较大的问题,技术创新可通过采用高效率的电路拓扑结构、使用高性能的功率开关器件和优化控制…...
Sketch for Mac:实现你的创意绘图梦想的矢量绘图软件
随着数字时代的到来,矢量绘图软件成为了广告设计、插画创作和UI设计等领域中必不可少的工具。在众多矢量绘图软件中,Sketch for Mac(矢量绘图软件)以其强大的功能和简洁的界面脱颖而出,成为了众多设计师的首选。 Sket…...
ReactNative0.73发布,架构升级与更好的调试体验
这次更新包含了多种提升开发体验的改进,包括: 更流畅的调试体验: 通过 Hermes 引擎调试支持、控制台日志历史记录和实验性调试器,让调试过程更加高效顺畅。稳定的符号链接支持: 简化您的开发工作流程,轻松将文件或目录链接到其他…...
SVN忽略文件的两种方式
当使用版本管理工具时,提交到代码库的文档我们不希望存在把一些临时文件也推送到仓库中,这样就需要用到忽略文件。SVN的忽略相比于GIT稍显麻烦,GIT只需要在.gitignore添加忽略规则即可。而SVN有两种忽略方式,一个是全局设置&#…...
手写VUE后台管理系统10 - 封装Axios实现异常统一处理
目录 前后端交互约定安装创建Axios实例拦截器封装请求方法业务异常处理 axios 是一个易用、简洁且高效的http库 axios 中文文档:http://www.axios-js.com/zh-cn/docs/ 前后端交互约定 在本项目中,前后端交互统一使用 application/json;charsetUTF-8 的请…...
JavaScript装饰者模式
JavaScript装饰者模式 1 什么是装饰者模式2 模拟装饰者模式3 JavaScript的装饰者4 装饰函数5 AOP装饰函数6 示例:数据统计上报 1 什么是装饰者模式 在程序开发中,许多时候都我们并不希望某个类天生就非常庞大,一次性包含许多职责。那么我们就…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
