华为云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报文。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IPC之九:使用UNIX Domain Socket进行进程间通信的实例

socket 编程是一种用于网络通信的编程方式,在 socket 的协议族中除了常用的 AF_INET、AF_RAW、AF_NETLINK等以外,还有一个专门用于 IPC 的协议族 AF_UNIX,IPC 是 Linux 编程中一个重要的概念,常用的 IPC 方式有管道、消息队列、共…

摄影企业网站搭建的作用是什么

几乎每个成年人都有一部手机,在互联网信息时代,手机的作用不言而喻,拍照/摄像成为了不少人经常会做的事,拍一张美美的照片发到社交圈赢得赞声,或是为以后留下回忆或发给自己在意的人,但这只限于生活记叙类图…

即将来临的2024年,汽车战场再起波澜?

我们来简要概况一下11月主流车企的销量表现: 根据数据显示,11月吉利集团总销量29.32万辆,同比增长28%。这在当月国内主流车企中综合实力凌厉,可谓表现得体。而与吉利直接竞争的比亚迪,尽管数据未公布,但我们…

AI Native工程化:百度App AI互动技术实践

作者 | GodStart 导读 随着AI浪潮的兴起,越来越多的应用都在利用大模型重构业务形态,在设计和优化Prompt的过程中,我们发现整个Prompt测评和优化周期非常长,因此,我们提出了一种Prompt生成、评估与迭代的一体化解决方案…

向量投影:如何将一个向量投影到矩阵的行向量生成子空间?

向量投影:如何将一个向量投影到矩阵的行向量生成子空间? 前言 本问题是在学习Rosen梯度投影优化方法的时候遇到的问题,主要是对于正交投影矩阵(NT(NNT)-1N)的不理解,因此经过查阅资料,学习了关于向量投影的知识&…

高级人工智能之群体智能:蚁群算法

群体智能 鸟群: 鱼群: 1.基本介绍 蚁群算法(Ant Colony Optimization, ACO)是一种模拟自然界蚂蚁觅食行为的优化算法。它通常用于解决路径优化问题,如旅行商问题(TSP)。 蚁群算法的基本步骤…

【YOLOV8预测篇】使用Ultralytics YOLO进行检测、分割、姿态估计和分类实践

目录 一 安装Ultralytics 二 使用预训练的YOLOv8n检测模型 三 使用预训练的YOLOv8n-seg分割模型 四 使用预训练的YOLOv8n-pose姿态模型 五 使用预训练的YOLOv8n-cls分类模型 <

Altium Designer(AD24)新工程复用设计文件图文教程及视频演示

&#x1f3e1;《专栏目录》 目录 1&#xff0c;概述2&#xff0c;复用方法一视频演示2.1&#xff0c;创建工程2.2&#xff0c;复用设计文件 3&#xff0c;复用方法二视频演示4&#xff0c;总结 欢迎点击浏览更多高清视频演示 1&#xff0c;概述 本文简述使用AD软件复用设计文件…

1860_peakhold的喷油器

Grey 全部学习内容汇总&#xff1a; GitHub - GreyZhang/g_hardware_basic: You should learn some hardware design knowledge in case hardware engineer would ask you to prove your software is right when their hardware design is wrong! 1860_peak&hold的喷油器…

python实现bp神经网络对csv文件进行数据预测

参考资源&#xff1a; sklearn库 bp神经网络[从原理到代码一篇搞定]&#xff08;2&#xff09;_sklearn 神经网络-CSDN博客 十分钟上手sklearn&#xff1a;安装&#xff0c;获取数据&#xff0c;数据预处理 - 知乎 (zhihu.com) 一个实例讲解如何使用BP神经网络(附代码) - 知…

EMD、EEMD、FEEMD、CEEMD、CEEMDAN的区别、原理和Python实现(五)CEEMDAN

目录 前言 1 完全自适应噪声集合经验模态分解CEEMDAN介绍 1.1 CEEMDAN简介 1.2 CEEMDAN主要特点 2 CEEMDAN分解的步骤 3 基于Python的CEEMDAN实现 3.1 导入数据 3.2 CEEMDAN分解 3.3 信号分量的重构 3.4 信号分量的处理 3.5 CEEMDAN优缺点 往期精彩内容&#xff1a;…

Qt designer界面和所有组件功能的详细介绍(全!!!)

PyQt5和Qt designer的详细安装教程&#xff1a;https://blog.csdn.net/qq_43811536/article/details/135185233?spm1001.2014.3001.5501 目录 1. 界面介绍2. Widget Box 常用组件2.1 Layouts&#xff08;布局&#xff09;2.2 Spacers&#xff08;间隔器&#xff09;2.3 Item V…

【黑马甄选离线数仓day10_会员主题域开发_DWS和ADS层】

day10_会员主题域开发 会员主题_DWS和ADS层 DWS层开发 门店会员分类天表: 维度指标: 指标&#xff1a;新增注册会员数、累计注册会员数、新增消费会员数、累计消费会员数、新增复购会员数、累计复购会员数、活跃会员数、沉睡会员数、会员消费金额 维度: 时间维度&#xff08…

网络7层架构

网络 7 层架构 什么是OSI七层模型&#xff1f; OSI模型用于定义并理解数据从一台计算机转移到另一台计算机&#xff0c;在最基本的形式中&#xff0c;两台计算机通过网线和连接器相互连接&#xff0c;在网卡的帮助下共享数据&#xff0c;形成一个网络&#xff0c;但是一台计算…

8、SpringCloud高频面试题-版本1

1、SpringCloud组件有哪些 SpringCloud 是一系列框架的有序集合。它利用 SpringBoot 的开发便利性巧妙地简化了分布式系统基础设施的开发&#xff0c;如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等&#xff0c;都可以用 SpringBoot 的开发风格做到一键启…

湘潭大学-软件工程-选择判断题复习

说明 期末考试单选题和判断题占30分&#xff0c;单选20&#xff0c;判断10分 单选题 选错误的 B依靠松散组合的互联网大众是无法开发出高质量软件产品的 D、所有命名都应尽量使用缩写 C、采用团队的组织方式 D、软件需求一旦确定就不允许变化 以下哪一项是通过运行程序…

全方位掌握卷积神经网络:理解原理 优化实践应用

计算机视觉CV的发展 检测任务 分类与检索 超分辨率重构 医学任务 无人驾驶 整体网络架构 卷积层和激活函数&#xff08;ReLU&#xff09;的组合是网络的核心组成部分 激活函数(ReLU&#xff09; 引入非线性&#xff0c;增强网络的表达能力。 卷积层 负责特征提取 池化层…

MySQL——复合查询

目录 一.基本查询回顾 二. 多表查询 三.自连接 四.子查询 1.单行子查询 2.多行子查询 3.多列子查询 4.在from子句中使用子查询 5.合并查询 一.基本查询回顾 准备数据库&#xff1a; 查询工资高于500或岗位为MANAGER的雇员&#xff0c;同时还要满足他们的姓名首字母为…

.net core 生成jwt+swagger-通过 IHttpContextAccessor读取token信息

1.安装jwt相关包 <ItemGroup><PackageReference Include"Microsoft.AspNetCore.Authentication.JwtBearer" Version"6.0.25" /><PackageReference Include"Microsoft.IdentityModel.Tokens" Version"7.0.3" /><P…