华为云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.hqwc.cn/news/297028.html

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

相关文章

代码随想录27期|Python|Day24|回溯法|理论基础|77.组合

图片来自代码随想录 回溯法题目目录 理论基础 定义 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。 回溯是递归的副产品,只要有递归就会有回溯。回溯函数也就是递归函数,指的都是一个函数。 基本问题 组合问题(无序&…

供应链 | 顶刊MSOM论文精选——关税对全球供应链网络配置的影响:模型、预测和未来研究

编者按 关税对企业全球供应链网络设计决策的影响 本文为 M&SOM期刊20周年特邀论文,原文信息: Lingxiu Dong, Panos Kouvelis (2020) Impact of Tariffs on Global Supply Chain Network Configuration: Models, Predictions, and Future Research…

懒加载图片案例

整体效果&#xff1a; HTML部分&#xff1a; <div class"lazy-box"><img class"lazy" data-original"img/1.jpg" alt"1.jpg" width"960" height"540"><img class"lazy" data-original…

03|模型I/O:输入提示、调用模型、解析输出

03&#xff5c;模型I/O&#xff1a;输入提示、调用模型、解析输出 从这节课开始&#xff0c;我们将对 LangChain 中的六大核心组件一一进行详细的剖析。 模型&#xff0c;位于 LangChain 框架的最底层&#xff0c;它是基于语言模型构建的应用的核心元素&#xff0c;因为所谓 …

NNDL 作业12-优化算法2D可视化 [HBU]

老师作业原博客地址&#xff1a;【23-24 秋学期】NNDL 作业12 优化算法2D可视化-CSDN博客 目录 简要介绍图中的优化算法&#xff0c;编程实现并2D可视化 1. 被优化函数 ​编辑 深度学习中的优化算法总结 - ZingpLiu - 博客园 (cnblogs.com) SGD: Adagrad: RMSprop: Mom…

【数据结构】图

一.图的定义 1.定义&#xff1a; 图G由顶点集V和关系集E组成&#xff0c;记为G&#xff08;V&#xff0c;E&#xff09; 注&#xff1a;图可以没有边&#xff0c;但不能没有顶点。 2.图的分类&#xff1a; 图的顶点数为n&#xff0c;边数为e 有向图&#xff1a; 无向图&a…

gitattributes配置文件的作用

0 Preface/Foreword Git版本管控工具功能强大&#xff0c;在使用过程中&#xff0c;在多人合作的项目开发过程中&#xff0c;经常会遇到提交代码时出现的warning提醒&#xff0c;尤其是换行符。 Linux/Unix/Mac OS操作系统的换行符使用LF符号&#xff08;\n&#xff09;&…

机器视觉工程师,面对难以实现的需求时,应该如何应对?

作为一名机器视觉工程师&#xff0c;在工作中难免会遇到一些难以实现&#xff0c;奇形怪状的需求&#xff0c;各种五花八门&#xff0c;奇葩需求&#xff0c;顿时头疼不已。同时销售要接订单&#xff0c;机器视觉工程师也要做项目提升自我&#xff0c;销售与技术矛盾本身是存在…

【SpringCloud笔记】(9)分布式配置中心之Config

Config 概述 分布式系统当前面临的配置问题 微服务意味着要将单体应用中的业务拆分成一个个子服务&#xff0c;每个服务的粒度相对较小&#xff0c;因此系统中会出现大量的服务。 比如&#xff1a;有n个微服务连接同一套数据库&#xff0c;当连接数据库需要发生变动时&…

如何从 Android 手机免费恢复已删除的通话记录/历史记录?

有一个有合作意向的人给我打电话&#xff0c;但我没有接听。更糟糕的是&#xff0c;我错误地将其删除&#xff0c;认为这是一个骚扰电话。那么有没有办法从 Android 手机恢复已删除的通话记录呢&#xff1f;” 塞缪尔问道。如何在 Android 上恢复已删除的通话记录&#xff1f;如…

滴水逆向三期笔记与作业——02C语言——08 结构体

本节课内容简单&#xff0c;仅截图记录 滴水三期 一、什么是结构体结构体偏移结构体的定义与赋值结构体类型的参数结构体类型的函数返回 二、作业 一、什么是结构体 结构体偏移 结构体的定义与赋值 结构体类型的参数 本质是内存数据的复制&#xff0c;将结构体中在内存存储的…

LLM之RAG理论(二)| RAG综述论文详解

论文地址&#xff1a;https://arxiv.org/pdf/2312.10997.pdf 大型语言模型&#xff08;LLMs&#xff09;展示了强大的能力&#xff0c;但在实际应用中仍面临挑战&#xff0c;如幻觉现象、知识更新缓慢&#xff0c;以及在回答中缺乏透明度。检索增强生成&#xff08;RAG&#xf…