【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

Direct Connect A/B 段双活实现

  • 2019-09-18
  • 本文字数:2641 字

    阅读完需:约 9 分钟

Direct Connect A/B段双活实现

1、AWS Direct Connect 简介

AWS Direct Connect 通过标准的以太网光纤将您的内部网络连接到 AWS Direct Connect 位置。光纤的一端接到您的路由器,另一端接到 AWS Direct Connect 路由器。有了此连接以后,您就可以创建直接连接到公共 AWS 服务(如 Amazon S3)或 Amazon VPC 的虚拟接口,从而绕过您的网络路径中的 Internet 服务提供商,即我们通常所说的专线服务。本文主要介绍在专线高可靠的前提下如何实现基于 A/B 段的双活。

1.1 AWS Direct Connect 主要组成部分

建立一条专线,AWS Direct Connect 主要包含以下两个组件:


  • 连接:在 AWS Direct Connect 位置创建连接以建立从您的本地数据中心到 AWS 区域的网络连接。

  • 虚拟接口:创建虚拟接口以启用对 AWS 服务的访问。公有虚拟接口允许对公共服务的访问,如 Amazon S3。私有虚拟接口允许对您 VPC 的访问。

  • 有了专线连接,您就具备了你的本地资源和 AWS 资源通过专有线路通信的能力。此时我们可以根据需要建立公有虚拟接口或者私有虚拟接口和 AWS 资源互联。本文主要讨论针对私有虚拟接口的互联实现。


私有虚拟接口允许你与 AWS VPC 资源进行访问,但前提是私有虚拟接口要与 VPC 联通。AWS 提供了两种与 VPC 联通的服务:VGW(Virtual private gateway)和 DX Gateway(Direct Connect gateway)。关于 VGW(Virtual private gateway)和 DX Gateway(Direct Connect gateway)的使用,这里不再赘述,可参考 AWS 官方文档:


https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html

1.2 AWS Direct Connect 高可靠设计

如下图一所示,客户建立了一条本地数据中心到 AWS 的专线意味着客户具备了一条从本地数据中心到 AWS Direct Connect Location 的连接,在该连接的基础上可以通过私有虚拟接口连接到虚拟私有网关(VGW),从而实现本地数据中心到 AWS VPC 资源的专线连接。



图一 Direct Connect 示意图


任何资源都存在发生故障导致暂时不可用的情况。因此,为保障 Direct Connect 的高可靠性,我们通常建议客户使用两条专线,并将专线连接到 AWS 不同的两个 Direct Connect Location 上。如图二所示:



图二 Direct Connect 高可靠设计


在这种高可靠连接的情况下,当一个 Direct Connect Location 由于种种原因暂时不可用时,可以快速切换到另外一条专线中,以保障客户业务的连续性。所以,通常情况下两条专线采用完全主备的配置模式。在 AWS Direct Connect 中,我们推荐客户网关(CGW)和 VPC 虚拟私有网关(VGW)间使用 BGP 协议进行路由的传递。因此,常用的方式是使用 AS Patch 控制由 AWS 到客户本地数据中心的路由,使用 Local Preference 控制客户本地数据中心到 AWS 的路由。


主备模式一定程度保障了客户业务连续性,当主用线路故障时,通过 BGP 路由协议可以快速切换到备用线路(为加快 BGP 协议路由切换,可以在 CGW 端使能 BFD 检测)。很明显纯粹的主备模式下,备用线路多数时间完全处在空闲状态,如何才能提升线路的利用率呢?下面我们一起来看看如何通过策略路由的方式实现基于 A/B 段的双活。

2、AWS Direct Connect A/B 段双活技术实现

A/B 段双活即我们将客户本地数据中心资源使用的 IP 地址段划分为 A 和 B 两类地址段,同时将 A 和 B 两类地址段与 AWS 互通的流量分配到两条专线中。如图三示意,A 段使用专线 C,B 段使用专线 D,实现本地数据中心与 AWS 的通信,同时两条线路互为备份。



图三 A/B 段双活实现效果示意

2.1 AWS 到本地数据中心路由控制

如图四所示,前文提到过,AWS 虚拟专用网关(VGW)可以通过 BGP 协议中 AS Path 长度来选择路由。因此,我们可以在 CGW 端通过为不同网段添加 AS Path 来控制 AWS 端使用的线路:CGW A 正常通告 A 类网段,为 B 类网段 Prepend AS;CGW B 正常通告 B 类网段,为 A 类网段 Prepend AS。这样,AWS VGW 端会将到达 A 类网段的主路由设置为 CGW A,CGW B 为备份路由;同理,AWS VGW 端会将到达 B 类网段的主路由设置为 CGW B,CGW A 为备份路由。



图四 AWS 到本地数据中心路由控制

2.2 本地数据中心到 AWS 路由控制

如图五所示,在主备场景中我们推荐使用 Local Preference 来控制本地数据中心到 AWS 的路由。但是在 A/B 段双活的场景下,目的网段只有 VPC Block 一个网段,而我们要区分本地数据中心的源 IP 地址段来选择路由。显然 Local Preference 的方式是行不通。



图五 A/B 段双活示意


基于源 IP 地址段控制路由,我们不难想到策略路由。本文重点说明基于策略路由实现流量调度,因此数据中心本地网关 Router 和 CGW 间我们使用静态路由的方式(流量常规情况下主要靠策略路由调度),实际使用中客户可以根据需求选择动态路由协议。


首先,客户 CGW 间建立 iBGP 链接,以使能 AWS 地址段在 CGW A 和 CGW B 间的传播。基于策略路由调度客户 A/B 网段的流量主要由数据中心本地网关 Router 上的两条静态路由和两条策略路由实现:


  • 静态路由一:指向 CGW A,主静态路由,Track CGW A

  • 静态路由二:指向 CGW B,备份静态路由,路由优先级低于静态路由一

  • 策略路由一:源自 A 类段的流量指向 CGW A,Track CGW A

  • 策略路由二:源自 B 类段的流量指向 CGW B,Track CGW B

3、HA 验证

基于以上配置,我们来验证各种故障情况下 HA 切换。如图六,当 CGW A 故障时,HA 切换:静态路由一、策略路由一失效。此时 A 段走备份静态路由二,B 段走策略路由二



图六 CGW A 故障 HA 切换


如图七,当 Direct Connect Location C 故障或者专线故障时,HA 切换:CGW A 通过 iBGP 从 CGW B 学习到 AWS 路由



图七 Direct Connect Location C 故障 HA 切换


如图八,当 CGW B 故障时,HA 切换:策略路由二失效,A 段策略路由一,B 段静态路由一



图八 CGW B 故障 HA 切换


如图九,当 Direct Connect Location D 故障或者专线故障时,HA 切换:CGW B 通过 iBGP 从 CGW A 学习到 AWS 路由



图九 Direct Connect Location D 故障 HA 切换


以上 HA 切换分析,我们针对 CGW、专线连接、Direct Connect Location 等故障进行了切换分析。由于资源限制,并没有给出详细的配置。实际使用中需要客户结合 AWS 服务和本地数据中心网络设备综合考虑,以实现策略路由和动态路由配合最终实现 A/B 段双活。


作者介绍:


张涛


AWS 解决方案架构师,AWS 的云计算方案架构的咨询和设计,同时致力于 AWS 云服务在国内和全球的应用和推广。加入 AWS 之前曾就职于 H3C、网易等公司,拥有丰富的企业 IT 信息化经验。


本文转载自 AWS 博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/a-b-network-block-for-aws-direct-connect/


2019-09-18 18:37914
用户头像

发布了 1804 篇内容, 共 87.6 次阅读, 收获喜欢 73 次。

关注

评论

发布
暂无评论
发现更多内容

程序员的快乐,只需要这7款工具!

Jackpop

毕业设计项目

panxiaochun

架构实战营

架构实战-毕业设计项目

无名

架构实战营 「架构实战营」

大数据集群节点磁盘负载不均衡怎么办?

明哥的IT随笔

大数据 hadoop CDH CDP

「offer来了」1张思维导图,6大知识板块,带你梳理面试中CSS的知识点!

星期一研究室

css3 前端开发 面试题 面试‘ HTML5, CSS3

架构实战营 - 毕业设计

随风King

「架构实战营」

大画 Spark :: 网络(3)-回复消息机制OneWayMessage与RpcRequest对比

dclar

大数据 spark 源代码 Spark 源码

技术管理养成:一个普通的在线文档做瀑布与敏捷的融合

dclar

团队管理 项目管理 敏捷开发 团队协作 CTO

盘点 2021|人只有跌入谷底,每一步都是往上走的。

踏雪痕

生活 盘点2021 盘点 2021

第一节:创建SpringBoot项目并运行HelloWorld

入门小站

springboot

大画 Spark :: 网络(2)-下篇-通过网络收取消息的过程

dclar

大数据 spark 源代码 Spark 源码

有传闻说,写好总结可以升职加薪?

程序人生

Salesforce架构师的10大原则

俞凡

架构 大厂实践 Salesforce

渗透测试思路总结

网络安全学海

黑客 信息安全 渗透测试 安全漏洞

连续读书1000天,我开始思考一篇好的读书总结是什么样子的

宇宙之一粟

读书总结 1月月更

关于项目中 Repository 层的思考

CRMEB

ABAP 调用第三方 API,遇到乱码该怎么办?

Jerry Wang

Unicode abap 字符编码 1月月更

架构训练营 - 模块 9 作业

焦龙

架构训练营

LabVIEW条形码识别(实战篇—5)

不脱发的程序猿

图像识别 机器视觉 图像处理 LabVIEW 条形码识别

Java基础:UUID

程序员架构进阶

Java uuid 1月日更 2022

15 Promethus之核心组件介绍

穿过生命散发芬芳

Prometheus 1月月更

模块九作业:设计电商秒杀系统

危险游戏

架构实战营

低代码实现探索(十九)低代码的意义

零道云-混合式低代码平台

架构营模块九作业

GTiger

架构实战营

spring5.0.x 源码编译过程及踩坑记录

努力努力再努力

1月日更

[架构实战营] 模块六作业

Geek_0ed632

「架构实战营」

火狐浏览器一败涂地?

Jackpop

架构实战营模块五作业

曾竞超

架构实战营 「架构实战营」

毕业设计

dean

架构实战营

LeetCode每日一题 No.1716 计算力扣银行的钱

DawnMagnet

算法 rust LeetCode 力扣

网站安全检测:推荐8款免费的 Web 安全测试工具

喀拉峻

网络安全

Direct Connect A/B段双活实现_软件工程_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章