本發(fā)明涉及一種軟件定義網(wǎng)絡(luò)(softwaredefinednetwork,簡(jiǎn)稱sdn)控制器以及創(chuàng)建這種sdn控制器的方法。特別地,本發(fā)明展示了基于sdn控制器的neutron服務(wù)器,即,用于替換openstack網(wǎng)絡(luò)業(yè)務(wù)的neutron服務(wù)器的sdn控制器。
背景技術(shù):
openstack是一個(gè)免費(fèi)的開(kāi)源軟件云計(jì)算平臺(tái)。openstack網(wǎng)絡(luò)業(yè)務(wù)是標(biāo)準(zhǔn)業(yè)務(wù),通常涉及若干程序在多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)中的部署。openstack網(wǎng)絡(luò)業(yè)務(wù)的主要程序是所謂的neutron服務(wù)器,其是一種python后臺(tái)程序,將openstack網(wǎng)絡(luò)應(yīng)用編程接口(applicationprogramminginterface,簡(jiǎn)稱api)提供給網(wǎng)絡(luò)業(yè)務(wù)的租戶,并將租戶請(qǐng)求傳遞給一系列插件進(jìn)行額外處理。
openstack網(wǎng)絡(luò)業(yè)務(wù)通常包含圖8所示的組件。neutron服務(wù)器(原來(lái)稱為quantum)在控制器節(jié)點(diǎn)上運(yùn)行,以服務(wù)組網(wǎng)api及其擴(kuò)展。neutron服務(wù)器也用于執(zhí)行網(wǎng)絡(luò)模型以及每個(gè)端口的ip尋址。neutron服務(wù)器通常包括至少一個(gè)(neutron)插件。neutron服務(wù)器要求接入數(shù)據(jù)庫(kù)進(jìn)行永久存儲(chǔ),要求接入消息隊(duì)列進(jìn)行內(nèi)部通信。
插件代理(neutron代理)通常在計(jì)算節(jié)點(diǎn)上運(yùn)行,以管理和配置本地虛擬交換機(jī)。插件代理也要求接入消息隊(duì)列。
插件/代理集合是運(yùn)行在neutron基礎(chǔ)設(shè)施之上的應(yīng)用。這些應(yīng)用包括動(dòng)態(tài)主機(jī)配置協(xié)議(dynamichostconfigurationprotocol,簡(jiǎn)稱dhcp)代理,其向租戶網(wǎng)絡(luò)提供業(yè)務(wù),也要求接入消息隊(duì)列?;蛘撸瑸樽鈶艟W(wǎng)絡(luò)上的虛擬機(jī)的外網(wǎng)接入提供l3/nat轉(zhuǎn)發(fā)的l3代理也要求接入消息隊(duì)列。這些代理在網(wǎng)絡(luò)節(jié)點(diǎn)上運(yùn)行。
現(xiàn)有技術(shù)中的neutron服務(wù)器具有若干問(wèn)題和缺點(diǎn)。例如,neutron服務(wù)器僅是api轉(zhuǎn)換層,該層不部署任意應(yīng)用邏輯,也不向,例如,sdn應(yīng)用提供任意其他業(yè)務(wù)。通過(guò)插件基礎(chǔ)設(shè)施是唯一增加應(yīng)用或業(yè)務(wù)的方式。然而,這造成了以下問(wèn)題:由于不存在neutron服務(wù)器提供的業(yè)務(wù),應(yīng)用需要封裝所有的業(yè)務(wù)。即,封裝需要分別由每個(gè)應(yīng)用進(jìn)行。
此外,現(xiàn)有技術(shù)的neutron服務(wù)器也不為應(yīng)用鏈接提供基礎(chǔ)設(shè)施,因此,可能互相干擾或交互的應(yīng)用間不互相協(xié)作。而且,只有應(yīng)用通過(guò)neutron調(diào)度器業(yè)務(wù)在“無(wú)共享”模式下運(yùn)行,才可以分割應(yīng)用。無(wú)論如何,應(yīng)用均不會(huì)像在sdn中那樣控制數(shù)據(jù)路徑,因此需要所有處理的流量通過(guò)網(wǎng)絡(luò)節(jié)點(diǎn),這可能會(huì)阻礙分布式虛擬路由器(distributedvirtualrouter,簡(jiǎn)稱dvr)等應(yīng)用。
另一個(gè)缺點(diǎn)是應(yīng)用的任意增加或更改均要求對(duì)neutron服務(wù)器新版本的完全編譯。neutron服務(wù)器還不支持任意要求neutron服務(wù)器高可用性(highavailability,簡(jiǎn)稱ha)和集群的大規(guī)模部署。
現(xiàn)有技術(shù)提供了一些方法用于解決上述提及問(wèn)題。其中兩個(gè)方法分別如圖9a和圖9b所示。根據(jù)如圖9a所示方法,外部sdn控制器901通過(guò)openflow(openflow,簡(jiǎn)稱of)插件連接。雖然此方法快捷容易,能實(shí)現(xiàn)sdn集成,但它有以下幾個(gè)缺點(diǎn)。即,在neutron服務(wù)器和sdn控制器901中存在虛擬網(wǎng)絡(luò)管理的多余功能。此外,neutron服務(wù)器和sdn控制器901需要控制交換機(jī),因?yàn)閮烧吲c不同應(yīng)用均有重合的功能。最后,存在應(yīng)用部署不一致的風(fēng)險(xiǎn),因?yàn)閚eutron服務(wù)器和sdn控制器901均可支持sdn應(yīng)用。
根據(jù)圖9b所示方法,外部sdn控制器902通過(guò)插件后臺(tái)連接到neutron服務(wù)器,能接入消息隊(duì)列。然而,該方法與圖9a所示方法具有同樣的缺點(diǎn)。
技術(shù)實(shí)現(xiàn)要素:
有鑒于上述提及的缺點(diǎn)和問(wèn)題,本發(fā)明旨在改善現(xiàn)有技術(shù)。特別地,本發(fā)明的目的是提供另一種允許sdn,在無(wú)上述提及的缺點(diǎn)的情況下,以快捷容易的方式完全集成到openstack網(wǎng)絡(luò)業(yè)務(wù)的方法。通過(guò)將sdn完全集成到openstack網(wǎng)絡(luò)業(yè)務(wù),應(yīng)該就會(huì)實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)從管理面,到控制面,再到數(shù)據(jù)面的控制。此外,sdn控制器支持切換設(shè)備以及其他轉(zhuǎn)發(fā)元件(forwardingelement,簡(jiǎn)稱fe)的控制和管理,且也需要負(fù)載均衡器(loadbalancer,簡(jiǎn)稱lb)和防火墻(firewall,簡(jiǎn)稱fw)等其他網(wǎng)元。
本發(fā)明上述提及的目標(biāo)通過(guò)所附的獨(dú)立權(quán)利要求提供的方案實(shí)現(xiàn)。本發(fā)明的優(yōu)勢(shì)實(shí)現(xiàn)方式均在各個(gè)從屬權(quán)利要求部分中進(jìn)一步定義。特別地,本發(fā)明的核心思想是提供一種功能全面的sdn控制器替換openstack網(wǎng)絡(luò)業(yè)務(wù)中的neutron服務(wù)器。特別地,該sdn控制器設(shè)置有統(tǒng)一數(shù)據(jù)模型,其允許對(duì)包含lb和fw的所有網(wǎng)絡(luò)設(shè)備進(jìn)行控制。
本發(fā)明的第一方面提供了一種軟件定義網(wǎng)絡(luò)(softwaredefinednetwork,簡(jiǎn)稱sdn)控制器,包括:網(wǎng)絡(luò)中所有網(wǎng)絡(luò)設(shè)備的統(tǒng)一數(shù)據(jù)模型,其中,統(tǒng)一數(shù)據(jù)模型包括根元類別,其定義了所有網(wǎng)絡(luò)設(shè)備共享的多個(gè)基本屬性和/或操作,以及多個(gè)設(shè)備類別,每個(gè)表示網(wǎng)絡(luò)設(shè)備的一個(gè)類別;所述根元類別由每個(gè)所述設(shè)備類別繼承。
sdn控制器用于增強(qiáng)openstack網(wǎng)絡(luò)業(yè)務(wù)中的neutron服務(wù)器,從而在保留neutron服務(wù)器所有能力的同時(shí)為openstack網(wǎng)絡(luò)業(yè)務(wù)提供全部sdn能力。統(tǒng)一數(shù)據(jù)模型提供了網(wǎng)絡(luò)中所有網(wǎng)絡(luò)設(shè)備的唯一根代表,通過(guò)它,sdn控制器用于控制來(lái)自管理面的所有網(wǎng)絡(luò)設(shè)備,包括lb以及fw等。特別地,通過(guò)使用多態(tài)性,sdn控制器可以輕易參考不同網(wǎng)絡(luò)設(shè)備類別,即不同網(wǎng)絡(luò)設(shè)備,的動(dòng)作與屬性。根據(jù)本發(fā)明的sdn控制器,新增的或更改的應(yīng)用僅需在sdn控制器上注冊(cè),無(wú)須進(jìn)行neutron服務(wù)器的完整重新編譯。
根據(jù)第一方面,在所述sdn控制器的第一種實(shí)現(xiàn)形式中,所述sdn控制器配置為云管理系統(tǒng)的網(wǎng)絡(luò)控制器,優(yōu)選為openstack云管理系統(tǒng)的網(wǎng)絡(luò)控制器。
根據(jù)第一方面或第一方面的第一種實(shí)現(xiàn)形式,在所述sdn控制器的第二種實(shí)現(xiàn)形式中,所述統(tǒng)一數(shù)據(jù)模型包含在所述sdn控制器的抽象層中,是網(wǎng)絡(luò)基礎(chǔ)設(shè)施所有設(shè)備以及功能的統(tǒng)一抽象。
所有網(wǎng)絡(luò)設(shè)備的抽象允許新的或更改的應(yīng)用或設(shè)備輕松地集成到網(wǎng)絡(luò)業(yè)務(wù),無(wú)論它們的類型或制造商。即,通過(guò)所有網(wǎng)絡(luò)設(shè)備的抽象,例如,確保不同制造商但同一類型的設(shè)備可以很輕松地集成到網(wǎng)絡(luò)業(yè)務(wù)。
根據(jù)第一方面或第一方面的任一實(shí)現(xiàn)形式,在所述sdn控制器的第三種實(shí)現(xiàn)形式中,所述每個(gè)網(wǎng)絡(luò)設(shè)備共享的基本屬性和/或操作包括:主要能力;端口;用于確定將要進(jìn)行操作的數(shù)據(jù)流量的匹配規(guī)則;以及在所述確定的數(shù)據(jù)流量上將要進(jìn)行的動(dòng)作。
特別地,通過(guò)匹配規(guī)則以及將要進(jìn)行的動(dòng)作,提供了用于控制在所述統(tǒng)一數(shù)據(jù)模型中抽象化的不同網(wǎng)絡(luò)設(shè)備的單個(gè)接口。
根據(jù)第一方面的第三種實(shí)現(xiàn)形式,在所述sdn控制器的第四種實(shí)現(xiàn)形式中,所述每個(gè)網(wǎng)絡(luò)設(shè)備共享的基本屬性和/或操作也包括:通信協(xié)議和控制協(xié)議。
根據(jù)第一方面的第三或第四種實(shí)現(xiàn)形式,在所述sdn控制器的第五種實(shí)現(xiàn)形式中,在所述多個(gè)設(shè)備類別的每個(gè)中,賦予了所述網(wǎng)絡(luò)設(shè)備的主要能力;包含了網(wǎng)絡(luò)設(shè)備的具體數(shù)據(jù)模型屬性和/或操作。
根據(jù)第一方面的第三至第五種實(shí)現(xiàn)形式,在所述sdn控制器的第六種實(shí)現(xiàn)形式中,所述根元類別中的匹配操作和動(dòng)作操作同時(shí)參考所述多個(gè)設(shè)備類別中的所有網(wǎng)絡(luò)設(shè)備,以使網(wǎng)絡(luò)設(shè)備在所述確定的數(shù)據(jù)流量上至少執(zhí)行其主要能力。
鑒于上述實(shí)現(xiàn)形式,可以同時(shí)控制管理面所有的網(wǎng)絡(luò)設(shè)備。這意味著,若匹配規(guī)則或動(dòng)作改變了,相應(yīng)地以并行方式指令所有網(wǎng)絡(luò)設(shè)備,因?yàn)樗龈悇e屬性傳承給了每個(gè)設(shè)備類別。
根據(jù)第一方面或第一方面的任一實(shí)現(xiàn)形式,在所述sdn控制器的第七種實(shí)現(xiàn)形式中,所述多個(gè)網(wǎng)絡(luò)設(shè)備包括fe、fw和lb中的至少一個(gè)。
本發(fā)明的sdn控制器與現(xiàn)有技術(shù)中的sdn控制器形成對(duì)比,現(xiàn)有技術(shù)的sdn控制器僅能控制轉(zhuǎn)發(fā)設(shè)備。
根據(jù)第一方面或第一方面的任一實(shí)現(xiàn)形式,在所述sdn控制器的第八種實(shí)現(xiàn)形式中,所述sdn控制器包括至少一個(gè)應(yīng)用編程接口(applicationprogramminginterface,簡(jiǎn)稱api),用于注冊(cè)至少一個(gè)sdn應(yīng)用。
傳統(tǒng)openstack網(wǎng)絡(luò)業(yè)務(wù)(例如,l3代理以及dhcp代理等)中存在的所有業(yè)務(wù)插件均可作為純sdn應(yīng)用重新引入,該純sdn應(yīng)用在所述sdn控制器上注冊(cè)運(yùn)行。因此,業(yè)務(wù)插件并未導(dǎo)致數(shù)據(jù)流量的瓶頸,因?yàn)樗鼈兊臄?shù)據(jù)路徑部分是根據(jù)sdn范式分流給數(shù)據(jù)面的。
根據(jù)第一方面或第一方面的任一實(shí)現(xiàn)形式,在所述sdn控制器的第九種實(shí)現(xiàn)形式中,所述sdn控制器還包括至少一個(gè)應(yīng)用編程接口(applicationprogramminginterface,簡(jiǎn)稱api),用于注冊(cè)業(yè)務(wù)插件。
例如,可在所述sdn控制器中注冊(cè)標(biāo)準(zhǔn)sdn或of業(yè)務(wù)插件。
根據(jù)第一方面或第一方面的任一實(shí)現(xiàn)形式,在所述sdn控制器的第十種實(shí)現(xiàn)形式中,所述sdn控制器還包括至少一個(gè)應(yīng)用編程接口(applicationprogramminginterface,簡(jiǎn)稱api),用于注冊(cè)消息隊(duì)列(messagequeue,簡(jiǎn)稱mq)應(yīng)用。
因此,提供了針對(duì)其他openstack元件和針對(duì)傳統(tǒng)neutron代理的mq連通性(傳統(tǒng)neutron代理可支持非轉(zhuǎn)發(fā)元件,例如fw)。mq連通性是對(duì)傳統(tǒng)sdn模型的顯著改進(jìn)。
根據(jù)第一方面或第一方面的任一實(shí)現(xiàn)形式,在所述sdn控制器的第十一種實(shí)現(xiàn)形式中,所述sdn控制器還包括驅(qū)動(dòng)封裝器,用于改造openstack廠商特定設(shè)備插件和/或驅(qū)動(dòng)以供sdn應(yīng)用使用。
根據(jù)第一方面或第一方面的任一實(shí)現(xiàn)形式,在所述sdn控制器的第十二種實(shí)現(xiàn)形式中,所述sdn控制器還包括核心層,包含至少包括拓?fù)錁I(yè)務(wù)、路由業(yè)務(wù)、鏈接業(yè)務(wù)、調(diào)度業(yè)務(wù)、集群業(yè)務(wù)以及高可用性業(yè)務(wù)之一的多個(gè)業(yè)務(wù)。
因此,openstack網(wǎng)絡(luò)業(yè)務(wù)提供有全部sdn能力。額外業(yè)務(wù)大大提高了openstack網(wǎng)絡(luò)業(yè)務(wù)。
本發(fā)明的第二方面提供了一種軟件定義網(wǎng)絡(luò)(softwaredefinednetwork,簡(jiǎn)稱sdn)控制器創(chuàng)建方法,所述方法包括:在所述sdn控制器的抽象層創(chuàng)建網(wǎng)絡(luò)中所有網(wǎng)絡(luò)設(shè)備的統(tǒng)一數(shù)據(jù)模型;在統(tǒng)一數(shù)據(jù)模型中包括根元類別以及多個(gè)設(shè)備類別,根元類別包含了所有網(wǎng)絡(luò)設(shè)備共享的多個(gè)基本屬性和/或操作,每個(gè)設(shè)備類別表示網(wǎng)絡(luò)設(shè)備的一個(gè)類別;將所述根元類別傳承給每個(gè)所述設(shè)備類別。
根據(jù)第二方面,在所述方法的第一種實(shí)現(xiàn)形式中,所述sdn控制器配置為云管理系統(tǒng)的網(wǎng)絡(luò)控制器,優(yōu)選為openstack云管理系統(tǒng)的網(wǎng)絡(luò)控制器。
根據(jù)第二方面或第二方面的第一種實(shí)現(xiàn)形式,在所述方法的第二種實(shí)現(xiàn)形式中,所述統(tǒng)一數(shù)據(jù)模型創(chuàng)建在所述sdn控制器的抽象層中,是網(wǎng)絡(luò)基礎(chǔ)設(shè)施所有設(shè)備以及功能的統(tǒng)一抽象。
根據(jù)第二方面或第二方面的任一實(shí)現(xiàn)形式,在所述方法的第三種實(shí)現(xiàn)形式中,所述每個(gè)網(wǎng)絡(luò)設(shè)備共享的基本屬性和/或操作包括:主要能力;端口;用于確定將要進(jìn)行操作的數(shù)據(jù)流量的匹配規(guī)則;以及在所述確定的數(shù)據(jù)流量上將要進(jìn)行的動(dòng)作。
根據(jù)第二方面的第三種實(shí)現(xiàn)形式,在所述方法的第四種實(shí)現(xiàn)形式中,所述每個(gè)網(wǎng)絡(luò)設(shè)備共享的基本屬性和/或操作也包括:通信協(xié)議和控制協(xié)議。
根據(jù)第二方面的第三或第四種實(shí)現(xiàn)形式,在所述方法的第五種實(shí)現(xiàn)形式中,在所述多個(gè)設(shè)備類別的每個(gè)中,賦予了所述網(wǎng)絡(luò)設(shè)備的主要能力;包括了網(wǎng)絡(luò)設(shè)備的具體數(shù)據(jù)模型屬性和/或操作。
根據(jù)第二方面的第三至第五種實(shí)現(xiàn)形式,在所述方法的第六種實(shí)現(xiàn)形式中,所述根元類別中的匹配操作和動(dòng)作操作同時(shí)參考所述多個(gè)設(shè)備類別中所有網(wǎng)絡(luò)設(shè)備,以使網(wǎng)絡(luò)設(shè)備在所述確定的數(shù)據(jù)流量上至少執(zhí)行其主要能力。
根據(jù)第二方面或第二方面的任一實(shí)現(xiàn)形式,在所述方法的第七種實(shí)現(xiàn)形式中,所述多個(gè)網(wǎng)絡(luò)設(shè)備包括轉(zhuǎn)發(fā)元件(forwardingelement,簡(jiǎn)稱fe)、防火墻(firewall,簡(jiǎn)稱fw)和負(fù)載均衡器(loadbalancer,簡(jiǎn)稱lb)中的至少一個(gè)。
根據(jù)第二方面或第二方面的任一實(shí)現(xiàn)形式,在所述方法的第八種實(shí)現(xiàn)形式中,所述sdn控制器中創(chuàng)建了至少一個(gè)應(yīng)用編程接口(applicationprogramminginterface,簡(jiǎn)稱api),用于注冊(cè)至少一個(gè)sdn應(yīng)用。
根據(jù)第二方面或第二方面的任一實(shí)現(xiàn)形式,在所述方法的第九種實(shí)現(xiàn)形式中,所述sdn控制器中創(chuàng)建了至少一個(gè)應(yīng)用編程接口(applicationprogramminginterface,簡(jiǎn)稱api),用于注冊(cè)業(yè)務(wù)插件。
根據(jù)第二方面或第二方面的任一實(shí)現(xiàn)形式,在所述方法的第十種實(shí)現(xiàn)形式中,所述sdn控制器中創(chuàng)建了至少一個(gè)應(yīng)用編程接口(applicationprogramminginterface,簡(jiǎn)稱api),用于注冊(cè)消息隊(duì)列(messagequeue,簡(jiǎn)稱mq)應(yīng)用。
根據(jù)第二方面或第二方面的任一實(shí)現(xiàn)形式,在所述方法的第十一種實(shí)現(xiàn)形式中,所述sdn控制器中創(chuàng)建了驅(qū)動(dòng)封裝器,用于改造openstack廠商特定設(shè)備插件和/或驅(qū)動(dòng)以供sdn應(yīng)用使用。
根據(jù)第二方面或第二方面的任一實(shí)現(xiàn)形式,在所述方法的第十二種實(shí)現(xiàn)形式中,所述sdn控制器中創(chuàng)建了核心層,包含至少包括拓?fù)錁I(yè)務(wù)、路由業(yè)務(wù)、鏈接業(yè)務(wù)、調(diào)度業(yè)務(wù)、集群業(yè)務(wù)以及高可用性業(yè)務(wù)之一的多個(gè)業(yè)務(wù)。
上述第二方面及其實(shí)現(xiàn)形式分別實(shí)現(xiàn)與第一方面及其實(shí)現(xiàn)形式所描述的優(yōu)點(diǎn)相同的優(yōu)點(diǎn)。
本發(fā)明第三方面提供一種計(jì)算機(jī)程序,包括程序代碼,用于當(dāng)在計(jì)算機(jī)上運(yùn)行時(shí),執(zhí)行根據(jù)第二方面或第二方面的任一實(shí)現(xiàn)形式所述的方法。
第三方面分別實(shí)現(xiàn)與第二方面及其實(shí)現(xiàn)形式所描述的優(yōu)點(diǎn)相同的優(yōu)點(diǎn)。
需要注意的是,本申請(qǐng)所描述的所有設(shè)備、元件、單元和方式均可在軟件或硬件元件或它們的任意組合中實(shí)現(xiàn)。本申請(qǐng)中描述的各種實(shí)體所執(zhí)行的步驟以及所描述的各種實(shí)體要執(zhí)行的功能均意在指各個(gè)實(shí)體用于執(zhí)行各個(gè)步驟和功能。即使在具體實(shí)施例的下述描述中,完全由外部實(shí)體形成的具體功能或步驟未在執(zhí)行該具體步驟或功能的該實(shí)體的具體細(xì)節(jié)元件的描述中反映,技術(shù)人員應(yīng)清楚可以在各個(gè)軟件或硬件元件或它們的任意組合中實(shí)現(xiàn)這些方法和功能。
附圖說(shuō)明
結(jié)合所附附圖,下面具體實(shí)施例的描述將闡述上述本發(fā)明的各方面及其實(shí)現(xiàn)形式,其中:
圖1示出了本發(fā)明實(shí)施例中openstack網(wǎng)絡(luò)業(yè)務(wù)中的sdn控制器;
圖2示出了本發(fā)明實(shí)施例中在openstack云管理系統(tǒng)中與云控制器節(jié)點(diǎn)、消息隊(duì)列以及neutron插件代理交互的sdn控制器;
圖3示出了本發(fā)明實(shí)施例的sdn控制器;
圖4示意性地示出了本發(fā)明實(shí)施例中sdn控制器所使用的統(tǒng)一數(shù)據(jù)模型;
圖5示出了本發(fā)明實(shí)施例中sdn控制器所使用的具體統(tǒng)一數(shù)據(jù)模型;
圖6示出了本發(fā)明實(shí)施例的sdn控制器的具體配置;
圖7示出了本發(fā)明實(shí)施例的sdn控制器的創(chuàng)建方法;
圖8示出了現(xiàn)有技術(shù)中的openstack網(wǎng)絡(luò)業(yè)務(wù);
圖9a/9b示出了現(xiàn)有技術(shù)中的openstack網(wǎng)絡(luò)業(yè)務(wù)。
具體實(shí)施方式
圖1示出了本發(fā)明實(shí)施例中網(wǎng)絡(luò)內(nèi),具體是openstack網(wǎng)絡(luò)業(yè)務(wù)內(nèi)的sdn控制器100。sdn控制器100用于替換這種openstack網(wǎng)絡(luò)業(yè)務(wù)中的neutron服務(wù)器?;蛘?,將傳統(tǒng)neutron服務(wù)器的功能增強(qiáng)以使其具有sdn控制器100一樣的功能。圖1尤其示出了openstack對(duì)象存儲(chǔ)、openstack圖像業(yè)務(wù)、openstack計(jì)算、openstack塊存儲(chǔ)以及openstack標(biāo)識(shí)業(yè)務(wù)等openstack網(wǎng)絡(luò)業(yè)務(wù)中的一些元素。openstack組網(wǎng)(即傳統(tǒng)openstack網(wǎng)絡(luò)業(yè)務(wù)的neutron服務(wù)器)由sdn控制器100一一替換。由圖1可知,有了新的基于sdn控制器100的neutron服務(wù)器,就無(wú)須重新配置剩余的傳統(tǒng)openstack網(wǎng)絡(luò)業(yè)務(wù)。
圖2示出了本發(fā)明實(shí)施例中sdn控制器100如何與openstack云管理系統(tǒng)中云控制器節(jié)點(diǎn)201、消息隊(duì)列200以及網(wǎng)絡(luò)節(jié)點(diǎn)202(例如,運(yùn)行neutron插件代理)交互。通過(guò)將sdn控制器與消息隊(duì)列200進(jìn)行連接來(lái)實(shí)現(xiàn)消息隊(duì)列連通性(例如,針對(duì)openstack元件)。通過(guò)消息隊(duì)列200,sdn控制器100可以連接至云控制器節(jié)點(diǎn)201。而且,sdn控制器100可連接至網(wǎng)絡(luò)節(jié)點(diǎn)202上的neutron插件。與圖9b所示的現(xiàn)有技術(shù)方案相比,可以看出傳統(tǒng)openstack網(wǎng)絡(luò)業(yè)務(wù)(即,l3代理和dhcp等)的所有業(yè)務(wù)插件均作為sdn應(yīng)用重新引入到sdn控制器100中,且不再是數(shù)據(jù)流量的瓶頸。以下將對(duì)sdn控制器100和sdn應(yīng)用進(jìn)行更具體的描述
圖3示出了本發(fā)明如圖1和圖2所示的sdn控制器100的基本實(shí)施例。sdn控制器100用于完全替換openstack網(wǎng)絡(luò)業(yè)務(wù)中的neutron服務(wù)器。sdn控制器100至少設(shè)置有網(wǎng)絡(luò)中所有網(wǎng)絡(luò)設(shè)備的統(tǒng)一數(shù)據(jù)模型300。在統(tǒng)一數(shù)據(jù)模型300中,所有網(wǎng)絡(luò)設(shè)備都是抽象化的,例如包括fe、fw和/或lb。為此目的,所述統(tǒng)一數(shù)據(jù)模型300至少包括根元類別301,其定義了所有網(wǎng)絡(luò)設(shè)備共享的多個(gè)基本屬性和/或操作305。所述統(tǒng)一數(shù)據(jù)模型300還包括多個(gè)設(shè)備類別302、303和304,每個(gè)設(shè)備類別表示網(wǎng)絡(luò)設(shè)備的一個(gè)類別。所述根元類別301由每個(gè)所述設(shè)備類別302、303和304繼承。
圖4示意性地示出了優(yōu)選包括在圖3的sdn控制器100中的統(tǒng)一數(shù)據(jù)模型300。該統(tǒng)一數(shù)據(jù)模型300優(yōu)選通過(guò)云實(shí)現(xiàn),且適合openstack的neutron。特別地,統(tǒng)一數(shù)據(jù)模型300抽象化了根元類別301中的fe、fw以及l(fā)b等所有網(wǎng)元(網(wǎng)絡(luò)設(shè)備)的共享屬性。網(wǎng)元的具體屬性在設(shè)備類別302、303和304中進(jìn)行抽象化。例如,fe是在第一設(shè)備類別302中通過(guò)流401和表402進(jìn)行抽象化。進(jìn)一步地,例如,fw是在第二設(shè)備類別303中通過(guò)策略403和規(guī)則404進(jìn)行抽象化。統(tǒng)一數(shù)據(jù)模型300優(yōu)選為可插拔的,即易于拓展到更多網(wǎng)絡(luò)設(shè)備(即,在沒(méi)有重新編譯基于sdn控制器的neutron服務(wù)器的情況下),且可以為各種類型的網(wǎng)絡(luò)設(shè)備建模。這樣就實(shí)現(xiàn)了通過(guò)sdn控制器100對(duì)所有網(wǎng)絡(luò)設(shè)備的唯一控制,即實(shí)現(xiàn)了同樣基礎(chǔ)設(shè)施下的控制。
圖5示出了統(tǒng)一數(shù)據(jù)模型300,是圖4中所示統(tǒng)一數(shù)據(jù)模型300的更具體圖示,可用于sdn控制器100中。特別地,統(tǒng)一數(shù)據(jù)模型300再次包括根元類別301,其對(duì)所有網(wǎng)元/設(shè)備有效,定義了所有網(wǎng)絡(luò)設(shè)備共享的多個(gè)基本屬性和/或操作305。根元類別301也稱為網(wǎng)元。根元類別301可包括主要能力即網(wǎng)絡(luò)設(shè)備主要的能力、用于獲得網(wǎng)絡(luò)數(shù)據(jù)的端口、用于確定至少要進(jìn)行操作的數(shù)據(jù)流量的匹配規(guī)則以及在所述確定的數(shù)據(jù)流量上將要進(jìn)行的動(dòng)作以作為屬性和/或操作305。根元類別301可優(yōu)選還包括用于理解網(wǎng)絡(luò)數(shù)據(jù)的通信協(xié)議以及控制協(xié)議。
對(duì)于每一種網(wǎng)絡(luò)設(shè)備,分別由設(shè)備類別302、303和304繼承根元類別301,其中,每個(gè)設(shè)備類別表示一個(gè)具體的網(wǎng)絡(luò)設(shè)備類型。在每個(gè)設(shè)備類別302、303和304中,賦予了各個(gè)網(wǎng)絡(luò)設(shè)備類型的主要能力,包含了各個(gè)網(wǎng)絡(luò)設(shè)備的具體數(shù)據(jù)模型屬性和/或操作502、503和504。例如,在圖5中,第三設(shè)備類別304表示lb。lb的主要能力是狀態(tài)l7負(fù)載均衡器。lb的具體屬性504包括鏈路狀態(tài)以及均衡算法。第二設(shè)備類別303代表fw。fw的主要能力是狀態(tài)防火墻。fw的具體屬性503包括規(guī)則、策略和日志。第一設(shè)備類別302代表fe。fe的主要能力是可編程幀轉(zhuǎn)發(fā)。fe的具體屬性502包括流和表。
因此,sdn控制器100中的統(tǒng)一數(shù)據(jù)模型300是所有網(wǎng)絡(luò)設(shè)備的唯一根代表,是網(wǎng)絡(luò)基礎(chǔ)設(shè)施所有設(shè)備以及功能的抽象化。
統(tǒng)一數(shù)據(jù)模型300允許sdn控制器100使用多態(tài)性,實(shí)現(xiàn)了參考具有抽象操作的不同設(shè)備類別中的動(dòng)作與屬性。例如,所述根元類別301中抽象化的匹配操作和動(dòng)作操作可同時(shí)參考所述多個(gè)設(shè)備類別302、303和304中的網(wǎng)絡(luò)設(shè)備,從而使各個(gè)網(wǎng)絡(luò)設(shè)備在所述確定的數(shù)據(jù)流量上至少執(zhí)行其主要能力。
例如,在云環(huán)境中,兩個(gè)最基礎(chǔ)動(dòng)作是定義不同虛擬機(jī)間的連通性和安全接入規(guī)則。在抽象層面上,這兩種操作重合。因此,作為典型策略,只允許與其他虛擬機(jī)有連通性的虛擬機(jī)的動(dòng)作。在傳統(tǒng)云環(huán)境中,這兩種操作的建模不同,在不同地點(diǎn)控制。因此,通常由用戶同步和協(xié)調(diào)策略。
相反,本發(fā)明的方案允許在sdn控制器中對(duì)這兩種動(dòng)作進(jìn)行建模和控制。如上所述,在本發(fā)明的統(tǒng)一數(shù)據(jù)模型中,匹配和動(dòng)作均在根元類別層面抽象化。該匹配和動(dòng)作從而可以定義上述提及的策略。例如,其可以為這樣的策略:只對(duì)源自某個(gè)ip地址的數(shù)據(jù)流量進(jìn)行動(dòng)作。然后,每個(gè)相關(guān)網(wǎng)元(fe以及fw等)將在該數(shù)據(jù)流量上實(shí)現(xiàn)其關(guān)聯(lián)的能力??梢匀绱耸褂玫亩鄳B(tài)性急速降低將新功能集成入sdn控制器的需求,并使sdn控制器通過(guò)統(tǒng)一數(shù)據(jù)模型控制所有網(wǎng)元。
圖6示出了本發(fā)明實(shí)施例的sdn控制器100。圖6的sdn控制器100可以是圖3中所示的sdn控制器100,且更為詳細(xì)。sdn控制器100具有抽象層601,其統(tǒng)一和抽象化了網(wǎng)絡(luò)基礎(chǔ)設(shè)施的所有方面,包括fw和lb等功能。抽象層601優(yōu)選包括所有網(wǎng)絡(luò)設(shè)備的統(tǒng)一數(shù)據(jù)模型300。
現(xiàn)有業(yè)務(wù)插件606(例如,l3代理、dhcp代理、fwaas代理等)優(yōu)選作為sdn應(yīng)用在如圖6所示的sdn控制器100上運(yùn)行,通過(guò)北向接口(northboundinterface,簡(jiǎn)稱nbi)603注冊(cè)到sdn控制器100上。sdn控制器100優(yōu)選在nbi603也設(shè)置有至少一個(gè)傳統(tǒng)api604,例如,用于作為傳統(tǒng)neutron服務(wù)器的至少一個(gè)(neutron)插件,并允許與傳統(tǒng)業(yè)務(wù)連接。
sdn控制器100優(yōu)選也具有南向接口(southboundinterface,簡(jiǎn)稱sbi)607,其優(yōu)選配置有多個(gè)其他的插件。sbi優(yōu)選包括至少一個(gè)api,用于注冊(cè)業(yè)務(wù)插件,優(yōu)選注冊(cè)sdn業(yè)務(wù)插件。此外,sbi包含api,用于注冊(cè)mq隊(duì)列應(yīng)用(如圖2所示)。此外,sbi上設(shè)置有驅(qū)動(dòng)封裝器609,用于改造openstack廠商特定設(shè)備插件和/或驅(qū)動(dòng),其例如可供sdn應(yīng)用使用。最后,在sbi上同時(shí)設(shè)置有傳統(tǒng)api608,用于允許傳統(tǒng)neutron服務(wù)器的傳統(tǒng)插件插入本發(fā)明的sdn服務(wù)器。
sdn服務(wù)器100優(yōu)選也包括內(nèi)部數(shù)據(jù)庫(kù)602,例如,在數(shù)據(jù)庫(kù)中,sdn服務(wù)器100可存儲(chǔ)關(guān)于sdn應(yīng)用和其上運(yùn)行的業(yè)務(wù)的信息。數(shù)據(jù)庫(kù)602也可存儲(chǔ)應(yīng)用鏈,以提供業(yè)務(wù)鏈接。
sdn服務(wù)器100優(yōu)選還包括核心層605,包含至少包括拓?fù)錁I(yè)務(wù)、路由業(yè)務(wù)、鏈接業(yè)務(wù)、調(diào)度業(yè)務(wù)、集群業(yè)務(wù)以及高可用性業(yè)務(wù)之一的多個(gè)業(yè)務(wù)。
圖7示出了本發(fā)明的sdn控制器100的創(chuàng)建方法700。在第一步驟701中,優(yōu)選地在sdn控制器100的抽象層601中創(chuàng)建所有網(wǎng)絡(luò)設(shè)備的統(tǒng)一數(shù)據(jù)模型300。在第二步驟702中,在統(tǒng)一數(shù)據(jù)模型300中包括根元類別301,其包含了所有網(wǎng)絡(luò)設(shè)備共享的多個(gè)基本屬性和/或操作305。在第三步驟703中,在統(tǒng)一數(shù)據(jù)模型300中包括多個(gè)設(shè)備類別302、303和304,每個(gè)表示網(wǎng)絡(luò)設(shè)備的一個(gè)類別。在第四步驟704中,將所述根元類別301傳承給每個(gè)所述設(shè)備類別302、303和304。
本發(fā)明可應(yīng)用于具體使用情況中。例如,本發(fā)明可應(yīng)用于dvr。在當(dāng)前openstack網(wǎng)絡(luò)業(yè)務(wù)方案中,所有穿過(guò)子網(wǎng)的數(shù)據(jù)流量必須經(jīng)過(guò)網(wǎng)絡(luò)節(jié)點(diǎn)。這使得網(wǎng)絡(luò)節(jié)點(diǎn)成為不必要的瓶頸,因?yàn)槠湔莆盏男畔⒛芨行У姆峙?。然而,傳統(tǒng)方案將路由功能分配給網(wǎng)絡(luò)節(jié)點(diǎn),這會(huì)要求計(jì)算節(jié)點(diǎn)交換全部路由信息或存儲(chǔ)全局路由信息。這將給傳統(tǒng)方案中的計(jì)算節(jié)點(diǎn)帶來(lái)不必要的負(fù)擔(dān)。
采用本發(fā)明實(shí)施例的sdn控制器100完全替換neutron服務(wù)器,數(shù)據(jù)路徑可分配給計(jì)算節(jié)點(diǎn),而控制部分則維持在sdn控制器層級(jí)。只有需要的轉(zhuǎn)發(fā)信息庫(kù)(forwardinginformationbase,簡(jiǎn)稱fib)片段可以按要求發(fā)送給計(jì)算節(jié)點(diǎn)。因此,網(wǎng)絡(luò)節(jié)點(diǎn)不再是瓶頸,因?yàn)椴皇撬新酚傻臄?shù)據(jù)流量都必須經(jīng)過(guò)該節(jié)點(diǎn)。計(jì)算節(jié)點(diǎn)也不必背負(fù)不必要的負(fù)擔(dān),因?yàn)樗鼈儾恍枰S護(hù)路由協(xié)議或大型路由數(shù)據(jù)庫(kù)。
本發(fā)明也可應(yīng)用于防火墻即服務(wù)(fw-as-a-service,簡(jiǎn)稱fwaas)。傳統(tǒng)意義上,fw運(yùn)行狀況與網(wǎng)絡(luò)運(yùn)行狀況緊密耦合。在傳統(tǒng)openstack網(wǎng)絡(luò)業(yè)務(wù)方案中,fwaas是獨(dú)立斷開(kāi)的業(yè)務(wù)插件。對(duì)于組網(wǎng)和fw,傳統(tǒng)neutron服務(wù)器具有普通管理平臺(tái)的益處。然而,傳統(tǒng)sdn沒(méi)有將fw作為被控制元件的概念,而是作為與轉(zhuǎn)發(fā)元件關(guān)聯(lián)的應(yīng)用,且fw要么作為集中式fw運(yùn)行,使其成為瓶頸,要么可從fw管理中斷開(kāi)。根據(jù)本發(fā)明的sdn控制器100,該問(wèn)題可以通過(guò)合并兩個(gè)模型,即合并neutron服務(wù)器和sdn控制器100解決。
總之,本發(fā)明展示了通過(guò)提供的sdn控制器100將sdn完全集成到openstack網(wǎng)絡(luò)業(yè)務(wù)中。這實(shí)現(xiàn)了對(duì)整個(gè)網(wǎng)絡(luò)從管理面,到控制面,再到數(shù)據(jù)面的控制。此外,sdn控制器支持切換設(shè)備以及l(fā)b和/或fw等其他網(wǎng)元的控制和管理。
已經(jīng)結(jié)合作為實(shí)例的不同實(shí)施例以及實(shí)施方案描述了本發(fā)明。但本領(lǐng)域技術(shù)人員通過(guò)實(shí)踐所請(qǐng)發(fā)明,研究附圖、本公開(kāi)以及獨(dú)立權(quán)項(xiàng),能夠理解并獲得其他變體。在權(quán)利要求以及描述中,術(shù)語(yǔ)“包括”不排除其他元件或步驟,且“一個(gè)”并不排除復(fù)數(shù)可能。單個(gè)元件或其它單元可滿足權(quán)利要求書中所敘述的若干實(shí)體或項(xiàng)目的功能。在僅憑某些措施被記載在相互不同的從屬權(quán)利要求書中這個(gè)單純的事實(shí)并不意味著這些措施的結(jié)合不能在有利的實(shí)現(xiàn)方式中使用。