当前位置: 首页 > news >正文

华为云Stack 8.X 流量模型分析(二)

二、流量模型分析相关知识

1.vNIC

​ 虚拟网络接口卡(vNIC)是基于主机物理 NIC 的虚拟网络接口。每个主机可以有多个 NIC,每个 NIC 可以是多个 vNIC 的基础。

​ 将 vNIC 附加到虚拟机时,Red Hat Virtualization Manager 会在虚拟机之间创建多个关联的 vNIC( vNIC 本身)以及 vNIC 所基于的物理主机 NIC。特别是,当 vNIC 附加到虚拟机时,会在 vNIC 所基于的物理主机 NIC 上创建新的 vNIC 和 MAC 地址。然后,在虚拟机附加了 vNIC 后第一次启动虚拟机时,libvirt 为 vNIC 分配 PCI 地址。然后,MAC 地址和 PCI 地址用于获取虚拟机中的 vNIC 的名称(如 eth0)。

2.OVS

​ OVS(OpenvSwitch)是一个高质量、多层的虚拟交换软件。它的目的是通过编程扩展支持大规模网络自动化,同时还支持标准的管理接口和协议。

​ OVS官方的定位是要做一个产品级质量的多层虚拟交换机,通过支持可编程扩展来实现大规模的网络自动化。设计目标是方便管理和配[虚拟机网络,检测多物理主机在动态虚拟环境中的流量情况。针对这一目标,OVS具备很强的灵活性。可以在管理程序中作为软件switch运行,也可以直接部署到硬件设备上作为控制层。

3.OpenStack与Neutron

​ OpenStack是一个云平台管理的项目,它不是一个软件,它是由几个主要的组件组合起来,为公有云、私有云和混合云的建设与管理提供软件的开源项目。OpenStack的主要目标是管理数据中心的资源,简化资源分配。它管理计算、存储、网络三部分资源。华为FusionSphere OpenStack就是基于OpenStack的架构开源代码进行开发的。

​ Neutron是OpenStack的SDN组件,用于实现网络虚拟化和自动化。Neutron的应用分为两大类:基于OpenStack的应用、基于SDN的应用。前者是在云的场景下,与OpenStack其他部件一起配合,为用户提供云服务。后者是在SDN场景下,与SDN Controller一起配合,为用户提供网络服务。

3.qbr与br-int

​ qbr是Quantum Bridge的缩写,Quantum是OpenStack网络组件的前一个商标名,由于版权原因现改名为Neutron。

​ br-int是Integration Bridge(综合网桥)的缩写。

​ qbr与br-int都是Bridge。qbr的实现载体是Linux Bridge,br-int的实现载体是OVS。需要注意的是Linux Bridge不是qbr的唯一实现载体,OVS也不是br-int的唯一实现载体,也可以用其他的实现方式来替换它们。只不过这样的实现方式是当前OpenStack解决方案的比较经典的方式而已。qbr与br-int之间,通过veth pair连接,VM与qbr之间,通过tap连接。VM与qbr之间只有1个tap,及1个tap分别挂接在VM和qbr之上。

​ vm通常需要挂载两层Bridge,及VM先接qbr(Linux Bridge),再接br-int(OVS)。如果只有一个qbr,由于qbr仅仅是一个Linux Bridge,它的功能不能满足实际场景的需求;如果只有一个br-int,由于br-int实际是一个OVS,而OVS现在还不支持基于iptables规则的安全组功能,且OpenStack(HCS)是要基于iptables规则来实现安全组功能。所以OpenStack(HCS)引入qbr其目的主要就是利用iptables来实现security group功能(qbr有时候也被称为安全网桥),而引入br-int,才是真正为了实现一个综合网桥的功能。

4.br-ethx

​ br-ethx是一个Bridge,也是一个OVS,它的全称是:Bridge-Ethernet-External。br-ethx负责与“外”部通信,这里的“外”部指的是Host外部,但是却又要属于一个Network(这个Network指的是Neutron的概念)的内部,指的是VLAN内部。

​ br-ethx与br-int之间的接口是veth pair。值得注意的是,br-ethx上的接口是一个真正的Host的网卡接口(NIC Interface,Interface in Network Interface Card)。网卡接口是网卡物理口上的一个Interface。

5.br-tun

​ br-tun是一个Bridge,也是一个OVS,它的全称是:Bridge-Tunnel。这里的Tunnel指的是VXLANTunnel。

​ br-tun用于连接br-int网桥和linux网桥,实现物理环境的互联。

6.vlan与vxlan

​ VLAN(Virtual Local Area Network,虚拟局域网)和 VxLAN(Virtual eXtential LAN,虚拟可拓展局域网)。二者的作用都是为了实现网络隔离,具体的作用原理与区别本文不做阐述。

​ VLAN中对应的是br-ethx,而VXLAN中对应的是br-tun,二者都是OVS,两者的差别不是实现组件的差别,而是组件所执行的功能的差别。br-ethx所执行的功能是一个普通二层交换机的功能,br-tun所执行的是VXLAN中VTEP(VXLAN Tunneling End Point,VXLAN隧道终结点)的功能。

7.QinQ

​ QinQ(802.1Q-in-802.1Q)也称为VLAN Stacking(堆叠VLAN)或Double VLAN(双VLAN),由IEEE 802.1ad标准定义,是一项扩展VLAN空间的技术,通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的目的。它将VLAN标记封装为两层—私有网络的内部标记和公共网络的外部标记。

QinQ特性使网络最多可以提供4094*4094个VLAN,满足城域网对VLAN数量的需求,它主要解决了如下几个问题:

  1. 缓解日益紧缺的公网VLAN ID资源问题。
  2. 用户在规划自己的私网VLAN ID时,不会与公网VLAN ID发生冲突。
  3. 为小型城域网或企业网提供一种较为简单的二层VPN解决方案。

​ 如下图所示,我们规划了两个VLAN:VLAN100、VLAN200,现在让位于Host1的VM1访问位于Host2的VM3,在用户看来可能就是VLAN100内的一个访问,但在Host看来,其实是VLAN10与VLAN30的一次访问。

image.png

​ 首先我们要清楚,4台虚拟机的VLAN ID分别变成了10、20、30、40,与我们用户自己划分的VLAN ID 100、200完全不是一个概念,这就涉及内外视角所看到的VLAN ID的不同。

VM ID用户视角VLAN ID(外部VLAN)Host视角VLAN ID(内部VLAN)
VM110010
VM220020
VM310030
VM420040

​ 一台虚拟机之所以会有两个VLAN ID,是为了防止在公网中VLAN ID之间产生冲突,不同用户在私网内规划VLAN可能不会进行统一的规划,当不同VLAN划分方式的私网用户通过公网相互访问时就会对Host造成困扰,到底要听谁的规划规则?所以Host干脆谁的也不听了,它自身再宏观地规划一个巨大的VLAN。当不同Host之间进行通信时,先将外VLAN ID转化成内VLAN ID(内外VID转换),查询到目标后在将内VLAN ID转化成外VLAN ID(内外VID转换)。

8.VID

VID是一种抽象的称呼,用于划分端口,它的含义随着网络类型的不同而不同:在VLAN网络中,VID指的就是VLAN ID;在VXLAN,VID指的就是VNI;在GRE网络中,VID指的就是GRE Key。

8.1 VLAN类型网络出报文内外VID的转换

image.png

如上图,以VM1为例,报文从VM1发出,从br-ethx离开Host1:

  1. 报文从VM1的A1端口发出,为Untag报文;
  2. 报文从B1端口进入qbr1,再从C1端口离开qbr1,也是Untag报文;
  3. 报文从D1端口进入br-int,在D1端口,报文被打上标签,VLAN ID = 10;
  4. 报文从E端口离开br-int,此时报文VID = 10;
  5. 报文从F端口进入br-ethx,在F端口,报文的标签被转变为VLAN ID = 100;
  6. 报文从G端口离开Host,VLAN ID = 100。
8.2 VLAN类型网络入报文内外VID的转换

image.png

如上图,以VM3为例,报文从Host2进入,从qbr1进入VM3:

  1. 报文从Host进入到br-ethx,是Tag报文,VID = 100;
  2. 报文从br-ethx离开,在离开的端口F,报文VID转变为30;
  3. 报文从E端口进入br-int,此时报文VID = 30;
  4. 报文进入br-int后,从D1端口被转发出去,在离开D1时,被剥除Tag,变成Untag报文;
  5. 报文从C1端口进入qbr1,然后从B1端口离开,再从A1端口进入VM3,始终为Untag报文。
8.3 VXLAN类型网络出报文内外VID的转换

image.png

如上图,以VM1为例,报文从VM1发出,从br-tun离开Host:

  1. 报文从VM1的A1端口发出,为Untag报文;
  2. 报文从B1端口进入qbr1,再从C1端口离开qbr1,也是Untag报文;
  3. 报文从D端口进入br-int,在D端口,报文被打上标签,VLAN ID = 10;
  4. 报文从E端口离开br-int,此时报文VID = 10;
  5. 报文从F端口进入br-tun,此时报文VID = 10;
  6. 报文从G端口离开Host,在G端口,报文被从VLAN封装为VXLAN,并且VNI = 100。
8.4 VXLAN类型网络入报文内外VID的转换

image.png

如上图,以VM3为例,报文从Host2进入,从qbr1进入VM3:

  1. 报文来到Host进到br-tun,为VXLAN报文,VNI = 100;
  2. 报文在br-tun的G端口,被转换为VLAN报文,VLAN ID = 30;
  3. 报文从br-tun离开,一直到进入br-int,都是VLAN报文,VLAN ID = 30;
  4. 报文从br-int D1端口离开br-int,报文被剥去Tag,变成Untag报文;
  5. 报文从C1端口进入qb1,然后再从B1端口离开,再从A1端口进入VM1,始终为Untag报文。

相关文章:

华为云Stack 8.X 流量模型分析(二)

二、流量模型分析相关知识 1.vNIC ​ 虚拟网络接口卡(vNIC)是基于主机物理 NIC 的虚拟网络接口。每个主机可以有多个 NIC,每个 NIC 可以是多个 vNIC 的基础。 ​ 将 vNIC 附加到虚拟机时,Red Hat Virtualization Manager 会在虚拟机之间创建多个关联的…...

rk3588 之启动

目录 uboot版本配置修改编译 linux版本配置修改编译 启动sd卡启动制作spi 烧录 参考 uboot 版本 v2024.01-rc2 https://github.com/u-boot/u-boot https://github.com/rockchip-linux/rkbin 配置修改 使用这两个配置即可: orangepi-5-plus-rk3588_defconfig r…...

ARM GIC (五)gicv3架构-LPI

在gicv3中,引入了一种新的中断类型。message based interrupts,消息中断。 一、消息中断 外设,不在通过专用中断线,向gic发送中断,而是写gic的寄存器,来发送中断。 这样的一个好处是,可以减少中断线的个数。 为了支持消息中断,gicv3,增加了LPI,来支持消息中断。并且…...

sql-labs服务器结构

双层服务器结构 一个是tomcat的jsp服务器,一个是apache的php服务器,提供服务的是php服务器,只是tomcat向php服务器请求数据,php服务器返回数据给tomcat。 此处的29-32关都是这个结构,不是用docker拉取的镜像要搭建一下…...

【小沐学写作】Docsify制作在线电子书、技术文档(Docsify + Markdown + node)

文章目录 1、简介2、安装2.1 node2.2 docsify-cli 3、配置3.1 初始化3.2 预览效果3.3 加载对话框3.4 更多页面3.5 侧 栏3.6 自定义导航栏 结语 1、简介 https://docsify.js.org/#/?iddocsify 一个神奇的文档网站生成器。 简单轻巧没有静态构建的 html 文件多个主题 Docsify…...

电脑完全重装教程——原版系统镜像安装

注意事项 本教程会清除所有个人文件 请谨慎操作 请谨慎操作 请谨慎操作 前言 本教程是以系统安装U盘为介质进行系统重装操作,照着流程操作会清除整个硬盘里的文件,请考虑清楚哦~ 有些小伙伴可能随便在百度上找个WinPE作为启动盘就直接…...

【智慧办公】如何让智能会议室的电子标签实现远程、批量更新信息?东胜物联网硬件网关让解决方案更具竞争力

近年来,为了减少办公耗能、节能环保、降本增效,越来越多的企业开始从传统的办公模式转向智慧办公。 以智能会议室为例,会议是企业业务中不可或缺的一部分,但在传统办公模式下,一来会议前行政人员需要提前准备会议材料…...

面向对象设计与分析40讲(16)静态工厂方法模式

前面我们介绍了简单工厂模式,在创建对象前,我们需要先创建工厂,然后再通过工厂去创建产品。 如果将工厂的创建方法static化,那么无需创建工厂即可通过静态方法直接调用的方式创建产品: // 工厂类,定义了静…...

【贪心】买卖股票的最佳时机含手续费

/** 贪心:每次选取更低的价格买入,遇到高于买入的价格就出售(此时不一定是最大收益)。* 使用buy表示买入股票的价格和手续费的和。遍历数组,如果后面的股票价格加上手续费* 小于buy,说明有更低的买入价格更新buy。如…...

Altium Designer入门到就业【目录】

🏡《AD目录》 欢迎大家来到《Altium Designer入门到就业》该专栏包括【电路设计篇】【PCB设计篇】【电路仿真篇】【PCB仿真篇】四个部分,以供大家参考。大家直接点击大纲中蓝色标题即可轻松传送。 【电路设计篇】 Altium Designer(AD24&#…...

cmake 查看编译命令,以及在vscode中如何使用cmke

通过设置如下配置选项,可以生成compile_commands.json 文件,记录使用的编译命令 set(CMAKE_EXPORT_COMPILE_COMMANDS ON)获得现有模块列表 cmake --help-module-list查看命令文档 cmake --help-command find_file查看模块的详细信息 cmake --help-mo…...

玩转 Scrapy 框架 (一):Scrapy 框架介绍及使用入门

目录 一、Scrapy 框架介绍二、Scrapy 入门 一、Scrapy 框架介绍 简介: Scrapy 是一个基于 Python 开发的爬虫框架,可以说它是当前 Python 爬虫生态中最流行的爬虫框架,该框架提供了非常多爬虫的相关组件,架构清晰,可扩…...

node.js mongoose index(索引)

目录 简介 索引类型 单索引 复合索引 文本索引 简介 在 Mongoose 中,索引(Index)是一种用于提高查询性能的数据结构,它可以加速对数据库中文档的检索操作 索引类型 单索引、复合索引、文本索引、多键索引、哈希索引、地理…...

谷歌推大语言模型VideoPoet:文本图片皆可生成视频和音频

Google Research最近发布了一款名为VideoPoet的大型语言模型(LLM),旨在解决当前视频生成领域的挑战。该领域近年来涌现出许多视频生成模型,但在生成连贯的大运动时仍存在瓶颈。现有领先模型要么生成较小的运动,要么在生…...

ES-mapping

类似数据库中的表结构定义,主要作用如下 定义Index下的字段名( Field Name) 定义字段的类型,比如数值型、字符串型、布尔型等定义倒排索引相关的配置,比如是否索引、记录 position 等 index_options 用于控制倒排索记录的内容,有如…...

Centos 7.9安装Oracle19c步骤亲测可用有视频

视频介绍了在虚拟机安装centos 7.9并安装数据库软件的全过程 视频链接:https://www.zhihu.com/zvideo/1721267375351996416 下面的文字描述是安装数据库的部分介绍 一.安装环境准备 链接:https://pan.baidu.com/s/1Ogn47UZQ2w7iiHAiVdWDSQ 提取码&am…...

.NET中的Swagger使用

目录 前言 一、Swagger是什么? 二、如何Swagger文档说明的信息 1.在AddSwaggerGen方法中写入文档信息 2.运行效果 二、文档UI界面标题、路由设置 1.在中间件UseSwaggerUI方法中配置 三、文档UI界面添加接口注释 1.在 .csproj中配置 2.在AddSwaggerGen方法中配置Incl…...

结构屈曲分析

结构屈曲分析主要用于判定结构受载后是否有失稳风险,作为工程应用,一般分为线性屈曲分析和非线性屈曲分析。 线性屈曲分析需要具备较多的前提条件,如载荷无偏心、材料无缺陷等,在实际工程应用中结构制作过程和加载方式很难达到线性…...

Flink 客户端操作命令及可视化工具

Flink提供了丰富的客户端操作来提交任务和与任务进行交互。下面主要从Flink命令行、Scala Shell、SQL Client、Restful API和 Web五个方面进行整理。 在Flink安装目录的bin目录下可以看到flink,start-scala-shell.sh和sql-client.sh等文件,这些都是客户…...

csrf自动化检测调研

https://github.com/pillarjs/understanding-csrf/blob/master/README_zh.md CSRF 攻击者在钓鱼站点&#xff0c;可以通过创建一个AJAX按钮或者表单来针对你的网站创建一个请求&#xff1a; <form action"https://my.site.com/me/something-destructive" metho…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...

用鸿蒙HarmonyOS5实现中国象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...

解析“道作为序位生成器”的核心原理

解析“道作为序位生成器”的核心原理 以下完整展开道函数的零点调控机制&#xff0c;重点解析"道作为序位生成器"的核心原理与实现框架&#xff1a; 一、道函数的零点调控机制 1. 道作为序位生成器 道在认知坐标系$(x_{\text{物}}, y_{\text{意}}, z_{\text{文}}…...