基于 Segment Routing 技术构建新一代骨干网:智能、可靠、可调度(二)
在上篇《基于Segment Routing技术构建新一代骨干网:智能、可靠、可调度(一)》中提到了 UCloud 数据中心野蛮式增长给 MAN 网络和骨干网带来了极大挑战以及 UCloud 骨干网 1.0、2.0 的演进路线、SR 技术部分原理介绍。本文将重点介绍 UCloud 如何通过 Segment Routing 技术改进控制面和转发面,实现智能、可靠、可调度的新一代骨干网。
新一代骨干网架构
设计目标:
控制器智能计算路径和头端自动计算路径:控制器实时收集转发设备状态信息,响应转发节点路径计算请求和路径下发。
全场景接入,实现灵活组网:支持用户本地专线、互联网线路混合接入方式,实现用户灵活组网。
多维度 SLA 路径规划:满足多业务不同路径转发需求,确保关键业务的优先级和服务质量。
降低专线成本,提高整体专线利用率:废除骨干网 2.0 中的 VXLAN 技术,缩减包头开销,降低专线成本;通过智能流量调度合理规划专线容量。
流量可视化,按需调度:通过 telemetry 和 netflow 技术实现骨干网流量可视化,针对部分“热点流量”和“噪声流量”进行按需调度。
整体架构如下:
新一代骨干网主要包括三大组件:智能控制器、骨干边界转发 PE、接入侧转发 CPE&VPE:
控制器:对全网转发 PE、CPE、VPE 等设备进行统一的资源管理、信息收集、配置下发,监控告警以及路径计算规划,实现全网资源的统一调度和管理。
骨干网边界:全网 PE 和 RR 组成 SR-TE 骨干网核心层,用于实现多路径转发,流量调度;骨干网边界对外主要接入 CPE、M-Core、VPE&VCPE 等设备。
接入侧边界:接入侧分为三种设备类型:CPE、M-Core、VPE&VCPE。
CPE:主要用于接入本地专线客户;
M-Core:公有云 MAN 网络核心,实现各城域网接入骨干网;
VPE:通过 Internet 或者 4G/5G 网络接入用户分支机构的 VCPE 设备,提供用户混合组网能力。
近年来,云数据中心 SDN 网络设计思路大行其道,其主要思想是转控分离,转控分离好处不用多说,当然也有其弊端;SDN 数据中心网络中的控制面故障有太多血的教训,控制面故障带来的转发面影响也是重大的;毕竟转发面才是真正承载客户业务的地方,所以我们在设计新一代骨干网时需要考虑控制器故障时,如何保持转发层面的独立可用性。
接下来将介绍基于 SR 技术骨干网的控制面和转发面的设计实现原理。
控制面设计
新一代骨干网的控制面主要包括两个方面:一、智能控制器;二、 SR-TE 骨干网路由设计控制面。
01
智能控制器
控制器的主要架构设计如下:
整个控制器的目标为实现一致的配置下发与可扩展的调度策略。基于设备全球部署的特点以及网络并非百分之百稳定的前提,该系统采用了数据层跨地域部署,同时为了兼顾正常情况下控制器的快速响应,控制节点采用了分机房的集群部署方式来保证业务的可靠性与高效的调度能力;上层控制系统通过 BGP-LS、Telemetry 技术采集转发链路状态信息,收集到数据库,之后对采集到的数据进行分析处理,最后通过 netconf 和 PCEP 方式下发配置和智能计算路径。
其中数据采集主要包括:
基本的 IGP 拓扑信息(节点、链路、IGP 度量值)
BGP EPE(Egress peer Engineering)信息
SR 信息(SRGB、Prefix-SID、Adj-SID、Anycast-SID 等)
TE 链路属性(TE 度量、链路延迟度量、颜色亲和属性等)
SR Policy 信息(头端、端点、颜色、Segment 列表、BSID 等)
Netconf 和 PCEP 主要用于配置下发和路径计算:
头端向控制器请求路径计算;控制器针对收到路径计算请求进行路径计算
头端从控制器学到路径,控制器通过 PCEP 向头端传递路径信息
头端向控制器报告其本地的 SR Policy
实现能力如下:
快速的故障响应:由于内部自定义的算法需求,在线路或者节点出现问题时,需要重新计算整张拓扑,以避开故障链路;
快速实现手动故障域隔离:借助架构的优势,实现所有流量在线路级别与节点级别的隔离;
快速自定义调优路径:可以根据客户的需求快速将客户流量引导到任意路径上,保证客户各类路径需求;
客户流量秒级实时监控:可监控流级别的客户故障,并实现故障情况下的路径保护;
02
SR-TE 骨干网控制面
为了实现用户 L2 和 L3 接入场景需求,在骨干网规划设计了基于 MP-BGP 的 L3VPN 和 BGP-EVPN 的 L2VPN,下面来做一个简单的介绍。
MP-BGP
新一代基于 SR 技术的骨干网采用了 MPLS-VPN 的技术特性,大致需要如下组件:
首先需要在 MPLS VPN Backbone 内采用一个 IGP(IS-IS)来打通核心骨干网络的内部路由;
PE 上创建 VRF 实例,与不同的 VRF 客户对接,VPN 实例关联 RD 及 RT 值,并且将相应的端口添加到对应的 VRF 实例;
PE 上基于 VRF 实例运行 PE-CPE&VPE、M-Core 间的路由协议,从 CPE&VPE、M-Core 学习到站点内的 VRF 路由;
PE 与 RR 之间,建立 MP-IBGP 连接,PE 将自己从 CE 处学习到的路由导入到 MP-IBGP 形成 VPNv4 的前缀并传递给对端 PE,并且也将对端 PE 发送过来的 VPNv4 前缀导入到本地相应的 VRF 实例中;
在传统的 MPLS-VPN 技术的基础上,摒弃 LDP,启用 SR 功能来分配公网标签,内层标签继续由运行 MP-BGP 协议的 PE 设备来分配。
BGP-EVPN
在 MPLS 网络中实现用户 L2 场景的接入需求,有很多解决方案比如 VPLS,但是传统的 VPLS 还是有很多问题,比如:不提供 All-Active 双归接入,PE 流量泛洪可能导致环路风险以及重复数据帧。
为了解决 VPLS 的问题,我们在新一代骨干网架构中采用了 BGP-EVPN 协议作为 L2 网络的控制面;EVPN 网络和 BGP/MPLS IP VPN 的网络结构相似,为了实现各个站点(Site)之间的互通,骨干网上的 PE 设备建立 EVPN 实例并接入各个站点的 CE 设备,同时各个 PE 之间建立 EVPN 邻居关系;由于 EVPN 网络与 BGP/MPLS IP VPN 网络的不同之处在于各个站点内是二层网络,因此 PE 从各个 CE 学习到的是 MAC 地址而不是路由,PE 通过 EVPN 特有的路由类型将自己从 CE 学习到 MAC 地址转发到其它 Site。
BGP-EVPN 有三个比较重要的概念:
1、EVPN Instance (EVI) :EVPN 是一种虚拟私有网络,在一套物理设备上可以有多个同时存在的 EVPN 实例,每个实例独立存在。每个 EVI 连接了一组或者多组用户网络,构成一个或者多个跨地域的二层网络。
2、Ethernet Segment(ESI):EVPN 技术为 PE 与某一 CE 的连接定义唯一的标识 ESI(Ethernet Segment Identifier),连接同一 CE 的多个 PE 上的 ESI 值是相同,连接不同 CE 的 ESI 值不同。PE 之间进行路由传播时,路由中会携带 ESI 值使 PE 间可以感知到连接同一 CE 的其它 PE 设备。
3、ET(EthernetTag):每个 EVI 可以构成一个或者多个二层网络。当 EVI 包含了多个二层网络时,通过 Ethernet Tag 来区分这些二层网络。如果我们把二层网络看成是广播域的话(Broadcast Domain),那么 ET 就是用来区分不同广播域的。
为了不同站点之间可以相互学习对方的 MAC 信息,因此 EVPN 在 BGP 协议的基础上定义了一种新的 NLRI(Network Layer Reachability Information,网络层可达信息),被称为 EVPN NLRI。EVPN NLRI 中包含如下几种常用的 EVPN 路由类型:
相比较 VPLS,EVPN 的优势如下:
1、集成 L2 和 L3 VPN 服务;
2、 类似 L3VPN 的原理和可扩展性和控制性;
3、支持双归接入,解决容灾和 ECMP 问题;
4、 可选择 MPLS,VXLAN 作为数据平面;
5、对等 PE 自动发现, 冗余组自动感应。
BGP-LS
BGP-LS 用于收集转发设备的链路状态信息以及标签信息,具体规划如下:
1、所有 PE 和 RR 建立 BGP-LS 邻居,PE 将各自的链路信息、标签信息以及 SR Policy 状态传递给 RR;
2、RR 与控制器建立 BGP-LS 邻居,将 IGP 的链路状态信息转换后上报控制器。
转发面设计
01
骨干网核心层
骨干网 PE 设备之间运行 ISIS-L2,并开启 SR 功能,规划 Node-SID、Adj-SID、Anycast-SID;PE 基于环回口与 RR 建立 MP-IBGP 邻居关系,传递各站点 VPNv4 路由,实现 L3VPN 用户业务转发;同时 PE 采用 BGP EVPN 作为 Overlay 路由协议,基于环回口地址建立域内 BGP EVPN 邻居关系,采用 SR-TE 隧道封装用户二层数据,实现 L2VPN 用户业务通过 SR-TE 转发。
一般分为 SR-BE 和 SR-TE:
SR-BE 由两层标签组成:内层标签为标识用户的 VPN 标签,外层标签为 SR 分配的公网标签;
SR-TE 由多层标签组成:内层标签为标识用户的 VPN 标签,外层标签为 SR-TE 标签,一般由设备头端计算或者通过控制器下发的标签栈;
L2 用户通过查找 MAC/IP route 来实现标签封装,L3 用户通过查找 VRF 中的私网路由来实现标签封装。
02
骨干网边界层
骨干网 PE 与 CPE&VPE 以及公有云的 M-Core 运行 EBGP 收发用户路由,通过 BGP 实现数据转发;CPE 和 VPE 与接入用户 CE 以及 VCPE 运行 EBGP;特别需要注意的是 VPE 与 VCPE 是通过 Internet 建立的 BGP,所以需要通过 IPsec 协议进行数据加密。
介绍完整个骨干网的架构设计后,我们将分别针对骨干网的智能、可靠、可调度三大特性进行剖析。
新一代骨干网三大特性
01
智能
控制器统一编排业务场景:
1、分支网络设备自动化部署,实现控制器自动计算路径和流量统一调度以及业务编排;
2、控制器通过 BGP-LS 等收集网络拓扑、SR-TE 信息以及 SR Policy 信息,并根据业务需求进行路径计算,然后通过 BGP-SR-TE/PCEP 等协议将 SR Policy 下发到头端节点。
头端自动算路和自动引流:
1、分布式控制面,防止控制器故障带来的整网瘫痪影响,支持头端自动引流,废除复杂的策略引流机制;
2、头端节点利用 IGP 携带的 SR-TE 信息和 IGP 链路状态信息、SR 标签信息等组成 SR-TE 数据库,然后基于 CSPF 算法按照 Cost、带宽、时延、SRLG 和不相交路径等约束条件计算满足条件的路径,并安装相应的 SR Policy 指导数据包转发。
基于业务场景对网络灵活切片:
根据业务的 SLA 要求,可以规划新的网络转发平面,可以将时延敏感型的业务调度到基于延迟切片的网络转发平面。
如下为现网当前规划的两个网络切片转发平面:
毫秒级拓扑收敛、链路重算、路径下发:线路故障场景下控制器可以做到毫秒级的拓扑收敛、故障链路重算以及备份路径下发;
流级别路径展示:实现基于数据流级别的路径查询和展示。
02
可靠
全球核心节点专线组网:节点之间提供运营商级的专线资源,SLA 可达 99.99%;
双 PE 节点 Anycast-SID 保护:地域级的双 PE 配置 Anycast-SID 标签,实现路径的 ECMP 和快速容灾收敛;
Ti-LFA 无环路径保护:100%覆盖故障场景,50ms 内完成备份路径切换;
SR-TE 主备路径保护:SR-TE 路径中规划主备 Segment-List,实现路径转发高可用;
SR-TE 路径快速逃生:SR-TE 故障场景下可以一键切换到 SR-BE 转发路径(IGP 最短路径转发);
Internet 级骨干网备份:为了保障新一代骨干网的高可靠性,在每个地域的 PE 设备旁路上两台公网路由器,规划了一张 1:1 的 Internet 骨干网,当某地域专线故障时可以自动切换到 Internet 线路上;同时使用 Flex-Algo 技术基于 Internet 级骨干网规划出一张公网转发平面用于日常管理流量引流。
03
可调度
根据五元组,识别并定义应用,支持 Per-destination、Per-Flow 调度;
跨域之间根据应用业务分类定义多条不同类型 SR-TE 隧道;
每种类型隧道定义主备路径,支持 SR-TE 一键逃生;
通过灵活算法定义 Delay、带宽、TCO(链路成本)、公网隧道等多种网络切片平面;
智能控制器支持自动下发、自动计算、自动调整、自动引流和自动调度。
当前根据业务需求规划了如下几种骨干网调度策略:
IGP:最低开销转发,ISIS 接口的 cost 根据点到点之间专线物理距离延迟*100 得到;
Delay:最低延迟转发,ISIS 接口配置 PM 功能,动态探测点到点之间实际延迟;
TCO:最优成本转发,控制器根据每条专线的实际成本计算出最优成本路径;
FM:自定义转发,控制器根据业务临时需求下发需求路径;
FBN:公网隧道转发,每个地域之间提供公网 VPN 线路,提供备份转发路径。
SR Policy 中基于 Color 定义两种引流方式:
1、Per-Destination 引流模板:Color 在某种程度上将网络和业务进行了解耦,业务方可以通过 Color 来描述更复杂的业务诉求,SR-TE 通过 Color 进行业务关联。
2、Per-Flow 引流模板:通过 DSCP 标记业务,或者 ACL 进行流分类映射到 Service-Class 等级,Service-Class 关联 Color 进行业务引流。
Color 资源规划
Color 属性在 SR-TE 中标记路由,用于头端节点进行灵活引流;新一代骨干网络设计的流量调度中定义四种 Color 类型:
默认 Color:每个城市节点的用户路由必须携带的 Color 值,用于引流默认隧道转发【预埋保留】。
城市 Color:每个城市每用户 VRF 路由必须携带的 Color 值,用于全局流量调度使用【每个城市默认分配 9 种相同 Color 分别关联到不同的业务】。
业务 Color:在 Per-flow(基于流分类调度)场景中使用,每个城市的 MAN 网络和用户私网路由标记使用,全局引流作用。
本地 Color:在 Per-flow(基于流分类调度)场景中结合自用 Color 使用,映射 Service-Class 服务等级,关联到业务模板。
Color 分配规则
最佳实践方案
下面以流调度为例来介绍 UCloud 骨干网业务基于 SR 技术结合的最佳实践方案。
Per-Flow 场景下业务模板/Color 与 Service-Class 服务等级关联
1.Per-Flow 流量调度规划每个城市分配一个业务 Color,MAN 网络路由在 PE 设备上标记各城市业务 Color;
2.每个头端节点 PE 上定义 8 种调度策略,对应于不同的业务模板,其中 2 个业务模板保留;业务模板与 Color、Service-Class 定义标准的映射关系;
3.点到点的城市之间默认支持 2 条 FM 自定义策略(自定义隧道策略);
4.IGP、Delay 使用动态 SR Policy,其它隧道采用静态 SR Policy 策略;
5.Per-Flow 场景下的 endpoint 地址支持 Anycast-SID,头端的一台 PE 到末端两台城市的 PE 只需要定义一条 SR Policy 即可;
6.以 20 个核心城市为例,单个城市的 PE Per-Flow 的 SR Policy 数量为 19*7=133 条。
在规划中,UCloud 基础网络团队根据公有云业务类型将业务进行分类,分类方法是对具体业务进行 DSCP 标记;然后数据包到了骨干网 PE 后再根据 DSCP 进行灵活引流。
业务模板与 Service-Class 服务等级映射:
我们将骨干网当作一个整体,这个整体的边界端口使用 DSCP 和 ACL 入 Service-Class,下面明确定义下何为边界端口。
边界端口:
PE 连接 CPE&VPE、MAN 网络侧的接口
DSCP 入队方式:
骨干网边界端口默认信任接入侧用户的 DSCP 值,根据相应的 DSCP 入队到 Service-Class 服务
ACL 入队方式:
1.在一些特殊场景下需要针对某些业务通过 ACL 分类后入队到 Service-Class 服务【业务本身无法携带 DSCP】
2.每种隧道调度策略都可以通过 ACL 对流进行分类,然后入队到 Service-Class
入队和转发流程:
1.在 PE 上配置流分类,按照业务等级,将不同的 DSCP 值映射到 Service-Class(8 种等级)
2.为隧道(Service-Class)配置对应的调度策略
3.业务流在 PE 设备上会先根据路由迭代看是否选择隧道(SR Policy),然后再去比对流的 DSCP 值是否和 SR Policy 中 Service-Class 映射设置一致,一致流将从对应隧道通过
4.业务流根据 Service-Class 中的调度策略进行流量转发
分类业务和 SR-TE 隧道映射关系如下:
1、默认所有业务按照规划的 DSCP 和调度策略进行关联;
2、使用 ACL 实现特殊业务类型进行临时策略调度。
SR-TE 流量工程案例
下面介绍一个 SR-TE 实际调度的案例分享:
业务高峰时段基础网络收到香港-新加坡专线流量突发告警,智能流量分析系统发现突发流量为安全部门在广州与雅加达节点同步数据库。
调度前流量模型
正常情况下广州去往雅加达的流量通过 IGP 最短开销计算出的路径为:广州--->香港--->新加坡--->雅加达,由于香港-新加坡段为出海流量的中转点,所以经常会在高峰期出现链路拥塞情况。
传统流量调度方案
1、基于目标地址流量做逐跳 PBR,将大流量业务调度到其它空闲链路转发;
2、基于目的地址的流量进行限速,保障链路带宽。
传统调度存在问题
1、逐跳配置策略路由,配置复杂,运维难度大;
2、粗暴的限速策略有损内部业务。
SR-TE 流量调度方案
Segment 列表对数据包在网络中的任意转发路径进行编码,可以避开拥塞链路,通过 SR 流量调度后的路径为:广州--->北京--->法兰克福--->新加坡--->雅加达。
SR-TE 流量调度优势
1、头端/控制器可以定义端到端转发路径,通过标签转发;
2、基于业务流进行灵活流量调度(目的地址+业务等级)。
未来演进
上文用很长的篇幅介绍了 UCloud 骨干网历史和新一代骨干网架构设计细节,其实当前基于公有云业务调度只能从 MAN 网络开始,还不支持从 DCN 内部开始调度;未来 UCloud 基础网络团队将设计基于 Binding SID 技术的公有云业务端到端的流量调度工程,大致规划如下:
骨干网为每个城市的端到端 SR-TE 隧道分配一个 Binding SID,用于数据中心云租户引流;
数据中心宿主机通过 VXLAN 将租户流量送到骨干网 UGN(公有云跨域网关);
UGN 解封装 VXLAN 报文后,封装 MPLS 标签,内层标签用于区分租户,外层标签用于封装远端城市的 Binding SID 标签;
PE 设备收到带有目标城市的 Binding SID 后,自动引流进对应的 SR-TE 隧道进行转发;
对端 PE 收到报文后解封外层 MPLS 报文,然后转发给 UGN,UGN 根据内层标签和 VXLAN 的 VNI 的映射关系进行转换,最终通过 IP 转发至 DCN 的宿主机上。
总结
UCloud 骨干网总体设计目标是智能、可靠、可调度,一方面通过全球专线资源将各 Region 公有云资源、用户资源打通;另一方面在接入侧支持本地线路+互联网线路接入,构建骨干网混合组网能力,从而形成了一张稳定且高性能的骨干网,为上层公有云业务、用户线下、线上资源开通提供可靠的传输网络,整体上来看骨干网是 UCloud 公有云网络体系中非常重要的一个组成部分。
UCloud 基础网络团队在过去的一年重构新一代骨干网,使其具备了智能、可靠、可调度的能力,从而能够合理的规划专线资源,降低了专线成本,且骨干网整体性能得到极大提升。未来 UCloud 基础网络团队将会继续紧跟骨干网技术发展潮流,为整个公有云跨域产品提供智能、可靠、可调度的底层网络。
作者:唐玉柱,UCloud 高级网络架构师、UCloud 新一代骨干网架构规划项目负责人。拥有丰富的数据中心、骨干网架构设计和运维经验;目前主要负责 UCloud 全球数据中心、骨干网架构设备选型、架构设计和规划。
版权声明: 本文为 InfoQ 作者【UCloud技术】的原创文章。
原文链接:【http://xie.infoq.cn/article/52a04b131a547ba2ab4eaf60a】。文章转载请联系作者。
评论