[计算机网络] 虚拟局域网
虚拟局域网
VLAN(Virtual Local Area Network,虚拟局域网)是将一个物理的局域网在逻辑上划分成多个广播域的技术。
通过在交换机上配置VLAN,可以实现在同一个VLAN 内的用户可以进行二层互访,而不同VLAN 间的用户被二层隔离。这样既能够隔离广播域,又能够提升网络的安全性。
为什么需要VLAN技术
VLAN技术解决了在传统以太网中冲突严重、广播泛滥以及安全性无法保障的问题。
共享式网络
随着主机数量的增加,共享网络中的冲突会越来越严重,交换网络中的广播也会越来越多。
早期的局域网LAN 技术是基于总线型结构的,它存在以下主要问题:
- 若某时刻有多个节点同时试图发送消息,那么它们将产生冲突。
- 从任意节点发出的消息都会被发送到其他节点,形成广播。
- 所有主机共享一条传输通道,无法控制网络中的信息安全。
这种网络构成了一个冲突域,网络中计算机数量越多,冲突越严重,网络效率越低。同时,该网络也是一个广播域,当网络中发送信息的计算机数量变多时,广播流量将会耗费大量带宽。因此,传统局域网不仅面临冲突域太大和广播域太大两大难题,而且无法保障传输信息的安全。
交换式网络
为了扩展传统LAN,以接入更多计算机,同时避免冲突的恶化,出现了网桥和二层交换机,它们能有效隔离冲突域。网桥和交换机采用交换方式将来自入端口的信息转发到出端口上,克服了共享网络中的冲突问题。
但是,采用交换机进行组网时,广播域和信息安全问题依旧存在。
为限制广播域的范围,减少广播流量,需要在没有二层互访需求的主机之间进行隔离。路由器是基于三层IP 地址信息来选择路由和转发数据的,其连接两个网段时可以有效抑制广播报文的转发,但成本较高。因此,人们设想在物理局域网上构建多个逻辑局域网,即VLAN。
VLAN技术
VLAN 技术(隔离广播域)可以将一个物理局域网在逻辑上划分成多个广播域,也就是多个VLAN。VLAN 技术部署在数据链路层,用于隔离二层流量。
同一个VLAN 内的主机共享同一个广播域,它们之间可以直接进行二层通信。而VLAN 间的主机属于不同的广播域,不能直接实现二层互通。这样,广播报文就被限制在各个相应的VLAN 内,同时也提高了网络安全性。
VLAN帧格式
通过Tag(VLAN 标签)区分不同VLAN。Tag 是一种区分不同VLAN 接口的标识。
VLAN 标签长4 个字节,直接添加在以太网帧头中,IEEE 802.1Q 文档对VLAN 标签作出了说明。
VLAN 字段:
字段 | 长度 | 说明 |
---|---|---|
TPID Tag Protocol Identifier | 2 B | 0x8100 IEEE 定义的新类型,表明这是一个携带802.1Q 标签的帧。 如果不支持802.1Q 的设备收到这样的帧,会将其丢弃。 |
PRI Priority | 3 b | 表示帧的优先级,取值范围为0~7,值越大优先级越高。 当交换机阻塞时,优先发送优先级高的数据帧。 |
CFI Canonical Format Indicator | 1 b | CFI 表示MAC 地址是否是经典格式。 CFI 为0 说明是经典格式,CFI 为1 表示为非经典格式。 用于区分 以太网帧 FDDI(Fiber Distributed Digital Interface)帧 * 令牌环网帧。 在以太网中,CFI的值为0。 |
VLAN ID VLAN Identifier | 12 b | 在X7 系列交换机中, 可配置的VLAN ID 取值范围为0~4095, 但是0 和4095 在协议中规定为保留的VLAN ID, 不能给用户使用。 |
在现有的交换网络环境中,以太网的帧有两种格式:
- 没有加上VLAN 标记的标准以太网帧(untagged frame);
- 有VLAN 标记的以太网帧(tagged frame)。
链路类型
VLAN 链路分为两种类型:Access 链路和Trunk 链路。
- 接入链路(Access Link):连接用户主机和交换机的链路称为接入链路。
- 干道链路(Trunk Link):连接交换机和交换机的链路称为干道链路。干道链路上通过的帧一般为带Tag 的VLAN 帧。
PVID
PVID (Port VLAN ID)表示端口在缺省情况下所属的VLAN。缺省情况下,交换机每个端口的PVID 都是1。
交换机从对端设备收到的帧有可能是Untagged 的数据帧,但所有以太网帧在交换机中都是以Tagged 的形式来被处理和转发的,因此交换机必须给端口收到的Untagged 数据帧添加上Tag(如果交换机收到的帧不带Tag,它就要给它加上Tag)。为了实现此目的,必须为交换机配置端口的缺省VLAN。当该端口收到Untagged 数据帧时,交换机将给它加上该缺省VLAN 的VLAN Tag。
Access端口
Access 端口在收到数据后会添加VLAN Tag,VLAN ID 和端口的PVID 相同。(进交换机加标签,出交换机剥标签)Access 端口是交换机上用来连接用户主机的端口,它只能连接接入链路,并且只能允许唯一的VLAN ID 通过本端口。
Access 端口收发数据帧的规则如下:(如果标签相同就让过,不一样就不让过)
- 如果该端口收到对端设备发送的帧是untagged(不带VLAN 标签),交换机将强制加上该端口的PVID。如果该端口收到对端设备发送的帧是tagged(带VLAN标签),交换机会检查该标签内的VLAN ID。当VLAN ID 与该端口的PVID 相同时,接收该报文。当VLAN ID 与该端口的PVID 不同时,丢弃该报文。
- Access 端口发送数据帧时,总是先剥离帧的Tag,然后再发送。Access 端口发往对端设备的以太网帧永远是不带标签的帧。
Trunk链路
Trunk 端口允许多个VLAN 的帧(带Tag 标记)通过。
当Trunk 端口收到帧时,如果该帧不包含Tag,将添加上端口的PVID;如果该帧包含Tag,则不改变。
当Trunk 端口发送帧时,该帧的VLAN ID 在Trunk 的允许发送列表中:
- 若与端口的PVID 相同时,则剥离Tag 发送;
- 若与端口的PVID不同时,则直接发送。
Trunk 端口收发数据帧的规则如下:(允许所有带Tag的报文通过)
- 当接收到对端设备发送的不带Tag 的数据帧时,会添加该端口的PVID,如果PVID 在允许通过的VLAN ID 列表中,则接收该报文,否则丢弃该报文。当接收到对端设备发送的带Tag 的数据帧时,检查VLAN ID 是否在允许通过的VLAN ID 列表中。如果VLAN ID 在接口允许通过的VLAN ID 列表中,则接收该报文。否则丢弃该报文。
- 端口发送数据帧时,当VLAN ID 与端口的PVID 相同,且是该端口允许通过的VLAN ID 时,去掉Tag,发送该报文。当VLAN ID 与端口的PVID 不同,且是该端口允许通过的VLAN ID 时,保持原有Tag,发送该报文。
Hybrid端口(华为设备混杂端口)
Hybrid 端口既可以连接主机,又可以连接交换机。
Hybrid 端口可以以Tagged 或Untagged 方式加入VLAN。
Hybrid 端口是交换机上既可以连接用户主机,又可以连接其他交换机的端口。Hybrid 端口既可以连接接入链路又可以连接干道链路。Hybrid 端口允许多个VLAN 的帧通过,并可以在出端口方向将某些VLAN 帧的Tag 剥掉。华为设备默认的端口类型是Hybrid。
Hybrid 端口收发数据帧的规则如下:
- 当接收到对端设备发送的不带Tag 的数据帧时,会添加该端口的PVID,如果PVID 在允许通过的VLAN ID 列表中,则接收该报文,否则丢弃该报文。
- 当接收到对端设备发送的带Tag 的数据帧时,检查VLAN ID 是否在允许通过的VLAN ID 列表中。如果VLAN ID 在接口允许通过的VLAN ID 列表中,则接收该报文,否则丢弃该报文。
Hybrid 端口发送数据帧时,将检查该接口是否允许该VLAN 数据帧通过。如果允许通过,则可以通过命令配置发送时是否携带Tag。
配置port hybrid tagged vlan vlan-id
命令后,接口发送该vlan-id
的数据帧时,不剥离帧中的VLAN Tag,直接发送。该命令一般配置在连接交换机的端口上。
配置port hybrid untagged vlan vlan-id
命令后,接口在发送vlan-id
的数据帧时,会将帧中的VLAN Tag 剥离掉再发送出去。该命令一般配置在连接主机的端口上。
VLAN划分方法
VLAN 的划分包括如下5 种方法:
- 基于端口划分(最常见):根据交换机的端口编号来划分VLAN 。通过为交换机的每个端口配置不同的PVID ,来将不同端口划分到VLAN 中。初始情况下,华为交换机的端口处于VLAN1 中。此方法配置简单,但是当主机移动位置时,需要重新配置VLAN 。
- 基于MAC 地址划分:根据主机网卡的MAC 地址划分VLAN 。此划分方法需要网络管理员提前配置网络中的主机MAC 地址和VLAN ID 的映射关系。如果交换机收到不带标签的数据帧,会查找之前配置的MAC 地址和VLAN 映射表,根据数据帧中携带的MAC地址来添加相应的VLAN 标签。在使用此方法配置VLAN 时,即使主机移动位置也不需要重新配置VLAN。
- 基于IP 子网划分:交换机在收到不带标签的数据帧时,根据报文携带的IP 地址给数据帧添加VLAN 标签。
- 基于协议划分:根据数据帧的协议类型(或协议族类型)、封装格式来分配VLAN ID 。网络管理员需要首先配置协议类型和VLAN ID 之间的映射关系。
- 基于策略划分(比较麻烦):使用几个条件的组合来分配VLAN 标签。这些条件包括IP 子网、端口和IP 地址等。只有当所有条件都匹配时,交换机才为数据帧添加VLAN 标签。另外,针对每一条策略都是需要手工配置的。
VLAN配置
VLAN划分
[SWA]vlan 10
[SWA-vlan10]quit
[SWA]vlan batch 2 to 3
[SWA]display vlan
注意事项在交换机上划分VLAN 时,需要首先创建VLAN。在交换机上执行vlan <vlan-id>
命令,创建VLAN。如本例所示,执行vlan 10 命令后,就创建了VLAN 10,并进入了VLAN 10 视图。VLAN ID 的取值范围是1 到4094 。如需创建多个VLAN,可以在交换机上执行vlan batch { vlan-id1 [ to vlan-id2 ] }
命令,以创建多个连续的VLAN。也可以执行vlan batch { vlan-id1 vlan-id2 }
命令,创建多个不连续的VLAN,VLAN 号之间需要有空格。
创建VLAN 后,可以执行display vlan
命令验证配置结果。如果不指定任何参数,则该命令将显示所有VLAN 的简要信息。
执行display vlan [ vlan-id [ verbose ] ]
命令,可以查看指定VLAN 的详细信息,包括VLAN ID 、类型、描述、VLAN 的状态、VLAN 中的端口、以及VLAN 中端口的模式等。
执行display vlan vlan-id statistics
命令,可以查看指定VLAN 中的流量统计信息。
执行display vlan summary
命令,可以查看系统中所有VLAN 的汇总信息。
配置Trunk端口
配置Trunk 时,应先使用port link-type trunk
命令修改端口的类型为Trunk ,然后再配置Trunk 端口允许哪些VLAN 的数据帧通过。执行port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] } | all }
命令,可以配置端口允许的VLAN,all 表示允许所有VLAN 的数据帧通过。
执行port trunk pvid vlan vlan-id
命令,可以修改Trunk 端口的PVID 。修改Trunk 端口的PVID 之后,需要注意:缺省VLAN 不一定是端口允许通过的VLAN 。只有使用命令port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] } | all }
允许缺省VLAN 数据通过,才能转发缺省VLAN 的数据帧。交换机的所有端口默认允许VLAN1 的数据通过。
配置Access端口
华为X7 系列交换机上,默认的端口类型是hybrid 。
配置端口类型的命令是port link-type <type>
,type 可以配置为Access ,Trunk 或Hybrid 。需要注意的是,如果查看端口配置时没有发现端口类型信息,说明端口使用了默认的hybrid 端口链路类型。当修改端口类型时,必须先恢复端口的默认VLAN 配置,使端口属于缺省的VLAN 1 。
添加端口到VLAN
可以使用两种方法把端口加入到VLAN:
- 第一种方法是进入到VLAN 视图,执行
port <interface>
命令,把端口加入VLAN 。 - 第二种方法是进入到接口视图(推荐),执行
port default vlan <vlan-id>
命令,把端口加入VLAN 。vlan-id 是指端口要加入的VLAN。
配置Hybrid端口
port link-type hybrid
命令的作用是将端口的类型配置为Hybrid 。默认情况下,X7 系列交换机的端口类型是Hybrid 。因此,只有在把Access 口或Trunk 口配置成Hybrid 时,才需要执行此命令。
port hybrid tagged vlan{ { vlan-id1 [ to vlan-id2 ] } | all }
命令用来配置允许哪些VLAN 的数据帧以Tagged 方式通过该端口。
port hybrid untagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }
命令用来配置允许哪些VLAN 的数据帧以Untagged 方式通过该端口。
gged vlan{ { vlan-id1 [ to vlan-id2 ] } | all }`命令用来配置允许哪些VLAN 的数据帧以Tagged 方式通过该端口。
port hybrid untagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }
命令用来配置允许哪些VLAN 的数据帧以Untagged 方式通过该端口。
相关文章:

[计算机网络] 虚拟局域网
虚拟局域网 VLAN(Virtual Local Area Network,虚拟局域网)是将一个物理的局域网在逻辑上划分成多个广播域的技术。 通过在交换机上配置VLAN,可以实现在同一个VLAN 内的用户可以进行二层互访,而不同VLAN 间的用户被二…...

LabVIEW遇到无法控制国外设备时怎么办
当使用LabVIEW遇到无法控制国外产品的问题时,解决此类问题需要系统化的分析和处理方法。以下是详细的解决思路和具体办法,以及不同方法的分析和比较,包括寻求代理、国外技术支持、国内用过的人请教等内容。 1. 了解产品的通信接口和协议 思路…...

.hmallox勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
导言: 在当今数字化时代,勒索病毒已经成为网络安全的一大威胁,其中包括了最近出现的.hmallox勒索病毒。这类恶意软件不仅能够对计算机系统进行加密,还会要求用户支付赎金以换取解密密钥,给个人用户和企业带来了严重的…...

Redis发布、订阅模式(Pub/Sub)详解
Redis发布、订阅模式(PUB-SUB)详解 Redis的发布订阅(Pub/Sub)机制是一种消息通信模式,用于消息的广播。它允许多个客户端订阅(Subscribe)特定的频道(Channel),…...

Django-开发一个列表页面
需求 基于ListView,创建一个列表视图,用于展示"BookInfo"表的信息要求提供分页提供对书名,作者,描述的查询功能 示例展示: 1. 数据模型 models.py class BookInfo(models.Model):titlemodels.CharField(verbose_name"书名",max_length100)authormode…...

flink 处理函数和流转换
目录 处理函数分类 概览介绍 KeydProcessFunction和ProcessFunction 定时器TimeService 窗口处理函数 多流转换 分流-侧输出流 合流 联合(Uniion) 连接(connect) 广播连接流(BroadcatConnectedStream…...

详细分析Springmvc中的@ModelAttribute基本知识(附Demo)
目录 前言1. 注解用法1.1 方法参数1.2 方法1.3 类 2. 注解场景2.1 表单参数2.2 AJAX请求2.3 文件上传 3. 实战4. 总结 前言 将请求参数绑定到模型对象上,或者在请求处理之前添加模型属性 可以在方法参数、方法或者类上使用 一般适用这几种场景: 表单…...
和利时SIS安全系统模块SGM210 SGM210-A02
和利时SIS安全系统模块SGM210 SGM210-A02 阀门定位器:(福克斯波罗, YTC,山武) PLC:(西门子,施耐德,ABB,AB,三菱,欧姆龙) 泵阀:(力士…...

浔川3样AI产品即将上线!——浔川总社部
浔川3样AI产品即将上线! 浔川AI翻译v3.0 即将上线! 浔川画板v5.1 即将上线! 浔川AI五子棋v1.4 即将上线! 整体通告详见:浔川AI五子棋(改进(完整)版1.3)——浔川python社…...
小阿轩yx-MySQL索引、事务
小阿轩yx-MySQL索引、事务 MySQL 索引介绍 是一个排序的列表,存储着索引的值和包含这个值的数据所在行的物理地址数据很多时,索引可以大大加快查询的速度使用索引后可以不用扫描全表来定位某行的数据而是先通过索引表找到该行数据对应的物理地址然后访…...

搞定求职难题:工作岗位列表+简历制作工具 | 开源专题 No.75
SimplifyJobs/New-Grad-Positions Stars: 8.5k License: NOASSERTION 这个项目是一个用于分享和跟踪美国、加拿大或远程职位的软件工作机会列表。该项目的核心优势和关键特点如下: 自动更新新岗位信息便捷地提交问题进行贡献提供一键申请选项 BartoszJarocki/cv…...

JavaWeb——MySQL数据库:约束
目录 1. 约束 1.1 概念: 1.2 分类: 1.3 使用: 1.4 外键约束; 1.5 总结 数据库:数据库都有约束,数据库设计,多表查询,事物这四方面的知识; 我们先按这个顺序进行学习ÿ…...

JS(JavaScript)入门指南(DOM、事件处理、BOM、数据校验)
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 玉阶生白露,夜久侵罗袜。 却下水晶帘,玲珑望秋月。 ——《玉阶怨》 文章目录 一、DOM操作1. D…...

江协科技51单片机学习- p16 矩阵键盘
🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝…...

grpc学习golang版( 四、多服务示例)
系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 文章目录 一、前言二、定义proto文件三、编写server服务端四、编写Client客户端五、测试六、示例代码 一、前言 多服务,即一个rpc提供多个服务给外界调用…...
Linux安装jdk17
我们进入到cd /usr/lib/下然后创建一个jdk17的文件夹 mkdir jdk17 进入到jdk17目录下 下载jdk17包 上传到Linux 解压jar包 tar -zxvf jdk-17_linux-x64_bin.tar.gz压解完毕后 配置环境变量 vim/etc/profilei 修改 esc 退出 :wq保存 export JAVA_HOME/usr/lib/jdk17/jdk-1…...

Java家教系统小程序APP公众号h5源码
让学习更高效,更便捷 🌟 引言:家教新选择,小程序来助力 在快节奏的现代生活中,家长们越来越注重孩子的教育问题。然而,如何为孩子找到一位合适的家教老师,成为了许多家长头疼的问题。现在&…...
PHP入门
一、环境搭建 无脑: 小皮面板(phpstudy) - 让天下没有难配的服务器环境!phpStudy官网2019正式推出phpStudy V8.0版本PHP集成环境,支持Windows与Linux系统,支持WEB面板操作管理,一键网站开发环境搭建配置,…...

docker ce的使用介绍
docker docker17.03以后 docker ce,社区免费版,vscode的docker插件使用的该版本(默认windows只支持windows容器,linux支持linux容器)docker ee,企业版本 docker17.03以前 docker toolbox,基于…...

SpringCloud Alibaba Sentinel 流量控制之流控模式实践总结
官网文档:https://sentinelguard.io/zh-cn/docs/flow-control.html wiki地址:https://github.com/alibaba/Sentinel/wiki/%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6 本文版本:spring-cloud-starter-alibaba:2.2.0.RELEASE 如下图所…...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...

九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...