VLAN 划分案例详解

news2024/12/23 15:46:15

vlan 的应用在网络项目中是非常广泛的,基本上大部分的项目都需要划分 vlan,这里从基础的 vlan 的知识开始,了解 vlan 的划分原理。

为什么需要 vlan:

1、什么是 VLAN?

VLAN(Virtual LAN),翻译成中文是 “虚拟局域网”。LAN 可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN 所指的 LAN 特指使用路由器分割的网络 —— 也就是广播域。

简单来说,同一个 VLAN 中的用户间通信就和在一个局域网内一样,同一个 VLAN 中的广播只有 VLAN 中的 成员才能听到,而不会传输到其他的 VLAN 中去,从而控制不必要的广播风暴的产生。同时, 若没有路由,不同 VLAN 之间不能相互通信,从而提高了不同工作组之间的信息安全性。网络 管理员可以通过配置 VLAN 之间的路由来全面管理网络内部不同工作组之间的信息互访。

2、未分割 VLAN 时将会发生什么?

那么,为什么需要分割 VLAN (广播域)呢?那是因为,如果仅有一个广播域,有可能会影响到网络整体的传输性能。具体原因,请参看附图加深理解。
img

图中,是一个由 5 台二层交换机(交换机 1~5)连接了大量客户机构成的网络。假设这时,计算机 A 需要与计算机 B 通信。在基于以太网的通信中,必须在数据帧中指定目标 MAC 地址才能正常通信,因此计算机 A 必须先广播 “ARP 请求(ARP Request)信息”,来尝试获取计算机 B 的 MAC 地址。

交换机 1 收到广播帧(ARP 请求)后,会将它转发给除接收端口外的其他所有端口,也就是泛滥了。接着,交换机 2 收到广播帧后也会泛滥。交换机 3、4、5 也还会泛滥。最终 ARP 请求会被转发到同一网络中的所有客户机上,这也就是网络风暴。
img

我们分析下,这个计算 A 的 ARP 请求原本是为了获得计算机 B 的 MAC 地址而发出的。也就是说:只要计算机 B 能收到就万事大吉了。可是事实上,数据帧却传遍整个网络,导致所有的计算机都收到了它。如此一来,一方面广播信息消耗了网络整体的带宽,另一方面,收到广播信息的计算机还要消耗一部分 CPU 时间来对它进行处理。造成了网络带宽和 CPU 运算能力的大量无谓消耗,可能会造成网络瘫痪。

vlan 的原理

1、实现 VLAN 的机制

在理解了 “为什么需要 VLAN” 之后,接下来让我们来了解一下交换机是如何使用 VLAN 分割广播域的。
首先,在一台未设置任何 VLAN 的二层交换机上,任何广播帧都会被转发给除接收端口外的所有其他端口上泛滥。例如,计算机 A 发送广播信息后,会被转发给端口 2、3、4。
img

这时,如果在交换机上生成红、蓝两个 VLAN;
同时设置端口 1、2 属于红色 VLAN、端口 3、4 属于蓝色 VLAN。
再从 A 发出广播帧的话,交换机就只会把它转发给同属于一个 VLAN 的其他端口 —— 也就是同属于红色 VLAN 的端口 2,不会再转发给属于蓝色 VLAN 的端口。
同样,C 发送广播信息时,只会被转发给其他属于蓝色 VLAN 的端口,不会被转发给属于红色 VLAN 的端口。
img
就这样,VLAN 通过限制广播帧转发的范围分割了广播域。上图中为了便于说明,以红、蓝两色识别不同的 VLAN,在实际使用中则是用 “VLAN 的 ID” 来区分的。

VLAN 生成的逻辑上的交换机是互不相通的。因此,在交换机上设置 VLAN 后,如果未做其他处理,VLAN 间是无法通信的。

2、需要 VLAN 间通信时怎么办?

那么,当我们需要在不同的 VLAN 间通信时又该如何是好呢?
VLAN 是广播域。而通常两个广播域之间由路由器连接,广播域之间来往的数据包都是由路由器中继的。因此,VLAN 间的通信也需要路由器提供中继服务,这被称作 “VLAN 间路由”。
VLAN 间路由,可以使用普通的路由器,也可以使用三层交换机。大家可以记住不同 VLAN 间互相通信时需要用到路由功能。

2.1 静态 VALN

静态 VLAN 也叫做基于端口的 VLAN。从意思也能理解,它是固定不变的,就是明确指定交换机各端口属于哪个 VLAN 的设定方法。
img

基于端口的 vlan 这种方法,主要的优点就是定议 vlan 的成员很简单明了,思路清楚,直接针对交换机现有的端口设置 vlan,哪些端口属于同一个 vlan,很清楚的理解。

那么它的缺点呢?

由于需要一个个端口地指定,因此当网络中的计算机数目超过一定数字(比如数百台)后,设定操作就会变得烦杂无比。并且,计算机每次变更所连端口,都必须同时更改该端口所属 VLAN 的设定 —— 这显然静态 VLAN 不适合那些需要频繁改变拓补结构的网络和大型网络。

2.2 动态 VLAN

动态 VLAN 则是根据每个端口所连的计算机,随时改变端口所属的 VLAN。这就可以避免上述的更改设定之类的操作。动态 VLAN 可以大致分为 3 类:

● 基于 MAC 地址的 VLAN(MAC Based VLAN)

● 基于子网的 VLAN(Subnet Based VLAN)

● 基于用户的 VLAN(User Based VLAN)

①、基于 MAC 地址的 VLAN,就是通过查询并记录端口所连计算机上网卡的 MAC 地址来决定端口的所属。假定有一个计算机的 MAC 地址为 “A” 被交换机设定为属于 VLAN “10”,那么不论 MAC 地址为 “A” 这台计算机连在交换机哪个端口,该端口都会被划分到 VLAN10 中去。
img

例如:计算机连在端口 1 时,端口 1 属于 VLAN10;而计算机连在端口 2 时,则是端口 2 属于 VLAN10。

②、基于子网的 VLAN,则是通过所连计算机的 IP 地址,来决定端口所属 VLAN 的。不像基于 MAC 地址的 VLAN,即使计算机因为交换了网卡或是其他原因导致 MAC 地址改变,只要它的 IP 地址不变,就仍可以加入原先设定的 VLAN。
img

说白了,只要电脑 ip 地址不变,那么它的 vlan 就不变,很方便,计算机可以换交换机端口,也可以 MAC 地址了,都不影响。

**③、基于用户的 VLAN,则是根据交换机各端口所连的计算机上当前登录的用户,来决定该端口属于哪个 VLAN。**这里的用户识别信息,一般是计算机操作系统登录的用户,比如可以是 Windows 域中使用的用户名。这些用户名信息,属于 OSI 第四层以上的信息。

3、总结

综上所述,vlan 的设定手法有静态 VLAN 和动态 VLAN 两种,其中动态 VLAN 又可以继续细分成几个小类。
img

其中基于子网的 VLAN 和基于用户的 VLAN 有可能是网络设备厂商使用独有的协议实现的,不同厂商的设备之间互联有可能出现兼容性问题;因此在选择交换机时,一定要注意事先确认。

交换机之间的连接方式

那么,如果需要设置跨越多台交换机的 VLAN 时又如何呢?

1、方法 一

在规划企业级网络时,很有可能会遇到隶属于同一部门的用户分散在同一座建筑物中的不同楼层的情况,这时可能就需要考虑到如何跨越多台交换机设置 VLAN 的问题了。假设有如下图所示的网络,且需要将不同楼层的 A、C 和 B、D 设置为同一个 VLAN。

如下图:
img

这时最关键的就是 “交换机 1 和交换机 2 该如何连接才好呢?”
最简单的方法,自然是在交换机 1 和交换机 2 上各设一个红、蓝 VLAN 专用的接口并互联了。
img

但是,这个办法从扩展性和管理效率来看都不好。例如,在现有网络基础上再新建 VLAN 时,为了让这个 VLAN 能够互通,就需要在交换机间连接新的网线。建筑物楼层间的纵向布线是比较麻烦的,一般不能由基层管理人员随意进行。并且,VLAN 越多,楼层间(严格地说是交换机间)互联所需的端口也越来越多,交换机端口的利用效率低是对资源的一种浪费、也限制了网络的扩展。

2、方法 二

为了避免上面这种低效率的连接方式,人们想办法让交换机间互联的网线集中到一根上,这时使用的就是汇聚链接(Trunk Link)。

何谓汇聚链接?

汇聚链接(Trunk Link)指的是能够转发多个不同 VLAN 的通信的端口。
汇聚链路上流通的数据帧,都被附加了用于识别分属于哪个 VLAN 的特殊信息。
现在再让我们回过头来考虑一下刚才那个网络如果采用汇聚链路又会如何呢?用户只需要简单地将交换机间互联的端口设定为汇聚链接就可以了。这时使用的一根网线还是普通的 UTP 线,而不是什么其他的特殊布线。图例中是交换机间互联,因此需要用交叉线来连接。

接下来,让我们具体看看汇聚链接是如何实现跨越交换机间的 VLAN 的。
A 发送的数据帧从交换机 1 经过汇聚链路到达交换机 2 时,在数据帧上附加了表示属于红色 VLAN 的标记。
交换机 2 收到数据帧后,经过检查 VLAN 标识发现这个数据帧是属于红色 VLAN 的,因此去除标记后根据需要将复原的数据帧只转发给其他属于红色 VLAN 的端口。这时的转送,是指经过确认目标 MAC 地址并与 MAC 地址列表比对后只转发给目标 MAC 地址所连的端口。只有当数据帧是一个广播帧、多播帧或是目标不明的帧时,它才会被转发到所有属于红色 VLAN 的端口。
img

蓝色 VLAN 发送数据帧时的情形也与此相同。


via:

  • 网络 - 图文并茂讲 VLAN,让你看一遍就理解 VLAN - SegmentFault 思否 XCIE 闫辉 2022-05-13

    https://segmentfault.com/a/1190000041840490

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1933664.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【面试题】Redo log和Undo log

Redo log 介绍Redo log之前我们需要了解一下,mysql数据操作的流程: 上述就是数据操作的流程图,可以发现sql语句并不是直接操作的磁盘而是通过操作内存,然后进行内存到磁盘的一个同步。这里我们必须要了解一些区域: 缓…

推荐一款使用Java EE技术栈的企业应用定制化开发平台(带源码)

前言 在数字化转型的浪潮中,企业面临着多样化的信息系统建设需求。现有的软件系统往往存在定制化程度低、开发周期长、成-本高等问题。此外,随着企业规模的扩大和业务的复杂化,传统的软件系统难以满足灵活多变的业务需求。 为了解决这些痛点…

【前端7*】表格-表单2(弹窗在子组件)父子组件调用 vue element-ui

vue element-ui 中表单弹框的使用 写在最前面一、子组件 HelloWorld.vue1. 弹窗部分、将 visible 传值给父组件2.表单的 ruleForm 校验方法3.表单确认方法4. 提交确认方法:handleSummit5.表单渲染 二、父组件 HomeView.vue1.新增按钮、查看和编辑2.引用子组件弹窗3.…

【Linux网络】select{理解认识select/select与多线程多进程/认识select函数/使用select开发并发echo服务器}

文章目录 0.理解/认识回顾回调函数select/pollread与直接使用 read 的效率差异 1.认识selectselect/多线程(Multi-threading)/多进程(Multi-processing)select函数socket就绪条件select的特点总结 2.select下echo服务器封装套接字…

花开半夏,我决意仿一款答题小程序

不是清凉罢挥扇,自缘手倦歇些时。 ——杨万里(宋) 走过春的绚烂,路过初夏的清凉,我们迎来了炎炎夏日。蛙声阵阵,蝉鸣声声,稻花如白练,荷花别样红。 花开半夏,我决意仿一款…

C# 各版本语法新功能汇总

C# 8.0 以后 官网 C# 7.3 》》in C# 7.2 》》 命名参数、具名参数 》》》 条件 ref 表达式 C# 7.1 》》 default 运算符 default 在C#7.1中得到了改进,不再需要default(T)了 //变量赋值C#7.0 var s "字符串"; s default(s…

【常见开源库的二次开发】基于openssl的加密与解密——MD5算法源码解析(六)

一、MD5算法分析 : 1.1 关于MD5 “消息摘要”是指MD5(Message Digest Algorithm 5)算法。MD5是一种广泛使用的密码散列函数,它可以生成一个128位(16字节)的散列值。 RFC 1321: MD5由Ronald Rivest在1992…

某大型企业产品研发管理体系构建指南解决方案

获取完整PPT见下图 更多有关华为研发管理/IPD、MBSE、PLM、ERP、MES、数据治理、数字样机等方面免费解决方案、资料获取,请见下图

MySQL学习记录 —— 이십사 MySQL连接层和服务层

文章目录 1、整体架构2、连接层1、网络端口和连接管理线程2、客户端连接线程管理3、连接量管理 3、服务层1、服务管理和公共组件2、NoSQL接口与SQL接口以及Parser语法分析器3、优化器和缓存 4、SQL语句执行流程 1、整体架构 MySQL8.0服务器是由连接池、服务管理工具和公共组件…

BIOMOD2 物种分布模拟教程

原文链接:BIOMOD2 物种分布模拟教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247609373&idx5&sn492e7597314a5f9e358c35e4780b275f&chksmfa826dfacdf5e4ecf8ac06bdeba5469b31650bdbefbc8fb88b79c0f332714c453a4cc058d29f&token155…

Linux系统部署MySQL数据库

1.Linux插入光盘,使用df-h获取光盘信息,默认/dev/sr0文件为光盘文件 使用命令 mount -o ro /dev/sr0 /media进行手动挂载 mount -o ro /dev/sr0 /media 2.进入cd /etc/yum.repos.d目录 编辑配置yum库,编辑vim yum.repos [BaseOS] nameba…

【postgresql】pg_dump备份数据库

pg_dump 介绍 pg_dump 是一个用于备份 PostgreSQL 数据库的实用工具。它可以将数据库的内容导出为一个 SQL 脚本文件或其他格式的文件,以便在需要时进行恢复或迁移。 基本用法 pg_dump [选项] [数据库名] 命令选项 -h 或 --host:指定数据库服务器的主…

Python Linux环境(Centos8)安装minicoda3+jupyterlab

文章目录 安装miniconda安装python环境启动 最近服务器检查,我下面的服务器有漏洞,不得已重装了,正好记录下怎么从零到python写代码。 安装miniconda miniconda是anconda的精简版,就是管理python环境的得力助手。 # 创建一个名…

企业管理必备:学会寻找客户绝佳方法。

无论是日常沟通、工作交流,还是社交娱乐,微信都扮演着重要的角色。而在微信的使用过程中,添加好友是一项基本而重要的操作,但是您真的会添加微信好友吗? 试试这个神器——微信管理系统,下面分享它快速加客…

TDC 5.0:多集群统一纳管,构建一体化大数据云平台

近期,星环科技数据云平台Transwarp Data Cloud(简称TDC)5.0版本正式发布,TDC5.0架构屏蔽底层多个TDH集群的差异,采用统一操作模式,新增一个多集群抽象与管理层,能够实现多集群网络互通、跨集群资…

数据库管理的艺术(MySQL):DDL、DML、DQL、DCL及TPL的实战应用(上:数据定义与控制)

文章目录 DDL数据定义语言1、创建数据库2、创建表3、修改表结构4、删除5、数据类型 列的约束主键约束(primary key)唯一约束(unique key)非空约束检查约束(check)外键约束(foreign key&#xff…

顶顶通呼叫中心中间件-被叫路由、目的地绑定(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-被叫路由、目的地绑定(mod_cti基于FreeSWITCH) 1、配置分机 点击分机 -> 找到你需要设置的分机 ->呼叫路由设置为external,这里需要设置的分机是呼叫的并不是坐席的分机呼叫路由 2、配置拨号方案 点击拨号方案 -> 输入目的地绑定 …

C#实战 | 求解《丘建算经》百鸡问题

谈起古代数学,总会想起古希腊欧几里得的名著《几何原本》。而实际上,中国的《周髀算经》《九章算术》《缉古算经》等同样经典,尤其是《九章算术》,更以其算法实用性闻名世界。 中国古代数学的一些发展成果可谓惊艳,足…

不入耳耳机哪个牌子好用?五款卓越精品,小白必看!

怎么选到一款自己满意的开放式耳机?对于刚接触开放式耳机的朋友们来说,耳机的音质、续航、佩戴舒适度都是需要考虑到的,但是普通人往往很难去全面的了解分析耳机的这些性能配置。不入耳耳机哪个牌子好用?为了帮助大家解决这个难题…

Redis三种常用的缓存读写策略

Cache Aside Pattern(旁路缓存模式) 现在基本都用这个模式 Cache Aside Pattern 中服务端需要同时维系 db 和 cache,并且是以 db 的结果为准。 读写步骤: 写: 先更新 db,然后直接删除 cache 。 读 : …