專利名稱:一種處理地址解析協(xié)議報文的方法及通信裝置的制作方法
技術領域:
本發(fā)明涉及以太網(wǎng)通信技術,尤其涉及一種處理地址解析協(xié)議報文的方 法及通信裝置。
背景技術:
隨著因特網(wǎng)的高速發(fā)展,以太網(wǎng)網(wǎng)絡逐漸成為人們?nèi)粘9ぷ骱蜕钪斜?不可少的工具。而以太網(wǎng)交換^IL或者3各由器等作為組成以太網(wǎng)網(wǎng)絡必不可少 的通信設備,在網(wǎng)絡中的數(shù)量與日倶增。同時,IP數(shù)據(jù)包常通過以太網(wǎng)發(fā)送,〃f旦以太網(wǎng)通信設備并不識別32位IP地址,它們是以48位以太網(wǎng)地址傳輸 以太網(wǎng)數(shù)據(jù)包的。因此,IP驅(qū)動器必須把IP目的地址轉(zhuǎn)換成48位的以太網(wǎng) 目的地址。在這兩種地址之間存在著某種靜態(tài)的或算法的映射,常常需要查 看一張表以完成轉(zhuǎn)換。ARP (Address Resolution Protocol,地址解析協(xié)議) 就是用來確定這些映象的協(xié)議。隨著以太網(wǎng)通信設備數(shù)量的增多,在網(wǎng)絡中 組網(wǎng)越來越復雜,規(guī)模越來越大,這樣就導致網(wǎng)絡中的ARP協(xié)議報文越來 越多,這些協(xié)議報文均需要由以太網(wǎng)交換機或者路由器等通信設備的CPU 軟件進行處理,CPU的負擔越來越重。同時,由于成本和設計上的需要,目前以太網(wǎng)通信設備的CPU的處理 能力漸漸弱化,通信設備的主要工作數(shù)據(jù)包的路由和轉(zhuǎn)發(fā)基本上都是由高性 能的NP (Network Processor,網(wǎng)纟各處理器)或ASIC (Application Specific Integrated Circuits ,專用集成電^各)芯片來完成的,而CPU只是作為NP或 ASIC芯片的旁掛設備,運行協(xié)議和處理協(xié)議報文,以及其他的控制和管理 工作等等。但只要是配置了 IP地址的通信設備,基本上CPU都需要運行 ARP協(xié)議,且ARP協(xié)議的一個最大的特點是定時老化刷新,可想而知,網(wǎng) 絡上充斥的眾多ARP協(xié)議報文都需要CPU進行處理,這就對CPU的處理 能力提出了很高的要求。
更進一步的,網(wǎng)絡上各種病毒繁多,ARP病毒中就有一種不停的偽造各種ARP協(xié)議報文以發(fā)向網(wǎng)絡或者以太網(wǎng)通信設備,或者有用戶惡意或著 無意的發(fā)送大量的ARP協(xié)議報文,這些協(xié)議報文會大量的占用以太網(wǎng)通信 設備中CPU的處理時間,造成以太網(wǎng)通信設備不能及時的處理其他重要協(xié) 議或者控制消息,造成網(wǎng)絡故障,后果嚴重。這些非法的ARP報文和正常 的ARP報文一模一樣,無法區(qū)分,所以解決這種問題的方法只有在盡可能 降低成本的前提下,提高以太網(wǎng)通信設備的ARP協(xié)議報文的處理能力。但 現(xiàn)有技術中還沒有相關技術以解決此問題。發(fā)明內(nèi)容本發(fā)明的目的在于,提供一種處理地址解析協(xié)議報文的方法及通信裝 置,釆用軟件和硬件相結(jié)合,共同處理,以達到提高以太網(wǎng)通信設備的地址 解析協(xié)議報文處理能力的目的。本發(fā)明提供了 一種處理地址解析協(xié)議ARP報文的方法,包括以下步驟a、 ARP報文處理模塊如判斷其收到的數(shù)據(jù)幀類型為ARP請求報 文,執(zhí)行b;如為ARP應答報文,執(zhí)行d;b 、 如在設置在ARP報文處理模塊中的網(wǎng)關ARP表中查找到與數(shù)據(jù) 幀中的目的IP地址相對應的目的網(wǎng)關MAC地址,執(zhí)行c;c 、 組裝一個ARP應答報文,將目的網(wǎng)關MAC地址和目的IP地址 分別作為該報文的源MAC地址和源IP地址,將數(shù)據(jù)幀中包含的源MAC地 址和源IP地址作為該報文的目的MAC地址和目的IP地址;組裝好后,將 該報文發(fā)送出去,結(jié)束;d、 ARP報文處理模塊如判斷數(shù)據(jù)幀中的目的MAC地址為本網(wǎng)關 的MAC地址,則將數(shù)據(jù)幀中的源IP地址和源MAC地址組成ARP信息后, 在網(wǎng)關ARP表中查找是否存在與其相同的ARP信息,如果是則結(jié)束。進一步地,ARP報文處理模塊為網(wǎng)絡處理器或?qū)S眉呻娐沸酒_M一步地,步驟d中,如果網(wǎng)關ARP表中不存在與由數(shù)據(jù)幀中的源IP 地址和源MAC地址組成的ARP信息相同的ARP信息,則ARP報文處理模
塊將ARP信息保存到網(wǎng)關ARP表中后,再將該條ARP信息發(fā)送給CPU, CPU將該條ARP信息添加到其軟件ARP表中。進一步地,步驟c中,發(fā)送ARP應答報文的端口為步驟a中接收數(shù)據(jù) 幀的端口 。本發(fā)明還提供了 一種處理地址解析協(xié)議ARP報文的通信裝置,應用于 以太網(wǎng)中,包括一 CPU及一 ARP報文處理模塊;模塊用于判斷其接收到的數(shù)據(jù)幀的類型;對于ARP請求報文,其用于 從網(wǎng)關ARP表中查找與數(shù)據(jù)幀中目的IP地址相對應的目的網(wǎng)關MAC地址; 找到后,其還用于組裝ARP應答報文,將目的網(wǎng)關MAC地址和目的IP地 址分別作為該才艮文的源MAC地址和源IP地址,將lt據(jù)幀中的源MAC地址 和源IP地址作為該報文的目的MAC地址和目的IP地址;組裝好后,還用 于將該報文發(fā)送出去;對于ARP請求報文,模塊用于判斷數(shù)據(jù)幀中的目的MAC是否為本網(wǎng)關 的MAC地址;如果是,其還用于將數(shù)據(jù)幀中的源IP地址和源MAC地址組 成ARP信息后,在網(wǎng)關ARP表中查找是否存在與其相同的ARP信息。進一步地,ARP報文處理模塊為網(wǎng)絡處理器或?qū)S眉呻娐沸酒?。進一步地,對于ARP請求報文,如果網(wǎng)關ARP表中不存在與數(shù)據(jù)幀中 的源IP地址和源MAC地址組成的ARP信息相同的ARP信息,則ARP報 文處理模塊還用于將ARP信息保存到其網(wǎng)關ARP表中后,再將該條ARP 信息發(fā)送給CPU。傳統(tǒng)方式所有的ARP報文全由CPU處理,可能由于ARP報文多而造 成CPU忙,最終使得CPU沒有時間處理其它報文或其他任務,導致網(wǎng)絡故片進行處理,因為處理ARP請求報文的方式簡單,而且回應的ARP應答報 文的格式也是固定的,完全可以由高性能的高處理能力的硬件完成,從而把 CPU從這種重復的簡單的處理流程中解脫出來,因此大大的降低了 CPU處 理ARP報文的處理時間,提高了 ARP報文的處理效率。而且NP或者ASIC
芯片在處理ARP應答報文時,只將學習到的ARP信息報告給CPU,使CPU 直接就得到了結(jié)果,而不用處理具體的報文,最主要的是對于已經(jīng)在ARP 表中存在的ARP信息,不會再報告給CPU,這就解決了目前ARP協(xié)議一大 難題——ARP報文攻擊問題(即重復的大量的向以太網(wǎng)交換機或路由器發(fā) 送ARP報文,造成太網(wǎng)交換機的CPU忙的攻擊方法)。本發(fā)明相當于在硬 件上對重復的報文進行了過濾,大大提高了以太網(wǎng)通信設備抗ARP報文攻 擊的能力,提高了網(wǎng)絡安全。
圖1是本發(fā)明實施例中ARP報文處理模塊的示意圖; 圖2是本發(fā)明實施例中處理ARP報文的流程圖。
具體實施方式
下面將結(jié)合附圖及實施例對本發(fā)明的技術方案進行更詳細的說明。一種應用于以太網(wǎng)中的處理ARP報文的通信裝置,如圖1所示,包括 一 CPU和一 ARP才艮文處理模塊(即NP或ASIC芯片);該模塊用于判斷其接收到的數(shù)據(jù)幀的類型;對于ARP請求報文,其用 于從網(wǎng)關ARP表中查找與上述數(shù)據(jù)幀中目的IP地址相對應的目的網(wǎng)關 MAC地址;找到后,其還用于組裝ARP應答報文,將上述目的網(wǎng)關MAC 地址和上述目的IP地址分別作為該報文的源MAC地址和源IP地址,將上 述數(shù)據(jù)幀中的源MAC地址和源IP地址作為該報文的目的MAC地址和目的 IP地址;組裝好后,還用于將該報文發(fā)送出去;對于ARP請求報文,上述模塊用于判斷上述數(shù)據(jù)幀中的目的MAC是否 為本網(wǎng)關的MAC地址;如果是,其還用于將上述數(shù)據(jù)幀中的源IP地址和源 MAC地址組成ARP信息后,在上述網(wǎng)關ARP表中查找是否存在與其相同 的ARP信息;如果沒有,則上述模塊還用于將是上述ARP信息保存到其網(wǎng) 關ARP表中后,再將該條ARP信息發(fā)送給CPU。下面結(jié)合附圖對在以太網(wǎng)交換機為例來說明在ARP凈艮文處理才莫塊上實 現(xiàn)ARP協(xié)議報文的處理流程。如圖2所示,包括以下步驟步驟001 ,數(shù)據(jù)幀從交換機的端口 A進入NP或者ASIC芯片,正常的 幀校驗等工作完成以后,用匹配規(guī)則判斷數(shù)據(jù)幀的以太網(wǎng)類型是否為ARP, 即0x0806。如果是,寺丸行步驟002,否則流程結(jié)束;步驟002,判斷該數(shù)據(jù)幀的類型,如果其類型為ARP request (ARP請求),執(zhí)行步驟101;如果其類型為ARP reply (ARP應答),則執(zhí)行步 驟201;否則,流程結(jié)束;步驟101,從該數(shù)據(jù)幀中識別出源主機請求的目的IP地址;步驟102,根據(jù)設置在NP或者ASIC芯片中的網(wǎng)關ARP表,查找包含 此目的IP地址的ARP信息是否存在。如果存在,得到目的網(wǎng)關的MAC地 址信息后,執(zhí)行步驟103,否則,流程結(jié)束;步驟103,組裝一個ARP reply報文,該報文的源MAC地址和源IP地 址分別為步驟102中查到的目的網(wǎng)關的MAC地址和上述數(shù)據(jù)幀中的目的IP 地址,該ARP reply報文的目的MAC地址和目的IP地址分別為發(fā)送上述數(shù) 據(jù)幀的源主才幾的MAC i也址和IP i也址;步驟104,將該ARP reply報文發(fā)送到交換機的端口 A,交換機按正常 二層轉(zhuǎn)發(fā)流程將該ARP reply才艮文轉(zhuǎn)發(fā)出去后,流程結(jié)束。步驟201,取出該數(shù)據(jù)幀中的目的MAC地址;步驟202,判斷該目的MAC地址是否為本NP或ASIC芯片的網(wǎng)關的 MAC地址,如果是,執(zhí)行步驟203,否則,流程結(jié)束;步驟203,從該數(shù)據(jù)幀的ARP協(xié)議內(nèi)容中取出源IP地址和源MAC地 址組成ARP信息;步驟204,根據(jù)上述ARP信息查找網(wǎng)關ARP表,如果找到則流程結(jié)束, 否則執(zhí)行步驟205;步驟205,將該ARP信息保存在網(wǎng)關ARP表中,并將該ARP信息發(fā)送 給CPU;
步驟206, CPU將上述NP或者ASIC芯片學習到的并向其發(fā)送的ARP 信息添加到其軟件ARP表中。當然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質(zhì)的 形,但這些相應的改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。
權利要求
1、 一種處理地址解析協(xié)議ARP報文的方法,其特征在于,包括以下步驟a、 ARP報文處理模塊如判斷其收到的數(shù)據(jù)幀類型為ARP請求報文, 執(zhí)行b;如為ARP應答報文,執(zhí)行d;b、 如在設置在所述ARP報文處理模塊中的網(wǎng)關ARP表中查找到與 所述數(shù)據(jù)幀中的目的IP地址相對應的目的網(wǎng)關MAC地址,執(zhí)行c;c、 組裝一個ARP應答報文,將所述目的網(wǎng)關MAC地址和所述目的 IP地址分別作為該報文的源MAC地址和源IP地址,將所述數(shù)據(jù)幀中包含 的源MAC地址和源IP地址作為該l艮文的目的MAC地址和目的IP地址; 組裝好后,將該報文發(fā)送出去,結(jié)束;d、 所述ARP報文處理模塊如判斷所述數(shù)據(jù)幀中的目的MAC地址為 本網(wǎng)關的MAC地址,則將所述數(shù)據(jù)幀中的源IP地址和源MAC地址組成 ARP信息后,在所述網(wǎng)關ARP表中查找是否存在與其相同的ARP信息,如果是則結(jié)束。
2、 如權利要求l所述的方法,其特征在于,所述ARP報文處理模塊為 網(wǎng)絡處理器或?qū)S眉呻娐沸酒?br>
3、 如權利要求2所述的方法,其特征在于,步驟d中,如果所述網(wǎng)關 ARP表中不存在與由所述數(shù)據(jù)幀中的源IP地址和源MAC地址組成的ARP 信息相同的ARP信息,則所述ARP報文處理模塊將所述ARP信息保存到 所述網(wǎng)關ARP表中后,再將該條ARP信息發(fā)送給CPU,所述CPU將該條 ARP信息添加到其軟件ARP表中。
4、 如權利要求l所述的方法,其特征在于,步驟c中,發(fā)送ARP應答 報文的端口為步驟a中接收所述數(shù)據(jù)幀的端口 。
5、 一種處理地址解析協(xié)議ARP報文的通信裝置,應用于以太網(wǎng)中,包 括一CPU,其特征在于,還包括一 ARP報文處理模塊; 所述模塊用于判斷其接收到的數(shù)據(jù)幀的類型;對于ARP請求報文,其 用于從網(wǎng)關ARP表中查找與所述數(shù)據(jù)幀中目的IP地址相對應的目的網(wǎng)關 MAC地址;找到后,其還用于組裝ARP應答報文,將所述目的網(wǎng)關MAC 地址和所述目的IP地址分別作為該才艮文的源MAC地址和源IP地址,將所 述數(shù)據(jù)幀中的源MAC地址和源IP地址作為該報文的目的MAC地址和目的 IP地址;組裝好后,還用于將該報文發(fā)送出去;對于ARP請求報文,所述模塊用于判斷所述數(shù)據(jù)幀中的目的MAC是否 為本網(wǎng)關的MAC地址;如果是,其還用于將所述數(shù)據(jù)幀中的源IP地址和源 MAC地址組成ARP信息后,在所述網(wǎng)關ARP表中查找是否存在與其相同 的ARP信息。
6、 如權利要求5所述的方法,其特征在于,所述ARP報文處理模塊為網(wǎng)絡處理器或?qū)S眉呻娐沸酒?br>
7、 如權利要求6所述的裝置,其特征在于,對于ARP請求報文,如果 所述網(wǎng)關ARP表中不存在與所述數(shù)據(jù)幀中的源IP地址和源MAC地址組成 的ARP信息相同的ARP信息,則所述ARP報文處理模塊還用于將所述ARP 信息保存到其網(wǎng)關ARP表中后,再將該條ARP信息發(fā)送給CPU。
全文摘要
一種處理地址解析協(xié)議ARP報文的通信裝置,包括一CPU及一ARP報文處理模塊。使用該裝置處理ARP報文的方法,包括a.ARP報文處理模塊如判斷其收到的數(shù)據(jù)幀類型為ARP請求報文,執(zhí)行b;如為ARP應答報文,執(zhí)行d;b.如在設置在該模塊中的網(wǎng)關ARP表中查找到與數(shù)據(jù)幀中的目的IP地址相對應的目的網(wǎng)關MAC地址,執(zhí)行c;c.組裝一個ARP應答報文,組裝好后將其發(fā)送出去,結(jié)束;d.該模塊如判斷數(shù)據(jù)幀中的目的MAC地址為本網(wǎng)關的MAC地址,則將數(shù)據(jù)幀中的源IP地址和源MAC地址組成ARP信息后,在網(wǎng)關ARP表中查找是否存在與其相同的ARP信息,如果是則結(jié)束。采用本發(fā)明,可提高處理ARP報文的效率。
文檔編號H04L29/12GK101123614SQ200710145890
公開日2008年2月13日 申請日期2007年9月4日 優(yōu)先權日2007年9月4日
發(fā)明者楊自鵬 申請人:中興通訊股份有限公司