一種路由器中分布式協(xié)議的實現(xiàn)方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及路由器領(lǐng)域,具體涉及一種路由器中分布式協(xié)議的實現(xiàn)方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著Internet的廣泛應(yīng)用和用戶的快速增長,網(wǎng)絡(luò)需要承載的信息流量也越來越大,對信息轉(zhuǎn)發(fā)設(shè)備的性能要求也越來越高,支持大容量的新一代路由器是核心網(wǎng)絡(luò)運營商的必然選擇。新一代路由器需要達(dá)到Pbps的吞吐量,顯然現(xiàn)階段的單主控的集中式架構(gòu)的路由器很難滿足這個要求,而基于主控與線卡之間任務(wù)共享機制實現(xiàn)的分布式路由器是一種可行的解決方案,這種分布式路由器除了具有滿足現(xiàn)實應(yīng)用要求的極強的擴展性夕卜,還具有較高的可靠性。
[0003]路由協(xié)議是路由器的核心軟件組件。在核心路由器中,路由協(xié)議維護(hù)其從鄰居學(xué)習(xí)到的動態(tài)路由及用戶配置的靜態(tài)路由。隨著路由器之間連接數(shù)量的增加,路由協(xié)議模塊需要管理的路由表的大小也增長迅速,這就要求路由器有更強的CPU處理能力和更大的存儲空間。針對該問題,目前主要的解決方案是周期性的升級路由器的主控卡或路由器本身,但通常CPU芯片的更新周期會長于互聯(lián)網(wǎng)流量增長帶來的CPU處理能力更新周期,而采用分布式的路由器體系架構(gòu)能夠有效的解決這一問題。
[0004]可見,如何在分布式路由器的主控和線卡上對路由協(xié)議進(jìn)行分布實施,使得路由協(xié)議功能模塊合理劃分、路由協(xié)議功能模塊之間信息有效傳遞已經(jīng)成為急需被解決的問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所要解決的技術(shù)問題是如何在分布式路由器的主控和線卡上對路由協(xié)議進(jìn)行分布實施,使得路由協(xié)議功能模塊合理劃分、路由協(xié)議功能模塊之間信息有效傳遞的問題。
[0006]為了解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是提供一種路由器中分布式協(xié)議的實現(xiàn)系統(tǒng),包括主控卡和多個線卡,在主控卡上設(shè)置IGP路由協(xié)議的路徑管理模塊和路由管理模塊,在各個線卡上分別設(shè)置IGP路由協(xié)議的鄰居管理模塊和轉(zhuǎn)發(fā)表;
[0007]所述鄰居管理模塊收發(fā)處理與鄰居之間的信令包,并檢測鄰居狀態(tài)變化,將鄰居狀態(tài)變化檢測結(jié)果通過的NMI接口發(fā)送給所述路徑管理模塊;
[0008]所述路徑管理模塊維護(hù)鏈路狀態(tài)數(shù)據(jù)庫,同時根據(jù)所述鄰居管理模塊檢測結(jié)果和網(wǎng)絡(luò)拓?fù)湟灶A(yù)設(shè)算法計算路由,并將路由計算結(jié)果發(fā)送給所述路由管理模塊;
[0009]所述路由管理模塊內(nèi)設(shè)有路由表,路由管理模塊根據(jù)路由計算結(jié)果,更新所述路由表,并將所述路由表中的路由信息發(fā)送給各線卡上的所述轉(zhuǎn)發(fā)表。
[0010]在上述一種路由器中分布式協(xié)議的實現(xiàn)系統(tǒng)中,所述主控卡和每個線卡上分別設(shè)有一個ILT模塊,所述ILT模塊接收對應(yīng)路徑管理模塊或鄰居管理模塊發(fā)送的消息,并通過調(diào)用本地的消息接收處理函數(shù)直接處理該消息;或者通過其所述ILT模塊的消息請求的響應(yīng)接口將該消息發(fā)送出去。
[0011]在上述一種路由器中分布式協(xié)議的實現(xiàn)系統(tǒng)中,所述主控卡和每個線卡上分別設(shè)有一個IPC模塊,當(dāng)所述IPC模塊對應(yīng)的路徑管理模塊或鄰居管理模塊發(fā)送的消息為跨站點的消息請求時,所述IPC模塊通過所述ILT模塊的消息請求的響應(yīng)接口接收該消息,并將該消息發(fā)給目標(biāo)進(jìn)程對應(yīng)的IPC模塊。
[0012]在上述一種路由器中分布式協(xié)議的實現(xiàn)系統(tǒng)中,所述IPC模塊的實現(xiàn)方式為原過程調(diào)用、原始socket消息和TIPC消息。
[0013]本發(fā)明還提供了一種路由器中分布式協(xié)議的實現(xiàn)方法,包括以下步驟:
[0014]步驟A10、IGP路由協(xié)議的路徑管理模塊PM和鄰居管理模塊匪分別部署在路由器設(shè)備的主控卡和每個線卡中執(zhí)行;
[0015]步驟A20、路徑管理模塊PM和鄰居管理模塊匪進(jìn)程間的互通消息發(fā)送給各自對應(yīng)的ILT模塊;
[0016]步驟A30、對應(yīng)ILT模塊對互通消息中目標(biāo)進(jìn)程所屬的操作系統(tǒng)進(jìn)行檢測;并根據(jù)檢測結(jié)果選擇調(diào)用ILT模塊的本地的消息處理函數(shù)或者發(fā)送給IPC模塊進(jìn)行處理,實現(xiàn)路徑管理模塊PM和鄰居管理模塊匪進(jìn)程間的通信。
[0017]在上述方法中,ILT模塊是利用分布在主控卡和不同線卡上的模塊進(jìn)程的位置信息作為引導(dǎo),將互通消息發(fā)送到目標(biāo)線卡上的遠(yuǎn)端模塊進(jìn)程;
[0018]所述模塊進(jìn)程的位置信息為:在每個ILT模塊的消息發(fā)送處理函數(shù)的入?yún)rocess_id中儲存的該模塊進(jìn)程的locat1n_id信息。
[0019]在上述方法中,步驟A30具體包括以下步驟:
[0020]步驟A31、ILT模塊對互通消息中目標(biāo)進(jìn)程的locat1n_id信息進(jìn)行檢測;
[0021]步驟A32、判斷發(fā)送進(jìn)程與目標(biāo)進(jìn)程是否在同一操作系統(tǒng)任務(wù)中,如果是,執(zhí)行步驟A33 ;否則,執(zhí)行步驟A34 ;
[0022]步驟A33、直接調(diào)用消息接收處理函數(shù)對消息進(jìn)行接收處理,然后執(zhí)行步驟A37 ;
[0023]步驟A34、ILT模塊的IPS消息發(fā)送處理函數(shù)發(fā)送該消息給對應(yīng)的本地IPC模塊;
[0024]步驟A35、發(fā)送進(jìn)程對應(yīng)的IPC模塊將互通消息發(fā)送給目標(biāo)進(jìn)程對應(yīng)的IPC模塊;
[0025]步驟A36、目標(biāo)進(jìn)程對應(yīng)的IPC模塊將受到的互通消息經(jīng)其對應(yīng)的ILT模塊發(fā)送給目標(biāo)進(jìn)程,然后執(zhí)行步驟A37 ;
[0026]步驟A37、結(jié)束程序。
[0027]在上述方法中,IPC模塊實現(xiàn)方式為原過程調(diào)用、原始socket消息和TIPC消息。
[0028]本發(fā)明,通過采用IGP路由協(xié)議的路徑管理模塊和鄰居管理模塊在主控卡和各個線卡的分布式運行的架構(gòu),充分利用線卡閑置的CPU和內(nèi)存資源,降低主控CPU及內(nèi)存資源的占用,提升路由器的可擴展能力;并利用ILT機制和IPC機制解決了 IGP路由協(xié)議各功能模塊之間的消息互通的問題。
【附圖說明】
[0029]圖1為本發(fā)明提供的一種路由器中分布式協(xié)議的實現(xiàn)系統(tǒng)的結(jié)構(gòu)框圖;
[0030]圖2為本發(fā)明中步驟A30的流程圖;
[0031]圖3為本發(fā)明中路由器的分布式協(xié)議的實現(xiàn)過程示意圖。
【具體實施方式】
[0032]OSPF(Open Shortest Path First,開放式最短路徑優(yōu)先)協(xié)議、ISIS (Intermediate System to Intermediate System,中間系統(tǒng)到中間系統(tǒng))協(xié)議等IGP(Inter1rGatewayProtocol,內(nèi)部網(wǎng)關(guān)協(xié)議)功能主要包括路徑管理和鄰居管理兩個核心功能。
[0033]路徑管理負(fù)責(zé)運行路由協(xié)議的核心部分,管理鏈路狀態(tài)數(shù)據(jù)庫,并計算路由樹。以O(shè)SPF協(xié)議為例,OSPF協(xié)議的路徑管理模塊從發(fā)送給它的LSA(Link-State Advertisement,鏈路狀態(tài)廣播)中學(xué)習(xí)到鏈路狀態(tài)數(shù)據(jù)庫,并啟動必要的定時器來維護(hù)這個數(shù)據(jù)庫;路徑管理模塊還能通過Dijkstra(迪杰斯特拉)算法確定到一個給定地址的最短路徑,并將路由計算的結(jié)果發(fā)送給路由管理模塊,鏈路狀態(tài)TE的信息發(fā)送給CSPF (ConstrainedShortest Path First,約束最短路徑優(yōu)先);生成本地的LSA,對接口、虛擬接口、偽連接接口、多區(qū)域接口以及由網(wǎng)絡(luò)管理員提供的域配置進(jìn)行維護(hù),并且當(dāng)拓?fù)浒l(fā)生變化時觸發(fā)路徑管理模塊進(jìn)行路徑計算處理。
[0034]鄰居管理負(fù)責(zé)對hello消息和IGP協(xié)議所需的鄰居關(guān)系進(jìn)行處理。以O(shè)SPF協(xié)議為例,OSPF協(xié)議鄰居管理模塊負(fù)責(zé)維護(hù)Hello定時器、發(fā)送和接收Hello數(shù)據(jù)包,當(dāng)鄰居狀態(tài)有變化時通知路徑管理模塊,通過Hello定時器檢測鄰居狀態(tài),并根據(jù)路由協(xié)議模塊創(chuàng)建和銷毀相應(yīng)的socket (套接字)ο
[0035]本發(fā)明是將分布式路由器內(nèi)部的路由協(xié)議按照路徑管理和鄰居管理兩大功能模塊分別配置到路由器設(shè)備的主控和線卡中執(zhí)行,路徑管理功能(路徑管理模塊)配置在主控卡上,鄰居管理功能(鄰居管理模塊)配置在線卡上,使得線卡閑置的CPU和內(nèi)存資源得到充分利用,以降低路由協(xié)議各功能處理模塊對主控CPU和內(nèi)存資源的占用,從而提升路由器的可擴展能力。
[0036]下面結(jié)合說明書附圖和具體實施例對本發(fā)明做出詳細(xì)的說明。
[0037]如圖1所示,本發(fā)明提供的一種路由器中分布式協(xié)議的實現(xiàn)系統(tǒng)包括:主控卡和多個線卡,IGP路由協(xié)議中的不同子功能模塊按照路徑管理和鄰居管理兩大功能模塊分布在路由器設(shè)備的主控和線卡中執(zhí)行,在主控卡上設(shè)置OSPF協(xié)議和ISIS協(xié)議的路徑管理模塊PM和路由管理模塊RTM,在各個線卡上分別設(shè)置OSPF協(xié)議和ISIS協(xié)議的鄰居管理模塊NM 和轉(zhuǎn)發(fā)表 FIB (Forward Informat1n Base);
[0038]鄰居管理模塊匪收發(fā)處理與鄰居之間的信令包,并檢測鄰居狀態(tài)變化,將鄰居狀態(tài)變化檢測結(jié)果通過的NMI接口(Network management interface,網(wǎng)絡(luò)管理接口)發(fā)送給路徑管理模塊PM;
[0039]路徑管理模塊PM維護(hù)鏈路狀態(tài)數(shù)據(jù)庫,同時根據(jù)鄰居管理模塊匪檢測結(jié)果和網(wǎng)絡(luò)拓?fù)湟灶A(yù)設(shè)算法計算路由,并將路由計算的結(jié)果發(fā)送給路由管理模塊RTM;
[0040]路由管理模塊RTM內(nèi)設(shè)有路由表,路由管理模塊RTM根據(jù)路由計算結(jié)果,更新主控卡上的路由表,并將路由表中的路由信息發(fā)送給各線卡上的轉(zhuǎn)發(fā)表FIB,以保證各線卡上的轉(zhuǎn)發(fā)表與路由管理模塊RTM里維護(hù)的路由表同步。
[0041]在本發(fā)明中,主控卡和每個線卡上分別設(shè)有一個ILT (Inter-Locat1nTransport)模塊,分布式運行在不同的單盤上的IGP路由協(xié)議的不同進(jìn)程通過ILT模塊的ILT機制進(jìn)行通信,ILT機制能為跨站點的消息請求的響應(yīng)提供接口。
[0042]跨站點的消息請求包括:創(chuàng)建進(jìn)程、銷毀進(jìn)程、發(fā)送消息到進(jìn)程、對進(jìn)程注冊異常通知信號、取消對進(jìn)程注冊異常通知信號等,用于維護(hù)分布式進(jìn)程的關(guān)系。
[0043]對于上述消息請求,ILT模塊提供了能被本