本發(fā)明公開(kāi)了高可用高性能靈敏的sdn控制器與sdn交換機(jī)架構(gòu),屬于云計(jì)算中心軟件定義網(wǎng)絡(luò)的技術(shù)領(lǐng)域。
背景技術(shù):
軟件定義網(wǎng)絡(luò)(sdn,softwaredefinednetwork)是國(guó)際上針對(duì)云計(jì)算中心網(wǎng)絡(luò)的需要所提出的一個(gè)網(wǎng)絡(luò)架構(gòu)。軟件定義網(wǎng)絡(luò)通常是由一個(gè)sdn控制器及其所控制管轄的sdn交換機(jī)機(jī)群所組成,如圖1所示。
圖1所示sdn交換機(jī)的主要結(jié)構(gòu)包括:(1)與主機(jī)、服務(wù)器或其它網(wǎng)絡(luò)設(shè)備相連的網(wǎng)絡(luò)端口,sdn交換機(jī)通過(guò)網(wǎng)絡(luò)端口接收/發(fā)送網(wǎng)絡(luò)封包;(2)包含多級(jí)轉(zhuǎn)發(fā)流表的網(wǎng)絡(luò)芯片,sdn交換機(jī)通過(guò)網(wǎng)絡(luò)芯片檢驗(yàn)從網(wǎng)絡(luò)端口接收的封包包頭以決定如何處置封包,多級(jí)轉(zhuǎn)發(fā)流表由sdn控制器根據(jù)網(wǎng)絡(luò)使用協(xié)議的需要來(lái)定義,每一級(jí)流表對(duì)應(yīng)封包包頭的一段字節(jié),轉(zhuǎn)發(fā)流表的內(nèi)容由sdn控制器根據(jù)網(wǎng)絡(luò)建立的路由設(shè)置;(3)cpu子板,包含:控制器代理模塊、網(wǎng)絡(luò)設(shè)備操作系統(tǒng)(nos,networkoperatingsystem)、linux內(nèi)核及芯片驅(qū)動(dòng),控制器代理模塊接收sdn控制器的指令,通過(guò)芯片驅(qū)動(dòng)將控制器代理模塊接收的指令下發(fā)到網(wǎng)絡(luò)芯片用以更新多級(jí)轉(zhuǎn)發(fā)流表,芯片驅(qū)動(dòng)通過(guò)經(jīng)過(guò)功能裁剪的linux內(nèi)核實(shí)現(xiàn)。
當(dāng)sdn交換機(jī)開(kāi)始檢驗(yàn)一個(gè)從網(wǎng)絡(luò)端口接收的網(wǎng)絡(luò)封包時(shí),sdn交換機(jī)根據(jù)每一級(jí)轉(zhuǎn)發(fā)流表的定義從封包包頭截取對(duì)應(yīng)的字節(jié)后逐級(jí)查表。sdn交換機(jī)在當(dāng)前級(jí)轉(zhuǎn)發(fā)流表內(nèi)無(wú)匹配內(nèi)容時(shí)會(huì)丟棄封包或?qū)⒎獍蟼髦羢dn控制器來(lái)做進(jìn)一步處理;sdn交換機(jī)在當(dāng)前級(jí)轉(zhuǎn)發(fā)流表內(nèi)有匹配內(nèi)容時(shí)前進(jìn)到下一級(jí)轉(zhuǎn)發(fā)流表以便做更進(jìn)一步的檢驗(yàn)。在完成最后一級(jí)轉(zhuǎn)發(fā)流表的查表后,sdn交換機(jī)根據(jù)查表結(jié)果將封包轉(zhuǎn)發(fā)到對(duì)應(yīng)網(wǎng)絡(luò)端口出口并對(duì)封包頭做出必要的改換。
圖1所示sdn控制器的主要功能包括:(1)通過(guò)南向接口連接各sdn交換機(jī)以形成sdn交換機(jī)群的網(wǎng)絡(luò)拓?fù)洌?2)通過(guò)北向接口傳送sdn交換機(jī)上傳的路由封包并接收業(yè)務(wù)應(yīng)用的請(qǐng)求,以便得知網(wǎng)絡(luò)拓?fù)涞淖兓皹I(yè)務(wù)應(yīng)用的需求;(3)根據(jù)北向接口上接收的新路由封包以及業(yè)務(wù)應(yīng)用的請(qǐng)求,并利用內(nèi)建的網(wǎng)絡(luò)控制協(xié)議建立網(wǎng)絡(luò)路由表,然后將網(wǎng)絡(luò)路由表轉(zhuǎn)換成多級(jí)轉(zhuǎn)發(fā)流表指令。多級(jí)轉(zhuǎn)發(fā)流表指令從南向接口發(fā)送到sdn交換機(jī)。
雖然sdn交換機(jī)架構(gòu)能基本滿足軟件定義網(wǎng)絡(luò)的需要,但還存在以下缺陷:
(1)性能不足:在sdn交換機(jī)架構(gòu)下,sdn控制器除了擔(dān)負(fù)許多功能還需要對(duì)每條新建的路由下達(dá)對(duì)應(yīng)的多級(jí)流表指令,而每一級(jí)轉(zhuǎn)發(fā)流表需要一個(gè)指令,所以多級(jí)轉(zhuǎn)發(fā)流表需要多個(gè)指令,這會(huì)對(duì)sdn控制器所處的主機(jī)造成相當(dāng)大的負(fù)荷,這導(dǎo)致一個(gè)sdn控制器所能控制的sdn交換機(jī)的數(shù)目有限制,因而使得sdn的性能不足;
(2)靈敏度不夠:當(dāng)業(yè)務(wù)應(yīng)用與網(wǎng)絡(luò)拓?fù)渥兓瘯r(shí)會(huì)產(chǎn)生新的路由封包,這些新的路由封包必須先由sdn交換機(jī)轉(zhuǎn)發(fā)給sdn控制器,接著由sdn控制器建立新的路由表,然后再由sdn控制器將新的路由表轉(zhuǎn)成相對(duì)應(yīng)的多級(jí)轉(zhuǎn)發(fā)流表指令后傳達(dá)給sdn交換機(jī),這段由sdn交換機(jī)到sdn控制器再回到sdn交換機(jī)的路徑所產(chǎn)生的時(shí)延會(huì)造成網(wǎng)絡(luò)反應(yīng)過(guò)慢,尤其當(dāng)業(yè)務(wù)應(yīng)用與網(wǎng)絡(luò)拓?fù)溆兄卮笞兓瘯r(shí),網(wǎng)絡(luò)反應(yīng)慢的缺陷會(huì)更加凸顯;
(3)可用度不夠:網(wǎng)絡(luò)設(shè)備在運(yùn)行時(shí)只能加載1個(gè)nos(networkoperatingsystem,網(wǎng)絡(luò)設(shè)備操作系統(tǒng)),當(dāng)因?yàn)闃I(yè)務(wù)需要修改定制應(yīng)用程序時(shí),需要在網(wǎng)絡(luò)設(shè)備上對(duì)整個(gè)集成系統(tǒng)進(jìn)行變更,網(wǎng)絡(luò)設(shè)備在變更過(guò)程中會(huì)停止運(yùn)行并在變更完成后恢復(fù)運(yùn)行,變更時(shí)間因集成nos的大小不同而不同,目前,正常數(shù)據(jù)中心網(wǎng)絡(luò)設(shè)備的變更時(shí)間通常需要10分鐘以上,網(wǎng)絡(luò)運(yùn)維方需要為10分鐘的網(wǎng)絡(luò)中斷做出大量的協(xié)調(diào)工作。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的發(fā)明目的是針對(duì)上述背景技術(shù)的不足,提供了高可用高性能靈敏的sdn控制器與sdn交換機(jī)架構(gòu),實(shí)現(xiàn)了sdn的高性能運(yùn)行,提高了sdn應(yīng)對(duì)業(yè)務(wù)應(yīng)用和網(wǎng)絡(luò)拓?fù)渥兓撵`敏度,提升了網(wǎng)絡(luò)設(shè)備可用度,解決了sdn交換機(jī)架構(gòu)性能不足、靈敏度不夠、可用度不夠的技術(shù)問(wèn)題。
本發(fā)明為實(shí)現(xiàn)上述發(fā)明目的采用如下技術(shù)方案:
高可用高性能靈敏的sdn控制器,包括:
南向接口,連接各sdn交換機(jī)以形成sdn交換機(jī)群網(wǎng)絡(luò)拓?fù)洌?/p>
北向接口,傳送由sdn交換機(jī)上傳的路由封包并接收業(yè)務(wù)應(yīng)用的請(qǐng)求,及,
抽象層模塊,結(jié)合sdn交換機(jī)上傳的路由封包以及北向接口接收的業(yè)務(wù)應(yīng)用請(qǐng)求生成路由表,將路由表轉(zhuǎn)化為單級(jí)虛擬轉(zhuǎn)發(fā)流表指令后下發(fā)至sdn交換機(jī)。
高可用高性能靈敏的sdn交換機(jī)架構(gòu),包括:
sdn控制器,通過(guò)其南向接口與所轄sdn交換機(jī)群建立拓?fù)溥B接關(guān)系,通過(guò)其北向接口接收業(yè)務(wù)應(yīng)用的請(qǐng)求,將sdn交換機(jī)上傳的路由封包以及北向接口接收的業(yè)務(wù)應(yīng)用請(qǐng)求轉(zhuǎn)化為單級(jí)虛擬轉(zhuǎn)發(fā)流表指令,及,
sdn交換機(jī)群,各sdn交換機(jī)通過(guò)各自的網(wǎng)絡(luò)端口接收主機(jī)、服務(wù)器、其它網(wǎng)絡(luò)設(shè)備發(fā)送的網(wǎng)絡(luò)封包并根據(jù)其內(nèi)部網(wǎng)絡(luò)芯片配置的多級(jí)轉(zhuǎn)發(fā)流表向主機(jī)、服務(wù)器、其它網(wǎng)絡(luò)設(shè)備發(fā)送網(wǎng)絡(luò)封包,同時(shí),各sdn交換機(jī)將從sdn控制器接收的單級(jí)虛擬轉(zhuǎn)發(fā)流表指令轉(zhuǎn)化為多級(jí)轉(zhuǎn)發(fā)流表指令以實(shí)時(shí)更新多級(jí)轉(zhuǎn)發(fā)流表。
作為高可用高性能靈敏的sdn交換機(jī)架構(gòu)的進(jìn)一步優(yōu)化方案,各sdn交換機(jī)分別配置有根據(jù)其內(nèi)建路由政策建立的臨時(shí)路由表,各sdn交換機(jī)在收到sdn控制器更新的單級(jí)虛擬轉(zhuǎn)發(fā)流表指令之前按照臨時(shí)路由表轉(zhuǎn)發(fā)網(wǎng)絡(luò)封包。
作為高可用高性能靈敏的sdn交換機(jī)架構(gòu)的更進(jìn)一步優(yōu)化方案,各sdn交換機(jī)運(yùn)行有支持主備nos容器的linux系統(tǒng)。
sdn交換機(jī)架構(gòu)的網(wǎng)絡(luò)封包轉(zhuǎn)發(fā)機(jī)制,sdn交換機(jī)將接收到的新的路由封包上傳至sdn控制器,同時(shí),sdn交換機(jī)將根據(jù)其內(nèi)建路由政策建立的路由表存儲(chǔ)至臨時(shí)路由表,sdn交換機(jī)在sdn控制器下發(fā)新的單級(jí)虛擬轉(zhuǎn)發(fā)流表指令之前根據(jù)臨時(shí)路由表轉(zhuǎn)發(fā)網(wǎng)絡(luò)封包,sdn交換機(jī)在sdn控制器下發(fā)新的單級(jí)虛擬轉(zhuǎn)發(fā)流表指令之后根據(jù)更新后的多級(jí)轉(zhuǎn)發(fā)流表轉(zhuǎn)發(fā)網(wǎng)絡(luò)封包。
本發(fā)明采用上述技術(shù)方案,具有以下有益效果:
(1)本申請(qǐng)公開(kāi)的sdn控制器將現(xiàn)有往sdn交換機(jī)下傳多級(jí)轉(zhuǎn)發(fā)流表指令虛擬為單級(jí)虛擬轉(zhuǎn)發(fā)流表指令,減輕了網(wǎng)絡(luò)計(jì)算負(fù)荷,減少i/o流量,提升了sdn的性能;
(2)本申請(qǐng)公開(kāi)的sdn交換機(jī)配置有根據(jù)其內(nèi)建路由政策建立的臨時(shí)路由表,這使得sdn交換機(jī)在sdn控制器處理新路由封包時(shí)仍能轉(zhuǎn)發(fā)網(wǎng)絡(luò)封包,避免了sdn流控制器處理新路由封包帶來(lái)的時(shí)延,提高了sdn應(yīng)對(duì)業(yè)務(wù)應(yīng)用和網(wǎng)絡(luò)拓?fù)渥兓撵`敏度;
(3)利用linux容器的特點(diǎn),采用支持主備nos容器的linux系統(tǒng)實(shí)現(xiàn)單一網(wǎng)絡(luò)設(shè)備的溫復(fù)位,增加了網(wǎng)絡(luò)設(shè)備的可用性。
附圖說(shuō)明
圖1為現(xiàn)有sdn交換機(jī)架構(gòu)。
圖2為本發(fā)明的sdn交換機(jī)架構(gòu)。
圖3為支持主備nos容器的linux系統(tǒng)的sdn交換機(jī)。
具體實(shí)施方式
下面結(jié)合附圖對(duì)發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。
本發(fā)明為克服現(xiàn)有sdn交換機(jī)架構(gòu)性能不足的缺陷,將原先sdn控制器內(nèi)從路由表轉(zhuǎn)成多級(jí)轉(zhuǎn)發(fā)流表指令這一個(gè)功能分解成下面兩個(gè)步驟:結(jié)合sdn交換機(jī)上傳的路由封包以及北向接口接收的業(yè)務(wù)應(yīng)用請(qǐng)求生成路由表,然后將路由表轉(zhuǎn)成單級(jí)虛擬轉(zhuǎn)發(fā)流表指令(如圖2標(biāo)號(hào)①所示);sdn交換機(jī)內(nèi)的cpu子板將單級(jí)虛擬轉(zhuǎn)發(fā)流表指令轉(zhuǎn)換成多級(jí)轉(zhuǎn)發(fā)流表指令(如圖2標(biāo)號(hào)②所示)。原先從路由表轉(zhuǎn)成多級(jí)轉(zhuǎn)發(fā)流表需要發(fā)送多個(gè)指令,而本申請(qǐng)從路由表轉(zhuǎn)成單級(jí)虛擬轉(zhuǎn)發(fā)流表只需要發(fā)送一個(gè)指令,減輕sdn控制器的計(jì)算負(fù)荷。這樣改進(jìn)后,sdn控制器與sdn交換機(jī)之間對(duì)應(yīng)的每個(gè)路由表的界面是一個(gè)流表指令而非多個(gè)流表指令,減少i/o的流量。
為克服現(xiàn)有sdn交換機(jī)架構(gòu)存在靈敏度不夠的缺陷,本申請(qǐng)?jiān)趕dn交換機(jī)內(nèi)增加臨時(shí)路由表。當(dāng)sdn交換機(jī)收到新的路由封包時(shí),除了將新的路由封包轉(zhuǎn)發(fā)給sdn控制器外,它也會(huì)將根據(jù)內(nèi)建的路由政策建立的新路由存到臨時(shí)路由表內(nèi)(如圖2標(biāo)號(hào)③所示),在還沒(méi)有從sdn控制器接到新的單級(jí)虛擬轉(zhuǎn)發(fā)流表指令前,sdn交換機(jī)會(huì)一直根據(jù)臨時(shí)路由表的內(nèi)容來(lái)轉(zhuǎn)發(fā)網(wǎng)絡(luò)封包,這樣sdn交換機(jī)構(gòu)架就不會(huì)因?yàn)閟dn控制器的時(shí)延而不夠靈敏。
為了克服現(xiàn)有sdn交換機(jī)架構(gòu)中網(wǎng)絡(luò)設(shè)備可用度不夠的缺陷,本申請(qǐng)將臨時(shí)路由表、單級(jí)虛擬轉(zhuǎn)多級(jí)流表程序及nos獨(dú)立出來(lái),以linux支持的容器方式運(yùn)行。容器是一種虛擬化技術(shù),一臺(tái)網(wǎng)絡(luò)設(shè)備可以同時(shí)運(yùn)行多個(gè)容器,每個(gè)容器可以是不同版本的應(yīng)用程序,不同版本的應(yīng)用程序?qū)崿F(xiàn)不同的特性,但一個(gè)時(shí)刻只能有1個(gè)容器內(nèi)的nos能夠操縱網(wǎng)絡(luò)設(shè)備。
因?yàn)閘inux容器的特點(diǎn),不同版本nos對(duì)網(wǎng)絡(luò)設(shè)備的操縱權(quán)變更可以在1秒內(nèi)完成。如圖3所示,故障處理的復(fù)位應(yīng)用程序工作就可以通過(guò)兩個(gè)容器(主選容器及備選容器)之間的切換來(lái)完成,切換之后獲得操縱權(quán)的容器會(huì)接管網(wǎng)絡(luò)設(shè)備,這個(gè)時(shí)候重新收集網(wǎng)絡(luò)設(shè)備信息再生成控制網(wǎng)絡(luò)設(shè)備運(yùn)行的信息,可以直接掠過(guò)重新加載集成系統(tǒng)所需要的時(shí)間,這種特性實(shí)現(xiàn)了單一網(wǎng)絡(luò)設(shè)備應(yīng)用程序溫復(fù)位,因而增加了網(wǎng)絡(luò)設(shè)備的可用性。