VLAN原理与配置
AUTHOR :闫小雨
DATE:2024-04-28
目录
VLAN的三种端口类型
VLAN原理
什么是VLAN
为什么使用VLAN
VLAN的基本原理
VLAN标签
VLAN标签各字段含义如下:
VLAN的划分方式
VLAN的划分包括如下5种方法:
VLAN的接口链路类型
创建VLAN
推荐文档
拓展知识
VLAN的三种端口类型
Access | 接入链路类型(一般使用:交换机与PC) |
Trunk | 干道链路类型(一般使用:交换机与交换机) |
Hybrid | 默认链路类型( 既可以实现Access接口的功能,也可以实现Trunk接口的功能) |
VLAN原理
什么是VLAN
VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的局域网在逻辑上划分成多个广播域的技术。通过在交换机上配置VLAN,可以实现在同一个VLAN内的用户可以进行二层互访,而不同VLAN间的用户被二层隔离。这样既能够隔离广播域,又能够提升网络的安全性。
为什么使用VLAN
以太网是一种基于CSMA(载波监听)/CD(冲突)的数据网络通信技术,其特征是共享通信介质。随着网络中计算机的数量越来越多,会导致安全隐患、面临冲突严重、广播泛滥、性能显著下降甚至造成网络不可用等各种问题。
VLAN的基本原理
交换机内部处理的数据帧都带有VLAN标签。而交换机连接的部分设备(如用户主机、服务器)只会收发不带VLAN tag的传统以太网数据帧。因此,要与这些设备交互,就需要交换机的接口能够识别传统以太网数据帧,并在收发时给帧添加、剥除VLAN标签。添加什么VLAN标签,由接口上的缺省VLAN(Port Default VLAN ID,PVID)决定。
VLAN标签
Switch1与Switch 2同属一个企业,该企业统一规划了网络中的VLAN。其中VLAN10用于A部门,VLAN20用于B部门。A、B部门的员工在Switch1和Switch2上都有接入。
PC1发出的数据经过Switch1和Switch2之间的链路到达了Switch2。如果不加处理,后者无法判断该数据所属的VLAN,也不知道应该将这个数据输出到本地哪个VLAN中。Switch1和Switch2之间的链路要承载多个VLAN的数据,需要一种基于VLAN的数据”标记”手段,以便对不同VLAN的数据帧进行区分
要使交换机能够分辨不同VLAN的报文,需要在报文中添加标识VLAN信息的字段。IEEE 802.1Q协议规定,在以太网数据帧的目的MAC地址和源MAC地址字段之后、协议类型字段之前加入4个字节的VLAN标签(又称VLAN Tag,简称Tag),用以标识VLAN信息。
VLAN标签各字段含义如下:
- TPID:表示数据帧类型,取值为0x8100时表示IEEE 802.1Q的VLAN数据帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。
- PRI:表示数据帧的优先级,用于QoS。
- CFI:在以太网中,CFI的值为0。
- VID:表示该数据帧所属VLAN的编号。VLAN ID取值范围是0~4095。
VLAN的划分方式
计算机发出的数据帧不带任何标签。对已支持VLAN特性的交换机来说,当计算机发出的Untagged帧一旦进入交换机后,交换机必须通过某种划分原则把这个帧划分到某个特定的VLAN中去。
VLAN的划分包括如下5种方法:
- 基于接口划分:根据交换机的接口来划分VLAN。
- 基于MAC地址划分:根据数据帧的源MAC地址来划分VLAN。
- 基于IP子网划分:根据数据帧中的源IP地址和子网掩码来划分VLAN。
- 基于协议划分:根据数据帧所属的协议(族)类型及封装格式来划分VLAN。
- 基于策略划分:根据配置的策略划分VLAN,能实现多种组合的划分方式,包括接口、MAC地址、IP地址等。
划分方式 | 原理 | 优缺点 | 适用场景 |
于接口 | 根据交换机的接口来划分VLAN。网络管理员预先给交换机的每个接口配置不同的PVID,当一个数据帧进入交换机时,如果没有带VLAN标签,该数据帧就会被打上接口指定PVID的Tag。然后数据帧将在指定PVID中传输。 | 优点:定义成员简单。缺点:成员移动需重新配置VLAN。 | 适用于任何大小但位置比较固定的网络。 |
基于接口 | 根据数据帧的源MAC地址来划分VLAN。网络管理员预先配置MAC地址和VLAN ID映射关系表,当交换机收到的是Untagged帧时,就依据该表给数据帧添加指定VLAN的Tag。然后数据帧将在指定VLAN中传输。 | 优点:当用户的物理位置发生改变,不需要重新配置VLAN,提高了用户的安全性和接入的灵活性。缺点:需要预先定义网络中所有成员。 | 适用于位置经常移动但网卡不经常更换的小型网络,如移动PC。 |
基于接口 | 根据数据帧中的源IP地址和子网掩码来划分VLAN。网络管理员预先配置IP地址和VLAN ID映射关系表,当交换机收到的是Untagged帧,就依据该表给数据帧添加指定VLAN的Tag。然后数据帧将在指定VLAN中传输。 | 优点:当用户的物理位置发生改变,不需要重新配置VLAN。可以减少网络通信量,可使广播域跨越多个交换机。缺点:网络中的用户分布需要有规律,且多个用户在同一个网段 | 适用于对安全需求不高、对移动性和简易管理需求较高的场景中。比如,一台PC配置多个IP地址分别访问不同网段的服务器,以及PC切换IP地址后要求VLAN自动切换等场景。 |
基于接口 | 根据数据帧所属的协议(族)类型及封装格式来划分VLAN。网络管理员预先配置以太网帧中的协议域和VLAN ID的映射关系表,如果收到的是Untagged帧,就依据该表给数据帧添加指定VLAN的Tag。然后数据帧将在指定VLAN中传输。 | 优点:将网络中提供的服务类型与VLAN相绑定,方便管理和维护。缺点:要对网络中所有的协议类型和VLAN ID的映射关系表进行初始配置。需要分析各种协议的格式并进行相应的转换,消耗交换机较多的资源,速度上稍具劣势。 | 适用于需要同时运行多协议的网络。 |
基于匹配策略 | 根据配置的策略划分VLAN,能实现多种组合的划分方式,包括接口、MAC地址、IP地址等。网络管理员预先配置策略,如果收到的是Untagged帧,且匹配配置的策略时,给数据帧添加指定VLAN的Tag。然后数据帧将在指定VLAN中传输。 | 优点:安全性高,VLAN划分后,用户不能改变IP地址或MAC地址。网络管理人员可根据自己的管理模式或需求选择划分方式。缺点:针对每一条策略都需要手工配置。 | 适用于需求比较复杂的环境。 |
VLAN的接口链路类型
交换机内部处理的数据帧一律都带有VLAN标签,而现网中交换机连接的设备有些只会收发Untagged帧,要与这些设备交互,就需要接口能够识别Untagged帧并在收发时给帧添加、剥除VLAN标签。同时,现网中属于同一个VLAN的用户可能会被连接在不同的交换机上,且跨越交换机的VLAN可能不止一个,如果需要用户间的互通,就需要交换机间的接口能够同时识别和发送多个VLAN的数据帧。根据接口连接对象以及对收发数据帧处理的不同,华为定义了4种接口的链路类型:Access、Trunk、Hybrid和QinQ,以适应不同的连接和组网。其中Access接口、Trunk接口和Hybrid接口
- Access接口
Access接口一般用于和不能识别Tag的用户终端(如用户主机、服务器等)相连,或者不需要区分不同VLAN成员时使用。Access接口大部分情况只能收发Untagged帧,且只能为Untagged帧添加唯一VLAN的Tag。交换机内部只处理Tagged帧,所以Access接口需要给收到的数据帧添加VLAN Tag,也就必须配置缺省VLAN。配置缺省VLAN后,该Access接口也就加入了该VLAN。当Access接口收到带有Tag的帧,并且帧中VID与PVID相同时,Access接口也能接收并处理该帧。为了防止用户私自更改接口用途,接入其他交换设备,可以配置接口丢弃入方向带Tag的报文。 - Trunk接口
Trunk接口一般用于连接交换机、路由器、AP以及可同时收发Tagged帧Untagged帧的语音终端。它可以允许多个VLAN的帧带Tag通过,但只允许一个VLAN的帧从该类接口上发出时不带Tag(即剥除Tag)。 - Hybrid接口
Hybrid接口既可以用于连接不能识别Tag的用户终端(如用户主机、服务器等)和网络设备(如Hub、傻瓜交换机),也可以用于连接交换机、路由器以及可同时收发Tagged帧和Untagged帧的语音终端、AP。它可以允许多个VLAN的帧带Tag通过,且允许从该类接口发出的帧根据需要配置某些VLAN的帧带Tag(即不剥除Tag)、某些VLAN的帧不带Tag(即剥除Tag)。
Access 只允许一个数据帧通过,通过不需要Tag标,通过时会加上Tag标。
Trunk 允许多个数据帧通过,通过需要Tag标,才会放行数据。
创建VLAN
操作笔记:
操作步骤:SW1→SW2→测试→设备内保存
SW1操作:
关闭通知
第一步:创建VLAN 10 20 30
[SW1]vlan batch 10 20 30
第二步:基于端口将PC加入对应的VLAN
interface Ethernet0/0/1
(进入端口)
port link-type access
(设置端口链路类型为access)
port default vlan 10
(将端口加入VLAN10)
interface Ethernet0/0/2
port link-type access
port default vlan 20
第三步:交换机之间做TRUNK
interface Ethernet0/0/3
(进入端口)
port link-type trunk
(设置端口链路类型为trunk)
port trunk allow-pass vlan 10 20
(此端口trunk干道允许VLAN 10 20通过)
SW2操作:
第一步:创建VLAN 10 20
[SW2]vlan batch 10 20
第二步:基于端口将PC加入对应的VLAN
interface GigabitEthernet0/0/1
port link-type access
port default vlan 10
interface GigabitEthernet0/0/2
port link-type access
port default vlan 20
第三步:交换机之间做TRUNK
interface GigabitEthernet0/0/3
port link-type trunk
port trunk allow-pass vlan 10 20
测试与保存
PC1
PC2
PC3
PC4
测试操作:使用PC互 PING
同VLAN互通,不同VLAN不同视为成功
最后操作,保存实验:SW2同理
< SW1>save
推荐文档
什么是VLAN?VLAN是如何工作的?
图文并茂讲VLAN,让你看一遍就理解VLAN
VLAN是什么?划分VLAN的作用及方法
拓展知识:
ECS----阿里云服务器
slb----网络均衡
实例----阿里云上的虚拟计算服务器
VPC(Virtual Private Cloud),即虚拟私有云,是公共云提供商将其公共云基础架构的特定部分隔离,以供私人使用的一种云计算服务。基于阿里云构建的一个隔离的网络环境,实现专有网络之间逻辑上的彻底隔离。
vCPU----虚拟中央处理单元(虚拟处理核)
云服务器vCPU和CPU是什么意思?CPU和vCPU有什么区别?
一台云服务器ECS实例的CPU选项由CPU物理核心数和每核线程数决定,CPU是中央处理器,一个CPU可以包含若干个物理核,通过超线程HT(Hyper-Threading)技术可以将一个物理核变成两个逻辑处理核。vCPU(virtual CPU)是ECS实例的虚拟处理核。
相关文章:

VLAN原理与配置
AUTHOR :闫小雨 DATE:2024-04-28 目录 VLAN的三种端口类型 VLAN原理 什么是VLAN 为什么使用VLAN VLAN的基本原理 VLAN标签 VLAN标签各字段含义如下: VLAN的划分方式 VLAN的划分包括如下5种方法: VLAN的接口链路类型 创建V…...
使用Spring Boot实现RESTful API
使用Spring Boot实现RESTful API 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨如何利用Spring Boot框架实现RESTful API,这是现…...
中英双语介绍美国常春藤联盟( Ivy League):八所高校
中文版 常春藤联盟简介 常春藤联盟(Ivy League)是美国东北部八所私立大学组成的高校联盟。虽然最初是因体育联盟而得名,但这些学校以其学术卓越、历史悠久、校友杰出而闻名于世。以下是对常春藤联盟的详细介绍,包括其由来、成员…...
【计算机网络】常见的网络通信协议
目录 1. TCP/IP协议 2. HTTP协议 3. FTP协议 4. SMTP协议 5. POP3协议 6. IMAP协议 7. DNS协议 8. DHCP协议 9. SSH协议 10. SSL/TLS协议 11. SNMP协议 12. NTP协议 13. VoIP协议 14. WebSocket协议 15. BGP协议 16. OSPF协议 17. RIP协议 18. ICMP协议 1…...
java实现http/https请求
在Java中,有多种方式可以实现HTTP或HTTPS请求。以下是使用第三方库Apache HttpClient来实现HTTP/HTTPS请求的工具类。 优势和特点 URIBuilder的优势在于它提供了一种简单而灵活的方式来构造URI,帮助开发人员避免手动拼接URI字符串,并处理参…...
NC204871 求和
链接 思路: 对于一个子树来说,子树的节点就包括在整颗树的dfs序中子树根节点出现的前后之间,所以我们先进行一次dfs,用b数组的0表示区间左端点,1表示区间右端点,同时用a数组来标记dfs序中的值。处理完dfs序…...
git克隆代码warning: could not find UI helper ‘git-credential-manager-ui‘
git克隆代码warning: could not find UI helper ‘git-credential-manager-ui’ 方案 git config --global --unset credential.helpergit-credential-manager configure...
Generator 是怎么样使用的以及各个阶段的变化如何
Generators 是 JavaScript 中一种特殊类型的函数,可以在执行过程中暂停,并且在需要时恢复执行。它们是通过 function* 关键字来定义的。Generator 函数返回的是一个迭代器对象,通过调用该迭代器对象的 next() 方法来控制函数的执行。在调用 n…...
一文了解Java中 Vector、ArrayList、LinkedList 之间的区别
目录 1. 数据结构 Vector 和 ArrayList LinkedList 2. 线程安全 Vector ArrayList 和 LinkedList 3. 性能 插入和删除操作 随机访问 4. 内存使用 ArrayList 和 Vector LinkedList 5. 迭代器行为 ArrayList 和 Vector LinkedList 6. 扩展策略 ArrayList Vecto…...

【论文复现|智能算法改进】基于自适应动态鲸鱼优化算法的路径规划研究
目录 1.算法原理2.改进点3.结果展示4.参考文献5.代码获取 1.算法原理 SCI二区|鲸鱼优化算法(WOA)原理及实现【附完整Matlab代码】 2.改进点 非线性收敛因子 WOA 主要通过控制系数向量 A 来决定鲸鱼是搜索猎物还是捕获猎物,即系数向量 A 可…...
【Win测试】窗口捕获的学习笔记
2 辨析笔记 2.1 mss:捕获屏幕可见区域,不适合捕获后台应用 Claude-3.5-Sonnet: MSS库可以用来捕获屏幕上可见的内容;然而,如果游戏窗口被其他窗口完全遮挡或最小化,MSS将无法捕获到被遮挡的游戏窗口内容,而…...

PostgreSQL的学习心得和知识总结(一百四十七)|深入理解PostgreSQL数据库之transaction chain的使用和实现
目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《PostgreSQL数据库内核分析》 2、参考书籍:《数据库事务处理的艺术:事务管理与并发控制》 3、PostgreSQL数据库仓库…...

宝塔linux网站迁移步骤
网站迁移到新服务器步骤 1.宝塔网站迁移,有个一键迁移工具,参考官网 宝塔一键迁移API版本 3.0版本教程 - Linux面板 - 宝塔面板论坛 (bt.cn)2 2.修改域名解析为新ip 3.如果网站没有域名,而是用ip访问的,则新宝塔数据库的wp_o…...
电路笔记(三极管器件): MOSFETIGBT
MOSFET vs IGBT MOSFET主要用于低电压和功率系统,而IGBT更适合高电压和功率系统。 1. MOSFET(金属氧化物半导体场效应晶体管) 优势: 高开关速度和响应速度,适合高频应用。(IGBT不适合高频应用,…...

Docker 镜像导出和导入
docker 镜像导出 # 导出 docker 镜像到本地文件 docker save -o [输出文件名.tar] [镜像名称[:标签]] # 示例 docker save -o minio.tar minio/minio:latest-o 或 --output:指定导出文件的路径和名称[镜像名称[:标签]]:导出镜像名称以及可选的标签 dock…...

QueryClientProvider is not defined
QueryClientProvider is not defined 运行一个svelte的项目,报错如上,前后查找解决不了,然后没办法, 本来是用yarn 安装的依赖,改用npm install,再次运行就成功了...

HTTPS是什么?原理是什么?用公钥加密为什么不能用公钥解密?
HTTPS(HyperText Transfer Protocol Secure)是HTTP的安全版本,它通过在HTTP协议之上加入SSL/TLS协议来实现数据加密传输,确保数据在客户端和服务器之间的传输过程中不会被窃取或篡改。 HTTPS 的工作原理 客户端发起HTTPS请求&…...
系统中非功能性需求的思考
概要 设计系统时不仅要考虑功能性需求,还要考虑一些非功能性需求,比如: 扩展性可靠性和冗余安全和隐私服务依赖SLA要求 下面对这5项需要考虑的事项做个简单的说明 1. 可扩展性 数据量增长如何扩展? 流量增长如何扩展…...
力扣第215题“数组中的第K个最大元素”
在本篇文章中,我们将详细解读力扣第215题“数组中的第K个最大元素”。通过学习本篇文章,读者将掌握如何使用快速选择算法和堆排序来解决这一问题,并了解相关的复杂度分析和模拟面试问答。每种方法都将配以详细的解释,以便于理解。…...
java.util.function实现原理和Java使用场景【Function、Predicate集合转换过滤,BiConsumer事件处理】
简介 java.util.function 是 Java 8 引入的一个功能包,它包含了多种函数式接口的定义,使得在 Java 中进行函数式编程变得更为方便。下面我将分别介绍 java.util.function 的作用、实现原理、常用 Java 使用场景以及代码示例。 作用 java.util.function 的主要作用是为 Jav…...
若依添加添加监听容器配置(删除键,键过期)
1、配置Redis的键触发事件 # 基础配置 bind 0.0.0.0 # 允许所有IP连接 protected-mode no # 关闭保护模式(生产环境建议结合密码使用) port 6379 # 默认端口 daemonize no …...
二元函数可微 切平面逼近 线性函数逼近
二元函数 f ( x , y ) f(x, y) f(x,y) 在某点可微 的含义,可以从几何直观、严格数学定义、与一阶偏导数的关系三个层面来理解: 🔹1. 几何直观上的含义(最易理解) 二元函数 f ( x , y ) f(x, y) f(x,y) 在点 ( x 0 …...

leetcode刷题日记——1.组合总和
解答: class Solution { public:void dfs(vector<int>& candidates, int target, vector<vector<int>>& ans, vector<int>& combine, int idx) {if(idxcandidates.size()){//遍历完的边界return;}if(target0){//找完了能组成和…...
Mysql-定时删除数据库中的验证码
Moudle 1 使用调度器定时删除事件 数据库实现验证码自动删除的解决方案 -- 删除旧事件(如果存在) DROP EVENT IF EXISTS delete_expired_captchas;-- 创建新事件(每分钟执行一次) CREATE EVENT delete_expired_captchas ON SCHE…...
动静态库的使用(Linux)
1.库 通俗来说,库就是现有的,可复用的代码,例如:在C/C语言编译时,就需要依赖相关的C/C标准库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。通常我们可以在windows下看到一些后…...
PyTorch 中cumprod函数计算张量沿指定维度的累积乘积详解和代码示例
torch.cumprod 是 PyTorch 中用于 计算张量沿指定维度的累积乘积(cumulative product) 的函数。 1、函数原型 torch.cumprod(input, dim, *, dtypeNone, outNone) → Tensor参数说明: 参数说明input输入张量dim累积乘积的维度dtype可选&…...

如何用AI高效运营1000+Tiktok矩阵账号
在当今数字化的时代,Tiktok 矩阵账号运营成为了众多企业和个人追求流量与变现的重要手段。然而,面对众多的账号管理,如何高效运营成为了关键。此时,AI 工具的出现为我们提供了强有力的支持。 一、Tiktok 矩阵账号的重要性 Tiktok…...
LinkedList、Vector、Set
LinkedList 基本概念 LinkedList 是一个双向链表的实现类,它实现了 List、Deque、Queue 和 Cloneable 接口,底层使用双向链表结构,适合频繁插入和删除操作。 主要特点 有序,可重复。 查询速度较慢,插入/删除速度较…...

echarts使用graph、lines实现拓扑,可以拖动增加effect效果
options.js // import React from react // import * as echarts from echartsimport ./index.lessexport const useEchartsOptionFun ({ nodeDataList, getNodeLinksDataList, getLinesCoordsFun }) > {const option {title: {text: 拓扑关系图,top: top,left: center,}…...

探索C++标准模板库(STL):String接口的底层实现(下篇)
前引:在C的面向对象编程中,对象模型是理解语言行为的核心。无论是类的成员函数如何访问数据,还是资源管理如何自动化,其底层机制均围绕两个关键概念展开:this指针与六大默认成员函数。它们如同对象的“隐形守护者”&am…...