本發(fā)明涉及技術(shù)通信技術(shù)領(lǐng)域,特別是涉及一種被監(jiān)控鄰居初始路由信息發(fā)送方法及裝置。
背景技術(shù):
在通信技術(shù)領(lǐng)域中,用于監(jiān)控某一邊界網(wǎng)關(guān)協(xié)議BGP路由器的鄰居路由器的監(jiān)控服務(wù)器,例如遵循邊界網(wǎng)關(guān)協(xié)議監(jiān)控協(xié)議的監(jiān)控服務(wù)器(以下均簡(jiǎn)稱為BMP監(jiān)控服務(wù)器)的應(yīng)用變得越來越廣泛。BMP監(jiān)控服務(wù)器可以對(duì)某一BGP路由器的鄰居路由器的路由信息、狀態(tài)信息等進(jìn)行監(jiān)控,并且,其監(jiān)控的各類信息中,該鄰居路由器的路由信息最為重要,該鄰居路由器的路由信息包括初始路由信息(BMP監(jiān)控服務(wù)器對(duì)該鄰居路由器進(jìn)行監(jiān)控前,該鄰居路由器內(nèi)已存儲(chǔ)的路由信息)和實(shí)時(shí)路由信息(BMP監(jiān)控服務(wù)器對(duì)該鄰居路由器進(jìn)行監(jiān)控后,該鄰居路由器新接收的路由信息)。
下面以一個(gè)具體的例子對(duì)BMP監(jiān)控服務(wù)器的工作原理進(jìn)行說明。
假設(shè)BMP監(jiān)控服務(wù)器為S1,BGP路由器A的鄰居路由器為BGP路由器B和BGP路由器C,BGP路由器A內(nèi)可以預(yù)先配置有S1所監(jiān)控的路由器的信息(假設(shè)該信息為B的信息),這樣,A根據(jù)該信息可以獲知S1所監(jiān)控的為B。實(shí)際工作時(shí),S1需要與A建立連接,例如傳輸控制協(xié)議TCP連接。由于B是A的鄰居路由器,故A內(nèi)已存儲(chǔ)有B已接收到的路由信息。若A直接將自身已存儲(chǔ)的來自于B的路由信息發(fā)送至S1,S1內(nèi)會(huì)缺少B的實(shí)時(shí)路由信息。為了達(dá)到有效地監(jiān)控的目的,A會(huì)向B發(fā)送用于獲得路由信息的refresh請(qǐng)求。當(dāng)B接收到該請(qǐng)求后,B會(huì)將初始路由信息,以及實(shí)時(shí)路由信息均發(fā)送至A,A則將接收到的路由信息發(fā)送至S1。這樣,S1就能夠收集到B的所有路由信息,S1能夠有效地對(duì)B進(jìn)行監(jiān)控。
容易理解的是,B的初始路由信息量可能會(huì)非常大,故S1收集B的初始路由信息的過程可能需要花費(fèi)特別長(zhǎng)的時(shí)間。A在將B的初始路由信息全部發(fā)送至S1后,需要向S1發(fā)送一個(gè)表征初始路由信息收集完畢的EOR報(bào)文,以使得S1在獲得該報(bào)文之后,對(duì)B的初始路由信息進(jìn)行分析或處理。由于B的初始路由信息和實(shí)時(shí)路由信息是混雜在一起發(fā)送至A的,A不能分辨B的初始路由信息是什么時(shí)候收集完畢的,A無法向S1發(fā)送該報(bào)文。
因此,當(dāng)通過監(jiān)控服務(wù)器對(duì)某一BGP路由器的鄰居路由器進(jìn)行監(jiān)控時(shí),如何縮短監(jiān)控服務(wù)器收集該鄰居路由器的初始路由信息所需花費(fèi)的時(shí)間,以及如何保證監(jiān)控服務(wù)器能夠確定該鄰居路由器的初始路由信息收集完畢的時(shí)間是一個(gè)亟待解決的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提供一種被監(jiān)控鄰居初始路由信息發(fā)送方法及裝置,以在通過監(jiān)控服務(wù)器對(duì)某一BGP路由器的鄰居路由器進(jìn)行監(jiān)控時(shí),縮短監(jiān)控服務(wù)器收集該鄰居路由器的初始路由信息所需花費(fèi)的時(shí)間,以及保證監(jiān)控服務(wù)器能夠確定該鄰居路由器的初始路由信息收集完畢的時(shí)間。
本發(fā)明實(shí)施例提供了一種被監(jiān)控鄰居初始路由信息發(fā)送方法,應(yīng)用于第一邊界網(wǎng)關(guān)協(xié)議BGP路由器,所述第一BGP路由器與監(jiān)控服務(wù)器連接,所述監(jiān)控服務(wù)器用于監(jiān)控至少一個(gè)第二BGP路由器,各所述第二BGP路由器均為所述第一BGP路由器的鄰居路由器,所述方法包括:
在目標(biāo)第二BGP路由器對(duì)應(yīng)的預(yù)定條件滿足的情況下,將本地已存儲(chǔ)的、來自于所述目標(biāo)第二BGP路由器的路由信息封裝為至少一個(gè)第一路由報(bào)文,為本地已存儲(chǔ)的、且已封裝的來自于所述目標(biāo)第二BGP路由器的路由信息添加第一標(biāo)記,其中,所述目標(biāo)第二BGP路由器為至少一個(gè)第二BGP路由器中的任一個(gè);
依次發(fā)送所有第一路由報(bào)文至所述監(jiān)控服務(wù)器后,向所述監(jiān)控服務(wù)器發(fā)送用于表征所述目標(biāo)第二BGP路由器的初始路由信息發(fā)送完畢的結(jié)束報(bào)文;
若在發(fā)送所述第一路由報(bào)文的同時(shí),接收到來自所述目標(biāo)第二BGP路由器的第二路由報(bào)文,且對(duì)所述第二路由報(bào)文進(jìn)行解封裝后獲得的為針對(duì)具有所述第一標(biāo)記的路由信息的更新信息時(shí),為待更新路由信息添加第二標(biāo)記,并更新待更新路由信息;
當(dāng)發(fā)送完結(jié)束報(bào)文后,將具有所述第二標(biāo)記的路由信息封裝為第三路由報(bào)文,刪除本地已存儲(chǔ)的、具有所述第二標(biāo)記的各路由信息上的第二標(biāo)記,將所述第三路由報(bào)文發(fā)送至所述監(jiān)控服務(wù)器,以使得所述監(jiān)控服務(wù)器在接收并解封裝所述第三路由報(bào)文后,更新相應(yīng)的路由信息。
本發(fā)明實(shí)施例還提供了一種被監(jiān)控鄰居初始路由信息發(fā)送裝置,應(yīng)用于第一邊界網(wǎng)關(guān)協(xié)議BGP路由器,所述第一BGP路由器與監(jiān)控服務(wù)器連接,所述監(jiān)控服務(wù)器用于監(jiān)控至少一個(gè)第二BGP路由器,各所述第二BGP路由器均為所述第一BGP路由器的鄰居路由器,所述裝置包括:
第一處理模塊,用于在目標(biāo)第二BGP路由器對(duì)應(yīng)的預(yù)定條件滿足的情況下,將本地已存儲(chǔ)的、來自于所述目標(biāo)第二BGP路由器的路由信息封裝為至少一個(gè)第一路由報(bào)文,為本地已存儲(chǔ)的、且已封裝的來自于所述目標(biāo)第二BGP路由器的路由信息添加第一標(biāo)記,其中,所述目標(biāo)第二BGP路由器為至少一個(gè)第二BGP路由器中的任一個(gè);
第一發(fā)送模塊,用于依次發(fā)送所有第一路由報(bào)文至所述監(jiān)控服務(wù)器后,向所述監(jiān)控服務(wù)器發(fā)送用于表征所述目標(biāo)第二BGP路由器的初始路由信息發(fā)送完畢的結(jié)束報(bào)文;
第二處理模塊,用于若在發(fā)送所述第一路由報(bào)文的同時(shí),接收到來自所述目標(biāo)第二BGP路由器的第二路由報(bào)文,且對(duì)所述第二路由報(bào)文進(jìn)行解封裝后獲得的為針對(duì)具有所述第一標(biāo)記的路由信息的更新信息時(shí),為待更新路由信息添加第二標(biāo)記,并更新待更新路由信息;
第三處理模塊,用于當(dāng)發(fā)送完結(jié)束報(bào)文后,將具有所述第二標(biāo)記的路由信息封裝為第三路由報(bào)文,刪除本地已存儲(chǔ)的、具有所述第二標(biāo)記的各路由信息上的第二標(biāo)記,將所述第三路由報(bào)文發(fā)送至所述監(jiān)控服務(wù)器,以使得所述監(jiān)控服務(wù)器在接收并解封裝所述第三路由報(bào)文后,更新相應(yīng)的路由信息。
與現(xiàn)有技術(shù)相比,本方案中,第一BGP路由器是將自身內(nèi)部已存儲(chǔ)的、來自于目標(biāo)第二BGP路由器的初始路由信息直接發(fā)送至監(jiān)控服務(wù)器的,目標(biāo)第二BGP路由器無需重新向第一BGP路由器發(fā)送所有初始路由信息,故監(jiān)控服務(wù)器收集目標(biāo)第二BGP路由器的初始路由信息所需花費(fèi)的時(shí)間會(huì)大大地縮減。此外,在第一BGP路由器將目標(biāo)第二BGP路由器的初始路由信息均發(fā)送至監(jiān)控服務(wù)器后,第一BGP路由器才會(huì)將目標(biāo)第二BGP路由器的實(shí)時(shí)路由信息發(fā)送至監(jiān)控服務(wù)器,即初始路由信息和實(shí)時(shí)路由信息是分開發(fā)送的,故第一BGP路由器可以向監(jiān)控服務(wù)器發(fā)送用于表征目標(biāo)第二BGP路由器的初始路由信息發(fā)送完畢的結(jié)束報(bào)文,相應(yīng)地,監(jiān)控服務(wù)器能夠確定出目標(biāo)第二BGP路由器的初始路由信息收集完畢的時(shí)間??梢钥闯?,當(dāng)通過監(jiān)控服務(wù)器對(duì)某一BGP路由器的鄰居路由器進(jìn)行監(jiān)控時(shí),本方案可以有效地縮短監(jiān)控服務(wù)器收集該鄰居路由器的初始路由信息所需花費(fèi)的時(shí)間,以及保證監(jiān)控服務(wù)器能夠確定該鄰居路由器的初始路由信息收集完畢的時(shí)間。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為監(jiān)控服務(wù)器、第一BGP路由器和第二BGP路由器的組網(wǎng)結(jié)構(gòu)示意圖;
圖2為本發(fā)明實(shí)施例所提供的一種被監(jiān)控鄰居初始路由信息發(fā)送方法的流程圖;
圖3為第一BGP路由器的工作流程示意圖;
圖4為本發(fā)明實(shí)施例所提供的一種被監(jiān)控鄰居初始路由信息發(fā)送裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
為了解決現(xiàn)有技術(shù)存在的問題,本發(fā)明實(shí)施例提供了一種被監(jiān)控鄰居初始路由信息發(fā)送方法及裝置。
下面首先對(duì)本發(fā)明實(shí)施例所提供的一種被監(jiān)控鄰居初始路由信息發(fā)送方法進(jìn)行說明。
需要說明的是,本發(fā)明實(shí)施例所提供的一種被監(jiān)控鄰居初始路由信息發(fā)送方法可以應(yīng)用于第一邊界網(wǎng)關(guān)協(xié)議BGP路由器。具體地,如圖1所示,第一BGP路由器與監(jiān)控服務(wù)器連接,監(jiān)控服務(wù)器用于監(jiān)控至少一個(gè)第二BGP路由器,各第二BGP路由器均為第一BGP路由器的鄰居路由器。
需要說明的是,第一BGP路由器和第二BGP路由器可以位于同一自治域內(nèi),此時(shí)第一BGP路由器和第二BGP路由器為內(nèi)部邊界網(wǎng)關(guān)協(xié)議IGBP鄰居。當(dāng)然,第一BGP路由器和第二BGP路由器也可以位于不同自治域內(nèi),此時(shí)第一BGP路由器和第二BGP路由器為外部邊界網(wǎng)關(guān)協(xié)議EGBP鄰居。
另外,監(jiān)控服務(wù)器需要監(jiān)控的可以是第一BGP路由器的所有鄰居路由器,此時(shí),至少一個(gè)第二BGP路由器構(gòu)成了第一BGP路由器的所有鄰居路由器。當(dāng)然,監(jiān)控服務(wù)器需要監(jiān)控的也可以是第一BGP路由器的部分鄰居路由器,此時(shí),至少一個(gè)第一BGP路由器為第一BGP路由器的所有鄰居路由器中的一部分。
本領(lǐng)域技術(shù)人員可以理解的是,由于各第二BGP路由器均為第一BGP路由器的鄰居路由器,故第一BGP路由器內(nèi)本身就存儲(chǔ)有各第二BGP路由器內(nèi)當(dāng)前已存儲(chǔ)的所有路由信息。
需要說明的是,監(jiān)控服務(wù)器可以為BMP(Border Gateway ProtocolMonitoring Protocol,邊界網(wǎng)關(guān)協(xié)議監(jiān)控協(xié)議)監(jiān)控服務(wù)器,第一BGP路由器與BMP監(jiān)控服務(wù)器之間可以為TCP(Transmission Control Protocol,傳輸控制協(xié)議)連接。下述實(shí)施例均以監(jiān)控服務(wù)器為BMP監(jiān)控服務(wù)器,且第一BGP路由器與BMP監(jiān)控服務(wù)器之間為TCP連接的情況為例進(jìn)行說明。
參見圖2,圖中示出了本發(fā)明實(shí)施例所提供的一種被監(jiān)控鄰居初始路由信息發(fā)送方法的流程圖。如圖2所示,該方法可以包括如下步驟:
S201,在目標(biāo)第二BGP路由器對(duì)應(yīng)的預(yù)定條件滿足的情況下,將本地已存儲(chǔ)的、來自于目標(biāo)第二BGP路由器的路由信息封裝為至少一個(gè)第一路由報(bào)文,為本地已存儲(chǔ)的、且已封裝的來自于目標(biāo)第二BGP路由器的路由信息添加第一標(biāo)記,其中,目標(biāo)第二BGP路由器為至少一個(gè)第二BGP路由器中的任一個(gè)。
其中,第一標(biāo)記可以為batch標(biāo)記,當(dāng)?shù)谝籅GP路由器的本地已存儲(chǔ)的某一路由信息上具有batch標(biāo)記時(shí),這表示該路由信息已經(jīng)被封裝至第一路由報(bào)文中了。
可以理解的是,第一BGP路由器的本地已存儲(chǔ)的、來自于目標(biāo)第二BGP路由器的路由信息即為目標(biāo)第二BGP路由器的初始路由信息,該初始路由信息的條數(shù)往往較多,相應(yīng)地,該初始路由信息一般需要被封裝為若干個(gè)第一路由報(bào)文,并依次發(fā)送至監(jiān)控服務(wù)器。
需要強(qiáng)調(diào)的是,第二BGP路由器對(duì)應(yīng)的預(yù)定條件的具體形式多樣,為了布局清楚,后續(xù)進(jìn)行舉例介紹。
S202,依次發(fā)送所有第一路由報(bào)文至監(jiān)控服務(wù)器后,向監(jiān)控服務(wù)器發(fā)送用于表征目標(biāo)第二BGP路由器的初始路由信息發(fā)送完畢的結(jié)束報(bào)文。
可以理解的是,第一路由報(bào)文的封裝操作和第一路由報(bào)文的發(fā)送操作可以是并行的。具體來說,在第一個(gè)第一路由報(bào)文封裝完成之后,第一BGP路由器可以一邊封裝第二個(gè)第一路由報(bào)文,一邊將封裝好的第一個(gè)第一路由報(bào)文發(fā)送至監(jiān)控服務(wù)器。類似地,在第二個(gè)第一路由報(bào)文封裝完成之后,第一BGP路由器可以一邊封裝第三個(gè)第一路由報(bào)文,一邊將封裝好的第二個(gè)第一路由報(bào)文發(fā)送至監(jiān)控服務(wù)器,后續(xù)過程依此類推,在此不再贅述??梢钥闯?,第一路由報(bào)文的發(fā)送效率可以得到較好地保證。
需要說明的是,第一路由報(bào)文的封裝操作和第一路由報(bào)文的發(fā)送操作也可以不是并行的。具體來說,第一BGP路由器可以在將若干個(gè)第一路由報(bào)文分別封裝好之后,再將若干個(gè)第一路由報(bào)文依次發(fā)送至監(jiān)控服務(wù)器,這也是可行的。
對(duì)于監(jiān)控服務(wù)器來說,在接收到任一個(gè)第一路由報(bào)文后,其會(huì)對(duì)接收到的該第一路由報(bào)文進(jìn)行解封裝,并存儲(chǔ)解封裝后獲得的路由信息。這樣,在第一BGP路由器將所有第一路由報(bào)文均發(fā)送至監(jiān)控服務(wù)器,且監(jiān)控服務(wù)器對(duì)接收到的所有第一路由報(bào)文均進(jìn)行解封裝后,監(jiān)控服務(wù)器內(nèi)將會(huì)存儲(chǔ)有目標(biāo)第二BGP路由器的所有初始信息,故第一BGP路由器可以向監(jiān)控服務(wù)器發(fā)送用于表征目標(biāo)第二BGP路由器的初始路由信息發(fā)送完畢的結(jié)束報(bào)文,例如EOR報(bào)文。當(dāng)監(jiān)控服務(wù)器接收到該結(jié)束報(bào)文后,監(jiān)控服務(wù)器就可以根據(jù)實(shí)際需求,對(duì)目標(biāo)第二BGP路由器的初始路由信息進(jìn)行分析或處理。
S203,若在發(fā)送第一路由報(bào)文的同時(shí),接收到來自目標(biāo)第二BGP路由器的第二路由報(bào)文,且對(duì)第二路由報(bào)文進(jìn)行解封裝后獲得的為針對(duì)具有第一標(biāo)記的路由信息的更新信息時(shí),為待更新路由信息添加第二標(biāo)記,并更新待更新路由信息。
其中,第二標(biāo)記可以為batchchg標(biāo)記,當(dāng)?shù)谝籅GP路由器的本地已存儲(chǔ)的某一路由信息上具有batchchg標(biāo)記時(shí),這表示該路由信息在被封裝至第一路由報(bào)文后發(fā)生了更改。
可以理解的是,在第一路由報(bào)文的發(fā)送過程中,第一BGP路由器可能會(huì)接收到來自于目標(biāo)第二BGP路由器的第二路由報(bào)文(可以認(rèn)為是實(shí)時(shí)路由信息)。此時(shí),第一BGP路由器會(huì)對(duì)接收到的第二路由報(bào)文進(jìn)行解封裝。在解封裝之后,第一BGP路由器獲得的報(bào)文信息存在三種可能的類型,分別是:全新完整的路由信息、對(duì)已有路由信息的更新信息,以及對(duì)已有路由信息的刪除信息。
需要說明的是,在對(duì)第二路由報(bào)文進(jìn)行解封裝后獲得的為對(duì)已有路由信息的更新信息時(shí),根據(jù)更新信息的針對(duì)對(duì)象的不同,后續(xù)處理過程存在著一定的差異。
具體來說,若解封裝后獲得的更新信息的針對(duì)對(duì)象是具有第一標(biāo)記的路由信息,很顯然,該更新信息的針對(duì)對(duì)象,即待更新路由信息已經(jīng)被封裝至第一路由報(bào)文中,并被發(fā)送至監(jiān)控服務(wù)器了。由于監(jiān)控服務(wù)器當(dāng)前可能正在接收第一路由報(bào)文和對(duì)接收到的第一路由報(bào)文進(jìn)行解封裝,為了避免增加監(jiān)控服務(wù)器的負(fù)擔(dān),在發(fā)送結(jié)束報(bào)文之前,第一BGP路由器僅會(huì)根據(jù)上述更新信息來更新本地存儲(chǔ)的待更新路由信息,并為待更新路由信息添加第二標(biāo)記,其并不會(huì)將經(jīng)過更新的路由信息封裝為路由報(bào)文發(fā)送至監(jiān)控服務(wù)器。也就是說,在獲得結(jié)束報(bào)文之前,監(jiān)控服務(wù)器僅需要接收第一路由報(bào)文、對(duì)接收到的第一路由報(bào)文進(jìn)行解封裝,以及存儲(chǔ)對(duì)第一路由報(bào)文進(jìn)行解封裝后獲得的路由信息,而無需執(zhí)行其他的操作。
相反,若解封裝后獲得的更新信息的針對(duì)對(duì)象是不具有第一標(biāo)記的路由信息,很顯然,該更新信息的針對(duì)對(duì)象,即待更新路由信息還未被封裝至第一路由報(bào)文中,也未被發(fā)送至監(jiān)控服務(wù)器。這時(shí),第一BGP路由器可以直接根據(jù)上述更新信息來更新待更新路由信息,當(dāng)待更新路由信息被更新之后,經(jīng)過更新的路由信息就會(huì)被封裝至第一路由報(bào)文中,并發(fā)送至監(jiān)控服務(wù)器。當(dāng)監(jiān)控服務(wù)器獲得該第一路由報(bào)文并對(duì)該第一路由報(bào)文解封裝后,監(jiān)控服務(wù)器獲得的就是已經(jīng)經(jīng)過更新了的路由信息。
S204,當(dāng)發(fā)送完結(jié)束報(bào)文后,將具有第二標(biāo)記的路由信息封裝為第三路由報(bào)文,刪除本地已存儲(chǔ)的、具有第二標(biāo)記的各路由信息上的第二標(biāo)記,將第三路由報(bào)文發(fā)送至監(jiān)控服務(wù)器,以使得監(jiān)控服務(wù)器在接收并解封裝第三路由報(bào)文后,更新相應(yīng)的路由信息。
很明顯,在S203中,當(dāng)對(duì)第二路由報(bào)文解封裝后獲得為針對(duì)具有第一標(biāo)記的路由信息的更新信息時(shí),第一BGP路由器僅僅對(duì)本地存儲(chǔ)的待更新路由信息進(jìn)行了更新,并為待更新路由信息添加了第二標(biāo)記,監(jiān)控服務(wù)器內(nèi)的路由信息并未進(jìn)行相應(yīng)的更新。為了使監(jiān)控服務(wù)器內(nèi)的路由信息也能夠進(jìn)行相應(yīng)的更新,在將結(jié)束報(bào)文發(fā)送至監(jiān)控服務(wù)器后,第一BGP路由器可以遍歷本地當(dāng)前存儲(chǔ)的路由信息,以查找到具有第二標(biāo)記的路由報(bào)文。接下來,第一BGP路由器可以將具有第二標(biāo)記的路由信息封裝為第三路由報(bào)文,刪除本地已存儲(chǔ)的、具有第二標(biāo)記的各路由信息上的第二標(biāo)記,并將第三路由報(bào)文發(fā)送至監(jiān)控服務(wù)器??梢岳斫獾氖?,若第一BGP路由器的本地已存儲(chǔ)的、具有第二標(biāo)記的路由信息的數(shù)量較多,那么這些路由信息就會(huì)被封裝為若干個(gè)第三路由報(bào)文,并依次發(fā)送至監(jiān)控服務(wù)器。這樣,當(dāng)監(jiān)控服務(wù)器接收并解封裝第三路由報(bào)文后,監(jiān)控服務(wù)器就會(huì)獲得相應(yīng)路由信息的更新信息,監(jiān)控服務(wù)器可以根據(jù)獲得的更新信息,對(duì)自身內(nèi)部存儲(chǔ)的、相應(yīng)的路由信息進(jìn)行更新。最終,監(jiān)控服務(wù)器內(nèi)存儲(chǔ)的目標(biāo)第二BGP路由器的路由信息將會(huì)與目標(biāo)第二BGP路由器內(nèi)存儲(chǔ)的路由信息一致。
本方案中,在目標(biāo)第二BGP路由器對(duì)應(yīng)的預(yù)定條件滿足的情況下,第一BGP路由器會(huì)將本地已存儲(chǔ)的、來自于目標(biāo)第二BGP路由器的路由信息,即目標(biāo)第二BGP路由器的初始路由信息封裝為第一路由報(bào)文并發(fā)送至監(jiān)控服務(wù)器。在發(fā)送第一路由報(bào)文的同時(shí),如果第一BGP路由器接收到了來自于目標(biāo)第二BGP路由器的第二路由報(bào)文,且對(duì)第二路由報(bào)文進(jìn)行解封裝后獲得的為針對(duì)已發(fā)送至監(jiān)控服務(wù)器的初始路由信息的更新信息時(shí),第一BGP路由器僅會(huì)更新自身內(nèi)部存儲(chǔ)的待更新路由信息。在目標(biāo)第二BGP路由器的初始路由信息均發(fā)送至監(jiān)控服務(wù)器,且向監(jiān)控服務(wù)器發(fā)送結(jié)束報(bào)文后,第一BGP路由器才會(huì)將經(jīng)過更新的初始路由信息封裝為第三路由報(bào)文并發(fā)送至監(jiān)控服務(wù)器,以使得監(jiān)控服務(wù)器在接收并解封裝第三路由報(bào)文后,對(duì)相應(yīng)的路由信息進(jìn)行更新。
與現(xiàn)有技術(shù)相比,本方案中,第一BGP路由器是將自身內(nèi)部已存儲(chǔ)的、來自于目標(biāo)第二BGP路由器的路由信息,即第二BGP路由器的初始路由信息直接發(fā)送至監(jiān)控服務(wù)器的,目標(biāo)第二BGP路由器無需重新向第一BGP路由器發(fā)送所有初始路由信息,故監(jiān)控服務(wù)器收集目標(biāo)第二BGP路由器的初始路由信息所需花費(fèi)的時(shí)間會(huì)大大地縮減。此外,在第一BGP路由器將目標(biāo)第二BGP路由器的初始路由信息均發(fā)送至監(jiān)控服務(wù)器后,第一BGP路由器才會(huì)將目標(biāo)第二BGP路由器的實(shí)時(shí)路由信息發(fā)送至監(jiān)控服務(wù)器,即初始路由信息和實(shí)時(shí)路由信息是分開發(fā)送的,故第一BGP路由器可以向監(jiān)控服務(wù)器發(fā)送用于表征目標(biāo)第二BGP路由器的初始路由信息發(fā)送完畢的結(jié)束報(bào)文,相應(yīng)地,監(jiān)控服務(wù)器能夠確定出目標(biāo)第二BGP路由器的初始路由信息收集完畢的時(shí)間。
可以看出,當(dāng)通過監(jiān)控服務(wù)器對(duì)某一BGP路由器的鄰居路由器進(jìn)行監(jiān)控時(shí),本方案可以有效地縮短監(jiān)控服務(wù)器收集該鄰居路由器的初始路由信息所需花費(fèi)的時(shí)間,以及保證監(jiān)控服務(wù)器能夠確定該鄰居路由器的初始路由信息收集完畢的時(shí)間。
可選地,該方法還可以包括:
若在發(fā)送第一路由報(bào)文的同時(shí),接收到來自目標(biāo)第二BGP路由器的第二路由報(bào)文,且對(duì)第二路由報(bào)文進(jìn)行解封裝后獲得的為針對(duì)具有第一標(biāo)記的路由信息的刪除信息時(shí),為待刪除路由信息添加第三標(biāo)記;
當(dāng)發(fā)送完結(jié)束報(bào)文后,生成用于刪除具有第三標(biāo)記的路由信息的報(bào)文信息,將生成的報(bào)文信息封裝為第四路由報(bào)文后發(fā)送至監(jiān)控服務(wù)器,以使得監(jiān)控服務(wù)器在接收并解封裝第四路由報(bào)文后,刪除相應(yīng)的路由信息。
其中,第三標(biāo)記可以為delete標(biāo)記,當(dāng)?shù)谝籅GP路由器的本地存儲(chǔ)的某一路由信息具有delete標(biāo)記時(shí),這說明該路由信息是無用的或者不可達(dá)的路由信息,該路由信息需要被刪除。
可以理解的是,在第一路由報(bào)文的發(fā)送過程中,第一BGP路由器可能會(huì)接收到來自于目標(biāo)第二BGP路由器的第二路由報(bào)文。此時(shí),第一BGP路由器會(huì)對(duì)接收到的第二路由報(bào)文進(jìn)行解封裝。在解封裝之后,第一BGP路由器獲得的報(bào)文信息存在三種可能的類型,分別是:全新完整的路由信息、對(duì)已有路由信息的更新信息,以及對(duì)已有路由信息的刪除信息。
需要說明的是,在對(duì)第二路由報(bào)文進(jìn)行解封裝后獲得的為對(duì)已有路由信息的刪除信息時(shí),根據(jù)刪除信息的針對(duì)對(duì)象的不同,后續(xù)處理過程存在著一定的差異。
具體來說,若解封裝后獲得的刪除信息的針對(duì)對(duì)象是具有第一標(biāo)記的路由信息,很顯然,該刪除信息的針對(duì)對(duì)象,即待刪除路由信息已經(jīng)被封裝至第一路由報(bào)文中,并被發(fā)送至監(jiān)控服務(wù)器了。由于監(jiān)控服務(wù)器當(dāng)前可能正在接收第一路由報(bào)文和對(duì)接收到的第一路由報(bào)文進(jìn)行解封裝,為了避免增加監(jiān)控服務(wù)器的負(fù)擔(dān),在發(fā)送結(jié)束報(bào)文之前,第一BGP路由器僅會(huì)根據(jù)上述刪除信息,為本地存儲(chǔ)的待刪除路由信息添加第三標(biāo)記(即刪除標(biāo)記),以表征該路由信息在后續(xù)過程中需要被刪除。也就是說,在獲得結(jié)束報(bào)文之前,監(jiān)控服務(wù)器僅需要接收第一路由報(bào)文、對(duì)接收到的第一路由報(bào)文進(jìn)行解封裝,以及存儲(chǔ)對(duì)第一路由報(bào)文進(jìn)行解封裝后獲得的路由信息,而無需執(zhí)行其他的操作。
在發(fā)送完結(jié)束報(bào)文后,第一BGP路由器會(huì)生成用于刪除具有第三標(biāo)記的路由信息的報(bào)文信息,并將生成的報(bào)文信息封裝為第四路由報(bào)文后發(fā)送至監(jiān)控服務(wù)器。這樣,當(dāng)監(jiān)控服務(wù)器接收并解封裝第四路由報(bào)文后,監(jiān)控服務(wù)器就會(huì)獲得相應(yīng)路由信息的刪除信息,監(jiān)控服務(wù)器根據(jù)獲得的刪除信息就可以對(duì)自身內(nèi)部存儲(chǔ)的、相應(yīng)的路由信息進(jìn)行刪除。最終,監(jiān)控服務(wù)器內(nèi)存儲(chǔ)的目標(biāo)第二BGP路由器的路由信息將會(huì)與目標(biāo)第二BGP路由器內(nèi)存儲(chǔ)的路由信息一致。
相反,若解封裝后獲得的刪除信息的針對(duì)對(duì)象是不具有第一標(biāo)記的路由信息,很顯然,該刪除信息的針對(duì)對(duì)象,即待刪除路由信息還未被封裝至第一路由報(bào)文中,也未被發(fā)送至監(jiān)控服務(wù)器。這時(shí),第一BGP路由器可以根據(jù)解封后獲得的刪除信息來刪除待刪除路由信息。當(dāng)待刪除路由信息被刪除之后,第一BGP路由器中就不會(huì)存在這條路由信息了,相應(yīng)地,這條已經(jīng)刪除的路由信息根本就不會(huì)被封裝至第一路由報(bào)文中并發(fā)送至監(jiān)控服務(wù)器。最終,監(jiān)控服務(wù)器內(nèi)存儲(chǔ)的目標(biāo)第二BGP路由器的路由信息也會(huì)與目標(biāo)第二BGP路由器內(nèi)存儲(chǔ)的路由信息一致。
可以看出,本實(shí)施例不僅可以有效地減小監(jiān)控服務(wù)器的負(fù)擔(dān),同時(shí)還可以保證監(jiān)控服務(wù)器內(nèi)存儲(chǔ)的目標(biāo)第二BGP路由器的路由信息與目標(biāo)第二BGP路由器內(nèi)存儲(chǔ)的路由信息一致。
可選地,該方法還可以包括:
若在發(fā)送第一路由報(bào)文的同時(shí),接收到來自目標(biāo)第二BGP路由器的第二路由報(bào)文,且對(duì)第二路由報(bào)文進(jìn)行解封裝后獲得的為全新完整的路由信息時(shí),為該全新完整的路由信息添加第四標(biāo)記;
當(dāng)發(fā)送完結(jié)束報(bào)文后,將具有第四標(biāo)記的路由信息封裝為第五路由報(bào)文,刪除本地已存儲(chǔ)的、具有第四標(biāo)記的各路由信息上的第四標(biāo)記,將第五路由報(bào)文發(fā)送至監(jiān)控服務(wù)器,以使得監(jiān)控服務(wù)器在接收并解封裝第五路由報(bào)文后,存儲(chǔ)解封裝后獲得的路由信息。
其中,第四標(biāo)記可以為new標(biāo)記,若第一BGP路由器的本地存儲(chǔ)的某一路由信息具有new標(biāo)記,這說明該路由信息是一條全新的、可達(dá)的路由信息。
可以理解的是,在第一路由報(bào)文的發(fā)送過程中,第一BGP路由器可能會(huì)接收到來自于目標(biāo)第二BGP路由器的第二路由報(bào)文。此時(shí),第一BGP路由器會(huì)對(duì)接收到的第二路由報(bào)文進(jìn)行解封裝。在解封裝之后,第一BGP路由器獲得的報(bào)文信息存在三種可能的類型,分別是:全新完整的路由信息、對(duì)已有路由信息的更新信息,以及對(duì)已有路由信息的刪除信息。
需要說明的是,若解封裝后獲得的報(bào)文信息為全新完整的路由信息,由于監(jiān)控服務(wù)器當(dāng)前正在接收第一路由報(bào)文和對(duì)接收到的第一路由報(bào)文進(jìn)行解封裝,為了避免增加監(jiān)控服務(wù)器的負(fù)擔(dān),在發(fā)送結(jié)束報(bào)文之前,第一BGP路由器僅會(huì)在本地存儲(chǔ)該全新完整的路由信息,并為該全新完整的路由信息添加第四標(biāo)記,其并不會(huì)將該全新完整的路由信息封裝為路由報(bào)文并發(fā)送至監(jiān)控服務(wù)器。也就是說,在獲得結(jié)束報(bào)文之前,監(jiān)控服務(wù)器僅需要接收第一路由報(bào)文、對(duì)接收到的第一路由報(bào)文進(jìn)行解封裝,以及存儲(chǔ)對(duì)第一路由報(bào)文進(jìn)行解封裝后獲得的路由信息,而無需執(zhí)行其他的操作。
在發(fā)送完結(jié)束報(bào)文后,第一BGP路由器會(huì)將具有第四標(biāo)記的路由信息封裝為第五路由報(bào)文,刪除本地已存儲(chǔ)的、具有第四標(biāo)記的各路由信息上的第四標(biāo)記,將第五路由報(bào)文發(fā)送至監(jiān)控服務(wù)器。這樣,當(dāng)監(jiān)控服務(wù)器接收并解封裝第五路由報(bào)文后,監(jiān)控服務(wù)器就會(huì)存儲(chǔ)解封裝后獲得的路由信息。最終,監(jiān)控服務(wù)器內(nèi)存儲(chǔ)的目標(biāo)第二BGP路由器的路由信息會(huì)與目標(biāo)第二BGP路由器內(nèi)存儲(chǔ)的路由信息一致。
可以看出,本實(shí)施例不僅可以有效地減小監(jiān)控服務(wù)器的負(fù)擔(dān),同時(shí)還可以保證監(jiān)控服務(wù)器內(nèi)存儲(chǔ)的目標(biāo)第二BGP路由器的路由信息與目標(biāo)第二BGP路由器內(nèi)存儲(chǔ)的路由信息一致。
可選地,監(jiān)控服務(wù)器所監(jiān)控的第二BGP路由器的數(shù)量為多個(gè),第一BGP路由器內(nèi)具有第一信息表,第一信息表中具有按照預(yù)設(shè)的優(yōu)先級(jí)順序排列的標(biāo)識(shí)信息,第一信息表中的標(biāo)識(shí)信息為監(jiān)控服務(wù)器所監(jiān)控的多個(gè)第二BGP路由器中、初始路由信息未被監(jiān)控服務(wù)器收集的第二BGP路由器的標(biāo)識(shí)信息。
其中,監(jiān)控服務(wù)器所監(jiān)控的第二BGP路由器的數(shù)量可以為兩個(gè)、三個(gè)或者三個(gè)以上,這都是可行的。
需要說明的是,在第一BGP路由器與監(jiān)控服務(wù)器建立TCP連接后,第一BGP路由器可以將該監(jiān)控服務(wù)器所監(jiān)控的第二BGP路由器的標(biāo)識(shí)信息加入第一信息表中。可以理解的是,各標(biāo)識(shí)信息被加入第一信息表中的時(shí)刻一般存在著先后順序,相應(yīng)地,各標(biāo)識(shí)信息的排列順序可以與該標(biāo)識(shí)信息加入第一信息表中的時(shí)刻相關(guān)聯(lián)。具體地,排在第一位的可以為加入時(shí)間最早的標(biāo)識(shí)信息,排在第二位的可以為加入時(shí)間第二早的標(biāo)識(shí)信息,……,排在最后一位的可以為加入時(shí)間最晚的標(biāo)識(shí)信息。
需要說明的是,第二BGP路由器對(duì)應(yīng)的預(yù)定條件的具體形式多樣,下面進(jìn)行舉例介紹。
在本發(fā)明實(shí)施例的一種具體實(shí)現(xiàn)形式中,第二BGP路由器對(duì)應(yīng)的預(yù)定條件可以為:當(dāng)前不存在具有第五標(biāo)記的標(biāo)識(shí)信息,并且,目標(biāo)第二BGP路由器的標(biāo)識(shí)信息為第一信息表中優(yōu)先級(jí)最高(即排在第一位)的標(biāo)識(shí)信息。
相應(yīng)地,在目標(biāo)第二BGP路由器對(duì)應(yīng)的預(yù)定條件滿足的情況下,將本地已存儲(chǔ)的、來自于目標(biāo)第二BGP路由器的路由信息封裝為至少一個(gè)第一路由報(bào)文,可以包括:
在當(dāng)前不存在具有第五標(biāo)記的標(biāo)識(shí)信息的情況下,從第一信息表中選取優(yōu)先級(jí)最高的標(biāo)識(shí)信息,將具有所選取的標(biāo)識(shí)信息的第二BGP路由器確定為所對(duì)應(yīng)的預(yù)定條件滿足的目標(biāo)第二BGP路由器,從第一信息表中提取所選取的標(biāo)識(shí)信息,并為所提取的標(biāo)識(shí)信息添加第五標(biāo)記,將本地已存儲(chǔ)的、來自于目標(biāo)第二BGP路由器的路由信息封裝為至少一個(gè)第一路由報(bào)文;
向監(jiān)控服務(wù)器發(fā)送用于表征目標(biāo)第二BGP路由器的初始路由信息發(fā)送完畢的結(jié)束報(bào)文,可以包括:
向監(jiān)控服務(wù)器發(fā)送用于表征目標(biāo)第二BGP路由器的初始路由信息發(fā)送完畢的結(jié)束報(bào)文,并刪除所提取的標(biāo)識(shí)信息上的第五標(biāo)記。
容易理解的是,若當(dāng)前存在一具有第五標(biāo)記的標(biāo)識(shí)信息,這說明第一BGP路由器當(dāng)前正在向監(jiān)控服務(wù)器發(fā)送具有該標(biāo)識(shí)信息的第二BGP路由器的初始路由信息,相應(yīng)地,監(jiān)控服務(wù)器正在收集具有該標(biāo)識(shí)信息的第二BGP路由器的初始路由信息。這種情況下,其他的第二BGP路由器對(duì)應(yīng)的預(yù)定條件均不會(huì)滿足,故第一BGP路由器不會(huì)向監(jiān)控服務(wù)器發(fā)送其他的第二BGP路由器的初始路由信息。
容易看出,第一BGP路由器每次只會(huì)向監(jiān)控服務(wù)器發(fā)送某一第二BGP路由器的初始路由信息,這樣可以有效地減小監(jiān)控服務(wù)器的負(fù)擔(dān)。
相反,若當(dāng)前不存在具有第五標(biāo)記的標(biāo)識(shí)信息,這說明第一BGP路由器當(dāng)前未在向監(jiān)控服務(wù)器發(fā)送任一第二BGP路由器的初始路由信息。此時(shí),第一BGP路由器可以去第一信息表中選取優(yōu)先級(jí)最高(即排在第一位)的標(biāo)識(shí)信息,將具有所選取的標(biāo)識(shí)信息的第二BGP路由器確定為所對(duì)應(yīng)的預(yù)定條件滿足的目標(biāo)第二BGP路由器。此外,第一BGP路由器還可以從第一信息表中提取所選取的標(biāo)識(shí),并為所提取的標(biāo)識(shí)信息添加第五標(biāo)記。接下來,第一BGP路由器可以向監(jiān)控服務(wù)器發(fā)送目標(biāo)第二BGP路由器的初始路由信息。在發(fā)送完結(jié)束報(bào)文后,即表明該目標(biāo)第二BGP路由器的初始路由信息已經(jīng)被監(jiān)控服務(wù)器收集完畢了,此時(shí),第一BGP路由器可以刪除所提取的標(biāo)識(shí)信息上的第五標(biāo)記。容易看出,當(dāng)前又不存在具有第五標(biāo)記的標(biāo)識(shí)信息了,故第一BGP路由器會(huì)再次去第一信息表中選取優(yōu)先級(jí)最高的標(biāo)識(shí)信息,將具有所選取的標(biāo)識(shí)信息的第二BGP路由器確定為所對(duì)應(yīng)的預(yù)定條件滿足的目標(biāo)第二BGP路由器。后續(xù)過程與上述描述類似,在此不再贅述。
需要說明的是,第一BGP路由器會(huì)不斷重復(fù)上述操作,直至第一信息表中不存在任一標(biāo)識(shí)信息。最終,監(jiān)控服務(wù)器能夠收集到其所監(jiān)控的各第二BGP路由器的初始路由信息。
可以看出,本實(shí)施例可以保證監(jiān)控服務(wù)器能夠收集到其所監(jiān)控的各第二BGP路由器的初始路由信息。另外,第一BGP路由器每次只會(huì)向監(jiān)控服務(wù)器發(fā)送某一第二BGP路由器的初始路由信息,這樣可以有效地減小監(jiān)控服務(wù)器的負(fù)擔(dān)。
可選地,第一BGP路由器與多個(gè)監(jiān)控服務(wù)器連接,第一BGP路由器內(nèi)還存儲(chǔ)有與各第二BGP路由器一一對(duì)應(yīng)的第二信息表,每個(gè)第二BGP路由器對(duì)應(yīng)的第二信息表中包括監(jiān)控該第二BGP路由器的各監(jiān)控服務(wù)器的標(biāo)識(shí)信息,其中,已收集過該第二BGP路由器的初始路由信息的監(jiān)控服務(wù)器的標(biāo)識(shí)信息上具有第六標(biāo)記,未收集過該第二BGP路由器的初始路由信息的監(jiān)控服務(wù)器的標(biāo)識(shí)信息上具有第七標(biāo)記。
其中,第六標(biāo)記和第七標(biāo)記可以對(duì)第二BGP路由器的初始路由信息是否被監(jiān)控服務(wù)器收集過進(jìn)行有效地標(biāo)識(shí)。
依次發(fā)送所有第一路由報(bào)文至監(jiān)控服務(wù)器后,向監(jiān)控服務(wù)器發(fā)送用于表征目標(biāo)第二BGP路由器的初始路由信息發(fā)送完畢的結(jié)束報(bào)文,可以包括:
依次發(fā)送所有第一路由報(bào)文至目標(biāo)監(jiān)控服務(wù)器后,向目標(biāo)監(jiān)控服務(wù)器發(fā)送用于表征目標(biāo)第二BGP路由器的初始路由信息發(fā)送完畢的結(jié)束報(bào)文,其中,目標(biāo)監(jiān)控服務(wù)器為具有目標(biāo)標(biāo)識(shí)信息的監(jiān)控服務(wù)器,目標(biāo)標(biāo)識(shí)信息為目標(biāo)第二BGP路由器對(duì)應(yīng)的第二信息表中的、具有第七標(biāo)記的標(biāo)識(shí)信息。
本實(shí)施例中,在目標(biāo)第二BGP路由器對(duì)應(yīng)的第二信息表中、具有第七標(biāo)記的標(biāo)識(shí)信息的數(shù)量為多個(gè)(至少兩個(gè))的情況下,這說明當(dāng)前存在著多個(gè)未收集過目標(biāo)第二BGP路由器的初始路由信息的監(jiān)控服務(wù)器。這時(shí),第一BGP路由器可以向每個(gè)未收集過目標(biāo)第二BGP路由器的初始路由信息的監(jiān)控服務(wù)器發(fā)送第一路由報(bào)文。這樣,第一BGP路由器只需要將自身內(nèi)部存儲(chǔ)的、來自于目標(biāo)第二BGP路由器的路由信息封裝一次即可,無需對(duì)同一路由信息進(jìn)行重復(fù)封裝,這樣可以有效地減小第一BGP路由器的負(fù)擔(dān)。
另外,需要強(qiáng)調(diào)的是,為了能夠?qū)Φ诙﨎GP路由器的初始路由信息是否被監(jiān)控服務(wù)器收集過進(jìn)行有效地標(biāo)識(shí),除了利用第六標(biāo)記和第七標(biāo)記進(jìn)行區(qū)分外,第一BGP路由器也可以針對(duì)每個(gè)第二BGP路由器分別存儲(chǔ)第三信息表和第四信息表。其中,任一第二BGP路由器對(duì)應(yīng)的第三信息表中存儲(chǔ)有未收集過該第二BGP路由器的初始路由信息的監(jiān)控服務(wù)器的標(biāo)識(shí)信息,任一第二BGP路由器對(duì)應(yīng)的第四信息表中存儲(chǔ)有已收集過該第二BGP路由器的初始路由信息的監(jiān)控服務(wù)器的標(biāo)識(shí)信息,這也是可行的。
本實(shí)施例中,將第三路由報(bào)文發(fā)送至監(jiān)控服務(wù)器,以使得監(jiān)控服務(wù)器在接收并解封裝第三路由報(bào)文后,更新相應(yīng)的路由信息,可以包括:
將第三路由報(bào)文發(fā)送至目標(biāo)監(jiān)控服務(wù)器,并將目標(biāo)第二BGP路由器對(duì)應(yīng)的第二信息表中、目標(biāo)標(biāo)識(shí)信息上的標(biāo)記更改為第六標(biāo)記,以使得目標(biāo)監(jiān)控服務(wù)器在接收并解封裝第三路由報(bào)文后,更新自身內(nèi)部存儲(chǔ)的相應(yīng)的路由信息。
本實(shí)施例中,當(dāng)?shù)谝籅GP路由器將第三路由報(bào)文發(fā)送至目標(biāo)監(jiān)控服務(wù)器后,第一BGP路由器會(huì)將目標(biāo)第二BGP路由器對(duì)應(yīng)的第二信息表中、目標(biāo)標(biāo)識(shí)信息上的標(biāo)記更改為第六標(biāo)記,以表征目標(biāo)第二BGP路由器的初始路由信息已經(jīng)被具有目標(biāo)標(biāo)識(shí)信息的監(jiān)控服務(wù)器收集過了。這樣,第一BGP路由器不會(huì)向具有目標(biāo)標(biāo)識(shí)信息的監(jiān)控服務(wù)器重復(fù)發(fā)送目標(biāo)第二BGP路由器的初始路由信息經(jīng)封裝后得到的第一路由報(bào)文,相應(yīng)地,各監(jiān)控服務(wù)器也無需對(duì)重復(fù)接收到的路由報(bào)文進(jìn)行解封裝,這樣可以有效地減小第一BGP路由器和監(jiān)控服務(wù)器的負(fù)擔(dān)。
該方法還包括:
當(dāng)檢測(cè)到自身與任一監(jiān)控服務(wù)器的連接斷開時(shí),將該監(jiān)控服務(wù)器的標(biāo)識(shí)信息從其所在的各第二信息表中刪除。
可以理解的是,若第一BGP路由器與任一監(jiān)控服務(wù)器的連接斷開,則該監(jiān)控服務(wù)器將無法繼續(xù)對(duì)第一BGP路由器的鄰居路由器進(jìn)行監(jiān)控,相應(yīng)地,第一BGP路由器無需再將該監(jiān)控服務(wù)器所監(jiān)控的第二BGP路由器的路由信息發(fā)送至該監(jiān)控服務(wù)器,故第一BGP路由器可以直接將該監(jiān)控服務(wù)器的標(biāo)識(shí)信息從其所在的第二信息表中刪除。
下面結(jié)合圖3,以一個(gè)具體的例子對(duì)第一BGP路由器的工作流程進(jìn)行詳細(xì)地說明。
假設(shè)第一BGP路由器為A,監(jiān)控服務(wù)器為S1,A的鄰居路由器為B和C,如圖3所示,A可以包括第一信息處理模塊和第二信息處理模塊,第二信息處理模塊內(nèi)可以預(yù)先配置有S1所監(jiān)控的路由器的信息,例如B和C的信息,這樣,無論A和S1是否建立TCP連接,A均能獲知S1所監(jiān)控的為B和C。實(shí)際工作時(shí),S1可以與第二信息處理模塊建立TCP連接,在TCP連接建立后,第二信息處理模塊會(huì)將B的標(biāo)識(shí)信息和C的標(biāo)識(shí)信息依次加入第一信息表,即List1中。假設(shè)當(dāng)前不存在具有第五標(biāo)記的標(biāo)識(shí)信息,并且,對(duì)于第一信息表中已存的各標(biāo)識(shí)信息而言,B的標(biāo)識(shí)信息的加入時(shí)間是最早的。這樣,第一信息處理模塊會(huì)從List1中取出B的標(biāo)識(shí)信息,并為B的標(biāo)識(shí)信息添加第五標(biāo)記,同時(shí),第一信息處理模塊會(huì)將S1的標(biāo)識(shí)信息添加至B所對(duì)應(yīng)的第三信息表,即BeginList列表。第一信息處理模塊會(huì)將本地已存儲(chǔ)的,來自于B的路由信息(即B的初始路由信息)封裝為第一路由報(bào)文,并為已封裝的路由信息添加第一標(biāo)記,即batch標(biāo)記。具體地,該第一路由報(bào)文為標(biāo)準(zhǔn)BGP UPDATE報(bào)文。接下來,第一信息處理模塊可以將封裝好的第一路由報(bào)文通知給第二信息處理模塊,此時(shí),第二信息處理模塊會(huì)在為第一路由報(bào)文加上BMP報(bào)文頭后,將其發(fā)送至具有B所對(duì)應(yīng)的第三信息表中的標(biāo)識(shí)信息的各監(jiān)控服務(wù)器(為了方便描述,下文中簡(jiǎn)稱為監(jiān)控組),很顯然,該監(jiān)控組中必然包括S1,因此,S1能夠收集到B的初始路由信息。
可以理解的是,第二信息處理模塊在向監(jiān)控組發(fā)送加上了BMP報(bào)文頭后的第一路由報(bào)文的同時(shí),第一信息處理模塊可能會(huì)接收到來在于B的第二路由報(bào)文,此時(shí)第一信息處理模塊會(huì)對(duì)接收到的第二路由報(bào)文進(jìn)行解封裝,并且,解封裝后獲得的報(bào)文信息存在三種可能的類型,分別是:全新完整的路由信息、對(duì)已有路由信息的更新信息,以及對(duì)已有路由信息的刪除信息。
對(duì)于第一信息處理模塊而言,若解封裝后獲得的為對(duì)已有路由信息的更新信息,且該更新信息的針對(duì)對(duì)象,即待更新路由信息為具有batch標(biāo)記的路由信息,此時(shí),第一信息處理模塊會(huì)為待更新路由信息添加第二標(biāo)記,即batchchg標(biāo)記。若解封裝后獲得的為對(duì)已有路由信息的刪除信息,且該刪除信息的針對(duì)對(duì)象,即待刪除路由信息為具有batch標(biāo)記的路由信息,此時(shí),第一信息處理模塊會(huì)為待刪除路由信息添加第三標(biāo)記,即delete標(biāo)記。若解封裝后獲得的為全新完整的路由信息,此時(shí),第一信息處理模塊會(huì)為該全新完整的路由信息添加第四標(biāo)記,即new標(biāo)記。接下來,第一信息處理模塊會(huì)繼續(xù)將封裝好的第一路由報(bào)文通知給第二信息處理模塊,第二信息處理模塊則會(huì)繼續(xù)為第一路由報(bào)文加上BMP報(bào)文頭,并將其發(fā)送至監(jiān)控組。在將所有第一路由報(bào)文均通知給第二信息處理模塊后,第一信息處理模塊會(huì)向第二信息處理模塊通知EOR報(bào)文,此時(shí),第二信息處理模塊會(huì)為該EOR報(bào)文加上BMP報(bào)文頭,并將其發(fā)送至監(jiān)控組,以告知監(jiān)控組中的各監(jiān)控服務(wù)器,B的初始路由信息發(fā)送完畢。
在向第二信息處理模塊通知EOR報(bào)文后,第一信息處理模塊可以將具有batchchg標(biāo)記的路由信息封裝為第三路由報(bào)文,并將該第三路由報(bào)文通知給第二信息處理模塊。這樣,第二信息處理模塊會(huì)為該第三路由報(bào)文添加BMP報(bào)文頭,并向監(jiān)控組中的各監(jiān)控服務(wù)器發(fā)送攜帶BMP報(bào)文頭的第三路由報(bào)文。這樣,監(jiān)控組中的各監(jiān)控服務(wù)器在接收到第三路由報(bào)文,并對(duì)其解封裝后,其可以根據(jù)解封裝后獲得的報(bào)文信息更新自身內(nèi)部存儲(chǔ)的相應(yīng)的路由信息。
在向第二信息處理模塊通知EOR報(bào)文后,第一信息處理模塊可以生成用于刪除具有delete標(biāo)記的路由信息的報(bào)文信息,將生成的報(bào)文信息封裝為第四路由報(bào)文,并將該第四路由報(bào)文通知給第二信息處理模塊。這樣,第二信息處理模塊會(huì)為該第四路由報(bào)文添加BMP報(bào)文頭,并向監(jiān)控組中的各監(jiān)控服務(wù)器發(fā)送攜帶BMP報(bào)文頭的第四路由報(bào)文。這樣,監(jiān)控組中的各監(jiān)控服務(wù)器在接收到第四路由報(bào)文,并對(duì)其解封裝后,其可以根據(jù)解封裝后獲得的報(bào)文信息刪除自身內(nèi)部存儲(chǔ)的相應(yīng)的路由信息。
在向第二信息處理模塊通知EOR報(bào)文后,第一信息處理模塊可以將具有new標(biāo)記的路由信息封裝為第五路由報(bào)文,并將該第五路由報(bào)文通知給第二信息處理模塊。這樣,第二信息處理模塊會(huì)為該第五路由報(bào)文添加BMP報(bào)文頭,并向監(jiān)控組中的各監(jiān)控服務(wù)器發(fā)送攜帶BMP報(bào)文頭的第五路由報(bào)文。這樣,監(jiān)控組中的各監(jiān)控服務(wù)器在接收到第五路由報(bào)文,并對(duì)其解封裝后,其可以存儲(chǔ)解封裝后獲得的路由信息。
需要強(qiáng)調(diào)的是,第一信息處理模塊也可以將具有batchchg標(biāo)記的路由信息、用于刪除具有delete標(biāo)記的路由信息的報(bào)文信息,以及具有new標(biāo)記的路由信息同時(shí)封裝在第六路由報(bào)文中,并將封裝好的第六路由報(bào)文通知給第二信息處理模塊,以使得第二信息處理模塊在為該第六路由報(bào)文添加BMP報(bào)文頭后,向監(jiān)控組中的各監(jiān)控服務(wù)器發(fā)送攜帶BMP報(bào)文頭的第六路由報(bào)文。這樣,監(jiān)控組中的各監(jiān)控服務(wù)器在接收到第六路由報(bào)文,并對(duì)其解封裝后,其可以根據(jù)解封裝后獲得的報(bào)文信息的類型,執(zhí)行相應(yīng)的操作。
需要說明的是,在向第二信息處理模塊通知EOR報(bào)文后,第一信息處理模塊可以刪除B的標(biāo)識(shí)信息上的第五標(biāo)記。另外,在將第三路由報(bào)文、第四路由報(bào)文和第五路由報(bào)文均通知給第二信息處理模塊后,第一信息處理模塊可以刪除B所對(duì)應(yīng)的BeginList列表中、監(jiān)控組中的各監(jiān)控服務(wù)器的標(biāo)識(shí)信息,并向B所對(duì)應(yīng)的第四信息表,即Endlist列表中添加監(jiān)控組中的各監(jiān)控服務(wù)器的標(biāo)識(shí)信息。之后,第一信息處理模塊可以取出List1中的下一個(gè)標(biāo)識(shí)信息,并向相應(yīng)的監(jiān)控服務(wù)器發(fā)送具有所取出的標(biāo)識(shí)信息的路由器的路由信息。
綜上,在通過監(jiān)控服務(wù)器對(duì)某一BGP路由器的鄰居路由器進(jìn)行監(jiān)控時(shí),本實(shí)施例有效地縮短了監(jiān)控服務(wù)器收集該鄰居路由器的初始路由信息所需花費(fèi)的時(shí)間,同時(shí)保證了監(jiān)控服務(wù)器能夠確定該鄰居路由器的初始路由信息收集完畢的時(shí)間。
下面對(duì)本發(fā)明實(shí)施例所提供的一種被監(jiān)控鄰居初始路由信息發(fā)送裝置進(jìn)行說明。
需要說明的是,本發(fā)明實(shí)施例所提供的一種被監(jiān)控鄰居初始路由信息發(fā)送裝置可以應(yīng)用于第一邊界網(wǎng)關(guān)協(xié)議BGP路由器,第一BGP路由器與監(jiān)控服務(wù)器連接,監(jiān)控服務(wù)器用于監(jiān)控至少一個(gè)第二BGP路由器,各第二BGP路由器均為第一BGP路由器的鄰居路由器。
參見圖4,圖中示出了本發(fā)明實(shí)施例所提供的一種被監(jiān)控鄰居初始路由信息發(fā)送裝置的結(jié)構(gòu)框圖。如圖4所示,該裝置可以包括:
第一處理模塊41,用于在目標(biāo)第二BGP路由器對(duì)應(yīng)的預(yù)定條件滿足的情況下,將本地已存儲(chǔ)的、來自于目標(biāo)第二BGP路由器的路由信息封裝為至少一個(gè)第一路由報(bào)文,為本地已存儲(chǔ)的、且已封裝的來自于目標(biāo)第二BGP路由器的路由信息添加第一標(biāo)記,其中,目標(biāo)第二BGP路由器為至少一個(gè)第二BGP路由器中的任一個(gè);
第一發(fā)送模塊42,用于依次發(fā)送所有第一路由報(bào)文至監(jiān)控服務(wù)器后,向監(jiān)控服務(wù)器發(fā)送用于表征目標(biāo)第二BGP路由器的初始路由信息發(fā)送完畢的結(jié)束報(bào)文;
第二處理模塊43,用于若在發(fā)送第一路由報(bào)文的同時(shí),接收到來自目標(biāo)第二BGP路由器的第二路由報(bào)文,且對(duì)第二路由報(bào)文進(jìn)行解封裝后獲得的為針對(duì)具有第一標(biāo)記的路由信息的更新信息時(shí),為待更新路由信息添加第二標(biāo)記,并更新待更新路由信息;
第三處理模塊44,用于當(dāng)發(fā)送完結(jié)束報(bào)文后,將具有第二標(biāo)記的路由信息封裝為第三路由報(bào)文,刪除本地已存儲(chǔ)的、具有第二標(biāo)記的各路由信息上的第二標(biāo)記,將第三路由報(bào)文發(fā)送至監(jiān)控服務(wù)器,以使得監(jiān)控服務(wù)器在接收并解封裝第三路由報(bào)文后,更新相應(yīng)的路由信息。
與現(xiàn)有技術(shù)相比,本方案中,第一BGP路由器是將自身內(nèi)部已存儲(chǔ)的、來自于目標(biāo)第二BGP路由器的路由信息,即第二BGP路由器的初始路由信息直接發(fā)送至監(jiān)控服務(wù)器的,目標(biāo)第二BGP路由器無需重新向第一BGP路由器發(fā)送所有初始路由信息,故監(jiān)控服務(wù)器收集目標(biāo)第二BGP路由器的初始路由信息所需花費(fèi)的時(shí)間會(huì)大大地縮減。此外,在第一BGP路由器將目標(biāo)第二BGP路由器的初始路由信息均發(fā)送至監(jiān)控服務(wù)器后,第一BGP路由器才會(huì)將目標(biāo)第二BGP路由器的實(shí)時(shí)路由信息發(fā)送至監(jiān)控服務(wù)器,即初始路由信息和實(shí)時(shí)路由信息是分開發(fā)送的,故第一BGP路由器可以向監(jiān)控服務(wù)器發(fā)送用于表征目標(biāo)第二BGP路由器的初始路由信息發(fā)送完畢的結(jié)束報(bào)文,相應(yīng)地,監(jiān)控服務(wù)器能夠確定出目標(biāo)第二BGP路由器的初始路由信息收集完畢的時(shí)間。
可以看出,當(dāng)通過監(jiān)控服務(wù)器對(duì)某一BGP路由器的鄰居路由器進(jìn)行監(jiān)控時(shí),本方案可以有效地縮短監(jiān)控服務(wù)器收集該鄰居路由器的初始路由信息所需花費(fèi)的時(shí)間,以及保證監(jiān)控服務(wù)器能夠確定該鄰居路由器的初始路由信息收集完畢的時(shí)間。
可選地,該裝置還可以包括:
第四處理模塊,用于若在發(fā)送第一路由報(bào)文的同時(shí),接收到來自目標(biāo)第二BGP路由器的第二路由報(bào)文,且對(duì)第二路由報(bào)文進(jìn)行解封裝后獲得的為針對(duì)具有第一標(biāo)記的路由信息的刪除信息時(shí),為待刪除路由信息添加第三標(biāo)記;
第五處理模塊,用于當(dāng)發(fā)送完結(jié)束報(bào)文后,生成用于刪除具有第三標(biāo)記的路由信息的報(bào)文信息,將生成的報(bào)文信息封裝為第四路由報(bào)文后發(fā)送至監(jiān)控服務(wù)器,以使得監(jiān)控服務(wù)器在接收并解封裝第四路由報(bào)文后,刪除相應(yīng)的路由信息。
可選地,該裝置還可以包括:
第六處理模塊,用于若在發(fā)送第一路由報(bào)文的同時(shí),接收到來自目標(biāo)第二BGP路由器的第二路由報(bào)文,且對(duì)第二路由報(bào)文進(jìn)行解封裝后獲得的為全新完整的路由信息時(shí),為該全新完整的路由信息添加第四標(biāo)記;
第七處理模塊,用于當(dāng)發(fā)送完結(jié)束報(bào)文后,將具有第四標(biāo)記的路由信息封裝為第五路由報(bào)文,刪除本地已存儲(chǔ)的、具有第四標(biāo)記的各路由信息上的第四標(biāo)記,將第五路由報(bào)文發(fā)送至監(jiān)控服務(wù)器,以使得監(jiān)控服務(wù)器在接收并解封裝第五路由報(bào)文后,存儲(chǔ)解封裝后獲得的路由信息。
可選地,監(jiān)控服務(wù)器所監(jiān)控的第二BGP路由器的數(shù)量為多個(gè),第一BGP路由器內(nèi)具有第一信息表,第一信息表中具有按照預(yù)設(shè)的優(yōu)先級(jí)順序排列的標(biāo)識(shí)信息,第一信息表中的標(biāo)識(shí)信息為監(jiān)控服務(wù)器所監(jiān)控的多個(gè)第二BGP路由器中、初始路由信息未被監(jiān)控服務(wù)器收集的第二BGP路由器的標(biāo)識(shí)信息;
第一處理模塊,具體用于:
在當(dāng)前不存在具有第五標(biāo)記的標(biāo)識(shí)信息的情況下,從第一信息表中選取優(yōu)先級(jí)最高的標(biāo)識(shí)信息,將具有所選取的標(biāo)識(shí)信息的第二BGP路由器確定為所對(duì)應(yīng)的預(yù)定條件滿足的目標(biāo)第二BGP路由器,從第一信息表中提取所選取的標(biāo)識(shí)信息,并為所提取的標(biāo)識(shí)信息添加第五標(biāo)記,將本地已存儲(chǔ)的、來自于目標(biāo)第二BGP路由器的路由信息封裝為至少一個(gè)第一路由報(bào)文;
第一發(fā)送模塊,具體用于:
向監(jiān)控服務(wù)器發(fā)送用于表征目標(biāo)第二BGP路由器的初始路由信息發(fā)送完畢的結(jié)束報(bào)文,并刪除所提取的標(biāo)識(shí)信息上的第五標(biāo)記。
可選地,第一BGP路由器與多個(gè)監(jiān)控服務(wù)器連接,第一BGP路由器內(nèi)還存儲(chǔ)有與各第二BGP路由器一一對(duì)應(yīng)的第二信息表,每個(gè)第二BGP路由器對(duì)應(yīng)的第二信息表中包括監(jiān)控該第二BGP路由器的各監(jiān)控服務(wù)器的標(biāo)識(shí)信息,其中,已收集過該第二BGP路由器的初始路由信息的監(jiān)控服務(wù)器的標(biāo)識(shí)信息上具有第六標(biāo)記,未收集過該第二BGP路由器的初始路由信息的監(jiān)控服務(wù)器的標(biāo)識(shí)信息上具有第七標(biāo)記;
第一發(fā)送模塊,具體用于:
依次發(fā)送所有第一路由報(bào)文至目標(biāo)監(jiān)控服務(wù)器后,向目標(biāo)監(jiān)控服務(wù)器發(fā)送用于表征目標(biāo)第二BGP路由器的初始路由信息發(fā)送完畢的結(jié)束報(bào)文,其中,目標(biāo)監(jiān)控服務(wù)器為具有目標(biāo)標(biāo)識(shí)信息的監(jiān)控服務(wù)器,目標(biāo)標(biāo)識(shí)信息為目標(biāo)第二BGP路由器對(duì)應(yīng)的第二信息表中的、具有第七標(biāo)記的標(biāo)識(shí)信息;
第三處理模塊,具體用于:
將第三路由報(bào)文發(fā)送至目標(biāo)監(jiān)控服務(wù)器,并將目標(biāo)第二BGP路由器對(duì)應(yīng)的第二信息表中、目標(biāo)標(biāo)識(shí)信息上的標(biāo)記更改為第六標(biāo)記,以使得目標(biāo)監(jiān)控服務(wù)器在接收并解封裝第三路由報(bào)文后,更新自身內(nèi)部存儲(chǔ)的相應(yīng)的路由信息;
該裝置還包括:
第八處理模塊,用于當(dāng)檢測(cè)到自身與任一監(jiān)控服務(wù)器的連接斷開時(shí),將該監(jiān)控服務(wù)器的標(biāo)識(shí)信息從其所在的各第二信息表中刪除。
綜上,在通過監(jiān)控服務(wù)器對(duì)某一BGP路由器的鄰居路由器進(jìn)行監(jiān)控時(shí),本實(shí)施例有效地縮短了監(jiān)控服務(wù)器收集該鄰居路由器的初始路由信息所需花費(fèi)的時(shí)間,同時(shí)保證了監(jiān)控服務(wù)器能夠確定該鄰居路由器的初始路由信息收集完畢的時(shí)間。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中的各個(gè)實(shí)施例均采用相關(guān)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。