SDN控制器ONOS架构—Vecloud

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

在这里插入图片描述

ONOS是一个采用OSGI技术来管理子项目的SDN控制器开源项目,在最初设计时有这么几个目标是明确的:
1.代码模块化:支持把新的功能作为新的独立单元引入
2.特性可配置:无论是在启动还是运行时,支持动态加载和卸载特性
3.协议无关:应用不需要和具体的协议库和实现绑定
模块化的实现:ONOS项目由一组子项目组成,每个项目都有自己的源代码树,可以独立构建。为此,ONOS的源码采用分层的方式来组织以方便利用Maven的级联POM文件组织。每个子项目都有自己的pom.xml文件和目录,子pom.xml文件会继承父Pom文件的共享依赖项和配置,使它们能够独立于不相关的子项目构建。Root目录包含用于建立完整的项目及其所有模块的顶层POM文件。
特性可配置:ONOS使用Karaf作为其OSGI框架,除了在运行时的动态模块加载和启动时的依赖解析,Karaf还支持以下几个特性。
支持使用标准的JAX-RS API来开发安全的API接口
支持将特性定义为一组Bundle来进行集中的自定义设置
对代码包有严格的语义版本声明,包括第三方依赖
有易扩展的命令行框架,支持本地和远端的SSH控制台登陆
支持不同日志级别的记录
协议无关,ONOS 被划分为以下几个部分:
和网络交互的协议感知模块
协议无关的系统Core,跟踪和服务网络状态信息
基于Core提供的系统信息来进行消费和操作的应用
上面的每一层都是分层体系结构,其中面向网络的模块通过一个南向(提供者)API与Core进行交互,Core与应用程序通过北向(消费者)API进行交互。南向API定义了协议中立的手段将网络状态信息传递给核心,Core通过面向网络的模块与网络设备交互。北向API为应用程序提供了描述网络组件和属性的抽象,以便它们可以根据策略定义其所需的动作。
服务是一个功能单元,它由不同层的多个组件作为软件堆栈创建垂直切片。我们把组成服务的组件的集合称为子系统。
ONOS定义了不同的子系统:
设备子系统-管理基础设施设备的库存。
链路子系统-管理基础设施链接的库存。
主机子系统-管理终端站主机及其在网络上的位置的库存。
拓扑子系统-管理网络图视图的时间顺序快照。
path子系统计算/发现基础设施设备之间或端站的主机采用最新的拓扑图快照之间的路径。
FlowRule子系统-管理安装在基础设备的match/action流表项和统计流量。
Packet子系统-允许应用程序监听从网络设备接收到的数据包,并通过一个或多个网络设备向网络发送数据包。
Provider
该堆栈的最底层是Provider组件,Provider接口通过协议特定的库和底层设备打交道,并通过Provider
Service接口与Core交互。
协议感知Providers负责使用各种控制和配置协议与网络环境交互,并向Core提供服务特定的感知数据。Provider也可以从其他子系统收集数据,将它们转换成特定于服务的数据。
Provider可能还需要从Core接受控制命令应用并通过适当的网络协议具体手段应用到网络中。这些都是通过Provider接口将这些内容送入Provider组件。
Provider ID
一个Provider与特定的Providerid相关。providerid的主要目的是提供一个Provider族的外部身份,这可以使设备和其他实体模型保持与负责他们的存在Provider相关联,甚至在Provider加载/卸载操作之后。
Providerid携带一个URI方案名称允许松散的配对与从另一个供应商的家庭提供设备,而这没有访问提供商本身是可能的。
Multiple Providers
子系统可以与多个Provider关联。在这种情况下,Provider被指定为主要的或附属的。主Provider拥有与服务相关联的实体,辅助提供者将其信息作为覆盖提供信息。如果任何覆盖导致与底层信息冲突,则此方法给予主Provider优先权。设备子系统是支持多个提供者的此类服务之一。
Manager
Manager是驻留在核心中的组件,其接收来自Provider的信息,并将其提供给应用程序和其他服务。它暴露了几个接口:
Northbound Service interface 应用程序或其他核心组件可以通过该接口了解特定方面的网络状态。
AdminService interface以管理员命令应用到网络或系统的状态。
Southbound ProviderRegistry interface
通过该接口Provider可以注册到Manager中,通过它可以和Manager进行交互。
Southbound ProviderService interface 提供给已经注册的Provider
Manager服务接口的消费者可以同步的查询Service的信息,也可以异步的作为一个事件侦听器(例如,通过使用listenerservice接口注册要监听的事件并实现相关的EventListener
interface)。
Store
Store的具体实现和Core里面的Manager有很强的相关性,Store需要索引,持久化以及同步Manager收到的信息,这包括分布式ONOS多实例间的一致性和鲁棒性的保障,
Application
应用通过AdminService和Service接口来消费和操作Manager聚合的信息,应用程序具有广泛的功能,这里面就包括在Web浏览器中显示网络拓扑,为网络流量设置路径
Application ID
每个应用都有一个唯一的Application ID,这个标识用于追踪应用相关的上下文(任务和目标
比如Intent和FlowRule),为了获得一个有效的ID,应用需要注册到CoreService,注册他们的名字来进行反向域名解析,比如:org.onlab.onos.fwd
Events and Descriptions
两个在ONOS中分布的基本信息单元是事件和描述。与服务一样,事件和描述与特定的网络元素和概念相关联。两者都是一旦创建就不会改变的。
Descriptions
Descriptions用于在南向的API上传递关于元素的信息。例如,一个HostDescription包含一个主机的MAC和IP地址,在网络中的位置信息(VLAN
ID和设备/端口的连接点)。Descriptions通常是由一个或多个模型对象组成。
Events
Manager使用Event通知其Listener关于网络中的变化,并通过Store通知相关的在分布式设置中的Peer。一个事件由一个事件类型和一个由对象模型构成的主题组成。例如,一个device
event可通知devicelisteners,Device(主题)已经被发现(device_added),失去了(device_removed),或某一方面改变了(device_updated)。
Event dispatch
事件是由Store基于Manager的输入产生的。一旦产生,事件就会通过storedelegate接口被分发到感兴趣的听众,最终调用event
deliveryservice。从本质上讲,Store Delegate把事件从Store中取出,event
deliveryservice确保事件仅为感兴趣的听众接收。由于它们之间相互作用的方式,这两个组件驻留在Manager中并由那里的Manager提供storedelegate来做具体实现。
Event Listeners
Event Listener是实现EventListener接口的任何组件。
EventListener的子接口被按照监听事件的类型进一步的分类。典型的Event
listener实现模式是将事件侦听器作为Manager或应用程序的内部类,从中从接收到的事件调用相应的服务。这限制了事件处理逻辑不需要对子系统外部进行暴露。
Network representations
模型对象是ONOS
协议无关方式来表示各种网络元素和属性。事件将这些表示作为它们的主体。这些表示是由Core从Description中找到的信息来构建的。
Vecloud是一家面向企业提供云交换网络服务为核心业务的技术创新企业,在全球的数据中心节点30个,POP节点超过200个,服务的大客户超过300个,涉及金融、互联网、游戏、AI、教育、制造业、跨国企业等行业领域。http://www.vecloud.com/products/cloudconnect.html

SDN控制器工作原理—Vecloud 软件定义网络(Software Defined Networking,SDN)是一种新型的网络架构,它将网络的控制平面与数据平面分离,逻辑上集中式的控制平面使网络变的可编程、易管理。控制器SDN网络中是中枢系统,它的性能对网络的性能有着重要的影响。 SDN控制器主要使用LLDP(Link Layer Discovery Protocol,链路层发现协议)作为链路发现协议。该协议可将设备的能力、管理地址以及设备标识等一系列信息组织成一系列的 TLV(Type/Length/Value),并将其封装为LLD. 阅读详情

相关推荐

SDN控制器策略制定和表项下发—Vecloud

流表是SDN交换机进行数据包处理的最基本依据,他直接影响了数据转发的效率和整个网络性能。流表是由集中化的控制器基于全网拓扑视图生成并统一下发给数据流传输路径上的所有SDN交换机,因此,流表的生成算法成了影响控制器智能化水平的关键因素。 SDN交换机的流表机制打破了传统网络中的层次化概念,无论是源MAC目的MAC、VLAN ID等传统的二层网络信息,还是源IP,目的IP等三层信息,或者是源TCP/UDP端口号、目的TCP/UDP端口号等4层信息,都被统一封装在流表中。因此,控制器需要针对不同层的网络传输需求.

vecloud的博客 1973

使用Mininet与ONOS搭建SDN开发环境

采用mininet与onos搭建SDN开发环境的完整介绍,可搭建小型SDN网络环境进行验证,有利于快速了解SDN工作原理

学习SDN开发工具

学习SDN开发工具

需要远程指导仿真实验、代码有问题的,请后台私信或者关注公众号 2426

SDN控制器-ONOS中的最终一致性存储

ONOS中设备信息的存储基于GOSSIP协议实现,节点间进行数据交换主要有定时随机传播和数据变更后主动广播两种方式。通信的实现上基于atomix组件(底层基于NETTY)使得用户无需关心具体的通信过程。在节点数据交换的过程中,主要使用PUSH的方式进行数据交换。首次PUSH时本节点仅传递本节点的摘要信息(基于时间戳)推送到对端节点,对端节点收到摘要数据后进行对比,将新的数据PUSH到源节点。

水中加点糖 878

SDN控制器-ONOS源码编译与mininet快速入门

sdn快速入门,使用ONOS源码方式编译。ONOS-2.7.0+Bazel+Mininet快速入门。

水中加点糖 4259

SDN-ONOS1.x学习记录(安装、拓扑、命令、图形化界面)

版本变化 Avocet Blackbird Cardinal Drake Emu 环境 Ubuntu 18.04 按照ONON 开发人员快速入门安装,博主的步骤如下: 安装依赖 如果没有的话就使用 sudo apt install 软件名字 进行安装,博主在安装时感觉很简单,不再赘述,只是展示一下。 git git --version zip zip --version curl curl --version unzip unzip --version

关注网络安全、云原生安全 7338

使用mininet快速入门ONOS路由交换技术与原理-交换篇

onos-2.7.0ideamininet提供了多种方式模拟openfllow交换机与主机,如命令行和python脚本方式。另外还可使用mininet源码中的miniedit构建需要模拟的拓扑信息,miniedit软件截图如下:如要使用miniedit,可将mininet代码clone,,运行对应位置的miniediy.py即可。

水中加点糖 3682

ONOS之开放分布式SDN操作系统

为什么80%的码农都做不了架构师?>>> ...

weixin_34138139的博客 626

core控制器属性注入的用处_SDN控制器ONOS架构Vecloud

ONOS是一个采用OSGI技术来管理子项目的SDN控制器开源项目,在最初设计时有这么几个目标是明确的:1.代码模块化:支持把新的功能作为新的独立单元引入2.特性可配置:无论是在启动还是运行时,支持动态加载和卸载特性3.协议无关:应用不需要和具体的协议库和实现绑定模块化的实现:ONOS项目由一组子项目组成,每个项目都有自己的源代码树,可以独立构建。为此,ONOS的源码采用分层的方式来组织以方便利用M...

weixin_29888579的博客 140

一个控制器怎么转发到另外一个控制器_SDN控制器工作原理—Vecloud

软件定义网络(Software DefinedNetworking,SDN)是一种新型的网络架构,它将网络的控制平面与数据平面分离,逻辑上集中式的控制平面使网络变的可编程、易管理。控制器SDN网络中是中枢系统,它的性能对网络的性能有着重要的影响。SDN控制器主要使用LLDP(Link Layer DiscoveryProtocol,链路层发现协议)作为链路发现协议。该协议可将设备的能力、管理地址...

weixin_39984952的博客 355

白牌交换机有哪些特点?和传统交换机比有什么特别?—Vecloud

目前,白牌交换机已经被广泛应用大型企业,在国外,例如Google、Facebook和微软这样的大型企业会使用白牌交换机来开发属于自己的网络软件。在国内,像百度、阿里巴巴和京东等大公司也尝试过这个模式。 这些大型企业使用裸机交换机的原因在于他们有足够的自信和能力来开发和操作交换机软件,并且这些大型企业拥有极其庞大的网络,需要自己完全掌控网络。 虽然白牌交换机具有多种优势,也被很多大型企业所引用,但是整体的应用数量不及传统交换机,不过随着SDN的发展,白牌交换机会逐步代替传统交换机而成为光通信市场的主流设备。.

vecloud的博客 4136

SDN控制器分析之一】ONOS架构概述

ONOS 设计目标ONOS是一个采用OSGI技术来管理子项目的SDN控制器开源项目,在最初设计时有这么几个目标是明确的: 代码模块化:支持把新的功能作为新的独立单元引入 特性可配置:无论是在启动还是运行时,支持动态加载和卸载特性 协议无关:应用不需要和具体的协议库和实现绑定 模块化的实现:ONOS项目由一组子项目组成,每个项目都有自己的源代码树,可以独立构建。为此,ONOS的源码采用分层的方式来组织

飞翔的美食家 1万+

ONOS架构-系统组件

系统组件 系统分层 App/core/providers 业务和子系统 一个业务service是有多个组件构成的功能单元,基于各层软件栈提供一个垂直的分片slice,将构成业务service的组件集合称为子系统。业务和子系统可互换使用。 onos定义的业务有: .设备子系统-管理设备-交换机-资产 .链路子系统-管理链路资产 .主机子系统-管...

297

onos架构和内部指导——系统组件

1.系统层次 onos是分层设计的,层次结构如下图。 2.服务或子系统 服务是由多个层次组成的一个垂直片,或称为“软件栈”。我们把组件集合称为子系统或服务。 onos定义了下面几个主要的服务: (1)设备子系统——管理基层设备库 (2)连接子系统——管理基层连接库 (3)主机子系统——管理终端主机和它们在网络中的位置 (4)拓扑子系统——管理时间排序的网络拓扑图快照 (5

herojia的专栏 2582

ONOS架构简析

为什么80%的码农都做不了架构师?>>> ...

weixin_34235105的博客 577

ONOS源码解析:从Mojo类到核心控制器的实现原理

ONOS(Open Network Operating System)是一个功能强大的开源网络操作系统,它采用分层架构设计,通过Mojo类实现构建流程自动化,并通过核心控制器实现对网络设备的集中管理。本文将深入解析ONOS源码中Mojo类的工作机制和核心控制器的实现原理,帮助开发者快速理解ONOS的内部架构。 ## ONOS架构概览:分层设计的网络操作系统 ONOS采用清晰的分层架构,从底层网

gitblog_00147的博客 1054

ODL开发【SDN控制器-下】【C4-04】

Maven有三套相互独立的生命周期,这三套生命周期分别是:每套生命周期都由一组阶段(Phase)组成,我们平时会在命令行输入的命令总会对应于一个特定的阶段。 mvn clean install 【本节都是概念。】......

HAL9000的博客 981

软件定义网络实验之SDN网络简单管理及开发

此次实验初步学习RYU控制器,了解流表项的字段的设置和作用,主机之间无法通信的几种情况。

weixin_45800321的博客 2088

SDN控制器资源池的设计与实现

SDN控制器资源池的设计与实现,顾名思义,就是SDN控制器集群,这里使用Opendaylight控制器进行实现。主要功能如下:Opendaylight控制器本身带有集群功能,所以很大一部分工作只需要进行配置,本文仅用于对自己设计进行记载,如果有相同题目开发的人建议换用其他控制器,虽然自己设计代码变多,但是其他控制器本身带有Opendaylight所不具有的接口。更多的原因在于你需要阅读Opendaylight的源码。使用ubuntu18作为镜像,dockerfile文件如下: 然后在dockerfile所

czyzx的博客 1090
上一篇: SDN交换机配置说明—微云
下一篇: SDN控制器OpenDaylight简介—VeCloud
Vecloud
博客等级 码龄6年 98粉丝 243原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值