何旻諾
【摘要】 自動化、信息化和互你你你*/動化的智能電網(wǎng)需要一個更智慧的網(wǎng)絡。SDN軟件定義網(wǎng)絡可以助力智能電/網(wǎng)的更快發(fā)展。OpenDaylight是SDN開源控制器框架,以協(xié)作方式,模型驅動架構,更易于SDN的開放和創(chuàng)新。SDN控制器框架OpenDaylight技術作了深入研究。
【關鍵詞】 SDN OpenDaylight 軟件定義網(wǎng)絡
一、引言
智能電網(wǎng)以集成高速雙向通信網(wǎng)絡為基礎,利用多種高新技術和先進設備,能夠真正實現(xiàn)電網(wǎng)的安全、高效、穩(wěn)定、環(huán)保、經(jīng)濟性,是今后的發(fā)展趨勢。智能電網(wǎng)需要自動化、信息化和互動化。這一切都需要更為智慧的網(wǎng)絡。SDN軟件定義網(wǎng)絡可以助力智能電網(wǎng)的更快發(fā)展。OpenDaylight是SDN開源控制器框架,以協(xié)作方式,模型驅動架構,更易于SDN的開放和創(chuàng)新。本文對SDN控制器框架OpenDaylight技術作了深入研究。
二、OpenDaylight SDN控制器
2.1 OpenDaylight概述
OpenDaylight屏蔽底層,網(wǎng)絡服務于應用,打造統(tǒng)一開放的SDN平臺,目標是打造一個SDN網(wǎng)絡操作系統(tǒng)。
OpenDaylight包含以下的核心技術。
OSGI:一種面向服務的架構,將應用視為對等模塊的相互協(xié)作,支持在控制器運行時進行服務的安裝、刪除和更新。
MAVEN:構建工具,能夠幫我們自動化構建過程,從清理、編譯、測試到生成報告,再到打包和部署。
INFINISPAN:實現(xiàn)控制器的集群
SAL:整個架構引入了業(yè)務抽象層,將服務抽象化,使得上層北向和下層南向之間的調用相互隔離。
MD:Model Drive。使用YANG工具,使用業(yè)務模型驅動來設計接口、實現(xiàn)業(yè)務功能,根據(jù)YANG文件,YANG工具直接生成業(yè)務管理的骨架,主要用于南北接口數(shù)據(jù)的適配,使開發(fā)者真正專注具體業(yè)務。
南向API:Openflow等??刂破魍ㄟ^南向API管理底層。
北向API:REST API,應用層通過北向API管理控制器。
2.2 OSGI
OSGI模塊化,定義了OSGI模塊的概念,并將之稱為一個BUNDLE,包含一個元數(shù)據(jù)的JAR文件,其中元數(shù)據(jù)MANIFEST.MF,由NAME_VALUE對組成,由類及相關資源組成,關注的是打包和共享代碼。
生命周期定義了OSGI在框架中如何動態(tài)安裝和管理,通過生命周期的操作,安裝、更新、卸載等,動態(tài)的管理和改進應用程序,不需要重啟應用程序。重點在于執(zhí)行時模塊管理和對底層OSGI框架的訪問。
服務層面向服務,服務注冊,查找等。接口與實現(xiàn)分離。OSGI是JAVA接口,模塊內(nèi)的組件間交互和通信。
2.3 依賴管理
Bundle的抽象基類,管理全局和容器相關的服務,bundle本身就是一個大服務。
Container是OpenDaylight中的一個網(wǎng)絡域,有很多鏈接信息、整個域網(wǎng)絡信息等,由ContainerManager管理容器,而OSGI管理各個bundle。
每個模塊中有多個實現(xiàn),其中通過Dependency Manager管理其依賴關系。
每個實現(xiàn)一個Component,每個Component就是一個服務,里面說明了到處的接口和依賴的接口。
通過Dependency Manager以component管理依賴。
2.4 SAL
SAL主要作用將服務抽象出來,不管控制器和網(wǎng)絡設備之間使用何種協(xié)議,提供協(xié)議的統(tǒng)一服務。SAL是ODL的核心設計,支持多種南向協(xié)議,為各模塊和應用提供一致的服務,這些服務的實現(xiàn),是由底層插件,基于已存在的組件和網(wǎng)絡設備的功能,所提供的接口。將具體請求,映射到相應的插件,完成服務。
SAL提供的服務:
Data Packet Services為數(shù)據(jù)報文的處理,提供服務。
Topology Service為應用提供節(jié)點和鏈路的更新信息。
Inventory service為如節(jié)點或者節(jié)點連接提供API查詢。Flow Programming Service是流編程服務。
Resource service提供資源服務。
2.5 MD-SAL
MD-SAL的主要功能是促進提供者和使用者之間的管道。它可以提供提供者和使用者之間的管道在不同的容器中。它將連接到一個消息總線和共享數(shù)據(jù)存儲的集群opendaylight容器。南向與北向的一致性。提供者或消費者在MD-SAL中注冊。從而,一個消費者可以找到所需的供應商。提供者可以生成通知,消費者可以接收通知,并從提供者獲取數(shù)據(jù)。插件SAL角色為消費者或生產(chǎn)者,它們定義的SAL中的數(shù)據(jù)是被移走或存儲數(shù)據(jù)。提供者可以將數(shù)據(jù)存入SAL的,一個消費者可以從SAL讀取數(shù)據(jù)。MD-SAL提供請求路由和基礎設施服務,以支持服務。但它本身不提供服務,由插件提供服務。YANG使得Component之間、plugin、北向等API,使得這種接口和AD-SAL REST接口相比更抽象,符合模型驅動的思想。
2.6 PACKET處理流程
Openflow報文首先到達Controller,會將此報文發(fā)送對已經(jīng)注冊過監(jiān)聽Openflow報文的類中進行處理。Packet In消息到來,經(jīng)過底層plugin,經(jīng)過SAL層,調用實現(xiàn)了IListenDataPacket的 receiveDataPacket處理。主要涉及三個模塊,分別為ARPHandler,HostTracker,simpleForwarding。
ARPHandler主要負責arpRequest,arpReply。
HostTracker負責主機信息,更新主機,以及連接情況。simpleForwarding處理ip報文,同時安裝到每個host的流表。
2.7 Topology Service
Controller將報文送到DiscoveryService。其實現(xiàn)了Idatapacketlisten,在DataPacketmuxdemux中處理Openflow報文的過程中,處理鏈路processDiscoveryPacket報文,交給實現(xiàn)了idiscoverylistener的Topologyserviceshim Implements Idiscoverylistener。
三、總結與展望
SDN開啟了一條網(wǎng)絡創(chuàng)新的道路,將原來完全由交換機/路由器控制的報文轉發(fā)過程轉化為由OpenFlow交換機和控制器Controller來共同完成,從而實現(xiàn)了數(shù)據(jù)轉發(fā)和路由控制的分離??刂破魇荢DN的核心,可以通過事先規(guī)定好的接口操作來控制OpenFlow交換機中的流表,從而達到智能控制數(shù)據(jù)轉發(fā)的目的。使用SDN技術打造智能電網(wǎng)前景廣闊。
參 考 文 獻
[1] OpenDaylight User Guide, OpenDaylight, June, 2015.
[2] https://www.opendaylight.org, OpenDaylight.