OpenFlow交換機(jī)上實(shí)現(xiàn)跨交換機(jī)鏈路聚合的系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及以太網(wǎng)鏈路聚合技術(shù)領(lǐng)域,尤其是涉及一種基于OpenFlow協(xié)議實(shí)現(xiàn)跨交換機(jī)鏈路聚合的系統(tǒng)及方法。
【背景技術(shù)】
[0002]在數(shù)據(jù)中心組網(wǎng)里,傳統(tǒng)交換機(jī)的MLAG(Multi_Chassis Link Aggregat1n,跨交換機(jī)鏈路聚合)技術(shù)通過(guò)將服務(wù)器上聯(lián)的兩臺(tái)接入交換機(jī)或接入交換機(jī)上聯(lián)的兩臺(tái)匯聚交換機(jī)虛擬成一臺(tái)設(shè)備,來(lái)讓服務(wù)器或接入交換機(jī)設(shè)備可以通過(guò)LACP協(xié)議(LinkAggregat1n Control Protocol,鏈路匯聚控制協(xié)議)來(lái)實(shí)現(xiàn)跨設(shè)備的鏈路聚合,在實(shí)現(xiàn)負(fù)載均衡的同時(shí)又可以實(shí)現(xiàn)故障保護(hù)。
[0003]但是,上述現(xiàn)有技術(shù)需要在交換機(jī)上運(yùn)行MLAG同步協(xié)議來(lái)同步交換機(jī)狀態(tài),增加了控制的復(fù)雜度,不利于實(shí)現(xiàn)控制平面與轉(zhuǎn)發(fā)平臺(tái)的分離。
[0004]且,MLAG同步協(xié)議目前尚未標(biāo)準(zhǔn)化,各大廠商均采用自己的私有協(xié)議實(shí)現(xiàn),因此,不同廠商間的設(shè)備無(wú)法組成MLAG,從而容易產(chǎn)生廠商鎖定(Vendor Lock-1n),不利于用戶的選擇。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺陷,提供一種OpenFlow交換機(jī)上實(shí)現(xiàn)跨交換機(jī)鏈路聚合的系統(tǒng)及方法,通過(guò)標(biāo)準(zhǔn)化的OpenFlow協(xié)議,來(lái)實(shí)現(xiàn)MLAG技術(shù),以使OpenFlow交換機(jī)在接入非OpenFlow設(shè)備(服務(wù)器或傳統(tǒng)接入交換機(jī))時(shí),能夠?yàn)樗尤氲姆荗penFlow設(shè)備提供負(fù)載分擔(dān)和故障保護(hù)功能,解決傳統(tǒng)交換機(jī)不同廠商間MLAG同步協(xié)議不能互通的問(wèn)題。
[0006]為實(shí)現(xiàn)上述目的,本發(fā)明提出如下技術(shù)方案:一種OpenFlow交換機(jī)上實(shí)現(xiàn)跨交換機(jī)鏈路聚合的系統(tǒng),包括OpenFlow控制器、OpenFlow交換機(jī)和接入到所述OpenFlow交換機(jī)上的非OpenFlow設(shè)備,所述OpenFlow控制器上建構(gòu)有一個(gè)MLAG應(yīng)用,所述MLAG應(yīng)用觸發(fā)所述OpenFlow控制器經(jīng)所述OpenFlow交換機(jī)向所述非OpenFlow設(shè)備發(fā)送LACP報(bào)文,且所述OpenFlow交換機(jī)將從所述非OpenFlow設(shè)備接收到的LACP報(bào)文由所述OpenFlow控制器發(fā)送給所述MLAG應(yīng)用處理;所述MLAG應(yīng)用通過(guò)比對(duì)接收到的由多臺(tái)所述OpenFlow交換機(jī)發(fā)送的LACP報(bào)文的系統(tǒng)標(biāo)識(shí)是否唯一以及LACP報(bào)文的密鑰是否與管理員配置的一致,來(lái)確定多臺(tái)所述OpenFlow交換機(jī)是否組成MLAG實(shí)例,若組成,則觸發(fā)所述MLAG應(yīng)用內(nèi)的流表或組表下發(fā)及更新。
[0007]優(yōu)選地,所述非OpenFlow設(shè)備包括傳統(tǒng)的以太網(wǎng)交換機(jī)或服務(wù)器。
[0008]優(yōu)選地,所述MLAG應(yīng)用包括MLAG實(shí)例管理模塊、MLAG保護(hù)處理模塊、LACP協(xié)議模塊和流表管理模塊,在所述MLAG應(yīng)用到所述OpenFlow交換機(jī)的方向,所述LACP協(xié)議模塊定時(shí)觸發(fā)所述OpenFlow控制器向所述OpenFlow交換機(jī)發(fā)送LACP報(bào)文,由所述OpenFlow交換機(jī)通過(guò)指定OpenFlow端口發(fā)送給所述非OpenFlow設(shè)備;在所述OpenFlow交換機(jī)到所述MLAG應(yīng)用的方向,由所述OpenFlow交換機(jī)將從所述非OpenFlow設(shè)備所連接的OpenFlow端口上收到的LACP報(bào)文發(fā)送給所述OpenFlow控制器,由OpenFlow控制器通知給所述MLAG應(yīng)用進(jìn)行處理。
[0009]優(yōu)選地,所述MLAG實(shí)例管理模塊用于創(chuàng)建所述MLAG實(shí)例,一個(gè)所述MLAG實(shí)例的組成數(shù)據(jù)包括主OpenFlow交換機(jī)、備OpenFlow交換機(jī)、主OpenFlow交換機(jī)MLAG成員端口、備OpenFlow交換機(jī)MLAG成員端口、LACP系統(tǒng)標(biāo)識(shí)和密鑰,或所述MLAG實(shí)例管理模塊的數(shù)據(jù)包括主OpenFlow交換機(jī)、備OpenFlow交換機(jī)、主OpenFlow交換機(jī)MLAG成員端口、備OpenFlow交換機(jī)MLAG成員端口、LACP系統(tǒng)標(biāo)識(shí)和密鑰、以及用于故障切換的peer-1 ink鏈路。
[0010]優(yōu)選地,所述MLAG保護(hù)處理模塊用于監(jiān)控所述MLAG實(shí)例管理模塊的主OpenFlow交換機(jī)的狀態(tài),當(dāng)所述主OpenFlow交換機(jī)節(jié)點(diǎn)故障時(shí),則將所述備OpenFlow交換機(jī)切換為主狀態(tài);當(dāng)所述主OpenFlow交換機(jī)MLAG成員端口故障時(shí),若設(shè)置有所述peer_link鏈路,則主換機(jī)上所下發(fā)的OpenFlow快速故障倒換組表將業(yè)務(wù)直接切換到所述peer_link鏈路轉(zhuǎn)發(fā);若未設(shè)置所述peer-link鏈路,則關(guān)閉所述主OpenFlow交換機(jī)與其上游的匯聚網(wǎng)絡(luò)相連的端口,將LACP報(bào)文引流到所述備OpenFlow交換機(jī)上轉(zhuǎn)發(fā)。
[0011 ] 優(yōu)選地,所述LACP協(xié)議模塊將所述主、備OpenFlow交換機(jī)上發(fā)送的LACP報(bào)文的所述系統(tǒng)標(biāo)識(shí)設(shè)置為相同值。
[0012]優(yōu)選地,所述流表管理模塊用于配置所述OpenFlow交換機(jī)到所述非OpenFlow設(shè)備方向的基于以太網(wǎng)二層轉(zhuǎn)發(fā)的流表。
[0013]優(yōu)選地,若未設(shè)置所述peer-link鏈路,則在所述備OpenFlow交換機(jī)上同步所述主OpenFlow交換機(jī)向所述接入設(shè)備的流表;若設(shè)置有所述peer-link鏈路,則采用OpenFlow快速故障倒換組進(jìn)行本地保護(hù)。
[0014]優(yōu)選地,所述匯聚網(wǎng)絡(luò)由二層或三層以太網(wǎng)交換機(jī)組成。
[0015]本發(fā)明的另一目的在于,提供一種OpenFlow交換機(jī)上實(shí)現(xiàn)跨交換機(jī)鏈路聚合的方法,包括以下步驟:
[0016]所述MLAG應(yīng)用觸發(fā)所述OpenFlow控制器經(jīng)所述OpenFlow交換機(jī)向所述非OpenFlow設(shè)備發(fā)送LACP報(bào)文;
[0017]所述OpenFlow交換機(jī)將從所述非OpenFlow設(shè)備接收到的LACP報(bào)文由所述OpenFlow控制器發(fā)送給所述MLAG應(yīng)用處理;
[0018]所述MLAG應(yīng)用通過(guò)比對(duì)接收到的由多臺(tái)所述OpenFlow交換機(jī)發(fā)送的LACP報(bào)文的系統(tǒng)標(biāo)識(shí)是否唯一以及LACP報(bào)文的密鑰是否與管理員配置的一致,來(lái)確定多臺(tái)所述OpenFlow交換機(jī)是否組成MLAG實(shí)例,若組成,則觸發(fā)所述MLAG應(yīng)用內(nèi)的流表或組表下發(fā)及更新。
[0019]優(yōu)選地,所述LACP協(xié)議模塊定時(shí)觸發(fā)所述OpenFlow控制器向所述OpenFlow交換機(jī)發(fā)送LACP報(bào)文,由所述OpenFlow交換機(jī)通過(guò)指定OpenFlow端口發(fā)送給所述非OpenFlow設(shè)備;所述OpenFlow交換機(jī)將從所述非OpenFlow設(shè)備所連接的OpenFlow端口上收到的LACP報(bào)文發(fā)送給所述OpenFlow控制器,由OpenFlow控制器通知給所述MLAG應(yīng)用進(jìn)行處理。
[0020]本發(fā)明的有益效果是:
[0021]1、本發(fā)明通過(guò)標(biāo)準(zhǔn)化的OpenFlow協(xié)議,來(lái)實(shí)現(xiàn)MLAG技術(shù),OpenFlow協(xié)議具有整網(wǎng)全局視野,能管理多臺(tái)以太網(wǎng)交換機(jī),因此可以全局性的進(jìn)行轉(zhuǎn)發(fā)表項(xiàng)的控制,不需要在以太網(wǎng)交換機(jī)間運(yùn)行復(fù)雜的同步協(xié)議。
[0022]2、本發(fā)明不受廠商私有MLAG實(shí)現(xiàn)的限制,對(duì)于支持OpenFlow 1.1及以上標(biāo)準(zhǔn)的以太網(wǎng)交換機(jī)系統(tǒng),均可以通過(guò)該技術(shù)方案實(shí)現(xiàn)接入設(shè)備的保護(hù)和負(fù)載分擔(dān)。
[0023]3、本發(fā)明既適用于硬件OpenFlow交換機(jī),也適用于軟件OpenFlow交換機(jī)。
【附圖說(shuō)明】
[0024]圖1是本發(fā)明實(shí)施例部署的MLAG應(yīng)用的一個(gè)組網(wǎng)示意圖;
[0025]圖2是本發(fā)明OpenFlow控制器和建構(gòu)的MLAG應(yīng)用的架構(gòu)示意圖;
[0026]圖3是本發(fā)明MLAG應(yīng)用與OpenFlow交換機(jī)和服務(wù)器之間的交互流程示意圖;
[0027]圖4是本發(fā)明OpenFlow交換機(jī)上實(shí)現(xiàn)跨交換機(jī)鏈路聚合的方法的流程示意圖。
【具體實(shí)施方式】
[0028]下面將結(jié)合本發(fā)明的附圖,對(duì)本發(fā)明實(shí)施例的技術(shù)方案進(jìn)行清楚、完整的描述。
[0029]如圖1所示,為本發(fā)明實(shí)施例部署的MLAG應(yīng)用的一個(gè)實(shí)際場(chǎng)景,圖中包括Op enF I ο w控制器、Op enF I ο w交換機(jī)上游的傳統(tǒng)匯聚網(wǎng)絡(luò)和下游的Op enF I ο w接入網(wǎng)絡(luò),傳統(tǒng)匯聚網(wǎng)絡(luò)由非OpenFlow交換機(jī),即傳統(tǒng)二層或三層(L2/L3)以太網(wǎng)交換機(jī)組成,負(fù)責(zé)不同OpenFlow接入網(wǎng)絡(luò)的流量匯聚互通,OpenFlow接入網(wǎng)絡(luò)內(nèi)包括兩臺(tái)OpenFlow交換機(jī)和兩臺(tái)業(yè)務(wù)服務(wù)器,兩臺(tái)OpenFlow交換機(jī)用于接受運(yùn)行在OpenFlow控制器之上的MLAG應(yīng)用的管理,組成MLAG實(shí)例,且負(fù)責(zé)對(duì)下游業(yè)務(wù)服務(wù)器的接入。MLAG實(shí)例通常組件在兩臺(tái)交換機(jī)之間。
[0030]如圖2所示,為本發(fā)明OpenFlow控制器和建構(gòu)的MLAG應(yīng)用架構(gòu)圖。OpenFlow控制器用于根據(jù)OpenFlow協(xié)議提供的報(bào)文發(fā)送機(jī)制發(fā)送LACP報(bào)文給OpenFlow交換機(jī),且將從OpenFlow交換機(jī)接收到的LACP報(bào)文發(fā)送給MLAG應(yīng)用進(jìn)行處理。OpenFlow控制器可以采用現(xiàn)有主流的開放源代碼軟件實(shí)現(xiàn),如OpenDayLight、RYU軟件等。
[0031]MLAG應(yīng)用建構(gòu)在OpenFlow控制器上,該應(yīng)用基于OpenFlow控制器提供的接口開發(fā)而成,與操作系統(tǒng)與其上開發(fā)的軟件的關(guān)系類似。如圖1所示的MLAG應(yīng)用的功能組件框圖,MLAG應(yīng)用包括MLAG實(shí)例管理模塊、MLAG保護(hù)處理模塊、LACP協(xié)議模塊和流表管理模塊,MLAG實(shí)例管理模塊用于MLAG實(shí)例的創(chuàng)建,一個(gè)MLAG實(shí)例的組成數(shù)據(jù)包括:主OpenFlow交換機(jī)、備OpenFlow交換機(jī)、主OpenFlow交換機(jī)MLAG成員端口、備OpenFlow交換機(jī)MLAG成員端口、共享的LACP系統(tǒng)標(biāo)識(shí)(System-1d)和密鑰(key),再加上可選的用于故障切換的peer-link鏈路。其中主OpenFlow交換機(jī)、備OpenFlow交換機(jī)由OpenFlow數(shù)據(jù)平面標(biāo)識(shí)(OpenFlow datapath id)標(biāo)識(shí)。
[0032]MLAG保護(hù)處理模塊用于監(jiān)控MLAG主OpenFlow交換機(jī)的狀態(tài)。主OpenFlow交換機(jī)節(jié)點(diǎn)故障時(shí)(表現(xiàn)為主OpenFlow交換機(jī)與控制器連接中斷),則要將備OpenFlow交換機(jī)切換為主狀態(tài),此時(shí)由于備OpenFlow交換機(jī)(即原來(lái)的主OpenFlow交換機(jī)設(shè)備)還未上線,還不能按主設(shè)備那樣去下發(fā)流表,等備OpenFlow交換機(jī)設(shè)備重新上線后,再根據(jù)預(yù)置的流表規(guī)則重新對(duì)主OpenFlow交換機(jī)設(shè)備或備OpenFlow交換機(jī)設(shè)備的流表進(jìn)行編程。預(yù)置的流表規(guī)則在下面有介紹。
[0033]具體地,當(dāng)主OpenFlow交換機(jī)MLAG成員端口故障時(shí),如果沒有設(shè)置peer-link鏈路,則需要關(guān)閉主OpenFlow交換機(jī)與上游OpenFlow交換機(jī)相連的端口,以引流至備OpenFlow交換機(jī)轉(zhuǎn)發(fā);如果設(shè)置了 peer-link鏈路,則直接靠OpenFlow