專利名稱:一種鏈路狀態(tài)通告處理方法及路由器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通訊領(lǐng)域,尤其涉及一種鏈路狀態(tài)通告處理方法及路由器。
背景技術(shù):
在實(shí)際網(wǎng)絡(luò)中,路由信息通常是通過邊緣網(wǎng)關(guān)協(xié)議/內(nèi)部網(wǎng)關(guān)協(xié)議(BGP/IGP,Border Gateway Protocol/Interior Gateway Protocol)來收集、分發(fā)的。其中,開放式最短路徑優(yōu)先(OSPF,Open Shortest Path First)協(xié)議是當(dāng)前主要的IGP協(xié)議中應(yīng)用最廣泛的一種,其中又包括基于IPv4網(wǎng)絡(luò)的OSPFv2和基于IPv6網(wǎng)絡(luò)的OSPFv3。
OSPF屬于鏈路狀態(tài)協(xié)議,收集當(dāng)前設(shè)備在網(wǎng)絡(luò)中的拓?fù)湫畔⑴c路由信息,以鏈路狀態(tài)通告(LSA,Link State Advertisement)的方式表達(dá)出來,這些LSA信息通過OSPF的同步與擴(kuò)散機(jī)制被發(fā)送到整個(gè)網(wǎng)絡(luò)中的每一臺(tái)設(shè)備上,所有這些信息組成了OSPF的鏈路狀態(tài)數(shù)據(jù)庫(kù)(LSDB,Link StateDatabase),最后,整個(gè)網(wǎng)絡(luò)中的OSPF設(shè)備上擁有的完全相同的LSDB,這是每臺(tái)設(shè)備都以各自為根,通過使用最短路徑優(yōu)先(SPF,Shortest Path First)算法,計(jì)算出路由。在OSPF中,收到無效的LSA時(shí),則需要將其刪除掉以避免出現(xiàn)無效路由。
現(xiàn)有技術(shù)中一種LSA處理方法為在OSPFv3環(huán)境下,當(dāng)路由器接收到LSA時(shí),判斷該LSA中包含的生成參數(shù),以確定產(chǎn)生該LSA的路由器ID,并將確定的ID與本路由器ID進(jìn)行比較,若相同,則認(rèn)為該LSA為自身產(chǎn)生,若該LSA無效,則刪除該LSA。
但當(dāng)路由器ID發(fā)生變化時(shí),則無法準(zhǔn)確的檢測(cè)出接收到的LSA是否為自身產(chǎn)生,導(dǎo)致出現(xiàn)無效路由,可能出現(xiàn)路由計(jì)算錯(cuò)誤。
現(xiàn)有技術(shù)中另一種LSA處理方法為在OSPFv2環(huán)境下,當(dāng)路由器收到network-LSA時(shí),提取該network-LSA中的Link State ID參數(shù),判斷該參數(shù)是否為本路由器中某個(gè)接口的IP地址,若是,則認(rèn)為該LSA為自身產(chǎn)生,并刪除該LSA。
但是在OSPFv3中,network-LSA的Link State ID參數(shù)不再是路由器的IP地址,而是路由器的接口ID,而接口ID在廣播網(wǎng)中不具有唯一性,因此無法達(dá)到刪除自身產(chǎn)生的LSA的目的。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例要解決的技術(shù)問題是提供一種鏈路狀態(tài)通告處理方法及路由器,能夠避免出現(xiàn)無效路由,從而提高路由效率。
本發(fā)明實(shí)施例提供的鏈路狀態(tài)通告處理方法,包括從接口接收鏈路-鏈路狀態(tài)通告;獲取鏈路本地地址,其中所述鏈路本地地址包括接口自身的第一鏈路本地地址以及所述鏈路-鏈路狀態(tài)通告中包含的第二鏈路本地地址;判斷所述第一鏈路本地地址與所述第二鏈路本地地址是否相同,若相同,則對(duì)所述鏈路-鏈路狀態(tài)通告進(jìn)行刪除處理。
本發(fā)明實(shí)施例提供的路由器,包括接收單元,用于從接口接收鏈路-鏈路狀態(tài)通告;獲取單元,用于獲取所述接口自身的第一鏈路本地地址以及所述鏈路-鏈路狀態(tài)通告中包含的第二鏈路本地地址;判斷單元,用于判斷所述第一鏈路本地地址與所述第二鏈路本地地址是否相同,若相同,則向所述刪除單元發(fā)送刪除通知;刪除單元,用于根據(jù)接收到的刪除通知對(duì)所述鏈路-鏈路狀態(tài)通告進(jìn)行刪除處理。
從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下有益效果由于本發(fā)明對(duì)鏈路-鏈路狀態(tài)通告(Link-LSA)中的鏈路本地(Link-local)地址與接收接口的Link-local地址進(jìn)行判斷,而在運(yùn)行OSPFv3協(xié)議的物理網(wǎng)絡(luò)中,Link-local地址與物理接口是唯一對(duì)應(yīng)的,所以可以在路由器ID變化之后檢測(cè)出其之前自身產(chǎn)生的LSA,并予以刪除,所以避免了出現(xiàn)無效路由,進(jìn)而提高了路由效率。
圖1為本發(fā)明實(shí)施例中鏈路狀態(tài)通告處理方法實(shí)施例總體流程圖;圖2為本發(fā)明實(shí)施例中Link-LSA結(jié)構(gòu)示意圖;
圖3為本發(fā)明實(shí)施例中鏈路狀態(tài)通告處理方法第一實(shí)施例流程圖;圖4為本發(fā)明實(shí)施例中鏈路狀態(tài)通告處理方法第二實(shí)施例流程圖;圖5為本發(fā)明實(shí)施例中路由器實(shí)施例示意圖。
具體實(shí)施例方式
本發(fā)明實(shí)施例提供了一種鏈路狀態(tài)通告處理方法及路由器,用于提高路由效率,本發(fā)明實(shí)施例可應(yīng)用于OSPFv3環(huán)境中路由器ID變化的情況。
請(qǐng)參閱圖1,本發(fā)明實(shí)施例鏈路狀態(tài)通告處理方法實(shí)施例包括101、接收Link-LSA;路由器從某個(gè)接口接收Link-LSA,接收到的Link-LSA中包含有Link-local地址,標(biāo)識(shí)產(chǎn)生該Link-LSA的路由器接口地址。
102、獲取Link-local地址;路由器需要獲取到兩個(gè)Link-local地址,一個(gè)是接收到的Link-LSA中包含的Link-local地址,另外一個(gè)是接收該Link-LSA的接口自身的Link-local地址,由于OSPFv3中規(guī)定每一個(gè)OSPFv3接口均保存該接口的Link-local地址,所以可以從接口本地獲得其自身的Link-local地址。
103、判斷獲取到的兩個(gè)Link-local地址是否相同,若相同,則執(zhí)行步驟104,若不相同,則執(zhí)行步驟105;104、進(jìn)行刪除處理;由于Link-LSA中的Link-local地址與接收該Link-LSA的接口的Link-local地址相同,所以認(rèn)為該Link-LSA是本路由器產(chǎn)生的,則首先向其它的路由設(shè)備通告該LSA無效,然后刪除該Link-LSA。
105、等待接收下一Link-LSA。
若Link-LSA中的Link-local地址與接收該Link-LSA的接口的Link-local地址不相同,則認(rèn)為該Link-LSA不是本路由器產(chǎn)生的,不作處理,路由器繼續(xù)等待接收下一個(gè)Link-LSA進(jìn)行判斷。
下面對(duì)Link-LSA的結(jié)構(gòu)進(jìn)行簡(jiǎn)要介紹
請(qǐng)參閱圖2,在OSPFv3中,路由器對(duì)所連接的每一條鏈路均產(chǎn)生一個(gè)Link-LSA。
其中,Advertising Router參數(shù)標(biāo)識(shí)產(chǎn)生該Link-LSA的路由器ID。
另外每個(gè)Link-LSA中包含本接口的Link-local地址(Link-localInterface Address)。在IPv6中,一個(gè)物理網(wǎng)絡(luò)(廣播網(wǎng)、點(diǎn)到點(diǎn)網(wǎng)絡(luò)等)各個(gè)接口的Link-local地址都必須不相同,否則會(huì)發(fā)生沖突。所以Link-local地址與接口之間具有唯一對(duì)應(yīng)性,因此可以利用Link-local地址判斷該Link-LSA是不是本路由器產(chǎn)生的LSA。
下面對(duì)本發(fā)明實(shí)施例中鏈路狀態(tài)通告處理方法實(shí)施例進(jìn)行詳細(xì)介紹,請(qǐng)參閱圖3,本發(fā)明實(shí)施例中鏈路狀態(tài)通告處理方法第一實(shí)施例包括301、路由設(shè)備之間建立連接;當(dāng)路由器需要與其它路由設(shè)備(第二路由設(shè)備)進(jìn)行通信時(shí),會(huì)首先建立連接,也可以認(rèn)為是交換LSA的過程,即路由器與第二路由設(shè)備之間交換LSA。
302、判斷本地是否有對(duì)方的LSA,若有,則執(zhí)行步驟304,若沒有,則執(zhí)行步驟303;路由器判斷自身是否有需要建立連接的第二路由設(shè)備所存儲(chǔ)的所有LSA。
303、向路由器發(fā)送包含Link-LSA的鏈路狀態(tài)更新(LSU,Link StateUpdate)報(bào)文;若路由器中沒有第二路由設(shè)備的所有LSA,則向第二路由設(shè)備發(fā)送獲取請(qǐng)求,第二路由設(shè)備根據(jù)接收到的獲取請(qǐng)求向路由器發(fā)送包含自身LSA與Link-LSA的LSU報(bào)文。
304、執(zhí)行其它處理;若路由器中有第二路由設(shè)備的所有LSA,則執(zhí)行其它處理,例如等待下次獲取Link-LSA的機(jī)會(huì)。
305、確定接收LSU的接口;
當(dāng)路由器接收到第二路由設(shè)備發(fā)送的LSU后,根據(jù)LSU中的標(biāo)識(shí)判斷是從哪一個(gè)接口接收到該LSU的,具體確定接口的過程為現(xiàn)有技術(shù),在此不再贅述。
306、獲取Link-local地址;路由器需要獲取到兩個(gè)Link-local地址,一個(gè)是接收到的Link-LSA中包含的Link-local地址,另外一個(gè)是接收該Link-LSA的接口自身的Link-local地址,由于OSPFv3中規(guī)定每一個(gè)OSPFv3接口均保存該接口的Link-local地址,所以可以從接口本地獲得其自身的Link-local地址。
307、判斷獲取到的兩個(gè)Link-local地址是否相同,若相同,則執(zhí)行步驟308,若不相同,則執(zhí)行步驟309;308、進(jìn)行刪除處理;由于Link-LSA中的Link-local地址與接收該Link-LSA的接口的Link-local地址相同,所以認(rèn)為該Link-LSA是本路由器產(chǎn)生的,則首先向其它的路由設(shè)備通告該LSA無效,然后刪除該Link-LSA。
還可以進(jìn)一步進(jìn)行刪除處理,在本實(shí)施例中為記錄產(chǎn)生該Link-LSA的路由器ID,即Advertising Router參數(shù),查詢具有相同的Advertising Router參數(shù)的其它LSA,首先向其它的路由設(shè)備通告查詢到的LSA無效,然后刪除該LSA。
309、等待接收下一Link-LSA。
若Link-LSA中的Link-local地址與接收該Link-LSA的接口的Link-local地址不相同,則認(rèn)為該Link-LSA不是本路由器產(chǎn)生的,不作處理,路由器繼續(xù)等待接收下一個(gè)Link-LSA進(jìn)行判斷。
本實(shí)施例中通過LSU將Link-LSA攜帶發(fā)送至路由器,發(fā)送LSU的時(shí)機(jī)為路由器與第二路由設(shè)備建立連接,交換LSA的時(shí)候,可以理解的是,同樣還可以是其它的時(shí)機(jī),下面介紹另外一種發(fā)送方式請(qǐng)參閱圖4,本發(fā)明實(shí)施例中鏈路狀態(tài)通告處理方法第二實(shí)施例包括401、第二路由設(shè)備收到新的LSA;
402、向路由器發(fā)送包含Link-LSA以及新的LSA的LSU;當(dāng)?shù)诙酚稍O(shè)備收到了新的LSA,需要向其它路由設(shè)備洪泛該LSA以更新各地的LSDB,洪泛的過程即是發(fā)送包含新的LSA的LSU的過程。
403、確定接收LSU的接口;當(dāng)路由器接收到第二路由設(shè)備發(fā)送的LSU后,根據(jù)LSU中的標(biāo)識(shí)判斷是從哪一個(gè)接口接收到該LSU的,具體確定接口的過程為現(xiàn)有技術(shù),在此不再贅述。
404、獲取Link-local地址;路由器需要獲取到兩個(gè)Link-local地址,一個(gè)是接收到的Link-LSA中包含的Link-local地址,另外一個(gè)是接收該Link-LSA的接口自身的Link-local地址,由于OSPFv3中規(guī)定每一個(gè)OSPFv3接口均保存該接口的Link-local地址,所以可以從接口本地獲得其自身的Link-local地址。
405、判斷獲取到的兩個(gè)Link-local地址是否相同,若相同,則執(zhí)行步驟406,若不相同,則執(zhí)行步驟407;406、進(jìn)行刪除處理;由于Link-LSA中的Link-local地址與接收該Link-LSA的接口的Link-local地址相同,所以認(rèn)為該Link-LSA是本路由器產(chǎn)生的,則首先向其它的路由設(shè)備通告該LSA無效,然后刪除該Link-LSA。
還可以進(jìn)一步進(jìn)行刪除處理,在本實(shí)施例中為記錄產(chǎn)生該Link-LSA的路由器ID,即Advertising Router參數(shù),查詢具有相同的Advertising Router參數(shù)的其它LSA,首先向其它的路由設(shè)備通告查詢到的LSA無效,然后刪除該LSA。
407、等待接收下一Link-LSA。
若Link-LSA中的Link-local地址與接收該Link-LSA的接口的Link-local地址不相同,則認(rèn)為該Link-LSA不是本路由器產(chǎn)生的,不作處理,路由器繼續(xù)等待接收下一個(gè)Link-LSA進(jìn)行判斷。
在OSPFv3中,無論鏈路是什么類型,路由器對(duì)所連接的每一條鏈路都會(huì)產(chǎn)生一個(gè)Link-LSA,所以上述實(shí)施例中的處理方式適用于所有網(wǎng)絡(luò)類型,同時(shí)也與各接口狀態(tài)無關(guān),進(jìn)而可以提高本發(fā)明實(shí)施例的使用范圍。
下面介紹本發(fā)明實(shí)施例中的路由器,請(qǐng)參閱圖5,本發(fā)明實(shí)施例中路由器實(shí)施例包括接收單元501,獲取單元502,判斷單元503以及刪除單元504;接收單元501用于從接口接收Link-LSA;獲取單元502用于獲取所述接口自身的第一Link-local地址以及所述Link-LSA中包含的第二Link-local地址;判斷單元503用于判斷所述第一Link-local地址與所述第二Link-local地址是否相同,若相同,則向所述刪除單元發(fā)送刪除通知;刪除單元504用于根據(jù)接收到的刪除通知對(duì)所述Link-LSA進(jìn)行刪除處理;記錄單元505,用于記錄被進(jìn)行刪除處理的鏈路-鏈路狀態(tài)通告的第一發(fā)布路由器標(biāo)識(shí),并將所述第一發(fā)布路由器標(biāo)識(shí)發(fā)送至查詢單元506;查詢單元506,用于查詢域內(nèi)具有與所述第一發(fā)布路由器標(biāo)識(shí)相同的發(fā)布路由器標(biāo)識(shí)的鏈路狀態(tài)通告,并將查詢到的鏈路狀態(tài)通告發(fā)送至刪除單元504,請(qǐng)求刪除單元504對(duì)所述鏈路狀態(tài)通告進(jìn)行刪除處理。
以上對(duì)本發(fā)明實(shí)施例所提供的一種鏈路狀態(tài)通告處理方法及路由器進(jìn)行了詳細(xì)介紹,依據(jù)上述思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種鏈路狀態(tài)通告處理方法,其特征在于,包括從接口接收鏈路-鏈路狀態(tài)通告;獲取鏈路本地地址,其中所述鏈路本地地址包括接口自身的第一鏈路本地地址以及所述鏈路-鏈路狀態(tài)通告中包含的第二鏈路本地地址;判斷所述第一鏈路本地地址與所述第二鏈路本地地址是否相同,若相同,則對(duì)所述鏈路-鏈路狀態(tài)通告進(jìn)行刪除處理。
2.根據(jù)權(quán)利要求1所述的鏈路狀態(tài)通告處理方法,其特征在于,所述從接口接收鏈路-鏈路狀態(tài)通告的步驟包括路由器接收來自第二路由設(shè)備的包含鏈路-鏈路狀態(tài)通告的鏈路狀態(tài)更新報(bào)文。
3.根據(jù)權(quán)利要求2所述的鏈路狀態(tài)通告處理方法,其特征在于,所述路由器接收來自第二路由設(shè)備的包含鏈路-鏈路狀態(tài)通告的鏈路狀態(tài)更新報(bào)文的步驟包括所述路由器與第二路由設(shè)備開始建立連接;所述路由器判斷本地是否保存有所述第二路由設(shè)備的鏈路狀態(tài)通告,若沒有,則向第二路由設(shè)備發(fā)送更新鏈路狀態(tài)通告請(qǐng)求;所述第二路由設(shè)備接收到所述請(qǐng)求后向所述路由器發(fā)送包含鏈路-鏈路狀態(tài)通告以及其它鏈路狀態(tài)通告的鏈路狀態(tài)更新報(bào)文。
4.根據(jù)權(quán)利要求2所述的鏈路狀態(tài)通告處理方法,其特征在于,所述路由器接收來自第二路由設(shè)備的包含鏈路-鏈路狀態(tài)通告的鏈路狀態(tài)更新報(bào)文的步驟包括第二路由設(shè)備收到新的鏈路狀態(tài)通告;向所述路由器主動(dòng)發(fā)送包含鏈路-鏈路狀態(tài)通告以及所述新收到的鏈路狀態(tài)通告的鏈路狀態(tài)更新報(bào)文。
5.根據(jù)權(quán)利要求2所述的鏈路狀態(tài)通告處理方法,其特征在于,所述路由器接收來自第二路由設(shè)備的包含鏈路-鏈路狀態(tài)通告的鏈路狀態(tài)更新報(bào)文的步驟之后包括根據(jù)所述鏈路狀態(tài)更新報(bào)文中的接收標(biāo)識(shí)確定接收該鏈路狀態(tài)更新報(bào)文的接口。
6.根據(jù)權(quán)利要求5所述的鏈路狀態(tài)通告處理方法,其特征在于,所述獲取所述接口自身的第一鏈路本地地址的步驟包括路由器從所述接口本地存儲(chǔ)的信息中獲取所述接口自身的第一鏈路本地地址。
7.根據(jù)權(quán)利要求3,4或5所述的鏈路狀態(tài)通告處理方法,其特征在于,所述對(duì)鏈路-鏈路狀態(tài)通告進(jìn)行刪除處理的步驟之后包括記錄所述鏈路-鏈路狀態(tài)通告的第一發(fā)布路由器標(biāo)識(shí);查詢域內(nèi)具有與所述第一發(fā)布路由器標(biāo)識(shí)相同的發(fā)布路由器標(biāo)識(shí)的鏈路狀態(tài)通告;向第二路由設(shè)備通告所述查詢到的鏈路狀態(tài)通告無效并刪除所述鏈路狀態(tài)通告。
8.根據(jù)權(quán)利要求1所述的鏈路狀態(tài)通告處理方法,其特征在于,若判斷所述第一鏈路本地地址與所述第二鏈路本地地址不相同,則等待接收下一個(gè)鏈路-鏈路狀態(tài)通告再次進(jìn)行判斷。
9.一種路由器,其特征在于,包括接收單元,用于從接口接收鏈路-鏈路狀態(tài)通告;獲取單元,用于獲取所述接口自身的第一鏈路本地地址以及所述鏈路-鏈路狀態(tài)通告中包含的第二鏈路本地地址;判斷單元,用于判斷所述第一鏈路本地地址與所述第二鏈路本地地址是否相同,若相同,則向所述刪除單元發(fā)送刪除通知;刪除單元,用于根據(jù)接收到的刪除通知對(duì)所述鏈路-鏈路狀態(tài)通告進(jìn)行刪除處理。
10.根據(jù)權(quán)利要求9所述的路由器,其特征在于,所述路由器還包括查詢單元,用于查詢域內(nèi)具有與所述第一發(fā)布路由器標(biāo)識(shí)相同的發(fā)布路由器標(biāo)識(shí)的鏈路狀態(tài)通告,并將查詢到的鏈路狀態(tài)通告發(fā)送至刪除單元,請(qǐng)求刪除單元對(duì)所述鏈路狀態(tài)通告進(jìn)行刪除處理;記錄單元,用于記錄被進(jìn)行刪除處理的鏈路-鏈路狀態(tài)通告的第一發(fā)布路由器標(biāo)識(shí),并將所述第一發(fā)布路由器標(biāo)識(shí)發(fā)送至查詢單元。
全文摘要
本發(fā)明公開了一種鏈路狀態(tài)通告處理方法及路由器,用于提高路由效率。所述方法包括從接口接收鏈路-鏈路狀態(tài)通告;從接口接收鏈路-鏈路狀態(tài)通告;獲取鏈路本地地址,其中所述鏈路本地地址包括接口自身的第一鏈路本地地址以及所述鏈路-鏈路狀態(tài)通告中包含的第二鏈路本地地址;判斷所述第一鏈路本地地址與所述第二鏈路本地地址是否相同,若相同,則對(duì)所述鏈路-鏈路狀態(tài)通告進(jìn)行刪除處理。此外本發(fā)明還相應(yīng)地提供一種路由器。本發(fā)明可以有效地提高路由效率。
文檔編號(hào)H04L29/08GK101043462SQ20071009819
公開日2007年9月26日 申請(qǐng)日期2007年4月20日 優(yōu)先權(quán)日2007年4月20日
發(fā)明者傅超 申請(qǐng)人:華為技術(shù)有限公司