SDN(Software Defined Netrork)软件定义网络。在网络使用中升级SDN架构,是网络智能化演进的基础,是广域网网络升级的必然途径和必选项。 |
一、背景
SDN概念的诞生已经有十多个年头,从近年来SDN技术发展与应用部署情况来看,数据中心领域技术发展成熟较早并迅速得到广泛应用,而国内大型互联网公司和运营商广域网领域相对发展要慢一些,究其原因还是由广域网的网络实际情况决定的。
数据中心场景业务流量相对简单,主要是东西向流量的和南北向流量,相关数据中心SDN架构解决方案主要面向解决和处理好Overlay隧道层面流量的打通和调度。而广域网场景业务流量相对复杂,裸IP流量、MPLS业务流量,往往叠加到一起,同时还要考虑到广域网的互联互通情况中多互联互通出口流量的优化和调度。
从网络规模和网络设备层面考虑,数据中心相对广域网是个小范围区域网络,在单个数据中心资源池新建时,完全可以直接采用较为成熟的SDN架构,单一资源池或者一个资源的一个POD内直接采用单厂家方案,不同的资源池之间或者同一个资源池的不同POD间通过标准的SDN北向接口实现异常家解耦。而广域网是个覆盖范围广大的网络,运营商级广域网单个AS域就可以有上千台路由器的规模,网络架构虽然一直向扁平化方向发展,但是远没有数据中心Spine-Leaf架构那么规整。广域网建设时为避免单厂家绑定,往往是异厂家设备混合组网,因此广域网SDN架构需要控制器直接去控制不同厂家的设备,无法简单的应用单厂家的SDN解决方案。
基于以上原因,广域网SDN应用和部署相对滞后。广域网的SDN架构升级和部署,要考虑业务流量的平滑过渡,不能推倒重建,所以广域网SDN架构设计和部署往往是要分阶段地去实现,从最迫切的需求入手,合理安排设备的升级节奏,逐步地引入和完善相关SDN功能。
二、广域网SDN应用部署与演进的三个阶段
第一阶段,先从提升业务开通效率入手,解决最迫切的客户业务自动开通需求,实现网络的自动化配置能力。通过部署SDN控制器,实现配置命令通过Netconf接口或其他方式自动下发。对于有业务需求的节点,可以先更换或者升级这些节点的PE设备,实现SR-BE功能,使业务流量基于SR-BE去承载,有条件的可以兼顾实现基于松散路径模式的SR-TE功能,这一阶段也可以同时实现基于BGP-LS或其他协议的拓扑生成与呈现。
第二阶段,随着设备的逐步升级,SR功能的全网具备,以及SDN南向接口协议标准化演进和更广泛的厂家设备支持,逐步实现基于SR-TE的差异化服务和业务流量路径调优功能,实现基于Telemetry的秒级信息采集,实现SDN控制器对网络状态和网络资源全面的管理掌控。同时可以同步探索和实现部份网络智能化功能,比如网络流量模拟和网络故障模拟,从而对网络规划、网络优化升级、网络设备和架构调整提供更好的模拟分析和决策参考。
第三阶段,基于SDN能力实现更高层次的网络智能化。未来的IBN(Intent-based Network)或IDN (Intent-Driven Network),都要以SDN能力为基础去演进和实现。
目前运营商的广域网SDN部署基本都在第一阶段已经部份实现,正在向第二阶段演进的过程中。大型互联网公司因为业务的需求更强烈,整体研发能力强,同时网络规模又比运营商相对较小,因此广域网SDN部署和应用相比运营商要更完善和超前。
三、广域网SDN功能
如果只介绍广域网SDN架构,会比较公式化。为了使大家更好的理解广域网SDN,先谈一谈广域网SDN的功能,理解了部署广域网SDN是为了要实现那些功能,回过头来再去看广域网SDN架构以及广域网SDN所涉及的接口协议,可能会理解的更加深入一些。
谈到SDN控制器的功能,就不得不先分析下SDN控制器和传统网管的关系。普遍的认为传统的网管侧重于设备和网络状态监控管理,而SDN控制器侧重于网络资源管理和网络转发控制。资源管理和网络设备硬件状态的管理、网络拓扑的管理,是分不开的,资源管理以设备状态和网络拓扑管理为基础,而SDN控制器的控制功能是以全面掌握网络资源和信息为基础的,可以这么说SDN控制器需要继承一部分传统网管的能力或者要以传统网管的能力为基础来实现上层的功能,因此我觉得未来控制器和网管会走向合并和统一。
在传统网管的监控和管理能力之外,SDN控制器要实现资源的实时管控、业务的自动下发、路由分析、网络仿真、差异化服务、流量调度等功能。下面对个人理解的广域网SDN应该具备的功能进行梳理与介绍。
1. 网络监测和数据呈现
能通过BGP-LS或其他协议获取网络拓扑,支持以BGP-LS收集SR-MPLS、SRv6等信息,能通过Telemetry实现秒级的网络数据监测上报,或者至少能通过SNMP实现全网监测数据的周期采集。可以通过TWAMP或其他协议实现网络质量监控。
基于数据的采集和分析,可以呈现网络的物理拓扑和逻辑拓扑,可以呈现相关数据信息和状态信息,比如可以呈现各链路网络流量情况及变化趋势曲线图,并根据一定的阈值设定对端口流量利用率进行监控和告警。
2. 业务配置自动下发与管理
SDN控制器能通过Netconf接口或其他方式实现下发MPLS等业务配置,能够监测网络内已有配置并同步到控制器,具备资源和配置参数冲突监测功能,能对网络配置参数和网络资源全局统一分配管理。
3. SR隧道下发与管理
能够创建、修改或者删除SR-TE Tunnel。能够通过PCEP或其他协议实现SR-TE Tunnel的托管和下发。可以设置隧道的Hot-Standby路径或者Ti-LFA保护。
能够创建、修改或删除SR Policy和SRv6 Policy隧道,支持SR Policy和SRv6 Policy隧道Color、Candidate Path等参数的设置。
SDN控制器能够支持以图形化的方式呈现SR隧道路径、流量、告警等信息,便于网络管理员对隧道状态和隧道所承载业务流量进行观测与管理。
4. SR隧道路径计算功能
一般提到通过SDN实现差异化服务和业务流量路径灵活调优等能力,都是以隧道路径的计算、控制和下发能力为基础的。隧道路径计算功能主要包含以下几个方面。
(1) 多重约束条件计算路径
路径计算时可以基于多重约束条件计算路径,可以支持带宽、时延、跳数限制、显示路径等约束条件。其中显示路径约束条件又分为显示路径包含(隧道必须严格或松散地经过有序指定的链路或节点)和显示路径排除(隧道必须不能经过指定的链路或节点)。
(2) 基于特定选路策略进行选路
根据约束条件计算路径后可能有多条备选路径,支持基于链路可用度最优、链路剩余带宽最大、Cost最小、时延最小等选路策略进行选路。
(3) 主备路径分离
支持隧道主备路径分离(SR-TE Tunnel或SR Policy),主备路径尽量完全不共路或者少共路。也可以通过TI-LFA的方式实现隧道路径的保护。
跨AS域隧道路径计算(有多个AS域的超大网络场景)
能实现跨AS域E2E路径计算。支持基于收集的跨域拓扑,根据隧道约束条件进行E2E路径计算,并将计算的路径下发到转发器。AS域内隧道和跨AS域隧道可以共存。
目前跨AS域场景的隧道计算和管理依然是广域网SDN的一个难题,在进行域内路径和域间路径的拼接时,域内路径最优和域间路径最优要综合考虑和衡量,整体比较复杂。
5. 裸IP流量调度
在MPLS的业务场景,MPLS业务流量直接Over在SR 隧道上,通过更改或者优化隧道路径,就可以实现业务流量的差异化服务和路径调优。
在裸IP流量场景,要能实现将裸IP业务流量导入到隧道当中,从而实现裸IP流量的调优。可以基于源IP、目的IP、源AS、目的AS、BGP路由Community等参数来抓取裸IP流量,并通过PBR方式导入到隧道当中。当然SR Policy场景下流量的导入会方便很多。
6. 路由分析功能
能在网络拓扑中可视化呈现IGP路由状态信息,可以获取并呈现IGP路由告警,包括IGP Peer Up、Down告警、IGP前缀路由撤销和IGP路由Flapping等告警。
能通过BMP实现BGP路由信息采集,能在拓扑中可视化呈现BGP路由协议状态,包括Peer信息、AS发布路由等信息;对网络中设备BGP运行状态进行实时监控,包括Peer的状态,路由新增、撤销、更新事件。能提供BGP路由的分析与预警,包括公网BGP路由及BGP路由。
7. 网络仿真
(1) 网络故障仿真
能实现基于链路或者设备故障的网络流量预测,并支持基于预测结果的网络流量仿真。在网络正常状态下,能对特定设备或者链路故障时的网络状态进行模拟,输出模拟仿真后的网络状态结果,包括模拟后的网络资源和链路利用率,各链路承载的业务信息,以及重要业务流量的承载劣化情况等。便于网络管理员对可能出现的网络故障进行影响分析,并更有针对性地准备网络故障预案。
(2) 网络流量仿真
能实现流量突发场景的仿真,比如对重大热点事件、电商促销等流量突发场景进行仿真,根据导入的流量突发模型模拟流量突发后网络承载情况,包括链路的拥塞情况,网络资源和设备的负载情况。为网络管理员制定疏导方案提供更有借鉴意义和直观的参考。
四、广域网SDN架构设计
1. 单一管理域或AS域SDN架构设计
对于多厂家设备混合组网的广域网SDN架构,理想的方案当然是单一控制器通过标准的南向接口去控制不同厂家的设备,但是现实情况是目前不同厂家的南向接口没有实现全部的标准化,尤其设备配置Netconf的Yang模型,不同厂家还主要是以私有实现为主,所以SDN控制器在某些南向接口协议上就不得不去适配不同厂家私有接口。整体的广域网SDN架构如下图。
接口1、接口2、接口3为厂家的私有Netconf接口,SDN控制器通过适配厂家的私有Netconf接口去下发业务和设备配置。未来随着技术的发展,如果能实现SDN南向Netconf接口的全面标准化和解耦,这三个接口可以统一为一个标准接口。此外需要说明的是,某些标准化程度不高,需要控制器去适配厂家私有实现的协议,也可以放入到接口1、接口2和接口3中,比如Telemetry。
接口4是一组协议,目前主要应用的有如下SDN南向接协议。
PCEP,用于实现SR-TE Tunnel的托管、路径下发和状态上报;
SNMP,读取设备信息,如接口流量、隧道流量,通过SNMP Trap接收设备的告警信息;
Telemetry,信息采集,如接口和隧道流量采集,性能数据采集,Telemetry比SNMP效率更高,可以实现秒级的信息采集,可以更好的实时监控网络设备和资源状态;
BMP,BGP运行状态采集,包括对等体关系的建立与解除、路由信息刷新等;
BGP-LS,控制器通过BGP-LS收集拓扑信息、SR-MPLS信息,SRv6信息、链路时延等信息;
BGP Flowspec,控制器通过下发携带流量匹配条件和流量匹配后执行动作的BGP Flowspec路由,实现流量调优;
BGP SR Policy/BGP SRv6 Policy,控制器通过BGP下发SR Policy信息,其中包含endpoint、color、candidate path信息,实现对隧道路径、隧道负载等情况的控制;
Netstream/Netflow/IPFIX:流量采样,用于流量分析。在流量调优和其他网络调整前,都需要以流量分析结果作为参考;
TWAMP,双向主动测量协议,可以探测链路的时延、抖动、丢包率。
2. 跨域SDN架构
某些大型网络经营者拥有多个独立AS域的网络,大部分网络业务域内配置开通,但是也有部份业务需要跨域开通,例如运营商跨省网和骨干网的业务开通与流量调度。在跨域的场景下,可以通过业务编排层实现跨域的业务开通。但编排层是和业务和应用强关联的,不具备直接的网络管理能力,如果要实现承载业务流量的隧道路径跨域计算和跨域端到端流量调度,就需要具备强大的网络管理能力。我个人还是倾向于认为这个协同跨域业务开通的编排层如果被开发具备强大的网络管理能力(跨域隧道路径计算和跨域流量调度),应该叫超级控制器会更贴切些。
当然网络架构是为网络需求服务的,以力求完备的架构和功能实现为出发点而不是以迫切的网络需求为出发点去规划和建设网络,背离了网络发展和演进的原则。广域网SDN架构演进也是如此,以需求为导向,尽量在满足需求的情况下去轻量化部署网络SDN架构。比如经常讨论到的在广域网SDN架构中,普遍认为差异化服务和流量调优要以隧道路径计算、隧道路径优化为基础去实现。我觉得基于隧道路径计算、优化的功能实现差异化服务和流量调优肯定是需要支持的,对于重点客户的精确化服务能力的实现也是有意义的。
但是面对大量客户成千上万的业务流量和承载隧道,调整起来会非常复杂,对控制器的要求会非常高,部署起来的困难可想而知。所以我觉得不管域内还是域间的差异化服务还是要以QOS能力为基础去实现,端到端给重要客户的业务流量配置高优先级,确保高优先级业务流量在网络承载能力不足、网络拥塞时被优先转发。所以,在没有明确的跨域隧道路径调优需求的场景下,完全不用开发超级控制器层,而只开发面向业务开通的编排层就可以,当然涉及到跨域业务开通时边界设备的配置对接,当然也要编排层协调分配一定的网络配置参数给到两个域的不同控制器。
3. SDN控制器高可靠部署架构
SDN控制器作为整个网络的大脑,高可靠部署非常重要。在单一的控制器内部,要通过集群或主备方式实现服务级高可靠保护,服务模块单节点故障时,SDN控制器功能不受影响。
同时要实现SDN控制器的异地灾备部署,在两个不同的物理位置分别部署主、备控制器,主备控制器间数据进行实时同步。主备控制器可以快速切换,主备切换时,原有业务不中断。
4. 总结
升级SDN架构,是网络智能化演进的基础,是广域网网络升级的必然途径和必选项。但受限于广域网多厂家混合组网的现状,广域网SDN架构升级是一个逐步升级和功能完善的过程,网络运营者可以根据各自实际的网络和业务情况去逐步推进SDN架构的部署与功能演进。