跨数据中心Multi-Fabric解决方案:L2和L3网络的高效连接和扩展

云数据中心里,为什么需要DCI互通?

云化数据中心,网络资源通过虚拟化技术形成资源池,实现业务与物理网络解耦,通过网络虚拟化,物理网络资源可以被分成多个虚拟网络资源,从而提高网络资源的使用效率。
虚拟网络资源根据业务需求进行分配和调度,可以更好地利用网络资源。此外,虚拟网络资源的快速部署和迁移可以提高业务的灵活性和可用性。

伴随着用户业务规模的扩大和范围的增加,用户可能需要在多个地理位置建立数据中心以满足业务需求。这些数据中心需要进行互联和资源共享。一些应用程序可能需要在多个数据中心之间进行迁移、复制、备份等操作,而另一些应用程序可能需要快速在不同的数据中心之间进行负载均衡和容灾切换,总结下来具体诉求如下:

业务跨DC部署

客户某些业务可能是跨DC部署的,比如客户可能会针对某大型网站划一个独立的VPC,这个VPC可能会跨多个DC,所以在这个VPC内部流量就有跨Fabric互通的需求,同时路由和防火墙需要进行隔离。

业务之间的互通

客户针对不同的业务会划分不同的VPC,不同VPC可能会部署在不同的DC中,业务之间如果有互通的需求,就要求VPC之间能跨DC进行L3互通(VPC之间互通一般为L3互通,如果需要L2互通则需要将VM划分到同一个VPC中)。

业务容灾/多活

业务容灾和多活主要分为两种方式,首先针对比较新的业务系统,客户自己可以通过GSLB(全局负载均衡)的方式进行容灾和多活,具体方式是两个DC同时部署相同的业务,业务相同同时IP地址不同,这样两套系统可以进行容灾处理。这种方式对网络没有什么特别的诉求,但是针对比较旧的一些系统,会要求迁移到容灾中心后,IP地址不能变化,这种情况下,就需要支持跨DC的二层互通。

Multi-Fabric跨DC解决方案解锁无限可能

为了解决这些问题,星融元推出了跨DC解决方案Multi-Fabric使用VXLAN、BGP-EVPN等技术对L2和L3网络进行扩展。这样,用户的应用程序就可以在多个数据中心之间进行迁移、负载均衡、网络容灾切换等操作,而无需担心网络问题,帮助管理多个数据中心之间的网络和资源,提高业务的可扩展性和可靠性。

Multi-Fabric方案简介

使用Multi-Fabric方式的DCI互通,如图所示,在本方案中:

  • DCI Leaf间推荐使用eBGP建立VXLAN隧道,在DC内使用eBGP建立VXLAN隧道。
  • 如果同时有DCI L2&L3互通需求时,DCI Leaf采用双活部署,这样可以使DCI Leaf专注于DCI网络和数据中心网络之间的数据转发,而Border Leaf专注于数据中心网络和外部网络之间的数据转发。
  • L2互通需求:DCI之间有L2互通需求,需要手动开启L2互通功能,建议DCI Leaf分设独立部署。为了避免广播风暴、MAC地址表项限制、环路问题,在没有L2互通需求时L2互通功能默认未开启。

物理网络说明

DCI互联线路

  • 直连链路(裸光纤或者DWDM);

  • 企业自有的或者电信运营商的单租户/多租户layer 3 WAN服务;

PS:建议使用能够通过EVPN自动建立VXLAN隧道的链路,类似光纤互联网(Fiber Internet) 等无法运行EVPN的线路,不推荐使用。

Underlay路由设计

Underlay网络设计说明
► Fabric内、DCI Leaf间的Underlay路由推荐使用eBGP,三层路由可达即可;
► 同一个DCI Leaf组VTEP IP相同;
► 同一个DCI Leaf组BGP的Router-ID不同;
► DCI Leaf双活设备组内部两台设备之间通过三层互联,跑动态路由协议;

Overlay路由设计

通过建立三条VXLAN隧道可以支持跨数据中心L2互通和L3互通:

  • L2互通时,不同的二层通过不同的二层VNI进行区分,通过RD/RT进行喜好选择;
  • L3互通时,不同VPC通过VNI进行隔离,保证跨数据中心VM之间的通信和隔离,通过VPC中RD/RT值进行路由喜好选择。

Overlay网络设计说明
► Fabric内、DCI Leaf间的Overlay路由推荐使用eBGP EVPN;

► DCI Leaf设备上通过BGP EVPN对等体所属的水平分割组,避免BUM流量转发出现环路(DCI Leaf节点收到BUM流量后,不会再转发给属于同一水平分割组的设备,避免因重生成而产生的环路)以及Fabric内重复路由;

► DCI Leaf设备上根据网络需求开启L2互通、L3互通功能,进行BGP EVPN路由重生成;

DCI Leaf路由通告

  • Type3路由通告,该类型路由在VXLAN控制平面中主要用于VTEP的自动发现和VXLAN隧道的动态建立。作为BGP EVPN对等体的VTEP,通过Type3路由互相传递二层VNI和VTEP IP地址信息。创建一个头端复制表,用于后续BUM报文在Fabric内部及Fabric之间转发。
  • 租户VPC互通的网段路由,通过路由重分发功能将BGP EVPN Type5前缀路由从源端站点的DCI Leaf扩散给目的端站点的DCI Leaf。
  • 租户VPC发布的主机路由(Subnet跨Fabric延展场景),通过BGP EVPN Type2 IRB类型路由发布32位主机路由,通过route-map使用明细路由进行引流。

DCI Leaf MAC地址通告

  • 主机MAC地址通告,要实现同子网主机的二层互访,两端VTEP需要相互学习主机MAC。作为BGP EVPN对等体的VTEP之间通过MAC重分发功能交换Type2 MAC路由,可以通过相互通告已经获取到的主机MAC。

关注vx公号“星融元Asterfusion”,获取更多技术分享和最新产品动态。

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

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

相关文章

设计模式之装饰者模式

文章目录 星巴克咖啡订单项目(咖啡馆)方案 1-解决星巴克咖啡订单项目方案 1-解决星巴克咖啡订单问题分析方案 2-解决星巴克咖啡订单(好点)方案 2-解决星巴克咖啡订单问题分析装饰者模式定义装饰者模式原理装饰者模式解决星巴克咖啡订单装饰者模式下的订单…

【LeetCode算法系列题解】第51~55题

CONTENTS LeetCode 51. N 皇后(困难)LeetCode 52. N 皇后 II(困难)LeetCode 53. 最大子序和(中等)LeetCode 54. 螺旋矩阵(中等)LeetCode 55. 跳跃游戏(中等) …

跨站请求伪造(CSRF)攻击与防御原理

跨站请求伪造(CSRF) 1.1 CSRF原理 1.1.1 基本概念 跨站请求伪造(Cross Site Request Forgery,CSRF)是一种攻击,它强制浏览器客户端用户在当前对其进行身份验证后的Web 应用程序上执行非本意操作的攻击&a…

Debian离线安装mysql

PS:虽然已经分享了很多安装各种环境订的教程,但是每个客户的环境不一样,那就得重新来一次,其实都是大同小异的,但是里面其实也是存在不少坑的,今天我们就来安装一个新的东西,Debian 11离线安装mysql,为什么…

Linux命令200例:bc是用于数学计算的高级计算器

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师&#xff0…

单片机通用学习-​什么是寄存器?​

什么是寄存器? 寄存器是一种特殊的存储器,主要用于存储和检查微机的状态。CPU寄存器用于存储和检查CPU的状态,具体包括计算中途数据、程序因中断或子程序分支时的返回地址、计算结果为零时的负值、计算结果为零时的信息、进位值等。 由于CP…

基于Yolov5的摄像头吸烟行为检测系统(pytoch)

目录 1.数据集介绍 1.1数据集划分 1.2 通过voc_label.py生成txt 1.3 小目标定义 2.基于Yolov5的吸烟行为检测性能提升 2.1采用多尺度提升小目标检测精度 2.2 多尺度训练结果分析 2.3基于多尺度基础上加入BiFormer: 基于动态稀疏注意力构建高效金字塔网络架构 2.3.1 BiFo…

css让元素保持等比例宽高

使用新属性 aspect-ratio: 16/9; 代码示例 <style>div {width: 60%;/* 等比例宽高 */aspect-ratio: 16/9;background-color: red;margin: auto;}</style> </head><body><div></div> </body>示例 aspect-ratio兼容性

分布式系统的多数据库,实现分布式事务回滚(1.7.0 seata整合2.0.4nacos)

正文 1、解决的应用场景是分布式事务&#xff0c;每个服务有独立的数据库。 2、例如&#xff1a;A服务的数据库是A1&#xff0c;B服务的数据库是B2&#xff0c;A服务通过feign接口调用B服务&#xff0c;B涉及提交数据到B2&#xff0c;业务是在B提交数据之后&#xff0c;在A服…

SpringBoot集成WebSocket

SpringBoot集成WebSocket 项目结构图 项目架构图 前端项目 socket.js 注意前端这里的端口是9000, 路劲是ws开头 function createScoket(token){var socket;if(typeof(WebSocket) "undefined") {console.log("您的浏览器不支持WebSocket");}else{var ho…

git 提交错误,回滚到某一个版本

git log 查看版本号 commit 后面跟的就是版本号git reset --hard 版本号 &#xff08;就可以回滚到你要去的版本&#xff09;git push -f &#xff08;因为本地回滚了&#xff0c;所以和远程会差几个版本。所以这时候只有强制推送&#xff0c;覆盖远程才可以&#xff09;

【AIGC专题】Stable Diffusion 从入门到企业级实战0401

一、概述 本章是《Stable Diffusion 从入门到企业级实战》系列的第四部分能力进阶篇《Stable Diffusion ControlNet v1.1 图像精准控制》第01节&#xff0c; 利用Stable Diffusion ControlNet Inpaint模型精准控制图像生成。本部分内容&#xff0c;位于整个Stable Diffusion生…

常用命令之mysql命令之show命令

一、mysql show命令简介 mysql数据库中show命令是一个非常实用的命令&#xff0c;SHOW命令用于显示MySQL数据库中的信息。它可以用于显示数据库、表、列、索引和用户等各种对象的信息。我们常用的有show databases&#xff0c;show tables&#xff0c;show full processlist等&…

10.Redis 渐进式遍历

Redis 渐进式遍历 渐进式遍历scan 渐进式遍历 keys 命令一次性的把整个redis中所有的key都获取到&#xff0c;keys *但这个操作比较危险&#xff0c;可能会一下子得到太多的key,阻塞 redis 服务器。 通过渐进式遍历&#xff0c;就可以做到&#xff0c;既可以获取到所有的 key&…

在PHP8中遍历数组-PHP8知识详解

所谓遍历数组就是把数组中的变量值读取出来。遍历数组中的所有元素对程序员来说是经常使用的操作&#xff0c;通过遍历数组可以完成数组元素的查询工作。 这好比你去商场买东西一样&#xff0c;要买什么东西&#xff0c;就去该区域浏览一遍&#xff0c;以便找出适合自己的产品…

css伪类first-child,last-child,写在当前要选择的标签上

.text-box{margin-top: 14px;& span:first-child{color:red;} } CSS - 选中最后一个元素&#xff08;选择器&#xff09;_css最后一个元素选择器_王佳斌的博客-CSDN博客

springboot自动装配原理,手写一个starter。

文章目录 springboot自动装配原理手写starter手写starter总结&#xff1a; springboot自动装配原理 口述&#xff1a; springboot自动装配的话它其实就是只需要我们添加一个starter起步依赖&#xff0c;它就能完成这个依赖组件相关Bean的自动注入&#xff0c;其实就是自动的将…

使用Python进行健身手表数据分析

健身手表(Fitness Watch)数据分析涉及分析健身可穿戴设备或智能手表收集的数据&#xff0c;以深入了解用户的健康和活动模式。这些设备可以跟踪所走的步数、消耗的能量、步行速度等指标。本文将带您完成使用Python进行Fitness Watch数据分析的任务。 Fitness Watch数据分析是健…

S7-1200/1500增量式PID(输出归一化、支持PWM输出)

离散增量式PID算法公式请查看下面文章链接: 三菱PLC增量式PID算法FB(带死区设置和外部复位控制)_用三菱plc自己编写pid算法_RXXW_Dor的博客-CSDN博客关于PID废话不多说,各种位置式增量式资料和公式网上也非常多。PID从提出和发展目前已经一个世纪过去了,还在不断研究创新,…

Java多线程(Thread)详解之启动与中断

在我的前一篇博客中直接介绍了Thread的”五种“打开方式&#xff1a;Thread的”五种“打开方式https://blog.csdn.net/qq_45875349/article/details/132644717?spm1001.2014.3001.5501 但是还没有详细的对Thread类进行说明&#xff0c;这篇博客主要对Thread类进行介绍&#x…