联盟时代VIII.灾难容错和切换(2)

简介: 在上期的分享中,笔者对Federation网络架构下满足“本地输出”要求的场景在出现故障时的容错和切换情况进行了说明。当整体NSX网络在设计时就充分考虑冗余的前提下,大部分的“组件故障”并不会引起大面积的“业务停摆”。但Edge集群的故障不仅仅会造成南北向网络可达性的中断,也同样会造成跨数据中心的东西向网络中断;因此笔者认为Edge集群的稳定性很大程度上决定了Federation网络的稳定性。今天的分享将围绕不满足“本地输出”的场景展开,看看在具有Tier1SR实例的Federation网络模型中,灾难容错和网络切换的情况究竟是如何的一番天地。


🐾 上期分享遗留问题的测试结果

在上期的分享中,笔者“天真”地想当然:如果承载延伸Tier0和Tier1网关的Edge集群与承载RTEP跨数据中心Overlay传输的Edge集群是不同的集群,那么就能将南北向业务和跨数据中心的东西向业务进行“合理的拆分”。当笔者信心满满地完成了edge-13边界传输节点的创建以及Edge集群的配置,准备验证想法的时候,被现实无情的打脸:

看来似乎无法对这两个业务进行拆分,这是上期遗留问题的测试结果。


🐾 测试前的准备工作

言归正题,在上期分享中笔者聊完了满足本地输出的几种情况,今天再来说说有Tier1SR的场景,并以此可以推断出Active-Standby模式的延伸Tier0网关下的灾难容错和切换情况。

首先,对于有Tier1SR的场景来说,流量默认会经过其中一个数据中心的Edge传输节点后再继续转发。因此,在这种场景下讨论Standby站点的Edge传输节点故障似乎“没有什么意义”;当然Edge节点故障一定会造成跨数据中心Overlay流量的中断,这点毋庸置疑;再者,对于Standby站点的Tier0网关来说,只会有南向从外部访问NSX网络的流量,不会有本站点北向访问外部流量的经过Standby站点的Tier0网关转发,因此讨论Tier0上联中断对于Standby站点来说似乎也“没有什么意义”。最后,我们还是要用实践来验证我们的猜想。

今天的分享依然基于下图所示的拓扑:

位于Secondary DataCenter(后文简称SDC)的web-21虚拟机在当前场景下尝试访问3.3.3.3这个互联网地址的时候,一定会经过自己SDC的出口,这是“本地输出”的典型南北向网络走向。

现在通过配置更新Primary DataCenter(后文称呼PDC)切换为“主站点,更新的方式很简单:为延伸的Tier1网关分配Edge集群,如下图所示:

更进一步,就edgecl-primary这个Edge集群来说,edge-11被定义为首选,edge-12被定义为次选;同样地,对于edgecl-secondary这个Edge集群来说,edge-21被定义为首选,edge-22为次选。

在完成上述配置后,再次访问web-21命令行,使用traceroute命令验证南北向数据流走向:

可以看到,web-21所有的南北向流量全部经过了PDC的网络设备进行转发;而位于PDC的web-11、web-12以及db-11的南北向流量保持之前由本地的网络设备转发不变;因此当前的环境已经不再是“本地输出”的架构,而是全部由PDC的Tier0网关承载所有与物理网络互联的南北向流量。



🐾 中断SDC所有Tier0网关上行链路

毫无疑问,这是一次“没有意义的测试”。因为位于SDC Edge集群的延伸Tier0网关SR实例全部的VLAN传输区域的上行链路不会承载SDC的NSX网络与外部网络的南北向流量。证明的方式也很简单,有兴趣的朋友可以自己去尝试一下:

  • 使用web-21长ping目标地址3.3.3.3,因为Tier1SR实例存在的关系,流量一定是从PDC的Tier0网关向上转发;
  • 然后中断SDC的Edge传输节点所有的VLAN传输区域上行链路。

如果中断SDC的Tier0网关上行链路会对南北向流量产生影响(无论是切换还是中断),那么长ping的数据包一定会有丢包。如果没有任何的丢包或者异常的高延迟ICMP回包,那说明根本没有受到影响。


🐾 SDC所有Edge传输节点故障

这个测试和之前“本地输出”场景下PDC传输节点故障的结果相同,跨数据中心的东西向流量会受到影响,从而导致整体的SDC南北向流量同样发生中断;在本次分享中,同样不多做赘述。


🐾 中断PDCTier0网关上行链路

接下来正式进入“有参考意义的测试”,如果PDC站点出现了NSX相关组件的故障,那么根据故障的情况不同,可能会对NSX Federation网络产生一些影响(无论是切换还是业务中断)。

最常见的就是PDC站点Tier0网关的上行链路出现了中断。如下图所示,这是正常情况下PDC和SDC的Tier0网关上行链路情况:绿色实线表示“活动”的链路,蓝色虚线表示“连接正常但备用”的链路。

毋庸置疑的是,以下几种情况不会造成任何的南北向网络中断:

  • 中断任意一根上行链路,模拟硬件设备网络接口故障或者线路物理中断;
  • 中断任意两根上行链路,模拟一台Edge传输节点整机故障或者一台上游物理核心整机故障或者“该巧不巧”同时出现了两个设备的网络接口故障等;
  • 中断任意三根上行链路,模拟机柜电源故障后导致同一个机柜中的一台上游物理核心设备以及Edge传输节点双双整机故障。这其实并不涉及Federation特有的知识点,而是普通NSX网络冗余特征。但是当出现4根上行链路同时故障的时候,情况可能就不一样了。
    🐾 同时中断所有的PDC Tier0网关上行链路

首先来看看如果PDC所有上游物理核心出现故障的场景,如下图所示:

PDC所有的南北向出口“全部封死”,但是tier0SR in Edge-11以及tier0SR in Edge-12依旧是正常运行的,所有的inter-SR iBGP链路也没有受到影响。

如下图所示,笔者关闭了模拟上游网络核心的VYOS虚拟机电源。

在Edge-11传输节点的命令行,笔者查看了tier0SR in Edge-11的路由表:

还记得169.254.32.6以及169.254.32.7么?这是tier0SR in Edge-21以及tier0SR in Edge-22的inter-SR iBGP链路的接口地址。看样子到达PDC Edge传输节点内运行的延伸Tier0SR实例的流量,应该会被转发到SDC后继续下一跳的路由。也就是说,南北向流量应该不会中断。

但现实又给了笔者“一记响亮的耳光”......(等等,为什么说又?)

无论是位于PDC的web-11和SDC的web-21均无法访问外部网络;但是NSX内部网络的互通不受到影响。

image.png

笔者在web-21虚拟机使用traceroute命令查看网络的走向,如下图所示:

数据包经过Tier1网关与Tier0网关之间的inter-Tier链路后如同“石沉大海”,杳无音信。

而在web-11虚拟机使用traceroute命令查看网络的走向,可以更明显地看到数据包被转发到了tier0SR in Edge-21以及tier0SR in Edge-22。

接下来,笔者做了一组PING和TRACEROUTE测试,发现“故障点”在Tier0SR与上游物理网络设备之间,如下图所示:

根据Traceroute命令的反馈结果,笔者在当前拓扑上描绘了数据包北上的路程:

10.10.1.211访问10.255.2.1(tier0SR in Edge-21的物理上联设备)

1> ESXi内核中的Tier1DR网关地址10.10.1.254

2> Tier1DR下一跳Tier1SR in Edge-11

3> Tier1SR in Edge-11下一跳Tier0DR in Edge-11

     Tier0DR in Edge-11下一跳Tier0SR in Edge-11

4> Tier0SR in Edge-11通过interSR iBGP链路到下一跳Tier0SR in Edge-21

5> ???(应该是到达了上游核心设备10.255.2.1接口)

那么在10.255.2.1这台设备上尝试ping虚拟机web-21又是如何的情况呢?

结果如上图所示,由于上游路由设备并没有通过eBGP学习到NSX Federation的路由,因此对于目的地址为10.10.1.0/24的数据包将命中默认路由条目继续北向转发,这造成了PDC所有Tier0SR上行链路中断后,最终引起NSX网络所有南北向流量中断结果的直接原因。

那么接下来摆在管理员面前需要讨论的问题有两个:

第一个问题,为什么上游设备没有学习到NSX网络的路由?

首先可以排除是eBGP本身的配置问题。因为在满足“本地输出”的场景中,SDC的路由是完全没问题的。且通过Global Manager(后文简称GM)同样可以验证这个说法。

因此造成无法学习到的原因还是因为“活动的”Edge没有切换到Edge-21以及Edge-22上,毕竟目前Edge-11和Edge-12还是正常的。

第二个问题,能不能通过一些方式来解决问题?

笔者于是简单尝试了一下,比如专门给非主站点的其他站点上游网络设备添加静态路由。

接着,分别在web-11和web-21尝试进行PING包测试,结果如下:

可以看到在添加了静态路由后两个数据中心的web-11和web-21都可以正常访问外部网络了。

现在笔者将PDC的上游设备重新恢复开机状态。

如下图所示,所有的流量全部恢复到经过PDC的Tier0SR进行南北向转发。

总结来说,如果位于PDC的物理核心出现了故障,默认情况下南北向网络会出现中断。管理员可以通过在其他站点(如SDC)添加静态路由来避免中断情况的发生。

再来看看如果PDC所有Edge网络出现故障的情况。

毫无疑问,如果Edge集群的所有节点都出现故障,那么跨数据中心的Overlay网络一定会出现中断。对于PDC站点来说,包括跨数据中心的东西向和南北向流量在内的几乎所有网络可达性都会出现“灾难”。


🐾 中断活动Edge传输节点

我们知道对于有Tier1SR实例的场景而言,真正的Active实例只会存在一个Edge传输节点中。在笔者的环境里,这台“天选之节点”被笔者设置为Edge-11,接下来笔者将关闭Edge-11的电源。

经过测试可以确认两个数据中心虚拟机的南北向流量总体并没有受到影响

虽然从TraceRoute的路径上看不出任何切换的变化(因为所有Tier1SR的Downlink地址是同一个),但可以确信的是,目前Tier1SR实例已经由Edge-12来承载。

image.png

在PDC的Local Manager(后文简称LM)管理界面上可以看到目前的活动节点已经是Edge-12。

由此可见,处于活动状态的Edge节点出现故障的时候,Federation会根据预先定义的顺序自动完成Tier1SR实例的切换,这并不会影响业务。


🐾 计划内的停机维护

上述所有的情况以及上期分享的“故障场景”均为计划外的停机维护。可以看到除了Edge集群全部故障外,其他计划外的停机维护都能通过Federation自身的冗余机制或者人为介入的方式实现自动的快速切换。在本篇的最后,我们来谈谈计划内的停机维护。所谓计划内的“停机”维护,可以理解为因为主客观的原因,管理员需要将当前活动的站点(如本示例中的PDC)切换到备用站点,而将备用站点中的某一个(如本示例中的SDC)切换到活动站点。在开始最后一次测试之前,笔者首先恢复Edge传输节点Edge-11。
如下图所示,因为笔者设置了故障切换模式为“主动”,因此当Edge-11开启电源并正常启动后,原先激活在Edge-12传输节点上的Tier1SR实例将重新回到Edge-11传输节点。

在PDC的LM界面,可以看到Tier0SR实例已经切换回Edge-11传输节点。

接下来,笔者将手动执行切换操作,以测试“计划内的停机维护”。操作方法非常简单,将Tier1SR实例的活动站点从PDC的Edge集群切换到SDC的Edge集群;系统会提示切换操作会造成网络中断。

在笔者完成切换后,长ping的两台虚拟机web-11和web-21均发生了短暂的网络中断(丢包);但中断都仅限于南北向流量,跨数据中心的东西向流量并没有发生中断。这说明Tier1SR实例已经完成了切换,现在活动的实例运行在SDC的Edge-21传输节点中。

image.png


在两台虚拟机的命令行使用traceroute命令验证南北向流量走向。其中位于SDC的web-21虚拟机将变成“本地输出”。

而位于PDC的web-11虚拟机会通过跨数据中心的Overlay链路,从tier0SR in Edge-21或者tier0SR in Edge-22实现自身南北向流量的路由与转发。

image.png

上述就是“计划内的停机维护”场景下NSX网络流量的变化情况。

至此,所有的测试项全部完成


写在最后

总结来说利用NSX网络本身的冗余性已经可以覆盖大部分故障场景下继续满足可用性的要求。对于满足“本地输出”的场景来说,因为所有站点的Tier0SR与上游网络设备之间在配置了动态路由协议的情况下,默认就能学习到路由;当出现站点级物理网络核心故障的时候,Federation会自动进行切换,确保南北向流量的连续性。而对于其他不满足“本地输出”的场景来说,默认情况下除了主站点外的其他站点上游物理核心无法通过动态路由协议学习到NSX网络,因此当Edge集群本身正常的情况下,就会出现南北向流量的中断;但这完全可以通过添加静态路由+BFD的方式相对完美地解决问题。

相关文章
|
2月前
|
弹性计算 数据安全/隐私保护 iOS开发
阿里云无影云电脑官网链接、收费价格、配置使用及问题解答FAQ
阿里云无影云电脑提供企业版(按月时长包+按需计费)与个人版(按核时计费)两种模式,支持Windows/macOS桌面体验。含官方入口、最新价格表、免费试用(企业版8核16G/1个月、个人版200核时)、多端客户端及高频FAQ。适合远程办公、设计、云游戏、编程等场景。
|
存储 监控 Linux
Linux: 检测磁盘坏块 你得会吧!
Linux: 检测磁盘坏块 你得会吧!
932 19
Linux: 检测磁盘坏块 你得会吧!
|
4月前
|
安全 网络安全 调度
直面新型DDoS攻击:基于SDK接入的端到端安全防护架构与技术实现
在数字化浪潮中,游戏、数字藏品、区块链、直播、电商、理财App等已成为互联网经济的核心支柱。然而,这些高价值、高并发的业务也成为了DDoS/CC攻击的重灾区。传统基于流量清洗和IP轮询的防护方案日益乏力,一种基于SDK接入的**端到端加密隧道**与**智能调度**技术正成为防护的新范式。本文将深入剖析其核心原理、架构实现,并结合代码示例,阐述如何为关键业务构建坚不可摧的“数字护盾”。
211 0
|
5月前
|
数据可视化 Java 关系型数据库
认识Activiti
工作流指如请假、报销等需审批的业务流程,通过可视化引擎实现自动化管理。它支持单/多节点审批,广泛应用于CRM、TMS、WMS等系统。主流技术包括BPMN、Activiti、Flowable等,推动了泛微、金蝶等企业的发展。
125 0
|
7月前
|
弹性计算 缓存 前端开发
交友源码APP开发搭建流程基本功能/正版聊天交友软件同城交友系统搭建 助你轻松开启浪漫同城社交
开发一款成功的同城交友APP,是技术、产品、运营和人性洞察的完美结合。它不仅仅是一个软件,更是一个创造连接、传递幸福的平台。 当用户在您的平台上结识了挚友、找到了伴侣,甚至拓展了事业圈子时,您就真正实现了“助你轻松开启浪漫同城社交”的使命。
568 0
|
7月前
|
前端开发 开发工具 iOS开发
原创Electron38.2+Vite7+Vue3+Pinia3+ArcoDesign客户端os管理系统模板
2025最新版原创研发Electron38.2+Vite7+Vue3 setup+ArcoDesign+Echarts仿MacOS/Wins风格桌面客户端OS系统解决方案。
402 10
|
7月前
|
弹性计算 监控 数据可视化
怎么使用阿里云的云监控服务?
阿里云云监控(CloudMonitor)提供免费、实时的云资源与应用性能监控服务,支持ECS、RDS等产品及网站、API监控。具备全方位监控、智能告警、数据可视化等功能,可通过控制台轻松设置监控项与阈值,及时发现异常,保障系统稳定运行。
|
6月前
|
JSON API 数据安全/隐私保护
拼多多搜索关键词获取商品信息的API接口
本文介绍如何通过拼多多开放平台API实现商品关键词搜索,涵盖注册账号、获取密钥、查阅文档、构造请求、解析数据等步骤,基于Python示例演示完整流程,并提醒权限限制、错误处理与安全事项,助力开发者高效获取商品信息。(238字)
756 0
|
12月前
|
JavaScript 前端开发 开发者
Vue 动态添加 HTML 元素组件封装使用方法及长尾关键词优化指南
本文详细介绍了Vue中动态添加HTML元素的多种方法与组件封装技巧,涵盖条件渲染(v-if/v-show)、列表渲染(v-for)、动态组件(:is)、手动DOM操作及动态创建组件实例等内容。同时提供了性能优化建议,如批量更新DOM、使用v-show代替v-if以及懒加载大型组件等。通过合理封装组件,可提高代码复用性和维护性。文中还附有具体示例代码,帮助开发者更好地理解和应用相关技术。适用于前端开发人员学习和实践Vue动态元素处理与组件设计。
277 19
|
11月前
基于MATLAB实现机器视觉中通过单幅图像实现测量长度面积
基于MATLAB实现机器视觉中通过单幅图像实现测量长度面积
346 1

热门文章

最新文章