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

跨数据中心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”,获取更多技术分享和最新产品动态。

相关文章:

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

云数据中心里,为什么需要DCI互通? 云化数据中心,网络资源通过虚拟化技术形成资源池,实现业务与物理网络解耦,通过网络虚拟化,物理网络资源可以被分成多个虚拟网络资源,从而提高网络资源的使用效…...

upload-labs靶场通关详解

文章目录 Pass-01Pass-02Pass-03Pass-04Pass-05Pass-06Pass-07Pass-08Pass-09Pass-10Pass-11Pass-12Pass-13Pass-14Pass-15Pass-16Pass-17Pass-18Pass-19Pass-20方法一(文件夹名欺骗绕过)方法二(%00截断攻击) Pass-21 Pass-01 绕过…...

Leetcode刷题笔记--Hot41-50

1--二叉树的层序遍历(102) 主要思路: 经典广度优先搜索,基于队列; 对于本题需要将同一层的节点放在一个数组中,因此遍历的时候需要用一个变量 nums 来记录当前层的节点数,即 nums 等于队列元素的…...

「MySQL-02」数据库的操纵、备份、还原和编码规则

目录 一、库操作 1. 创建数据库 2. 查看所有数据库 3. 删除数据库 4. 修改数据库 5. 进入一个数据库 二、查看和设置数据库的编码规则 1. MySQL的两个编码规则:字符集和校验规则 2. 查看MySQL当前使用的字符集以及校验规则 3. 查看MySQL支持的所有字符集 4. 查看MyS…...

Effective C++条款24——若所有参数皆需类型转换,请为此采用non-member涵数(设计与声明)

我在导读中提过,令classes支持隐式类型转换通常是个糟糕的主意。当然这条规则有其例外,最常见的例外是在建立数值类型时。假设你设计一个class用来表现有理数,允许整数“隐式转换”为有理数似乎颇为合理。的确,它并不比C内置从int…...

决策工具箱:战略分析必备工具与框架

跟随时代的步伐,企业战略也在不断演化。无论是初创企业还是知名企业,都需要有效的战略工具来指导其业务发展。探索这些必备工具,并学习如何最大限度地利用它们,是企业的一个学习目标。 战略分析工具和框架有很多,其中…...

【压力测试指南】没有任何文档,小白也可以做的压力测试

前言 一般在执行压力测试之前,会由开发提供出接口文档,包含一些接口的详细参数,便于测试工程师编写测试脚本。但在某些情况下,接口等相关文档缺失,那作为Tester,我们该如何顺利的实施压力测试呢&#xff1…...

Linux: memory: memblock: debug

文章目录 代码memblock=debug实例log代码 将内存相关的一些日志打开: static int __init early_memblock(char *p) {if (p && strstr(p, "debug")...

搬家快递服务小程序的便利性

在当今快节奏的生活中,搬家可能是很多人都需要面对的问题。无论是新房子还是新办公室,都需要高效、便捷的搬家服务。本文将介绍如何使用第三方小程序制作平台,如乔拓云平台,开发一款高效便捷的搬家服务小程序。 1. 注册登录第三方…...

软件架构师 Debugging

软件架构师 Debugging 目录概述需求: 设计思路实现思路分析 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survi…...

​7.1 项目1 学生通讯录管理:文本文件增删改查(C++版本)(自顶向下设计+断点调试) (A)​

C自学精简教程 目录(必读) 作业目标: 这个作业中,你需要综合运用之前文章中的知识,来解决一个相对完整的应用程序。 作业描述: 1 在这个作业中你需要在文本文件中存储学生通讯录的信息,并在程序启动的时候加载这些…...

学习使用php判断阿里云oss图片单图或批量上传、查询图片文件是否存在

学习使用php判断阿里云oss图片单图或批量上传、查询图片文件是否存在 doesObjectExist doesObjectExist 主要函数doesObjectExist /*** Base64上传文件* param string|array $images* param string $model_path* param string $model_type* param string $upload_path* param…...

重磅| Falcon 180B 正式在 Hugging Face Hub 上发布!

引言 我们很高兴地宣布由 Technology Innovation Institute (TII) 训练的开源大模型 Falcon 180B 登陆 Hugging Face! Falcon 180B 为开源大模型树立了全新的标杆。作为当前最大的开源大模型,有180B 参数并且是在在 3.5 万亿 token 的 TII RefinedWeb 数…...

Linux命令行

目录 CLI GUI 命令行界面 图形界面 命令行提示符 # $ ​编辑 命令一般由三个部分组成 历史命令,使用上下键,或者使用history,ctrlr搜索历史命令 通配符 *,? 切换用户 su 作业管理 &,jobs,bg,fg CLI GUI 命令行界面 …...

[持续更新]计算机经典面试题基础篇Day1

[通用]计算机经典面试题基础篇Day1 1、jvm的组成 类加载器(Class Loader):负责将编译后的Java类加载到JVM中,并在运行时动态加载所需的类。运行时数据区(Runtime Data Area):是JVM的内存管理区…...

ProcessWindowFunction 结合自定义触发器的陷阱

背景: flink中常见的需求如下:统计某个页面一天内的点击率,每10秒输出一次,我们如果采用ProcessWindowFunction 结合自定义触发器如何实现呢?如果这样实现问题是什么呢? ProcessWindowFunction 结合自定义触发器实现…...

什么是jvm

一、初识JVM(虚拟机) JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Jav…...

kettle通过java步骤获取汉字首拼

kettle通过java步骤获取汉字首拼 用途描述 一组数据,需要获取汉字首拼后,输出; 实现效果 添加jar包 pinyin4j-2.5.0.jar 自定义常量数据 Java代码 完整代码: import net.sourceforge.pinyin4j.PinyinHelper; import net.sou…...

Conformer: Local Features Coupling Global Representationsfor Visual Recognition

论文链接:https://arxiv.org/abs/2105.03889 代码链接:https://github.com/pengzhiliang/Conformer 参考博文:Conformer论文以及代码解析(上)_conformer代码_从现在开始壹并超的博客-CSDN博客 摘要 在卷积神经网络…...

java8-Stream流常用API

什么是 Stream Stream(流)是 Java 8 引入的一个新的抽象概念,它代表着一种处理数据的序列。简单来说,Stream 是一系列元素的集合,这些元素可以是集合、数组、I/O 资源或者其他数据源。 Stream API 提供了丰富的操作方…...

React 任务调度

React 任务池 不同的fiber任务有不同的优先级,为了用户体验,React需要先处理优先级高的任务。 为了存储这些任务,React中有两个任务池: // Tasks are stored on a min heap var taskQueue []; // 存储立即要执行的任务 var tim…...

小白开始学习C++

​​​​第一节&#xff1a;控制台输出hello word&#xff01; #include<iostream> //引入库文件 int main() { //控制台输出 hello word! 之后回车 std::cout << "hello word!\n"; #include<iostream> //引入库文件int main() {//控制…...

SpringMVC入门的注解、参数传递、返回值和页面跳转---超详细教学

前言&#xff1a; 欢迎阅读Spring MVC入门必读&#xff01;在这篇文章中&#xff0c;我们将探索这个令人兴奋的框架&#xff0c;它为您提供了一种高效、灵活且易于维护的方式来构建Web应用程序。通过使用Spring MVC&#xff0c;您将享受到以下好处&#xff1a;简洁的代码、强大…...

【复习socket】每天40min,我们一起用70天稳扎稳打学完《JavaEE初阶》——28/70 第二十八天

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示:重难点★✔ 蓝色文字表示:思路以及想法★✔   如果大家觉得有帮助的话,感谢大家帮忙 点…...

vue2踩坑之项目:生成二维码使用vue-print-nb打印二维码

1. vue2安装 npm install vue-print-nb --save vue3安装 npm install vue3-print-nb --save 2. //vue2 引入方式 全局 main.js import Print from vue-print-nb Vue.use(Print) ------------------------------------------------------------------------------------ //vue2 …...

【iVX】十五分钟制作一款小游戏,iVX真有怎么神?

个人主页&#xff1a;【&#x1f60a;个人主页】 新人博主&#xff0c;喜欢就关注一下呗~ 文章目录 前言iVX介绍初上手布置背景制作可移动物体总结&#xff08;完善步骤&#xff09; 前言 在上篇文章中&#xff0c;我向大家介绍了一种打破常规的编程方式——iVX&#xff0c;可…...

SpringMVC常用注解、参数传递、返回值

目录 前言 一、常用注解 二、参数传递 ​编辑 1. 基础类型String类型 2. 复杂类型 3. RequestParam 4. PathVariable 5.RequestBody 6. RequestHeader 三、方法返回值 一&#xff1a;void 二&#xff1a;String 三&#xff1a;Stringmodel 四&#xff1a;ModelAndVi…...

新公司第一次上架新APP需要提前准备哪些材料?

目录 前言一、需要上架的应用市场二、需要准备的资料总结 前言 前不久&#xff0c;使用一家新公司刚刚上架了一款新的APP项目。特此记录一下&#xff0c;现在第一次上架一款APP需要提前准备的各项材料。 一、需要上架的应用市场 现在&#xff0c;上架一款新的APP主流的应用市…...

『C语言进阶』指针进阶(一)

&#x1f525;博客主页&#xff1a; 小羊失眠啦 &#x1f516;系列专栏&#xff1a; C语言 &#x1f325;️每日语录&#xff1a;无论你怎么选&#xff0c;都难免会有遗憾。 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 前言 在C语言初阶中&#xff0c;我们对指针有了一定的…...

2605. 从两个数字数组里生成最小数字(Java)

给你两个只包含 1 到 9 之间数字的数组 nums1 和 nums2 &#xff0c;每个数组中的元素 互不相同 &#xff0c;请你返回 最小 的数字&#xff0c;两个数组都 至少 包含这个数字的某个数位。 示例 1&#xff1a; 输入&#xff1a;nums1 [4,1,3], nums2 [5,7] 输出&#xff1a;1…...