SD-Fabric:端到端可编程数据平面

描述

自 2010 年以来,网络的所有权开始从网络供应商转移到网络运营商,这种转变很大程度是由SDN、解耦和开源的理念推动的。

数据平面是应用SDN、解耦和开源的理念的另一个领域。 像P4这样的语言和编程抽象为数据平面提供了一个通用的编程模型,成为描述网络设备如何转发数据包的标准方式。数据平面可编程性为运营商提供了前所未有的控制,即支持哪些功能以及如何在网络中处理数据包。

这场变革最初是从控制交换机开始的,如今我们正在见证新的趋势,例如SmartNIC/ DPU/IPU。不管如何称呼,它们通过卸载网络功能,将数据平面可编程性扩展到服务器,同时提供更好的性能、安全性和隔离性。同样,业界正在积极推动内核和虚拟交换机的可编程性(如eBPF和P4-OvS),这些可编程性提供了对数据包处理的控制和可见性。

然而, 扩展数据平面可编程性的范围意味着需要管理更多的复杂性。 数据包通过基于CPU的vSwitch、网卡和Fabric交换机到达租户应用程序时,会遇到不同的网络功能(例如安全检查、数据包检测、压缩、加密等),这些功能是在各种目标上实现的,包括CPU、GPU、 FGPA和交换ASIC。如今,对这些不同功能、不同目标类型和不同供应商的控制、管理和可见性是孤立的,通常会涉及到多个系统之间的协调。这些系统可能由不同的供应商提供,并由不同的团队管理。因此,很难对流经网络的数据包做出端到端的服务保证。

SD-Fabric 开源项目

2021年6月4日,开放网络基金会 (ONF) 宣布了SD-Fabric 开源项目,这是一个高度可编程、完全软件定义、云管理、全堆栈的网络架构,使用开源组件(包括 ONOS 和 Stratum)生成。该架构在 P4 可编程交换机上运行,并引入了端到端 QoS、切片和INT 等新功能。
SD-Fabric架构

ONF定义了SD-Fabric架构,如下图所示:

服务器

SD-Fabric架构

1.P4交换机

P4可编程交换机是SD-Fabric的核心,根据可伸缩性和冗余需求,它有一个leaf和spine交换机集群。

2.交换机操作系统

P4 交换机上运行着交换机操作系统,向 P4 Runtime控制器公开功能。

3.SDN控制器

SDN 控制器使用 P4RT(P4 Runtime)和 gNMI 作为配置工具和路径控制器。ONF 在这里使用了ONOS控制器。

4. SD-Fabric 应用程序

这些是在计算刀片上运行的各种应用程序,例如带内遥测应用程序和Trellis应用程序等。

5.API

它是一个 API 驱动的架构,SD-Fabric 应用程序向操作控制中心公开API。

6.Runtime Operations & Control

整个系统通过Runtime Operations & Control进行云管理,可以在私有云和公有云上运行。

SD-Fabric特性

SD-Fabric 建立在SDN和云原生基础之上,创建了一个颠覆性的平台。

  • 首先,SD-Fabric是一种使用裸金属交换机和商用ASIC芯片的解耦解决方案。 SD- Fabric不使用OEM网络硬件,而是直接使用来自ODM的硬件。在大规模带宽密度和商用ASIC芯片日益成熟的推动下,如今的网络行业开始越来越多地使用裸金属(白盒)交换机。
  • 第二,SD-Fabric基于SDN原理,使用P4的可编程数据平面。 P4 允许引入传统架构中没有的新功能。通过将网络的控制、管理功能和策略决策外化到ONOS™SDN控制器中,与BGP等传统的嵌入式网络控制相比,SD-Fabric为网络运营商提供了许多优势,包括可定制性、集中配置、自动化、简化操作和故障排除。因此,SD-Fabric是真正在控制平面和数据平面上定义的软件。
  • SD-Fabric公开了API,使开发人员能够获得更好的可见性和控制,同时使自定义P4转发逻辑“推”到网络中。 SD-Fabric可以进一步部署在SaaS模型中,从公有云运行集中的操作和控制。
  • 与传统方法相比, SD-Fabric提供了卓越的弹性和安全性。 SD-Fabric的可编程性实现了细粒度测量(通过带内网络遥测、网络验证和闭环控制)。
  • SD-Fabric可以在公有云中 作为一种“即服务”形式进行部署 。当作为“即服务”部署时,SD- Fabric提供了一个完整的堆栈实现。

服务器

传统架构与SD-Fabric对比

与传统的架构相比,SD-Fabric有什么优势?

SD-Fabric的核心是L3架构,其中IPv4和IPv6数据包通过Spine交换机使用多条等成本路径跨服务器机架进行路由。每个服务器机架内也支持L2桥接和VLAN,计算节点可以双归属到双活配置(M-LAG)中的两个ToR交换机上。SD-Fabric假设fabric通过传统路由器连接到公共互联网和公有云(或其他网络)。

服务器

典型 Leaf-Spine拓扑中的SD-Fabric

SD-Fabric支持许多其他的路由器特性,如静态路由、多播、DHCP L3中继,以及使用基于第2/3/4层选项的ACL在入口丢弃流量或通过基于策略的路由重定向流量。但是SDN控制极大地简化了在每个交换机上运行的软件,并且将控制转移到运行在边缘云上的SDN应用程序中。

服务器

SD-Fabric超越了传统架构

可编程数据平面和P4

SD-Fabric的数据平面是完全可编程的。 与传统架构形成鲜明对比的是,交换机供应商并没有规定这些功能,这是通过P4实现的。P4允许运营商通过重新编程现有的交换机,推出新的功能和服务,不断发展其网络基础设施。相比之下,基于固定功能ASIC的传统架构受制于极其漫长的硬件开发周期(平均4年),并且需要昂贵的基础设施升级以支持新功能。

服务器

SD-Fabric 支持在计算节点之间整个路径上的每一跳处对转发行为进行编程

SD-Fabric利用了P4的可编程性,扩展了传统的L2/L3管道的交换和路由功能,如4G/5G 移动核心用户平面功能(UPF)和带内网络遥测(INT)。

4G/5G移动核心用户平面功能

SD-Fabric中的交换机可以被编程为以线路速率执行UPF功能。 与vRouter类似,一个新的ONOS应用程序将整个leaf-spine 结构抽象为一个大的UPF,使用符合3GPP的分组转发控制协议实现,提供与移动核心控制平面的集成。

通过集成的UPF处理,SD-Fabric可以为多太比特和低延迟的边缘应用程序实现4G/5G本地突破,而不占用容器或虚拟机的CPU处理能力。与基于SmartNIC卸载的UPF解决方案相比,SDFabric的嵌入式UPF除了用于互连服务器和基站的相同leaf和spine交换机外,不需要额外的硬件。同时,SD-Fabric可以与基于CPU或基于SmartNIC的UPF集成,以提高规模,同时支持基于硬件的快速路径上的差异化服务,用于关键的4G/5G应用程序。

带内网络遥测

SD-Fabric提供了对带内网络遥测(INT)的可扩展支持,为架构如何处理单个数据包提供了前所未有的可见性。 为此,P4定义的交换机管道得到了扩展,能够为许多数据包事件和异常生成INT报告,例如:

  • 对于每个流(5元组),它会生成定期报告,以监控每个网络跳(交换机)引入的交换机、端口、队列和端到端延迟的路径。
  • 如果一个数据包被丢弃,它会生成一个带有交换机ID和丢弃原因的报告。
  • 在拥塞期间,它会生成报告,以在给定时间重建队列的快照,从而可以准确地识别是哪个流导致了其他流的延迟或下降。
  • 对于GTP-U隧道,它生成关于内部流的报告,从而监控单个UE流的转发行为和感知的 QoS。

SD-Fabric的INT实现符合开源的INT规范。此外,为了避免重载INT收集器和最小化INT报告的开销,SD-Fabric的数据平面使用P4实现智能过滤器和触发器,大大减少报告的数量。

灵活的ASIC资源分配

SD-Fabric软件堆栈基础上的P4程序为常见的L2/L3功能和专用功能定义了匹配操作表,其中存储GTP-U隧道信息等。与传统架构中使用的固定功能ASIC相比,表的尺寸不是固定的。例如,对于以路由为主的部署,可以决定增加IPv4路由表,使其占用ASIC总内存的90%,使用最长前缀匹配项和精确匹配 /32项,同时减少其他表的大小。类似地,当为UPF使用SD-Fabric时,可以决定使用更大的 GTP-U隧道表重新编译P4程序,同时将IPv4路由表的大小减少到10-100个条目,或者完全删除IPv6表。

闭环控制

通过完全的透明性、可见性和可验证性,SD-Fabric能够通过可编程的实时闭环控制进行优化和保护。可以将闭环控制应用于各种用例,包括资源优化(流量工程)、验证(转发行为)、安全性(DDoS缓解)等。

SDN、白盒和开源

SD-Fabric在控制平面和数据平面上都是基于SDN的纯粹实现。当与开源相结合时,使运营商能够更快地开发特性,更灵活地部署,并以他们想要的方式定制/优化特性。此外,SDN有助于集中配置所有网络功能,并允许集中网络监控和故障排除。与OEM供应商的产品相比,使用ODM的白盒(裸金属)交换硬件显著降低了资本支出成本。从某些方面来说,成本节省可能高达60%。

最后,开源软件允许网络运营商开发自己的应用程序,并选择如何与后端系统集成。与传统的网络架构相比,SD-Fabric对运营商、企业和政府应用程序非常有吸引力。

可扩展的API

传统的网络架构通常是一个不透明的管道,应用程序将数据包发送到网络中,并希望它们传送到另一端。当数据包没有到达目的地时,几乎没有办法确定是哪里出现了问题。

通过SD-Fabric API,网络应用程序可以完全了解和控制其数据包的处理方式 。例如,对延迟敏感的应用程序可以选择通知网络延迟,并在当前转发路径上出现拥塞时指示fabric重定向其数据包。类似地,API提供了一种将网络流量与网络片关联起来的方法,从而提供了QoS保证和与其他片的流量隔离。该API还通过提供一种可编程的方式来动态更改数据包转发行为,在闭环控制中起着关键作用。

在高层次上,SD-Fabric的API可分为四大类:配置、信息、控制和OAM。

  • 配置:API允许用户设置SD-Fabric功能,如桥接的VLAN信息和路由的子网信息。
  • 信息:API允许用户获取SD-Fabric的运行状态、度量标准和网络事件,如链路拥塞、计数器和端口状态。
  • 控制:API使用户能够动态地改变fabric的转发行为,如删除或重定向流量、设置QoS分类和应用网络切片策略。
  • OAM:API公开了操作和管理功能,如软件升级和故障排除,允许SD-Fabric与现有的编排系统和工作流集成。

未来计划

ONF 希望逐步扩展 SDN 控制域,并引入额外的数据平面可编程性,可分为以下三个方面:

1.将 SD-Fabric 扩展到 NIC 和 vSwitch

2.扩大网络功能的嵌入

3.为现有交换机堆栈带来 SDN 和数据平面可编程性的优势

将 SD-Fabric 扩展到NIC和vSwitch

扩展 SDN 控制域以包括SmartNIC

将现有的 SD-Fabric 功能扩展到服务器,例如:

  • 强制切片隔离和 QoS 以管理在同一服务器上运行的竞争应用程序之间的 NIC 缓冲区;
  • 将 INT 可见性扩展到 NIC 管道以检测丢弃、拥塞和其他异常情况。

此步骤为控制 SD-Fabric 中的其他服务器 NIC 功能(包括切片、INT 和 QoS)奠定了基础。

扩展 SDN 控制域以包括 vSwitch

此步骤将控制域扩展到另一层,从而启用新功能。例如:

  • 在容器(或 VM)虚拟接口上的切片和 QoS 提供早期分类;
  • 扩展 INT 可见性以检测丢弃和其他异常情况;
  • 探索统一/扁平化underlay和overlay网络,以获得更好的可见性、更少的开销和更简单的网络设计。

完成这一步将实现一个真正的端到端可编程架构,允许在网络域中控制和监视从源应用程序到目的地的数据包。

扩大网络功能嵌入

该部分的重点是使 SD-Fabric 成为一个框架,允许运营商利用加速器的多样性来执行网络功能,例如 5G UPF。

该步骤将使 SD-Fabric 能够控制卸载的网络功能,如 UPF,运行在不同的加速器而不是交换机上。例如,它可以控制一个仅依赖 NIC 进行路由和 UPF 的无交换机架构。与如今采用的孤立方法相比,这将为不同的网络目标提供更统一的处理方式,并且将有助于选择在控制平面和应用层上进行最小或不更改的情况下将功能部署到不同的目标类型。

为现有交换机堆栈带来 SDN 和数据平面可编程性的优势

该部分关注两个共生目标:通过利用已经支持的开源平台(例如 SONiC、OvS),允许 SD-Fabric 在更广泛的目标集上运行,并将 SDN 和数据平面可编程性的优势带给更多的网络社区。将 SDN 接口和数据平面可编程性视为可以移植到现有交换机操作系统或发行版的应用程序,而不是竞争性的全堆栈解决方案。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分