企业出海,网络先行:UCloud 基于 SD-WAN 的罗马全球网络加速 | U刻
技术分享/

企业出海,网络先行:UCloud 基于 SD-WAN 的罗马全球网络加速

  • 企业出海,网络先行:UCloud 基于 SD-WAN 的罗马全球网络加速

    随着越来越多的企业踏上业务出海的征程,亟待解决的问题便是:如何做到全球范围内 IT 资源的快速调动和信息畅通?若选择公网远距离传输,网络时延和抖动的体验很差;专线价格昂贵,多条专线还会造成运维困难;随着多云部署的流行,跨云传输也是企业所要面临的难题之一。

    企业出海,网络先行。在此背景下,UCloud 的 SD-WAN 产品罗马 Rome 应运而生。与传统方案相比,Rome 通过底层架构设计,在成本、性能、可用性等方面存在巨大的优势。例如利用 Segment Routing 提高转发效率,智能链路调度实现秒级选路等,下面将重点介绍。


    —— 01 ——

    Rome:基于 SD-WAN 助力全球网络加速

    SD-WAN 技术是 SDN 在广域网下的特定应用,它通过消除物理设备的流量管理负担并将其转移到软件,从而获得部署和管理的灵活性,帮助用户最大限度地减少管理基础架构和连接的麻烦。


    | Rome 网络构成:核心网 + 接入网
    (1)Rome 核心网
    基于 SD-WAN 技术,Rome 核心网依托 UCloud 全球数据中心及跨地域、跨运营商网络,为用户提供全球范围内的就近接入、链路动态调度,实现端到端的高稳定连接,规避骨干网络故障、跨地域 / 跨运营商拥堵等导致的响应慢 、丢包等问题。

    图:分布全球的 Rome 核心网

    (2)Rome 接入网
    Rome 提供多种场景接入,包含专线、多云、混合云、互联网等,用户需选择最合适的接入方式。Rome 将用户接入同地域或邻近地域核心网转发节点,由 Rome 核心网将流量分发至目的地域,用户可选的接入方式如下:
    ① 初期业务量较小时,可选择 EIP 方式接入,该方式属于同地域 EIP 互联,不会对网络质量造成影响; 当业务量较大时,可选择专线方式接入,该方式可以极大程度的保证网络质量,且当接入专线均发生故障时,Rome 支持无缝切换至 EIP 以保证用户业务正常。专线接入方式可以通过 UCloud 控制台实现一键打通,后续 Rome 也将同步上线 EIP 一键打通功能,用户无需等待漫长的施工周期。

    | 控制平面与数据转发平面相分离
    由于远距离传输的特殊性,SD-WAN 根据功能分离为控制平面和数据转发平面,这样的分离能够大大增加网络服务的敏捷性,可以更加智能地从数据平面到更加抽象的和可编程的控制平面迁移。Rome 同样由控制面和转发面两部分组成,完成数据高可靠传输的保障。

    (1)Rome 控制平面设计

    控制平面主要负责网络信号的交换和数据包路由的选择,它也包含设备的系统配置和管理,同时还负责保障业务面通畅的控制管道。

    图:UK8S 同城双活架构

    如上图,Rome 控制层采用 UK8S 同城双活架构,每个应用多副本对等部署在两个数据中心的 UK8S 集群,利用域名解析服务 DNS 将入口流量分别导入两个集群,有效预防并降低由于单个数据中心出口或单个副本故障造成的业务不可用,在集群 (数据中心) 和应用层面保证了业务的稳定性和高可用性。


    此外,控制层分别由 API、TASK、CONFIG、Monitor、DB 以及 Analysis 组成,各组件执行逻辑如下图:当 API 接收到数据转发请求时,便会下发至各个 UK8S 集群中。TASK 为主要逻辑执行者,CONFIG 则负责对转发面各个网元进行配置下发等操作,DB Agent 则负责保存需要持久化的数据,Analysis 对 Rome 核心网进行调度,保证用户流量能 Run 在最优路径上,最终由 Monitor 完成对各服务以及 Rome 核心网状态及质量的监控。

    图:Rome 控制面执行逻辑示意图

    其中,Analysis 和 Monitor 对链路调度起着关键性的作用,下文还会详细介绍。


    (2)Rome 转发平面设计

    转发平面主要承载网络的转发应用和用户数据,由高吞吐转发节点组成。Rome 基于 DPDK 实现高吞吐低时延的包转发节点,且任意两节点之间均采用专线作为主线路,保证线路网络高可靠。

    图:Rome 转发面架构图
    如上图,每个转发节点和接入节点均由双节点组成,且互为主备。当主节点不可达时自动切换到备节点,可做到秒级切换,从而最大程度上保证网络质量。此外,Rome 各地域之间形成环网,由 Analysis 根据路径质量对路径进行统一调度。


    值得一提的是,Rome 还采用了 Segment Routing (以下简称 SR) 技术。


    SR 是一种新型的 MPLS 技术,其中控制平面基于 IGP 路由协议扩展实现,转发层面基于 MPLS 转发网络实现,SR 的好处在于简化了 MPLS 控制协议、减少资源占用、简化网络运维和管理,增强路径调整和控制能力。


    Rome 转发平面采用 SR 路由方式实现流量转发。控制平面根据实时网络质量计算出两点间的最优路径,并为邻接节点分配标签(用于标识 SR 网络中的路由邻接链路,是 SR-TE 主要使用的标签类型,链路标签具有一定的方向性,用于指导报文的转发,仅在源节点本地有效),为整条路径分配标签栈(标签排序的集合,用于表示一条完整的 LSP)。转发节点识别报文携带的标签,并根据标签进行路由。Rome 应用 SR 大大提高了网络的转发效率,降低时延,最大程度保障了用户的使用体验。


    —— 02 ——

    条条大道通罗马:实时监控下的智能链路调度

    高稳定与高性能之外,网络的灵活性和敏捷性有时反而更为关键:那如何根据用户需求与网络实时状态快速做到最优链路调度,从而实现数据在全球范围内的无缝流动呢?☟Rome 的答案是在选路和切换时的智能链路调度技术,举个例子:用户在用网络的两邻接节点时延突增时,Rome 会在秒级内将流量切换至相邻时延较小的节点,从而保证整体网络质量。


    | 建立线路质量元数据
    首先,Rome 通过建立细粒度的线路质量元数据,实现数据实时监控的良好基础,也帮助网络运维人员能够更加便捷实时地掌握全球业务数据动态与流向。

    图:线路质量元数据实时监控示意
    如上图,Rome 分为接入节点、转发节点及 DB 三部分完成线路质量元数据的建立与实时监控,接入节点 & 转发节点负责定时上报线路丢包率、线路时延、带宽负载、接入点 CPU 使用率、接入点磁盘利用率等数据,DB 将所有数据保存以供后台实时分析与监控。
    每个接入节点、转发节点均有主备节点,且接入节点与转发节点为网状连接、转发节点之间也为网状连接,如下图,所有转发节点组成 Rome 核心网。

    图:Rome 核心网
    | 智能选路
    基于分布全球的专用线路,Rome 通过链路智能检测技术,提供更加灵活高可靠的选路。智能选路分为两方面:接入节点选路和转发节点选路。
    (1)接入节点选路

    以地域 0 为例,如下图,用户 VPC——> 接入点 VPC——> 转发点 VPC 为打通状态,默认分别与主节点相连,在接入节点为用户 VPC 创建 TC 规则,接入节点与转发节点通过隧道封装报文。

    图:用户 VPC——> 接入点 VPC——> 转发点 VPC 打通
    接着,Rome 会在 Local 接入节点与 Remote 接入节点分别进行链路检测,将链路检测结果持久化,由 Monitor 拉取链路检测结果,并根据该结果选择接入节点与转发节点的路径。


    链路检测结果包含以下几个维度:Local 接入节点到 Local 转发节点可达性、丢包率及时延;Local 接入节点到 Remote 接入节点可达性、丢包率以及时延;Local 转发节点负载。最终会出现以下三类情况:
     若 Local 主接入节点到 Local 主转发节点不可达或网络质量较差,则选择 Local 备接入节点到 Local 备转发节点路径; 若 Local 主接入节点到 Remote 主接入节点不可达或网络质量较差,则选择 Local 备接入节点到 Remote 备接入节点; 若 Local 主转发节点负载较高,则选择 Local 备接入点节点到 Local 备转发节点。


    (2)转发节点选路
    以地域 0-> 地域 2 为例,地域 0-> 地域 2 的可用路径有地域 0-> 地域 1-> 地域 2 和地域 0-> 地域 3-> 地域 2,每两邻接地域的主备转发节点均互连,即:两邻接地域的 link 有 4 条。

    图:地域 0-> 地域 1-> 地域 2 转发示意

    Rome 同样对邻接转发节点进行链路检测,将链路检测结果持久化,由 Analysis 拉取链路检测结果,并根据该结果选择邻接转发节点的 link。


    链路检测结果包含以下几个维度:邻接转发节点间可达性、时延以及丢包率;转发节点负载;资费。链路检测及调度步骤如下:
     根据源和目的转发节点信息计算出源转发节点 -> 目的转发节点的可用路径; 根据所有可用路径每根 link 的时延、丢包率、负载、资费,计算出一个 cost 值,从而为每条可用路径计算出一个总的 cost 值; 根据每条可用路径的 cost 值选择最优路径,为整条路径经过的转发节点分配标签,当流量进入某转发节点之后根据标签选择下一跳; cost 计算原则(cost 越小路径优先级越高): 网络不可达时 cost 最大; 网络可达时专线 cost=a * 时延 + b * 丢包率 + c * 转发节点负载; 网络可达时 EIP cost=x*(a * 时延 + b * 丢包率 + c * 转发节点负载),由于资费原因 x>1。


    | 智能切换
    智能切换分为接入节点切换和转发节点切换,且所有切换动作在秒级完成,当在用网络出现故障时能够保证第一时间切换为正常线路。当 link 所有专线均故障时,也会及时将流量切换至 EIP,为用户提供稳定可靠的网络质量。
    (1)接入节点切换
    Monitor 根据接入节点选路原则进行最优路径的计算,当计算出的最优路径与当前路径不相同时,比较两路径的 cost 值:
    (当前路径 cost 值 – 最优路径 cost 值)/ 当前路径 cost 值 < 阈值,维持原路径状态;(当前路径 cost 值 – 最优路径 cost 值)/ 当前路径 cost 值 > 阈值,将用户 VPC 路由指向备用接入节点,互换主备接入节点角色。
    (2)转发节点切换
    Analysis 每次选路之后都会做一个路径 cost 值的切片,根据转发节点选路原则选出当前线路的最优 link(两邻接转发节点的有效路径),当最优 link 与当前 link 不相同时,比较两 link 的 cost 值:
    (当前 link cost 值 – 最优 link cost 值)/ 当前 link cost 值 < 阈值时,维持原路径状态;(当前 link cost 值 – 最优 link cost 值)/ 当前 link cost 值 > 阈值时,为最优 link 分配标签,并同步更新最优路径信息,将流量引入新计算出的最优路径。

    —— 03 ——

    Rome 应用实例:境外跨地域多云电商场景
    目前,Rome 可支持多场景下的应用部署,包括多云场景、跨云灾备等,此处我们以境外跨地域多云场景为例介绍。
    某跨地域多云电商为保证全球范围内的业务高可靠,在初期网络搭建时选择了多云方案支持全球业务部署:仓储系统分布于 a 云厂商东京地域,Web 业务则分布在 b 云厂商俄勒冈地域。但是由于后期业务量增大,Web 业务需要实时访问仓储系统,这就需要分布于不同云厂商的两处网络实现全球范围内的快速可靠通信。

    不同云厂商之间存在接口协议区分,很难做到直接打通,更遑论还需达到远距离实时传输的目的,这本应该是一件不可能实现的诉求。最终,该电商采用了 Rome 方案成功解决,网络架构方案如下图所示。

    图:境外跨地域多云电商应用实例


    同时,Rome 的使用也非常简单便捷,即便是如此复杂的跨地域多云场景,用户只需在控制台上做一些简单的操作,无需关心路由配置等问题便可实现跨地域多云网络的一键打通。用户操作完后,Rome 会为用户在需要打通的地域分配接入节点,并将接入节点连通 Rome 核心网内最近的转发节点,从而实现跨地域多云下的远距离互联互通。