本站点使用Cookies,继续浏览表示您同意我们使用Cookies。 Cookies和隐私政策>

首页 信息速查 产品智能选型 IP知识百科

什么是自适应路由?

自适应路由是一种根据网络拓扑和流量负载变化,进行动态路由决策的技术。通过主动感知链路拥塞状态,优选路径短、不拥塞的报文转发路径,达到提升网络吞吐和韧性、降低网络延迟的效果。当前自适应路由与直连拓扑网络配合应用于大型超算中心。

为什么需要自适应路由?

建设大型超算中心需要实现大规模计算节点互联,但集群规模的扩大导致网络时延增加、部署成本提高,无法满足算力需求和部署要求。直连拓扑网络兼具接入规模大、网络直径小的优势,自适应路由与其配合使用,当链路畅通时,优先选择最短路径转发报文;当最短路径发生拥塞时,选择其他不拥塞的非最短路径转发报文,充分利用网络链路,提升带宽利用率,在支持大规模组网的同时,满足高吞吐、低时延、低成本的要求。

直连拓扑网络自适应路由示意图
直连拓扑网络自适应路由示意图

什么是Dragonfly直连拓扑网络?

直连拓扑网络中的每个网络节点均有计算节点与之直接相连,没有专门用于网络节点间互连的网络设备,即网络中的设备均为Leaf设备,没有传统组网中的Spine设备。Dragonfly组网是当前应用最广泛的直连拓扑网络,由多个Group(也称为组)组成,在Group间和Group内均建立全连接(Full-mesh)关系,即:每对Group间使用1条或多条链路连接,Group内的每个网络节点都与Group内其他网络节点直接互连,且可以同时连接到其他Group和计算节点。

每个网络节点可以同时接入如下链路:

  • global link:又称为inter-group link,用于连接属于不同Group的节点。接入global link的节点端口称为global port。
  • local link:又称为intra-group link,用于连接属于同一Group的节点。接入local link的节点端口称为local port。
  • access link:用于连接网络节点和计算节点。接入access link的节点端口称为access port。
自适应路由组网与拓扑结构对照示意图
自适应路由组网与拓扑结构对照示意图

Dragonfly组网中,每个网络节点与同Group中其他网络节点相连的带宽和为a,与计算节点相连的带宽和为p,与其他Group相连的带宽和为h。为了实现更好的负载均衡,推荐取值a=2p=2h,如果选择其他取值,需满足a>=2h且2p>=2h。为保证更好的网络性能,建议充分使用设备接口,对于不同规模组网的链路规划建议如下:

  • 小型组网:Group内每个网络节点与其他所有Group通过多条平行链路互连。
  • 中型组网:Group内每个网络节点与其他所有Group通过一条链路互连。
  • 大型组网:每对Group间通过一条链路互连。
Dragonfly组网场景
Dragonfly组网场景

自适应路由是如何工作的?

组网中每个节点都有多条转发路径可供选择,但仅在Ingress节点(报文的入口网络节点)上执行自适应路由算法,选择报文的最优转发路径,后续非Ingress节点直接通过查找路由表转发报文即可,不需要再重新选路 。

这种实现方案建立在每个网络节点维护有3张路由表的基础上,分别是公网路由表(维护最短路径的路由信息)、Non-min VPN实例的路由表(维护非最短路径的路由信息)、Mix VPN实例的路由表(维护最短路径和非最短路径的路由信息)。对于从access port接收的报文,需要根据自适应路由算法选择最短路径或非最短路径,因此需要在Mix VPN实例的路由表中查找路由信息;对于从global port或者local port的min子接口接收的报文,需要在公网路由表中查找最短路径的路由信息;对于从local port的non-min子接口接收的报文,需要从Non-min VPN实例的路由表中查找非最短路径的路由信息。

报文的转发流程可以分为2个阶段:

  1. Ingress节点通过查找best path表选择报文的最优转发路径,确定报文在本设备的出接口。
  2. 非Ingress节点根据报文入接口信息,查找对应路由表,确定报文在本设备的出接口。

Ingress节点如何选择最优路径

基于节点的路由信息和链路的拥塞状态,每个网络节点都维护一张best path表,用于存放最优转发路径信息。以发往某个目的IP地址为例,如果最短路径不拥塞,则best path表中存放发往该IP地址的最短路径信息;如果最短路径发生拥塞,则best path表中存放发往该IP地址的非最短路径信息。

组内互通场景下的Ingress节点选路

在组内互通场景中,以计算节点S向计算节点D发送报文为例,切换组内最短路径与非最短路径的过程如下图所示。

组内最短路径与非最短路径切换示意图
组内最短路径与非最短路径切换示意图
  1. 计算节点S向计算节点D发送报文的组内最短路径是S->1->3->D,该最短路径在Ingress节点1的出接口interface1未发生拥塞,因此,当Ingress节点1收到节点S发往节点D的报文时,查找best path表得到最优转发路径为组内最短路径,出接口为interface1,依照best path表信息将报文经Interface1向非Ingress节点发送。
  2. Ingress节点1的接口interface1发生拥塞(接口带宽利用率级别和队列深度级别的加权和高于它们的高水线之和),此时,best path表中经过interface1的组内最短路径被删除,替换为组内非最短路径。因此,当Ingress节点1收到节点S发往节点D的报文时,查找best path表得到最优转发路径为组内非最短路径,出接口为interface2,依照best path表信息将报文经Interface2向非Ingress节点发送。
  3. 接口interface1的接口带宽利用率级别和队列深度级别下降,两者的加权和下降到低于高水线之和,此时,best path表中存放的最优转发路径仍为组内非最短路径。因此,当Ingress节点1收到节点S发往节点D的报文时,查找best path表得到最优转发路径为组内非最短路径,出接口为interface2,依照best path表信息将报文经Interface2向非Ingress节点发送。
  4. 接口interface1的接口带宽利用率级别和队列深度级别继续下降,两者的加权和下降到低于低水线之和,此时,best path表中存放的最优转发路径修改为组内最短路径。因此,当Ingress节点1收到节点S发往节点D的报文时,查找best path表得到最优转发路径为组内最短路径,出接口为interface1,依照best path表信息将报文经Interface1向非Ingress节点发送。

组间互通场景下的Ingress节点选路

在组间互通场景中,以计算节点S向计算节点D发送报文为例,切换组间最短路径与非最短路径的过程如下图所示。

组间最短路径与非最短路径切换示意图
组间最短路径与非最短路径切换示意图
  1. 计算节点S向计算节点D发送报文的组间最短路径是从Source Group经Edge节点3的interface3发送报文到Destination Group,interface3未发生拥塞,因此,当Ingress节点1收到节点S发往节点D的报文时,查找best path表得到最优转发路径为组间最短路径,出接口为interface1,依照best path表信息将报文经Interface1向非Ingress节点发送。
  2. Edge节点3的interface3发生拥塞(接口带宽利用率级别和队列深度级别的加权和高于它们的高水线之和),此时,Edge节点3向同Group内其他网络节点发送ARN拥塞报文,节点1收到ARN拥塞报文后,将best path表中经过interface3的组间最短路径删除,替换为组间非最短路径。因此,当Ingress节点1收到节点S发往节点D的报文时,查找best path表得到最优转发路径为组间非最短路径,出接口为interface2,依照best path表信息将报文经Interface2向非Ingress节点发送。
  3. 接口interface3的接口带宽利用率级别和队列深度级别下降,两者的加权和下降到低于高水线之和,此时,Edge节点3停止向同Group内其他网络节点发送ARN拥塞报文,但节点1的best path表中存放的最优转发路径仍为组间非最短路径。因此,当Ingress节点1收到节点S发往节点D的报文时,查找best path表得到最优转发路径为组间非最短路径,出接口为interface2,依照best path表信息将报文经Interface2向非Ingress节点发送。
  4. 接口interface3的接口带宽利用率级别和队列深度级别继续下降,两者的加权和下降到低于低水线之和,此时,Edge节点3向同Group内其他网络节点发送ARN解除拥塞报文,节点1收到ARN解除拥塞报文后,将best path表中目的IP地址为节点D的最优路径修改为组间最短路径。因此,当Ingress节点1收到节点S发往节点D的报文时,查找best path表得到最优转发路径为组间最短路径,出接口为interface1,依照best path表信息将报文经Interface1向非Ingress节点发送。

非Ingress节点如何转发报文

非Ingress节点的报文转发方案依赖于组网中每个网络节点维护的路由表,且每个local port下存在2个三层子接口,分别是min子接口和non-min子接口,min子接口用于转发最短路径的报文,non-min子接口用于转发非最短路径的报文。

非Ingress节点上的报文转发规则如下:

  • 从global port接收报文:查找公网路由表进行转发。
  • 从local port的min子接口接收报文:查找公网路由表进行转发。
  • 从local port的non-min子接口接收报文:查找Non-min VPN实例的路由表进行转发。
词条统计
  • 作者: 冯媛媛
  • 最近更新: 2024-02-26
  • 浏览次数: 3639
  • 平均得分:
分享链接到: