一種等價(jià)多路徑的出接口更新方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)通信技術(shù)領(lǐng)域,具體涉及一種等價(jià)多路徑(ECMP,Equal-CostMult1-Path)的出接口更新方法及裝置。
【背景技術(shù)】
[0002]隨著網(wǎng)際協(xié)議(IP,Internet Protocol)業(yè)務(wù)的高速發(fā)展,以及以太網(wǎng)在城域網(wǎng)中的廣泛應(yīng)用,三層網(wǎng)絡(luò)的規(guī)模越來(lái)越大,使得網(wǎng)絡(luò)的帶寬以及可靠性?;畛闪穗娦胚\(yùn)營(yíng)商們?cè)絹?lái)越關(guān)注的焦點(diǎn)。在傳統(tǒng)的分層網(wǎng)絡(luò)中,匯聚層網(wǎng)絡(luò)接入到核心網(wǎng)的環(huán)境中,學(xué)習(xí)到大量路由條目,上行流量大,為了保證流量的負(fù)載均衡以及保護(hù),經(jīng)常建立ECMP路由作為接入上行的鏈路路由。
[0003]在傳統(tǒng)的路由技術(shù)中,發(fā)往目的路由的數(shù)據(jù)包只能利用其中的一條鏈路,其它鏈路處于備份狀態(tài)或者無(wú)效狀態(tài),并且在動(dòng)態(tài)路由環(huán)境下的相互切換需要一定時(shí)間。而等價(jià)多路徑路由協(xié)議可以在該網(wǎng)絡(luò)環(huán)境下同時(shí)使用多條路由,如圖1所示,Rl可以通過(guò)自身兩個(gè)出接口將去往同一目的地址的不同數(shù)據(jù)報(bào)文路由至R2和R3,從而不僅增加了傳輸帶寬,而且可以無(wú)延時(shí)無(wú)丟包地備份失效鏈路的數(shù)據(jù)傳輸。目前,開(kāi)放式最短路徑優(yōu)先(OSPF,Open Shortest Path First)、中間系統(tǒng)到中間系統(tǒng)(IS-1S,Intermediate Systemto Intermediate System Routing Protocol)和邊界網(wǎng)關(guān)協(xié)議(BGP,Border GatewayProtocol)等動(dòng)態(tài)路由協(xié)議中都已支持ECMP功能。
[0004]ECMP路由表項(xiàng)中,同一個(gè)目的地址可能對(duì)應(yīng)于多個(gè)出接口。然而發(fā)明人發(fā)現(xiàn),在實(shí)際應(yīng)用中,在獲得ECMP路由表項(xiàng)后,設(shè)備本地可能尚未生成某個(gè)出接口的二層轉(zhuǎn)發(fā)信息,進(jìn)而導(dǎo)致路由轉(zhuǎn)發(fā)信息表(FIB,F(xiàn)orward Informat1n Base)中一直無(wú)法更新該出接口,導(dǎo)致無(wú)法實(shí)現(xiàn)流量的負(fù)載均衡,并且,在特定環(huán)境下可能導(dǎo)致業(yè)務(wù)流量的中斷,不能滿足網(wǎng)絡(luò)的高可靠性需求。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例要解決的技術(shù)問(wèn)題是提供一種等價(jià)多路徑的出接口更新方法及裝置,通過(guò)及時(shí)更新ECMP路由表項(xiàng)對(duì)應(yīng)的出接口信息,為實(shí)現(xiàn)流量的負(fù)載均衡和鏈路帶寬的有效利用提供了保證,并提高了網(wǎng)絡(luò)的可靠性。
[0006]為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供的一種等價(jià)多路徑的出接口更新方法,包括:
[0007]獲得新生成的ECMP路由,并確定所述ECMP路由的所有下一跳;
[0008]判斷所述ECMP路由的各個(gè)下一跳對(duì)應(yīng)的二層轉(zhuǎn)發(fā)信息是否在本地已存在,并根據(jù)判斷結(jié)果,僅將本地已存在二層轉(zhuǎn)發(fā)信息的下一跳的路由信息下發(fā)至轉(zhuǎn)發(fā)信息表FIB中,以及,在一數(shù)據(jù)庫(kù)中為所述ECMP路由的各個(gè)下一跳設(shè)置一對(duì)應(yīng)的標(biāo)志位,其中,所述標(biāo)志位有效時(shí)表示本地已存在該下一跳的二層轉(zhuǎn)發(fā)信息,無(wú)效時(shí)表示本地不存在該下一跳的二層轉(zhuǎn)發(fā)信息;
[0009]周期性遍歷所述數(shù)據(jù)庫(kù)中的每個(gè)下一跳,直至所有下一跳均遍歷完成,其中,若當(dāng)前遍歷的下一跳的標(biāo)志位為有效,則繼續(xù)遍歷下一個(gè)下一跳;若當(dāng)前遍歷的下一跳的標(biāo)志位為無(wú)效,則觸發(fā)該下一跳的ARP學(xué)習(xí)過(guò)程,以及,在通過(guò)所述ARP學(xué)習(xí)過(guò)程學(xué)習(xí)到該下一跳對(duì)應(yīng)的二層轉(zhuǎn)發(fā)信息后,更新該下一跳的標(biāo)志位為有效,并將該下一跳的路由信息下發(fā)至所述FIB中。
[0010]其中,上述方法中,所述判斷所述ECMP路由的各個(gè)下一跳對(duì)應(yīng)的二層轉(zhuǎn)發(fā)信息是否在本地已存在,包括:
[0011]根據(jù)各個(gè)下一跳,查詢本地的ARP表;
[0012]若未查詢到該下一跳,則判斷本地不存在該下一跳的二層轉(zhuǎn)發(fā)信息;
[0013]若查詢到該下一跳,則進(jìn)一步根據(jù)該下一跳對(duì)應(yīng)的MAC地址查詢本地的MAC表:若查詢到該下一跳對(duì)應(yīng)的MAC地址時(shí),則判斷本地存在該下一跳的二層轉(zhuǎn)發(fā)信息,否則,判斷本地不存在該下一跳的二層轉(zhuǎn)發(fā)信息。
[0014]其中,上述方法中,進(jìn)一步通過(guò)設(shè)置一定時(shí)器進(jìn)行計(jì)時(shí),當(dāng)所述定時(shí)器計(jì)時(shí)到預(yù)定門(mén)限后,觸發(fā)所述遍歷所述數(shù)據(jù)庫(kù)的下一跳的操作,并重置所述定時(shí)器重新開(kāi)始計(jì)時(shí)。
[0015]其中,上述方法中,所述通過(guò)所述ARP學(xué)習(xí)過(guò)程學(xué)習(xí)到該下一跳對(duì)應(yīng)的二層轉(zhuǎn)發(fā)信息后,更新該下一跳的標(biāo)志位,并將該下一跳的路由信息下發(fā)至所述FIB中,包括:
[0016]在新生成第一 ARP表項(xiàng)時(shí),根據(jù)該第一 ARP表項(xiàng)的第一 IP地址,判斷所述數(shù)據(jù)庫(kù)是否存在與該第一 IP地址相同的下一跳;
[0017]若存在與該第一 IP相同的下一跳,且該下一跳的標(biāo)志位為無(wú)效,則更新該下一跳的標(biāo)志位為有效,并解析得到該下一跳的出接口,將該下一跳及其出接口信息下發(fā)至所述FIB 中。
[0018]其中,上述方法中,在從ARP表中刪除一第二 ARP表項(xiàng)時(shí),所述方法還包括:
[0019]根據(jù)該第二 ARP表項(xiàng)的第二 IP地址,判斷所述數(shù)據(jù)庫(kù)是否存在與該第二 IP地址相同的下一跳,并在存在與該第二 IP相同的下一跳時(shí),將該下一跳及其出接口信息從所述FIB中刪除。
[0020]其中,上述方法中,還包括:
[0021]在所述ECMP路由被刪除時(shí),將所述ECMP路由的所有下一跳的信息,從所述數(shù)據(jù)庫(kù)中刪除;以及,
[0022]將所述FIB中存在所述ECMP路由的下一跳的路由信息均刪除。
[0023]本發(fā)明實(shí)施例還提供了一種等價(jià)多路徑ECMP的出接口更新裝置,包括:
[0024]獲得單元,用于獲得新生成的ECMP路由,并確定所述ECMP路由的所有下一跳;
[0025]判斷單元,用于判斷所述ECMP路由的各個(gè)下一跳對(duì)應(yīng)的二層轉(zhuǎn)發(fā)信息是否在本地已存在;
[0026]處理單元,用于根據(jù)所述判斷單元的判斷結(jié)果,僅將本地已存在二層轉(zhuǎn)發(fā)信息的下一跳的路由信息下發(fā)至轉(zhuǎn)發(fā)信息表FIB中,以及,在一數(shù)據(jù)庫(kù)中為所述ECMP路由的各個(gè)下一跳設(shè)置一對(duì)應(yīng)的標(biāo)志位,其中,所述標(biāo)志位有效時(shí)表示本地已存在該下一跳的二層轉(zhuǎn)發(fā)信息,無(wú)效時(shí)表示本地不存在該下一跳的二層轉(zhuǎn)發(fā)信息;
[0027]遍歷單元,用于周期性遍歷所述數(shù)據(jù)庫(kù)中的每個(gè)下一跳,直至所有下一跳均遍歷完成,其中,若當(dāng)前遍歷的下一跳的標(biāo)志位為有效,則繼續(xù)遍歷下一個(gè)下一跳;若當(dāng)前遍歷的下一跳的標(biāo)志位為無(wú)效,則觸發(fā)該下一跳的ARP學(xué)習(xí)過(guò)程,以及,在通過(guò)所述ARP學(xué)習(xí)過(guò)程學(xué)習(xí)到該下一跳對(duì)應(yīng)的二層轉(zhuǎn)發(fā)信息后,更新該下一跳的標(biāo)志位為有效,并將該下一跳的路由信息下發(fā)至所述FIB中。
[0028]其中,上述裝置中,所述判斷處理單元具體用于:
[0029]根據(jù)各個(gè)下一跳,查詢本地的ARP表;
[0030]若未查詢到該下一跳,則判斷本地不存在該下一跳的二層轉(zhuǎn)發(fā)信息;
[0031]若查詢到該下一跳,則進(jìn)一步根據(jù)該下一跳對(duì)應(yīng)的MAC地址查詢本地的MAC表:若查詢到該下一跳對(duì)應(yīng)的MAC地址時(shí),則判斷本地存在該下一跳的二層轉(zhuǎn)發(fā)信息,否則,判斷本地不存在該下一跳的二層轉(zhuǎn)發(fā)信息。
[0032]其中,上述裝置中,還包括:
[0033]定時(shí)單元,用于設(shè)置一定時(shí)器進(jìn)行計(jì)時(shí),當(dāng)所述定時(shí)器計(jì)時(shí)到預(yù)定門(mén)限后,觸發(fā)所述遍歷單元遍歷所述數(shù)據(jù)庫(kù)的下一跳,并重置所述定時(shí)器重新開(kāi)始計(jì)時(shí)。
[0034]其中,上述裝置中,還包括:
[0035]ARP表項(xiàng)處理單元,用于新生成一第一 ARP表項(xiàng);
[0036]所述遍歷單元,進(jìn)一步用于在所述ARP表項(xiàng)單元生成所述第一 ARP表項(xiàng)時(shí),根據(jù)該第一 ARP表項(xiàng)的第一 IP地址,判斷所述數(shù)據(jù)庫(kù)是否存在與該第一 IP地址相同的下一跳;若存在與該第一 IP相同的下一跳,且該下一跳的標(biāo)志位為無(wú)效,則更新該下一跳的標(biāo)志位為有效,并解析得到該下一跳的出接口,將該下一跳及其出接口信息下發(fā)至所述FIB中。
[0037]其中,上述裝置中,所述ARP表項(xiàng)處理單元,還用于從ARP表中刪除一第二 ARP表項(xiàng);
[0038]所述遍歷單元,還用于在所述ARP表項(xiàng)處理單元?jiǎng)h除所述第二 ARP表項(xiàng)時(shí),根據(jù)該第二 ARP表項(xiàng)的第二 IP地址,判斷所述數(shù)據(jù)庫(kù)是否存在與該第二 IP地址相同的下一跳,并在存在與該第二 IP相同的下一跳時(shí),將該下一跳及其出接口信息從所述FIB中刪除。
[0039]其中,上述裝置中,所述遍歷單元,還用于在所述ECMP路由被刪除時(shí),將所述ECMP路由的所有下一跳的信息,從所述數(shù)據(jù)庫(kù)中刪除;以及,將所述FIB中存在所述ECMP路由的下一跳的路由信息均刪除。
[0040]與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例提供的等價(jià)多路徑的出接口更新方法及裝置,至少具有以下有益效果:
[0041]本發(fā)明實(shí)施例通過(guò)周期性更新無(wú)效的ECMP鏈路的下一跳地址,觸發(fā)地址解析協(xié)議(ARP,Address Resolut1n Protocol)學(xué)習(xí)流程,通過(guò)發(fā)送ARP請(qǐng)求報(bào)文,收集鏈路鄰居信息,獲取