吴 捷,贾永兴,许 茳,王 雄
(1.中国电子科技集团公司第三十研究所,四川 成都 610041;2.电子科技大学 信息与通信工程学院,四川 成都 611731)
软件定义广域网[1](Software Defined Wide Area Network,SD-WAN)将企业的分支、总部和多云之间互联起来,各类应用可在不同混合链路,如多协议标签交换(Multiprotocol Label Switching,MPLS)、Internet、5G、长期演进(Long Term Evolution,LTE)等[2]之间通过网络自动选择最优转发路径进行业务传输,提供优质的上云体验。企业通过部署SDWAN 可以提高分支网络的可靠性、灵活性和运维效率,确保分支网络实时在线,保证业务的连续性和稳定性。SD-WAN 常用于地理位置广域分布且需多点间远程互连的企业网络,包括企业的分支机构及数据中心。SD-WAN 架构与需做大量预配置的MPLS 链路、传统二层或三层虚拟专用网络(Virtual Private Network,VPN)技术相比,解决了多分支架构企业网络在支持差异化服务等级应用能力、网络灵活度、线路成本、安全传输等方面持续增长的压力[3]。
Gartner 明确定义的SD-WAN 基本特性中[1],混合链路的使用是重点之一,包括对MPLS、Internet、LTE 等有/无线链路的综合接入。混合链路技术的引入为站点间的互联互通提供了多样化选择,SD-WAN 支持基于不同特性链路的动态质量探测,可在用户无感的前提下自动调整业务与路径的绑定关系,以提供最优的业务传输效果,实现跨广域网连接时利用多链路灵活、智能地完成负载分担的目的。混合链路的使用为企业用户业务传输在降本增效方面实现了较大的能力提升。
SD-WAN 的网络模型主要涉及两层网络,一个是Underlay 网络,一个是Overlay 网络[4]。Underlay网络即通常说的WAN,由不同的运营商基于不同的WAN 专线或者公用网络构建,基于传统OSPF、ISIS 等路由协议实现底层网络互联互通;Overlay 网络连接不同站点,由Underlay 网络完成站点间底层网络通联,与具体的WAN 互联、路由协议等技术解耦。SD-WAN 组网主要指在不同站点之间搭建Overlay 网络,基于混合链路上建立的远程隧道,开展站点间自动互连组网和自动路由优选,具体的组网技术包括基于以太的虚拟私有网络(Ethernet Virtual Private Network,EVPN)、虚拟扩展局域网(Ethernet Virtual Private Network,VXLAN)、SRv6 等[5]。
当混合链路中的某条链路出现异常时,该链路上正在传输的业务会立即中断,直至路由协议完成路由收敛并将转发路径更新到其他正常连接的链路[6]。目前业界常使用快速重路由等技术实现物理层/链路层检测,检测到故障后将立即启用一条备份链路,以快速接续转发报文,但快速重路由技术本身无法确保在规模化路由情况下路由的快速切换。因此,在网络路由规模较大的场景下发生链路中断后,即使采用快速重路由技术,依然难以保证最后一条备份路由启用的生效时间[7]。
本文提出一种基于“分级转发+多链路管控”的新型融合设计[8],通过改变传统路由的扁平化处理机制,基于“IP+逻辑链路”的两级查表转发架构,实现链路中断后备份路由启用与网络规模的完全解耦,以提供网络损毁后业务通联恢复时间确定性上界保证。
传统路由转发技术仅基于IP 前缀进行路由查表,从查表后的设备出口进行报文转发,当出口(物理/逻辑链路)中断后,即使采用快速重路由(Fast Reroute,FRR)等技术预先计算备份路由,由于备份路由的启用过程需要逐条进行协议封装及消息下发,因此仅能确保小规模网络场景下的业务恢复时间上界保证。
针对上述问题,总体架构设计采用基于分级转发的快速路由切换技术,充分利用SD-WAN 组网模式下混合链路的多出口特点,在传统路由表的基础上进行转发表项扩展设计,以便同时容纳多个路由出口信息。这种设计的前提约束是考虑到SDWAN 架构下混合链路上建立的节点间通信渠道均为Overlay 隧道,其路由计算采用IBGP 完成,IBGP 协议特性可确保混合链路多出口选择不存在路由环路。
在分级转发架构的路由表设计中,将每条Overlay 隧道链路用从1 开始编址的链路ID 表示,对路由表结构进行扩展设计,表项结构如表1 所示。
表1 分级转发架构下IP 路由表
表1 中的链路ID-1、链路ID-2 为BGP 路由计算的Overlay 隧道出口标识,可唯一索引某条链路。
同时新增Overlay 隧道链路出口表项(简称OL隧道链路表)定义,用于表征不同链路的质量特性、权重和状态等多维参数,表项结构如表2 所示。
表2 分级转发架构下Overlay 隧道链路表
基于两级表项的设计架构,当IP 报文完成路由查表后,将提取路由表中存储的所有链路ID信息,将其作为元数据MetaData 去查找OL 隧道链路表,根据OL 隧道链路表的权重、特性及状态决定报文的输出接口。
报文主体转发流程修改为“IP 路由查表->提取所有OL 隧道链路号->索引查找OL 隧道链路表->根据状态选择可用链路->根据权重路由优选|根据报文应用特征及转发策略执行应用感知路由及等价路由转发等”。
基于分级转发的快速路由切换功能设计主要涉及路由协议、路由表管理、OL 隧道链路管理、分级转发逻辑及网络损伤快速切换5 个部分,涵盖了控制面软件协议、转发面可编程逻辑处理等操作,具体工作流程如下文所述。
1.2.1 路由协议分级转发适配修改
SD-WAN 组网技术中,在混合链路上采用Overlay隧道实现远程站点间的互联互通,其中路由协议采用基于边界网关协议(Border Gateway Protocol,BGP)扩展的EVPN 协议来完成站点间的远程组网。
SD-WAN 的典型网络架构如图1 所示。
图1 SD-WAN 典型网络架构
图1 中RR(SD-WAN 路由反射器)是控制层的核心组件,主要负责:SD-WAN 租户VPN 路由的分发和过滤、VPN 拓扑的创建和修改、站点间Overlay 隧道的创建和维护等。CPE 站点是SDWAN 隧道的发起和终结点,CPE 与RR 间通过建立SD-WAN 隧道并运行IBGP 协议以完成路由信息的交互,最终通过RR 的路由反射功能完成CPE 间隧道的自动建立、路由计算寻址等组网功能。
标准BGP 协议在路由计算时,只有符合ECMP要求的路由才能生成等价多路由,但在SD-WAN组网架构中,混合链路包含不同特性的链路(5G、LTE、专线……),在链路带宽、丢包率、时延及误码率等各方面存在较大差异,实际组网时不能实现原生等价路由处理[9],故难以在相同CPE 站点对间计算生成跨混合链路的多路由出口表项。因此,需要对BGP 的标准路由优选处理流程进行专用改造。
通过专用改造,BGP 路由协议基于NLRI 协议消息触发进行路由更新计算时,路由优选处理流程中对各类优选参数(路由类型、路由源、PREF、WEIGHT、MED……)做全等价处理,无须根据路由消息中携带的优先级做差异化优选,但优先级参数依然存储在路由信息结构中,并下发到FIB 库,以此将路由优选的功能卸载到可编程的转发面。通过OL 隧道链路表和专用转发逻辑的结合,转发面功能组件可根据多OL 链路隧道的连通状态、优先级等进行业务报文的策略化灵活转发处理。
BGP 协议路由优选改造流程如图2 所示。
图2 BGP 路由优选改造流程
改造后的BGP 可基于混合多链路建立的OL 隧道计算生成多条不同出口路由,根据设备平台的最大条数限制下发给路由表管理模块,路由信息中携带该路由的原生优先级。
1.2.2 路由表管理多OL 出口扩展
路由表管理模块主要用于接收不同路由协议下发的转发表,根据协议和路由的优先级等多维参数完成FIB 的构造。当SD-WAN 站点上的BGP 基于跨混合链路建立的多条OL隧道生成多出口路由时,路由管控模块的信息处理机制需做相应修改,其目的是能接收到相同目的IP 前缀的多个不同出口。路由表出口不直接关联实际物理端口,而是用OL隧道链路标识来表示,其目的是实现分级转发与网络路由规模解耦[10]。
1.2.3 OL 隧道链路管理
OL 隧道链路管理模块的功能主要是与EVPN建立的Overlay 隧道进行接口,将通过不同混合链路建立的SD-WAN 站点间远程隧道进行唯一标识,其字段取值从1 开始顺序递增。采用这种一维顺序编址方式,对典型SD-WAN 站点和网络规模进行设计时,字段的取值范围可以轻松支持中大型网络,且与工程实施结合紧密。如针对FPGA 内部的寻址体系,可以直接将链路ID 作为存储空间的下标进行映射转换使用,具有节约存储空间、高性能寻址及工程实现简洁等优势。
1.2.4 分级转发逻辑
分级转发逻辑工作在数据转发面,是本文规模无关快速路由切换设计的关键模块。前文已经描述了分级转发模式下存在的两张转发信息表,分别是IP 路由表和OL 隧道链路表。当业务报文进入站点边缘的通信设备(如CPE)进行转发查表时,首先提取报文的目的IP 地址进行路由表的查询,查询后若匹配到路由表项,则将查询获取的OL 隧道链路标识作为元数据继续查询OL 隧道链路表,并根据OL 隧道链路表匹配结果进行相应处理,主要处理逻辑分类如下。
(1)需ECMP 处理,则提取具有相同路由权重的OL 隧道链路进行ECMP 等价转发。
(2)需UCMP(非等价负载分担)处理,根据不同OL隧道链路的权重进行数据加权分流转发。
(3)应用感知路由转发:根据IP 报文携带的SLA 数据,选取相应质量特性的OL 隧道链路进行业务转发。
(4)传统路由转发:根据路由权重选择“状态”为有效、“权重”最优的一条OL 隧道链路进行报文转发。
基于如图3 所示的分级转发流程对转发面的关键流程改造进行总结。
图3 分级转发基本逻辑处理
1.2.5 网络损伤规模无感快速切换
当SD-WAN 间的OL 隧道链路通过BFD 等探测机制发现链路中断(中间转发节点故障、中间转发局部物理链路故障……)时,传统路由协议会根据BFD 联动的检测结果进行路由收敛计算,同时结合分级转发的设计会实时更新相应OL 隧道链路的状态,对某条OL 隧道链路或物理链路中断影响的批量OL 隧道链路进行“状态”更新。
在分级转发数据面中,基于混合链路下多OL出口备份路由的设计,当路由协议收敛尚未完成时,途经受损OL 隧道链路的路由表中依然会存在已经中断的OL 隧道链路标识。基于二次表项匹配的设计,当基于路由表提取的多OL 隧道链路标识与OL隧道链路表匹配后,即使中断的OL 隧道链路是具备最高路由权重的出口,但由于该OL 隧道链路已通过BFD 等检测技术完成可用状态即时更新,数据面转发模块会识别出该OL 隧道链路对应的“状态”为“中断”,从而为业务报文自动选取次优的状态有效OL 隧道链路进行转发。
典型的网络快速切换流程如图4 所示。从图4的工作流程可以看出,不管是混合链路中某条物理链路的中断还是骨干网络中某个设备或物理链路导致的多OL 隧道链路中断,对OL 隧道链路状态的更新都是轻量级的单包或几包下发,与使用该OL隧道链路为出口的路由表容量完全解耦(如1 万条路由途经1 条OL 链路出口,仅需更新1 条OL 链路状态即可实现1 万条路由的转发出口更新)。确保在路由收敛或备份路由启用还未完成前,以最快速度完成网络业务的中断接续,基于当前FPGA、NP 和高性能处理器DPDK 等平台的性能评估,能提供小于传统电信级网络50 ms 的网络倒换业务恢复时间。
图4 网络损伤规模无感快速切换
基于分级转发的架构设计,在多种网络损毁场景下可为企业分支网络提供路由规模无关的业务恢复效能。结合IFIT 等随路检测技术,可在OL 隧道链路质量特性发生变化时以最小开销、最短时间完成OL 隧道链路表的质量参数更新,在路由规模解耦前提下,对业务传输提供最优性能的应用感知路由转发适配。
不同的设备平台存在主控处理器、线卡处理器、TCAM、FPGA 性能以及设备整体架构的差别,将导致规模路由组网条件下网络损毁后的路由切换时间各不相同,对比分析某路由器研制项目中的实际测试结果可得出:传统路由器架构和混合链路分级转发架构在网络损毁路由快速切换方面的性能差异。
该项目中路由器内部的基本架构如图5 所示。
图5 测试平台基础架构
在主控制板的核心处理器中主要运行各种整机控制协议、组网协议(路由协议、标签分发协议……)等,在转发线卡的板级处理器上主要运行转发面表管理软件及TCAM 的SDK 软件,控制面下表流程为:核心处理器->板级处理器->FPGA->TCAM 芯片,受制于处理器及SDK 软件性能,该平台下1 条路由表的平均下发时间在10 ms 左右。项目组经过软件架构优化,将板级处理器上转发面下表功能移植到了核心处理器后,1 条路由表平均下发时间能提升到3 ms 左右,由此可知:对于1 千条路由规模下的网络损毁路由切换时间在3~10 s,对于1 万条路由规模下的网络损毁路由切换时间在30~100 s。
采用基于混合链路的分级转发架构后,基于冗余混合链路的备份路由可预先下发到转发面,链路损毁后仅需更新下发1 条OL 隧道链路表,即可完成对损毁链路的规避和转发路径切换,实现与网络规模的完全解耦,无论路由条数多少,该平台下仅需3~10 ms 即可完成路径切换和网络业务的通联恢复,为关键重要业务提供网络规模无感前提下小于50 ms 的路径切换时间,在网络损毁后提供更高的业务通联恢复性能。
基于对传统路由转发架构的深入理解,站在分级转发、多表项独立控制的角度设计了一套新型的通信转发流程,利用SD-WAN 网络中混合链路、Overlay 隧道的组网特性,将路由信息表与逻辑链路出口完全分离,实现了路由切换效能与网络路由规模的完全解耦,对应用感知路由能力适配等提供更好的通联性能,并系统性地对整体流程和模块设计进行了详细说明。本文所述新型路由转发设计给出了整体技术架构、关键数据结构及详细工作流程说明,采用可移植性较强的组件化设计方法,对相关工程实施有较好的指导作用。