專利名稱:基于邊界網(wǎng)關(guān)協(xié)議的路由老化方法、裝置和路由器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通訊技術(shù)領(lǐng)域,具體涉及基于BGP的路由老化方法、基于BGP的路由老化裝置和路由器。
背景技術(shù):
Border Gateway Protocol (邊界網(wǎng)關(guān)協(xié)議,BGP)分布式技術(shù)方案即設(shè)置多個(gè)BGP分布點(diǎn),例如在多個(gè)單板中分別設(shè)置BGP進(jìn)程、BGP線程等,所有的路由(如VPN路由或IP路由等)被分配到多個(gè)BGP分布點(diǎn)處進(jìn)行處理。BGP分布式技術(shù)方案能夠減輕BGP集中式技術(shù)方案中單一 BGP進(jìn)程或線程等的路由處理壓力,避免BGP路由處理的性能瓶頸問題,從而提高BGP的路由處理能力以及路由容量。 在實(shí)現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)在BGP分布式技術(shù)方案中,多種不同的原因可能均會(huì)導(dǎo)致BGP分布點(diǎn)重新啟動(dòng);在BGP分布點(diǎn)重新啟動(dòng)過程中,路由可能會(huì)發(fā)生變化,例如某VPN路由或IP路由被撤銷等;在BGP分布點(diǎn)啟動(dòng)完成后,由于該BGP分布點(diǎn)無法獲知在啟動(dòng)過程中發(fā)生變化的路由,因此,該BGP分布點(diǎn)也就不能夠通知BGP鄰居更新變化的路由。為了保證BGP鄰居存儲(chǔ)正確的路由,可以采用BGP集中式技術(shù)方案中的處理方式,即BGP分布點(diǎn)在啟動(dòng)完成后與所有的BGP鄰居斷連,并重新建立連接,在連接成功重建后,各BGP鄰居重新收集路由。該處理方式雖然能夠使BGP鄰居存儲(chǔ)正確的路由,但是,任何一個(gè)BGP分布點(diǎn)的重新啟動(dòng)都會(huì)影響到所有的BGP鄰居。
發(fā)明內(nèi)容
本發(fā)明實(shí)施方式提供一種基于BGP的路由老化方法、裝置和路由器,可在不與BGP鄰居斷連的情況下,更新BGP鄰居中存儲(chǔ)的路由。 本發(fā)明實(shí)施方式提供的一種路由老化方法,BGP分布點(diǎn)在重新啟動(dòng)后,所述方法包括 向BGP鄰居發(fā)送路由請(qǐng)求消息,所述BGP鄰居為具有在鄰居不斷連情況下老化路由能力的BGP鄰居; 接收所述BGP鄰居根據(jù)所述路由請(qǐng)求消息發(fā)送的路由,并對(duì)接收到的路由進(jìn)行路由處理; 向所述BGP鄰居發(fā)送路由處理后的路由,使所述BGP鄰居根據(jù)接收到的路由進(jìn)行路由老化。 本發(fā)明實(shí)施方式提供的基于BGP的路由老化裝置,包括 路由請(qǐng)求模塊,用于在BGP分布點(diǎn)重新啟動(dòng)后,向BGP鄰居發(fā)送路由請(qǐng)求消息,所述BGP鄰居為具有在鄰居不斷連情況下老化路由能力的BGP鄰居; 路由處理模塊,用于對(duì)BGP分布點(diǎn)接收到的路由進(jìn)行路由處理,所述接收到的路由為BGP鄰居根據(jù)所述路由請(qǐng)求消息發(fā)送的路由; 路由發(fā)送模塊,用于在路由處理模塊完成路由處理后,向BGP鄰居發(fā)送路由處理
4后的路由,使BGP鄰居根據(jù)接收到的路由進(jìn)行路由老化。 本發(fā)明實(shí)施方式提供的路由器,設(shè)置有多個(gè)BGP分布點(diǎn),該路由器包括 路由請(qǐng)求模塊,用于在BGP分布點(diǎn)重新啟動(dòng)后,向BGP鄰居發(fā)送路由請(qǐng)求消息,所
述BGP鄰居為具有在鄰居不斷連情況下老化路由能力的BGP鄰居; 接收模塊,用于接收BGP鄰居根據(jù)所述路由請(qǐng)求消息發(fā)送的路由; 路由處理模塊,用于對(duì)接收模塊接收的路由進(jìn)行路由處理; 路由發(fā)送模塊,用于在路由處理模塊完成路由處理后,向BGP鄰居發(fā)送路由處理 后的路由,使BGP鄰居根據(jù)接收到的路由進(jìn)行路由老化。 通過上述技術(shù)方案的描述可知,在BGP分布點(diǎn)重新啟動(dòng)后,通過向BGP鄰居發(fā)送路 由請(qǐng)求消息,BGP分布點(diǎn)可以接收到BGP鄰居發(fā)送的路由并實(shí)現(xiàn)路由處理,BGP分布點(diǎn)通過 向BGP鄰居發(fā)送路由處理后的路由,使BGP鄰居可以根據(jù)接收到的路由對(duì)其存儲(chǔ)的路由進(jìn) 行老化處理,從而在不需要BGP鄰居間斷連并重新建立連接的情況下,也能夠使BGP鄰居存 儲(chǔ)正確的路由,避免了一個(gè)BGP分布點(diǎn)重新啟動(dòng)而影響到所有的BGP鄰居的問題。
圖1是本發(fā)明實(shí)施例一的基于BGP的路由老化方法流程圖; 圖2是本發(fā)明實(shí)施例二適用的基于RD的分布式路由處理的結(jié)構(gòu)示意圖; 圖3是本發(fā)明實(shí)施例三的基于BGP的路由老化方法流程圖; 圖4是本發(fā)明實(shí)施例四的基于BGP的路由老化裝置示意圖; 圖5是本發(fā)明實(shí)施例四的路由處理模塊示意圖; 圖6是本發(fā)明實(shí)施例四的路由發(fā)送模塊示意圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)基于BGP的路由老化方法的具體實(shí)現(xiàn)過程進(jìn)行舉例說明。
實(shí)施例一、基于BGP的路由老化方法流程如附圖1所示。 圖1中,步驟100、多個(gè)BGP分布點(diǎn)中的至少一個(gè)BGP分布點(diǎn)重新啟動(dòng)。導(dǎo)致BGP 分布點(diǎn)重新啟動(dòng)的原因如資源耗盡、BGP分布點(diǎn)所在單板異常等,本實(shí)施例不限制導(dǎo)致BGP 分布點(diǎn)重新啟動(dòng)的原因。BGP分布點(diǎn)的種類有多種,例如,基于RD的BGP分布點(diǎn)等,本實(shí)施 例不限制BGP分布點(diǎn)的具體表現(xiàn)形式。 步驟110、重新啟動(dòng)的BGP分布點(diǎn)在重新啟動(dòng)完成后,在不斷連BGP分布點(diǎn)與BGP 鄰居之間的連接的情況下,BGP分布點(diǎn)向BGP鄰居發(fā)送路由請(qǐng)求消息。這里的BGP鄰居可 以為具有在鄰居不斷連情況下老化路由能力的BGP鄰居。 在一個(gè)網(wǎng)絡(luò)中,如果所有的節(jié)點(diǎn)都肯定具有在鄰居不斷連情況下老化路由的能 力,則BGP分布點(diǎn)可以在重新啟動(dòng)后,直接向所有的BGP鄰居發(fā)送路由請(qǐng)求消息。如果不 是所有的節(jié)點(diǎn)均肯定具有在鄰居不斷連情況下老化路由的能力,則BGP分布點(diǎn)在重新啟動(dòng) 后,可以先選擇出具有在鄰居不斷連情況下老化路由能力的BGP鄰居,然后,向選擇出的 BGP鄰居發(fā)送路由請(qǐng)求消息。 BGP分布點(diǎn)可以根據(jù)預(yù)先存儲(chǔ)的信息確定出具有在鄰居不斷連情況下老化路由能 力的BGP鄰居。預(yù)先存儲(chǔ)的信息可以是靜態(tài)配置的,也可以是動(dòng)態(tài)配置的。靜態(tài)配置的一個(gè)具體的例子為網(wǎng)管等通過發(fā)送命令在BGP分布點(diǎn)中配置具有在鄰居不斷連情況下老化 路由能力的BGP鄰居的信息。動(dòng)態(tài)配置的一個(gè)具體例子為不論網(wǎng)絡(luò)中的各節(jié)點(diǎn)對(duì)上述能
力的支持情況如何,BGP鄰居和BGP分布點(diǎn)之間都可以相互通報(bào)是否具有在鄰居不斷連情 況下老化路由能力的信息,BGP分布點(diǎn)存儲(chǔ)該通報(bào)的信息。這樣,BGP分布點(diǎn)可以根據(jù)該通 報(bào)的信息獲知哪些BGP鄰居具有在鄰居不斷連情況下老化路由能力。 上述通報(bào)是否具有在鄰居不斷連情況下老化路由能力的信息的過程可以在BGP 能力協(xié)商過程中實(shí)現(xiàn)。也就是說,可以將在鄰居不斷連情況下老化路由的能力作為BGP能 力的一部分。BGP鄰居通報(bào)是否具有在鄰居不斷連情況下老化路由能力的信息的一個(gè)具體 例子為BGP鄰居將是否具有在鄰居不斷連情況下老化路由能力的信息攜帶在OPEN消息 中,并向?qū)Χ斯?jié)點(diǎn)發(fā)送該OPEN消息??梢詫?duì)OPEN消息進(jìn)行擴(kuò)展,以在OPEN消息中攜帶上 述信息。對(duì)OPEN消息的擴(kuò)展可以為增加新的字段,利用該新增加的字段攜帶上述信息;也 可以為利用OPEN消息的已有字段來攜帶上述信息,例如OPEN消息中的某個(gè)保留字段來攜 帶上述信息等。 對(duì)于網(wǎng)絡(luò)中存在的不具有在鄰居不斷連情況下老化路由能力的BGP鄰居,可以采 用現(xiàn)有的方法來保證BGP鄰居存儲(chǔ)正確的路由,例如中斷BGP分布點(diǎn)與BGP鄰居之間的連 接,再重新建立BGP鄰居之間的連接等。 在步驟110中,可以利用現(xiàn)有協(xié)議中的消息來實(shí)現(xiàn)路由請(qǐng)求消息,如將 Route-Refresh消息作為路由請(qǐng)求消息;也可以通過其它消息來實(shí)現(xiàn)路由請(qǐng)求消息,例如 通過新定義增加的消息來實(shí)現(xiàn)路由請(qǐng)求消息。本實(shí)施例不限制路由請(qǐng)求消息的具體表現(xiàn)形 式。 步驟120、 BGP鄰居接收路由請(qǐng)求消息,并根據(jù)該路由請(qǐng)求消息向BGP分布點(diǎn)發(fā)送 路由。BGP鄰居在向BGP分布點(diǎn)發(fā)送路由時(shí)應(yīng)遵守BGP的防止路由環(huán)回等規(guī)定。BGP鄰居 發(fā)送路由采用的消息可以為現(xiàn)有BGP中規(guī)定的消息,當(dāng)然,也可以采用其它消息,例如采用 新定義增加的消息等。 BGP鄰居在將需要發(fā)送的路由均向BGP分布點(diǎn)發(fā)送完成后,可以向BGP分布點(diǎn)發(fā)送 一條消息,該消息表示BGP鄰居路由發(fā)送完成,該消息可以稱為第一路由發(fā)送結(jié)束消息。第 一路由發(fā)送結(jié)束消息的一個(gè)具體例子為End-Of-RIB消息。當(dāng)然,第一路由發(fā)送結(jié)束消息 也可以為其它消息,例如,可以為新定義增加的消息等。 需要說明的是,BGP鄰居也可以在發(fā)送路由的消息中攜帶第一路由發(fā)送結(jié)束標(biāo)志 信息,該標(biāo)志信息表示BGP鄰居路由發(fā)送完成。在發(fā)送路由的消息中攜帶路由發(fā)送結(jié)束標(biāo) 志信息的情況下,BGP鄰居可以不再發(fā)送第一路由發(fā)送結(jié)束消息。 步驟130、 BGP分布點(diǎn)接收BGP鄰居發(fā)送來的路由,并對(duì)接收到的路由進(jìn)行路由處理。 在BGP鄰居向BGP分布點(diǎn)發(fā)送路由之后還向BGP分布點(diǎn)發(fā)送第一路由發(fā)送結(jié)束消 息的情況下,BGP分布點(diǎn)在接收到各BGP鄰居發(fā)送的路由后,還需要判斷是否接收到各BGP 鄰居發(fā)送的第一路由發(fā)送結(jié)束消息,在判斷出成功接收到各BGP鄰居發(fā)送的路由以及第一 路由發(fā)送結(jié)束消息后,BGP分布點(diǎn)再對(duì)接收到的路由進(jìn)行路由處理。BGP分布點(diǎn)可以按照現(xiàn) 有機(jī)制進(jìn)行路由處理,如對(duì)路由選路并更新路由轉(zhuǎn)發(fā)表等。在BGP鄰居向BGP分布點(diǎn)發(fā)送 的路由中攜帶有第一路由發(fā)送結(jié)束標(biāo)志信息的情況下,BGP分布點(diǎn)也可以采用類似的方式來進(jìn)行路由處理。 步驟140、在路由處理完成后,BGP分布點(diǎn)向BGP鄰居發(fā)送路由處理后的路由。例 如,BGP分布點(diǎn)根據(jù)出口策略向各BGP鄰居發(fā)送路由處理后的路由。 BGP分布點(diǎn)在需要向BGP鄰居發(fā)送路由處理后的路由時(shí),可以先向BGP鄰居發(fā)送一 條消息,該消息表示后續(xù)BGP鄰居接收到的路由為BGP分布點(diǎn)發(fā)送的、用于BGP鄰居進(jìn)行路 由老化處理的路由。該消息可以稱為路由發(fā)送起始消息。在BGP鄰居為多個(gè)時(shí),BGP分布 點(diǎn)應(yīng)向多個(gè)BGP鄰居均發(fā)送路由發(fā)送起始消息。 BGP分布點(diǎn)在向BGP鄰居發(fā)送路由處理后的路由過程中,可以考慮BGP鄰居支持的 地址族和子地址族信息,也就是說,BGP分布點(diǎn)向BGP鄰居發(fā)送的路由應(yīng)該屬于BGP鄰居支 持的地址族和子地址族。BGP鄰居支持的地址族和子地址族信息可以是靜態(tài)配置的,也可以 是動(dòng)態(tài)配置的。靜態(tài)配置的一個(gè)具體的例子為網(wǎng)管等通過發(fā)送命令在BGP分布點(diǎn)中配置 BGP鄰居支持的地址族和子地址族信息。動(dòng)態(tài)配置的一個(gè)具體例子為BGP鄰居向BGP分布 點(diǎn)通報(bào)其支持的地址族和子地址族信息,BGP分布點(diǎn)存儲(chǔ)該通報(bào)的信息。這樣,BGP分布點(diǎn) 可以根據(jù)該通報(bào)的信息獲知BGP鄰居支持的地址族和子地址族信息。這里的地址族和子地 址族如IPv6單播/多播、IPv4單播/多播、VPNv6單播/多播、以及VPNv4單播/多播等。
BGP分布點(diǎn)在向BGP鄰居發(fā)送路由處理后的路由過程中,可以考慮BGP鄰居是否支 持路由范圍,如果BGP鄰居支持路由范圍,則BGP分布點(diǎn)可以向BGP鄰居發(fā)送需要進(jìn)行路由 老化的路由范圍信息、以及路由范圍內(nèi)的路由;否則,BGP分布點(diǎn)需要向BGP鄰居發(fā)送所有 的路由。BGP鄰居是否支持路由范圍信息可以是靜態(tài)配置的,也可以是動(dòng)態(tài)配置的。靜態(tài)配 置的一個(gè)具體的例子為網(wǎng)管等通過發(fā)送命令在BGP分布點(diǎn)中配置BGP鄰居支持路由范圍 信息。動(dòng)態(tài)配置的一個(gè)具體例子為BGP鄰居向BGP分布點(diǎn)通報(bào)其支持路由范圍信息,BGP 分布點(diǎn)存儲(chǔ)該通報(bào)的信息。這樣,BGP分布點(diǎn)可以根據(jù)該通報(bào)的信息獲知BGP鄰居的支持 路由范圍信息。 在BGP鄰居支持路由范圍時(shí),BGP分布點(diǎn)可以在路由發(fā)送起始消息中攜帶路由范
圍信息,該路由范圍信息用于指示BGP鄰居在該路由范圍內(nèi)進(jìn)行路由老化處理。VPN路由范
圍信息如RD信息等。上述路由發(fā)送起始消息可以為新定義增加的消息。 在發(fā)送路由發(fā)送起始消息后,BGP分布點(diǎn)向BGP鄰居發(fā)送路由處理后的路由。BGP
分布點(diǎn)在向BGP鄰居發(fā)送路由時(shí)應(yīng)遵守BGP的防止路由環(huán)回等規(guī)定。BGP分布點(diǎn)發(fā)送路由
采用的消息可以為現(xiàn)有BGP中規(guī)定的消息,如路由更新消息;當(dāng)然,也可以采用其它消息,
例如采用新定義增加的消息等。 針對(duì)一個(gè)BGP鄰居來說,BGP分布點(diǎn)在將需要發(fā)送的路由均向該BGP鄰居發(fā)送完成 后,可以向該BGP鄰居發(fā)送一條消息,該消息表示BGP分布點(diǎn)路由發(fā)送完成,該消息可以稱 為第二路由發(fā)送結(jié)束消息。第二路由發(fā)送結(jié)束消息的一個(gè)具體例子為End-Of-RIB消息。 當(dāng)然,第二路由發(fā)送結(jié)束消息也可以為其它消息,例如,可以為新定義增加的消息等。這里 的第二路由發(fā)送結(jié)束消息可以與上述第一路由發(fā)送結(jié)束消息相同,如均End-Of-RIB消息、
或者均為某個(gè)新定義增加的消息等。 步驟140中需要說明的是,BGP分布點(diǎn)也可以在發(fā)送路由的消息中攜帶路由發(fā)送 起始標(biāo)志信息以及路由范圍信息,該標(biāo)志信息表示BGP分布點(diǎn)開始發(fā)送用于路由老化的路 由。在發(fā)送路由的消息中攜帶路由發(fā)送起始標(biāo)志信息和路由范圍信息的情況下,BGP分布
7點(diǎn)可以不再發(fā)送路由發(fā)送起始消息。另外,BGP分布點(diǎn)也可以在發(fā)送路由的消息中攜帶路
由發(fā)送第二結(jié)束標(biāo)志信息,該標(biāo)志信息表示BGP分布點(diǎn)路由發(fā)送完成。在發(fā)送路由的消息
中攜帶第二路由發(fā)送結(jié)束標(biāo)志信息的情況下,BGP分布點(diǎn)可以不再發(fā)送第二路由發(fā)送結(jié)束
消息。這里的第二路由發(fā)送結(jié)束標(biāo)志可以與上述第一路由發(fā)送結(jié)束標(biāo)志相同。 步驟150、 BGP鄰居根據(jù)接收到的路由進(jìn)行路由老化處理。路由老化處理如刪除
BGP鄰居中存儲(chǔ)的某路由、修改BGP鄰居中存儲(chǔ)的某路由、以及在BGP鄰居中增加存儲(chǔ)新的
路由等。 在BGP分布點(diǎn)發(fā)送第二路由發(fā)送結(jié)束消息的情況下,BGP鄰居可以在接收到第二 路由發(fā)送結(jié)束消息后,根據(jù)接收到路由對(duì)其存儲(chǔ)的路由進(jìn)行路由老化處理。如果BGP鄰居 在預(yù)定時(shí)間間隔內(nèi)沒有接收到第二路由發(fā)送結(jié)束消息,則BGP鄰居也可以根據(jù)接收到的路 由對(duì)其存儲(chǔ)的路由進(jìn)行路由老化處理。該預(yù)定時(shí)間間隔即BGP鄰居進(jìn)行路由老化處理的最 大等待時(shí)間。 BGP鄰居可以在接收到路由發(fā)送起始消息時(shí)開始為最大等待時(shí)間計(jì)時(shí),在計(jì)時(shí)值 未超過最大等待時(shí)間且BGP鄰居接收到路由發(fā)送結(jié)束消息,則BGP鄰居根據(jù)接收到的路由 對(duì)其存儲(chǔ)的路由進(jìn)行路由老化處理;在計(jì)時(shí)值超過最大等待時(shí)間且BGP鄰居一直未接收到 BGP分布點(diǎn)發(fā)送的第二路由發(fā)送結(jié)束消息的情況下,BGP鄰居根據(jù)接收到的路由對(duì)其存儲(chǔ) 的路由進(jìn)行路由老化。也就是說,在本實(shí)施例中,觸發(fā)BGP鄰居進(jìn)行路由老化處理的條件可 以為路由發(fā)送結(jié)束消息,也可以為最大等待時(shí)間。上述計(jì)時(shí)值未超過最大等待時(shí)間也可以 為計(jì)時(shí)值未達(dá)到最大等待時(shí)間,此時(shí),計(jì)時(shí)值超過最大等待時(shí)間應(yīng)該為計(jì)時(shí)值達(dá)到最大等 待時(shí)間。另外,BGP鄰居也可以在接收到BGP分布點(diǎn)發(fā)送的路由時(shí)開始為最大等待時(shí)間計(jì) 時(shí)。 需要說明的是,在BGP分布點(diǎn)向BGP鄰居發(fā)送的路由中攜帶路由發(fā)送起始標(biāo)志信 息和/或第二路由發(fā)送結(jié)束標(biāo)志信息的情況下,BGP鄰居也可以采用上述類似的方式來進(jìn) 行路由老化處理。另外,上述最大等待時(shí)間可以是靜態(tài)配置的,也可以是動(dòng)態(tài)配置的。靜態(tài) 配置的一個(gè)具體例子為網(wǎng)管等通過發(fā)送命令在BGP鄰居中配置最大等待時(shí)間。動(dòng)態(tài)配置 的一個(gè)具體例子為在BGP能力協(xié)商過程中協(xié)商確定最大等待時(shí)間。 從上述實(shí)施例一的描述可知,BGP分布點(diǎn)在重新啟動(dòng)后,通過向BGP鄰居發(fā)送路由 請(qǐng)求消息,BGP鄰居根據(jù)接收到的路由請(qǐng)求消息向BGP分布點(diǎn)發(fā)送路由,使BGP分布點(diǎn)可 以在重新啟動(dòng)后、不需要斷連BGP鄰居連接的情況下,收集到BGP鄰居發(fā)送的路由,實(shí)現(xiàn)路 由處理;BGP分布點(diǎn)通過向BGP鄰居發(fā)送路由處理后的路由,使BGP鄰居可以根據(jù)接收到的 路由對(duì)其存儲(chǔ)的路由進(jìn)行老化處理,從而在不需要BGP鄰居間斷連并重新建立連接的情況 下,也能夠使BGP鄰居存儲(chǔ)正確的路由,進(jìn)而避免了一個(gè)BGP分布點(diǎn)重新啟動(dòng)而影響到所有 的BGP鄰居的問題。通過使BGP鄰居在發(fā)送路由后向BGP分布點(diǎn)發(fā)送第一路由發(fā)送結(jié)束消 息,使BGP分布點(diǎn)可以明確獲知是否從BGP鄰居處成功收集到完整的路由。通過采用最大 等待時(shí)間和第二路由發(fā)送結(jié)束消息來觸發(fā)BGP鄰居進(jìn)行路由老化處理,避免了第二路由發(fā) 送結(jié)束消息傳輸異常而導(dǎo)致的不能夠成功進(jìn)行路由老化的現(xiàn)象。通過在BGP能力協(xié)商過程 中進(jìn)行具有在鄰居不斷連情況下路由老化能力、以及最大等待時(shí)間等的協(xié)商,使BGP分布 點(diǎn)可以方便的獲知哪些BGP鄰居具有在鄰居不斷連情況下路由老化的能力,使BGP鄰居可 以獲得合理的最大等待時(shí)間。通過在路由發(fā)送起始消息中攜帶路由范圍信息,使BGP鄰居能夠針對(duì)BGP分布點(diǎn)負(fù)責(zé)的路由范圍內(nèi)對(duì)路由進(jìn)行老化處理。 實(shí)施例二、在BGP分布點(diǎn)為基于RD的BGP分布點(diǎn)的情況下,實(shí)現(xiàn)路由老化的方法。
基于RD的分布式路由處理結(jié)構(gòu)如附圖2所示。 圖2中包括路由接收與分發(fā)模塊和三個(gè)路由存儲(chǔ)與處理模塊。 一個(gè)路由存儲(chǔ)與 處理模塊即一個(gè)基于RD的BGP分布點(diǎn),也即一個(gè)基于RD的BGP運(yùn)行單元,基于RD的BGP 運(yùn)行單元可以稱為RD-BGP運(yùn)行單元,RD-BGP運(yùn)行單元可以以進(jìn)程或線程等方式實(shí)現(xiàn)。
路由接收與分發(fā)模塊接收來自BGP鄰居的VPN路由。圖2中示出的路由接收與分 發(fā)模塊能夠接收到BGP鄰居1和BGP鄰居2發(fā)送來的VPN路由,BGP鄰居1發(fā)送來的VPN路 由可以包括RD為100 : 1的VPN路由和RD為200 : 1的VPN路由;BGP鄰居2發(fā)送來的 VPN路由可以包括RD為300 : 1的VPN路由。 路由接收與分發(fā)模塊在接收到來自BGP鄰居的VPN路由后,獲取來自BGP鄰居的 VPN路由的RD對(duì)應(yīng)的路由存儲(chǔ)與處理模塊。路由接收與分發(fā)模塊將接收到的VPN路由發(fā)送 到獲取的路由存儲(chǔ)與處理模塊,即向三個(gè)路由存儲(chǔ)與處理模塊中的一個(gè)路由存儲(chǔ)與處理模 塊發(fā)送VPN路由。路由存儲(chǔ)與處理模塊接收路由接收與分發(fā)模塊發(fā)送來的VPN路由,并對(duì) 接收到的VPN路由進(jìn)行處理。 在上述圖2所示的三個(gè)RD-BGP運(yùn)行單元中,設(shè)定其中一個(gè)RD-BGP運(yùn)行單元重新 啟動(dòng),該重新啟動(dòng)的RD-BGP運(yùn)行單元應(yīng)該在重新啟動(dòng)后向所有的具有在鄰居不斷連情況 下老化路由能力的BGP鄰居發(fā)送路由請(qǐng)求消息。重新啟動(dòng)的RD-BGP運(yùn)行單元可以利用BGP 能力協(xié)商機(jī)制來獲知哪些BGP鄰居具有在鄰居不斷連情況下老化路由的能力,哪些BGP鄰 居不具有在鄰居不斷連情況下老化路由的能力。設(shè)定具有在鄰居不斷連情況下老化路由能 力的BGP鄰居有五個(gè),則這五個(gè)BGP鄰居在接收到路由請(qǐng)求消息后,分別根據(jù)其存儲(chǔ)路由向 重新啟動(dòng)的RD-BGP運(yùn)行單元發(fā)送路由。這五個(gè)BGP鄰居中的每一個(gè)BGP鄰居在發(fā)送了路 由后,均需要顯式的向重新啟動(dòng)的RD-BGP運(yùn)行單元發(fā)送End-Of-RIB消息,以表明該BGP鄰 居路由發(fā)送完成。該重新啟動(dòng)的RD-BGP運(yùn)行單元接收這五個(gè)BGP鄰居分別發(fā)送的路由,該 重新啟動(dòng)的RD-BGP運(yùn)行單元在接收到上述五個(gè)BGP鄰居分別發(fā)送的End-0f-RIB消息后, 確定出從上述五個(gè)BGP鄰居處成功收集到路由。該重新啟動(dòng)的RD-BGP運(yùn)行單元對(duì)接收到 的所有路由進(jìn)行路由處理,如路由選路、更新路由轉(zhuǎn)發(fā)表等。重新啟動(dòng)的RD-BGP運(yùn)行單元 在路由處理完成后,向上述五個(gè)BGP鄰居分別發(fā)送路由發(fā)送起始消息,以表示重新啟動(dòng)的 RD-BGP運(yùn)行單元開始向BGP鄰居發(fā)送路由、BGP鄰居應(yīng)根據(jù)重新啟動(dòng)的RD-BGP運(yùn)行單元發(fā) 送的路由進(jìn)行路由老化處理。在這五個(gè)BGP鄰居均支持路由范圍的情況下,路由發(fā)送起始 消息中可以攜帶有BGP鄰居支持的地址族的子地址族信息、以及RD-BGP運(yùn)行單元的路由范 圍信息。之后,重新啟動(dòng)的RD-BGP運(yùn)行單元向五個(gè)BGP鄰居分別發(fā)送路由更新消息,該路 由更新消息中攜帶有路由處理后的路由,該消息中攜帶的路由為該重新啟動(dòng)的RD-BGP運(yùn) 行單元負(fù)責(zé)的路由。重新啟動(dòng)的RD-BGP運(yùn)行單元在向每一個(gè)BGP鄰居發(fā)送完路由后,均需 要再發(fā)送一條End-Of-RIB消息,以表明重新啟動(dòng)的RD-BGP運(yùn)行單元路由發(fā)送完成。BGP鄰 居在接收到路由發(fā)送起始消息后,開始為最大等待時(shí)間計(jì)時(shí)。如果BGP鄰居在計(jì)時(shí)值未達(dá) 到最大等待時(shí)間時(shí)接收到End-Of-RIB消息,則BGP鄰居根據(jù)接收到的路由更新消息中的路 由對(duì)其存儲(chǔ)的路由進(jìn)行路由老化處理。如果BGP鄰居在計(jì)數(shù)值達(dá)到最大等待時(shí)間時(shí)仍然沒 有接收到End-Of-RIB消息,則BGP鄰居根據(jù)接收到的路由更新消息中的路由對(duì)其存儲(chǔ)的路
9由進(jìn)行路由老化處理。上述進(jìn)行路由老化處理的路由為BGP鄰居支持的地址族的子地址 族、以及路由范圍內(nèi)的路由。 實(shí)施例三、在BGP分布點(diǎn)為基于RD的BGP分布點(diǎn)的情況下,路由老化方法的具體 實(shí)現(xiàn)過程如附圖3所示。 圖3中,步驟1 、 BGP restarter (即重新啟動(dòng)的基于RD的BGP分布點(diǎn))和
BGPpeer (即BGP鄰居)在BGP能力協(xié)商過程中,針對(duì)在鄰居不斷連情況下的路由老化能力
進(jìn)行協(xié)商(即協(xié)商"鄰居不斷連能夠老化路由"的能力),并建立會(huì)話。 例如,在BGP的OPEN消息的擴(kuò)展字段中定義的一個(gè)TLV字段,BGPrestarter和
BGP peer在OPEN消息的該TLV字段中攜帶上述能力協(xié)商信息,該TLV字段攜帶的能力協(xié)
商信息用于描述本端是否能夠支持上述能力、本端支持的老化路由的地址族和子地址族信
息、路由范圍信息以及BGP鄰居老化路由所需要的最大等待時(shí)間。 步驟2、BGP restarter重新啟動(dòng)后,BGP restarter向所有的具有"鄰居不斷連能
夠老化路由"能力的BGP peer發(fā)送Route-Refresh消息,以請(qǐng)求更新路由。 步驟3、BGP peer接收到Route-Refresh消息后,向BGP restarter發(fā)送更新路由
消息;在BGP peer發(fā)送完更新路由消息后,BGP peer向BGP restarter發(fā)送End-Of-RIB
消息,以表明路由發(fā)送完畢。 步驟4、 BGP restarter在接收到所有BGP peer發(fā)送的End-Of-RIB消息后,開始
對(duì)接收到的路由進(jìn)行選路并更新路由轉(zhuǎn)發(fā)表等路由處理。 步驟5、 BGP restarter向BGP peer發(fā)送"路由發(fā)送起始消息"。 這里的"路由發(fā)送起始消息"的消息格式可以是在BGP規(guī)定的Route-Refresh消
息的消息格式上擴(kuò)展而成,例如,在Route-Refresh消息的基礎(chǔ)上擴(kuò)展一個(gè)TLV字段,該擴(kuò)
展的TLV字段攜帶RD信息,該RD信息能夠指示BGP peer針對(duì)特定RD的路由進(jìn)行路由老
化處理。RD信息即路由范圍信息。 步驟6、 BGP peer在接收到"路由發(fā)送起始消息"后,記錄老化標(biāo)記,并啟動(dòng)為BGP 鄰居老化路由需要的最大等待時(shí)間設(shè)置的老化定時(shí)器。記錄老化標(biāo)記的一個(gè)具體的例子 為記錄接收到路由發(fā)送起始消息的時(shí)間,該時(shí)間即為老化標(biāo)記,從而在該時(shí)間之前接收到 的路由范圍內(nèi)的路由為需要進(jìn)行路由老化的路由;記錄老化標(biāo)記的另一個(gè)具體的例子為 對(duì)接收到路由發(fā)送起始消息之前的、路由范圍內(nèi)的路由進(jìn)行標(biāo)記,從而進(jìn)行了標(biāo)記的路由 為需要進(jìn)行路由老化的路由。 BGP peer可以從"路由發(fā)送起始消息"的TLV字段中獲取RD信息,并存儲(chǔ)該RD信 息。 步驟7、BGP restarter向BGP peer發(fā)送更新路由消息,在更新路由消息發(fā)送完畢 后,BGP restarter向BGP peer發(fā)送End-Of-RIB消息。BGP restarter在發(fā)送更新路由消 息時(shí)應(yīng)考慮BGP peer支持的地址族和子地址族信息、以及BGPpeer是否支持路由范圍。在 BGP peer支持路由范圍的情況下,更新路由消息中攜帶的路由應(yīng)該屬于BGP peer支持的地 址族和子地址族、以及預(yù)定路由范圍(如BGP restarter支持的RD范圍)內(nèi)的路由。
步驟8、在老化定時(shí)器的計(jì)時(shí)值沒有達(dá)到最大等待時(shí)間的情況下,BGP peer接收到 End-0f-RIB消息,則BGP peer根據(jù)老化標(biāo)記進(jìn)行路由老化,以更新其路由轉(zhuǎn)發(fā)表。例如, BGP peer對(duì)老化標(biāo)記之前的、屬于RD信息的路由進(jìn)行路由老化處理。
從上述實(shí)施例三的描述可知,BGP restarter在重新啟動(dòng)后,通過向BGP鄰居發(fā)送 Route-Refresh消息,BGP peer根據(jù)接收到的Route-Refresh消息向BGPrestarter發(fā)送路 由,使BGP restarter可以在重新啟動(dòng)后、不需要斷連BGP鄰居連接的情況下,收集到BGP peer發(fā)送的路由,實(shí)現(xiàn)路由處理;BGP restarter通過向BGP鄰居發(fā)送路由處理后的路由, 使BGP peer可以根據(jù)接收到的路由對(duì)其存儲(chǔ)的路由進(jìn)行老化處理,從而在不需要BGP鄰居 間斷連并重新建立連接的情況下,也能夠使BGP peer存儲(chǔ)正確的路由,進(jìn)而避免了一個(gè)BGP restarter重新啟動(dòng)而影響到所有的BGP鄰居的問題。
實(shí)施例四、基于BGP的路由老化裝置如附圖4所示。 圖4中的路由老化裝置包括路由請(qǐng)求模塊400、路由處理模塊410和路由發(fā)送模 塊420??蛇x的,該裝置還可以包括能力協(xié)商模塊430。 路由請(qǐng)求模塊400在監(jiān)測(cè)到BGP分布點(diǎn)重新啟動(dòng)完成后,在不斷連BGP分布點(diǎn)與 BGP鄰居之間的連接的情況下,向具有在鄰居不斷連情況下老化路由能力的BGP鄰居發(fā)送 路由請(qǐng)求消息。這里的BGP分布點(diǎn)的種類有多種,如基于RD的BGP分布點(diǎn)等。
在一個(gè)網(wǎng)絡(luò)中,如果所有的節(jié)點(diǎn)都肯定具有在鄰居不斷連情況下老化路由的能 力,則路由請(qǐng)求模塊400可以在BGP分布點(diǎn)重新啟動(dòng)完成后,直接向所有的BGP鄰居發(fā)送路 由請(qǐng)求消息。如果不是所有的節(jié)點(diǎn)均肯定具有在鄰居不斷連情況下老化路由的能力,則路 由請(qǐng)求模塊400可以在BGP分布點(diǎn)在重新啟動(dòng)完成后,先選擇出具有在鄰居不斷連情況下 老化路由能力的BGP鄰居,然后,向選擇出的BGP鄰居發(fā)送路由請(qǐng)求消息。
路由請(qǐng)求模塊400可以根據(jù)預(yù)先存儲(chǔ)的信息確定出具有在鄰居不斷連情況下老 化路由能力的BGP鄰居。預(yù)先存儲(chǔ)的信息可以是靜態(tài)配置的,也可以是動(dòng)態(tài)配置的。靜態(tài) 配置的一個(gè)具體的例子為網(wǎng)管等通過發(fā)送命令在BGP分布點(diǎn)中配置具有在鄰居不斷連情 況下老化路由能力的BGP鄰居的信息。動(dòng)態(tài)配置的一個(gè)具體例子為能力協(xié)商模塊430在 BGP能力協(xié)商過程中獲取并存儲(chǔ)BGP鄰居是否具有在鄰居不斷連情況下老化路由的能力。 也就是說,可以將在鄰居不斷連情況下老化路由的能力作為BGP能力的一部分。例如,能力 協(xié)商模塊430從接收到的OPEN消息中獲取BGP鄰居是否具有在鄰居不斷連情況下老化路 由能力的信息。 路由請(qǐng)求模塊400發(fā)送的路由請(qǐng)求消息如Route-Refresh消息。 BGP鄰居接收到路由請(qǐng)求消息后,會(huì)根據(jù)該路由請(qǐng)求消息向BGP分布點(diǎn)發(fā)送路由。
BGP鄰居在向BGP分布點(diǎn)發(fā)送路由時(shí)應(yīng)遵守BGP的防止路由環(huán)回等規(guī)定。BGP鄰居發(fā)送路
由采用的消息可以為現(xiàn)有BGP中規(guī)定的消息,當(dāng)然,也可以采用其它消息,例如采用新定義
增加的消息等。 BGP鄰居在將需要發(fā)送的路由均向BGP分布點(diǎn)發(fā)送完成后,可以向BGP分布點(diǎn)發(fā)送 一條消息,該消息表示BGP鄰居路由發(fā)送完成,該消息可以稱為第一路由發(fā)送結(jié)束消息。第 一路由發(fā)送結(jié)束消息的一個(gè)具體例子為End-Of-RIB消息。BGP鄰居也可以在發(fā)送路由的 消息中攜帶路由發(fā)送第一結(jié)束標(biāo)志信息,具體如上述實(shí)施例的描述。 路由處理模塊410對(duì)BGP分布點(diǎn)接收到的、BGP鄰居根據(jù)路由請(qǐng)求消息而發(fā)送的 路由進(jìn)行路由處理。在BGP鄰居發(fā)送End-Of-RIB消息的情況下,路由處理模塊410可以在 BGP分布點(diǎn)接收到各BGP鄰居發(fā)送的End-Of-RIB消息后,開始進(jìn)行路由處理。
路由發(fā)送模塊420在路由處理模塊410完成路由處理后,向BGP鄰居發(fā)送路由處理后的路由,使BGP鄰居根據(jù)接收到的路由進(jìn)行路由老化。 路由發(fā)送模塊420在需要向BGP鄰居發(fā)送路由時(shí),可以先向BGP鄰居發(fā)送一條消 息,該消息表示后續(xù)BGP鄰居接收到的路由為BGP分布點(diǎn)發(fā)送的、用于BGP鄰居進(jìn)行路由老 化處理的路由。該消息可以稱為路由發(fā)送起始消息。在BGP鄰居為多個(gè)時(shí),路由發(fā)送模塊 420應(yīng)向多個(gè)BGP鄰居均發(fā)送路由發(fā)送起始消息。 路由發(fā)送模塊420在向BGP鄰居發(fā)送路由過程中,可以考慮BGP鄰居支持的地址 族和子地址族信息,也就是說,路由發(fā)送模塊420向BGP鄰居發(fā)送的路由應(yīng)該屬于BGP鄰居 支持的地址族和子地址族。BGP鄰居支持的地址族和子地址族信息可以是靜態(tài)配置的,也可 以是動(dòng)態(tài)配置的。動(dòng)態(tài)配置如能力協(xié)商模塊430在進(jìn)行BGP能力協(xié)商過程中協(xié)商獲得。能 力協(xié)商模塊430可以利用現(xiàn)有的能力協(xié)商流程、在現(xiàn)有的消息中攜帶BGP鄰居支持的地址 族和子地址族信息來協(xié)商獲得BGP鄰居支持的地址族和子地址族,具體如上述實(shí)施例的描 述。 路由發(fā)送模塊420在向BGP鄰居發(fā)送路由過程中,可以考慮BGP鄰居是否支持路 由范圍,如果BGP鄰居支持路由范圍,則路由發(fā)送模塊420可以向BGP鄰居發(fā)送需要進(jìn)行路 由老化的路由范圍信息、以及路由范圍內(nèi)的路由;否則,路由發(fā)送模塊420向BGP鄰居發(fā)送 所有的路由。 BGP鄰居是否支持路由范圍信息可以是靜態(tài)配置的,也可以是動(dòng)態(tài)配置的。靜態(tài) 配置的一個(gè)具體的例子為網(wǎng)管等通過發(fā)送命令在BGP分布點(diǎn)中配置BGP鄰居支持路由范 圍信息。動(dòng)態(tài)配置如能力協(xié)商模塊430在進(jìn)行BGP能力協(xié)商過程中協(xié)商獲得。能力協(xié)商模 塊430可以利用現(xiàn)有的能力協(xié)商流程、在現(xiàn)有的消息中攜帶BGP鄰居是否支持路由范圍信 息來協(xié)商獲得BGP鄰居是否支持路由范圍信息,具體如上述實(shí)施例的描述。
在BGP鄰居支持路由范圍時(shí),路由發(fā)送模塊420可以在路由發(fā)送起始消息中攜帶 路由范圍信息,該路由范圍信息用于指示BGP鄰居在該路由范圍內(nèi)進(jìn)行路由老化處理。VPN 路由范圍信息如RD信息等。 路由發(fā)送模塊420在發(fā)送路由發(fā)送起始消息后,向BGP鄰居發(fā)送路由。路由發(fā)送 模塊420在向BGP鄰居發(fā)送路由時(shí)應(yīng)遵守BGP的防止路由環(huán)回等規(guī)定。路由發(fā)送模塊420 發(fā)送路由采用的消息可以為路由更新消息。 針對(duì)一個(gè)BGP鄰居來說,路由發(fā)送模塊420在將需要發(fā)送的路由均向該BGP鄰 居發(fā)送完成后,可以向該BGP鄰居發(fā)送一條消息,該消息表示BGP分布點(diǎn)路由發(fā)送完成, 該消息可以稱為第二路由發(fā)送結(jié)束消息。第二路由發(fā)送結(jié)束消息的一個(gè)具體例子為 End-0f-RIB消息。路由發(fā)送模塊420也可以在發(fā)送路由的消息中攜帶路由發(fā)送起始標(biāo)志信 息、路由范圍信息、以及第二路由發(fā)送結(jié)束標(biāo)志等,具體如上述實(shí)施例中的描述。
BGP鄰居根據(jù)接收到的路由進(jìn)行路由老化處理。路由老化處理如刪除BGP鄰居中 存儲(chǔ)的某路由、修改BGP鄰居中存儲(chǔ)的某路由、以及在BGP鄰居中增加存儲(chǔ)新的路由等。
上述能力協(xié)商模塊430還可以在BGP能力協(xié)商過程中實(shí)現(xiàn)對(duì)最大等待時(shí)間的協(xié) 商。最大等待時(shí)間可以觸發(fā)BGP鄰居進(jìn)行路由老化處理,具體如上述實(shí)施例中的描述。
上述實(shí)施例四中的路由處理模塊410的結(jié)構(gòu)如附圖5所示。
圖5中的路由處理模塊410包括判斷子模塊411和路由處理子模塊412。
判斷子模塊411判斷BGP分布點(diǎn)是否接收到各BGP鄰居發(fā)送的第一路由發(fā)送結(jié)束消息。 路由處理子模塊412在判斷子模塊411的判斷結(jié)果為BGP分布點(diǎn)接收到各BGP鄰
居發(fā)送的第一路由發(fā)送結(jié)束消息后,對(duì)BGP分布點(diǎn)接收到的路由進(jìn)行路由處理。路由處理
子模塊412進(jìn)行的路由處理如上述實(shí)施例中的描述。 上述實(shí)施例四中的路由發(fā)送模塊420的結(jié)構(gòu)如附圖6所示。 圖6中的路由發(fā)送模塊420包括消息構(gòu)造子模塊421和發(fā)送子模塊422。 消息構(gòu)造子模塊421構(gòu)造向BGP鄰居發(fā)送路由發(fā)送起始消息、攜帶有路由處理后
的路由的消息、以及第二路由發(fā)送結(jié)束消息。消息構(gòu)造子模塊421可以先構(gòu)造路由發(fā)送起
始消息,在發(fā)送子模塊422將路由發(fā)送起始消息成功發(fā)送后再構(gòu)造攜帶有路由的消息,在
發(fā)送子模塊422將攜帶有路由的消息成功發(fā)送后再構(gòu)造第二路由發(fā)送結(jié)束消息。消息構(gòu)造
子模塊421也可以不按照上述順序來構(gòu)造上述消息,雖然,消息構(gòu)造子模塊421可以不按照
上述順序來構(gòu)造上述消息,但是,發(fā)送子模塊422在發(fā)送消息時(shí)應(yīng)該按照路由發(fā)送起始消
息-攜帶有路由處理后的路由的消息-第二路由發(fā)送結(jié)束消息的順序來發(fā)送。上述路由發(fā)
送起始消息、攜帶有路由處理后的路由的消息、以及第二路由發(fā)送結(jié)束消息中攜帶的信息
如上述實(shí)施例中的描述,在此不再重復(fù)說明。 實(shí)施例五、設(shè)置有多個(gè)BGP分布點(diǎn)的路由器。 該路由器包括路由請(qǐng)求模塊、接收模塊、路由處理模塊和路由發(fā)送模塊。可選的 該路由器還可以包括能力協(xié)商模塊。 路由請(qǐng)求模塊在監(jiān)測(cè)到BGP分布點(diǎn)重新啟動(dòng)完成后,在不斷連BGP分布點(diǎn)與BGP 鄰居之間的連接的情況下,向具有在鄰居不斷連情況下老化路由能力的BGP鄰居發(fā)送路由 請(qǐng)求消息。這里的BGP分布點(diǎn)的種類有多種,如基于RD的BGP分布點(diǎn)等。
路由請(qǐng)求模塊可以根據(jù)能力協(xié)商模塊的BGP能力協(xié)商結(jié)果獲知具有在鄰居不斷 連情況下老化路由能力的BGP鄰居。具體如上述實(shí)施例的描述。 BGP鄰居接收到路由請(qǐng)求消息后,會(huì)根據(jù)該路由請(qǐng)求消息向BGP分布點(diǎn)發(fā)送路由。 接收模塊接收BGP鄰居發(fā)送來的路由、以及第一路由發(fā)送結(jié)束消息等。
路由處理模塊對(duì)接收模塊接收到的、BGP鄰居根據(jù)路由請(qǐng)求消息而發(fā)送的路由進(jìn) 行路由處理。在BGP鄰居發(fā)送End-0f-RIB消息的情況下,路由處理模塊可以在接收模塊接 收到各BGP鄰居發(fā)送的End-0f-RIB消息后,開始進(jìn)行路由處理。 路由發(fā)送模塊在路由處理模塊完成路由處理后,向BGP鄰居發(fā)送路由處理后的路 由,使BGP鄰居根據(jù)接收到的路由進(jìn)行路由老化。 路由發(fā)送模塊在需要向BGP鄰居發(fā)送路由時(shí),可以先向BGP鄰居發(fā)送一條消息,該 消息表示后續(xù)BGP鄰居接收到的路由為BGP分布點(diǎn)發(fā)送的、用于BGP鄰居進(jìn)行路由老化處 理的路由。該消息可以稱為路由發(fā)送起始消息。在BGP鄰居為多個(gè)時(shí),路由發(fā)送模塊應(yīng)向 多個(gè)BGP鄰居均發(fā)送路由發(fā)送起始消息。 路由發(fā)送模塊在向BGP鄰居發(fā)送路由過程中,可以考慮BGP鄰居支持的地址族和 子地址族信息,也就是說,路由發(fā)送模塊向BGP鄰居發(fā)送的路由應(yīng)該屬于BGP鄰居支持的地 址族和子地址族。BGP鄰居支持的地址族和子地址族信息可以是靜態(tài)配置的,也可以是動(dòng)態(tài) 配置的。動(dòng)態(tài)配置如能力協(xié)商模塊在進(jìn)行BGP能力協(xié)商過程中配置。能力協(xié)商模塊可以利 用現(xiàn)有的能力協(xié)商流程、在現(xiàn)有的消息中攜帶BGP鄰居支持的地址族和子地址族信息來協(xié)商獲得BGP鄰居支持的地址族和子地址族,具體如上述實(shí)施例的描述。
路由發(fā)送模塊在向BGP鄰居發(fā)送路由過程中,可以考慮BGP鄰居是否支持路由范 圍,如果BGP鄰居支持路由范圍,則路由發(fā)送模塊可以向BGP鄰居發(fā)送需要進(jìn)行路由老化的 路由范圍信息、以及路由范圍內(nèi)的路由;否則,路由發(fā)送模塊向BGP鄰居發(fā)送所有的路由。
BGP鄰居是否支持路由范圍信息可以是靜態(tài)配置的,也可以是動(dòng)態(tài)配置的。動(dòng)態(tài)配 置如能力協(xié)商模塊在進(jìn)行BGP能力協(xié)商過程中設(shè)置。能力協(xié)商模塊可以利用現(xiàn)有的能力協(xié) 商流程、在現(xiàn)有的消息中攜帶BGP鄰居是否支持路由范圍信息來協(xié)商獲得BGP鄰居是否支 持路由范圍信息,具體如上述實(shí)施例的描述。 在BGP鄰居支持路由范圍時(shí),路由發(fā)送模塊可以在路由發(fā)送起始消息中攜帶路由 范圍信息,該路由范圍信息用于指示BGP鄰居在該路由范圍內(nèi)進(jìn)行路由老化處理。VPN路由 范圍信息如RD信息等。 路由發(fā)送模塊在發(fā)送路由發(fā)送起始消息后,向BGP鄰居發(fā)送路由。路由發(fā)送模塊 在向BGP鄰居發(fā)送路由時(shí)應(yīng)遵守BGP的防止路由環(huán)回等規(guī)定。路由發(fā)送模塊發(fā)送路由采用 的消息可以為路由更新消息。 針對(duì)一個(gè)BGP鄰居來說,路由發(fā)送模塊在將需要發(fā)送的路由均向該BGP鄰居發(fā)送 完成后,可以向該BGP鄰居發(fā)送一條消息,該消息表示BGP分布點(diǎn)路由發(fā)送完成,該消息可 以稱為第二路由發(fā)送結(jié)束消息。第二路由發(fā)送結(jié)束消息的一個(gè)具體例子為End-Of-RIB消 息。路由發(fā)送模塊也可以在發(fā)送路由的消息中攜帶路由發(fā)送第二起始標(biāo)志信息、路由范圍 信息、以及第二路由發(fā)送結(jié)束標(biāo)志等,具體如上述實(shí)施例中的描述。BGP鄰居根據(jù)接收到的路由進(jìn)行路由老化處理。路由老化處理如刪除BGP鄰居中
存儲(chǔ)的某路由、修改BGP鄰居中存儲(chǔ)的某路由、以及在BGP鄰居中增加存儲(chǔ)新的路由等。 上述能力協(xié)商模塊還可以在BGP能力協(xié)商過程中實(shí)現(xiàn)對(duì)最大等待時(shí)間的協(xié)商。最
大等待時(shí)間可以觸發(fā)BGP鄰居進(jìn)行路由老化處理,具體如上述實(shí)施例中的描述。 路由處理模塊和路由發(fā)送模塊分別包括的子模塊等如上述實(shí)施例中的描述,在此
不再詳細(xì)說明。 通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借 助軟件加必需的硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以全部通過硬件來實(shí)施,但很多情況下 前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案對(duì)背景技術(shù)做出貢獻(xiàn)的全部 或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如 ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù) 器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
雖然通過實(shí)施例描繪了本發(fā)明,本領(lǐng)域普通技術(shù)人員知道,本發(fā)明有許多變形和 變化而不脫離本發(fā)明的精神,本發(fā)明的申請(qǐng)文件的權(quán)利要求包括這些變形和變化。
權(quán)利要求
一種基于BGP的路由老化方法,其特征在于,BGP分布點(diǎn)在重新啟動(dòng)后,所述方法包括向BGP鄰居發(fā)送路由請(qǐng)求消息,所述BGP鄰居為具有在鄰居不斷連情況下老化路由能力的BGP鄰居;接收所述BGP鄰居根據(jù)所述路由請(qǐng)求消息發(fā)送的路由,并對(duì)接收到的路由進(jìn)行路由處理;向所述BGP鄰居發(fā)送路由處理后的路由,使所述BGP鄰居根據(jù)接收到的路由進(jìn)行路由老化。
2. 如權(quán)利要求1所述的方法,其特征在于,在所述向BGP鄰居發(fā)送路由請(qǐng)求消息之前,還包括所述BGP分布點(diǎn)與所述BGP鄰居進(jìn)行BGP能力協(xié)商,并在所述BGP能力協(xié)商過程中,根據(jù)所述BGP鄰居之間相互通報(bào)的是否具有在鄰居不斷連情況下老化路由能力的信息,獲知具有在鄰居不斷連情況下老化路由能力的BGP鄰居,所述是否具有在鄰居不斷連情況下老化路由能力的信息攜帶在擴(kuò)展的BGP能力協(xié)商過程的消息中。
3. 如權(quán)利要求l所述的方法,其特征在于,所述接收所述BGP鄰居根據(jù)所述路由請(qǐng)求消息發(fā)送的路由,并對(duì)接收到的路由進(jìn)行路由處理,具體包括所述BGP分布點(diǎn)接收所述BGP鄰居根據(jù)所述路由請(qǐng)求消息發(fā)送的路由,并當(dāng)所述BGP分布點(diǎn)接收到所述BGP鄰居發(fā)送的第一路由發(fā)送結(jié)束標(biāo)志或第一路由發(fā)送結(jié)束消息后,對(duì)接收到的路由進(jìn)行路由處理。
4. 如權(quán)利要求l所述的方法,其特征在于,所述向所述BGP鄰居發(fā)送路由處理后的路由之前,還包括所述BGP分布點(diǎn)向所述BGP鄰居發(fā)送路由發(fā)送起始消息;所述向所述BGP鄰居發(fā)送路由處理后的路由,具體包括所述BGP分布點(diǎn)根據(jù)所述BGP鄰居支持的地址族和子地址族信息、和/或所述BGP鄰居支持的路由范圍,向所述BGP鄰居發(fā)送所述路由處理后的路由,并在發(fā)送完所述路由處理后的路由后,向所述BGP鄰居發(fā)送第二路由發(fā)送結(jié)束標(biāo)志或第二路由發(fā)送結(jié)束消息,其中,所述BGP鄰居支持的地址族和子地址族信息、和/或所述BGP鄰居支持的路由范圍在所述BGP能力協(xié)商過程中協(xié)商確定。
5. 如權(quán)利要求4所述的方法,其特征在于,所述使BGP鄰居根據(jù)接收到的路由進(jìn)行路由老化,具體包括當(dāng)所述BGP鄰居收到了所述BGP分布點(diǎn)發(fā)送的第二路由發(fā)送結(jié)束標(biāo)志或第二路由發(fā)送結(jié)束消息時(shí),所述BGP鄰居根據(jù)接收到的所述路由對(duì)存儲(chǔ)的路由進(jìn)行路由老化;或者當(dāng)所述BGP鄰居接收到所述BGP分布點(diǎn)發(fā)送的路由發(fā)送起始消息時(shí),開始計(jì)時(shí);在計(jì)時(shí)值未超過規(guī)定的最大等待時(shí)間且所述BGP分布點(diǎn)接收到所述BGP鄰居發(fā)送的第二路由發(fā)送結(jié)束標(biāo)志或第二路由發(fā)送結(jié)束消息、或者計(jì)時(shí)值超過規(guī)定的最大等待時(shí)間且所述BGP分布點(diǎn)一直未接收到所述BGP鄰居發(fā)送的第二路由發(fā)送結(jié)束標(biāo)志或第二路由發(fā)送結(jié)束消息的情況下,所述BGP鄰居根據(jù)接收到的所述路由對(duì)存儲(chǔ)的路由進(jìn)行路由老化,其中所述最大等待時(shí)間在所述BGP能力協(xié)商過程中協(xié)商確定。
6. —種基于BGP的路由老化裝置,其特征在于,所述裝置包括路由請(qǐng)求模塊,用于在BGP分布點(diǎn)重新啟動(dòng)后,向BGP鄰居發(fā)送路由請(qǐng)求消息,所述BGP鄰居為具有在鄰居不斷連情況下老化路由能力的BGP鄰居;路由處理模塊,用于對(duì)BGP分布點(diǎn)接收到的路由進(jìn)行路由處理,所述接收到的路由為BGP鄰居根據(jù)所述路由請(qǐng)求消息發(fā)送的路由;路由發(fā)送模塊,用于在路由處理模塊完成路由處理后,向BGP鄰居發(fā)送路由處理后的路由,使BGP鄰居根據(jù)接收到的路由進(jìn)行路由老化。
7. 如權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括能力協(xié)商模塊,用于進(jìn)行BGP能力協(xié)商,并根據(jù)BGP鄰居通報(bào)的是否具有在鄰居不斷連情況下老化路由能力信息確定具有在鄰居不斷連情況下老化路由能力的BGP鄰居,并存儲(chǔ)具有在鄰居不斷連情況下老化路由能力的BGP鄰居信息,所述是否具有在鄰居不斷連情況下老化路由能力的信息攜帶在擴(kuò)展的BGP能力協(xié)商過程的消息中。
8. 如權(quán)利要求6所述的裝置,其特征在于,路由處理模塊包括判斷子模塊,用于判斷是否接收到BGP鄰居發(fā)送的第一路由發(fā)送結(jié)束標(biāo)志或第一路由發(fā)送結(jié)束消息;路由處理子模塊,用于在所述判斷子模塊判斷出接收到BGP鄰居發(fā)送的第一路由發(fā)送結(jié)束標(biāo)志或第一路由發(fā)送結(jié)束消息后,對(duì)BGP分布點(diǎn)接收到的路由進(jìn)行路由處理。
9. 如權(quán)利要求6所述的裝置,其特征在于,所述路由發(fā)送模塊包括消息構(gòu)造子模塊,用于構(gòu)造向BGP鄰居發(fā)送路由發(fā)送起始消息、向BGP鄰居發(fā)送的攜帶有路由處理后的路由的消息、以及向BGP鄰居發(fā)送的第二路由發(fā)送結(jié)束標(biāo)志或第二路由發(fā)送結(jié)束消息;發(fā)送子模塊,用于先向BGP鄰居發(fā)送路由發(fā)送起始消息,然后向BGP鄰居發(fā)送攜帶有路由處理后的路由的消息,再向BGP鄰居發(fā)送第二路由發(fā)送結(jié)束標(biāo)志或第二路由發(fā)送結(jié)束消息。
10. —種路由器,設(shè)置有多個(gè)BGP分布點(diǎn),其特征在于,包括路由請(qǐng)求模塊,用于在BGP分布點(diǎn)重新啟動(dòng)后,向BGP鄰居發(fā)送路由請(qǐng)求消息,所述BGP鄰居為具有在鄰居不斷連情況下老化路由能力的BGP鄰居;接收模塊,用于接收BGP鄰居根據(jù)所述路由請(qǐng)求消息發(fā)送的路由;路由處理模塊,用于對(duì)接收模塊接收的路由進(jìn)行路由處理;路由發(fā)送模塊,用于在路由處理模塊完成路由處理后,向BGP鄰居發(fā)送路由處理后的路由,使BGP鄰居根據(jù)接收到的路由進(jìn)行路由老化。
11. 如權(quán)利要求IO所述的路由器,其特征在于,所述路由器還包括能力協(xié)商模塊,用于進(jìn)行BGP能力協(xié)商,并根據(jù)BGP鄰居通報(bào)的是否具有在鄰居不斷連情況下老化路由能力信息確定具有在鄰居不斷連情況下老化路由能力的BGP鄰居,并存儲(chǔ)具有在鄰居不斷連情況下老化路由能力的BGP鄰居信息,所述是否具有在鄰居不斷連情況下老化路由能力的信息攜帶在擴(kuò)展的BGP能力協(xié)商過程的消息中。
全文摘要
公開了基于邊界網(wǎng)關(guān)協(xié)議的路由老化方法、裝置和路由器。其中,基于BGP的路由老化方法包括BGP分布點(diǎn)在重新啟動(dòng)后,向BGP鄰居發(fā)送路由請(qǐng)求消息,所述BGP鄰居為具有在鄰居不斷連情況下老化路由能力的BGP鄰居;BGP分布點(diǎn)接收BGP鄰居根據(jù)所述路由請(qǐng)求消息發(fā)送的路由,并對(duì)接收到的路由進(jìn)行路由處理;BGP分布點(diǎn)向BGP鄰居發(fā)送路由處理后的路由,使BGP鄰居根據(jù)接收到的路由進(jìn)行路由老化。上述技術(shù)方案可以實(shí)現(xiàn)在不與BGP鄰居斷連的情況下,更新BGP鄰居中存儲(chǔ)的路由。
文檔編號(hào)H04L29/06GK101764737SQ200810241079
公開日2010年6月30日 申請(qǐng)日期2008年12月25日 優(yōu)先權(quán)日2008年12月25日
發(fā)明者徐海軍, 武利, 程強(qiáng)林, 陳雙龍 申請(qǐng)人:華為技術(shù)有限公司