技術(shù)領(lǐng)域:
本發(fā)明涉及寬帶網(wǎng)絡(luò)通信領(lǐng)域,具體涉及一種數(shù)據(jù)包轉(zhuǎn)發(fā)方法及路由設(shè)備。
背景技術(shù):
隨著科技的飛速發(fā)展,網(wǎng)絡(luò)應(yīng)用的使用給我們的生活帶來了巨大的變化,伴隨著網(wǎng)絡(luò)數(shù)據(jù)流量的不斷增長。因此,對網(wǎng)絡(luò)設(shè)備高效處理數(shù)據(jù)也提出了更高的要求。目前具有路由功能的三層交換機和路由器是常見的網(wǎng)絡(luò)路由設(shè)備,而基于硬件轉(zhuǎn)發(fā)的路由設(shè)備主要由協(xié)議控制平面和硬件轉(zhuǎn)發(fā)平面兩部分組成,如圖1所示,即協(xié)議控制設(shè)備和硬件轉(zhuǎn)發(fā)平面。硬件轉(zhuǎn)發(fā)設(shè)備。其中,協(xié)議控制面的路由服務(wù)模塊主要用于運行各種協(xié)議,通過協(xié)議包的交互進行路由學(xué)習(xí),生成核心軟件 路由表,將學(xué)習(xí)到的core軟件路由表項信息發(fā)布給硬件轉(zhuǎn)發(fā)平面;硬件轉(zhuǎn)發(fā)平面由一個或多個交換芯片組成。當網(wǎng)絡(luò)數(shù)據(jù)流到達路由設(shè)備時,在交換芯片上完成路由查找和線速轉(zhuǎn)發(fā)。當三層交換機或路由器收到IP數(shù)據(jù)包時,如果硬件路由表中存在下一跳的mac地址,則將IP數(shù)據(jù)包封裝成數(shù)據(jù)幀直接由硬件轉(zhuǎn)發(fā)。如果此時硬件路由表中沒有下一跳的mac地址,也找不到目的地址對應(yīng)的硬件mac地址,則硬件路由表項查找失敗; IP數(shù)據(jù)包將被發(fā)送到協(xié)議控制平面的CPU;以及CPU進入TCP/IP網(wǎng)絡(luò)協(xié)議棧找到核心軟件路由表后的消息。當核心軟件路由表搜索成功后,TCP/IP網(wǎng)絡(luò)協(xié)議棧會發(fā)送ARP請求報文,通過ARP(地址解析協(xié)議)協(xié)議獲取下一跳對應(yīng)的物理硬件地址;ARP學(xué)習(xí)后,將對應(yīng)的下一跳IP地址和獲取的物理硬件地址寫入ARP緩存;同時,轉(zhuǎn)發(fā)模塊將激活發(fā)送和寫入硬件路由表條目。如果收到相同的目的IP數(shù)據(jù)包,就會查找硬件路由表,直接進行硬件轉(zhuǎn)發(fā)。在獲取下一跳的物理硬件地址之前,IP數(shù)據(jù)包需要在CPU上查找核心軟件的路由表,消耗協(xié)議控制平面的CPU資源。CPU的報文處理效率不高,尤其是大量報文上送CPU時,可能會影響其他協(xié)議的正常運行。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題是提供一種快速檢測路由下一跳mac地址的方法,使得數(shù)據(jù)轉(zhuǎn)發(fā)時不占用CPU資源,節(jié)省 CPU 資源。為了解決上述技術(shù)問題,本發(fā)明設(shè)計了一種檢測路由下一跳mac地址的方法,包括如下步驟步驟1:路由服務(wù)模塊中的路由服務(wù)模塊。路由設(shè)備的協(xié)議控制設(shè)備自動學(xué)習(xí)或手動配置生成到目的地的路由表項,路由表項包括目的IP地址和下一跳IP地址;步驟2:檢查路由條目的活動,如果路由條目是活動的三層網(wǎng)絡(luò)中mac地址查看軟件,然后將路由表項寫入核心軟件路由表;如果路由表項是非活動的,則需要等待它的活動才能將其寫入核心路由表;
步驟3:在路由設(shè)備的協(xié)議控制設(shè)備中配置檢測模塊,通過檢測模塊定時發(fā)送ARP請求包,檢測下一跳IP地址的可達性;步驟4:被請求設(shè)備收到ARP請求包后,判斷目的地址是自己,向路由設(shè)備回復(fù)ARP回復(fù)包;步驟5:路由設(shè)備收到ARP回復(fù)包,根據(jù)ARP回復(fù)包獲取下一跳mac地址,并寫入ARP緩存如果路由設(shè)備沒有收到ARP響應(yīng)包,則檢測設(shè)備繼續(xù)發(fā)送廣播ARP請求包;檢測模塊同步發(fā)送下一跳mac到硬件路由表地址,觸發(fā)硬件路由表項更新,將目的網(wǎng)絡(luò)依賴于下一跳的所有硬件路由表項寫入硬件路由表中。作為本發(fā)明的進一步改進,ARP請求報文為廣播報文,目的mac地址為;目的IP地址是下一跳的IP地址。
本發(fā)明還提供了一種路由設(shè)備,包括協(xié)議控制設(shè)備和硬件轉(zhuǎn)發(fā)設(shè)備。協(xié)議控制設(shè)備設(shè)置有檢測模塊,檢測模塊自動發(fā)送檢測消息,檢測下一跳IP地址的可達性。從而請求下一跳地址的硬件mac地址,觸發(fā)硬件轉(zhuǎn)發(fā)設(shè)備的硬件路由表更新。本發(fā)明通過檢測模塊獲取下一跳mac的地址,從而成功查找到待轉(zhuǎn)發(fā)IP數(shù)據(jù)包的目的硬件路由表項,只需要轉(zhuǎn)發(fā)IP數(shù)據(jù)包通過硬件,確保數(shù)據(jù)以線速轉(zhuǎn)發(fā),大大提高了IP數(shù)據(jù)包的處理效率;并且不需要占用CPU資源進行處理,節(jié)省了CPU資源。
圖1為現(xiàn)有路由設(shè)備示意圖;圖2為本發(fā)明路由設(shè)備的模型示意圖;圖3為本發(fā)明檢測路由下一跳mac地址的方法流程圖。
具體實施方式下面結(jié)合附圖和實施例對本發(fā)明作進一步說明。如圖所示。參見圖2,為本發(fā)明路由設(shè)備的一個實施例。按照邏輯劃分,本發(fā)明的路由設(shè)備包括協(xié)議控制平面和硬件轉(zhuǎn)發(fā)控制平面,即協(xié)議控制設(shè)備和硬件轉(zhuǎn)發(fā)設(shè)備。協(xié)議控制設(shè)備設(shè)有檢測模塊,主要實現(xiàn)三個功能一、接收路由變化信息。當協(xié)議控制平面的core軟件路由表項發(fā)生變化時,檢測模塊可以自動接收路由信息。更改信息;二、 自動發(fā)送檢測包檢測下一跳IP地址的可達性,并請求下一跳的mac地址;三、獲取下一跳mac地址的<@,觸發(fā)硬件轉(zhuǎn)發(fā)設(shè)備的硬件路由表更新。硬件路由表寫入下一跳的mac地址,數(shù)據(jù)包可以硬件線速轉(zhuǎn)發(fā)。本發(fā)明檢測路由下一跳mac地址的方法,如圖2所示,包括以下步驟步驟一:首先,路由設(shè)備的協(xié)議控制裝置中的路由服務(wù)模塊可以自動學(xué)習(xí)生成通過動態(tài)路由協(xié)議到目的地的路由表條目,或靜態(tài)手動配置生成的到目的地址的路由表條目。路由表條目包括目的地的IP地址和到達目的地要經(jīng)過的下一跳的IP地址,還包括一個包含子網(wǎng)掩碼或掩碼長度的附加字段。第二步:檢查路由表項的活動性,即判斷下一跳IP地址是否對應(yīng)本地鏈路,本地接口的IP地址是否屬于同一個網(wǎng)絡(luò)。如果路由表項處于活動狀態(tài),則將路由表項寫入核心軟件路由表;如果路由表項處于非活動狀態(tài),則等待它處于活動狀態(tài),然后再將其寫入表中的核心路由表。步驟 1 和步驟 2 都是在路由設(shè)備的路由服務(wù)模塊中自動學(xué)習(xí)和完成的。只有在核心軟件路由表項中寫入了活躍的下一跳IP地址,才能通過下一個IP地址。請求下一跳 mac 地址。步驟3:在路由設(shè)備的協(xié)議控制設(shè)備中配置檢測模塊,通過檢測模塊周期性發(fā)送ARP請求報文檢測下一跳IP地址的可達性。本實施例中,ARP請求報文為廣播報文,目的mac地址為;目的IP地址是下一跳的IP地址。即向與路由設(shè)備相連的網(wǎng)絡(luò)設(shè)備發(fā)送廣播ARP請求包,報文中的目的IP為路由設(shè)備的下一跳IP地址。步驟4:被請求設(shè)備收到ARP請求報文后,確定目的地址是自己,向路由設(shè)備回復(fù)ARP回復(fù)報文。ARP回復(fù)報文為單播報文,其目的mac地址為ARP請求報文的源mac地址,目的IP地址為發(fā)送ARP請求報文的接口IP地址,而源mac地址和源IP地址為路由設(shè)備的下一跳mac地址和IP地址。
步驟5:路由設(shè)備收到ARP回復(fù)報文,取出ARP回復(fù)報文的源mac地址和源IP地址寫入ARP緩存,停止發(fā)送ARP請求報文;如果路由設(shè)備沒有收到ARP請求消息ARP回復(fù)消息,則檢測設(shè)備繼續(xù)發(fā)送廣播ARP請求消息。同步,檢測模塊將下一跳的地址mac發(fā)送到硬件路由表,觸發(fā)硬件路由表項的更新,寫入目的網(wǎng)絡(luò)所依賴的所有硬件路由表項的下一跳在硬件路由表中。此時在硬件路由表中配置了路由設(shè)備的下一跳mac地址,當同一目的網(wǎng)絡(luò)的數(shù)據(jù)流到達時,直接通過硬件路由表查找,進行高速有效轉(zhuǎn)發(fā)。本發(fā)明通過檢測模塊獲取下一跳mac的地址,從而成功查找到待轉(zhuǎn)發(fā)IP數(shù)據(jù)包的目的硬件路由表項,只需要轉(zhuǎn)發(fā)IP數(shù)據(jù)包通過硬件,保證數(shù)據(jù)以線速轉(zhuǎn)發(fā),大大提高了IP數(shù)據(jù)包的處理效率;并且不需要占用CPU資源進行處理,節(jié)省了CPU資源。以上僅為本發(fā)明的實施例。需要指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,可以在不脫離本發(fā)明的發(fā)明構(gòu)思的情況下進行改進,但這些都屬于本發(fā)明。保護范圍。
權(quán)利請求
<@1.一種路由設(shè)備,包括協(xié)議控制設(shè)備和硬件轉(zhuǎn)發(fā)設(shè)備,其特征在于,所述協(xié)議控制設(shè)備中設(shè)置有檢測模塊,所述檢測模塊自動發(fā)送檢測報文檢測下一跳IP地址 因此,請求下一跳地址的硬件mac地址,觸發(fā)硬件轉(zhuǎn)發(fā)設(shè)備的硬件路由表更新。
2.一種檢測路由下一跳mac地址的方法,其特征在于包括以下步驟步驟一:路由設(shè)備的協(xié)議控制裝置中的路由服務(wù)模塊自動學(xué)習(xí)或手動配置生成一個到目的地的路由表項,該路由表項包括目的IP地址和下一跳IP地址;第二步:檢查路由表項的活動,如果路由表項是活動的,則將路由表項寫入核心軟件路由表;如果路由表項處于非活動狀態(tài),則需要等待它處于活動狀態(tài),然后再將其寫入核心路由表;第 3 步:在路由設(shè)備的協(xié)議控制設(shè)備中配置檢測模塊定期發(fā)送ARP請求報文,通過檢測模塊檢測下一跳IP地址的可達性;步驟4:被請求設(shè)備收到ARP請求報文后,判斷目的地址是自己,向路由設(shè)備返回ARP回復(fù)報文;步驟5:路由設(shè)備收到ARP回復(fù)報文后,根據(jù)ARP回復(fù)報文獲取下一跳mac地址,寫入ARP緩存,停止發(fā)送ARP請求報文。如果設(shè)備沒有收到ARP回復(fù)包,檢測設(shè)備繼續(xù)發(fā)送廣播ARP請求包;同時,檢測模塊將下一跳mac地址發(fā)送到硬件路由表,
3.根據(jù)權(quán)利要求1所述的檢測路由下一跳地址mac的方法,其特征在于,所述ARP請求消息為廣播消息,目的mac@ > 地址是;目的 IP 地址是下一跳的 IP 地址。
全文摘要
本發(fā)明提供一種路由設(shè)備,包括協(xié)議控制設(shè)備和硬件轉(zhuǎn)發(fā)設(shè)備。協(xié)議控制設(shè)備設(shè)置有檢測模塊,檢測模塊自動發(fā)送檢測報文檢測下一跳IP地址的可達性,從而請求下一跳地址的硬件mac地址,并觸發(fā)硬件轉(zhuǎn)發(fā)設(shè)備的硬件路由表更新。本發(fā)明通過檢測模塊獲取下一跳mac的地址,從而成功查找到待轉(zhuǎn)發(fā)IP數(shù)據(jù)包的目的硬件路由表項,只需要轉(zhuǎn)發(fā)IP數(shù)據(jù)包通過硬件三層網(wǎng)絡(luò)中mac地址查看軟件,保證數(shù)據(jù)以線速轉(zhuǎn)發(fā),大大提高了IP數(shù)據(jù)包的處理效率;
文件號碼/
出版日期 2013 年 1 月 2 日 申請日期 2012 年 8 月 27 日 優(yōu)先權(quán)日期 2012 年 8 月 27 日
發(fā)明人吳兵、張柏元、車仁秋申請人:上海飛訊數(shù)據(jù)通信技術(shù)有限公司