VLAN 划分案例详解

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://xiahunao.cn/news/3250483.html

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

相关文章

MySQL练习01

题目 步骤 创建数据库 create database mydb6_product; #创建数据库 use mydb6_product; #使用数据库 创建表 employees表 create table employees(id int primary key,-> name varchar(50) not null,-> age int,-> gender varchar(10) not null default&qu…

开关电源中的局部放电

一、局部放电现象 局部放电(partial discharge,简称PD)现象,通常主要指的是高压电气设备绝缘层在足够强的电场作用下局部范围内发生的放电,某个区域的电场强度一旦达到其介质击穿场强时,该区域就会出现放电…

牛客TOP101:链表中环的入口结点

文章目录 1. 题目描述2. 解题思路3. 代码实现 1. 题目描述 2. 解题思路 3. 代码实现 /* struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {} }; */ class Solution { public:ListNode* hasCycle(ListNode *head) {if(head nullptr) retu…

Python 工程师对 3D 高斯溅射的介绍(第 2 部分)

理解并编码如何在 3D 高斯溅射中使用高斯 欢迎来到雲闪世界现在开始讨论高斯!这是每个人最喜欢的分布。如果您刚刚加入我们,我们已经在第1 部分中介绍了如何根据相机的位置获取 3D 点并将其转换为 2D 。在本文中,我们将讨论高斯分布的高斯部分…

口袋奇兵游戏攻略:云手机辅助战锤入侵策略指南!

在《口袋奇兵》中,战锤入侵是一个重要的游戏环节,了解如何有效地参与战锤入侵能够帮助玩家获取更多的资源和提升自己的战力。本文将详细介绍战锤入侵的策略和技巧,帮助玩家在战锤入侵活动中取得更好的成绩。除了找到强力的游戏辅助&#xff0…

【JVM】JVM调优练习-随笔

JVM实战笔记-随笔 前言字节码如何查看字节码文件jclasslibJavapArthasArthurs监控面板Arthus查看字节码信息 内存调优内存溢出的常见场景解决内存溢出发现问题Top命令VisualVMArthas使用案例 Prometheus Grafana案例 堆内存情况对比内存泄漏的原因:代码中的内存泄漏并发请求问…

vmware配置centos+配置静态ip联网+更换镜像

centos7配置参考【实战】VMware17虚拟机以及Centos7详细安装教程-CSDN博客 ip配置步骤: 先更改编辑虚拟网络编辑器中的内容 就按照还原默认设置来,设定后就是以上内容,然后一定要记住子网ip和子网掩码 接下来就是NAT设置: 网关…

国产麒麟、UOS在线打开pdf加盖印章

PageOffice支持两种电子印章方案,可实现对Word、Excel、PDF文档加盖PageOffice自带印章或ZoomSeal电子印章(全方位保护、防篡改、防伪造)。Word和Excel的盖章功能请参考:Word和Excel加盖印章和签字功能 (目前只支持win…

PHP pwn 学习 (2)

文章目录 A. 逆向分析A.1 基本数据获取A.2 函数逆向zif_addHackerzif_removeHackerzif_displayHackerzif_editHacker A.3 PHP 内存分配 A.4 漏洞挖掘B. 漏洞利用B.1 PHP调试B.2 exp 上一篇blog中,我们学习了一些PHP extension for C的基本内容,下面结合一…

磷酸制备除杂,提高磷酸纯度的工艺

在化肥生产领域,磷酸作为一种关键的生产原料,其纯度对化肥的品质和性能有着直接的影响。然而,在实际生产过程中,磷酸原料中常常含有各种杂质,如金属离子、有机物等,这些杂质的存在会严重影响磷酸的纯度&…

如何在web页面下做自动化测试?

自动化测试是在软件开发中非常重要的一环,它可以提高测试效率并减少错误率。在web页面下进行自动化测试,可以帮助我们验证网页的功能和交互,并确保它们在不同浏览器和平台上的一致性。本文将从零开始,详细介绍如何在web页面下进行…

MySQL相关知识

一、什么是数据库? 数据库(Database,简称DB)概念: 长期存放在计算机内,有组织、可共享的大量数据的集合,是一个 数据“仓库”。 二、数据库的特点: 1.结构化:数据在数…

如何在Ubuntu上安装并启动SSH服务(Windows连接)

在日常的开发和管理工作中,通过SSH(Secure Shell)连接到远程服务器是一个非常常见的需求。如果你在尝试通过SSH连接到你的Ubuntu系统时遇到了问题,可能是因为SSH服务未安装或未正确配置。本文将介绍如何在Ubuntu上安装并启动SSH服…

GitHub私有派生仓库(fork仓库) | 派生仓库改为私有

GitHub私有派生仓库 前言解决方案 前言 在GitHub上Fork的派生仓库默认为公有仓库,且无法修改为私有仓库。 若想创建私有的派生仓库,可通过GitHub的导入仓库功能实现,具体步骤请参见下文解决方案。 解决方案 打开GitHub页面,在个…

C#医学影像管理系统源码 PACS系统源码带三维重建,全院级数字医学影像系统

C#医学影像管理系统源码 医学影像存储与传输系统源码 PACS系统源码带三维重建,三甲以下医院都能满足。 PACS系统模块组成 : 工作站: 分诊工作站、超声工作站、放射工作站、内镜工作站、病理工作站。 基本信息维护: 输入模板、输入…

Token Labeling(NeurIPS 2021, ByteDance)论文解读

paper:All Tokens Matter: Token Labeling for Training Better Vision Transformers official implementation:https://github.com/zihangJiang/TokenLabeling 出发点 ViTs的局限性:尽管ViTs在捕捉长距离依赖方面表现出色, 但…

windows程序设计基础--学习记录

一、Windows程序的Hello world #include<windows.h>int WINAPI WinMain(HINSTANCE hInstance, //程序实例句柄HINSTANCE hPreHinstance, //上一个程序的实例句柄&#xff08;被遗弃&#xff0c;参数始终为NULL&#xff09;LPSTR lpCmdeLine, //命令行参数int nCmdeSh…

Jangow

关于靶场环境配置&#xff0c;确实这个靶场存在很大的问题&#xff0c;不仅仅是网络的配置问题&#xff0c;更重要的是明知道如何修改网络环境配置&#xff0c;但是键盘存在很大的问题。许多字符输入不一致。 Vulnhub靶场&#xff0c;Jangow靶机环境找不到ip解决方法。_jangow…

vue3运行若依前后台项目步骤(2024-07-19)

环境配置 1、jdk > 1.8 (我的1.8&#xff09; 2、mysql >5.7 (我的5.8&#xff09; 3、navicat (数据库管理器&#xff0c;连接mysql使用 ,我的是15) 4、mysql&#xff08;数据库&#xff0c;我的5.0&#xff09; 4、npm (我的是18.20.0) 5、idea编辑器,webtorm &#x…

API接口防刷实现(重复调用)

API接口 - 限制重复调用&#xff08;防刷&#xff09; 环境代码实现实现方式定义注解注解应用 环境 JDK 8 SpringBoot 代码实现 实现方式 定义注解&#xff0c;通过切面的方式&#xff0c;检测重复调用。 定义注解 import cn.nhd.fsl.entity.system.Prevent; import cn.nhd…