一種多子接口下運行vrrp的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種多子接口下運行VRRP的方法及裝置。
【背景技術(shù)】
[0002]VRRP(Virtual Router Redundancy Protocol,虛擬路由器冗余協(xié)議)是應(yīng)用非常廣泛的可以提高局域網(wǎng)可靠性的三層協(xié)議。它將局域網(wǎng)內(nèi)的可以承擔(dān)網(wǎng)關(guān)功能的一組路由器劃分在一起,組成一個備份組。備份組由一臺Master路由器和多臺Backup路由器組成,對外相當(dāng)于一臺虛擬路由器。虛擬路由器具有IP(Internet Protocol,互聯(lián)網(wǎng)協(xié)議)地址,稱為Virtual-1P (虛擬IP)地址。局域網(wǎng)內(nèi)的主機僅需要知道這臺虛擬路由器的IP地址,并將其設(shè)置為網(wǎng)關(guān)的IP地址即可。局域網(wǎng)內(nèi)的主機通過這臺虛擬路由器與外部網(wǎng)絡(luò)進(jìn)行通信。
[0003]在多租戶云數(shù)據(jù)中心場景下,租戶的VLAN(Virtual Local Area Network,虛擬局域網(wǎng))/VRF (Virtual Routing Forwarding,虛擬路由轉(zhuǎn)發(fā))數(shù)量與VRRP組的數(shù)量密切相關(guān),可以認(rèn)為是一比一對應(yīng)關(guān)系。在動輒上千個VLAN/VRF的應(yīng)用需求下,每個三層物理接口下可能需要創(chuàng)建上千個子接口,每個子接口綁定到一個VRF,每個VRF對應(yīng)一個VRRP組,VRRP組的數(shù)量將達(dá)到上千個。以4k個為例,此時控制平面的處理壓力即為4kpps(按每秒鐘一個advertise報文計算)。此外,在多個三層物理接口下均使能4k個VRRP組的場景下,CPU(Center Process Unit,中央處理單元)壓力將逐級放大,如何降低大量子接口下運行VRRP時CPU的壓力成為一個亟待解決的問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種多子接口下運行VRRP的方法及裝置,以解決現(xiàn)有技術(shù)中大量子接口下運行VRRP時CPU壓力過大的問題。
[0005]根據(jù)本發(fā)明實施例的第一方面,提供一種多子接口下運行虛擬路由器冗余協(xié)議VRRP的方法,所述多個子接口屬于同一三層物理接口的子接口,且每一個子接口對應(yīng)一個VRRP組,所述多個子接口配置有相同的虛擬路由器標(biāo)識VRID,該方法包括:
[0006]當(dāng)自身為代理子接口時,確定本子接口的狀態(tài);
[0007]當(dāng)自身為非代理子接口時,共享代理子接口的狀態(tài)。
[0008]根據(jù)本發(fā)明實施例的第二方面,提供一種多子接口下運行VRRP的裝置,所述多個子接口屬于同一三層物理接口的子接口,且每一個子接口對應(yīng)一個VRRP組,所述多個子接口配置有相同的虛擬路由器標(biāo)識VRID,該裝置對應(yīng)于一子接口,該裝置包括:
[0009]確定單元,用于所述裝置對應(yīng)的子接口為代理子接口時,確定該子接口的狀態(tài);
[0010]共享單元,用于當(dāng)所述裝置對應(yīng)的子接口為非代理子接口時,共享代理子接口的狀態(tài)。
[0011]應(yīng)用本發(fā)明實施例,通過為屬于同一三層物理接口下的多個子接口配置相同的VRID,并為使用該VRID的所有子接口中指定某一虛擬IP對應(yīng)的子接口為代理子接口,僅有代理子接口需要確定自身的狀態(tài),非代理子接口,共享該代理子接口的狀態(tài),而不需要按照現(xiàn)有VRRP協(xié)議進(jìn)行相應(yīng)處理,降低了多子接口下運行VRRP時CPU的壓力。
【附圖說明】
[0012]圖1是本發(fā)明實施例提供的一種多子接口下運行VRRP的方法的流程示意圖;
[0013]圖2是本發(fā)明實施例提供的另一種多子接口下運行VRRP的方法的流程示意圖;
[0014]圖3A是現(xiàn)有技術(shù)中一個多子接口下VRRP組配置示意圖;
[0015]圖3B是本發(fā)明實施例提供的一種多子接口下VRRP組配置示意圖;
[0016]圖4是本發(fā)明實施例提供的一種多子接口下運行VRRP的裝置的結(jié)構(gòu)示意圖;
[0017]圖5是本發(fā)明實施例提供的另一種多子接口下運行VRRP的裝置的結(jié)構(gòu)示意圖;
[0018]圖6是本發(fā)明實施例提供的多子接口下運行VRRP的裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖。
【具體實施方式】
[0019]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實施例中的技術(shù)方案,并使本發(fā)明實施例的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖對本發(fā)明實施例中技術(shù)方案作進(jìn)一步詳細(xì)的說明。
[0020]參見圖1,為本發(fā)明實施例提供的一種多子接口下運行VRRP的方法,該多個子接口屬于同一三層物理接口的子接口,且每一個子接口對應(yīng)一個VRRP組,該多個子接口配置有相同的VRID,如圖1所示,該方法可以包括:
[0021]步驟101、當(dāng)自身為代理子接口時,確定本子接口的狀態(tài)。
[0022]步驟102、當(dāng)自身為非代理子接口時,共享代理子接口的狀態(tài)。
[0023]在本發(fā)明實施例中,可以通過為屬于同一三層物理接口下的該多個子接口配置相同的VRID (Virtual Route IDentif ier,虛擬路由標(biāo)識),并指定使用該VRID的子接口中某一子接口為代理子接口(可以通過指定虛擬IP的方式指定代理子接口),使用該VRID的其它子接口共享該代理子接口的狀態(tài)。
[0024]需要注意的是,在本發(fā)明實施例中,子接口的VRID、子接口的虛擬IP,以及子接口的狀態(tài)均指子接口對應(yīng)的VRRP組VRID、虛擬IP以及狀態(tài),本發(fā)明實施例后續(xù)不再復(fù)述。
[0025]本發(fā)明實施例中,對于代理子接口,其需要按照現(xiàn)有VRRP協(xié)議進(jìn)行相應(yīng)處理,如進(jìn)行通告、選舉、搶占、封裝等一系列處理,而對于非代理子接口,其不需要按照現(xiàn)有VRRP協(xié)議進(jìn)行相應(yīng)處理,而是可以直接共享該代理子接口的狀態(tài)。
[0026]本發(fā)明實施例中,共享代理子接口的狀態(tài),可以包括:
[0027]當(dāng)代理子接口的狀態(tài)為Initialize(初始化)時,將自身的狀態(tài)也切換為Initialize ;
[0028]當(dāng)代理子接口的狀態(tài)為Master (主)時,將自身的狀態(tài)也切換為Master ;
[0029]當(dāng)代理子接口的狀態(tài)為Backup (備用)時,將自身的狀態(tài)也切換為Backup。
[0030]具體的,在本發(fā)明實施例中,子接口的狀態(tài)可以包括Initialize、Master以及Backup,其中,代理子接口的狀態(tài)按照現(xiàn)有VRRP協(xié)議通過狀態(tài)機選舉出來,而其它的與代理子接口 VRID相同的子接口則不需要進(jìn)行選舉過程,直接共享代理子接口的狀態(tài)。
[0031]在一種實施方式中,為了防止大量子接口同時隨代理子接口的狀態(tài)迀移而迀移,對CPU產(chǎn)生負(fù)面影響,共享代理子接口的狀態(tài)的其它子接口在監(jiān)測到代理子接口狀態(tài)變化后,可以等待預(yù)設(shè)時間閾值內(nèi)的一個預(yù)設(shè)時間后,再進(jìn)行狀態(tài)迀移。
[0032]例如,可以設(shè)置一個隨機定時器(Random_timer),其定時時長為(0,tn);其中,tn為預(yù)設(shè)時間閾值,可以根據(jù)具體應(yīng)用場景設(shè)定,如50ms,10ms等。設(shè)置該隨機定時器之后,當(dāng)共享代理子接口的狀態(tài)的其它子接口需要進(jìn)行狀態(tài)迀移時,可以隨機等待一個(0,tn)區(qū)間內(nèi)的時間,再進(jìn)行狀態(tài)迀移。
[0033]本發(fā)明實施例中,可以分別針對三層物理接口下各子接口配置相應(yīng)的進(jìn)程,代理子接口之外的其它子接口可以通過該進(jìn)程實現(xiàn)監(jiān)控代理子接口的狀態(tài),并根據(jù)代理子接口的狀態(tài)的迀移而進(jìn)行狀態(tài)迀移。
[0034]本發(fā)明實施例中,考慮到當(dāng)物理接口 UP時,該物理接口下的各子接口一般會均處于可用狀態(tài),而當(dāng)物理接口 Down時,該物理接口下的各子接口將均不可用,即同一物理接口下各子接口的可靠性基本上是一致的,因此,可以不需要為同一物理接口下的每一個子接口都建立一整套可靠性的檢測方法,而是可以通過設(shè)定一個代理子接口,由代理子接口負(fù)責(zé)完整的協(xié)議交互,而該物理接口下的其它子接口共享該代理子接口的狀態(tài),無需每個子接口均進(jìn)行VRRP協(xié)議的處理,以達(dá)到減輕CPU負(fù)擔(dān)的目的。參見圖2,為本發(fā)明實施例提供的另一種多子接口下運行VRRP的方法,該多個子接口屬于同一三層物理接口的子接口,且每一個子接口對應(yīng)一個VRRP組,該多個子接口配置有相同的VRID,如圖1所示,該方法可以包括:
[0035]步驟201、接收代理子接口配置指令。
[0036]本發(fā)明實施例中,可以通過為屬于同一三層物理接口下的該多個子接口配置相同的VRID,并指定使用該VRID的子接口中某一子接口為代理子接口(可以通過指定虛擬IP的方式指定代理子接口),使用該VRID的其它子接口共享該代理子接口的狀態(tài)。
[0037]步驟202、根據(jù)代理子接口配置指令確定自身是否為代理子接口。若是,則轉(zhuǎn)至步驟203 ;否則,轉(zhuǎn)至步驟204。
[0038]本發(fā)明實施例中,代理子接口配置指令中可以包括代理子接口的VRID,以及虛擬IP ;接收到代理子接口配置指令之后,各子接口可以通過比較自身的VRID,以及虛擬IP與代理子接口配置指令中包括的VRID,以及虛擬IP,確定自身是否為代理子接口。
[0039]當(dāng)某子接口確定自身的VRID,以及虛擬IP與代理子接口配置指令中包括的代理子接口的VRID,以及虛擬IP分別相同時,確定自身為代理子接口 ;當(dāng)某子接口確定自身的VRID,以及虛擬IP與代理子接口配置指令中包括的代理子接口的VRID以及虛擬IP部分不同(VRID不同或虛擬IP不同)或全部不同時