本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種報(bào)文轉(zhuǎn)發(fā)方法及裝置。
背景技術(shù):
OSPF(Open Shortest Path First,開放最短路徑優(yōu)先)協(xié)議是IETF(Internet Engineering Task Force,互聯(lián)網(wǎng)工程任務(wù)組)組織開發(fā)的一個(gè)基于鏈路狀態(tài)的內(nèi)部網(wǎng)關(guān)協(xié)議。網(wǎng)絡(luò)中的路由器之間通過OSPF協(xié)議報(bào)文維護(hù)本地的LSDB(Link State DataBase,鏈路狀態(tài)數(shù)據(jù)庫),該數(shù)據(jù)庫中包括多條LSA(Link State Advertisement,鏈路狀態(tài)通告)。
目前,OSPF協(xié)議將網(wǎng)絡(luò)中的自治系統(tǒng)劃分成不同的區(qū)域。一個(gè)路由器可以屬于不同的區(qū)域。其中,同時(shí)屬于至少兩個(gè)區(qū)域的路由器稱為ABR(Area Border Router,區(qū)域邊界路由器)。如圖1所示,鏈路L1和L2均屬于區(qū)域1,鏈路L3、L4和L5均屬于區(qū)域1,路由器B和C均屬于ABR,各個(gè)鏈路的開銷cost已經(jīng)標(biāo)示在圖中。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提供了一種報(bào)文轉(zhuǎn)發(fā)方法及裝置,能夠使區(qū)域邊界路由器在轉(zhuǎn)發(fā)報(bào)文時(shí)選擇更優(yōu)路徑。
為了達(dá)到上述目的,本發(fā)明公開了一種報(bào)文轉(zhuǎn)發(fā)方法,應(yīng)用于區(qū)域邊界路由器ABR,所述方法包括:
接收待轉(zhuǎn)發(fā)報(bào)文,所述待轉(zhuǎn)發(fā)報(bào)文是從第一區(qū)域的源路由器發(fā)送至第二區(qū)域的目的路由器的報(bào)文;
根據(jù)所述待轉(zhuǎn)發(fā)報(bào)文,獲取所述ABR與所述目的路由器之間的可達(dá)鏈路,所述可達(dá)鏈路包括屬于跨區(qū)域的鏈路和/或?qū)儆谒龅诙^(qū)域的鏈路,所述跨區(qū)域的鏈路包括跨所述第一區(qū)域和所述第二區(qū)域的鏈路;
獲取所述可達(dá)鏈路的鏈路開銷,根據(jù)所述鏈路開銷,從所述可達(dá)鏈路中確定最優(yōu)鏈路;
通過所述最優(yōu)鏈路轉(zhuǎn)發(fā)所述待轉(zhuǎn)發(fā)報(bào)文。
為了達(dá)到上述目的,本發(fā)明公開了一種報(bào)文轉(zhuǎn)發(fā)裝置,應(yīng)用于區(qū)域邊界路由器ABR,所述裝置包括:
接收模塊,用于接收待轉(zhuǎn)發(fā)報(bào)文,所述待轉(zhuǎn)發(fā)報(bào)文是從第一區(qū)域的源路由器發(fā)送至第二區(qū)域的目的路由器的報(bào)文;
獲取模塊,用于根據(jù)所述待轉(zhuǎn)發(fā)報(bào)文,獲取所述ABR與所述目的路由器之間的可達(dá)鏈路,所述可達(dá)鏈路包括屬于跨區(qū)域的鏈路和/或?qū)儆谒龅诙^(qū)域的鏈路,所述跨區(qū)域的鏈路包括跨所述第一區(qū)域和所述第二區(qū)域的鏈路;
確定模塊,用于獲取所述可達(dá)鏈路的鏈路開銷,根據(jù)所述鏈路開銷,從所述可達(dá)鏈路中確定最優(yōu)鏈路;
轉(zhuǎn)發(fā)模塊,用于通過所述最優(yōu)鏈路轉(zhuǎn)發(fā)所述待轉(zhuǎn)發(fā)報(bào)文。
由上述技術(shù)方案可見,本發(fā)明實(shí)施例中,當(dāng)ABR接收到從第一區(qū)域的源路由器發(fā)送至第二區(qū)域的目的路由器的待轉(zhuǎn)發(fā)報(bào)文時(shí),確定該ABR與目的路由器之間的可達(dá)鏈路,然后獲取每條可達(dá)鏈路的鏈路開銷,根據(jù)鏈路開銷,從可達(dá)鏈路中確定最優(yōu)鏈路,通過最優(yōu)鏈路轉(zhuǎn)發(fā)待轉(zhuǎn)發(fā)報(bào)文。其中,可達(dá)鏈路包括屬于跨區(qū)域的鏈路和/或?qū)儆诘诙^(qū)域的鏈路,跨區(qū)域的鏈路包括跨第一區(qū)域和第二區(qū)域的鏈路。
也就是說,本發(fā)明實(shí)施例中,根據(jù)ABR與目的路由器之間的屬于跨區(qū)域的鏈路和或/屬于第二區(qū)域的可達(dá)鏈路,從該可達(dá)鏈路中確定最優(yōu)鏈路。而現(xiàn)有技術(shù)中,從ABR與目的路由器之間的屬于第二區(qū)域的鏈路中確定最優(yōu)鏈路,而ABR與目的路由器之間的屬于跨區(qū)域的鏈路可能更優(yōu),現(xiàn)有技術(shù)中沒有考慮跨區(qū)域的鏈路。本發(fā)明實(shí)施例既考慮了屬于第二區(qū)域的鏈路,也考慮了屬于跨區(qū)域的鏈路,因此,本發(fā)明實(shí)施例能夠使ABR在轉(zhuǎn)發(fā)報(bào)文時(shí)選擇更優(yōu)路徑。
附圖說明
為了更清楚地說明本發(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為網(wǎng)絡(luò)中路由器和鏈路的區(qū)域劃分的一種原理示意圖;
圖2為本發(fā)明實(shí)施例提供的報(bào)文轉(zhuǎn)發(fā)方法的一種流程示意圖;
圖3為本發(fā)明實(shí)施例提供的報(bào)文轉(zhuǎn)發(fā)方法的另一種流程示意圖;
圖4為網(wǎng)絡(luò)中路由器之間相互連接的一種原理示意圖;
圖5為本發(fā)明實(shí)施例提供的報(bào)文轉(zhuǎn)發(fā)裝置的一種結(jié)構(gòu)示意圖;
圖6為本發(fā)明實(shí)施例提供的報(bào)文轉(zhuǎn)發(fā)裝置的另一種結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整的描述。顯然,所描述的實(shí)施例僅僅是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
應(yīng)當(dāng)理解,盡管在本申請(qǐng)可能采用術(shù)語第一、第二、第三等來描述各種信息,但這些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本申請(qǐng)范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息,取決于語境。此外,所使用的詞語“如果”可以被解釋為“在……時(shí)”或“當(dāng)……時(shí)”或“響應(yīng)于確定”。
本發(fā)明實(shí)施例提供了一種報(bào)文轉(zhuǎn)發(fā)方法及裝置,能夠使區(qū)域邊界路由器在轉(zhuǎn)發(fā)報(bào)文時(shí)選擇更優(yōu)路徑。
下面通過具體實(shí)施例,對(duì)本發(fā)明進(jìn)行詳細(xì)說明。
圖2為本發(fā)明實(shí)施例提供的報(bào)文轉(zhuǎn)發(fā)方法的一種流程示意圖,應(yīng)用于區(qū)域邊界路由器ABR,所述方法包括如下步驟:
步驟S201:接收待轉(zhuǎn)發(fā)報(bào)文。
其中,待轉(zhuǎn)發(fā)報(bào)文是從第一區(qū)域的源路由器發(fā)送至第二區(qū)域的目的路由器的報(bào)文。待轉(zhuǎn)發(fā)報(bào)文可以是數(shù)據(jù)報(bào)文,即報(bào)文中攜帶有數(shù)據(jù);也可以是非數(shù)據(jù)報(bào)文,例如通告類報(bào)文、確認(rèn)類報(bào)文等。本發(fā)明對(duì)此不做具體限定。
在實(shí)際應(yīng)用中,報(bào)文中攜帶有源路由器的地址和目的路由器的地址。根據(jù)目的路由器的地址確定目的路由器歸屬的區(qū)域。待轉(zhuǎn)發(fā)報(bào)文中攜帶的源路由器地址為待轉(zhuǎn)發(fā)報(bào)文的上一跳路由器的地址。也就是說,待轉(zhuǎn)發(fā)報(bào)文每通過一個(gè)路由器,都會(huì)進(jìn)行源路由器地址替換。例如,在圖1中,當(dāng)路由器D接收到待轉(zhuǎn)發(fā)報(bào)文時(shí),將該報(bào)文中的源路由器地址替換為D的地址,然后轉(zhuǎn)發(fā)至路由器B或C處。其中,源路由器地址可以為源路由器的MAC(Media Access Control,媒體訪問控制)地址,也可以為其他地址。
根據(jù)源路由器的地址確定源路由器歸屬的區(qū)域,可以包括多種實(shí)施方式,例如根據(jù)ABR自身存儲(chǔ)的鄰居路由器信息確定源路由器歸屬的區(qū)域,或者根據(jù)預(yù)先存儲(chǔ)的鄰居路由器與歸屬區(qū)域的對(duì)應(yīng)關(guān)系確定源路由器歸屬的區(qū)域。下面列舉一種具體的實(shí)施方式。
在本實(shí)施例中,第一區(qū)域可以是采用以下過程確定的:
根據(jù)待轉(zhuǎn)發(fā)報(bào)文的源路由器地址,確定待轉(zhuǎn)發(fā)報(bào)文的源路由器;將源路由器歸屬的區(qū)域確定為第一區(qū)域。
具體的,根據(jù)待轉(zhuǎn)發(fā)報(bào)文的源路由器的MAC地址以及ARP(Address Resolution Protocol,地址解析協(xié)議)表,可以確定源路由器的IP(Internet Protocol Address,網(wǎng)際協(xié)議地址)地址,根據(jù)IP地址和鄰居路由器的對(duì)應(yīng)關(guān)系可以確定源路由器的路由器標(biāo)識(shí)ID,根據(jù)鄰居路由器的路由器ID和歸屬區(qū)域的對(duì)應(yīng)關(guān)系,可以確定源路由器歸屬的第一區(qū)域。
下面舉例說明。在圖1中,路由器D接收到報(bào)文后,將報(bào)文的源路由器地址替換為D上L4鏈路對(duì)應(yīng)的端口的MAC地址1-1-1-1,并通過L4鏈路發(fā)送至區(qū)域邊界路由器B。B接收待轉(zhuǎn)發(fā)報(bào)文,根據(jù)待轉(zhuǎn)發(fā)報(bào)文中的源MAC地址1-1-1-1,查詢本地的ARP表,可知該源MAC地址1-1-1-1對(duì)應(yīng)的IP為FE80::1,然后根據(jù)鄰居路由器信息,得知該FE80::1地址對(duì)應(yīng)的路由器為D,即確定待轉(zhuǎn)發(fā)報(bào)文的源路由器為D。然后,可以從鄰居路由器信息中確定D歸屬的區(qū)域?yàn)閰^(qū)域0,最終將區(qū)域0確定為第一區(qū)域。
對(duì)應(yīng)的,確定目的路由器歸屬的第二區(qū)域,也可以包括:根據(jù)待轉(zhuǎn)發(fā)報(bào)文的目的路由器地址,確定待轉(zhuǎn)發(fā)報(bào)文的目的路由器;將目的路由器歸屬的區(qū)域確定為第二區(qū)域。
步驟S202:根據(jù)待轉(zhuǎn)發(fā)報(bào)文,獲取ABR與目的路由器之間的可達(dá)鏈路。
其中,該可達(dá)鏈路包括屬于跨區(qū)域的鏈路和/或?qū)儆诘诙^(qū)域的鏈路,跨區(qū)域的鏈路包括跨第一區(qū)域和第二區(qū)域的鏈路。也就是說,可達(dá)鏈路包括以下情況:
屬于跨區(qū)域的鏈路和屬于第二區(qū)域的鏈路;
屬于跨區(qū)域的鏈路;
屬于第二區(qū)域的鏈路。
在實(shí)際應(yīng)用中,ABR與目的路由器之間的可達(dá)鏈路可能包括除上述鏈路之外的鏈路,比如屬于第三區(qū)域的鏈路。為了盡量減少報(bào)文在第一區(qū)域和第二區(qū)域之外的其他區(qū)域的轉(zhuǎn)發(fā)過程,提高信息安全性,同時(shí)也減少資源損耗,本實(shí)施例中的可達(dá)鏈路選用屬于跨區(qū)域的鏈路和/或?qū)儆诘诙^(qū)域的鏈路。
在確定跨區(qū)域的鏈路時(shí),需要說明的是,由于在ABR與目的路由器之間轉(zhuǎn)發(fā)報(bào)文時(shí),可能存在需要鄰居路由器轉(zhuǎn)發(fā)的情況,也就是說,一條可達(dá)鏈路可能包含多跳,也就是說,一條可達(dá)鏈路可能包含屬于跨區(qū)域的鏈路。例如,在圖1中,路由器B與路由器A之間的一條可達(dá)鏈路為B→L3→C→L2→A,這條鏈路中包含屬于第一區(qū)域的鏈路L3和屬于第二區(qū)域的鏈路L2,可達(dá)鏈路B→L3→C→L2→A就屬于跨區(qū)域的鏈路。
具體的,確定ABR與目的路由器之間的可達(dá)鏈路可以包括多種實(shí)施方式,可以根據(jù)ABR中存儲(chǔ)的鄰居路由器信息和預(yù)設(shè)第一規(guī)則,確定ABR與目的路由器之間的可達(dá)鏈路。第一規(guī)則可以是將ABR與目的路由器之間屬于指定區(qū)域的鏈路確定為可達(dá)鏈路。其中,鄰居路由器信息可以包括鄰居路由器地址、鄰居路由器歸屬的區(qū)域、與鄰居路由器相連的鏈路信息等,鏈路信息包括鏈路歸屬的區(qū)域及開銷。
例如,在圖1中,假設(shè)待轉(zhuǎn)發(fā)報(bào)文的目的路由器地址為580::1,即目的路由器為路由器A。所述ABR用B表示,B存儲(chǔ)的鄰居路由器信息包括:路由器A、C、D的地址、歸屬的區(qū)域以及與A、C、D相連的鏈路信息,則B根據(jù)上述鄰居路由器信息可知,路由器B與A之間的可達(dá)鏈路包括:B→L1→A和B→L3→C→L2→A。
需要說明的是,待轉(zhuǎn)發(fā)報(bào)文中攜帶有目的路由器的地址等信息,因此可以根據(jù)目的路由器的地址,確定目的路由器。
步驟S203:獲取所述可達(dá)鏈路的鏈路開銷,根據(jù)所述鏈路開銷,從所述可達(dá)鏈路中確定最優(yōu)鏈路。
具體的,當(dāng)一條可達(dá)鏈路包含多個(gè)下一跳時(shí),也就是說一條可達(dá)鏈路包含多條鏈路時(shí),可達(dá)鏈路的鏈路開銷即是指鏈路總開銷。在獲取可達(dá)鏈路的鏈路開銷時(shí),可以根據(jù)鄰居路由器信息中每條鏈路的鏈路信息計(jì)算每條可達(dá)鏈路的鏈路開銷,即可以根據(jù)每條可達(dá)鏈路所包含鏈路的開銷計(jì)算得到可達(dá)鏈路的鏈路開銷。
例如,按照以下方式計(jì)算上述圖1中的兩條可達(dá)鏈路B→L1→A和B→L3→C→L2→A的鏈路開銷:
獲得可達(dá)鏈路中包含的鏈路的開銷:L1的開銷為100,L2的開銷為80,L3的開銷為25,則可以計(jì)算得到兩條可達(dá)鏈路的鏈路開銷分別為100和25+80=105。
在本實(shí)施例中,根據(jù)鏈路開銷,從可達(dá)鏈路中確定最優(yōu)鏈路可以包括多種實(shí)施方式,例如,根據(jù)鏈路開銷以及預(yù)設(shè)第二規(guī)則,從可達(dá)鏈路中確定最優(yōu)鏈路。其中,預(yù)設(shè)第二規(guī)則可以是將可達(dá)鏈路按照鏈路開銷的大小進(jìn)行排序,將鏈路開銷較小的N條可達(dá)鏈路確定為最優(yōu)鏈路,也可以是,將鏈路開銷較小的N條可達(dá)鏈路中跳數(shù)最少的鏈路確定為最優(yōu)鏈路。以上方式都是可行的。
在本實(shí)施例中,根據(jù)鏈路開銷從可達(dá)鏈路中確定最優(yōu)鏈路的一種具體實(shí)施方式可以包括:將可達(dá)鏈路中鏈路開銷值最小的鏈路確定為最優(yōu)鏈路。
步驟S204:通過最優(yōu)鏈路轉(zhuǎn)發(fā)待轉(zhuǎn)發(fā)報(bào)文。
具體的,當(dāng)最優(yōu)鏈路屬于跨第一區(qū)域和第二區(qū)域的鏈路時(shí),通過最優(yōu)鏈路轉(zhuǎn)發(fā)待轉(zhuǎn)發(fā)報(bào)文,可以包括:將待轉(zhuǎn)發(fā)報(bào)文重定向至最優(yōu)鏈路,通過最優(yōu)鏈路轉(zhuǎn)發(fā)待轉(zhuǎn)發(fā)報(bào)文。
假設(shè),在圖1中,區(qū)域邊界路由器B從兩條可達(dá)鏈路B→L1→A和B→L3→C→L2→A中確定的最優(yōu)鏈路為B→L1→A,那么B通過L1鏈路將待轉(zhuǎn)發(fā)報(bào)文轉(zhuǎn)發(fā)至路由器A。如果B確定的最優(yōu)鏈路為B→L3→C→L2→A,那么B通過L3鏈路將待轉(zhuǎn)發(fā)報(bào)文轉(zhuǎn)發(fā)至區(qū)域邊界路由器C,C再重復(fù)B確定最優(yōu)鏈路的過程,從與C相連的鏈路中選擇最優(yōu)鏈路對(duì)應(yīng)的鏈路轉(zhuǎn)發(fā)待轉(zhuǎn)發(fā)報(bào)文,直至將待轉(zhuǎn)發(fā)報(bào)文轉(zhuǎn)發(fā)至目的路由器A。也就是說,B和C都按照本發(fā)明實(shí)施例的方式選擇最優(yōu)鏈路,最終會(huì)通過B→L3→C→L2→A將待轉(zhuǎn)發(fā)報(bào)文發(fā)送至A。
由上述內(nèi)容可知,本發(fā)明實(shí)施例中,根據(jù)ABR與目的路由器之間的屬于跨區(qū)域的鏈路和或/屬于第二區(qū)域的可達(dá)鏈路,從該可達(dá)鏈路中確定最優(yōu)鏈路。而現(xiàn)有技術(shù)中,從ABR與目的路由器之間的屬于第二區(qū)域的鏈路中確定最優(yōu)鏈路,而ABR與目的路由器之間的屬于跨區(qū)域的鏈路可能更優(yōu),現(xiàn)有技術(shù)中沒有考慮跨區(qū)域的鏈路。本發(fā)明實(shí)施例既考慮了屬于第二區(qū)域的鏈路,也考慮了屬于跨區(qū)域的鏈路,因此本發(fā)明實(shí)施例能夠使ABR在轉(zhuǎn)發(fā)報(bào)文時(shí)選擇更優(yōu)路徑。
在本發(fā)明的另一實(shí)施例中,可以對(duì)圖2所示實(shí)施例進(jìn)行改進(jìn)。具體的,可以針對(duì)步驟S202進(jìn)行改進(jìn),即根據(jù)待轉(zhuǎn)發(fā)報(bào)文,獲取ABR與目的路由器之間的可達(dá)鏈路,可以按照?qǐng)D3所示流程示意圖進(jìn)行,具體包括:
步驟S202A:根據(jù)待轉(zhuǎn)發(fā)報(bào)文,獲取ABR與目的路由器之間的所有鏈路。
具體的,ABR根據(jù)目的路由器的地址以及路由表可以獲取ABR與目的路由器之間的所有鏈路。
步驟S202B:從所獲取的鏈路中選擇屬于跨第一區(qū)域和第二區(qū)域、且鄰居路由器已接收到目的路由器發(fā)送的鏈路狀態(tài)通告的第一類鏈路,從所獲取的鏈路中選擇屬于第二區(qū)域、且鄰居路由器已接收到目的路由器發(fā)送的鏈路狀態(tài)通告的第二類鏈路。
其中,鏈路狀態(tài)通告LSA中包含了鄰居路由器和對(duì)應(yīng)的鏈路開銷信息。當(dāng)所述ABR的鄰居路由器接收到目的路由器發(fā)送的鏈路狀態(tài)通告時(shí),說明所述ABR能夠計(jì)算自身通過該鄰居路由器到達(dá)目的路由器的可達(dá)鏈路的鏈路開銷。
需要說明的是,針對(duì)所獲取的每條ABR與目的路由器之間的鏈路,如果與ABR相連的鏈路屬于第一區(qū)域,由于需要將待轉(zhuǎn)發(fā)報(bào)文發(fā)送至目的路由器,必然要經(jīng)過第二區(qū)域的鏈路,因此可以確定該ABR與目的路由器之間的鏈路屬于跨第一區(qū)域和第二區(qū)域的鏈路。例如,在圖4中,路由器B與路由器A之間的一條鏈路為B→L3→C→L2→A,由于L3屬于第一區(qū)域,因此可以確定鏈路B→L3→C→L2→A屬于跨第一區(qū)域和第二區(qū)域的鏈路。
下面舉例說明本實(shí)施例確定可達(dá)鏈路的過程。在圖4中,假設(shè)所述ABR即路由器B確定的自身與目的路由器A之間的所有鏈路包括:
B→L1→A;
B→L7→E→L6→A;
B→L3→C→L2→A;
假設(shè),待轉(zhuǎn)發(fā)報(bào)文的第一區(qū)域?yàn)閰^(qū)域0,第二區(qū)域?yàn)閰^(qū)域1,則B從以上鏈路中選擇第一類鏈路或第二類鏈路的過程包括:先根據(jù)與B相連的鏈路L1、L7和L3歸屬的區(qū)域確定上述鏈路歸屬的區(qū)域,再根據(jù)路由器A、E和C是否接收到目的路由器發(fā)送的LSA,確定上述鏈路屬于第一類鏈路還是第二類鏈路。假設(shè),根據(jù)鄰居路由器信息,將上述鏈路歸屬的區(qū)域和是否接收到A的LSA的情況標(biāo)示如下:
B→L1(區(qū)域1)→A(有LSA);
B→L7(區(qū)域2)→E(無LSA)→L6→A;
B→L3(區(qū)域0)→C(無LSA)→L2→A;
由上述內(nèi)容可以確定,第一條鏈路屬于第二區(qū)域,第三條鏈路屬于跨第一區(qū)域和第二區(qū)域的鏈路,由于第二條鏈路既不屬于第二區(qū)域,也不屬于跨第一區(qū)域和第二區(qū)域,為了盡量減少報(bào)文在第一區(qū)域和第二區(qū)域之外的其他區(qū)域的轉(zhuǎn)發(fā)過程,提高信息安全性,同時(shí)也減少資源損耗,本實(shí)施例中將第三條鏈路舍棄。那么,根據(jù)鄰居路由器是否接收到LSA最終可以確定上述鏈路中無第一類鏈路,第二類鏈路為B→L1(區(qū)域1)→A(有LSA)。
步驟S202C:將第一類鏈路和第二類鏈路確定為ABR與目的路由器之間的可達(dá)鏈路。
在本實(shí)施例中,通過所述最優(yōu)鏈路轉(zhuǎn)發(fā)待轉(zhuǎn)發(fā)報(bào)文,可以包括:
當(dāng)最優(yōu)鏈路屬于第一類鏈路時(shí),將待轉(zhuǎn)發(fā)報(bào)文重定向至最優(yōu)鏈路,通過最優(yōu)鏈路轉(zhuǎn)發(fā)待轉(zhuǎn)發(fā)報(bào)文。
由上述內(nèi)容可見,在本發(fā)明實(shí)施例中,從獲取的ABR與目的路由器之間的所有鏈路中選擇第一類鏈路和第二類鏈路,將這兩類鏈路確定為ABR與目的路由器之間的可達(dá)鏈路,其中,第一類鏈路和第二類鏈路中對(duì)應(yīng)的ABR的鄰居路由器均已接收到目的路由器發(fā)送的LSA,這樣,ABR能夠獲取可達(dá)鏈路的鏈路開銷,提高確定最優(yōu)鏈路時(shí)的效率。
基于與上述方法同樣的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種報(bào)文轉(zhuǎn)發(fā)裝置,應(yīng)用在區(qū)域邊界路由器ABR上。該報(bào)文轉(zhuǎn)發(fā)裝置可以通過軟件實(shí)現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個(gè)邏輯意義上的裝置,是通過其所在的ABR的處理器,讀取非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令形成的。從硬件層面而言,除了處理器、非易失性存儲(chǔ)器外,ABR還可以包括其他硬件,如負(fù)責(zé)處理報(bào)文的轉(zhuǎn)發(fā)芯片、網(wǎng)絡(luò)接口、內(nèi)存等;從硬件結(jié)構(gòu)上來講,該ABR還可能是分布式設(shè)備,可能包括多個(gè)接口卡,以便在硬件層面進(jìn)行報(bào)文處理的擴(kuò)展。
圖5為本發(fā)明實(shí)施例提供的報(bào)文轉(zhuǎn)發(fā)裝置的一種結(jié)構(gòu)示意圖,應(yīng)用于區(qū)域邊界路由器ABR,所述裝置包括接收模塊501、獲取模塊502、確定模塊503和轉(zhuǎn)發(fā)模塊504。
接收模塊501,用于接收待轉(zhuǎn)發(fā)報(bào)文,所述待轉(zhuǎn)發(fā)報(bào)文是從第一區(qū)域的源路由器發(fā)送至第二區(qū)域的目的路由器的報(bào)文;
獲取模塊502,用于根據(jù)所述待轉(zhuǎn)發(fā)報(bào)文,獲取所述ABR與所述目的路由器之間的可達(dá)鏈路,所述可達(dá)鏈路包括屬于跨區(qū)域的鏈路和/或?qū)儆谒龅诙^(qū)域的鏈路,所述跨區(qū)域的鏈路包括跨所述第一區(qū)域和所述第二區(qū)域的鏈路;
確定模塊503,用于獲取所述可達(dá)鏈路的鏈路開銷,根據(jù)所述鏈路開銷,從所述可達(dá)鏈路中確定最優(yōu)鏈路;
轉(zhuǎn)發(fā)模塊504,用于通過所述最優(yōu)鏈路轉(zhuǎn)發(fā)所述待轉(zhuǎn)發(fā)報(bào)文。
在圖5所示實(shí)施例中,確定模塊503具體可以用于:
獲取所述可達(dá)鏈路的鏈路開銷,將所述可達(dá)鏈路中鏈路開銷值最小的鏈路確定為最優(yōu)鏈路。
在圖5所示實(shí)施例中,確定模塊503還可以用于采用以下過程確定第一區(qū)域:
根據(jù)所述待轉(zhuǎn)發(fā)報(bào)文的源路由器地址,確定所述待轉(zhuǎn)發(fā)報(bào)文的源路由器;將所述源路由器歸屬的區(qū)域確定為所述第一區(qū)域。
在本發(fā)明的另一實(shí)施例中,圖5所示實(shí)施例中的獲取模塊502可以包括獲取子模塊5021、選擇子模塊5022和確定子模塊5023,這些模塊如圖6所示。該實(shí)施例與圖3所示實(shí)施例相對(duì)應(yīng)。
獲取子模塊5021,用于根據(jù)所述待轉(zhuǎn)發(fā)報(bào)文,獲取所述ABR與所述目的路由器之間的所有鏈路;
選擇子模塊5022,用于從所獲取的鏈路中選擇屬于跨所述第一區(qū)域和所述第二區(qū)域、且鄰居路由器已接收到所述目的路由器發(fā)送的鏈路狀態(tài)通告的第一類鏈路,從所確定的鏈路中選擇屬于所述第二區(qū)域、且鄰居路由器已接收到所述目的路由器發(fā)送的鏈路狀態(tài)通告的第二類鏈路;
確定子模塊5023,用于將所述第一類鏈路和所述第二類鏈路確定為所述ABR與所述目的路由器之間的可達(dá)鏈路。
在圖6所示實(shí)施例中,轉(zhuǎn)發(fā)模塊504具體可以用于:
當(dāng)所述最優(yōu)鏈路屬于所述第一類鏈路時(shí),將所述待轉(zhuǎn)發(fā)報(bào)文重定向至所述最優(yōu)鏈路,通過所述最優(yōu)鏈路轉(zhuǎn)發(fā)所述待轉(zhuǎn)發(fā)報(bào)文。
由于上述裝置實(shí)施例是基于方法實(shí)施例得到的,與該方法具有相同的技術(shù)效果,因此裝置實(shí)施例的技術(shù)效果在此不再贅述。
對(duì)于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域普通技術(shù)人員可以理解,上述實(shí)施方式中的全部或部分步驟是能夠通過程序指令相關(guān)的硬件來完成的,所述的程序可以存儲(chǔ)于計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。這里所稱存儲(chǔ)介質(zhì),是指ROM/RAM、磁碟、光盤等。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。