随着互联网和数据中心流量的爆炸式增长,SDN已经逐步取代静态路由交换设备成为构建网络的主流方式,本系列是免费电子书《Software-Defined Networks: A Systems Approach》的中文版,完整介绍了SDN的概念、原理、架构和实现方式。原文: Software-Defined Networks: A Systems Approach[1]
第9章 接入网
现在我们将注意力转向SDN最新出现的用例: 接入网,包括光纤到家和移动蜂窝网络。虽然现在还处于早期阶段(刚刚推出产品部署),但有巨大的机会。本章描述了两个例子: 无源光网络(PON, Passive Optical Networks) 和无线接入网(RAN, Radio Access Networks) ,分别是光纤到家和移动蜂窝网络的核心。
9.1 背景
用于实现将家庭、企业和移动设备连接到互联网的最后一英里的网络技术有着独立于互联网其他部分的发展历程。这种发展已经持续了几十年,开始于对基于电路的语音通信的支持,然后逐渐增加了对基于IP的数据通信的支持。最终结果是一个巴洛克式的专用设备的集合,对于那些知道如何在L2/L3以太网交换机的集合上构建网络的人来说,这些设备看起来非常陌生。
但这使得接入网成为SDN的沃土,为了理解这意味着什么,我们需要从对将要替换的传统系统的简要概述开始。我们将在介绍两种特定接入技术(PON/RAN)的上下文中开始。幸运的是,从高层往下看,它们的架构惊人的相似。当然,细节差别也很大,但隐藏(甚至消除)不必要的细节是SDN带来的主要价值之一。
在讨论细节之前,需要再了解一点背景知识。提供宽带服务的ISP(如电信公司或有线电视公司)通常经营着国家主干网络,连接到该主干网外围的是成百上千的边缘站点。在电信领域,这些边缘站点通常被称为中央机房(Central Offices) ,在有线通信领域,通常被称为头端(Head Ends) 。尽管这些名字暗示着"集中化"和"层次结构的根",但都位于ISP网络的最边缘,是ISP连接客户的最后一英里的一端。基于PON和RAN的接入网就部署在这些设施中。
9.1.1 无源光网络(Passive Optical Network)
PON是树形结构的光纤网络,从ISP边缘站点的一台设备开始,可以扩展到1024个家庭。PON的名字来源于被动的无源分路器,这些分路器向上下游转发光信号,而没有对帧进行主动存储转发的能力。端点完成帧的拼接,对应的ISP设备被称为光终端(OLT, Optical Line Terminal) ,部署在家庭中的设备被称为光网络单元(ONU, Optical Network Unit) 。
图51是一个PON的示例,简化为只有一个ONU和一个OLT。在实际部署中,一个中心机房会有多个OLT,分别连接数千个客户家庭。图51还突出显示了另一个细节,一个将接入网连接到Internet的BNG(Broadband Network Gateway) 。BNG是电信公司的一种设备,除了转发数据包外,还对用户进行身份验证,区分向每个客户提供的服务水平,并对流量进行计费。
由于分路器是无源的,PON实现了多接入协议。简单来说,上下游业务在两个不同的波长的光波上传输,因此是完全独立的。下行流量从OLT开始,信号沿着PON的每一条链路传播,每一帧都能够到达ONU。然后ONU在帧中查看唯一的标识符,并接收该帧(如果标识符是自己)或丢弃(如果不是自己)。通过加密防止ONU窃听邻居的通信。上游流量在上游波长上进行时分复用,每个ONU周期性获得发送周期。
PON与以太网类似,定义了一种共享算法,经过多年发展,该算法可以适应越来越高的带宽。目前部署最广泛的是G-PON(Gigabit-PON),支持2.25 Gbps带宽。XGS-PON(10 Gigabit-PON)正在部署中。
9.1.2 无线接入网(Radio Access Network)
RAN通过在无线电频谱的不同带宽上编码和传输数据来实现最后一跳。例如,传统的蜂窝技术范围从700 MHz到2400 MHz,如今在6 GHz范围分配了新的中频频谱,而毫米波(mmWave)技术的频谱在24 GHz以上。
如图52所示,给定地理区域(例如地铁站)中的一组基站相互连接,并和运行在中央机房中的移动核心网(Mobile Core)通信。移动核心网类似于BNG(从高层架构来说),充当连接接入网到Internet的IP网关,同时负责认证、QoS和计费。与BNG不同,移动核心网还负责管理移动性(例如,记录当前哪个基站在为哪个有源设备服务,管理基站之间的切换,等等)。
图中显示了移动核心网和一组由回传(backhaul)网络连接的基站。回传网络的实现取决于技术选择,可以基于以太网或基于PON,但就我们的目的而言,重要的是理解RAN实际上是构建在回传网络之上的局域包交换网络,其中基站是该overlay网络的"节点"。数据包通过这个网络"路由"到达最合适的基站,并在给定时刻为每个移动设备(用户设备或UE)提供服务[1]。转发决策由基站实现,基站负责做出以下决策: 切换(handover, 将给定终端的流量从一个基站切换到另一个基站)、负载均衡(load balancing, 一组基站根据其当前负载决定哪个应该为某个终端服务)和链路聚合(link aggregation, 多个基站决定联合向某个给定终端传输数据)。
[1] 之所以说"路由",是因为基于综合考虑移动跟踪和监控决定如何最有效利用无线频谱,而不是通常在有线网络中使用的最短路径标准。重要的是,基站协同实现一种分布式决策算法,然后根据这些决策相互转发数据包。
9.1.3 关键结论(Key Takeaways)
在讨论如何应用SDN原则之前,有三个关于这两种网络技术的结论。首先是"接入网"和"IP网关"的区别。例如,光纤到家(Fiber-to-the-Home)是由PON和BNG结合实现的,同样,5G蜂窝移动网络(5G Cellular Mobile Network)是由RAN和移动核心网(Mobile Core)结合实现的。本章主要关注如何将SDN应用到PON和RAN上,但正如我们在7.4节中已经看到的,SDN也可以应用到BNG和移动核心网。两者都是增强的IP路由器,其新特性都是对运行在交换结构中的P4程序的扩展。 我们将在最后一节中回到这个主题,介绍SD-Fabric和接入网之间的关系。
其次,因为PON是无源的,没有机会在网络内部进行软件控制。将SDN应用于PON涉及到对端点(即OLT和ONU)的软件控制,并将这些端点之间的所有东西视为被动背板。此外,由于ONU是响应OLT指令的"哑"设备,这实际上可以归结为分解OLT。
最后,由于RAN是将一组基站连接起来的包交换网络(作为回传网络的overlay),因此有机会实现软件控制。这需要分解基站,正如我们将在本章后面看到的,基站在历史上运行多层协议栈,一旦被分解,这些组件就会分布在整个网络中,一些组件与无线电天线放在一起,一些组件与中央机房的移动核心网(Mobile Core)放在一起。换句话说,最终计划是"分割"和"分发"RAN功能。
为了更广泛理解分解5G移动网络所涉及的内容,以便在软件中实现,推荐以下配套书籍。
延伸阅读:
L. Peterson and O. Sunay. 5G Mobile Networks: A Systems Approach. June 2020.
9.2 SD-PON
将SDN应用于PON的机会在于,OLT本质上是增强的L2交换机,配备了运行在每个交换机端口上的不同的MAC层帧协议。就像可以买到基于OCP规范的裸金属L2交换机一样,现在也可以买到OLT。但在实际实现软件定义的PON(SD-PON)之前,还需要解决三个问题[2]。
[2] 为了与本书其他用例的命名方式一致,我们将其称为SD-PON,但实际的ONF开源软件项目被称为SEBA: SDN-Enabled Broadband Access。
首先,为了知道网络要支持什么级别的服务,PON需要将大量配置加载到每个OLT中。其次,部署到家庭中的ONU设备的能力有限,需要通过连接的上游OLT间接控制。最后,网络运营商并不一定可以只用裸机硬件,而是必须处理各种传统设备。
为了解决这些问题,出现了图53中描述的SD-PON体系架构。基于该架构的生产网络现在已被电信公司部署到世界各地。为了简单起见,图中只显示一个OLT,连接到两个fabric交换机。在实践中,这种架构对于聚合OLT很有必要,我们将在9.4节再解释细节,当前大家可以认为这些交换机都在第7章介绍的SD-Fabric的控制之下。下面我们将介绍SD-PON架构的其他部分。
首先是硬件抽象层,称为VOLTHA(虚拟OLT硬件抽象, Virtual OLT Hardware Abstraction) 位于网络操作系统(例如ONOS)和单个OLT之间。VOLTHA提供北向OpenFlow接口,使ONOS能够像任何其他SDN设备一样控制OLT,特定供应商的适配器在OpenFlow和OLT之间转换。原则上,这种转换可以在ONOS内部处理,ONOS已经有健壮的南向适配器框架,但VOLTHA被设计为网络操作系统无关的,因此复制了大部分的机制。
VOLTHA必须正确处理许多细节,但在概念上没有什么新内容,主要是控制状态流(例如,为订阅者分配特定的QoS类)和监视状态流(例如,识别ONU何时连接或分离)。主要的不同点是需要将Traffic Profile文件(图中表示为TP)加载到OLT中。这一配置文件指定运维人员期望PON支持的QoS类,通常在OLT启动时加载这这一配置状态,原则上,也可以由ONOS通过gNMI/gNOI进行管理。OLT目前不支持像gNMI这样的通用API,所以通过这种一次性方式处理。
最后,也是最有趣的一点是,由于ONOS需要知道ONU,但不能直接使用OpenFlow或任何其他API进行控制,因此该架构在OLT及其相连的ONU集合上构建了一个交换抽象层,在图53中由外部的灰色框表示。我们可以将这种网络模型看作是交换机,具有一组面向网络的端口(在通信行业中称为NNI)和一组面向用户的端口(在通信行业中称为UNI)。ONOS把这个聚合网络当作一个逻辑交换机,每当用户打开家里的ONU时,ONOS就会看到相应的UNI上有一个"port active"事件,并采取相应的操作,这些操作由图中所示的SD-PON控制套件实现。
那么需要做什么操作呢?主要工作是将用户安全的连接到Internet。例如,当一个ONU上线(对应于逻辑交换机上的一个端口变为活动状态)时,将启动802.1X授权流程,验证该ONU是否是已注册的客户。成功授权的结果是,SD-PON程序指示ONOS通过fabric(使用规定的QoS配置文件)建立一条路径,将用户连接到L2网络。接下来,连接到ONU的家庭路由器将发送一个DHCP请求,触发IP地址分配,并触发ONOS建立路由,将家庭路由器连接到上游BNG(以及互联网)。
9.3 SD-RAN
关于5G的早期宣传主要是关于更多的带宽,但5G的承诺主要是关于从单一接入服务(宽带连接)扩展到更丰富的边缘服务和设备集合,包括支持沉浸式用户界面(如AR/VR)、关键任务应用(如公共安全、自动驾驶汽车)和物联网(IoT)。只有当SDN原则应用于RAN时,这些新应用才可行,才能支持快速引入新特性。正因如此,移动网络运营商正在努力实现软件定义RAN(SD-RAN)。
延伸阅读:
SD-RAN Project. Open Networking Foundation. August 2020.
要理解SD-RAN的技术基础,重要的是要认识到,组成RAN的基站是专门的分组交换机。在给定地理区域内的一组基站相互协调,以分配和共享稀缺的无线电频谱。它们做出切换决策,共同为给定用户服务(可以把这看作链路聚合的RAN变体),并根据连续测量的信号质量做出包调度决策。今天这些都是纯粹的局部决策,但将其转化为全局优化问题是SDN的专长。
SD-RAN的想法是让每个基站向SDN中央控制器报告本地收集到的关于无线电传输质量的统计数据,SDN中央控制器结合来自一组基站的信息,构建一个关于无线电频谱如何被利用的全局视图。一套控制程序(例如,一个专注于切换,一个专注于链路聚合,一个专注于负载平衡,还有一个专注于频率管理)可以基于这些信息做出全局最优决策,并将控制指令推回到各个基站。这些控制指令不是在传输的单个片段的调度粒度上(即,在每个基站上仍然有实时调度程序,就像SDN控制的以太网交换机仍然有本地包调度程序一样),但通过不到10毫秒的测量回路,确实对基站施加了接近实时的控制。
9.3.1 分离式RAN(Split RAN)
为了更好了解这是如何工作的,我们从图54所示的关于基站包处理流水线的细粒度视图开始。请注意,该图将基站描述为流水线(从左到右对发送到UE的数据包进行处理),但同样也可以将其视为协议栈。
关键阶段如下。
-
RRC(无线资源控制, Radio Resource Control): 在流水线中负责粗粒度配置以及策略相关方面。RRC运行在RAN的控制平面上,不处理用户平面报文。 -
PDCP(分组数据聚合协议, Packet Data Convergence Protocol): 负责对IP报头进行压缩解压缩、加密和完整性保护,并做出"早期"转发决策(即数据包是通过流水线发送到终端还是转发到另一个基站)。 -
RLC(无线链路控制, Radio Link Control): 负责分割和重组,通过实现某种形式的ARQ(自动重复请求, automatic repeat request)实现可靠发送/接收。 -
MAC(媒体访问控制, Media Access Control): 负责缓冲、多路复用和解多路复用,包括什么时候传输哪些分片的实时调度决策。还能够做出"延迟"转发决策(即转发到包括WiFi在内的备选载波频率)。 -
PHY(物理层, Physical Layer): 负责编码和调制,包括前向纠错(FEC)。
图54中的最后两个阶段(D/A转换和RF前端)不在本书范围之内。
下一步是理解上面概述的功能是如何在物理组件之间划分的,从而实现集中和分布式部署的"分割"。历史上主流实现是"不分割",如图54所示的整个流水线在一个基站中运行。展望未来,3GPP标准已经被扩展到允许多个分割点,图55所示的分割正在由运营商领导的O-RAN (Open RAN)联盟所积极推动,这也是本章其余部分所采用的方法。
结果就是产生了类似于图56所示的RAN范围的配置,有一个运行在云上的中央单元(CU, Central Unit) 服务于多个分布式单元(DU, Distributed Unit) ,每个DU又服务于多个无线电单元(RU, Radio Unit) 。关键是,RRC(集中在CU中)只负责近实时的配置和控制决策,而MAC阶段的调度器负责所有实时调度决策。
由于无线传输的调度决策是由MAC层实时做出的,不能根据过时的信道信息做出调度决策,因此DU需要在管理的RU"附近"(在1ms时延内),常见配置是在同一个铁塔上部署DU和RU。但是当一个RU对应一个小扇区,许多RU分布在一个中等大小的地理区域(例如,商场、校园或工厂),那么一个DU可能会服务于多个RU。5G毫米波技术的采用可能会使后者更加普遍。
9.3.2 RAN智能控制器(RAN Intelligent Controller)
RRC在图54中显示为基站的一部分,在图55中显示为CU的一部分,代表RAN的控制平面。因为控制决策是集中制定的,因此CU的配置可以自然映射到SDN,但其目标不仅仅是重新创建RRC功能的传统集合,还想为引入额外的控制功能铺平道路。为此,SD-RAN采用了一种与其他领域中使用的网络操作系统/控制应用程序架构相平行的设计(并在本书中进行了描述)。
其结果是图57所示的设计,其中RAN智能控制器(RIC, RAN Intelligent Controller) 是O-RAN架构文档所称的集中式SDN控制器(因此我们在接下来的讨论中采用了这个术语)。"近实时"限定符表示RIC是CU中实现的10-100毫秒控制回路的一部分,而不是运行在DU中的MAC调度器所需的1毫秒控制回路。
如果进一步深入进去,图58显示了基于ONOS的SD-RAN用例示例。最值得注意的是,基于ONOS的RIC支持一组特定于RAN的北向和南向接口,原则上(但不是细节上)类似于前面章节描述的接口(例如,gNMI, gNOI, OpenFlow)。我们将在下一小节讨论这些接口。
基于ONOS的RIC利用了第6章中描述的拓扑服务,但也引入了两个新服务: Control和Telemetry。建立在Atomix键/值存储基础上的Control Service管理所有基站和用户设备的控制状态,包括哪个基站为每个用户设备服务,以及可以连接设备的"潜在链接"集。Telemetry Service建立在时间序列数据库(TSDB, Time Series Database) 的基础上,跟踪RAN组件报告的链接质量信息。各种控制应用程序分析这些数据,并就RAN如何才能最好的满足其数据交付目标做出明智决策。
图58中的示例Control Apps (xApps)包含了一系列的可能性,但这并不是详尽列表。这些功能(链路聚合控制、干扰管理、负载均衡和切换控制)目前由仅具有局部可见性的单个基站实现,但它们具有全局影响。SDN方案是集中收集可用的输入数据,做出全局最优决策,然后将各自的控制参数推回基站执行。
O-RAN联盟
自3G以来,一直由3GPP (3rd Generation Partnership Project)负责移动蜂窝网络的标准化,O-RAN (Open-RAN Alliance)是由移动网络运营商组成的联盟,定义了基于SDN的5G实施战略。
考虑到3GPP已经是负责全球蜂窝网络互操作性的标准化机构,为什么还会有O-RAN联盟?答案是,随着时间的推移,3GPP已经成为由供应商主导的组织。O-RAN是由网络运营商创立的(AT&T和中国移动是创始成员),其目标是推动基于软件的实现,以打破当今市场供应商的垄断。
更具体来说,3GPP定义了可能的RAN解耦点,而O-RAN指定(并编纂)相应的接口。特别是E2接口,是围绕支持不同服务模型的思想构建的,是这个策略的核心。运营商是否能成功实现最终目标还有待观察。
9.3.3 RIC接口
回到图58中提到的三个接口,每个接口的用途都类似于前面章节中描述的接口。前两个,A1和E2,正朝着O-RAN标准化的方向发展。第三种是图58中所示的xApp SDK,尽管O-RAN的长期目标是聚合在统一的API(和相应的SDK)上,但当前是基于ONOS实现的(概念上类似于Flow Objectives)。
A1接口为移动运营商的管理平面(通常被称为OSS/BSS(运营支持系统/业务支持系统))提供了配置RAN的方法。到目前为止,我们还没有讨论通信OSS/BSS,但可以肯定的是,这样的组件位于任何通信软件栈的顶部,是操作网络所需的所有配置设置和业务逻辑的源头,可以把它看作是gNMI/gNOI在RAN中的对应组件。
Near-RT RIC使用E2接口来控制底层的RAN组件(包括CU、DU和RU),可以将它看作OpenFlow在RAN中的对应组件。E2接口的要求是能够将Near-RT RIC连接不同供应商的不同类型的RAN组件。这个要求反映在围绕服务模型(Service Model) 抽象的API中,其思想是每个RAN组件都发布一个服务模型,定义该组件能够支持的RAN功能集,RIC对这个服务模型发出以下四种操作的组合。
-
报告(Report): RIC要求组件报告特定功能的配置值。 -
插入(Insert): RIC指示组件激活某个用户平面功能。 -
控制(Control): RIC指示组件激活某个控制平面功能。 -
策略(Policy): RIC设置某个已激活功能的策略参数。
当然,可以被激活的相关功能、可以报告的变量以及可以设置的测量都是RAN组件通过其发布的服务模型定义的。
综上所述,A1和E2接口完成了RAN的三个主要控制回路中的两个: 外部(非实时)回路以Non-RT RIC为控制点,中间(近实时)回路以Near-RT RIC为控制点。第三个(内部)控制回路,在图58中没有显示,它运行在DU内部,包括实时调度器,嵌入在RAN流水线的MAC阶段。两个外控制回路大概的时间边界分别为>> 1s和>10 ms,并假设实时控制回路<1 ms。
Near-RT RIC打开了引入基于策略的RAN控制的可能性,因此,如果运营商定义的策略发生了中断(异常),表明需要外部回路的参与。例如,可以想象开发基于学习的控件,这些控件的推理引擎将作为应用程序运行在Near-RT RIC,而非实时的学习引擎可以在其他地方运行。然后,Non-RT RIC与Near-RT RIC交互,通过A1接口从管理平面向Near-RT RIC交付相关操作策略。
最后,xApp SDK原则上是Flow Objectives在RAN中的对应组件,是基于ONOS实现的,目前仅仅作为E2接口的"透传",这意味着xApps必须知道可用的服务模型。这是有问题的,因为隐式的将应用程序与设备耦合了起来,但定义与设备无关的版本还在进行中。
9.4 SD-Fabric的角色
正如本章前面所概述的那样,PON和RAN都配有IP网关,该网关增强了特定的接入特性。位于运营商网络边缘的网关负责对用户访问进行授权,区分向用户提供的服务级别,并向用户收费。当用户从一个基站移动到另一个基站时,移动核心网还承担了跟踪移动性的额外责任。
这些附加功能大部分运行在控制平面(甚至管理平面)中,数据平面的行为与任何其他L3网络非常相似,这意味着数据平面可以通过前面章节中看到的机制实现,或者更具体的说,通过第7章中描述的SD-Fabric解决方案实现,但需要考虑这两种特定接入技术,以及对SD-Fabric的影响。
将PON连接到Internet的BNG有供应商定义的控制/管理平面,因此不需要行业范围的标准。数据平面需要支持Q-in-Q标签作为区分订户服务的机制,这是SD-Fabric提供此功能的原因之一。这意味着图53中所示的fabric交换机与图13(来自第2章)和图39(来自第7章)中所示的fabric交换机完全相同。换句话说,SD-Fabric既将OLT连接到互联网,又将一组承载BNG控制和管理功能(以及运营商希望在边缘运行的任何其他VNF)的服务器连接起来。
将RAN连接到互联网的移动核心网是由3GPP标准化的,这使它成为了定义良好的示例(只在高层架构讨论,完整的3GPP规范远远超出了本书范围)。图59给出了架构概述,确定了组成5G移动核心网的功能块。
从这个图中可以看到,UPF(用户平面功能, User Plane Function) 实现了数据平面(3GPP称之为用户平面)。其他所有功能都是控制平面功能,其中AMF负责移动性管理,SMF负责会话管理,AUSF负责身份验证。所有其他功能块都对应于低级流程,AMF、SMF和AUSF调用这些流程来完成工作,但就我们的目的而言,可以将整个功能块视为运行在商业服务器上的微服务。关于移动核心网控制平面的更多细节,以及具体实现选择的示例,我们推荐Magma和SD-Core开源项目。
延伸阅读:
Magma Core Project. Linux Foundation. 2021.
SD-Core Project. Open Networking Foundation. 2021.
对于我们的讨论来说,重要的是UPF也可以作为服务器托管的微服务来实现,就像任何基于软件的路由器一样。由于可以访问可编程交换网络,可以将该功能转移到交换机上。这正是7.4节中fabric.p4
的upf
扩展所做的事情。
但除了转发IP数据包之外,还有什么额外的功能呢?UPF执行三个额外的任务。首先,封装/解封装和基站之间通信的数据包,这些是GTP-over-UDP/IP封装的数据包。其次,根据运营商希望提供的不同QoS级别对数据包进行排队。这两项任务都可以在P4和底层可编程交换机中直接实现。第三个任务是"保存"发送到最近发生移动的终端的数据包,以便在相应的会话状态转换期间没有数据包被丢弃。这不是现在P4交换机所能支持的。因此,交换机会临时将这些数据包重定向到服务器上进行保存和重放,或者重定向到连接到这些服务器的SmartNIC上。MacDavid和他的同事介绍了更详细的机制。
延伸阅读:
R. MacDavid, et al. A P4-based 5G User Plane Function. ACM SOSR. September 2021.
从讨论中我们得到的主要结论是,接入网和交换网是SDN的互补用例,可以协同工作。交换网不仅将承载接入网控制平面功能的服务器(包括RIC和xApps)连接起来,而且还代表接入网运行某些数据平面功能。当所有这些用例结合起来时,最终的结果是边缘接入云(access-edge cloud) :一个中等大小的由商用服务器和交换机构建的集群,部署在企业和其他边缘站点中,能够承载接入网工作负载和边缘服务工作负载。Aether就是这种边缘云的开源示例,它将SD-Fabric、SD-RAN和SD-Core组合在自包含的包中,可以在企业中部署,并作为云服务进行管理。
延伸阅读:
Aether: 5G-Connected Edge. Open Networking Foundation. 2021.
你好,我是俞凡,在Motorola做过研发,现在在Mavenir做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。
微信公众号:DeepNoMind
参考资料
Software-Defined Networks: A Systems Approach: https://sdn.systemsapproach.org/index.html
本文由 mdnice 多平台发布