本發(fā)明涉及數(shù)據(jù)通信技術(shù),特別涉及VRRP協(xié)議(Virtual Router Redundancy Protocol,虛擬路由冗余協(xié)議)中網(wǎng)絡(luò)異常時(shí)自動(dòng)修復(fù)的技術(shù)。
背景技術(shù):
目前部分客戶在接入層面,一般還是會(huì)采用VRRP組網(wǎng),但VRRP組網(wǎng)往往為了簡(jiǎn)單,會(huì)將兩個(gè)三層交換機(jī)或一體機(jī)(即VRRP網(wǎng)關(guān))的接口串聯(lián)起來(lái),其他接口直接與終端連接,其組網(wǎng)系統(tǒng)的示意圖參見(jiàn)圖1,其包括兩個(gè)VRRP網(wǎng)關(guān),分別記為第一VRRP網(wǎng)關(guān)N1及第二VRRP網(wǎng)關(guān)N2,兩個(gè)VRRP網(wǎng)關(guān)之間互聯(lián),還包括多個(gè)終端,每個(gè)終端只與一個(gè)VRRP網(wǎng)關(guān)一一對(duì)應(yīng)連接,可見(jiàn)在VRRP網(wǎng)關(guān)中,其互聯(lián)端口和連接終端的端口都在同一個(gè)VLAN中,并且兩個(gè)VRRP網(wǎng)關(guān)都啟用三層接口及VRRP協(xié)議。當(dāng)兩個(gè)VRRP網(wǎng)關(guān)之間的線路故障時(shí),必然就會(huì)出現(xiàn)雙主現(xiàn)象,雙主現(xiàn)象是指:VRRP組網(wǎng)在正常情況下,兩個(gè)VRRP網(wǎng)關(guān)之中只有一個(gè)主設(shè)備,另一個(gè)為備用設(shè)備,當(dāng)網(wǎng)絡(luò)出現(xiàn)異常情況時(shí),例如VRRP心跳不通時(shí),兩個(gè)VRRP網(wǎng)關(guān)都成為主設(shè)備,這種狀態(tài)為雙主現(xiàn)象,其中,每個(gè)啟用了VRRP協(xié)議的VRRP網(wǎng)關(guān)都具有VRRP定時(shí)器,其作用在于周期的發(fā)送協(xié)議報(bào)文,即VRRP心跳,當(dāng)該VRRP網(wǎng)關(guān)在一定時(shí)間內(nèi)未收到協(xié)議報(bào)文,就認(rèn)為對(duì)端設(shè)備故障。出現(xiàn)雙主現(xiàn)象時(shí),就會(huì)導(dǎo)致上端網(wǎng)絡(luò)回包到原來(lái)備用設(shè)備節(jié)點(diǎn)的報(bào)文被丟棄,從而導(dǎo)致部分終端不通。
在現(xiàn)有技術(shù)中,為避免出現(xiàn)VRRP雙主現(xiàn)象,通常增加了VRRP冗余心跳鏈路,規(guī)避了出現(xiàn)雙主現(xiàn)象,但該方式還是無(wú)法解決部分終端的通信問(wèn)題,仍然需要手工修復(fù)。且無(wú)論雙主是否出現(xiàn),當(dāng)VRRP心跳出現(xiàn)問(wèn)題時(shí),都需要人工手動(dòng)修復(fù),其時(shí)間通常較長(zhǎng),用戶體驗(yàn)很差。
出現(xiàn)該類問(wèn)題時(shí),從物理連接和三層IP連接上來(lái)看,其實(shí)終端和網(wǎng)絡(luò)是聯(lián)通的,其主要問(wèn)題在于網(wǎng)絡(luò)無(wú)法適應(yīng)相同的網(wǎng)段出現(xiàn)在兩個(gè)不同的物理位置,因此檢測(cè)故障出現(xiàn),并自動(dòng)調(diào)整網(wǎng)絡(luò)以適應(yīng)這種情況就顯得非常必要。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的就是解決目前VRRP組網(wǎng)系統(tǒng)中,當(dāng)出現(xiàn)雙主現(xiàn)象時(shí),VRRP網(wǎng)關(guān)不能自動(dòng)修復(fù)的問(wèn)題,提供一種VRRP網(wǎng)關(guān)、VRRP系統(tǒng)和雙主探測(cè)及修復(fù)方法。
本發(fā)明解決其技術(shù)問(wèn)題,采用的技術(shù)方案是,一種VRRP網(wǎng)關(guān),包括VRRP處理模塊、隧道建立模塊、狀態(tài)探測(cè)模塊及靜態(tài)路由生成模塊,
所述VRRP處理模塊,用于運(yùn)行VRRP協(xié)議,并指明自身的心跳地址,將自身的心跳地址通過(guò)網(wǎng)絡(luò)發(fā)布出去,接收對(duì)端網(wǎng)關(guān)的心跳地址,當(dāng)VRRP定時(shí)器超時(shí)且未收到對(duì)端網(wǎng)關(guān)VRRP報(bào)文時(shí),按照VRRP協(xié)議進(jìn)行處理,保持或切換至VRRP主設(shè)備,通知狀態(tài)探測(cè)模塊探測(cè)對(duì)端網(wǎng)關(guān)VRRP狀態(tài),接收狀態(tài)探測(cè)模塊發(fā)送來(lái)的通知,若當(dāng)前并非為雙主狀態(tài),則保持當(dāng)前狀態(tài),若當(dāng)前為雙主狀態(tài)則,清除自身接口上所有的ARP(Address Resolution Protocol)信息,且重新學(xué)習(xí)ARP,并將學(xué)習(xí)到的ARP對(duì)應(yīng)的終端地址通告給對(duì)端網(wǎng)關(guān),若接收到對(duì)端網(wǎng)關(guān)通告來(lái)的終端地址,則通知靜態(tài)路由生成模塊,并判斷該終端地址是否與已學(xué)習(xí)的ARP相對(duì)應(yīng),若是則刪除該ARP,否則不處理,當(dāng)VRRP協(xié)議恢復(fù),則通知靜態(tài)路由生成模塊,刪除對(duì)應(yīng)的隧道上的靜態(tài)路由;
所述隧道建立模塊,用于在自身的心跳地址及對(duì)端網(wǎng)關(guān)的心跳地址之間生成并維護(hù)一條通信隧道;
所述狀態(tài)探測(cè)模塊,用于根據(jù)VRRP處理模塊的通知通過(guò)對(duì)端網(wǎng)關(guān)的心跳地址來(lái)探測(cè)對(duì)端網(wǎng)關(guān)當(dāng)前的VRRP狀態(tài),若探測(cè)到當(dāng)前為雙主則通知VRRP處理模塊,否則通知VRRP處理模塊并繼續(xù)探測(cè);
所述靜態(tài)路由生成模塊用于根據(jù)VRRP處理模塊的通知中的終端地址在通信隧道上形成基于該終端的靜態(tài)路由,若已存在該終端地址對(duì)應(yīng)的ARP,則刪除該ARP,若接收到VRRP處理模塊通知的VRRP協(xié)議恢復(fù),則清除通信隧道上的所有靜態(tài)路由。
具體的,所述狀態(tài)探測(cè)模塊根據(jù)VRRP處理模塊的通知通過(guò)對(duì)端網(wǎng)關(guān)的心跳地址來(lái)探測(cè)對(duì)端網(wǎng)關(guān)當(dāng)前的VRRP狀態(tài),具體為:狀態(tài)探測(cè)模塊根據(jù)對(duì)端網(wǎng)關(guān)的心跳地址發(fā)送探測(cè)報(bào)文,若對(duì)端網(wǎng)關(guān)無(wú)應(yīng)答,則判定為對(duì)端網(wǎng)關(guān)故障,當(dāng)前并非雙主狀態(tài),若接收到對(duì)端網(wǎng)關(guān)的應(yīng)答,則根據(jù)該應(yīng)答判斷當(dāng)前是否為雙主狀態(tài),若是則判定為雙主狀態(tài),否則為非雙主狀態(tài)。
進(jìn)一步的,所述探測(cè)報(bào)文中包含VRRP組ID、VRRP接口實(shí)地址、VRRP虛地址、VRF(Virtual Routing Forwarding,VPN路由轉(zhuǎn)發(fā)表)的RD((Route-Distinguisher)及PIM(Protocol Independent Multicast)的DR(Designated Router,指定路由器,即pim協(xié)議中的組播信息轉(zhuǎn)發(fā)者也是IGMP的查詢器)競(jìng)選相關(guān)信息。
具體的,所述探測(cè)報(bào)文采用check和ack方式,所述通信隧道不限于為GRE(Generic Routing Encapsulation)通信隧道或VXLAN(Virtual Extensible LAN,虛擬可擴(kuò)展局域網(wǎng))通信隧道。
再進(jìn)一步的,所述將學(xué)習(xí)到的ARP對(duì)應(yīng)的終端地址通告給對(duì)端網(wǎng)關(guān)中,所述通告以有序且周期的方式進(jìn)行。
VRRP組網(wǎng)系統(tǒng),包括至少兩個(gè)VRRP網(wǎng)關(guān)及多個(gè)終端,各VRRP網(wǎng)關(guān)之間通過(guò)接口連接,每個(gè)終端只與一個(gè)VRRP網(wǎng)關(guān)一一對(duì)應(yīng)連接,各VRRP網(wǎng)關(guān)與網(wǎng)絡(luò)連接,其特征在于,所述VRRP網(wǎng)關(guān)為上述一種VRRP網(wǎng)關(guān)。
雙主探測(cè)及修復(fù)方法,應(yīng)用于上述VRRP組網(wǎng)系統(tǒng)中,其特征在于,包括以下步驟:
步驟1、所有VRRP網(wǎng)關(guān)分別配置VRRP,并指明自身的心跳地址,將自身的心跳地址通過(guò)網(wǎng)絡(luò)發(fā)布出去,分別接收各對(duì)端網(wǎng)關(guān)的心跳地址,VRRP配置完成后,形成VRRP主設(shè)備及VRRP備用設(shè)備;
步驟2、各VRRP網(wǎng)關(guān)在自身的心跳地址及對(duì)端網(wǎng)關(guān)的心跳地址之間生成并維護(hù)一條通信隧道;
步驟3、當(dāng)各VRRP網(wǎng)關(guān)能夠正常接收到對(duì)端網(wǎng)關(guān)VRRP報(bào)文時(shí),正常運(yùn)行VRRP協(xié)議,不進(jìn)行其他處理,當(dāng)某一VRRP網(wǎng)關(guān)的VRRP定時(shí)器超時(shí)且未收到對(duì)端網(wǎng)關(guān)VRRP報(bào)文時(shí),則按照VRRP協(xié)議進(jìn)行處理,保持或切換至VRRP主設(shè)備,且探測(cè)對(duì)端網(wǎng)關(guān)VRRP狀態(tài);
步驟4、若該VRRP網(wǎng)關(guān)探測(cè)到當(dāng)前并非為雙主狀態(tài),則保持當(dāng)前狀態(tài),若當(dāng)前為雙主狀態(tài)則進(jìn)入步驟5;
步驟5、該VRRP網(wǎng)關(guān)清除自身接口上所有的ARP信息,且重新學(xué)習(xí)ARP;
步驟6、該VRRP網(wǎng)關(guān)將新學(xué)習(xí)到的ARP對(duì)應(yīng)的終端地址通告給對(duì)端網(wǎng)關(guān);
步驟7、若該VRRP網(wǎng)關(guān)接收到對(duì)端網(wǎng)關(guān)通告來(lái)的終端地址,則在通信隧道上形成基于該終端的靜態(tài)路由,并判斷該終端地址是否與已學(xué)習(xí)的ARP相對(duì)應(yīng),若是則刪除該ARP;如果新學(xué)到ARP,則判斷是否存在該主機(jī)ip地址是否在隧道存在靜態(tài)路由,如果存在,就刪除靜態(tài)路由,并回到步驟6;
步驟8、該VRRP網(wǎng)關(guān)進(jìn)行報(bào)文轉(zhuǎn)發(fā);
步驟9、該VRRP網(wǎng)關(guān)時(shí)刻判斷VRRP協(xié)議是否恢復(fù),若恢復(fù),則清除通信隧道上的所有靜態(tài)路由,若該VRRP網(wǎng)關(guān)在步驟3中切換至VRRP主設(shè)備,則此時(shí)需要切換回VRRP備用設(shè)備,回到步驟3,若該VRRP網(wǎng)關(guān)在步驟3中保持為VRRP主設(shè)備,則此時(shí)仍保持為VRRP主設(shè)備,回到步驟3,若未恢復(fù)則回到步驟6。
具體的,步驟4中,若當(dāng)前為雙主狀態(tài),在進(jìn)入步驟5之前,產(chǎn)生周期性告警信息。
具體的,步驟8中,在該VRRP網(wǎng)關(guān)進(jìn)行報(bào)文轉(zhuǎn)發(fā)的過(guò)程中,若無(wú)法命中靜態(tài)路由,就會(huì)命中直連接口路由,如果此時(shí)有ARP,則按照ARP轉(zhuǎn)發(fā),如果沒(méi)有ARP,則除了在該直連接口學(xué)習(xí)ARP外,還應(yīng)該將該報(bào)文通過(guò)隧道轉(zhuǎn)發(fā)到對(duì)端,以便對(duì)端學(xué)習(xí)ARP。
進(jìn)一步的,步驟8中,在該VRRP網(wǎng)關(guān)進(jìn)行報(bào)文轉(zhuǎn)發(fā)的過(guò)程中,若接收到ARP請(qǐng)求本網(wǎng)段其他終端地址解析時(shí),則查找該VRRP網(wǎng)關(guān)中的靜態(tài)路由,若存在對(duì)應(yīng)終端的靜態(tài)路由,則以ARP代理的方式應(yīng)答,若不存在對(duì)應(yīng)終端的靜態(tài)路由,則緩存該終端地址,并通過(guò)通信隧道向該終端地址發(fā)送報(bào)文進(jìn)行探測(cè),觸發(fā)對(duì)端網(wǎng)關(guān)的ARP解析。
若接收到網(wǎng)絡(luò)中的組播報(bào)文,則在該VRRP網(wǎng)關(guān)與與其直連的終端組成的局域網(wǎng)中轉(zhuǎn)發(fā),若之前有IGMP(Internet Group Management Protocol)對(duì)應(yīng)組播組的加入報(bào)文,則還通過(guò)通信隧道進(jìn)行轉(zhuǎn)發(fā);
若接收到通信隧道中傳輸來(lái)的報(bào)文,則僅在該VRRP網(wǎng)關(guān)與與其直連的終端組成的局域網(wǎng)中轉(zhuǎn)發(fā);
若通過(guò)該VRRP網(wǎng)關(guān)與與其直連的終端組成的局域網(wǎng)接受到組播報(bào)文,則判斷其DR是否在本地,若是則在該VRRP網(wǎng)關(guān)與與其直連的終端組成的局域網(wǎng)中轉(zhuǎn)發(fā),否則通過(guò)通信隧道發(fā)送給對(duì)應(yīng)的DR。
本發(fā)明的有益效果是,通過(guò)上述一種VRRP網(wǎng)關(guān)、組網(wǎng)系統(tǒng)、雙主探測(cè)及修復(fù)方法,可以解決現(xiàn)有VRRP常用組網(wǎng)中,網(wǎng)絡(luò)故障導(dǎo)致VRRP出現(xiàn)雙主時(shí),不能自動(dòng)修復(fù)的問(wèn)題,相對(duì)于終端來(lái)說(shuō),其相當(dāng)于縮短了故障修復(fù)時(shí)間,終端用戶體驗(yàn)較好。
附圖說(shuō)明
圖1是現(xiàn)有技術(shù)及本發(fā)明實(shí)施例中VRRP組網(wǎng)系統(tǒng)的示意圖;
圖2是本發(fā)明中一種VRRP網(wǎng)關(guān)的系統(tǒng)框圖;
圖3是本發(fā)明實(shí)施例中雙主探測(cè)及修復(fù)方法應(yīng)用在VRRP主設(shè)備及備用設(shè)備上的流程圖。
具體實(shí)施方式
下面結(jié)合實(shí)施例及附圖,詳細(xì)描述本發(fā)明的技術(shù)方案。
本發(fā)明的一種VRRP網(wǎng)關(guān),其系統(tǒng)框圖參見(jiàn)圖2,包括VRRP處理模塊、隧道建立模塊、狀態(tài)探測(cè)模塊及靜態(tài)路由生成模塊,其中,VRRP處理模塊,用于運(yùn)行VRRP協(xié)議,并指明自身的心跳地址,將自身的心跳地址通過(guò)網(wǎng)絡(luò)發(fā)布出去,接收對(duì)端網(wǎng)關(guān)的心跳地址,當(dāng)VRRP定時(shí)器超時(shí)且未收到對(duì)端網(wǎng)關(guān)VRRP報(bào)文時(shí),按照VRRP協(xié)議進(jìn)行處理,保持或切換至VRRP主設(shè)備,通知狀態(tài)探測(cè)模塊探測(cè)對(duì)端網(wǎng)關(guān)VRRP狀態(tài),接收狀態(tài)探測(cè)模塊發(fā)送來(lái)的通知,若當(dāng)前并非為雙主狀態(tài),則保持當(dāng)前狀態(tài),若當(dāng)前為雙主狀態(tài)則,清除自身接口上所有的ARP(Address Resolution Protocol)信息,且重新學(xué)習(xí)ARP,并將學(xué)習(xí)到的ARP對(duì)應(yīng)的終端地址通告給對(duì)端網(wǎng)關(guān),若接收到對(duì)端網(wǎng)關(guān)通告來(lái)的終端地址,則通知靜態(tài)路由生成模塊,并判斷該終端地址是否與已學(xué)習(xí)的ARP相對(duì)應(yīng),若是則刪除該ARP,否則不處理,當(dāng)VRRP協(xié)議恢復(fù),則通知靜態(tài)路由生成模塊,刪除對(duì)應(yīng)的隧道上的靜態(tài)路由;隧道建立模塊,用于在自身的心跳地址及對(duì)端網(wǎng)關(guān)的心跳地址之間生成并維護(hù)一條通信隧道;狀態(tài)探測(cè)模塊,用于根據(jù)VRRP處理模塊的通知通過(guò)對(duì)端網(wǎng)關(guān)的心跳地址來(lái)探測(cè)對(duì)端網(wǎng)關(guān)當(dāng)前的VRRP狀態(tài),若探測(cè)到當(dāng)前為雙主則通知VRRP處理模塊,否則通知VRRP處理模塊并繼續(xù)探測(cè);靜態(tài)路由生成模塊用于根據(jù)VRRP處理模塊的通知中的終端地址在通信隧道上形成基于該終端的靜態(tài)路由,若已存在該終端地址對(duì)應(yīng)的ARP,則刪除該ARP,若接收到VRRP處理模塊通知的VRRP協(xié)議恢復(fù),則清除通信隧道上的所有靜態(tài)路由。
本發(fā)明的VRRP組網(wǎng)系統(tǒng),包括至少兩個(gè)VRRP網(wǎng)關(guān)及多個(gè)終端,各VRRP網(wǎng)關(guān)之間通過(guò)接口連接,每個(gè)終端只與一個(gè)VRRP網(wǎng)關(guān)一一對(duì)應(yīng)連接,各VRRP網(wǎng)關(guān)與網(wǎng)絡(luò)連接,其中,VRRP網(wǎng)關(guān)為上述一種VRRP網(wǎng)關(guān)。
本發(fā)明的雙主探測(cè)及修復(fù)方法,應(yīng)用于上述VRRP組網(wǎng)系統(tǒng)中,具體為:首先所有VRRP網(wǎng)關(guān)分別配置VRRP,并指明自身的心跳地址,將自身的心跳地址通過(guò)網(wǎng)絡(luò)發(fā)布出去,分別接收各對(duì)端網(wǎng)關(guān)的心跳地址,VRRP配置完成后,形成VRRP主設(shè)備及VRRP備用設(shè)備,然后各VRRP網(wǎng)關(guān)在自身的心跳地址及對(duì)端網(wǎng)關(guān)的心跳地址之間生成并維護(hù)一條通信隧道,當(dāng)各VRRP網(wǎng)關(guān)能夠正常接收到對(duì)端網(wǎng)關(guān)VRRP報(bào)文時(shí),正常運(yùn)行VRRP協(xié)議,不進(jìn)行其他處理,當(dāng)某一VRRP網(wǎng)關(guān)的VRRP定時(shí)器超時(shí)且未收到對(duì)端網(wǎng)關(guān)VRRP報(bào)文時(shí),則按照VRRP協(xié)議進(jìn)行處理,保持或切換至VRRP主設(shè)備,且探測(cè)對(duì)端網(wǎng)關(guān)VRRP狀態(tài),若該VRRP網(wǎng)關(guān)探測(cè)到當(dāng)前并非為雙主狀態(tài),則保持當(dāng)前狀態(tài),若當(dāng)前為雙主狀態(tài)則該VRRP網(wǎng)關(guān)清除自身接口上所有的ARP信息,且重新學(xué)習(xí)ARP,該VRRP網(wǎng)關(guān)再將新學(xué)習(xí)到的ARP對(duì)應(yīng)的終端地址通告給對(duì)端網(wǎng)關(guān),若該VRRP網(wǎng)關(guān)接收到對(duì)端網(wǎng)關(guān)通告來(lái)的終端地址,則在通信隧道上形成基于該終端的靜態(tài)路由,并判斷該終端地址是否與已學(xué)習(xí)的ARP相對(duì)應(yīng),若是則刪除該ARP;如果新學(xué)到ARP,則判斷是否存在該主機(jī)ip地址是否在隧道存在靜態(tài)路由,如果存在,就刪除靜態(tài)路由,并回到VRRP網(wǎng)關(guān)再將新學(xué)習(xí)到的ARP對(duì)應(yīng)的終端地址通告給對(duì)端網(wǎng)關(guān)那一步,該VRRP網(wǎng)關(guān)進(jìn)行報(bào)文轉(zhuǎn)發(fā),且該VRRP網(wǎng)關(guān)時(shí)刻判斷VRRP協(xié)議是否恢復(fù),若恢復(fù),則清除通信隧道上的所有靜態(tài)路由,若該VRRP網(wǎng)關(guān)在之前是切換至VRRP主設(shè)備,則此時(shí)需要切換回VRRP備用設(shè)備,回到正常運(yùn)行VRRP協(xié)議那一步,若該VRRP網(wǎng)關(guān)在之前是保持為VRRP主設(shè)備,則此時(shí)仍保持為VRRP主設(shè)備,回到正常運(yùn)行VRRP協(xié)議那一步,若未恢復(fù)則回到該VRRP網(wǎng)關(guān)將新學(xué)習(xí)到的ARP對(duì)應(yīng)的終端地址通告給對(duì)端網(wǎng)關(guān)那一步。
實(shí)施例
本發(fā)明實(shí)施例中一種VRRP網(wǎng)關(guān),其系統(tǒng)框圖參見(jiàn)圖2,包括VRRP處理模塊、隧道建立模塊、狀態(tài)探測(cè)模塊及靜態(tài)路由生成模塊。
其中,VRRP處理模塊用于運(yùn)行VRRP協(xié)議,并指明自身的心跳地址,將自身的心跳地址通過(guò)網(wǎng)絡(luò)發(fā)布出去,接收對(duì)端網(wǎng)關(guān)的心跳地址,當(dāng)能夠正常接收到對(duì)端網(wǎng)關(guān)VRRP報(bào)文時(shí),正常運(yùn)行VRRP協(xié)議,不進(jìn)行其他處理,當(dāng)VRRP定時(shí)器超時(shí)且未收到對(duì)端網(wǎng)關(guān)VRRP報(bào)文時(shí),按照VRRP協(xié)議進(jìn)行處理,保持或切換至VRRP主設(shè)備,通知狀態(tài)探測(cè)模塊探測(cè)對(duì)端網(wǎng)關(guān)VRRP狀態(tài),接收狀態(tài)探測(cè)模塊發(fā)送來(lái)的通知,若當(dāng)前并非為雙主狀態(tài),則保持當(dāng)前狀態(tài),若當(dāng)前為雙主狀態(tài)則周期性產(chǎn)生告警信息,并清除自身接口上所有的ARP信息,且重新學(xué)習(xí)ARP,并將新學(xué)習(xí)到的ARP對(duì)應(yīng)的終端地址通告給對(duì)端網(wǎng)關(guān),該通告可以以有序且周期的方式進(jìn)行,例如采用TCP方式,若接收到對(duì)端網(wǎng)關(guān)通告來(lái)的終端地址,則通知靜態(tài)路由生成模塊,并判斷該終端地址是否與已學(xué)習(xí)的ARP相對(duì)應(yīng),若是則刪除該ARP,否則不處理,當(dāng)VRRP協(xié)議恢復(fù),則通知靜態(tài)路由生成模塊。
隧道建立模塊用于在自身的心跳地址及對(duì)端網(wǎng)關(guān)的心跳地址之間生成并維護(hù)一條通信隧道。該通信隧道可以為GRE通信隧道或VXLAN通信隧道等。
狀態(tài)探測(cè)模塊用于根據(jù)VRRP處理模塊的通知通過(guò)對(duì)端網(wǎng)關(guān)的心跳地址來(lái)探測(cè)對(duì)端網(wǎng)關(guān)當(dāng)前的VRRP狀態(tài),若探測(cè)到當(dāng)前為雙主則通知VRRP處理模塊,否則通知VRRP處理模塊并繼續(xù)探測(cè)。這里,根據(jù)VRRP處理模塊的通知通過(guò)對(duì)端網(wǎng)關(guān)的心跳地址來(lái)探測(cè)對(duì)端網(wǎng)關(guān)當(dāng)前的VRRP狀態(tài),具體為:狀態(tài)探測(cè)模塊根據(jù)對(duì)端網(wǎng)關(guān)的心跳地址發(fā)送探測(cè)報(bào)文,若對(duì)端網(wǎng)關(guān)無(wú)應(yīng)答,則判定為對(duì)端網(wǎng)關(guān)故障,當(dāng)前并非雙主狀態(tài),若接收到對(duì)端網(wǎng)關(guān)的應(yīng)答,則根據(jù)該應(yīng)答判斷當(dāng)前是否為雙主狀態(tài),若是則判定為雙主狀態(tài),否則為非雙主狀態(tài)。探測(cè)報(bào)文中包含VRRP組ID、VRRP接口實(shí)地址、VRRP虛地址、VRF的RD及PIM的DR競(jìng)選相關(guān)信息等,這些信息能夠幫助VRRP網(wǎng)關(guān)完成雙主狀態(tài)的探測(cè)和PIM協(xié)議中DR選舉等。探測(cè)報(bào)文采用check和ack方式,即每個(gè)探測(cè)報(bào)文都會(huì)收到對(duì)端網(wǎng)關(guān)的應(yīng)答。
靜態(tài)路由生成模塊用于根據(jù)VRRP處理模塊的通知中的終端地址在通信隧道上形成基于該終端的靜態(tài)路由,若已存在該終端地址對(duì)應(yīng)的靜態(tài)路由,則刪除該靜態(tài)路由,若接收到VRRP處理模塊通知的VRRP協(xié)議恢復(fù),則清除通信隧道上的所有靜態(tài)路由。
本發(fā)明實(shí)施例中的VRRP組網(wǎng)系統(tǒng),其系統(tǒng)框圖參見(jiàn)圖1,包括兩個(gè)VRRP網(wǎng)關(guān)及四個(gè)終端,兩個(gè)VRRP網(wǎng)關(guān)分別為VRRP網(wǎng)關(guān)N1及VRRP網(wǎng)關(guān)N2,VRRP網(wǎng)關(guān)N1及VRRP網(wǎng)關(guān)N2之間通過(guò)接口連接,四個(gè)終端分別為終端H1、終端H2、終端H3及終端H4,終端H1及終端H2分別與VRRP網(wǎng)關(guān)N1的接口連接,終端H3及終端H4分別與VRRP網(wǎng)關(guān)N2的接口連接,VRRP網(wǎng)關(guān)N1及VRRP網(wǎng)關(guān)N2與網(wǎng)絡(luò)連接,其中,VRRP網(wǎng)關(guān)N1及VRRP網(wǎng)關(guān)N2均采用上述的一種VRRP網(wǎng)關(guān)。
使用時(shí),其流程圖參見(jiàn)圖3,具體步驟如下:
步驟1、所有VRRP網(wǎng)關(guān)分別配置VRRP,并指明自身的心跳地址,將自身的心跳地址通過(guò)網(wǎng)絡(luò)發(fā)布出去,分別接收各對(duì)端網(wǎng)關(guān)的心跳地址,VRRP配置完成后,形成VRRP主設(shè)備及VRRP備用設(shè)備。
這里,本例中由于采用兩個(gè)VRRP網(wǎng)關(guān),即VRRP網(wǎng)關(guān)N1及VRRP網(wǎng)關(guān)N2,則其各自的心跳地址舉例為N1_IP1及N2_IP1,本例以VRRP網(wǎng)關(guān)N1為VRRP主設(shè)備,而VRRP網(wǎng)關(guān)N2為VRRP備用設(shè)備為例,則VRRP網(wǎng)關(guān)N1的對(duì)端網(wǎng)關(guān)即為VRRP網(wǎng)關(guān)N2,而VRRP網(wǎng)關(guān)N2的對(duì)端網(wǎng)關(guān)即為VRRP網(wǎng)關(guān)N1。
步驟2、各VRRP網(wǎng)關(guān)在自身的心跳地址及對(duì)端網(wǎng)關(guān)的心跳地址之間生成并維護(hù)一條通信隧道。
則本例中即是VRRP網(wǎng)關(guān)N1與VRRP網(wǎng)關(guān)N2在N1_IP1及N2_IP1之間生成并維護(hù)一條通信隧道。
步驟3、當(dāng)各VRRP網(wǎng)關(guān)能夠正常接收到對(duì)端網(wǎng)關(guān)VRRP報(bào)文時(shí),正常運(yùn)行VRRP協(xié)議,不進(jìn)行其他處理,當(dāng)某一VRRP網(wǎng)關(guān)的VRRP定時(shí)器超時(shí)且未收到對(duì)端網(wǎng)關(guān)VRRP報(bào)文時(shí),則按照VRRP協(xié)議進(jìn)行處理,保持或切換至VRRP主設(shè)備,且探測(cè)對(duì)端網(wǎng)關(guān)VRRP狀態(tài)。
則本例中,若VRRP網(wǎng)關(guān)N1的VRRP定時(shí)器超時(shí)且未收到VRRP網(wǎng)關(guān)N2的VRRP報(bào)文時(shí),則按照VRRP協(xié)議進(jìn)行處理,保持為VRRP主設(shè)備;若VRRP網(wǎng)關(guān)N2的VRRP定時(shí)器超時(shí)且未收到VRRP網(wǎng)關(guān)N1的VRRP報(bào)文時(shí),則按照VRRP協(xié)議進(jìn)行處理,切換為VRRP主設(shè)備。
步驟4、若該VRRP網(wǎng)關(guān)探測(cè)到當(dāng)前并非為雙主狀態(tài),則保持當(dāng)前狀態(tài),若當(dāng)前為雙主狀態(tài)則周期性產(chǎn)生告警信息,并進(jìn)入步驟5。
步驟5、該VRRP網(wǎng)關(guān)清除自身接口上所有的ARP信息,且重新學(xué)習(xí)ARP。
步驟6、該VRRP網(wǎng)關(guān)將新學(xué)習(xí)到的ARP對(duì)應(yīng)的終端地址通告給對(duì)端網(wǎng)關(guān)。
這里,VRRP網(wǎng)關(guān)N1將新學(xué)習(xí)到的ARP對(duì)應(yīng)的終端地址通過(guò)N2_IP1發(fā)送給VRRP網(wǎng)關(guān)N2,而VRRP網(wǎng)關(guān)N2將新學(xué)習(xí)到的ARP對(duì)應(yīng)的終端地址通過(guò)N1_IP1發(fā)送給VRRP網(wǎng)關(guān)N1。
步驟7、若該VRRP網(wǎng)關(guān)接收到對(duì)端網(wǎng)關(guān)通告來(lái)的終端地址,則在通信隧道上形成基于該終端的靜態(tài)路由,若已存在該終端地址對(duì)應(yīng)的ARP,若是則刪除該ARP,如果新學(xué)到ARP,則判斷是否存在該主機(jī)IP地址是否在隧道存在靜態(tài)路由,如果存在,就刪除靜態(tài)路由,并回到步驟6。
步驟8、該VRRP網(wǎng)關(guān)進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
本步驟中,在該VRRP網(wǎng)關(guān)進(jìn)行報(bào)文轉(zhuǎn)發(fā)的過(guò)程中,若所接收到的報(bào)文經(jīng)過(guò)查詢但未查詢到對(duì)應(yīng)的靜態(tài)路由時(shí),會(huì)查詢到對(duì)應(yīng)的該VRRP網(wǎng)關(guān)的輸出接口,在該輸出接口進(jìn)行報(bào)文轉(zhuǎn)發(fā),且此時(shí)該VRRP網(wǎng)關(guān)學(xué)習(xí)該報(bào)文中的ARP信息,同時(shí)轉(zhuǎn)發(fā)給對(duì)端設(shè)備,使對(duì)端網(wǎng)關(guān)同時(shí)學(xué)習(xí)該ARP。即若無(wú)法命中靜態(tài)路由,就會(huì)命中直連接口路由,如果此時(shí)有ARP,則按照ARP轉(zhuǎn)發(fā),如果沒(méi)有ARP,則除了在該直連接口學(xué)習(xí)ARP外,還應(yīng)該將該報(bào)文通過(guò)隧道轉(zhuǎn)發(fā)到對(duì)端,以便對(duì)端學(xué)習(xí)ARP。
若接收到ARP請(qǐng)求本網(wǎng)段其他終端地址解析時(shí),則查找該VRRP網(wǎng)關(guān)中的靜態(tài)路由,若存在對(duì)應(yīng)終端的靜態(tài)路由,則以ARP代理的方式應(yīng)答,若不存在對(duì)應(yīng)終端的靜態(tài)路由,則緩存該終端地址,并周期性的通過(guò)通信隧道向該終端地址發(fā)送報(bào)文進(jìn)行探測(cè),觸發(fā)對(duì)端網(wǎng)關(guān)的ARP解析。
若接收到網(wǎng)絡(luò)中的報(bào)文,若該報(bào)文的目的地址在對(duì)端網(wǎng)關(guān)時(shí),則會(huì)匹配到對(duì)應(yīng)終端的靜態(tài)路由,通過(guò)通信隧道發(fā)送到對(duì)端網(wǎng)關(guān),對(duì)端網(wǎng)關(guān)再進(jìn)行ARP轉(zhuǎn)發(fā);若接收到網(wǎng)絡(luò)中的組播報(bào)文,則在該VRRP網(wǎng)關(guān)與與其直連的終端組成的局域網(wǎng)中轉(zhuǎn)發(fā),若之前有IGMP對(duì)應(yīng)組播組的加入報(bào)文,則還通過(guò)通信隧道進(jìn)行轉(zhuǎn)發(fā);若接收到通信隧道中傳輸來(lái)的報(bào)文,則僅在該VRRP網(wǎng)關(guān)與與其直連的終端組成的局域網(wǎng)中轉(zhuǎn)發(fā);若該VRRP網(wǎng)關(guān)需要發(fā)出協(xié)議組播報(bào)文,則分別在該VRRP網(wǎng)關(guān)與與其直連的終端組成的局域網(wǎng)中及通信隧道進(jìn)行轉(zhuǎn)發(fā);若通過(guò)該VRRP網(wǎng)關(guān)與與其直連的終端組成的局域網(wǎng)接受到組播報(bào)文,則判斷其DR是否在本地,若是則在該VRRP網(wǎng)關(guān)與與其直連的終端組成的局域網(wǎng)中轉(zhuǎn)發(fā),否則通過(guò)通信隧道發(fā)送給對(duì)應(yīng)的DR。
步驟9、該VRRP網(wǎng)關(guān)時(shí)刻判斷VRRP協(xié)議是否恢復(fù),若恢復(fù),則清除通信隧道上的所有靜態(tài)路由,若該VRRP網(wǎng)關(guān)在步驟3中切換至VRRP主設(shè)備,則此時(shí)需要切換回VRRP備用設(shè)備,回到步驟3,若該VRRP網(wǎng)關(guān)在步驟3中保持為VRRP主設(shè)備,則此時(shí)仍保持為VRRP主設(shè)備,回到步驟3,若未恢復(fù)則回到步驟6。
本例中,參見(jiàn)圖3可見(jiàn),若VRRP協(xié)議恢復(fù),則VRRP網(wǎng)關(guān)N1此時(shí)保持為VRRP主設(shè)備,而VRRP網(wǎng)關(guān)N2此時(shí)則切換回VRRP備用設(shè)備。
本例中,若VRRP網(wǎng)關(guān)不止兩個(gè)時(shí),其具體方案與上述相同,只是非數(shù)據(jù)轉(zhuǎn)發(fā)報(bào)文還可以采用組播的方式發(fā)送給所有其他VRRP網(wǎng)關(guān)。
通過(guò)上述方案可見(jiàn),由于VRRP網(wǎng)關(guān)之間可通過(guò)心跳地址進(jìn)行協(xié)議通信,則可完成VRRP組網(wǎng)系統(tǒng)的狀態(tài)探測(cè)和PIM的DR選舉等,且由于VRRP網(wǎng)關(guān)間維護(hù)一條通信隧道,則可用于雙主狀態(tài)出現(xiàn)后的數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā),在雙主狀態(tài)出現(xiàn)后,通過(guò)在通信隧道上形成終端的靜態(tài)路由,使得報(bào)文轉(zhuǎn)發(fā)優(yōu)先走通信隧道,從而實(shí)現(xiàn)了數(shù)據(jù)報(bào)文的轉(zhuǎn)發(fā),對(duì)終端而言,相當(dāng)于縮短了故障修復(fù)時(shí)間,不會(huì)因雙主狀態(tài)而影響數(shù)據(jù)報(bào)文的轉(zhuǎn)發(fā)。