P4和P4运行时:SDN可编程性的新视野

描述

在软件化时代,SDN正在展开其边界,各行各业正专注于将网络控制置于金字塔顶端 - 从复杂的硬件到软件应用程序。P4已经通过提供低至ASIC的网络可编程性来控制金字塔的底部(转发平面)。近年来,一些概念和协议也开始统治金字塔的顶端(控制平面),但有了 P4,历史似乎要改变!

网络设备控制平面

控制平面是网络设备的大脑。它具有各种应用程序,可以学习和填充数据平面定义的表。在传统的网络设备中,用于配置数据包控制移动的控制平面或软件位于同一设备上。因此,对于任何更改,网络管理员必须通过单独连接到每个设备来配置交换机。为了增加复杂性,每个芯片供应商都提供了自己的专有接口/API来控制数据平面。为了使网络管理员的生活变得轻松,目标是将网络设备的控制平面和数据平面分开。这催生了SDN(软件定义网络)技术。SDN使用软件应用程序通过集中式控制器对交换机进行编程,从而解耦控制平面和数据平面。这使得通过集中式控制器配置网络变得容易。但是,由于来自不同供应商的不同接口,不可能使用单个控制平面API来控制来自不同芯片供应商的交换机ASIC。在解决这个问题的一段时间内,引入了不同的协议/标准化来使API开源。

开放流: OpenFlow是ONF(开放网络基金会)在控制平面和数据平面之间的第一个标准开源通信协议,旨在促进SDN的采用。OpenFlow是SDN网络的解决方案,它在流量方面为控制器和交换机之间提供了标准接口。流包含以表格形式组织的匹配字段、优先级和操作。提供的API是通用的,不依赖于目标,因此适用于任何与OpenFlow兼容的控制平面软件。

SAI(交换机抽象接口): SAI提供开源标准C API对OCP(开放计算项目)正式接受的网络芯片数据平面进行编程。SAI抽象了底层芯片,因此允许任何相同的控制平面软件插入任何设备,使SAI目标独立。

为什么选择 P4 运行时?

OpenFlow和SAI存在各种限制。两者都考虑到了固定交换机的设计,这使得它在未来无法扩展到新的协议。它们与目标无关,但依赖于协议。添加新协议需要大量的时间和精力以及社区参与。SAI 专为控制平面位于交换机内的交换机而设计。两者都不能使用可编程数据平面进行自我扩展。使用P4可编程数据平面时,控制平面接口没有标准。很少有供应商开发自己的专有工具来自动生成API,这些API可以从P4程序或JSON填充表。但是,对于如何定义这些 API 没有标准。因此,p4.org 决定成立API工作组,创建独立于硅的API,用于控制交换机的转发平面。P4运行时架构使其独立于协议以及底层转发交换机。同一 API 可用于控制支持不同协议的不同交换机。P4 运行时有助于控制任何转发平面,无论是固定的、半可编程的还是完全可编程的。P4 运行时可用于任何交换机,无论是本地还是远程控制平面。它足够灵活,可以同时支持 OpenFlow API 和 SAI API。

P4运行时的功能

P4 运行时 API 支持两个主要功能:

管理匹配操作表:通过添加、删除、修改、显示匹配操作表中的条目来管理数据平面的行为

更新转发平面逻辑:使用新的 P4 代码更新 P4 可编程交换机的转发行为

SDN网络中P4运行时的架构

交换机

图 1:不同设备的 SDN 网络中的 P4 运行时流

P4 Runtime 的架构使其足够灵活,适用于本地或远程控制平面基础设施,以及固定和可编程网络设备。

对于本地控制平面,从 P4 编译器生成的 P4 运行时 API 可以直接用于控制 ASIC,包括基于 ASIC 类型(固定或可编程)的条目编程和表创建和删除。同样,对于远程控制平面,P4 编译器生成的 P4 运行时 API 可用于通过控制平面控制交换机。P4 编译器将根据控制平面的需要生成架构。

对于固定功能开关,可以首先使用 P4 语言来模拟开关的行为,然后可以使用 P4 运行时 API 来控制固定功能开关。运行时 API 可用于在由 P4 语言定义的表中插入/删除条目,这与实际硬件类似。

如果开关是可编程的,则可以将其扩展到控制所有可编程实体,例如添加新表、插入条目、删除条目以使用编译器生成的 P4 运行时 API 在运行时更新转发平面。

图 1 显示了独立于转发平面的 SDN(远程控制平面)网络中的通用 P4 运行时架构。

P4 和 P4 运行时 – SDN 可编程性的新视野

对于可编程网络设备,P4 运行时通过使用 P4 从上到下编程直到 ASIC 数据平面,开启了真正的 SDN 可编程性。P4 语言可用于描述转发管道,P4 运行时可用于控制转发和从远程更新转发逻辑运行时。借助 P4,SDN 控制器能够重新定义表、条目、解析器、匹配操作和数据包处理逻辑。从而完全控制网络。

P4 运行时提供了一种使用可编程和固定功能交换机组合构建网络的无缝方法。P4 编译器自动生成填充表所需的 API。P4 运行时使大型网络编程变得更加容易。VOLANSYS为您的网络设备提供端到端的解决方案,包括编译器开发,P4运行时与NOS的集成,添加对新功能/协议的支持以及完整的测试。

审核编辑:郭婷

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

全部0条评论

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

×
20
完善资料,
赚取积分