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控制器ONOS架构—Vecloud相关推荐

  1. SDN控制器工作原理—Vecloud

    软件定义网络(Software Defined Networking,SDN)是一种新型的网络架构,它将网络的控制平面与数据平面分离,逻辑上集中式的控制平面使网络变的可编程.易管理.控制器在SDN网络 ...

  2. SDN控制器OpenDaylight简介—VeCloud

    2013年,Linux Foundation联合思科.Juniper和 Broadcom等多家网络设备商创立了开源项目 Open Daylight,它的发起者和赞助商多为设备厂商而非运营商等网络设备消 ...

  3. JAVA的sdn控制器,软件定义网络基础---SDN控制平面

    一:SDN控制平面 一个或多个SDN控制器组成,是网络的大脑.  对底层网络交换设备进行集中管理,状态监测.转发决策以及处理和调 度数据平面的流量:  通过北向接口向上层应用开放多个层次的可编程能 ...

  4. SDN控制器测试专题一:基础知识篇

    前言 SDN落地,测试先行.足以说明测试在SDN技术发展中起着举足轻重的作用.那么如何测试SDN,测好SDN,这就要求我们对SDN有一个很深的认识,对SDN的功能有一个全面的了解.本文将从SDN发展背 ...

  5. SDN控制器构建原理方法—Vecloud

    SDN即软件定义网络,可以将网络虚拟化,实现数据转发和控制分离,控制与转发分离后,更利于网络的集中控制,使得控制层获得网络资源的全局信息,并根据业务需求进行资源的全局调配和优化.由此可见,sdn技术的 ...

  6. SDN控制器的功能及作用—Vecloud

    软件定义网络潜在用户所面临的一个关键挑战是判断特定SDN控制器的特定价值,毕竟控制器作为网络应用和网络基础设施之间的桥梁发挥着关键性作用.但目前还没有一个可以规范SDN的模型,也没有一个SDN控制器必 ...

  7. SDN控制器的资源收集过程—Vecloud

    1.网元资源信息收集 控制器和转发器的控制通道建立完成后,转发器主动向控制器发起控制协议连接,控制协议为openflow等协议,认证后建立. 接下来,转发器向控制器注册信息:接口资源.标签信息.VLA ...

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

    流表是SDN交换机进行数据包处理的最基本依据,他直接影响了数据转发的效率和整个网络性能.流表是由集中化的控制器基于全网拓扑视图生成并统一下发给数据流传输路径上的所有SDN交换机,因此,流表的生成算法成 ...

  9. SDN控制器技术综述:SDN交换机配置技术与控制技术的关系—Vecloud

    SDN采用集中控制的思想,使SDN控制器具有全局视角,可以从全局优化的角度改变SDN交换机的转发行为,提高网络性能,因此SDN交换机配置及控制技术对于数据中心网络流量负载均衡具备非常重要的意义. 1. ...

最新文章

  1. Python解析照片EXIF信息,获取坐标位置
  2. wiki多个文件一起导入_mac文件信息管理工具EagleFiler for Mac分享给大家
  3. UITableView性能提升和优化(第3章) 之一
  4. GIS可视性分析概述
  5. JavaScript-4.2函数,变量作用域---ShinePans
  6. ORA-00060 Deadlock detected
  7. elasticsearch index doc过程概述
  8. 8266获取网络时间
  9. Oracle导入TYPE对象报错ORA-02304
  10. SpringBoot + AOP 统一处理日志
  11. Mac中使用svn进行项目管理
  12. IT项目中的6类知识转移
  13. Tomcat9版本不支持jsp处理PUT,DELETE之外的请求的解决方案(405方法不允许)
  14. 静态方法和属性可以被继承吗?
  15. Delphi XE不生成__history目录
  16. 计算机电子书 2018 BiliDrive 备份
  17. Get_Web_banner(批量获取网站banner)
  18. Windows 无法连接到无线网络
  19. STM32应用(七)JY901九轴姿态模块(串口DMA空闲中断和I2C通信)
  20. Xftp卸载修复报错1628:完成基于脚本的安装失败

热门文章

  1. 安装vsftpd-3.0.2.tar.gz源码
  2. Oracle 学习笔记:Backup Recovery 常用命令
  3. Excel:如何使用函数实现多表多条件汇总求和
  4. 微信小程序 wx.request异步网络请求
  5. python 非法字符处理
  6. Common Attention Points
  7. 模板 - 图论 - 树链剖分
  8. 13、logging模块
  9. Java面试总结如何处理项目的高并发、大数据
  10. 守护线程与非守护线程的区别