專利名稱:地址解析協(xié)議緩存表維護(hù)方法和網(wǎng)絡(luò)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種地址解析協(xié)議緩存表維護(hù)方法和網(wǎng)
絡(luò)設(shè)備。
背景技術(shù):
IP(Internet Protocol,互聯(lián)網(wǎng)協(xié)議)網(wǎng)絡(luò)環(huán)境下的每個(gè)主機(jī)都被分配了一個(gè)32 位的IP地址,IP地址是用于標(biāo)識(shí)主機(jī)的一種邏輯地址。為了讓報(bào)文能夠在物理網(wǎng)絡(luò)上傳 送,需要將目的主機(jī)的IP地址轉(zhuǎn)換成物理地址(又稱為MAC地址或硬件地址)。以以太網(wǎng) 環(huán)境為例,為了正確地向目的主機(jī)傳送報(bào)文,發(fā)送方主機(jī)需要把目的主機(jī)的32位IP地址轉(zhuǎn) 換成48位的以太網(wǎng)地址。 ARP (Address Resolution Protocol ,地址解析協(xié)議)提供將目的主機(jī)的IP地址 轉(zhuǎn)換為物理地址的服務(wù)。利用ARP將目的主機(jī)的IP地址轉(zhuǎn)換為物理地址的具體實(shí)現(xiàn)步驟 如下 步驟一,當(dāng)主機(jī)A需要將目的主機(jī)的IP地址IP1轉(zhuǎn)換為物理地址時(shí),在物理網(wǎng)絡(luò) 中廣播一個(gè)ARP請(qǐng)求報(bào)文,該ARP請(qǐng)求報(bào)文中包含目的主機(jī)的IP地址IP1 。
步驟二, IP地址為IP1的主機(jī)B接收到該ARP請(qǐng)求報(bào)文后,向主機(jī)A發(fā)送一包含 其物理地址MAC1的ARP應(yīng)答報(bào)文。 步驟三,主機(jī)A接收到ARP應(yīng)答報(bào)文后,將主機(jī)B的IP地址IP1轉(zhuǎn)換成物理地址 MACl。 另外,每一主機(jī)中都會(huì)維護(hù)一個(gè)ARP緩存表,所述APR緩存表中記錄了該主機(jī)學(xué)習(xí) 到的IP網(wǎng)絡(luò)中其他主機(jī)的IP地址和物理地址的映射關(guān)系。在上述步驟三中,主機(jī)A在接 收到ARP應(yīng)答報(bào)文后,就需要根據(jù)所述ARP應(yīng)答報(bào)文中包含的主機(jī)B的IP地址IP1和物理 地址MAC1,創(chuàng)建對(duì)應(yīng)的ARP緩存表?xiàng)l目(即主機(jī)B的IP地址IP1和物理地址MACl的映射 關(guān)系),并存儲(chǔ)于ARP緩存表中。 ARP緩存表維護(hù)機(jī)制中存在一些不完善的地方,即,主機(jī)在接收到ARP報(bào)文時(shí),并 不對(duì)ARP報(bào)文中的發(fā)送方IP地址的合法性進(jìn)行驗(yàn)證,而是直接根據(jù)ARP報(bào)文中的發(fā)送方IP 地址和發(fā)送方硬件地址創(chuàng)建對(duì)應(yīng)的ARP緩存表?xiàng)l目。此時(shí),如果主機(jī)接收到大量的發(fā)送方 IP地址為非法IP地址的ARP報(bào)文的話,會(huì)造成主機(jī)的ARP緩存表被大量無(wú)用的ARP緩存表 條目占據(jù),即ARP緩存表被攻擊,這不僅占用了系統(tǒng)資源,還會(huì)影響到ARP緩存表的正常學(xué) 習(xí)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種地址解析協(xié)議緩存表維護(hù)方法和網(wǎng)絡(luò)設(shè)備,能夠有效 防止ARP緩存表被非法IP地址的ARP報(bào)文攻擊,提高系統(tǒng)安全性。 為解決上述問(wèn)題,本發(fā)明提供一種地址解析協(xié)議緩存表維護(hù)方法,包括以下步 驟
網(wǎng)絡(luò)設(shè)備在接收到ARP報(bào)文時(shí),驗(yàn)證所述ARP報(bào)文的發(fā)送方IP地址是否合法; 在所述發(fā)送方IP地址合法時(shí),所述網(wǎng)絡(luò)設(shè)備更新本地ARP緩存表; 在所述發(fā)送方IP地址不合法時(shí),所述網(wǎng)絡(luò)設(shè)備丟棄所述ARP報(bào)文。 所述網(wǎng)絡(luò)設(shè)備在接收到ARP報(bào)文時(shí),驗(yàn)證所述ARP報(bào)文的發(fā)送方IP地址是否合
法,具體為 所述網(wǎng)絡(luò)設(shè)備在接收到所述ARP報(bào)文時(shí),獲取所述ARP報(bào)文的發(fā)送方IP地址和目 的IP地址; 所述網(wǎng)絡(luò)設(shè)備根據(jù)所述發(fā)送方IP地址和目的IP地址,判斷所述ARP報(bào)文是否滿 足過(guò)濾條件,所述過(guò)濾條件為 所述目的IP地址為本地收包IP地址,且所述發(fā)送方IP地址與所述本地收包IP 地址位于同一網(wǎng)段;或 所述網(wǎng)絡(luò)設(shè)備需要進(jìn)行ARP代理,所述目的IP地址不是所述本地收包IP地址,本 地存在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng),且所述路由表項(xiàng)的三層出接口為本地收 包三層接口; 所述網(wǎng)絡(luò)設(shè)備在所述ARP報(bào)文滿足所述過(guò)濾條件時(shí),判定所述發(fā)送方IP地址合 法,否則判定所述發(fā)送方IP地址不合法。 所述網(wǎng)絡(luò)設(shè)備根據(jù)所述發(fā)送方IP地址和目的IP地址,判斷所述ARP報(bào)文是否滿 足過(guò)濾條件,具體為 所述網(wǎng)絡(luò)設(shè)備判斷本地是否存在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng);
所述網(wǎng)絡(luò)設(shè)備在本地不存在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng)時(shí),判定所 述ARP報(bào)文不滿足所述過(guò)濾條件,否則判斷所述路由表項(xiàng)的三層出接口是否為本地收包三 層接口 ; 所述網(wǎng)絡(luò)設(shè)備在所述路由表項(xiàng)的三層出接口不是本地收包三層接口時(shí),判定所述 ARP報(bào)文不滿足所述過(guò)濾條件,否則判斷所述目的IP地址是否為所述本地收包IP地址;
所述網(wǎng)絡(luò)設(shè)備在所述目的IP地址為所述本地收包IP地址時(shí),判斷所述發(fā)送方IP 地址與所述本地收包IP地址是否位于同一網(wǎng)段,在所述發(fā)送方IP地址與所述本地收包IP 地址位于不同網(wǎng)段時(shí),判定所述ARP報(bào)文不滿足所述過(guò)濾條件,否則判定所述ARP報(bào)文滿足 所述過(guò)濾條件; 所述網(wǎng)絡(luò)設(shè)備在所述目的IP地址不是所述本地收包IP地址時(shí),判斷是否需要進(jìn) 行ARP代理,在不需要進(jìn)行ARP代理時(shí),判定所述ARP報(bào)文不滿足所述過(guò)濾條件,否則判定 所述ARP報(bào)文滿足所述過(guò)濾條件。 所述網(wǎng)絡(luò)設(shè)備判斷所述發(fā)送方IP地址與所述本地收包IP地址是否位于同一網(wǎng) 段,具體為 所述網(wǎng)絡(luò)設(shè)備判斷所述路由表項(xiàng)是否為直連路由表項(xiàng),如果是,則判定所述發(fā)送 方IP地址與所述本地收包IP地址位于同一網(wǎng)段。
所述網(wǎng)絡(luò)設(shè)備更新本地ARP緩存表,具體為 所述網(wǎng)絡(luò)設(shè)備獲取所述APR報(bào)文的發(fā)送方IP地址和發(fā)送方硬件地址; 所述網(wǎng)絡(luò)設(shè)備判斷所述ARP緩存表中是否存在所述發(fā)送方IP地址對(duì)應(yīng)的舊ARP
緩存表?xiàng)l目;
在所述ARP緩存表中存在所述舊ARP緩存表?xiàng)l目時(shí),所述網(wǎng)絡(luò)設(shè)備根據(jù)所述發(fā)送 方硬件地址和所述發(fā)送方IP地址,生成新ARP緩存表?xiàng)l目,并用所述新ARP緩存表?xiàng)l目替 換所述舊ARP緩存表?xiàng)l目; 在所述ARP緩存表中不存在所述舊ARP緩存表?xiàng)l目時(shí),所述網(wǎng)絡(luò)設(shè)備根據(jù)所述發(fā) 送方硬件地址和所述發(fā)送方IP地址,生成新ARP緩存表?xiàng)l目,并將所述新ARP緩存表?xiàng)l目 添加到所述ARP緩存表中。
本發(fā)明還提供一種網(wǎng)絡(luò)設(shè)備,包括 驗(yàn)證模塊,用于在接收到ARP報(bào)文時(shí),驗(yàn)證所述ARP報(bào)文的發(fā)送方IP地址是否合 法; 更新模塊,用于在所述發(fā)送方IP地址合法時(shí),更新本地ARP緩存表;
丟棄模塊,用于在所述發(fā)送方IP地址不合法時(shí),丟棄所述ARP報(bào)文。
所述驗(yàn)證模塊包括 獲取子模塊,用于在接收到所述ARP報(bào)文時(shí),獲取所述ARP報(bào)文的發(fā)送方IP地址 和目的IP地址; 過(guò)濾子模塊,用于根據(jù)所述發(fā)送方IP地址和目的IP地址,判斷所述ARP報(bào)文是否 滿足過(guò)濾條件,所述過(guò)濾條件為 所述目的IP地址為本地收包IP地址,且所述發(fā)送方IP地址與所述本地收包IP 地址位于同一網(wǎng)段;或 所述網(wǎng)絡(luò)設(shè)備需要進(jìn)行ARP代理,所述目的IP地址不是所述本地收包IP地址,本 地存在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng),且所述路由表項(xiàng)的三層出接口為本地收 包三層接口; 判定子模塊,用于在所述ARP報(bào)文滿足所述過(guò)濾條件時(shí),判定所述發(fā)送方IP地址 合法,否則判定所述發(fā)送方IP地址不合法。
所述過(guò)濾子模塊包括 第一判斷單元,用于判斷本地是否存在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng);
第二判斷單元,用于在本地存在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng)時(shí),判定 所述ARP報(bào)文不滿足所述過(guò)濾條件,否則判斷所述路由表項(xiàng)的三層出接口是否為本地收包 三層接口 ; 第三判斷單元,用于在所述路由表項(xiàng)的三層出接口不是本地收包三層接口時(shí),判 定所述ARP報(bào)文不滿足所述過(guò)濾條件,否則判斷所述目的IP地址是否為所述本地收包IP 地址; 第四判斷單元,用于在所述目的IP地址為所述本地收包IP地址時(shí),判斷所述發(fā)送 方IP地址與所述本地收包IP地址是否位于同一網(wǎng)段; 第一判定單元,用于在所述發(fā)送方IP地址與所述本地收包IP地址位于不同網(wǎng)段 時(shí),判定所述ARP報(bào)文不滿足所述過(guò)濾條件,否則判定所述ARP報(bào)文滿足所述過(guò)濾條件;
第五判斷單元,用于在所述目的IP地址不是所述本地收包IP地址時(shí),判斷所述網(wǎng) 絡(luò)設(shè)備是否需要進(jìn)行ARP代理; 第二判定單元,用于在所述網(wǎng)絡(luò)設(shè)備不需要進(jìn)行ARP代理時(shí),判定所述ARP報(bào)文不 滿足所述過(guò)濾條件,否則判定所述ARP報(bào)文滿足所述過(guò)濾條件。
所述更新模塊包括 第一處理子模塊,用于獲取所述APR報(bào)文的發(fā)送方IP地址和發(fā)送方硬件地址;
第二處理子模塊,用于判斷所述ARP緩存表中是否存在所述發(fā)送方IP地址對(duì)應(yīng)的 舊ARP緩存表?xiàng)l目; 替換子模塊,用于在所述ARP緩存表中存在所述舊ARP緩存表?xiàng)l目時(shí),根據(jù)所述發(fā) 送方硬件地址和所述發(fā)送方IP地址,生成新ARP緩存表?xiàng)l目,并用所述新ARP緩存表?xiàng)l目 替換所述舊ARP緩存表?xiàng)l目; 添加子模塊,用于在所述ARP緩存表中不存在所述舊ARP緩存表?xiàng)l目時(shí),根據(jù)所述 發(fā)送方硬件地址和所述發(fā)送方IP地址,生成新ARP緩存表?xiàng)l目,并將所述新ARP緩存表?xiàng)l 目添加到所述ARP緩存表中。
本發(fā)明具有以下有益效果 網(wǎng)絡(luò)設(shè)備在接收ARP報(bào)文時(shí),對(duì)ARP報(bào)文的發(fā)送方IP地址的合法性進(jìn)行驗(yàn)證,在 發(fā)送方IP地址合法時(shí),更新本地ARP緩存表,否則丟棄ARP報(bào)文。從而,能夠有效過(guò)濾非法 IP地址的ARP報(bào)文,避免ARP緩存表被攻擊,提高了系統(tǒng)安全性,同時(shí)也保證了 ARP緩存表 的正常學(xué)習(xí)不會(huì)受到影響。
圖1為本發(fā)明實(shí)施例的ARP報(bào)文的結(jié)構(gòu)示意圖; 圖2為本發(fā)明實(shí)施例的地址解析協(xié)議緩存表維護(hù)方法的一流程示意圖; 圖3為本發(fā)明實(shí)施例的ARP緩存表?xiàng)l目格式示意圖; 圖4為本發(fā)明實(shí)施例的以太網(wǎng)報(bào)文格式示意圖; 圖5為本發(fā)明實(shí)施例的地址解析協(xié)議緩存表維護(hù)方法的另一流程示意圖; 圖6為本發(fā)明實(shí)施例的地址解析協(xié)議緩存表維護(hù)方法的又一流程示意圖; 圖7為本發(fā)明實(shí)施例的網(wǎng)絡(luò)設(shè)備的一結(jié)構(gòu)示意圖; 圖8為本發(fā)明實(shí)施例的網(wǎng)絡(luò)設(shè)備的另一結(jié)構(gòu)示意圖; 圖9為本發(fā)明實(shí)施例的過(guò)濾子模塊的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
在進(jìn)行本發(fā)明實(shí)施例的說(shuō)明之前,首先對(duì)ARP報(bào)文的結(jié)構(gòu)進(jìn)行簡(jiǎn)單介紹。
如圖1所示為本發(fā)明實(shí)施例的ARP報(bào)文的結(jié)構(gòu)示意圖,ARP報(bào)文包括以下幾個(gè)字 段硬件類型、協(xié)議類型、硬件地址長(zhǎng)度、協(xié)議地址長(zhǎng)度、操作碼、發(fā)送方硬件地址(八位組 0-3)、發(fā)送方硬件地址(八位組4-5)、發(fā)送方協(xié)議地址(八位組0-1)、發(fā)送方協(xié)議地址(八 位組2-3)、目的硬件地址(八位組0-1)、目的硬件地址(八位組2-5)、目的協(xié)議地址(八 位組0-3)。其中,硬件類型是指發(fā)送方想知道的硬件類型,例如,以太網(wǎng)的值為1 ;協(xié)議類 型是指發(fā)送方提供的高層協(xié)議類型,例如,IP為0800(16進(jìn)制);硬件地址長(zhǎng)度和協(xié)議地址 長(zhǎng)度分別是指物理地址和高層協(xié)議地址的長(zhǎng)度,以太網(wǎng)物理地址的長(zhǎng)度為48,高層協(xié)議地 址(IP地址)長(zhǎng)度為32 ;操作碼是指報(bào)文的類型,例如,ARP請(qǐng)求報(bào)文為l,ARP應(yīng)答報(bào)文為 2 ;發(fā)送方硬件地址(八位組0-3)是指發(fā)送方主機(jī)物理地址的前4個(gè)字節(jié);發(fā)送方硬件地 址(八位組4-5)是指發(fā)送方主機(jī)物理地址的后2個(gè)字節(jié);發(fā)送方協(xié)議地址(八位組0-1)是指發(fā)送方主機(jī)協(xié)議地址的前2個(gè)字節(jié);發(fā)送方協(xié)議地址(八位組2-3)是指發(fā)送方主機(jī)協(xié)
議地址的后2個(gè)字節(jié);目的硬件地址(八位組0-1)是指目的主機(jī)物理地址的前2個(gè)字節(jié);
目的硬件地址(八位組2-5)是指目的主機(jī)物理地址的后4個(gè)字節(jié);目的協(xié)議地址(八位組 0-3)是指目的主機(jī)協(xié)議地址。 下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式
作進(jìn)一步詳細(xì)描述。 如圖2所示為本發(fā)明實(shí)施例的地址解析協(xié)議緩存表維護(hù)方法的一流程示意圖,所
述地址解析協(xié)議緩存表維護(hù)方法包括以下步驟 步驟201,網(wǎng)絡(luò)設(shè)備在接收到ARP報(bào)文時(shí),驗(yàn)證所述ARP報(bào)文的發(fā)送方IP地址是否 合法,在所述發(fā)送方IP地址合法時(shí),執(zhí)行步驟202,否則,執(zhí)行步驟203。所述ARP報(bào)文可以 為ARP請(qǐng)求報(bào)文,也可以為ARP應(yīng)答報(bào)文。 步驟202,所述網(wǎng)絡(luò)設(shè)備更新本地ARP緩存表。如圖3所示為本發(fā)明實(shí)施例的ARP 緩存表?xiàng)l目格式示意圖,ARP緩存表?xiàng)l目記錄了與本地IP地址通信的對(duì)端主機(jī)的IP地址 和物理地址的映射信息,一個(gè)ARP緩存表?xiàng)l目包括以下字段IP地址、物理地址、三層接口 索引。 步驟203,所述網(wǎng)絡(luò)設(shè)備丟棄所述ARP報(bào)文。 上述步驟202中,所述網(wǎng)絡(luò)設(shè)備更新本地ARP緩存表包括替換原有的舊ARP緩存 表?xiàng)l目和添加新ARP緩存表?xiàng)l目?jī)煞N情況,具體包括以下步驟 步驟一,所述網(wǎng)絡(luò)設(shè)備獲取所述APR報(bào)文的發(fā)送方IP地址和發(fā)送方硬件地址;
步驟二,所述網(wǎng)絡(luò)設(shè)備判斷所述ARP緩存表中是否存在所述發(fā)送方IP地址對(duì)應(yīng)的 舊ARP緩存表?xiàng)l目,如果存在,執(zhí)行步驟三,否則,執(zhí)行步驟四; 步驟三,所述網(wǎng)絡(luò)設(shè)備根據(jù)所述發(fā)送方硬件地址和所述發(fā)送方IP地址,生成新 ARP緩存表?xiàng)l目,并用所述新ARP緩存表?xiàng)l目替換所述發(fā)送方IP地址對(duì)應(yīng)的舊ARP緩存表 條目; 步驟四,所述網(wǎng)絡(luò)設(shè)備根據(jù)所述發(fā)送方硬件地址和所述發(fā)送方IP地址,生成新 ARP緩存表?xiàng)l目,并將所述新ARP緩存表?xiàng)l目添加到所述ARP緩存表中。
另外,執(zhí)行上述驗(yàn)證ARP報(bào)文的發(fā)送方IP地址的合法性之前,所述網(wǎng)絡(luò)設(shè)備還可 以對(duì)所述ARP報(bào)文中的硬件類型字段、硬件地址長(zhǎng)度、協(xié)議類型和協(xié)議地址長(zhǎng)度的合法性 進(jìn)行簡(jiǎn)單的驗(yàn)證,在驗(yàn)證出所述ARP報(bào)文中的硬件類型字段、硬件地址長(zhǎng)度、協(xié)議類型和協(xié) 議地址長(zhǎng)度均合法時(shí),再執(zhí)行上述發(fā)送方IP地址的驗(yàn)證步驟,在驗(yàn)證出所述ARP報(bào)文中的 硬件類型字段、硬件地址長(zhǎng)度、協(xié)議類型和協(xié)議地址長(zhǎng)度中的其中一個(gè)不合法時(shí),直接丟棄 所述ARP報(bào)文。 在上述實(shí)施例中的網(wǎng)絡(luò)設(shè)備應(yīng)用于以太網(wǎng)中時(shí),所述網(wǎng)絡(luò)設(shè)備接收到的報(bào)文為以 太網(wǎng)報(bào)文,如圖4所示為本發(fā)明實(shí)施例的以太網(wǎng)報(bào)文格式示意圖,從圖4中可以看出,ARP報(bào) 文封裝于以太網(wǎng)報(bào)文中進(jìn)行傳輸,網(wǎng)絡(luò)設(shè)備在接收到以太網(wǎng)報(bào)文時(shí),需要對(duì)以太網(wǎng)報(bào)文進(jìn) 行解封裝,得到ARP報(bào)文。 如圖5所示為本發(fā)明實(shí)施例的地址解析協(xié)議緩存表維護(hù)方法的另一流程示意圖, 所述地址解析協(xié)議緩存表維護(hù)方法包括以下步驟 步驟501,網(wǎng)絡(luò)設(shè)備在接收到ARP報(bào)文時(shí),獲取所述ARP報(bào)文的發(fā)送方IP地址和目 的IP地址。具體的,所述網(wǎng)絡(luò)設(shè)備在接收到ARP報(bào)文時(shí),獲取所述ARP報(bào)文中的發(fā)送方協(xié)議地址字段和目的協(xié)議地址字段,所述發(fā)送方協(xié)議地址字段即是發(fā)送方IP地址,所述目的 協(xié)議地址字段即是目的IP地址。 步驟502,所述網(wǎng)絡(luò)設(shè)備根據(jù)所述發(fā)送方IP地址和目的IP地址,判斷所述ARP報(bào) 文是否滿足過(guò)濾條件,所述過(guò)濾條件為所述目的IP地址為本地收包IP地址,且所述發(fā)送 方IP地址與所述本地收包IP地址位于同一網(wǎng)段;或所述網(wǎng)絡(luò)設(shè)備需要進(jìn)行ARP代理,所 述目的IP地址不是所述本地收包IP地址,本地存在能夠到達(dá)所述發(fā)送方IP地址的路由表 項(xiàng),且所述路由表項(xiàng)的三層出接口為本地收包三層接口 ;如果是,執(zhí)行步驟503,否則執(zhí)行 步驟504 ; 所述網(wǎng)絡(luò)設(shè)備接收到的ARP報(bào)文只需滿足上述過(guò)濾條件之一,則說(shuō)明ARP報(bào)文為 合法的ARP報(bào)文,否則,為不合法的ARP報(bào)文。其中,第一個(gè)過(guò)濾條件是為了判斷ARP報(bào)文 的發(fā)送方IP地址是否為與接收該ARP報(bào)文的本地收包IP地址位于同一網(wǎng)段的IP地址,如 果所述發(fā)送方IP地址為與所述本地收包IP地址位于不同網(wǎng)段,則所述發(fā)送方IP地址為非 法IP地址;另外,網(wǎng)絡(luò)設(shè)備在需要進(jìn)行ARP代理的情況下,可以處理滿足上述第二個(gè)過(guò)濾條 件的ARP報(bào)文。所謂ARP代理用來(lái)代替處于另一個(gè)網(wǎng)段的主機(jī)回答本網(wǎng)段主機(jī)的ARP請(qǐng)求 報(bào)文。 步驟503,所述網(wǎng)絡(luò)設(shè)備更新本地ARP緩存表。 步驟504,所述網(wǎng)絡(luò)設(shè)備丟棄所述ARP報(bào)文。即,在接收到的ARP報(bào)文不滿足上述 過(guò)濾條件時(shí),將所述ARP報(bào)文丟棄。 下面舉例對(duì)上述地址解析協(xié)議緩存表維護(hù)方法的實(shí)現(xiàn)方法進(jìn)行詳細(xì)說(shuō)明。 如圖6所示為本發(fā)明實(shí)施例的地址解析協(xié)議緩存表維護(hù)方法的又一流程示意圖,
所述地址解析協(xié)議緩存表維護(hù)方法包括以下步驟 步驟601,網(wǎng)絡(luò)設(shè)備在接收到ARP報(bào)文時(shí),獲取所述ARP報(bào)文的發(fā)送方IP地址和目 的IP地址; 步驟602,所述網(wǎng)絡(luò)設(shè)備判斷本地是否存在能夠到達(dá)所述發(fā)送方IP地址的路由表 項(xiàng),如果是,執(zhí)行步驟603,否則執(zhí)行步驟608 ; 具體的,所述網(wǎng)絡(luò)設(shè)備查找本地路由表,如果在本地路由表中查找到所述發(fā)送方 IP地址對(duì)應(yīng)的路由表項(xiàng),則說(shuō)明本地存在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng),否則, 說(shuō)明本地不存在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng),所述發(fā)送方IP地址為非法IP地 址,則丟棄所述ARP報(bào)文。 步驟603,所述網(wǎng)絡(luò)設(shè)備判斷所述路由表項(xiàng)的三層出接口是否為本地收包三層接 口 ,如果是,執(zhí)行步驟604,否則執(zhí)行步驟608 ; 步驟604,所述網(wǎng)絡(luò)設(shè)備判斷所述目的IP地址是否為所述本地收包IP地址,如果 是,執(zhí)行步驟605,否則執(zhí)行步驟606 ;所謂本地收包IP地址即接收到所述ARP報(bào)文的本地 三層接口下配置的IP地址,需要說(shuō)明的是,本地三層接口下可以配置一個(gè)或多個(gè)IP地址。
步驟605,所述網(wǎng)絡(luò)設(shè)備判斷所述發(fā)送方IP地址與所述本地收包IP地址是否位于 同一網(wǎng)段,如果是,執(zhí)行步驟607,否則執(zhí)行步驟608 ; 所述網(wǎng)絡(luò)設(shè)備可以通過(guò)判斷從本地路由表中查找到的所述發(fā)送方IP地址對(duì)應(yīng)的 路由表項(xiàng)是否為直連路由表項(xiàng),來(lái)判斷所述發(fā)送方IP地址與所述本地收包IP地址是否位 于同一網(wǎng)段,如果所述發(fā)送方IP地址對(duì)應(yīng)的路由表項(xiàng)為直連路由表項(xiàng),則判定所述發(fā)送方IP地址與所述本地收包IP地址位于同一網(wǎng)段,否則,判定所述發(fā)送方IP地址與所述本地收 包IP地址位于不同網(wǎng)段。所謂直連路由是指去往所述本地收包IP地址所在網(wǎng)段的路徑。
步驟606,所述網(wǎng)絡(luò)設(shè)備判斷是否需要進(jìn)行ARP代理,如果是,執(zhí)行步驟607,否貝U, 執(zhí)行步驟608 ; 步驟607,所述網(wǎng)絡(luò)設(shè)備更新本地ARP緩存表。
步驟608,所述網(wǎng)絡(luò)設(shè)備丟棄所述ARP報(bào)文。 通過(guò)上述實(shí)施例提供的方法,網(wǎng)絡(luò)設(shè)備在接收ARP報(bào)文時(shí),對(duì)ARP報(bào)文的發(fā)送方IP 地址的合法性進(jìn)行驗(yàn)證,在發(fā)送方IP地址合法時(shí),更新本地ARP緩存表,否則丟棄ARP報(bào) 文。從而,能夠有效過(guò)濾非法IP地址的ARP報(bào)文,避免ARP緩存表被攻擊,提高了系統(tǒng)安全 性,同時(shí)也保證了 ARP緩存表的正常學(xué)習(xí)不會(huì)受到影響。 對(duì)應(yīng)于上述ARP緩存表維護(hù)方法,本發(fā)明實(shí)施例還提供一種網(wǎng)絡(luò)設(shè)備,所述網(wǎng)絡(luò) 設(shè)備能夠執(zhí)行上述實(shí)施例中的ARP緩存表維護(hù)方法。 如圖7所示為本發(fā)明實(shí)施例的網(wǎng)絡(luò)設(shè)備的一結(jié)構(gòu)示意圖,所述網(wǎng)絡(luò)設(shè)備包括 驗(yàn)證模塊701,用于在接收到ARP報(bào)文時(shí),驗(yàn)證所述ARP報(bào)文的發(fā)送方IP地址是否
合法;所述ARP報(bào)文可以為ARP請(qǐng)求報(bào)文,也可以為ARP應(yīng)答報(bào)文。 更新模塊702,用于在所述發(fā)送方IP地址合法時(shí),更新本地ARP緩存表; 丟棄模塊703,用于在所述發(fā)送方IP地址不合法時(shí),丟棄所述ARP報(bào)文。 下面對(duì)所述驗(yàn)證模塊701的結(jié)構(gòu)進(jìn)行詳細(xì)說(shuō)明。 如圖8所示為本發(fā)明實(shí)施例的網(wǎng)絡(luò)設(shè)備的另一結(jié)構(gòu)示意圖,在圖7所示的實(shí)施例 的基礎(chǔ)上,所述驗(yàn)證模塊701包括 獲取子模塊7011,用于在接收到ARP報(bào)文時(shí),獲取所述ARP報(bào)文的發(fā)送方IP地址 和目的IP地址。具體的,所述獲取子模塊7011在接收到ARP報(bào)文時(shí),獲取所述ARP報(bào)文中 的發(fā)送方協(xié)議地址字段和目的協(xié)議地址字段,所述發(fā)送方協(xié)議地址字段即是發(fā)送方IP地 址,所述目的協(xié)議地址字段即是目的IP地址。 過(guò)濾子模塊7012,用于根據(jù)所述發(fā)送方IP地址和目的IP地址,判斷所述ARP報(bào)文 是否滿足過(guò)濾條件,所述過(guò)濾條件為所述目的IP地址為本地收包IP地址,且所述發(fā)送方 IP地址與所述本地收包IP地址位于同一網(wǎng)段;或所述網(wǎng)絡(luò)設(shè)備需要進(jìn)行ARP代理,所述目 的IP地址不是所述本地收包IP地址,本地存在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng), 且所述路由表項(xiàng)的三層出接口為本地收包三層接口 。所述ARP報(bào)文只需滿足上述過(guò)濾條件 之一,則說(shuō)明ARP報(bào)文為合法的ARP報(bào)文,否則,為不合法的ARP報(bào)文。
判定子模塊7013,用于在所述ARP報(bào)文滿足所述過(guò)濾條件時(shí),判定所述發(fā)送方IP 地址合法,否則,判定所述發(fā)送方IP地址不合法。 所述更新模塊702更新本地ARP緩存表包括替換原有的舊ARP緩存表?xiàng)l目和添加 新ARP緩存表?xiàng)l目?jī)煞N情況,具體的,所述更新模塊702還包括 第一處理子模塊7021,用于獲取所述APR報(bào)文的發(fā)送方IP地址和發(fā)送方硬件地 址; 第二處理子模塊7022,用于判斷所述ARP緩存表中是否存在所述發(fā)送方IP地址對(duì) 應(yīng)的舊ARP緩存表?xiàng)l目; 替換子模塊7023,用于在所述ARP緩存表中存在所述舊ARP緩存表?xiàng)l目時(shí),根據(jù)所述發(fā)送方硬件地址和所述發(fā)送方IP地址,生成新ARP緩存表?xiàng)l目,并用所述新ARP緩存表?xiàng)l目替換所述舊ARP緩存表?xiàng)l目; 添加子模塊7024,用于在所述ARP緩存表中不存在所述舊ARP緩存表?xiàng)l目時(shí),根據(jù)所述發(fā)送方硬件地址和所述發(fā)送方IP地址,生成新ARP緩存表?xiàng)l目,并將所述新ARP緩存表?xiàng)l目添加到所述ARP緩存表中。 下面詳細(xì)對(duì)上述過(guò)濾子模塊7012的結(jié)構(gòu)進(jìn)行說(shuō)明。 如圖9所示為本發(fā)明實(shí)施例的過(guò)濾子模塊的結(jié)構(gòu)示意圖,所述過(guò)濾子模塊7012包括 第一判斷單元70121,用于判斷本地是否存在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng)。具體的,所述第一判斷單元70121查找本地路由表,如果在本地路由表中查找到所述發(fā)送方IP地址對(duì)應(yīng)的路由表項(xiàng),則說(shuō)明本地存在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng),否則,說(shuō)明本地不存在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng),所述發(fā)送方IP地址為非法IP地址,則丟棄所述ARP報(bào)文。 第二判斷單元70122,用于在本地不存在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng)時(shí),判定所述ARP報(bào)文不滿足所述過(guò)濾條件,否則判斷所述路由表項(xiàng)的三層出接口是否為本地收包三層接口。 第三判斷單元70123,用于在所述路由表項(xiàng)的三層出接口不是本地收包三層接口時(shí),判定所述ARP報(bào)文不滿足所述過(guò)濾條件,否則判斷所述目的IP地址是否為所述本地收包IP地址; 第四判斷單元70124,用于在所述目的IP地址為所述本地收包IP地址時(shí),判斷所述發(fā)送方IP地址與所述本地收包IP地址是否位于同一網(wǎng)段。具體的,所述第四判斷單元70124可以通過(guò)判斷從本地路由表中查找到的所述發(fā)送方IP地址對(duì)應(yīng)的路由表項(xiàng)是否為直連路由表項(xiàng),來(lái)判斷所述發(fā)送方IP地址與所述本地收包IP地址是否位于同一網(wǎng)段,如果所述發(fā)送方IP地址對(duì)應(yīng)的路由表項(xiàng)為直連路由表項(xiàng),則判定所述發(fā)送方IP地址與所述本地收包IP地址位于同一網(wǎng)段,否則,判定所述發(fā)送方IP地址與所述本地收包IP地址位于不同網(wǎng)段。所謂直連路由是指去往所述本地收包IP地址所在網(wǎng)段的路徑。
第一判定單元70125,用于在所述發(fā)送方IP地址與所述本地收包IP地址位于不同網(wǎng)段時(shí),判定所述ARP報(bào)文不滿足所述過(guò)濾條件,否則判定所述ARP報(bào)文滿足所述過(guò)濾條件; 第五判斷單元70126,用于在所述目的IP地址不是所述本地收包IP地址時(shí),判斷所述網(wǎng)絡(luò)設(shè)備是否需要進(jìn)行ARP代理。 第二判定單元70127,用于在所述網(wǎng)絡(luò)設(shè)備不需要進(jìn)行ARP代理時(shí),判定所述ARP報(bào)文不滿足所述過(guò)濾條件,否則判定所述ARP報(bào)文滿足所述過(guò)濾條件。
通過(guò)上述實(shí)施例提供的網(wǎng)絡(luò)設(shè)備,在接收ARP報(bào)文時(shí),對(duì)ARP報(bào)文的發(fā)送方IP地址的合法性進(jìn)行驗(yàn)證,在發(fā)送方IP地址合法時(shí),更新本地ARP緩存表,否則丟棄ARP報(bào)文。從而,能夠有效過(guò)濾非法IP地址的ARP報(bào)文,避免ARP緩存表被攻擊,提高了系統(tǒng)安全性,同時(shí)也保證了 ARP緩存表的正常學(xué)習(xí)不會(huì)受到影響。 以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍'
權(quán)利要求
一種地址解析協(xié)議緩存表維護(hù)方法,其特征在于,包括以下步驟網(wǎng)絡(luò)設(shè)備在接收到地址解析協(xié)議ARP報(bào)文時(shí),驗(yàn)證所述ARP報(bào)文的發(fā)送方互聯(lián)網(wǎng)協(xié)議IP地址是否合法;在所述發(fā)送方IP地址合法時(shí),所述網(wǎng)絡(luò)設(shè)備更新本地ARP緩存表;在所述發(fā)送方IP地址不合法時(shí),所述網(wǎng)絡(luò)設(shè)備丟棄所述ARP報(bào)文。
2. 根據(jù)權(quán)利要求1所述的地址解析協(xié)議緩存表維護(hù)方法,其特征在于,所述網(wǎng)絡(luò)設(shè)備 在接收到ARP報(bào)文時(shí),驗(yàn)證所述ARP報(bào)文的發(fā)送方IP地址是否合法,具體為所述網(wǎng)絡(luò)設(shè)備在接收到所述ARP報(bào)文時(shí),獲取所述ARP報(bào)文的發(fā)送方IP地址和目的IP 地址;所述網(wǎng)絡(luò)設(shè)備根據(jù)所述發(fā)送方IP地址和目的IP地址,判斷所述ARP報(bào)文是否滿足過(guò)濾條件,所述過(guò)濾條件為所述目的IP地址為本地收包IP地址,且所述發(fā)送方IP地址與所述本地收包IP地址位于同一網(wǎng)段;或所述網(wǎng)絡(luò)設(shè)備需要進(jìn)行ARP代理,所述目的IP地址不是所述本地收包IP地址,本地存 在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng),且所述路由表項(xiàng)的三層出接口為本地收包三 層接口 ;所述網(wǎng)絡(luò)設(shè)備在所述ARP報(bào)文滿足所述過(guò)濾條件時(shí),判定所述發(fā)送方IP地址合法,否 則判定所述發(fā)送方IP地址不合法。
3. 根據(jù)權(quán)利要求2所述的地址解析協(xié)議緩存表維護(hù)方法,其特征在于,所述網(wǎng)絡(luò)設(shè)備 根據(jù)所述發(fā)送方IP地址和目的IP地址,判斷所述ARP報(bào)文是否滿足過(guò)濾條件,具體為所述網(wǎng)絡(luò)設(shè)備判斷本地是否存在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng); 所述網(wǎng)絡(luò)設(shè)備在本地不存在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng)時(shí),判定所述ARP報(bào)文不滿足所述過(guò)濾條件,否則判斷所述路由表項(xiàng)的三層出接口是否為本地收包三層接□;所述網(wǎng)絡(luò)設(shè)備在所述路由表項(xiàng)的三層出接口不是本地收包三層接口時(shí),判定所述ARP 報(bào)文不滿足所述過(guò)濾條件,否則判斷所述目的IP地址是否為所述本地收包IP地址;所述網(wǎng)絡(luò)設(shè)備在所述目的IP地址為所述本地收包IP地址時(shí),判斷所述發(fā)送方IP地址 與所述本地收包IP地址是否位于同一網(wǎng)段,在所述發(fā)送方IP地址與所述本地收包IP地址 位于不同網(wǎng)段時(shí),判定所述ARP報(bào)文不滿足所述過(guò)濾條件,否則判定所述ARP報(bào)文滿足所述 過(guò)濾條件;所述網(wǎng)絡(luò)設(shè)備在所述目的IP地址不是所述本地收包IP地址時(shí),判斷是否需要進(jìn)行ARP 代理,在不需要進(jìn)行ARP代理時(shí),判定所述ARP報(bào)文不滿足所述過(guò)濾條件,否則判定所述ARP 報(bào)文滿足所述過(guò)濾條件。
4. 根據(jù)權(quán)利要求3所述的地址解析協(xié)議緩存表維護(hù)方法,其特征在于,所述網(wǎng)絡(luò)設(shè)備 判斷所述發(fā)送方IP地址與所述本地收包IP地址是否位于同一網(wǎng)段,具體為所述網(wǎng)絡(luò)設(shè)備判斷所述路由表項(xiàng)是否為直連路由表項(xiàng),如果是,則判定所述發(fā)送方IP 地址與所述本地收包IP地址位于同一網(wǎng)段。
5. 根據(jù)權(quán)利要求1所述的地址解析協(xié)議緩存表維護(hù)方法,其特征在于,所述網(wǎng)絡(luò)設(shè)備 更新本地ARP緩存表,具體為所述網(wǎng)絡(luò)設(shè)備獲取所述APR報(bào)文的發(fā)送方IP地址和發(fā)送方硬件地址;所述網(wǎng)絡(luò)設(shè)備判斷所述ARP緩存表中是否存在所述發(fā)送方IP地址對(duì)應(yīng)的舊ARP緩存 表?xiàng)l目;在所述ARP緩存表中存在所述舊ARP緩存表?xiàng)l目時(shí),所述網(wǎng)絡(luò)設(shè)備根據(jù)所述發(fā)送方硬 件地址和所述發(fā)送方IP地址,生成新ARP緩存表?xiàng)l目,并用所述新ARP緩存表?xiàng)l目替換所 述舊ARP緩存表?xiàng)l目;在所述ARP緩存表中不存在所述舊ARP緩存表?xiàng)l目時(shí),所述網(wǎng)絡(luò)設(shè)備根據(jù)所述發(fā)送方 硬件地址和所述發(fā)送方IP地址,生成新ARP緩存表?xiàng)l目,并將所述新ARP緩存表?xiàng)l目添加 到所述ARP緩存表中。
6. —種網(wǎng)絡(luò)設(shè)備,其特征在于,包括驗(yàn)證模塊,用于在接收到ARP報(bào)文時(shí),驗(yàn)證所述ARP報(bào)文的發(fā)送方IP地址是否合法; 更新模塊,用于在所述發(fā)送方IP地址合法時(shí),更新本地ARP緩存表; 丟棄模塊,用于在所述發(fā)送方IP地址不合法時(shí),丟棄所述ARP報(bào)文。
7. 根據(jù)權(quán)利要求6所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述驗(yàn)證模塊包括 獲取子模塊,用于在接收到所述ARP報(bào)文時(shí),獲取所述ARP報(bào)文的發(fā)送方IP地址和目的IP地址;過(guò)濾子模塊,用于根據(jù)所述發(fā)送方IP地址和目的IP地址,判斷所述ARP報(bào)文是否滿足過(guò)濾條件,所述過(guò)濾條件為所述目的IP地址為本地收包IP地址,且所述發(fā)送方IP地址與所述本地收包IP地址位于同一網(wǎng)段;或所述網(wǎng)絡(luò)設(shè)備需要進(jìn)行ARP代理,所述目的IP地址不是所述本地收包IP地址,本地存 在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng),且所述路由表項(xiàng)的三層出接口為本地收包三 層接口 ;判定子模塊,用于在所述ARP報(bào)文滿足所述過(guò)濾條件時(shí),判定所述發(fā)送方IP地址合法, 否則判定所述發(fā)送方IP地址不合法。
8. 根據(jù)權(quán)利要求7所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述過(guò)濾子模塊包括 第一判斷單元,用于判斷本地是否存在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng); 第二判斷單元,用于在本地存在能夠到達(dá)所述發(fā)送方IP地址的路由表項(xiàng)時(shí),判定所述ARP報(bào)文不滿足所述過(guò)濾條件,否則判斷所述路由表項(xiàng)的三層出接口是否為本地收包三層接口 ;第三判斷單元,用于在所述路由表項(xiàng)的三層出接口不是本地收包三層接口時(shí),判定所 述ARP報(bào)文不滿足所述過(guò)濾條件,否則判斷所述目的IP地址是否為所述本地收包IP地址;第四判斷單元,用于在所述目的IP地址為所述本地收包IP地址時(shí),判斷所述發(fā)送方IP 地址與所述本地收包IP地址是否位于同一網(wǎng)段;第一判定單元,用于在所述發(fā)送方IP地址與所述本地收包IP地址位于不同網(wǎng)段時(shí),判 定所述ARP報(bào)文不滿足所述過(guò)濾條件,否則判定所述ARP報(bào)文滿足所述過(guò)濾條件;第五判斷單元,用于在所述目的IP地址不是所述本地收包IP地址時(shí),判斷所述網(wǎng)絡(luò)設(shè) 備是否需要進(jìn)行ARP代理;第二判定單元,用于在所述網(wǎng)絡(luò)設(shè)備不需要進(jìn)行ARP代理時(shí),判定所述ARP報(bào)文不滿足所述過(guò)濾條件,否則判定所述ARP報(bào)文滿足所述過(guò)濾條件。
9. 根據(jù)權(quán)利要求8所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述第四判斷單元通過(guò)判斷所述路 由表項(xiàng)是否為直連路由表項(xiàng),來(lái)判斷所述發(fā)送方IP地址與所述本地收包IP地址是否位于 同一網(wǎng)段。
10. 根據(jù)權(quán)利要求6所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述更新模塊包括 第一處理子模塊,用于獲取所述APR報(bào)文的發(fā)送方IP地址和發(fā)送方硬件地址; 第二處理子模塊,用于判斷所述ARP緩存表中是否存在所述發(fā)送方IP地址對(duì)應(yīng)的舊ARP緩存表?xiàng)l目;替換子模塊,用于在所述ARP緩存表中存在所述舊ARP緩存表?xiàng)l目時(shí),根據(jù)所述發(fā)送方 硬件地址和所述發(fā)送方IP地址,生成新ARP緩存表?xiàng)l目,并用所述新ARP緩存表?xiàng)l目替換 所述舊ARP緩存表?xiàng)l目;添加子模塊,用于在所述ARP緩存表中不存在所述舊ARP緩存表?xiàng)l目時(shí),根據(jù)所述發(fā)送 方硬件地址和所述發(fā)送方IP地址,生成新ARP緩存表?xiàng)l目,并將所述新ARP緩存表?xiàng)l目添 加到所述ARP緩存表中。
全文摘要
本發(fā)明提供一種地址解析協(xié)議緩存表維護(hù)方法和網(wǎng)絡(luò)設(shè)備,所述地址解析協(xié)議緩存表維護(hù)方法包括以下步驟網(wǎng)絡(luò)設(shè)備在接收到ARP報(bào)文時(shí),驗(yàn)證所述ARP報(bào)文的發(fā)送方IP地址是否合法;在所述發(fā)送方IP地址合法時(shí),所述網(wǎng)絡(luò)設(shè)備更新本地ARP緩存表;在所述發(fā)送方IP地址不合法時(shí),所述網(wǎng)絡(luò)設(shè)備丟棄所述ARP報(bào)文。本發(fā)明能夠有效防止ARP緩存表被非法IP地址的ARP報(bào)文攻擊。
文檔編號(hào)H04L12/56GK101741855SQ20091025406
公開(kāi)日2010年6月16日 申請(qǐng)日期2009年12月16日 優(yōu)先權(quán)日2009年12月16日
發(fā)明者王金 申請(qǐng)人:中興通訊股份有限公司