Overlay网络

news2024/12/23 3:14:45

Overlay 介绍

Overlay网络是将已有的物理网络(Underlay网络)作为基础,在其上建立叠加的逻辑网络,实现网络资源的虚拟化。
在这里插入图片描述
传统网络带来了以下一些问题:
● 虚拟机规模受
网络规格限制在传统二层网络环境下,数据报文是通过查询MAC地址表进行二层转发,而网络设备MAC地址表的容量限制了虚拟机的数量。
● 网络隔离能力限制
当前主流的网络隔离技术是VLAN,由于IEEE 802.1Q中定义的VLAN ID只有12比特,仅能表示4096个VLAN,无法满足大二层网络中标识大量租户或租户群的需求。
● 虚拟机迁移范围受网络架构限制
为了保证虚拟机迁移过程中业务不中断,则需要保证虚拟机的IP地址、MAC地址等参数保持不变,这就要求业务网络是一个二层网络,且要求网络本身具备多路径的冗余备份和可靠性。传统的STP、设备虚拟化等技术只适用于中小规模的网络。
针对上述问题,为了满足云计算虚拟化的网络能力需求,逐步演化出了Overlay网络技术。
● 针对虚拟机规模受网络规格限制
虚拟机发出的数据包封装在IP数据包中,对网络只表现为封装后的网络参数。因此,极大降低了大二层网络对MAC地址规格的需求。
● 针对网络隔离能力限制
Overlay技术扩展了隔离标识的位数(24比特),极大扩展了隔离数量。
● 针对虚拟机迁移范围受网络架构限制
Overlay将以太报文封装在IP报文之上,通过路由在网络中传输。通过路由网络,虚拟机迁移不受网络架构限制。而且路由网络具备良好的扩展能力、故障自愈能力、负载均衡能力。
Overlay技术有多种,例如VXLAN、NVGRE、STT等,其中VXLAN是目前获得最广泛支持的Overlay技术。

VXLAN

VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网),是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,采用MAC-in-UDP的报文封装模式,如图7-2所示,原始报文在VXLAN接入点(被称为VTEP)加上VXLAN帧头后再被封装在UDP报头中,并使用承载网络的IP/MAC地址作为外层头进行封装,承载网络只需要按照普通的二三层转发流程进行转发即可。

VXLAN报文转发过程

在这里插入图片描述

  1. VM1发送目的地址为VM2的报文。
  2. VTEP1收到该报文后进行VXLAN封装,封装的外层目的IP为VTEP2。封装后的报文,根据外层MAC和IP信息,在IP网络中进行传输,直至到达对端VTEP2。
  3. VTEP2收到报文后,对报文进行解封装,得到VM1发送的原始报文,然后将其转发至VM2。

二层MAC学习及BUM报文转发

在VXLAN网络中,同子网虚拟机的互通是通过查找MAC表进行转发。如下图所示,VM1给VM2发送报文时,经过VTEP1转发,VTEP1上需要学习到VM2的MAC地址。最初的VXLAN标准并没有定义控制平面,VTEP之间无法传递学习到的主机MAC地址。但是VXLAN有着与传统以太网非常相似的MAC学习机制,当VTEP接收到VXLAN报文后,会记录源VTEP的IP、虚拟机MAC和VNI到本地MAC表中,这样当VTEP接收到目的MAC为此虚拟机的MAC时,就可以进行VXLAN封装并转发。
在这里插入图片描述
VM1发送目的地址为VM2的报文。
VTEP1接收到报文后,进行VXLAN封装,并将其转发至VTEP2。同时,VTEP1可以学习到VM1的MAC地址、VNI、入接口。
VTEP2接收到报文后,对报文进行解封装。同时,VTEP2可以学习到VM1的MAC地址、VNI、入接口(为VTEP1)。
经过上述流程,VTEP1和VTEP2可以学习到VM1的MAC地址。VTEP1和VTEP2学习到VM2的MAC地址过程与之类似。

BUM报文转发

前面描述的报文转发过程都是已知单播报文转发,如果VTEP收到一个未知地址的BUM 报文(Broadcast,Unknown Unicast,Multicast,广播、未知单播、组播流量统称)如何处理呢。与传统以太网BUM报文转发类似,VTEP会通过泛洪的方式转发流量。
在这里插入图片描述
以上图中VM1想向VM2发送报文为例,因为VM1不知道VM2的MAC地址,所以会发送ARP广播报文请求VM2的MAC地址。
VM1发送ARP广播请求,请求VM2的MAC地址。
VTEP1收到ARP请求后,因为是广播报文,VTEP1会在该VNI内查找所有的隧道列表,依据获取的隧道列表进行报文封装后,向所有隧道发送报文,从而将报文转发至同子网的VTEP2和VTEP3。
同时,VTEP1会学习到VM1的MAC地址。
VTEP2和VTEP3接收到报文后,进行解封装,得到VM1发送的原始ARP报文,然后转发至VM2和VM3。
同时VTEP2、VTEP3会学习到VM1的MAC地址。
VM2和VM3接收到ARP请求后,比较报文中的目的IP地址是否为本机的IP地址。
VM3发现目的IP不是本机IP,故将报文丢弃;VM2发现目的IP是本机IP,则对ARP请求做出应答。
ARP应答报文为已知单播报文,转发流程与前文描述的一致,此处不在赘述。
经过ARP应答流程,VTEP1和VM1就可以学习到VM2的MAC地址。后续的转发流程同已知单播转发流程一致。

VXLAN 网关部署

与不同VLAN需要通过三层网关互通一样,VXLAN中不同VNI的互通也需要有三层网关。

在典型的“Spine-Leaf”VXLAN组网结构下,根据三层网关的部署位置不同,VXLAN三层网关可以分为集中式网关和分布式网关。

集中式网关部署

集中式网关是指将三层网关集中部署在Spine设备上,如下图所示,所有跨子网的流量都经过三层网关进行转发,实现流量的集中管理。

集中式网关部署方式可以对跨子网流量进行集中管理,网关的部署和管理比较简单,但是因为同Leaf下跨子网流量也需要经过Spine转发,所以流量转发路径不是最优。同时,所有通过三层转发的终端租户的表项都需要在Spine上生成。但是,Spine的表项规格有限,当终端租户的数量越来越多时,容易成为网络瓶颈

分布式网关部署

VXLAN分布式网关是将Leaf节点作为VXLAN隧道端点VTEP,每个Leaf节点都可作为VXLAN三层网关,Spine节点不感知VXLAN隧道,只作为VXLAN报文的转发节点。
在这里插入图片描述
在Leaf上部署VXLAN三层网关,即可实现同Leaf下跨子网通信。此时,流量只需要在Leaf节点进行转发,不再需要经过Spine节点,从而节约了大量的带宽资源。同时,Leaf节点只需要学习自身连接虚拟机的ARP表项,而不必像集中三层网关一样,需要学习所有虚拟机的ARP表项,解决了集中式三层网关带来的ARP表项瓶颈问题,网络规模扩展能力强。
对于分布式网关场景,因为需要在三层网关间传递主机路由才能保证虚拟机间互通,所以需要有控制平面来进行路由的传递。

双活网关

在传统网络中,为了保证高可靠性,通常部署多个网关进行备份。与传统网络类似,VXLAN网络也支持Overlay层面的双活网关。

集中式网关场景下多活网关

在典型的“Spine-Leaf”组网结构下,Leaf作为二层网关,Spine作为三层网关。多个Spine配置相同的VTEP地址、虚拟MAC地址,从而可以将多个Spine虚拟成一个VXLAN隧道端点。这样使得无论流量发到哪一个Spine设备,该设备都可以提供网关服务,将报文正确转发给下一跳设备。
在这里插入图片描述

分布式网关场景下双活接入

在分布式网关场景下,Spine作为透传设备,Leaf作为三层网关。通过在Leaf上部署M-LAG,可以实现双活接入,即服务器可以双活接入到多个Leaf。
在这里插入图片描述

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

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

相关文章

某“新一线城市“前端面试,纯纯被恶心到了

一.起因 在boss上刷到的一个小小厂,收大四全年实习生(web前端),因为离家乡比较近,而且双非一本的学历以及入坑的时间没有太长(前端部分不到一年),想去那里看看形势,要求是笔试面试,当场给是否录用结果&…

WPS@文字文档插入的表格,对单元格填充底纹颜色时,有字的地方就填充不上 ,空白。

背景 在创建的WPS文字文档中,插入了一个表格,对表格的某些单元格需要填充底纹颜色 问题 问题如标题,“文字文档插入的表格,对单元格填充底纹颜色时,有字的地方就填充不上 ,空白”,直观如下图 解…

【Linux】-----进度条小程序

目录 前言 基本知识 Ⅰ、回车和换行 Ⅱ、缓冲区 两个有意思的现象 简单定义 刷新缓冲区 简易倒计时程序 进度条代码 多文件下makefile写法 一代(无任何场景) procs1.h代码 procs1.c代码 主函数main1.c 一代运行结果: 二代 (搭配下载场景) procs2.c代…

Qt Creator使用git管理代码

1.在GitHub中新建仓库,设置好仓库名后,其它的设置默认即可。 2.打开git bash,输入以下命令: git config --global user.name "xxxxx" #设置你的GitHub用户名 git config --global user.email "xxxxxxxxx.…

大厂linux面试题攻略四之Linux网络服务(二)

五、Linux网络服务-Apache优化 1.请写出工作中常见的Apache优化策略 Apache服务器优化是提升网站响应速度和稳定性的重要手段。在工作中,常见的Apache优化策略包括以下几个方面: 1. 启用压缩技术 Gzip压缩:使用Gzip压缩技术可以减少服务器…

免费【2024】springboot 宠物医院微信小程序的设计与实现

博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

Python(关于属性和类详细代码解释)

动态绑定属性 class Student:# 类属性:定义在类中,方法外的变量school 北京xxx教育print(type(school)) # 定义在类里面所以属性不变# 类属性初始化方法def __init__(self, xm, age): # xm,age是方法的参数,是局部变量,xm,age…

解决Centos不支持docker命令行tab提示问题!!!

一、CentOS不支持Docker Tab提示 在使用CentOS操作系统时,有些用户可能会遇到不能自动补全Docker命令的问题。这是因为CentOS默认不支持Docker Tab提示功能,需要手动配置才能实现。在这篇科普文章中,我们将介绍如何解决这个问题,…

Springer旗下中科院2区TOP,国人优势大!

关注GZH【欧亚科睿学术】,第一时间了解期刊最新动态! 1 通信网络类 【期刊简介】IF:4.0-5.0,JCR1区,中科院3区 【出版社】ELSEVIER出版社 【检索情况】SCIE&EI双检,CCF-C类 【征稿领域】通信网络的…

这本vue3编译原理开源电子书,初中级前端竟然都能看懂

前言 众所周知vue提供了很多黑魔法,比如单文件组件(SFC)、指令、宏函数、css scoped等。这些都是vue提供的开箱即用的功能,大家平时用这些黑魔法的时候有没有疑惑过一些疑问呢。 我们每天写的vue代码一般都是写在*.vue文件中,但是浏览器却只…

大模型面试之LoRA

LoRA的解释:一种高效微调预训练神经网络的方法 LoRA 解决的问题: 🔸 2021年初,微软与OpenAI合作探索GPT-3的商业可行性。 🔸 发现仅仅通过提示(prompting)不足以完成生产任务,例如…

C++:标准模板库(STL)介绍

1.STL基本概念 从C到C,C语言的核心优势之一就是便于软件的重用。前面我们提到过C程序的面向对象思想,即继承和多态、标准类库等可以实现重用。除此之外,通过泛型程序设计(generic programming)的思想,即模板机制以及标准模板库ST…

微软:警惕利用VMware ESXi进行身份验证绕过攻击

微软于7月29日发布警告,称勒索软件团伙正在积极利用 VMware ESXi 身份验证绕过漏洞进行攻击。 该漏洞被追踪为 CVE-2024-37085,由微软安全研究人员 Edan Zwick、Danielle Kuznets Nohi 和 Meitar Pinto 发现,并在 6 月 25 日发布的 ESXi 8.0 …

Vatee万腾平台:助力企业数字化转型的坚实伙伴

在数字化浪潮席卷全球的今天,企业数字化转型已成为不可逆转的趋势。面对这一挑战与机遇并存的时代,Vatee万腾平台凭借其深厚的行业洞察、先进的技术实力和丰富的实践经验,成为了众多企业数字化转型道路上的坚实伙伴。 一、定制化解决方案&…

锐捷RCNA | ARP协议原理与应用与DHCP协议原理及应用

一、ARP协议原理与应用 OSI参考模型将网络划分为7层,IP地址工作在第三层网络层中,MAC地址工作在第二层数据链路层。 在以太网发送IP数据包时,先封装网络层的包头再封装数据链路层的包头,由于在发送时只知道目标IP地址而不知道MA…

神经网络实现数字识别(机器学习)

我们有很多0到9的图片集,我们要训练一个网络来自动识别数字,我们有20*20的图像5000个。 把图片展平,这样每个记录就有400个特征,最后一列是标签值,1-9表示数字1-9;10表示数字0。数据集:ex_2/ex…

【设计模式:单例模式】

单例模式的特点: 单例类只允许一个实例单例类必须自己创造自己的唯一实例单例类必须给所有其他对象提供这一实例 单例模式底层如何实现: 私有化构造函数,类外部无法创造类对象,实现了单例类只允许有一个实例对象的特点类定义中含有…

vue3+g2plot之瀑布图

基础瀑布图 - 每月收支情况 效果预览: 核心代码: import {Waterfall } from @antv/g2plot;const data = [{type: 日用品, money: 120 },{type: 伙食费, money: 900 },{type: 交通费, money: 200 },{type: 水电费, money: 300 },{type: 房租, money: 1200 },{type: 商场消…

MyBatis批量更新:报错The error occurred while setting parameters

使用mybatis批量更新时,报以下错误。反复检查过mysql语句没有任何问题。而且本地可以正常执行,生产环境却报错。起初怀疑是数据表,把生产环境表导入本地测试后依然没有问题。数据表没问题就定位到数据库,先检查本地数据库链接与生…

家庭教育系列—剑桥通用英语五级考试介绍

文章目录 1. 背景介绍2. 详细介绍2.1 **KET(Key English Test):基础英语考试**2.2 **PET(Preliminary English Test):初级英语考试**2.3 **FCE(First Certificate in English)&#…