Vlan和Trunk
文章目录
- 一、VLAN的定义与背景
- 1. 传统以太网的问题(广播域)
- 2. 用VLAN隔离广播域
- 3. VLAN的优点与应用
- 二、VLAN的转发过程举例
- 三、802.1Q标签:帧格式与作用
- 四、VLAN工作原理
- 交换机端口类型
- Access
- Trunk
- Hybrid
- PVID(Port VLAN ID)
- 五、VLAN划分方式及优先级
- 六、常用的VLAN配置命令
首先可以看下思维导图,以便更好的理解接下来的内容。
导读:
在现代网络中,虚拟局域网(VLAN)扮演着关键的角色。本文将深入探讨VLAN的概念、工作原理。我们将详细了解VLAN的优势,并探讨其在现实场景中的应用。
一、VLAN的定义与背景
什么是VLAN? VLAN是虚拟局域网(Virtual Local Area Network)的缩写,它是一种逻辑上的子网。它能够跨越多个物理网络段,实现不同VLAN设备之间的隔离,使它们处于不同的广播域中。
1. 传统以太网的问题(广播域)
在传统的以太网网络中,主机发送的广播帧或未知单播帧会被泛洪至整个广播域,导致网络安全性和流量管理问题的严重加剧。
2. 用VLAN隔离广播域
为了解决问题,引入了VLAN的概念。VLAN可以将网络划分为多个逻辑上的子网,从而实现广播域的隔离。
3. VLAN的优点与应用
想象一栋商务楼,多家公司共享网络资源。为了确保各公司之间的数据隔离,可以将每个公司的设备划分到不同的VLAN中,实现“虚拟工作组”。
二、VLAN的转发过程举例
以下是PC向交换机发送数据帧时的VLAN数据转发过程示例:
- PC向交换机发送数据帧时,会打上VLAN标签,其中VLAN ID与接口的VLAN匹配。数据帧被打上标签后,格式转为802.1Q。
- 交换机根据标签中的VLAN检查数据帧的目的MAC地址。
- 数据帧在传送至PC前,VLAN标签会被剥离,还原为标准以太网帧格式。
三、802.1Q标签:帧格式与作用
802.1Q标准定义了在源MAC地址和Type字段之间携带VLAN标签的帧格式。然而,这种格式通常不被计算机直接识别。
四、VLAN工作原理
交换机端口类型
Access
- 描述: 通常连接PC或路由器。
- 特点: 必须与一个VLAN关联,接收的帧会加上该端口VLAN的标签,发送的帧会剥离标签。
Trunk
- 描述: 通常连接交换机。
- 特点: 可以传输多个VLAN的数据,保留VLAN标签,除默认VLAN外。
Hybrid
- 描述: 既可连接PC/路由器,也可连接交换机。
- 特点: 允许多个VLAN数据传输,可以配置哪些VLAN标签保留或剥离。
PVID(Port VLAN ID)
PVID是端口缺省VLAN的标识。对于不同类型的端口:
- Access端口: 其PVID等于所属的VLAN ID,用于标识从该端口接收到的未打标签帧应该加入的VLAN。未打标签的帧会被打上PVID所对应的VLAN标签,以便与该端口所属的VLAN进行匹配。
- Trunk端口: Trunk端口需要手动配置PVID,因为它能够接收多个VLAN的数据。PVID设置的是Trunk端口接收到的未打标签帧所应加入的VLAN。这些帧会被打上PVID所对应的VLAN标签,以便在Trunk上传输。
五、VLAN划分方式及优先级
不同的VLAN划分方式可以根据不同的需求来选择。在不同方式之间存在优先级,即当多个方式同时生效时,优先级高的会生效。
- 基于端口的VLAN: 端口固定属于某个VLAN。适用于需要为每个端口分配独立的VLAN的情况。
- 基于MAC地址的VLAN: 将MAC地址与VLAN绑定,不论连接在哪个端口,设备所在的VLAN都不变。适用于需要根据设备而不是端口来确定VLAN的情况。
- 基于协议的VLAN: 通过三层协议将报文绑定到VLAN,相同协议的报文不论从哪个端口接收,都归属于同一VLAN。适用于需要根据协议类型来划分VLAN的情况。
- 基于IP子网的VLAN: 将IP网段绑定到VLAN,同一IP子网的设备无论连接在哪个端口,都归属于同一VLAN。适用于需要根据设备的IP地址来划分VLAN的情况。
VLAN归属优先级:
当不同方式同时适用于某个端口时,VLAN的归属优先级如下:
MAC地址VLAN > IP子网VLAN > 协议VLAN > 端口VLAN。
六、常用的VLAN配置命令
在H3C交换机中,常用的VLAN配置命令如下:
vlan 'vlan id' #创建VLAN
[h3c-vlanXX] name 'text' #为VLAN命名
[h3c-vlanXX] port 'port id' #将端口加入VLAN
[h3c-GigabitEthernetX/X/X] port link-type 'access/trunk/hybrid' #配置端口类型
[h3c-GigabitEthernetX/X/X] port trunk permit vlan 'vlan-id-list/all' #配置Trunk端口允许的VLAN
[h3c-GigabitEthernetX/X/X] port trunk pvid 'vlan id' #配置Trunk端口的PVID
display vlan 'vlan id' #查看VLAN信息
display vlan brief #查看VLAN摘要信息
display port trunk #查看Trunk端口信息
[h3c-GigabitEthernetX/X/X] undo port link-type #还原默认端口类型
如有不详或错误,敬请指出。
相关文章:

Vlan和Trunk
文章目录 一、VLAN的定义与背景1. 传统以太网的问题(广播域)2. 用VLAN隔离广播域3. VLAN的优点与应用 二、VLAN的转发过程举例三、802.1Q标签:帧格式与作用四、VLAN工作原理交换机端口类型AccessTrunkHybrid PVID(Port VLAN ID&am…...

java 批量下载将多个文件(minio中存储)压缩成一个zip包
我的需求是将minio中存储的文件按照查询条件查询出来统一压成一个zip包然后下载下来。 思路:针对这个需求,其实可以有多个思路,不过也大同小异,一般都是后端返回流文件前端再处理下载,也有少数是压缩成zip包之后直接给…...

nnUNet v2数据准备及格式转换 (二)
如果你曾经使用过nnUNet V1,那你一定明白数据集的命名是有严格要求的,必须按照特定的格式来进行命名才能正常使用。 这一节的学习需要有数据,如果你有自己的数据,可以拿自己的数据来实验,如果没有,可以用十…...

ant-vue1.78版监听a-modal遮罩层的滚动事件
监听a-modal遮罩层的滚动事件 我们开发过程中经常有遇到监听页面滚动的事件需求,去做一些下拉加载或者是下拉分页的需求,我们直接在vue的生命周期中去绑定事件监听非常的方便,但如果是弹框的遮罩层的滚动监听呢?页面的监听完全是…...

MATLAB中residue函数用法
目录 语法 说明 示例 求解具有实根的部分分式展开式 展开具有复数根和同次分子及分母的分式 展开分子次数高于分母次数的分式 residue函数的功能是部分分式展开(部分分式分解)。 语法 [r,p,k] residue(b,a) [b,a] residue(r,p,k) 说明 [r,p…...

攻防世界-Caesar
原题 解题思路 没出现什么特殊字符,可能是个移位密码。凯撒密码加密解密。偏移12位就行。...
嵌入式开发-lin总线介绍 一.概述
1.1lin总线定义和历史 LIN总线(Local Interconnect Network)是一种基于UART/SCI(Universal Asynchronous Receiver-Transmitter/Serial Communication Interface)的低成本串行通信协议。它主要用于汽车、家电、办公设备等多种领域…...

羊城杯-2023-Crypto
文章目录 Danger_RSA题目描述:题目分析: Easy_3L题目描述:题目分析: XOR贯穿始终题目描述:题目分析: MCeorpkpleer题目描述:题目分析: SigninCrypto题目描述:题目分析&am…...

RabbitMQ快速上手及讲解
前言:在介绍RabbitMQ之前,我们先来看下面一个场景: 1.1.1.1 异步处理 场景说明: 用户注册后,需要发注册邮件和注册短信,传统的做法有两种 1.串行的方式 (1)串行方式:将注册信息写入数据库后&a…...

使用多线程std::thread发挥多核计算优势(解答)
使用多线程std::thread发挥多核计算优势(题目) 单核无能为力 如果我们的电脑只有一个核,那么我们没有什么更好的办法可以让我们的程序更快。 因为这个作业限制了你修改算法函数。你唯一能做的就是利用你电脑的多核。 使用多线程 由于我们…...

MySQL分页查询详解:优化大数据集的LIMIT和OFFSET
最近在工作中,我们遇到了一个需求,甲方要求直接从数据库导出一个业务模块中所有使用中的工单信息。为了实现这一目标,我编写了一条SQL查询语句,并请求DBA协助导出数据。尽管工单数量并不多,只有3000多条,但…...
解构赋值、函数默认值
暂时性死区,TDZ(Temporal Dead Zone) var x 1 {let x x//此处声明了x,但是没有对x赋值,相当于在赋值之前引用x,所以会造成报错console.log(x)//报错x is not defined,暂时性死区,…...
【已解决】Mybatis 实现 Group By 动态分组查询
🎉工作中遇到这样一个需求场景:实现一个统计查询,要求可以根据用户在前端界面筛选的字段进行动态地分组统计。也就是说,后端在实现分组查询的时候,Group By 的字段是不确定的,可能是一个字段、多个字段或者…...

Android修改默认gradle路径
Android Studio每次新建项目,都会默认在C盘生成并下载gradle相关文件,由于C盘空间有限,没多久C盘就飘红了,于是就需要把gradle相关文件转移到其他盘 1、到C盘找到gradle文件 具体路径一般是:C:\Users\用户\ .gradle …...

原生JS+canvas实现炫酷背景
原生JScanvas实现炫酷背景 可以在需要的背景页使用 <!doctype html> <html> <head> <meta charset"utf-8"> <title>HTML5 Canvas矩阵粒子波浪背景动画特效</title> <style> html,body { height:100%; } body { …...

Linux学习之NAS服务器搭建
NAS是Network Attached Storage的缩写,也就是网络附属存储。可以使用自己已经不怎么使用的笔记本搭建一台NAS服务器。 fdisk -l可以看一下各个磁盘的状态。 可以看到有sda、sdb、sdc和sdd等四块硬盘。 lvs、vgs和pvs结合起来看,sdb和sdc没有被使用。 …...

分享码云上8个宝藏又有价值的开源图片编辑器
如果你需要高效地处理图片,那么这8款实用工具是可以尝试的! 它们能够进行一键抠图、放大、拼接、转矢量图、图标自动生成以及等操作,让你的工作效率飞升! 在Gitee这个最有价值的开源项目计划是Gitee综合评定出的优秀开源项目的展示…...

TCP Header都有啥?
分析&回答 源端口号(Source Port) :16位,标识主机上发起传送的应用程序; 目的端口(Destonation Port) :16位,标识主机上传送要到达的应用程序。 源端,目…...

无涯教程-Android - AutoCompleteTextView函数
AutoCompleteTextView是一个类似于EditText的视图,只是它在用户键入时自动显示补充数据。 AutoCompleteTextView - 属性 以下是与AutoCompleteTextView控件相关的重要属性。您可以查看Android官方文档以获取属性的完整列表以及可以在运行时更改这些属性的相关方法。…...
【Docker】 07-安装ElasticSearch、Kibana
安装ElasticSearch 1、拉取镜像 docker pull elasticsearch:6.4.2 2、运行 docker run -p 9200:9200 -p 9300:9300 --name es -d elasticsearch:6.4.2 启动会报错,按照下面流程修改 3、在宿主机中,修改配置sysctl.conf vim /etc/sysctl.conf 加入如下配…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...