SDN控制器OpenDaylight技术研究

2016-03-16 05:50何旻诺
中国新通信 2016年3期
关键词:提供者报文插件

何旻诺

【摘要】 自动化、信息化和互你你你*/动化的智能电网需要一个更智慧的网络。SDN软件定义网络可以助力智能电/网的更快发展。OpenDaylight是SDN开源控制器框架,以协作方式,模型驱动架构,更易于SDN的开放和创新。SDN控制器框架OpenDaylight技术作了深入研究。

【关键词】 SDN OpenDaylight 软件定义网络

一、引言

智能电网以集成高速双向通信网络为基础,利用多种高新技术和先进设备,能够真正实现电网的安全、高效、稳定、环保、经济性,是今后的发展趋势。智能电网需要自动化、信息化和互动化。这一切都需要更为智慧的网络。SDN软件定义网络可以助力智能电网的更快发展。OpenDaylight是SDN开源控制器框架,以协作方式,模型驱动架构,更易于SDN的开放和创新。本文对SDN控制器框架OpenDaylight技术作了深入研究。

二、OpenDaylight SDN控制器

2.1 OpenDaylight概述

OpenDaylight屏蔽底层,网络服务于应用,打造统一开放的SDN平台,目标是打造一个SDN网络操作系统。

OpenDaylight包含以下的核心技术。

OSGI:一种面向服务的架构,将应用视为对等模块的相互协作,支持在控制器运行时进行服务的安装、删除和更新。

MAVEN:构建工具,能够帮我们自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。

INFINISPAN:实现控制器的集群

SAL:整个架构引入了业务抽象层,将服务抽象化,使得上层北向和下层南向之间的调用相互隔离。

MD:Model Drive。使用YANG工具,使用业务模型驱动来设计接口、实现业务功能,根据YANG文件,YANG工具直接生成业务管理的骨架,主要用于南北接口数据的适配,使开发者真正专注具体业务。

南向API:Openflow等。控制器通过南向API管理底层。

北向API:REST API,应用层通过北向API管理控制器。

2.2 OSGI

OSGI模块化,定义了OSGI模块的概念,并将之称为一个BUNDLE,包含一个元数据的JAR文件,其中元数据MANIFEST.MF,由NAME_VALUE对组成,由类及相关资源组成,关注的是打包和共享代码。

生命周期定义了OSGI在框架中如何动态安装和管理,通过生命周期的操作,安装、更新、卸载等,动态的管理和改进应用程序,不需要重启应用程序。重点在于执行时模块管理和对底层OSGI框架的访问。

服务层面向服务,服务注册,查找等。接口与实现分离。OSGI是JAVA接口,模块内的组件间交互和通信。

2.3 依赖管理

Bundle的抽象基类,管理全局和容器相关的服务,bundle本身就是一个大服务。

Container是OpenDaylight中的一个网络域,有很多链接信息、整个域网络信息等,由ContainerManager管理容器,而OSGI管理各个bundle。

每个模块中有多个实现,其中通过Dependency Manager管理其依赖关系。

每个实现一个Component,每个Component就是一个服务,里面说明了到处的接口和依赖的接口。

通过Dependency Manager以component管理依赖。

2.4 SAL

SAL主要作用将服务抽象出来,不管控制器和网络设备之间使用何种协议,提供协议的统一服务。SAL是ODL的核心设计,支持多种南向协议,为各模块和应用提供一致的服务,这些服务的实现,是由底层插件,基于已存在的组件和网络设备的功能,所提供的接口。将具体请求,映射到相应的插件,完成服务。

SAL提供的服务:

Data Packet Services为数据报文的处理,提供服务。

Topology Service为应用提供节点和链路的更新信息。

Inventory service为如节点或者节点连接提供API查询。Flow Programming Service是流编程服务。

Resource service提供资源服务。

2.5 MD-SAL

MD-SAL的主要功能是促进提供者和使用者之间的管道。它可以提供提供者和使用者之间的管道在不同的容器中。它将连接到一个消息总线和共享数据存储的集群opendaylight容器。南向与北向的一致性。提供者或消费者在MD-SAL中注册。从而,一个消费者可以找到所需的供应商。提供者可以生成通知,消费者可以接收通知,并从提供者获取数据。插件SAL角色为消费者或生产者,它们定义的SAL中的数据是被移走或存储数据。提供者可以将数据存入SAL的,一个消费者可以从SAL读取数据。MD-SAL提供请求路由和基础设施服务,以支持服务。但它本身不提供服务,由插件提供服务。YANG使得Component之间、plugin、北向等API,使得这种接口和AD-SAL REST接口相比更抽象,符合模型驱动的思想。

2.6 PACKET处理流程

Openflow报文首先到达Controller,会将此报文发送对已经注册过监听Openflow报文的类中进行处理。Packet In消息到来,经过底层plugin,经过SAL层,调用实现了IListenDataPacket的 receiveDataPacket处理。主要涉及三个模块,分别为ARPHandler,HostTracker,simpleForwarding。

ARPHandler主要负责arpRequest,arpReply。

HostTracker负责主机信息,更新主机,以及连接情况。simpleForwarding处理ip报文,同时安装到每个host的流表。

2.7 Topology Service

Controller将报文送到DiscoveryService。其实现了Idatapacketlisten,在DataPacketmuxdemux中处理Openflow报文的过程中,处理链路processDiscoveryPacket报文,交给实现了idiscoverylistener的Topologyserviceshim Implements Idiscoverylistener。

三、总结与展望

SDN开启了一条网络创新的道路,将原来完全由交换机/路由器控制的报文转发过程转化为由OpenFlow交换机和控制器Controller来共同完成,从而实现了数据转发和路由控制的分离。控制器是SDN的核心,可以通过事先规定好的接口操作来控制OpenFlow交换机中的流表,从而达到智能控制数据转发的目的。使用SDN技术打造智能电网前景广阔。

参 考 文 献

[1] OpenDaylight User Guide, OpenDaylight, June, 2015.

[2] https://www.opendaylight.org, OpenDaylight.

猜你喜欢
提供者报文插件
海法新港一期自动化集装箱码头电子数据交换报文系统设计与实现
基于报文类型的限速值动态调整
用好插件浏览器标签页管理更轻松
网络交易平台提供者的法律地位与民事责任分析
论网络侵权的归责原则
请个浏览器插件全能管家
网络言论自由的行政法规制研究
网络服务提供者的著作权间接侵权责任研究
基于jQUerY的自定义插件开发
用户设备进行组播路径追踪的方法及系统