学习思考:一日三问(学习篇)之匹配VLAN

news2024/12/25 19:30:04

学习思考:一日三问(学习篇)之匹配VLAN

  • 一、学了什么(是什么)
    • 1.1 理解LAN与"V"的LAN
    • 1.2 理解"V"的LAN怎么还原成LAN
    • 1.3 理解二层交换机眼中的"V"的LAN
  • 二、为何会产生需求(为什么)
    • 2.1 局域网肆意扩张后的"分地运动"
  • 三、有什么用(怎么做)
    • 3.1 理解并灵活使用交换机对标签的处理方式
    • 3.2 用代码逻辑来理解VLAN匹配方式

一、学了什么(是什么)

1.1 理解LAN与"V"的LAN

家用路由器接口总能看到"LAN"的字样,中文翻译过来称为局域网,我们是否可以将家用路由器功能拆分为以下拓扑?
理解LAN
倘若我们直接理解为LAN为交换机直连的链路就好处理了,理解为仅需二层提供通讯,无需三层路由的一块区域,在此区域下可实现广播、组播与无目的MAC的单播帧泛洪区域。

那进一步,我们再理解"V"的LAN就好理解了,V就是虚拟的,理解为逻辑上的,组织一下语言就是“逻辑上的局域网”,意味着这块区域不管长啥样,逻辑上就是个局域网,逻辑上和上面的LAN没啥区别,三个电脑中的一台发广播帧,其余两台都能收到,OK,理论存在,实践开始。

VLAN综合图
上面是个乱七八糟的VLAN分配图,咱们可以按照"V"的LAN的逻辑思维,可以整理成底下这样,"V"的LAN和实际LAN在逻辑上一致,我们这里可以想象各自LAN被路由器隔离广播域,如果需要"V"的LAN间互通,我们按照三层路由逻辑做通就行,假设我们有三层交换机,则每个连接LAN的接口此时改名为"V"的LAN的Interface,简称vlanif,默认一个vlanif绑定着对应编号的"V"的LAN,例如vlan 5逻辑上连接下图“路由器”的接口叫vlanif 5,在此接口上配置IP作为vlan 5的网关,再走路由互访就行,更为复杂的路由方式那就起个OSPF或者静态就行。
逻辑上的VLAN

1.2 理解"V"的LAN怎么还原成LAN

"V"的LAN在原有LAN的帧头中加了一个字段,帧字段区别可见此篇文章:没别的,就聊聊VLAN
所以交换机收到时,把帧头的“标签”贴上,再转手传给其他交换机。扔给路由器或者计算机的时候把“标签”撕掉就行。就想象咱们平常送礼前撕标签的感觉就行。

1.3 理解二层交换机眼中的"V"的LAN

在二层交换机中,"V"的LAN也是LAN,但是要同贴上一样标签的LAN才是一个LAN,不同标签的LAN就是不同LAN,所以此时交换机按道理来说,还需要在收发接口上维系一个标签清单,允许哪些标签的帧从哪个接口出去,而且对于没有标签的帧,为了保持格式统一性,应当打上接口的默认标签(默认标签为1),所有帧在交换机内都是带标签的,遇到同为接口的默认标签号的接口发出就撕掉标签,整理一下,交换机需要这些东西:

  • 接口默认标签号
  • 接口允许通过标签清单

二、为何会产生需求(为什么)

2.1 局域网肆意扩张后的"分地运动"

局域网设备扩大后。广播范围也会越来越大,有些敏感部门需要隔离其他业务部门,所以在原有的庞大LAN范围内,期望能利用一些二层的字段相互隔离不同类型的数据帧,所以不妨把帧都打上标签,用交换机匹配帧,实现放行或拒绝带特定标签的帧。

三、有什么用(怎么做)

3.1 理解并灵活使用交换机对标签的处理方式

交换机常见的两种"V"的LAN接口:Access和Trunk,而我们实现的目标是:终端发出的无标签帧,带上指定标签,准确到达同标签区域,并以无标签的形式,将帧发给目标主机。所以从需求来看,两种接口类型可以想象成一种接口,即:带有标签放行清单与默认贴撕标签能力的接口。我们以Trunk接口为例来想象一下流程:

  1. 若不标签的帧进入交换机前,先打上接口默认标签,带标签的帧进下一步;
  2. 此时匹配接口的标签清单,清单里有就收到交换机内,没有就把帧拦下来(俗称丢弃);
  3. 查交换机MAC地址表,选择接口转发;
  4. 此时匹配接口的标签清单,清单有就发到对应接口处,没有就不让帧出去(俗称丢弃);
  5. 此时比对接口默认标签,默认标签与帧的标签相同就拆掉标签,如果不同就保持标签扔出去;

OK此时就有人疑惑了,假如是Access接口呢,那就意味着接口默认标签号=接口唯一允许通过标签清单=指定VLAN标号,此时代入上述过程再看看,结果如下:

收/发数据帧有无标签是否为接口默认标签动作
贴默认标签,匹配清单唯一放行项,收入交换机
匹配清单唯一放行项,收入交换机
不匹配清单唯一放行项,丢弃
匹配清单唯一放行项,转至出接口,撕掉标签
不匹配清单唯一放行项,丢弃

因为交换机内部都是带标签的,所以不存在发数据帧的时候有无标签帧

3.2 用代码逻辑来理解VLAN匹配方式

相信有些朋友看上述分析文字比较枯燥,所以可以参考下面这些伪代码,逻辑上还是比较清楚的:

# 当模式为Access时,VLAN列表仅有一个允许项,即接口标签号,默认为1
if InPort.mode == "Access":
	InPort.allow_vlan_list = [Inport.default_tag]
if OutPort.mode == "Access":
	OutPort.allow_vlan_list = [Outport.default_tag]
# 对齐带Tag的帧格式(Port.default_tag默认为1)
if Frame.tag == null:
	Frame.add(InPort.default_tag)
# 如果帧标签在in接口允许清单中,则进行下一步,无则丢弃
if Frame.tag in InPort.allow_vlan_list:
	InPort.pass(Frame)
	# 查询MAC地址表,有表项则丢到对应接口,进行下一步,无则丢弃
	OutPort = Switch.search(Frame)
	if OutPort != null:
		# 如果帧标签在out端口允许清单中,则进行下一步,无则丢弃
		if Frame.tag in OutPort.allow_vlan_list:
			# 如果帧标签和out接口默认标签一致,则撕掉标签转发;
			# 如果不一致则直接转发
			if Frame.tag == OutPort.default_tag:
				Frame.take_off_tag()
			# out接口转发帧
			OutPort.forward(Frame)
		else:
			OutPort.discard(Frame)
	else:
		Switch.discard(Frame)
else:
	InPort.discard(Frame)

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

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

相关文章

国际网络专线怎么申请开通?

随着国内企业在国际市场中的活跃度逐年提升,国际网络专线逐渐成为保障企业高效运营的重要基础设施。稳定且高效的网络不仅能够提升工作效率,还能为海外业务的顺利开展提供可靠保障。那么,国际网络专线如何开通?其申请流程是怎样的…

Ubuntu20.04安装openMVS<成功>.colmap<成功>和openMVG<失败(已成功)>

一、安装openMVS 参考官方文档 sudo apt-get -y install git mercurial cmake libpng-dev libjpeg-dev libtiff-dev libglu1-mesa-dev eigen git clone https://gitlab.com/libeigen/eigen --branch 3.4 mkdir eigen_build cd eigen_build &&\cmake . ../eigen -…

【magic-dash】01:magic-dash创建单页面应用及二次开发

文章目录 一、magic-dash是什么1.1 安装1.2 使用1.2.1 查看内置项目模板1.2.2 生成指定项目模板1.2.3 查看当前magic-dash版本1.2.4 查看命令说明1.2.5 内置模板列表二、创建虚拟环境并安装magic-dash三、magic-dash单页工具应用开发3.1 创建单页面项目3.1.1 使用命令行创建单页…

重温设计模式--原型模式

文章目录 原型模式定义原型模式UML图优点缺点使用场景C 代码示例深拷贝、浅拷贝 原型模式定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象; 核心中的核心就是 克隆clone ,后面讲 原型模式是一种创建型设计模式,它的主要…

Kibana8.17.0在mac上的安装

1、Kibana是什么 Kibana是与elasticsearch配套使用的数据分析与可视化工具,通过Kibana可以轻松与es中存储的数据进行高效的交互,包括数据写入、检索、删除等操作,并可以通过编写部分代码将数据做成各种报表,从而进行非常直观的统…

61.基于SpringBoot + Vue实现的前后端分离-在线动漫信息平台(项目+论文)

项目介绍 随着社会互联网技术的快速发展,每个行业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于在线动漫信息平台当然也不能排除在外,随着网络技术的不断成熟,带动了在线动漫信息平台,它彻底…

【python】银行客户流失预测预处理部分,独热编码·标签编码·数据离散化处理·数据筛选·数据分割

数据预处理 通过网盘分享的文件:银行流失预测数据和代码 链接: https://pan.baidu.com/s/1loiB8rMvZArfjJccu4KW6w?pwdpfcs 提取码: pfcs 非数值特征处理 目的:将非数值特征转换为数值型,以便模型能够处理。方法: 地理位置&am…

从零开始使用MaxKB打造本地大语言模型智能问答系统与远程交互

文章目录 前言1. 下载运行Ollama2. 安装大语言模型3. 安装Cpolar工具4. 配置公网地址5. 固定公网地址6. MaxKB 添加Olama7.创建问答应用 前言 目前大语言模型(LLM)已经成为了人工智能领域的一颗璀璨明星,从自然语言处理到智能问答系统&#…

neo4j无法导入csv文件

文章目录 问题解决方案1. 检查Neo4j的neo4j.conf配置文件2. 确保文件路径正确3. 将CSV文件放置到import目录4. 重启Neo4j服务器 问题 neo4j browser中导入csv文件报错无法导入 具体:输入下列语句LOAD CSV WITH HEADERS FROM “file:///D:/KG/relation.csv” AS lin…

WebLogic T3反序列化漏洞(CVE-2018-2628)--vulhub

WebLogic T3反序列化漏洞(CVE-2018-2628) WebLogic在通信过程中使用T3协议传输数据,涉及到了序列化和反序列化操作。 T3协议概述 T3协议是Oracle的私有协议,所以公开的相关资料比较少,这里结合其他师傅的博客简单对T3协议进行一个简要分析…

在瑞芯微RK3588平台上使用RKNN部署YOLOv8Pose模型的C++实战指南

在人工智能和计算机视觉领域,人体姿态估计是一项极具挑战性的任务,它对于理解人类行为、增强人机交互等方面具有重要意义。YOLOv8Pose作为YOLO系列中的新成员,以其高效和准确性在人体姿态估计任务中脱颖而出。本文将详细介绍如何在瑞芯微RK3588平台上,使用RKNN(Rockchip N…

scala借阅图书保存记录(三)

BookDAO package org.app package daoimport models.BookModelimport scala.collection.mutable.ListBuffer//图书,数据操作 class BookDAO {//加载图书,从文件中读入def loadBooks(): ListBuffer[BookModel] {val books new ListBuffer[BookModel]()…

无标记动作捕捉系统如何赋能体育运动分析,推动体育科学发展?

随着技术的不断发展与社会的需要,健康、科学运动成为了大众关注的一个热词。在韩国首尔的中央大学,其生物运动临床康复实验室和运动训练中心就致力于通过生物力学分析来研究与运动相关的伤害,并通过定制科学的训练计划来帮助运动员改进他们的…

Unittest02|TestSuite、TestRunner、HTMLTestRunner、处理excel表数据、邮件接收测试结果

目录 八、测试套件TestSuite和测试运行器TestRunner 1、基本概念 2、创建和使用测试套件 3、 自动发现测试用例、创建测试套件、运行测试 4、生成html的测试报告:HTMLTestRunner 1️⃣导入HTMLTestRunner模块 2️⃣运行测试用例并生成html文件 九、unittest…

[搜广推]王树森推荐系统笔记——曝光过滤 Bloom Filter

曝光过滤 & Bloom Filter 曝光过滤主要在召回阶段做,主要方法是Bloom Filter 曝光过滤问题 -如果用户看过某个物品,则不再把该物品曝光给该用户。 - 原因是重复曝光同一个物品会损害用户体验 - 但长视频通常没有曝光过滤(youtube&…

JS CSS HTML 的代码如何快速封装

我们为什么要封装代码,是因为封装后的代码,会显得非常美观,减少代码的复用,方便我们更好的去维护代码,不用一个一个页面的去找去改,直接封装好的代码里面去改就可以了 目录 1.html代码封装 2.CSS代码封装 …

acme ssl证书自动续签 nginx

参考 github 官方操作 ,acme操作说明 说下我的操作 安装 acme.sh curl https://get.acme.sh | sh source ~/.bashrc 2.注册 acme.sh --register-account -m 123qq.com 如果你在配置 acme.sh 时选择了其他 CA(如 Let’s Encrypt)&#xff…

【专题】2024抖音电商母婴行业分析报告汇总PDF洞察(附原数据表)

原文链接:https://tecdat.cn/?p38651 在数字化浪潮的席卷下,抖音电商母婴行业正经历着深刻变革。当下,年轻一代父母崛起,特别是 24 至 30 岁以及 18 至 23 岁的群体成为抖音母婴行业兴趣人群的主力军。他们带来全新育儿理念&…

设计模式之 abstract factory

适用场景 一个系统要独立于它的产品的创建、组合和表示时。一个系统要由多个产品系列中的一个来配置时。当你要强调一系列相关的产品对象的设计以便进行联合使用时。当你提供一个产品类库,而只想显示它们的接口而不是实现时 架构演示 首先client这个东西可以接触到…

UE5仿漫威争锋灵蝶冲刺技能

这两天玩了一下漫威争锋Marvel Rivals,发现是UE5做的,对里面一些角色技能挺感兴趣的,想简单复刻一下技能功能,顺便复习一下学过的知识 首先把摄像机设置调整一下 CameraBoom里搜索lag 把摄像机延迟关掉 ,这样摄像机就…