本申請(qǐng)要求2014年3月11日由Huaimo Chen等人遞交的發(fā)明名稱為“虛擬專用網(wǎng)絡(luò)遷移和集中控制網(wǎng)絡(luò)管理(Virtual Private Network Migration and Management in Centrally Controlled Networks)”的第14/204,827號(hào)美國(guó)非臨時(shí)專利申請(qǐng)案的在先申請(qǐng)優(yōu)先權(quán),該在先申請(qǐng)的全部?jī)?nèi)容以引入的方式并入本文本中。
技術(shù)領(lǐng)域
本發(fā)明大體上涉及虛擬專用網(wǎng)絡(luò)(virtual private network,VPN),在具體實(shí)施例中,涉及VPN遷移和集中控制網(wǎng)絡(luò)管理的技術(shù)和機(jī)制。
背景技術(shù):
虛擬專用網(wǎng)絡(luò)(virtual private network,VPN)可指跨業(yè)務(wù)供應(yīng)商的網(wǎng)絡(luò)的專用網(wǎng)絡(luò)擴(kuò)展。VPN可允許計(jì)算機(jī)(或其它網(wǎng)絡(luò)節(jié)點(diǎn))與跨共享網(wǎng)絡(luò)的專用網(wǎng)絡(luò)進(jìn)行通信,猶如該計(jì)算機(jī)直接連接到專用網(wǎng)絡(luò),從而從專用網(wǎng)絡(luò)的功能、安全性和/或管理政策獲益。
典型的VPN利用網(wǎng)絡(luò)的分布式控制。然而,隨著軟件定義網(wǎng)絡(luò)(software-defined networking,SDN)日益受到關(guān)注,網(wǎng)絡(luò)的集中控制因網(wǎng)絡(luò)的集中控制是SDN的一個(gè)特征而正變得更受關(guān)注。然而,目前尚不知道如何將分布式或分散式VPN遷移到集中控制的VPN或如何管理集中控制VPN。因此,需要將VPN的控制從分布式控制向集中式控制遷移,尤其是在不中斷業(yè)務(wù)的情況下。
技術(shù)實(shí)現(xiàn)要素:
本文公開(kāi)了將分散式VPN遷移至由中央控制器控制的VPN的示例實(shí)施例。遷移可在不中斷業(yè)務(wù)的情況下進(jìn)行。在遷移之前,本地邊界網(wǎng)關(guān)協(xié)議(border gateway protocol,BGP)堆棧存在于每一個(gè)邊緣節(jié)點(diǎn)上,并可用于在分散式網(wǎng)絡(luò)中分配VPN路由和標(biāo)簽。在示例實(shí)施例中,中央控制器可管理兩個(gè)軟件代理在骨干網(wǎng)絡(luò)中的每個(gè)邊緣節(jié)點(diǎn)上的安裝,其中在該骨干網(wǎng)絡(luò)上已建立了至少一個(gè)VPN。第一邊緣節(jié)點(diǎn)上的第一軟件代理可接管與第二邊緣節(jié)點(diǎn)的本地BGP對(duì)等會(huì)話。接管所述BGP對(duì)等會(huì)話后,可能不需要任何BGP軟件。所述第一邊緣節(jié)點(diǎn)可耦合到第一站點(diǎn),所述第二邊緣節(jié)點(diǎn)可耦合到第二站點(diǎn)。第二軟件代理可形成與所述第一站點(diǎn)的鄰接以及所述第一站點(diǎn)、所述中央控制器和所述第二邊緣節(jié)點(diǎn)之間通信標(biāo)簽和路由信息。每個(gè)邊緣節(jié)點(diǎn)上的軟件代理已安裝并且每個(gè)站點(diǎn)的信息已分配到所述中央控制器后,可能不再需要BGP會(huì)話,因?yàn)锽GP會(huì)話的職責(zé)由所述中央控制器完成。因此,從邊緣節(jié)點(diǎn)移除負(fù)責(zé)BGP會(huì)話的代理,而提供與中央控制器的通信的軟件代理仍保留在邊緣節(jié)點(diǎn)上,以管理已遷移的至少一個(gè)VPN。
附圖說(shuō)明
為了更透徹地理解本發(fā)明,現(xiàn)參閱結(jié)合附圖和具體實(shí)施方式而描述的以下簡(jiǎn)要說(shuō)明,其中的相同參考標(biāo)號(hào)表示相同部分。
圖1為網(wǎng)絡(luò)的示例實(shí)施例。
圖2為網(wǎng)絡(luò)的示例實(shí)施例。
圖3為方法的示例實(shí)施例的流程圖。
圖4為網(wǎng)絡(luò)的示例實(shí)施例。
圖5為邊緣節(jié)點(diǎn)的示例實(shí)施例。
圖6為中央控制器的示例實(shí)施例。
具體實(shí)施方式
首先應(yīng)理解,盡管下文提供一項(xiàng)或多項(xiàng)示例實(shí)施例的說(shuō)明性實(shí)施方案,但所公開(kāi)的系統(tǒng)和/或方法可使用任何數(shù)目的技術(shù)來(lái)實(shí)施,無(wú)論該技術(shù)是當(dāng)前已知還是現(xiàn)有的。本發(fā)明決不應(yīng)限于下文所說(shuō)明的說(shuō)明性實(shí)施方案、附圖和技術(shù),包括本文所說(shuō)明并描述的示例性設(shè)計(jì)和實(shí)施方案,而是可在所附權(quán)利要求書(shū)的范圍以及其等效物的完整范圍內(nèi)修改。
圖1為網(wǎng)絡(luò)100的示例實(shí)施例,在網(wǎng)絡(luò)100中可建立至少一個(gè)VPN。網(wǎng)絡(luò)100包括本地網(wǎng)絡(luò)140,有時(shí)稱為站點(diǎn)A的,本地網(wǎng)絡(luò)150,有時(shí)稱為站點(diǎn)B,以及骨干網(wǎng)絡(luò)130。骨干網(wǎng)絡(luò)130可以是任何類型的骨干網(wǎng)絡(luò),例如,移動(dòng)回傳網(wǎng)絡(luò)。骨干網(wǎng)絡(luò)130包括邊緣節(jié)點(diǎn),表示為節(jié)點(diǎn)A 110和節(jié)點(diǎn)B 120,以及內(nèi)部節(jié)點(diǎn)105。在本文中,骨干網(wǎng)絡(luò)130中的節(jié)點(diǎn)可稱為骨干節(jié)點(diǎn)。出于說(shuō)明目的,示出了三個(gè)內(nèi)部節(jié)點(diǎn)105,但也可存在任何數(shù)目的內(nèi)部節(jié)點(diǎn)。本文使用的“節(jié)點(diǎn)”可與“路由器”或“交換機(jī)”同義。除了邊緣節(jié)點(diǎn)115和125之外,本地網(wǎng)絡(luò)140和150各自還可包括一個(gè)或多個(gè)節(jié)點(diǎn)或終端設(shè)備(未示出)。如果骨干網(wǎng)絡(luò)130是移動(dòng)回程網(wǎng)絡(luò),則節(jié)點(diǎn)A 110可以是基站側(cè)網(wǎng)關(guān),內(nèi)部節(jié)點(diǎn)105可以是匯聚側(cè)網(wǎng)關(guān),節(jié)點(diǎn)B 120可以是無(wú)線網(wǎng)絡(luò)控制器(radio network controller,RNC)側(cè)網(wǎng)關(guān)。
VPN可經(jīng)由骨干網(wǎng)絡(luò)130在本地網(wǎng)絡(luò)140與150之間建立。VPN可以是使用如本領(lǐng)域普通技術(shù)人員所理解的多協(xié)議標(biāo)簽交換(multiprocotol label switching,MPLS)和邊界網(wǎng)關(guān)協(xié)議(border gateway protocol,BGP)建立的層3(layer 3,L3)VPN。例如,可為VPN中的每個(gè)路由分配一個(gè)MPLS標(biāo)簽,且當(dāng)BGP分配VPN路由時(shí),BGP也為該路由分配MPLS標(biāo)簽。VPN可通過(guò)經(jīng)由路徑連接局域網(wǎng)140和150,該路徑示出通過(guò)內(nèi)部節(jié)點(diǎn)105連接節(jié)點(diǎn)A 110和B 120。這樣,VPN節(jié)點(diǎn)A 110和節(jié)點(diǎn)B 120可稱為VPN供應(yīng)商邊緣節(jié)點(diǎn)。VPN的控制以分布式方式進(jìn)行。
本文公開(kāi)了在不中斷業(yè)務(wù)的情況下將一個(gè)或多個(gè)VPN的控制從分布式控制遷移到集中式控制并對(duì)它們進(jìn)行管理的系統(tǒng)、方法、裝置和計(jì)算機(jī)程序產(chǎn)品。遷移之后,服務(wù)區(qū)中的所有VPN可由中央控制器控制。骨干節(jié)點(diǎn)上的本地協(xié)議,例如BGP,可替換為由中央控制器安裝在骨干節(jié)點(diǎn)上用于遷移一個(gè)或多個(gè)VPN的通信軟件。遷移完成后,可移除通信軟件的一部分,VPN可由中央控制器管理,其中骨干節(jié)點(diǎn)為這些VPN的一部分。
軟件定義網(wǎng)絡(luò)(software-defined networking,SDN)是一種較新的技術(shù),其中,除其它事物外,引入了中央控制器的概念。常規(guī)分組網(wǎng)絡(luò)利用分布式控制,但在網(wǎng)絡(luò)控制的SDN部分中可在中央控制器的控制下放置。由中央控制器控制的網(wǎng)絡(luò)部分可稱為SDN域,不在中央控制器的控制下的網(wǎng)絡(luò)部分可稱為非SDN域。
圖2是可與網(wǎng)絡(luò)100相同的網(wǎng)絡(luò)200的示例實(shí)施例,除了引入了中央控制器210。為簡(jiǎn)明起見(jiàn),不再對(duì)與網(wǎng)絡(luò)100的元件相同的網(wǎng)絡(luò)200的元件進(jìn)行描述。除了前面描述的元件,網(wǎng)絡(luò)200還包括如圖2所示的中央控制器210。中央控制器210能夠與節(jié)點(diǎn)A 110、節(jié)點(diǎn)B 120以及內(nèi)部節(jié)點(diǎn)105中的每一個(gè)進(jìn)行通信,對(duì)在骨干網(wǎng)絡(luò)130上運(yùn)行的VPN進(jìn)行遷移,并連接本地網(wǎng)絡(luò)140和150。存在為本領(lǐng)域普通技術(shù)人員所知多種方式使中央控制器210可與節(jié)點(diǎn)A 110、節(jié)點(diǎn)B 120以及內(nèi)部節(jié)點(diǎn)105進(jìn)行通信,這些方式之一是通過(guò)使用OpenFlow協(xié)議實(shí)現(xiàn)。
圖3為遷移VPN的方法300的示例實(shí)施例的流程圖。圖3的方框結(jié)合圖2進(jìn)行論述,作為可執(zhí)行方法300中的步驟的遷移VPN的示例網(wǎng)絡(luò)架構(gòu)。步驟310利用中央控制器和第一邊緣節(jié)點(diǎn),例如,分別為中央控制器210和節(jié)點(diǎn)A 110,的協(xié)調(diào)努力進(jìn)行。在步驟310中,中央控制器發(fā)起并管理第一軟件代理和第二軟件代理在第一邊緣節(jié)點(diǎn)上的安裝。第一和第二軟件代理的安裝可作為在線業(yè)務(wù)軟件升級(jí)(in-service software upgrade,ISSU)來(lái)進(jìn)行。中央控制器可將第一軟件代理和第二軟件代理發(fā)送給第一邊緣節(jié)點(diǎn)以在第一邊緣節(jié)點(diǎn)上進(jìn)行安裝。第一邊緣節(jié)點(diǎn)可負(fù)責(zé)協(xié)助提供跨骨干網(wǎng)絡(luò)130等骨干網(wǎng)絡(luò)的VPN。第一軟件代理可稱為VPN后向兼容代理(backward compatible agent for a VPN,BCAV),第二軟件代理可稱為站點(diǎn)后向兼容代理(backward compatible agent for a site,BCAS)。軟件代理還可稱為客戶端。
第一軟件代理執(zhí)行或使第一邊緣節(jié)點(diǎn),如節(jié)點(diǎn)A 110,接管與遠(yuǎn)程VPN邊緣節(jié)點(diǎn),例如節(jié)點(diǎn)B 120,的BGP對(duì)等會(huì)話。遠(yuǎn)程VPN邊緣節(jié)點(diǎn)也可稱為第二邊緣節(jié)點(diǎn)。BGP對(duì)等會(huì)話可用于在第一邊緣節(jié)點(diǎn)與遠(yuǎn)程VPN邊緣節(jié)點(diǎn)之間交換信息。第一軟件代理可以是駐留在第一邊緣節(jié)點(diǎn)上的本地BGP軟件的替換或替代,BGP對(duì)等會(huì)話可使用本地BGP軟件替換運(yùn)行的BGP對(duì)等會(huì)話(其可稱為本地BGP對(duì)等會(huì)話)。在一項(xiàng)實(shí)施例中,第一軟件代理執(zhí)行或使第一邊緣節(jié)點(diǎn)執(zhí)行以下任務(wù):(1)從中央控制器獲得VPN的VPN標(biāo)簽,并將該標(biāo)簽發(fā)送給遠(yuǎn)程VPN邊緣節(jié)點(diǎn)(例如,經(jīng)由BGP對(duì)等會(huì)話);(2)從遠(yuǎn)程VPN邊緣節(jié)點(diǎn)接收VPN標(biāo)簽(例如,經(jīng)由BGP對(duì)等會(huì)話),并將該標(biāo)簽發(fā)送給中央控制器;以及(3)從遠(yuǎn)程VPN邊緣節(jié)點(diǎn)接收遠(yuǎn)程VPN路由(例如,經(jīng)由BGP對(duì)等會(huì)話),并將它們發(fā)送給中央控制器。遠(yuǎn)程VPN路由可以是遠(yuǎn)程VPN邊緣節(jié)點(diǎn)連接到的站點(diǎn)的VPN路由。在另一項(xiàng)實(shí)施例中,第一軟件代理執(zhí)行或使第一邊緣節(jié)點(diǎn)執(zhí)行以下任務(wù):(1)從中央控制器獲得VPN路由的VPN標(biāo)簽,并將VPN路由的該標(biāo)簽發(fā)送給遠(yuǎn)程VPN邊緣節(jié)點(diǎn);以及(2)從遠(yuǎn)程VPN邊緣節(jié)點(diǎn)接收VPN路由的VPN標(biāo)簽,并將遠(yuǎn)程VPN路由的該標(biāo)簽發(fā)送給中央控制器。
第二軟件代理執(zhí)行或使第一邊緣節(jié)點(diǎn)執(zhí)行以下任務(wù):(1)接管與第一邊緣節(jié)點(diǎn)連接的第一站點(diǎn),例如站點(diǎn)A 140,的協(xié)議鄰接;(2)通過(guò)協(xié)議鄰接從站點(diǎn)獲得VPN路由,并將路由發(fā)送給中央控制器;以及(3)經(jīng)由中央控制器從遠(yuǎn)程VPN邊緣節(jié)點(diǎn)接收VPN路由,并將它們發(fā)送給該站點(diǎn)。
在步驟310中,中央控制器可控制(第一邊緣節(jié)點(diǎn)中的)第一軟件代理,用于接管與第二邊緣節(jié)點(diǎn)的本地BGP對(duì)等會(huì)話(即,將本地BGP對(duì)等會(huì)話平滑遷移到由第一軟件代理控制的BGP對(duì)等會(huì)話),并控制第二軟件代理,用于接管與站點(diǎn)的本地協(xié)議鄰接(即,將本地鄰接平滑遷移到由第二軟件代理控制的鄰接)。中央控制器可經(jīng)由ISSU在第一邊緣節(jié)點(diǎn)上安裝第一軟件代理和第二軟件代理。在實(shí)施例中,中央控制器可為VPN分配VPN標(biāo)簽并將其發(fā)送給第一軟件代理,以及將本地VPN路由發(fā)送給第一軟件代理。中央控制器還可:(1)從第一軟件代理接收第二邊緣節(jié)點(diǎn)的VPN標(biāo)簽;(2)當(dāng)接收新的遠(yuǎn)程VPN路由時(shí),將轉(zhuǎn)發(fā)項(xiàng)添加到第一邊緣節(jié)點(diǎn)中的VPN路由轉(zhuǎn)發(fā)(VRF)表中;以及(3)當(dāng)接收遠(yuǎn)程VPN路由撤銷時(shí),從第一邊緣節(jié)點(diǎn)中的VRF刪除轉(zhuǎn)發(fā)項(xiàng)。在另一項(xiàng)實(shí)施例中,中央控制器可為VPN路由分配VPN標(biāo)簽并將具有VPN標(biāo)簽的VPN路由發(fā)送給第一軟件代理。中央控制器還可:(1)從第一軟件代理為第二邊緣節(jié)點(diǎn)接收具有VPN標(biāo)簽的VPN路由;(2)如果VPN路由是新路由,則將轉(zhuǎn)發(fā)項(xiàng)添加到第一邊緣節(jié)點(diǎn)中的VRF表中;以及(3)當(dāng)接收遠(yuǎn)程VPN路由撤銷時(shí),從第一邊緣節(jié)點(diǎn)中的VRF刪除轉(zhuǎn)發(fā)項(xiàng)。需要注意的一個(gè)含義是,來(lái)自第二邊緣路由器的遠(yuǎn)程VPN路由經(jīng)由第一邊緣路由器中的第一軟件代理傳送給中央控制器。然后,中央控制器發(fā)送遠(yuǎn)程VPN路由給第二軟件代理,第二個(gè)軟件代理將它們發(fā)送給第一站點(diǎn)。可在完成步驟340后添加新的遠(yuǎn)程VPN路由。VRF表可存儲(chǔ)在第一邊緣節(jié)點(diǎn)中,并由第一邊緣節(jié)點(diǎn)用來(lái)路由和/或轉(zhuǎn)發(fā)第一邊緣節(jié)點(diǎn)接收的VPN報(bào)文。
在步驟320中,可在骨干網(wǎng)絡(luò)的內(nèi)部節(jié)點(diǎn),例如,圖1所示的節(jié)點(diǎn)105,上進(jìn)行ISSU,以將內(nèi)部節(jié)點(diǎn)上的VPN的控制移交給中央控制器。在內(nèi)部節(jié)點(diǎn)遷移期間,第一邊緣節(jié)點(diǎn)與第二邊緣節(jié)點(diǎn)之間的MPLS LSP隧道得以維持且不受影響。與此同時(shí),第一邊緣節(jié)點(diǎn)上的第一和第二軟件代理繼續(xù)操作,例如,在內(nèi)部節(jié)點(diǎn)升級(jí)期間維持第一與第二邊緣節(jié)點(diǎn)之間的BGP會(huì)話。
步驟330通過(guò)中央控制器和第二邊緣節(jié)點(diǎn),例如,節(jié)點(diǎn)B 120,的協(xié)調(diào)努力進(jìn)行。在步驟330中,中央控制器發(fā)起并管理第三軟件代理和第四軟件代理在第二邊緣節(jié)點(diǎn)上的安裝。第三和第四軟件代理的安裝可作為在線業(yè)務(wù)軟件升級(jí)(in-service software upgrade,ISSU)來(lái)進(jìn)行。第二邊緣節(jié)點(diǎn)可負(fù)責(zé)協(xié)助提供跨網(wǎng)絡(luò)130等骨干網(wǎng)絡(luò)的VPN。第三軟件代理可以是BCAV,第四軟件代理可以是BCAS。第三軟件代理可在第二邊緣節(jié)點(diǎn)上執(zhí)行與第一軟件代理在第一邊緣節(jié)點(diǎn)上執(zhí)行的功能相同的功能。此外,第四軟件代理可在第二邊緣節(jié)點(diǎn)上執(zhí)行與第二軟件代理在第一邊緣節(jié)點(diǎn)上執(zhí)行的功能相同的功能。
第三軟件代理執(zhí)行或者使第二邊緣節(jié)點(diǎn)接管與遠(yuǎn)程VPN邊緣節(jié)點(diǎn)(即,第一邊緣節(jié)點(diǎn)),例如,節(jié)點(diǎn)A 110,的BGP對(duì)等會(huì)話。注意的是,在步驟310中,第一邊緣節(jié)點(diǎn)接管與第二個(gè)邊緣節(jié)點(diǎn)的BGP對(duì)等會(huì)話。步驟310中的對(duì)等會(huì)話是使用第二邊緣節(jié)點(diǎn)的本地BGP能力的與第二邊緣節(jié)點(diǎn)的對(duì)等會(huì)話。第三軟件代理維持與第一邊緣節(jié)點(diǎn)的BGP對(duì)等會(huì)話,同時(shí)允許從第二邊緣節(jié)點(diǎn)中移除本地BGP能力。完成步驟340之后,在中央控制器能夠執(zhí)行以下操作后,由于不再需要第三軟件代理,從第二邊緣節(jié)點(diǎn)移除或刪除第三軟件代理:(1)從第一邊緣節(jié)點(diǎn)上的第二軟件代理接收VPN路由,并將該VPN路由發(fā)送給第二邊緣節(jié)點(diǎn)上的第四軟件代理;以及(2)從第二邊緣節(jié)點(diǎn)上的第四軟件代理接收VPN路由,并將該VPN路由發(fā)送給第一邊緣節(jié)點(diǎn)上的第二軟件代理。在一項(xiàng)實(shí)施例中,第三軟件代理還執(zhí)行或使第二邊緣節(jié)點(diǎn)執(zhí)行以下任務(wù):(1)從中央控制器獲得VPN的VPN標(biāo)簽,并將該標(biāo)簽發(fā)送給遠(yuǎn)程VPN邊緣節(jié)點(diǎn);(2)從遠(yuǎn)程VPN邊緣節(jié)點(diǎn)接收VPN標(biāo)簽,并將該標(biāo)簽發(fā)送給中央控制器;以及(3)從遠(yuǎn)程VPN邊緣節(jié)點(diǎn)接收遠(yuǎn)程VPN路由,并將它們發(fā)送給中央控制器。在另一項(xiàng)實(shí)施例中,第三軟件代理執(zhí)行或使第二邊緣節(jié)點(diǎn)執(zhí)行以下任務(wù):(1)從中央控制器獲得VPN路由的VPN標(biāo)簽,并將該具有標(biāo)簽的VPN路由發(fā)送給遠(yuǎn)程VPN邊緣節(jié)點(diǎn);以及(2)從遠(yuǎn)程VPN邊緣節(jié)點(diǎn)接收具有VPN標(biāo)簽的VPN路由,并將該具有VPN標(biāo)簽的VPN路由發(fā)送給中央控制器。
第四軟件代理執(zhí)行或使第二邊緣節(jié)點(diǎn)執(zhí)行以下任務(wù):(1)接管與第二邊緣節(jié)點(diǎn)連接到的第二站點(diǎn),例如,站點(diǎn)B 150,的協(xié)議鄰接;(2)通過(guò)協(xié)議鄰接從第二站點(diǎn)獲得VPN路由,并將路由發(fā)送給中央控制器;以及(3)經(jīng)由中央控制器從第一邊緣節(jié)點(diǎn)接收路由,并將它們發(fā)送給第二站點(diǎn)。
在步驟330中,中央控制器可控制(第二邊緣節(jié)點(diǎn)中的)第三軟件代理,用于接管與第一邊緣節(jié)點(diǎn)的BGP對(duì)等會(huì)話,并控制第四軟件代理,用于接管與第二站點(diǎn)的協(xié)議鄰接。中央控制器可經(jīng)由ISSU安裝第二邊緣節(jié)點(diǎn)上的第三軟件代理和第四軟件代理。在一項(xiàng)實(shí)施例中,中央控制器可執(zhí)行以下任務(wù):(1)為VPN分配VPN標(biāo)簽,并將其發(fā)送給第三軟件代理;(2)將本地VPN路由發(fā)送給第三軟件代理;(3)從第三軟件代理為第一邊緣節(jié)點(diǎn)接收VPN標(biāo)簽;(4)當(dāng)接收新的遠(yuǎn)程VPN路由時(shí),將轉(zhuǎn)發(fā)項(xiàng)添加到第二邊緣節(jié)點(diǎn)的VRF表中;以及(5)當(dāng)接收遠(yuǎn)程VPN路由撤銷時(shí),從第二VPN邊緣節(jié)點(diǎn)中的VRF刪除轉(zhuǎn)發(fā)項(xiàng)。在另一項(xiàng)實(shí)施例中,中央控制器可執(zhí)行以下任務(wù):(1)為VPN路由分配VPN標(biāo)簽,并將具有VPN標(biāo)簽的VPN路由發(fā)送給第三軟件代理;(2)從第三軟件代理為第一邊緣節(jié)點(diǎn)接收具有VPN標(biāo)簽的VPN路由;(3)如果VPN路由是新路由,則將轉(zhuǎn)發(fā)項(xiàng)添加到第二邊緣節(jié)點(diǎn)中的VRF表中;以及(4)當(dāng)接收遠(yuǎn)程VPN路由撤銷時(shí),從第二邊緣節(jié)點(diǎn)中的VRF刪除轉(zhuǎn)發(fā)項(xiàng)。需要注意的一個(gè)含義是,來(lái)自第一邊緣路由器的遠(yuǎn)程VPN路由經(jīng)由第二邊緣路由器中的第三軟件代理傳送給中央控制器。然后,中央控制器將遠(yuǎn)程VPN路由發(fā)送給第四軟件代理,第四個(gè)軟件代理將它們發(fā)送給第二站點(diǎn)。
第一和第三軟件代理可稱為相同軟件代理(即,BCAV)的不同實(shí)例。同樣,第二和第四軟件代理可稱為相同軟件代理(即,BCAS)的不同實(shí)例。BCAV的一個(gè)目的是從網(wǎng)絡(luò)中逐個(gè)節(jié)點(diǎn)移除協(xié)議,例如,BGP,并將站點(diǎn)信息傳送到中央控制器。在步驟330中,在第二邊緣節(jié)點(diǎn)上安裝第三軟件代理之后,除了維持第一邊緣節(jié)點(diǎn)與第二邊緣節(jié)點(diǎn)之間的會(huì)話外,第二邊緣節(jié)點(diǎn)上的第三軟件代理還向中央控制器發(fā)送關(guān)于站點(diǎn)A的信息。此外,自從最初由第二邊緣節(jié)點(diǎn)上的本地BGP維持的BGP對(duì)等會(huì)話由第二邊緣節(jié)點(diǎn)上的第三軟件代理維持后,第二邊緣節(jié)點(diǎn)上的本地BGP能力不再需要且可移除。
執(zhí)行上述步驟310至330后,執(zhí)行步驟340,在該步驟中,可刪除第一與第二邊緣節(jié)點(diǎn)(例如,節(jié)點(diǎn)A110與節(jié)點(diǎn)B 120)之間的對(duì)等會(huì)話,因?yàn)椴辉傩枰搶?duì)等會(huì)話。此外,可分別從第一和第二邊緣節(jié)點(diǎn)刪除第一軟件代理和第三軟件代理,因?yàn)椴辉傩枰鼈儭?/p>
完成步驟310至340之后,可完成第一與第二邊緣節(jié)點(diǎn)之間的VPN的遷移。第二軟件代理仍可保留在第一邊緣節(jié)點(diǎn)上,第四軟件代理仍可保留在第二邊緣節(jié)點(diǎn)上。第二軟件代理在第一邊緣節(jié)點(diǎn)上運(yùn)行,并在遷移之后執(zhí)行以下任務(wù):(1)維持連接到第一邊緣節(jié)點(diǎn)的站點(diǎn)的協(xié)議鄰接;(2)通過(guò)協(xié)議鄰接從站點(diǎn)獲得更新后的路由,并將它們發(fā)送給中央控制器;以及(3)從中央控制器接收(從第二邊緣節(jié)點(diǎn)獲得的)路由,并將它們發(fā)送給站點(diǎn)。由中央控制器控制的網(wǎng)絡(luò)部分可稱為SDN域。因此,在遷移之后,骨干網(wǎng)絡(luò),如骨干網(wǎng)絡(luò)130,可稱為SDN域,而在遷移期間,已經(jīng)置于中央控制器的控制下的節(jié)點(diǎn)可以是SDN域,不在中央控制器的控制下的節(jié)點(diǎn)可稱為非SDN域。隨著遷移進(jìn)行到中央控制器,SDN域增長(zhǎng),非SDN域收縮。
遷移之后,中央控制器為現(xiàn)有VPN執(zhí)行以下任務(wù):(1)控制用于維持與站點(diǎn)的協(xié)議鄰接的第二軟件代理;(2)從第二軟件代理接收路由,并將路由發(fā)送給第二邊緣節(jié)點(diǎn)上的第四軟件代理;(3)當(dāng)接收到新路由時(shí),將轉(zhuǎn)發(fā)項(xiàng)添加到第二邊緣節(jié)點(diǎn)上的VRF中;以及(4)當(dāng)接收路由撤退時(shí),從VRF刪除轉(zhuǎn)發(fā)項(xiàng)。在一項(xiàng)實(shí)施例中,除了上述任務(wù),對(duì)于新配置的VPN,中央控制器執(zhí)行以下任務(wù):(1)為VPN的VPN節(jié)點(diǎn)分配VPN標(biāo)簽,并針對(duì)其它VPN節(jié)點(diǎn)將該標(biāo)簽存儲(chǔ)在同一VPN中;以及(2)當(dāng)為VPN路由更新VPN邊緣節(jié)點(diǎn)中的VRF時(shí),使用該VPN標(biāo)簽。例如,對(duì)于網(wǎng)絡(luò)200,對(duì)于新配置的VPN,中央控制器可:(1)為第一VPN邊緣節(jié)點(diǎn)分配VPN標(biāo)簽,并針對(duì)第二邊緣VPN節(jié)點(diǎn)將該標(biāo)簽存儲(chǔ)在同一VPN中;以及(2)當(dāng)為VPN路由更新第一和第二VPN邊緣節(jié)點(diǎn)中的VRF時(shí),使用該VPN標(biāo)簽。在另一項(xiàng)實(shí)施例中,對(duì)于新配置的VPN,中央控制器執(zhí)行以下任務(wù):(1)為VPN中的每一個(gè)VPN路由的VPN節(jié)點(diǎn)分配VPN標(biāo)簽,并針對(duì)其它VPN節(jié)點(diǎn)將該標(biāo)簽存儲(chǔ)在同一VPN中;以及(2)當(dāng)為VPN路由更新VPN邊緣節(jié)點(diǎn)中的VRF時(shí),使用該VPN標(biāo)簽。
圖4是已執(zhí)行步驟310之后的網(wǎng)絡(luò)200的示例實(shí)施例。如上所論述,在步驟310中,可將第一和第二軟件代理安裝在第一邊緣節(jié)點(diǎn)上。中央控制器210可向節(jié)點(diǎn)A110提供第一和第二軟件代理。參照?qǐng)D4中的網(wǎng)絡(luò)200來(lái)說(shuō)明步驟310,節(jié)點(diǎn)B 120與中央控制器210之間的以及邊緣節(jié)點(diǎn)115與中央控制器210之間的通信路徑示為虛線。因此,可在邊緣節(jié)點(diǎn)115與中央控制器210之間進(jìn)行信息通信,如由第二軟件代理所促成的,可在節(jié)點(diǎn)B 120與中央控制器之間進(jìn)行信息通信,如由第一軟件代理所促成的。在步驟340中,因?yàn)橹醒肟刂破?10在節(jié)點(diǎn)A 110與節(jié)點(diǎn)B 120之間傳播信息,所以不再需要第一軟件代理提供這些節(jié)點(diǎn)之間的通信,因而移除第一軟件代理。
圖5是邊緣節(jié)點(diǎn)400的示例實(shí)施例。邊緣節(jié)點(diǎn)400包括如圖5所示配置的端口410、發(fā)射器/接收器(Tx/Rx)或收發(fā)器412、處理器420及存儲(chǔ)器422。邊緣節(jié)點(diǎn)400可以是能夠支持一個(gè)或多個(gè)VPN的骨干網(wǎng)絡(luò)中的邊緣節(jié)點(diǎn)。邊緣節(jié)點(diǎn)400可,例如,配置為前面所描述的節(jié)點(diǎn)A 110或節(jié)點(diǎn)B120。邊緣節(jié)點(diǎn)400可包括耦合到收發(fā)器412的一個(gè)或多個(gè)端口410。盡管只示出一個(gè)收發(fā)器412用于說(shuō)明性目的,但是可能有超過(guò)一個(gè)收發(fā)器,例如,每個(gè)端口一個(gè)收發(fā)器。邊緣節(jié)點(diǎn)400可包括處理器420,其耦合到收發(fā)器412并用于處理報(bào)文,或用于確定向哪些網(wǎng)絡(luò)組件發(fā)送報(bào)文。處理器420可使用硬件或硬件和軟件的組合來(lái)實(shí)施。盡管示為單個(gè)處理器,但處理器420并不限于此并可包括多個(gè)處理器。處理器420可實(shí)施為一個(gè)或多個(gè)中央處理器(central processor unit,CPU)芯片、核(例如,多核處理器)、現(xiàn)場(chǎng)可編程門(mén)陣列(field-programmable gate array,F(xiàn)PGA)、專用集成電路(application specific integrated circuit,ASIC),和/或數(shù)字信號(hào)處理器(digital signal processor,DSP)。
邊緣節(jié)點(diǎn)400還可包括存儲(chǔ)器422。存儲(chǔ)器422可用于存儲(chǔ)用于執(zhí)行本文所描述的方法的指令,例如,用于軟件代理和轉(zhuǎn)發(fā)并路由表的指令。存儲(chǔ)器422可存儲(chǔ)用于第一軟件代理440的指令、用于第二軟件代理442和VRF 444的指令。第一軟件代理440可與前面所論述的BCAV相同,第二軟件代理442可與BCAS相同。軟件代理440和442的安裝可由中央控制器210等中央控制器控制。此外,如前面所描述,第一軟件代理440可在被移除之前安裝一段時(shí)間。存儲(chǔ)器422可包括輔助存儲(chǔ)器、隨機(jī)存取存儲(chǔ)器(random access memory,RAM),和/或只讀存儲(chǔ)器(read-only memory,ROM)和/或任何其它類型的存儲(chǔ)器。輔助存儲(chǔ)器可包括一個(gè)或多個(gè)磁盤(pán)驅(qū)動(dòng)器或磁帶驅(qū)動(dòng)器,用于數(shù)據(jù)的非易失性存儲(chǔ),而且如果RAM的容量不足以存儲(chǔ)所有工作數(shù)據(jù),輔助存儲(chǔ)器則用作溢流數(shù)據(jù)存儲(chǔ)設(shè)備。輔助存儲(chǔ)器可用于當(dāng)程序被選擇執(zhí)行時(shí)存儲(chǔ)加載到RAM的程序。ROM用于存儲(chǔ)指令,可能還有在程序執(zhí)行期間讀取的數(shù)據(jù)。ROM是非易失性存儲(chǔ)器設(shè)備,通常具有相對(duì)于輔助存儲(chǔ)器的大存儲(chǔ)容量來(lái)說(shuō)較小的內(nèi)存容量。RAM用于存儲(chǔ)以易失性數(shù)據(jù),可能還存儲(chǔ)指令。訪問(wèn)ROM和RAM通常都快于訪問(wèn)輔助存儲(chǔ)器。
處理器420和收發(fā)器412還可用于實(shí)施或支持上述任何方案和方法的至少一部分,例如,在邊緣節(jié)點(diǎn)中執(zhí)行的遷移VPN 300的方法的步驟。最后,盡管端口410描述為耦合到收發(fā)器的雙向端口,但是本領(lǐng)域普通技術(shù)人員將理解,或者邊緣節(jié)點(diǎn)400可包括耦合到發(fā)射器或接收器的單向端口,這分別取決于端口是入端口還是出端口。
圖6為中央控制器500的示例實(shí)施例。中央控制器500包括如圖6所示配置的端口510、發(fā)射器/接收器(Tx/Rx)或收發(fā)器512、處理器520和存儲(chǔ)器522。中央控制器500能夠與骨干網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行通信。例如,中央控制器500可與前面所描述的中央控制器210相同。端口510、收發(fā)器512、處理器520和存儲(chǔ)器522可分別與前面所描述的端口410、收發(fā)器412、處理器420和存儲(chǔ)器422有許多相同的特性。為簡(jiǎn)明起見(jiàn),這里僅描述與前面所描述的元件不同的元件的特征。
存儲(chǔ)器522可用于存儲(chǔ)用于執(zhí)行本文所描述的方法的指令,例如,針對(duì)傳送給邊緣節(jié)點(diǎn)的軟件代理的指令,軟件代理是例如前面所描述的第一軟件代理440和第二軟件代理442,由圖6中的542表示。存儲(chǔ)器522還可存儲(chǔ)關(guān)于VPN路由和對(duì)應(yīng)標(biāo)簽的信息,由圖6中的540表示。處理器520和收發(fā)器512還可用于實(shí)施或支持上述任何方案和方法的至少一部分,例如,在中央控制器中執(zhí)行的遷移VPN 300的方法的步驟。中央控制器500可以是多個(gè)中央控制器或中央控制器集群中的一個(gè),其中所述多個(gè)中央控制器或中央控制器集群共同執(zhí)行圖2的架構(gòu)中的中央控制器210的功能。
應(yīng)理解,通過(guò)將可執(zhí)行指令編程和/或加載至邊緣節(jié)點(diǎn)400上,處理器420和/或存儲(chǔ)器422中的至少一個(gè)發(fā)生改變,將邊緣節(jié)點(diǎn)400的一部分轉(zhuǎn)換成具有本發(fā)明宣揚(yáng)的功能的特定機(jī)器或裝置(例如,邊緣節(jié)點(diǎn)110或120)。所述可執(zhí)行指令可存儲(chǔ)在所述存儲(chǔ)器422中,并且加載到所述處理器420中執(zhí)行。類似地,應(yīng)理解,通過(guò)將可執(zhí)行指令編程和/或加載至中央控制器500上,處理器520和/或存儲(chǔ)器522中的至少一個(gè)發(fā)生改變,將中央控制器500的一部分轉(zhuǎn)換成具有本發(fā)明宣揚(yáng)的功能的特定機(jī)器或裝置(例如,中央控制器210)。所述可執(zhí)行指令可存儲(chǔ)在所述存儲(chǔ)器522中,并且加載到所述處理器520中執(zhí)行。對(duì)于電力工程及軟件工程技術(shù)來(lái)說(shuō)基本的是,可通過(guò)將可執(zhí)行軟件加載到計(jì)算機(jī)中而實(shí)施的功能性可通過(guò)熟知設(shè)計(jì)規(guī)則而轉(zhuǎn)換為硬件實(shí)施方案。在軟件還是硬件中實(shí)施概念之間的決策通常取決于與設(shè)計(jì)的穩(wěn)定性及待產(chǎn)生的單元的數(shù)目的考慮,而與從軟件域轉(zhuǎn)譯到硬件域所涉及的任何問(wèn)題無(wú)關(guān)。通常,仍在經(jīng)受頻繁改變的設(shè)計(jì)優(yōu)選可在軟件中實(shí)施,因?yàn)橹馗挠布?shí)施方案比重改軟件設(shè)計(jì)更為昂貴。通常,穩(wěn)定及大規(guī)模生產(chǎn)的設(shè)計(jì)更適于在如ASIC這樣的硬件中實(shí)施,因?yàn)檫\(yùn)行硬件實(shí)施的大規(guī)模生產(chǎn)比軟件實(shí)施更為便宜。通常,一個(gè)設(shè)計(jì)可軟件形式進(jìn)行開(kāi)發(fā)及測(cè)試,且隨后通過(guò)熟知設(shè)計(jì)規(guī)則變換為對(duì)軟件的指令進(jìn)行硬連線的專用集成電路中的等效硬件實(shí)現(xiàn)。按照相同的方式,新型ASIC控制的機(jī)器是一種特定機(jī)器或裝置,同樣地,已編程和/或加載可執(zhí)行指令的計(jì)算機(jī)也可視為一種特定的機(jī)器或裝置。
本發(fā)明公開(kāi)至少一項(xiàng)實(shí)施例,且所屬領(lǐng)域的普通技術(shù)人員對(duì)所述實(shí)施例和/或所述實(shí)施例的特征作出的變化、組合和/或修改均在本發(fā)明公開(kāi)的范圍內(nèi)。因組合、合并和/或省略所述實(shí)施例的特征而得到的替代性實(shí)施例也在本發(fā)明的范圍內(nèi)。在明確說(shuō)明數(shù)字范圍或限制的情況下,此類表達(dá)范圍或限制可被理解成包括在明確說(shuō)明的范圍或限制內(nèi)具有相同大小的迭代范圍或限制(例如,從約為1到約為10包括2、3、4等;大于0.10包括0.11、0.12、0.13等)。例如,只要公開(kāi)具有下限Rl和上限Ru的數(shù)字范圍,則明確公開(kāi)了此范圍內(nèi)的任何數(shù)字。具體而言,在所述范圍內(nèi)的以下數(shù)字是明確公開(kāi)的:R=Rl+k*(Ru–Rl),其中k為從1%到100%范圍內(nèi)以1%遞增的變量,即,k為1%、2%、3%、4%、5%……50%、51%、52%……95%、96%、97%、98%、99%或100%。此外,由上文所定義的兩個(gè)數(shù)字R定義的任何數(shù)字范圍也是明確公開(kāi)的。除非另有說(shuō)明,否則使用術(shù)語(yǔ)“約”是指隨后數(shù)字的±10%。相對(duì)于權(quán)利要求的任一元素使用術(shù)語(yǔ)“選擇性地”意味著所述元素是需要的,或者所述元素是不需要的,兩種替代方案均在所述權(quán)利要求的范圍內(nèi)。使用如“包括”、“包含”和“具有”等較廣術(shù)語(yǔ)應(yīng)被理解為提供對(duì)如“由……組成”、“基本上由……組成”以及“大體上由……組成”等較窄術(shù)語(yǔ)的支持。因此,保護(hù)范圍不受上文所陳述的說(shuō)明限制,而是由所附權(quán)利要求書(shū)界定,所述范圍包含所附權(quán)利要求書(shū)的標(biāo)的物的所有等效物。每一和每條權(quán)利要求作為進(jìn)一步揭示內(nèi)容并入說(shuō)明書(shū)中,且所附權(quán)利要求書(shū)是本發(fā)明的實(shí)施例。對(duì)所述揭示內(nèi)容中的參考進(jìn)行的論述并非承認(rèn)其為現(xiàn)有技術(shù),尤其是具有在本申請(qǐng)案的在先申請(qǐng)優(yōu)先權(quán)日期之后的公開(kāi)日期的任何參考。本發(fā)明中所引用的所有專利、專利申請(qǐng)案和公開(kāi)案的揭示內(nèi)容特此以引用的方式并入本文本中,其提供補(bǔ)充本發(fā)明的示例性、程序性或其它細(xì)節(jié)。
雖然本發(fā)明中已提供若干實(shí)施例,但應(yīng)理解,在不脫離本發(fā)明的精神或范圍的情況下,本發(fā)明所公開(kāi)的系統(tǒng)和方法可以許多其它特定形式來(lái)體現(xiàn)。本發(fā)明的實(shí)例應(yīng)被視為說(shuō)明性而非限制性的,且本發(fā)明并不限于本文本所給出的細(xì)節(jié)。例如,各種元件或部件可在另一系統(tǒng)中組合或合并,或者某些特征可省略或不實(shí)施。
此外,在不脫離本發(fā)明的范圍的情況下,各種實(shí)施例中描述和說(shuō)明為離散或單獨(dú)的技術(shù)、系統(tǒng)、子系統(tǒng)和方法可與其它系統(tǒng)、模塊、技術(shù)或方法進(jìn)行組合或合并。展示或論述為彼此耦合或直接耦合或通信的其它項(xiàng)也可采用電方式、機(jī)械方式或其它方式通過(guò)某一接口、設(shè)備或中間部件間接地耦合或通信。其它變化、替代和改變的示例可由本領(lǐng)域的技術(shù)人員在不脫離本文精神和所公開(kāi)的范圍的情況下確定。