网络学习:数据链路层VLAN原理和配置
一、简介:
VLAN又称为虚拟局域网,它是用来将使用路由器的网络分割成多个虚拟局域网,起到隔离广播域的作用,一个VLAN通常对应一个IP网段,不同VLAN通常规划到不同IP网段。划分VLAN可以提高网络的通讯质量和安全性。
二、Ethernet 802.1q帧(VLAN 数据帧)
Ethernet 802.1q 帧与传统的Ethernet帧的区别,就是在源Mac地址后面,在长度/协议类型字段之前加入了4个字节的VLAN标签(VLAN TAG)

1、VLAN TAG
VLAN TAG:由TPID(标签协议标识符)和TCI(标记控制信息)组成,其中TCI 包含了PRI、CFI、VID等字段。
| 标签名 | 长度 | 解释 | |
| TPID | 16bit | 表示帧类型,取值为0x8100时表示IEEE 802.1Q的VLAN数据帧。 | |
| PRI | 3bit | Priority,表示数据帧的802.1Q优先级。取值范围为0~7,值越大优先级越高。 | |
| CFI | 1bit | CFI取值为0表示MAC地址以标准格式进行封装,为1表示以非标准格式封装。在以太网中,CFI的值为0。 | |
| VID | 12bit | VLAN ID取值范围是0~4095。由于0和4095为协议保留取值,所以VLAN ID的有效取值范围是1~4094。 | |
三、链路类型与接口类型
常见的链路类型有:接入链路(Access) 和干道链路(Trunk)。
常见接口类型有:Access接口、Trunk接口和Hybrid接口3种接口类型。
1.干道链路(Trunk)
为了实现跨VLAN间通讯,交换机和交换机间使用干道链路(Trunk)进行相连。为了让交换机设备能正确识别在干道链路上通讯的以太网数据帧必须是打上VLAN TAG的VLAN数据帧。所以通常干道链路的两端要设为能给数据帧打上TAG的Trunk接口。
2.接入链路(Access)
某些设备只能收发Untagged帧无标记帧,如:个人主机、服务器、Hub集线器等,这样就要求交换机与这些设备连接使用接入链路(Access),并且与接入链路相通的交换机接口使用可以进行VLAN TAG剥离操作的Access接口。
3.缺省VLAN和本征VLAN
缺省VLAN(华为PVID)和本征VLAN(思科)本质上是同一个概念。这里统称缺省VLAN。
前面提到,设备处理的数据帧都带Tag,当设备收到Untagged帧时,就需要给该帧添加Tag,添加什么Tag,就由接口上的缺省VLAN决定。
对于Access接口,缺省VLAN就是该接口被划分到的VLAN,也称被接口允许通过VLAN。
对于Trunk接口和Hybrid接口,一个接口可以允许多个VLAN通过,但是只能有一个缺省VLAN。接口的缺省VLAN和允许通过的VLAN需要分别配置,互不影响。默认的缺省VLAN为VLAN 1。当一个数据帧没有打标签,是一个原始的以太网帧时,它属于缺省VLAN。
缺省VLAN的作用是为了解决无法打vlan标签的设备与能打vlan标签的设备进行通信而存在。
虽然在交换机之间传输不打标签。但在交换机内部会被打上标签,因为只能在本Vlan内部发送广播。
3.接口汇总分析
| 接口类型 | 对接收不带Tag的报文处理 | 对接收带Tag的报文处理 | 发送帧处理过程 |
| Access接口 | 接收该报文,并打上缺省的VLAN ID。 | 当VLAN ID与缺省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相同,且是该接口允许通过的VLAN ID时,去掉Tag,发送该报文。 当VLAN ID与缺省VLAN ID不同,且是该接口允许通过的VLAN ID时,保持原有Tag,发送该报文。 |
| Hybrid接口 | 打上缺省的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。 |
4.静态VLAN
基于端口的VLAN,即明确指定出各个端口属于哪个VLAN。
5.动态VLAN
基于MAC地址的VLAN:
通过查询并记录端口所连计算机上网卡的MAC地址来决定端口的所属,属于OSI第二层
例:假定有一个MAC地址“A”被交换机设定为属于VLAN “10”,那么不论MAC地址为“A”的这台计算机连在交换机哪个端口,该端口都会被划分到VLAN 10中去。计算机连在端口1时,端口1属于VLAN 10;而计算机连在端口2时,则是端口2属于VLAN 10。
但是,基于MAC地址的VLAN,在设定时必须调查所连接的所有计算机的MAC地址并加以登录。而且如果计算机交换了网卡,还是需要更改设定。
基于IP地址(子网)的VLAN:
就是通过所连计算机的IP地址,来决定端口所属VLAN的,属于OSI第三层。
例:假定有一个IP地址“A”被交换机设定为属于VLAN “10”,那么这台计算机的IP地址不变,无论它连在交换机哪个端口,该端口都会被划分到VLAN 10中去。计算机连在端口1时,端口1属于VLAN 10;而计算机连在端口2时,则是端口2属于VLAN 10。
因此,与基于MAC地址的VLAN相比,能够更为简便地改变网络结构。
基于用户的VLAN:
根据交换机各端口所连的计算机上当前登录的用户,来决定该端口属于哪个VLAN。
解释:这里的用户识别信息,一般是计算机操作系统登录的用户,比如可以是Windows域中使用的用户名。这些用户名信息,属于OSI第四层以上的信息。
总的来说,决定端口所属VLAN时利用的信息在OSI中的层面越高,就越适于构建灵活多变的网络。
四、不同VLAN间的通讯
PC0的IP地址:192.168.1.1
PC2的IP地址:192.168.2.1
1.当PC0发送IP协议帧到交换机,此时发送的是传统的以太网Ethemet II帧。

2.当Switch的Fa0/1口配为Access口时,PC0发送的以太网帧会被打上VLAN 10的标签,变成VLAN数据帧。

3.当VLAN数据帧通过Switch的TRUNK口时,发现VLAN 10与缺省VLAN(VLAN 1)不同保持原标签不动发送帧。当三层交换机接收VLAN数据帧,会根据目的IP地址所对应VLAN 标签重新打上新的VLAN 标签,然后发送给交换机对应VLAN的Access口,最后剥离标签,变成普通的以太网帧发送给PC2。


五、思科VLAN相关配置代码
二层交换机
创建VLAN
VLAN <vlan-id>
重命名VLAN
name <vlan-name>
端口分配VLAN
interface <interface-id> #进入接口配置模式#
switchport mode access #将接口设置为访问模式#
switchport access vlan <vlan-id> #接口分配到指定的VLAN#
汇聚链路端口设置(Trunk模式)
interface <interface-id> #进入要配置为 trunk 的接口配置模式#
switchport mode trunk #修改接口为trunk模式#
switchport trunk allowed vlan <vlan-list> #配置允许通过 trunk 的 VLAN#
三层交换机
1.汇聚链路端口设置(Trunk模式)
interface <interface-id> #进入要配置为 trunk 的接口配置模式#
switchport trunk encapsulation dot1q #配置 trunk 的封装协议#
switchport mode trunk #配置接口为 trunk 模式#
2.接口配置IP地址
interface <interface-id> #进入接口配置模式#
no switchport #二层端口提升三层端口#
ip address <ip-address> <subnet-mask> #配置ip#
3.开启路由模式
ip routing #开启路由功能#
4.VLAN配置ip地址
interface vlan <vlan-id> #进入 VLAN 接口配置模式#
ip address <ip-address> <subnet-mask> #配置 VLAN 接口的 IP 地址和子网掩码#
相关文章:
网络学习:数据链路层VLAN原理和配置
一、简介: VLAN又称为虚拟局域网,它是用来将使用路由器的网络分割成多个虚拟局域网,起到隔离广播域的作用,一个VLAN通常对应一个IP网段,不同VLAN通常规划到不同IP网段。划分VLAN可以提高网络的通讯质量和安全性。 二、…...
Docker的常见命令以及命令别名
常见命令 命令说明docker pull拉取镜像docker push推送镜像到DockerRegistrydocker images查看本地镜像docker rmi删除本地镜像docker run创建并允许容器docker stop停止指定容器docker start启动指定容器docker restart重新启动容器docker rm删除指定容器docker ps查看容器do…...
2024.02.14作业
1. 请编程实现二维数组的杨辉三角 #include <stdio.h> #include <stdlib.h> #include <string.h>int main() {int n;scanf("%d", &n);int a[n][n];memset(a, 0, sizeof(a));a[0][0] 1;for (int i 1; i < n; i){for (int j 0; j < i …...
SpringMVC原理(设计原理+启动原理+工作原理)
文章目录 前言正文一、设计原理1.1 servlet生命周期简述1.2 设计原理小结 二、启动原理2.1 AbstractHandlerMethodMapping 初始化 --RequestMapping注解解析2.2 DispatcherServlet 的初始化2.3 DispatcherServlet#initHandlerMappings(...) 初始化示例说明 三、工作原理 前言 …...
Java+SpringBoot构建智能捐赠管理平台
✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…...
ubuntu远程桌面配置以及常见问题
ubuntu桌面系统配置 ubuntu远程桌面配置如下 第一步,安装xrdp sudo apt-get isntall xrdp安装完检查一下服务是否可以正常启动, sudo systemctl status xrdp如果看到active应该就正常启动了 第二步,开启Ubuntu桌面共享 好接下来我们测试一…...
数据结构:并查集讲解
并查集 1.并查集原理2.并查集实现3.并查集应用4.并查集的路径压缩 1.并查集原理 在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后按一定的规律将归于同一组元素的集合合并。在此过程中…...
Stable Diffusion主流UI详细介绍
Stable Diffusion目前主流的操作界面有WebUI、ComfyUI以及Fooocus 这里webui和fooocus在人机交互上的逻辑是一样的,fooocus界面更加简洁。 comfyui是在人机交互上是采用流程节点的交互逻辑,和上面略有区别。 界面分别如下: WebUI界面如下 we…...
webpack5 常用插件使用
webpack5常用插件使用 1. CleanWebpackPlugin2. HtmlWebpackPlugin3. DefinePlugin4.CopyWebpackPlugin 1. CleanWebpackPlugin 问题:每次打包完都需要手动删除掉dist文件目录,使用CleanWebpackPlugin就可自动清除dist目录。作用:自动清除di…...
利用Python和pandas库进行股票技术分析:移动平均线和MACD指标
利用Python和pandas库进行股票技术分析:移动平均线和MACD指标 介绍准备工作数据准备计算移动平均线计算MACD指标结果展示完整代码演示 介绍 在股票市场中,技术分析是一种常用的方法,它通过对股票价格和交易量等历史数据的分析,来…...
whisperspeech 英文TTS的实现
以下代码成功运行在 colab 中,需要修改运行时类型为 T4 GPU。 !pip install -Uqq WhisperSpeech def is_colab():try: import google.colab; return Trueexcept: return Falseimport torch # if not torch.cuda.is_available(): # if is_colab(): raise BaseEx…...
P1000 超级玛丽游戏(洛谷)
题目背景 本题是洛谷的试机题目,可以帮助了解洛谷的使用。 建议完成本题目后继续尝试 P1001、P1008。 另外强烈推荐新用户必读贴 题目描述 超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。 ********************####....#.#..###…...
数据卷的常见命令,如何创建Nginx容器,修改nginx容器内的html目录下的index.html文件
数据卷 什么是数据卷 数据卷(volume)是一个虚拟目录,是容器内目录与宿主机**目录**之间映射的桥梁。 以Nginx为例,我们知道Nginx中有两个关键的目录: html:放置一些静态资源 conf:放置配置文…...
CFS三层靶机
参考博客: CFS三层内网靶场渗透记录【详细指南】 - FreeBuf网络安全行业门户 CFS三层靶机搭建及其内网渗透【附靶场环境】 | TeamsSix CFS三层网络环境靶场实战 - PANDA墨森 - 博客园 (cnblogs.com) CFS三层靶机实战--内网横向渗透 - 知乎 (zhihu.com) CFS靶机…...
C语言——oj刷题——获取月份天数
题目: 描述 KiKi想获得某年某月有多少天,请帮他编程实现。输入年份和月份,计算这一年这个月有多少天。 输入描述: 多组输入,一行有两个整数,分别表示年份和月份,用空格分隔。 输出描述&…...
Java面试题2024(Java面试八股文)
文章目录 基础Springspring Mybatis数据库Mysql redis并发编程网络通信消息队列MQ分布式分布式事务 设计模式 更新中 基础 Java基础 Java对象的创建 集合 HashMap详解 HashMap实现原理 ConcurrentHashMap原理详解 反射 JAVA反射详解 异常 Java 的异常体系 泛型 Java泛型详解 …...
Uniapp(uni-app)学习与快速上手教程
Uniapp(uni-app)学习与快速上手教程 1. 简介 Uniapp是一个跨平台的前端框架,允许您使用Vue.js语法开发小程序、H5、安卓和iOS应用。下面是快速上手的步骤。 2. 创建项目 2.1 可视化界面创建 1、打开 HBuilderX,这是一款专为uni…...
如何开始深度学习,从实践开始
将“如何开始深度学习”这个问题喂给ChatGPT和文心一言,会给出很有专业水准的答案,比如: 要开始深度学习,你可以遵循以下步骤: 学习Python编程语言的基础知识,因为它在深度学习框架中经常被使用。 熟悉线性…...
PostgreSQL的学习心得和知识总结(一百二十九)|深入理解PostgreSQL数据库GUC参数 update_process_title 的使用和原理
目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《PostgreSQL数据库内核分析》 2、参考书籍:《数据库事务处理的艺术:事务管理与并发控制》 3、PostgreSQL数据库仓库链接,点击前往 4、日本著名PostgreSQL数据库专家 铃木启修 网站…...
【并发编程】ThreadPoolExecutor类
📝个人主页:五敷有你 🔥系列专栏:并发编程⛺️稳重求进,晒太阳 ThreadPoolExecutor 1) 线程池状态 ThreadPoolExecutor 使用 int 的高 3 位来表示线程池状态,低 29 位表示线程数量 状态名 高三位 …...
保姆级教程:在CentOS 7上用极简包5分钟搞定openGauss数据库安装
5分钟极速部署:CentOS 7下openGauss数据库极简安装实战 当开发进度紧迫时,一个能快速搭建的数据库环境往往能挽救整个项目的时间线。本文将带您用官方极简安装包,在CentOS 7系统上5分钟内完成openGauss数据库的部署。这种方法特别适合需要立即…...
【网络安全】2026最新网安渗透测试标准及流程!新手小白零基础入门必看教程!
✅一、了解渗透测试 🔴什么是渗透测试? 渗透测试是一种安全性测试,通过发起模拟网络攻击的方式查找计算机系统中的漏洞。 渗透测试人员是拥有高超道德黑客技术的安全专业人员(道德黑客是指运用黑客工具和黑客技术来修复安全薄弱环…...
告别手动评分!用ImageJ的IHC Profiler插件,5分钟搞定免疫组化定量分析(附避坑指南)
告别手动评分!用ImageJ的IHC Profiler插件,5分钟搞定免疫组化定量分析(附避坑指南) 免疫组化(IHC)作为病理诊断和生物医学研究中的金标准技术,其结果的量化分析一直是困扰研究人员的难题。传统人…...
手把手教你用Docker Compose部署Jitsi Meet视频会议,并解决“断开链接”的坑
从零构建高可用Jitsi Meet视频会议系统:Docker Compose实战与深度排错指南 在远程协作成为常态的今天,搭建自主可控的视频会议系统已成为许多技术团队的基础需求。Jitsi Meet作为开源的WebRTC视频会议解决方案,凭借其出色的音视频质量和灵活的…...
AI临床研究助手会先在哪些环节跑出来,真正的效率杠杆是什么
AI 临床研究助手最先落地的地方,不会是直接替代研究者做关键判断,而是进入高频、重复、可审计、边界清晰的研究流程节点。本文从技术架构角度拆解它会优先出现在哪些环节,以及开发团队如何用 workflow engine、LLM API、audit log 和 metrics…...
2026届必备的六大AI辅助论文方案实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 处在信息爆炸的当下之时段,内容创作成为了个人以及企业的核心竞争力所在。针对广…...
电磁仿真进阶--CST空心电感建模与实测验证全流程
1. 空心电感建模与仿真的工程价值 空心电感作为高频电路中的核心无源器件,其性能直接影响射频前端、滤波电路等关键模块的工作表现。与传统带磁芯的电感不同,空心电感避免了磁饱和问题,但同时也面临着建模复杂度高、高频特性难以准确预测的挑…...
ESP32-S3-DevKitC-1驱动3.5寸ILI9488 TFT:从零构建LVGL音乐播放器UI
1. 硬件准备与环境搭建 拿到ESP32-S3-DevKitC-1开发板和3.5寸ILI9488屏幕时,我第一反应是检查引脚兼容性。这块480x320分辨率的SPI屏需要连接6个关键引脚:SCK、MOSI、MISO、CS、DC和RST。实际接线时有个坑要注意——开发板的默认SPI引脚可能与屏幕要求不…...
别再死记硬背了!用这个商品库存表案例,5分钟搞懂HTML表格的rowspan属性
别再死记硬背了!用商品库存表案例5分钟掌握HTML表格的rowspan属性 每次看到HTML表格代码里那些rowspan和colspan属性就头疼?别担心,今天我们不谈枯燥的语法定义,而是通过一个真实的商品库存管理案例,带你理解rowspan的…...
5分钟极速上手:用Open-Lyrics让AI为你的音频自动生成专业字幕
5分钟极速上手:用Open-Lyrics让AI为你的音频自动生成专业字幕 【免费下载链接】openlrc Transcribe and translate voice into LRC file using Whisper and LLMs (GPT, Claude, et,al). 使用whisper和LLM(GPT,Claude等)来转录、翻译你的音频为字幕文件。…...
