亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        淺談基于開源軟件實(shí)現(xiàn)SDN控制器

        2015-04-13 04:14:52李心舒南京師范大學(xué)江蘇南京210023
        郵電設(shè)計(jì)技術(shù) 2015年10期
        關(guān)鍵詞:應(yīng)用層調(diào)用開源

        李心舒(南京師范大學(xué),江蘇南京210023)

        0 前言

        經(jīng)過幾年的探索,軟件定義網(wǎng)絡(luò)(SDN)已經(jīng)從概念逐步走向?qū)嵱谩L貏e是近年來由于開源社區(qū)的貢獻(xiàn),SDN 的應(yīng)用得到了迅速發(fā)展。本文將介紹當(dāng)前主要的開源SDN開發(fā)資源,并探討編程實(shí)現(xiàn)SDN控制器的思路。

        1 S D N架構(gòu)

        SDN是在服務(wù)器虛擬化和云計(jì)算技術(shù)逐步成熟的基礎(chǔ)上提出的,以平臺化思想提供網(wǎng)絡(luò)業(yè)務(wù)的技術(shù)。SDN 采用將網(wǎng)絡(luò)控制邏輯和數(shù)據(jù)轉(zhuǎn)發(fā)功能分離的思路,并保證網(wǎng)絡(luò)控制邏輯的可編程性和開放架構(gòu),實(shí)現(xiàn)通過軟件對網(wǎng)絡(luò)業(yè)務(wù)的靈活控制和快速提供。

        SDN架構(gòu)包括應(yīng)用層、控制層和基礎(chǔ)設(shè)備層(見圖1)。

        SDN 應(yīng)用層提供具體的業(yè)務(wù)功能和操作界面,它通過調(diào)用SDN控制器的北向接口API實(shí)現(xiàn)對網(wǎng)絡(luò)設(shè)備的控制。

        SDN 控制層的核心是SDN 控制器,它負(fù)責(zé)接收應(yīng)用層的服務(wù)請求,并對各網(wǎng)絡(luò)服務(wù)進(jìn)行處理,然后通過控制器的南向接口向下傳達(dá)給基礎(chǔ)設(shè)備層。同時(shí)SDN控制層為應(yīng)用層提供一個(gè)關(guān)于物理網(wǎng)絡(luò)的抽象視圖,對應(yīng)用層屏蔽具體的設(shè)備實(shí)現(xiàn)細(xì)節(jié)。

        基礎(chǔ)設(shè)備層由網(wǎng)絡(luò)中的物理設(shè)備組成,實(shí)現(xiàn)控制器下發(fā)的控制命令,完成具體的轉(zhuǎn)發(fā)任務(wù)。

        2 S D N控制器開源開發(fā)資源

        2.1 開源開發(fā)資源概述

        圖1 SDN架構(gòu)

        SDN的快速發(fā)展和各個(gè)開源社區(qū)有著不可分割的緊密聯(lián)系,而且隨著各類開源社區(qū)的不斷發(fā)展,開源項(xiàng)目也在不斷增多。目前開源控制器資源主要有Open?Daylight、ONOS、Floodlight等。

        a)OpenDaylight是Linux基金會的協(xié)作項(xiàng)目,是一個(gè)開放的平臺,可以通過網(wǎng)絡(luò)編程實(shí)現(xiàn)SDN并為NFV提供一個(gè)穩(wěn)固的基礎(chǔ)。

        b)ONOS 是由ON.Lab 使用Java 及Apache 實(shí)現(xiàn)的主要面向服務(wù)提供商的高可靠性開源架構(gòu)。

        c)Floodlight 是由包括來自Big Switch Networks 的工程師實(shí)現(xiàn)的Apache 許可、基于Java 語言的企業(yè)級OpenFlow控制器。

        其中以設(shè)備提供商為代表的OpenDaylight 和以服務(wù)提供商為首的ONOS 發(fā)展勢頭強(qiáng)勁,成為兩大主流控制器開發(fā)資源,故下文僅對這兩者作一簡單比較。

        2.2 O penD aylight和O NO S 的比較

        OpenDaylight架構(gòu)共分為3個(gè)層次,分別是網(wǎng)絡(luò)應(yīng)用與業(yè)務(wù)流程(即應(yīng)用層)、控制平臺(即控制層)和物理與虛擬網(wǎng)絡(luò)設(shè)備(即基礎(chǔ)設(shè)備層),其中核心的模塊化、可添加功能插件的平臺直接由自帶的Java 虛擬機(jī)實(shí)現(xiàn),可以運(yùn)行在任何操作系統(tǒng)上,實(shí)現(xiàn)功能模塊的靈活加載和屏蔽下層協(xié)議的差異性。

        ONOS 是由ON.Lab 推出的開放網(wǎng)絡(luò)操作系統(tǒng),它的設(shè)計(jì)理念是能夠在任何硬件上靈活地創(chuàng)建服務(wù)并且大規(guī)模部署,同樣提供一個(gè)SDN 控制平面(南向和北向API),以及一系列的管理、控制和服務(wù)應(yīng)用程序。

        OpenDaylight與ONOS所面向的對象不同,前者由廠商主導(dǎo),后者由運(yùn)營商主導(dǎo)。而最大的不同在于OpenDaylight增加了服務(wù)抽象層SAL,它負(fù)責(zé)南向連接多種協(xié)議,即除了支持OpenFlow 協(xié)議之外,還能夠處理不同的標(biāo)準(zhǔn)協(xié)議,屏蔽不同協(xié)議之間的差異性,為上層模塊提供一致性服務(wù)。

        OpenDaylight 可以使用戶通過在服務(wù)抽象層上編寫運(yùn)行在不同硬件設(shè)備和南向協(xié)議上的應(yīng)用,方便地進(jìn)行網(wǎng)絡(luò)部署,故下文中主要介紹OpenDaylight 的主要組成和用法。

        3 O penD aylight主要組件介紹和用法

        OpenDaylight 控制器是純軟件并且可以運(yùn)行在任意操作系統(tǒng)上,它的結(jié)構(gòu)如圖2所示。

        圖2 OpenDaylight結(jié)構(gòu)

        OpenDaylight控制器平臺中的服務(wù)抽象層SAL,能夠支持多種標(biāo)準(zhǔn)協(xié)議、控制模塊間數(shù)據(jù)交互、數(shù)據(jù)存儲讀取和API 調(diào)用,是控制器平臺中最核心的模塊。在OpenDaylight 控制器的南向平面中可以支持多種協(xié)議,這些協(xié)議作為南向Plugin 動態(tài)連接在抽象服務(wù)層(SAL)中。SAL向上提供服務(wù)而不考慮在控制器和網(wǎng)絡(luò)設(shè)備之間使用的協(xié)議,這在協(xié)議變化的情況下向應(yīng)用提供了有價(jià)值的保護(hù)。

        控制器為了管理設(shè)備,將設(shè)備的容量、可達(dá)性等信息存儲在拓?fù)浣Y(jié)構(gòu)管理模塊中,其他的組件如ARP處理模塊、交換機(jī)管理模塊等幫助生成拓?fù)浣Y(jié)構(gòu)數(shù)據(jù)。

        OpenDaylight 控制器提供應(yīng)用可使用的開放的北向API,它支持OSGi 框架和REST,和控制器運(yùn)行在同一地址空間的應(yīng)用使用OSGi框架。

        4 使用O penD aylight開發(fā)S D N控制器

        在進(jìn)行開發(fā)時(shí),根據(jù)分析得到的設(shè)計(jì)目標(biāo)進(jìn)行不同層次的開發(fā)。當(dāng)所需要的服務(wù)已由SAL提供而只需要修改數(shù)據(jù)顯示等時(shí),可以直接調(diào)用OpenDayligt REST API進(jìn)行開發(fā),而不關(guān)注底層的功能實(shí)現(xiàn)。但當(dāng)現(xiàn)有的OpenDaylight 沒有提供所需要的特定功能時(shí),就要進(jìn)行OpenDaylight 控制器組件的開發(fā),即借助已經(jīng)實(shí)現(xiàn)的功能或模塊在服務(wù)抽象層(SAL)上開發(fā)Plu?gin 實(shí)現(xiàn)具體的服務(wù)。本章先介紹開發(fā)相關(guān)的基本概念,接著重點(diǎn)介紹開發(fā)的基本步驟。

        4.1 A D-S A L 和M D-S A L

        OpenDaylight 控制器平臺中的核心模塊——服務(wù)抽象層SAL,又分為AD-SAL(API Driven-SAL)和MDSAL(Model Driven-SAL),但因在AD-SAL 中南北向API 是一一映射關(guān)系,同一API 無法被復(fù)用,造成SAL模塊復(fù)雜化,而MD-SAL 可使南北向接口和SDN 控制器中服務(wù)或組件用到的數(shù)據(jù)結(jié)構(gòu)統(tǒng)一,前者逐漸被后者取代。

        4.2 BA Plugin和BIPlugin

        Plugin 是通過SAL 實(shí)現(xiàn)的ODL 控制器的功能模塊,南向Plugin 向SAL 提供管理南向設(shè)備或服務(wù)的操作接口,應(yīng)用可以通過北向API 查詢需要使用的南向Plugin并和網(wǎng)絡(luò)設(shè)備交互來實(shí)現(xiàn)統(tǒng)一的抽象服務(wù)。

        根據(jù)Plugin 和MD-SAL 的關(guān)聯(lián)方式,Plugin 分為BA(Binding-Aware)和BI(Binding-Independent),前者指使用根據(jù)Yang Model 定義而自動生成的Java Bind?ings 的Plugin,后者指使用DOM 格式編程接口的API。Yang是一種數(shù)據(jù)模型語言,被用來定義ODL中全部的API,相比而言更加抽象、具有更好的可擴(kuò)展性和更高的開發(fā)效率。故本文僅介紹BA 類的MD-SAL Plugin開發(fā)。

        4.3 M D-S A L Plugin開發(fā)步驟

        開發(fā)過程主要分為3個(gè)步驟,首先用Yang語言對需要的功能進(jìn)行建模,然后實(shí)現(xiàn)Plugin 所要提供的服務(wù),最后定義REST API接口使得能夠通過北向接口調(diào)用服務(wù)。

        首先要定義能夠從Yang 建模文件自動生成API的Yang項(xiàng)目。需要?jiǎng)?chuàng)建Yang項(xiàng)目并在項(xiàng)目目錄下創(chuàng)建Yang建模文件定義北向數(shù)據(jù)模型,指定該模塊的命名空間,導(dǎo)入需要使用的其他Yang 模塊,定義RPC 調(diào)用方法和輸入輸出信息及相應(yīng)的數(shù)據(jù)類型。若新創(chuàng)建的Yang 模型和已存在的Yang 模型位于同一目錄下,則只需繼承最上層的pom.xml并配置編譯打包的形式和編譯工具信息,否則還需要?jiǎng)?chuàng)建最上層的Maven pom.xm l,在其中配置自動生成的Java 源文件的路徑、配置文件的目錄路徑、OSGI Bundle的依賴關(guān)系和編譯工具信息,并指定關(guān)聯(lián)創(chuàng)建的其他模塊。編譯Yang模型文件,并根據(jù)pom.xml中的配置信息自動生成API和OSGI Bundle。

        接下來要實(shí)現(xiàn)Plugin所提供的具體服務(wù)。因?yàn)榕渲米酉到y(tǒng)能夠?qū)Ψ?wù)的生命周期進(jìn)行管理,所以利用它來將實(shí)現(xiàn)的服務(wù)實(shí)例化并和MD-SAL 連接。為此,首先需要?jiǎng)?chuàng)建Yang 文件描述所實(shí)現(xiàn)服務(wù)的配置信息和需要的其他服務(wù),并設(shè)定該模塊的識別字符和對應(yīng)的分支操作。implementation模塊的pom.xml文件中除需和上述類似的配置信息外,還要指定依賴已定義的model 模塊。根據(jù)pom.xm l 中的配置將該模塊自動生成Java Bindings,并在其中創(chuàng)建Impl.java文件實(shí)現(xiàn)Plu?gin的具體服務(wù)。Impl類需要實(shí)現(xiàn)由Yang建模文件生成的Service接口,并且根據(jù)建模中定義的輸入輸出信息在操作中接收和返回?cái)?shù)據(jù)。然后為了在MD-SAL喚醒bundle時(shí)能夠?qū)嵗?wù),需要在自動生成的Mod?ule.java文件中添加一個(gè)logger和Impl服務(wù)的實(shí)例并用配置變量賦值然后寫入到MD-SAL。打開karaf 控制器,將生成的2 個(gè)jar 文件(model and provider)復(fù)制到karaf 的配置目錄下,創(chuàng)建配置文件描述注入對象Plu?gin的信息,定義注入數(shù)據(jù)。

        以上2 個(gè)步驟所有的設(shè)置都完成后,就可以通過自動生成的Rest API調(diào)用定義的服務(wù)。

        所以基于OpenDaylight 可以輕松地實(shí)現(xiàn)擴(kuò)展SDN控制器的功能模塊,只需要專注于提供北向服務(wù)的Yang model 的設(shè)計(jì)實(shí)現(xiàn),南向可直接調(diào)用已經(jīng)實(shí)現(xiàn)的功能或模塊,主要是南向?qū)Σ煌瑓f(xié)議的支持,如已經(jīng)實(shí)現(xiàn)的OPENFLOW 可以用于LAN 控制器的開發(fā)、PCEP可以用于WAN控制器的開發(fā)等。

        5 結(jié)束語

        可編程的、靈活的SDN是現(xiàn)今網(wǎng)絡(luò)技術(shù)發(fā)展的重要方向。目前,在許多開源資源的支持下,已經(jīng)可以比較快速地開發(fā)SDN 控制器。在目前的眾多開源項(xiàng)目中,OpenDaylight利用易于掌握的服務(wù)抽象層(SAL)編程思想和已實(shí)現(xiàn)的實(shí)用功能模塊,提供了簡單易用的開發(fā)工具。希望本文介紹的開發(fā)方法,能給SDN控制器的開發(fā)者帶來有益的幫助。

        [1] SDN Defined[EB/OL].[2015-06-11].https://www.opennetworking.org/sdn-resources/sdn-definition.

        [2] Software-defined networking[EB/OL].[2015-06-11]. https://en.wikipedia.org/wiki/Software-defined_netWorking.

        [3] 張朝昆,崔勇,唐翯祎,等.軟件定義網(wǎng)絡(luò)(SDN)研究進(jìn)展[J].軟件學(xué)報(bào),2015,26(1):62-81.

        [4] SDN 你必須知道的十大問題——SDN 有哪些開源項(xiàng)目[EB/OL].[2015-06-11].http://www.sdnlab.com/8091.htm l.

        [5] 左青云,陳鳴,趙廣松,等.基于OpenFlow的SDN技術(shù)研究[J].軟件學(xué)報(bào),2013(5).

        [6] OpenDaylight Controller:MD-SAL:Toaster Stop-By-Step[EB/OL].[2015-06-11].https://www.opendaylight.org/.

        [7] Controller Projects′Modules/bundles and Interfaces[EB/OL].[2015-06-11]. https://wiki.opendaylight.org/view/GettingStarted:Develop?er_Main.

        [8] ONOS 預(yù)熱篇之ONOS 與OpenDaylight 比較[EB/OL].[2015-06-11].http://www.sdnlab.com/4309.htm l.

        [9] ODL MD-SAL APP 架 構(gòu) 入 門-Final[EB/OL].[2015-06-11].http://pan.baidu.com/s/1c0ddUW4.

        [10]郝鵬. 淺談OpenDaylight 的二次開發(fā)[EB/OL].[2015-06-11].http://www.sdnlab.com/11587.html.

        [11]OpenDaylight 學(xué)習(xí)文檔及開發(fā)初級教程[EB/OL].[2015-06-11].http://www.sdnap.com/sdnap-post/4370.htm l.

        [12]基于OpenDayLight 的SDN 網(wǎng)絡(luò)轉(zhuǎn)發(fā)機(jī)制研究[EB/OL].[2015-06-11].http://network.51cto.com/art/201312/422938.htm.

        [13]OpenDaylight 學(xué)習(xí)[EB/OL].[2015-06-11]. http://blog.csdn.net/quqi99/article/details/9156497.

        [14]源碼解讀ODL 與OpenFlow 交換機(jī)建立過程[EB/OL].[2015-06-11].http://www.sdnlabcom/12035.htm l.

        [15]ODL 應(yīng)用開發(fā)之MD-SAL 中級教程[EB/OL].[2015-06-11].http://www.sdnlab.com/11995.htm l.

        [16]ODL學(xué)習(xí)筆記基礎(chǔ)之模塊開發(fā)篇[EB/OL].[2015-06-11].http://www.sdnlab.com/11456.htm l.

        李心舒,現(xiàn)就讀于南京師范大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)。

        猜你喜歡
        應(yīng)用層調(diào)用開源
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        五毛錢能買多少頭牛
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        基于分級保護(hù)的OA系統(tǒng)應(yīng)用層訪問控制研究
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
        大家說:開源、人工智能及創(chuàng)新
        開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
        新一代雙向互動電力線通信技術(shù)的應(yīng)用層協(xié)議研究
        開源計(jì)算機(jī)輔助翻譯工具研究
        物聯(lián)網(wǎng)技術(shù)在信息機(jī)房制冷系統(tǒng)中的應(yīng)用
        久久精品www人人爽人人| 男女干逼视频免费网站| 国产中文字幕亚洲国产| 无码人妻精品中文字幕| 亚洲精品成人区在线观看| 日韩爱爱视频| 日本国产精品高清在线| 国产精品美女一区二区视频 | 在教室轮流澡到高潮h免费视| 色综合av综合无码综合网站| 亚洲色偷偷综合亚洲av伊人| 麻豆国产AV网站| 国产亚洲精品一区在线| 国产精品成人3p一区二区三区| 风流少妇又紧又爽又丰满| 亚洲av午夜福利精品一区二区| 亚洲精品视频1区2区| 中文字幕丰满乱子无码视频| 国产真实露脸4p视频| 国内精品嫩模av私拍在线观看| 色翁荡熄又大又硬又粗又动态图| 亚洲色欲综合一区二区三区| 亚洲国产精品久久九色| 色婷婷亚洲一区二区三区在线| 中国精品18videosex性中国| 国产精品久久久久久久久鸭 | 在线观看的a站免费完整版 | 亚洲另类欧美综合久久图片区| 国产午夜福利av在线麻豆| 亚洲gay片在线gv网站| 国产人在线成免费视频| 永久免费的拍拍拍网站| 不卡一本av天堂专区| 午夜视频在线在免费| 亚洲AⅤ无码国精品中文字慕 | h视频在线播放观看视频| 欧美成人精品三级网站| 色欲AV无码久久精品有码| 国产精品高湖呻呤久久av| 色偷偷亚洲第一成人综合网址| av中文字幕综合在线|