科技创新就是艺术创造
SDN:ONOS架构
来源: | 作者:davincinet | 发布时间: 2020-07-12 | 428 次浏览 | 分享到:
ONOS的总体架构如图1所示。它由三个主要层组成:

应用程序用来通知网络状态(如遍历拓扑图、截获网络数据包)和控制网络数据平面(例如,通过第3章介绍的FlowObjective API编写的程序流目标)的一种北向接口(NBI)集合。

分布式核心负责管理网络的状态,并将状态的变化通知应用程序。核心内部是一个可伸缩的密钥/值存储,称为Atomix。

一种南向接口(SBI),由一个集合插件构成,该插件包括一个共享协议库和特定于设备的驱动程序。

图1

如图1所示,设计是高度模块化的,并且给定的部署配置包括所需的模块子集。这里我们讨论可伸缩性问题。重点是ONOS的功能组织。

在深入研究每个层的细节之前,关于图1还有三件事需要注意。首先是NBI的广度。如果您将ONOS视为一个操作系统,那么它是有意义的:无论是控制程序还是手动操作,对底层硬件的所有访问都是由ONOS执行的。这意味着所有北向API的组合必须足以配置、操作和控制网络。例如,NBI包括用于配置和操作的gNMI和gNOI。这也意味着NBI包括拓扑api,用于控制应用程序了解底层网络状态的变化(例如端口的上升和下降),以及控制底层交换机的FlowObjective api。

顺便说一下,虽然我们通常将运行在网络操作系统上的应用程序描述为实现网络控制平面,但实际上,运行在ONOS上的各种应用程序都是通过GUI来实现的,并且可以用来对传统的CLI进行状态监控,操作员可以使用CLI发出指令。

ONOS之上的应用程序包括一个零接触管理平面,它为网络添加了新的硬件,以确保安装了正确的软件、证书、配置参数和管道定义。这个例子如图2所示。其中一个要点是ONOS没有一个固定的NBI:ONOS可以运行多个应用和服务层,每个层在其下面提供一些应用和服务。价值观。宣布零接触配置是在ONOS上还是在ONOS上是任意声明。指出了ONOS不像传统操作系统那样重要:没有syscall等价接口来标记特权内核和多内核之间的边界。用户域。换句话说,ONOS目前运行在一个信任域中。



图2


图1需要注意的第二件事是ONOS将控制应用程序行为的抽象规范映射到需要与网络中的每个交换机通信的特定指令。应用程序可以从多种方式选择如何影响网络操作。一些应用程序使用高级意图,即网络范围内的、与拓扑无关的编程结构。其他需要更细粒度控制的对象不使用流目标,它是以设备为中心的编程结构。流目标与流规则非常相似,只是它们与管道无关。应用程序使用它们来控制固定函数和pro

可编程管道。如图3所示,面对完成这项工作的各种转发管道是ONOS清楚地解决的复杂性。

图3

关于图1的第三个注意事项是,信息通过ONOS“向下”和“向上”流动。使用ONOS NBI控制网络的应用程序很容易集中精力,但是向南的插件也将有关底层网络的信息传递给ONOS核心。这包括截获数据包、发现设备及其端口、报告链路质量等。ONOS核心和网络设备之间的这些交互由一组适配器(如OpenFlow、P4Runtime)处理。这些适配器隐藏了与设备通信的详细信息,使ONOS内核和应用程序

原文链接:https://sdn.systemsapproach.org/onos.html#onos-architecture