Arp表項更新方法以及裝置的制造方法
【專利摘要】本發明提供一種ARP表項更新方法以及裝置,其中該方法包括:當所述網絡設備的端口狀態發生變化時,獲取狀態發生變化的端口的虛擬局域網標識Vlan ID;在ARP表項中查找與所述VlanID對應的ARP信息;根據所述ARP信息生成ARP請求報文,并廣播;若接收到回應報文,根據所述網絡設備上接收所述回應報文的端口對所述ARP表項進行更新。本發明可及時對網絡設備保存的ARP表項進行更新,進而保證了設備間的正常通信。
【專利說明】
ARP表項更新方法以及裝置
技術領域
[0001] 本發明涉及通信技術領域,尤其涉及一種ARP (Address Resolution Protocol,地 址解析協議)表項更新方法以及裝置。
【背景技術】
[0002] 隨著網絡所承載業務的日益復雜,網絡設備的鄰居設備的變動也變得更為頻繁, ARP表項的靈活更新,已變為保證網絡業務正常處理的新的前提。
[0003] 現有技術中,網絡設備在接收到ARP報文后,網絡設備的應用程序會對接收到的 ARP報文進行分析以進行ARP學習并相應的更新ARP表項。對于后續接收到的數據報文,若 在ARP表項中查找到與目的IP地址對應的信息,確定已進行了 ARP學習,則按照一定的規 則對該數據報文進行封裝后,從對應的接口轉發出去。
[0004] 然而,當已學習到ARP表項中的某個網絡設備發生變化(例如,網絡設備接口狀態 由關閉Down變為開啟Up)時,如果不及時準確的更新ARP表項,在后續轉發數據報文時,則 會出現報文丟包等情況,進而降低設備轉發性能。
【發明內容】
[0005] 針對現有技術的缺陷,本發明提供了一種ARP表項更新方法以及裝置。
[0006] 本發明提供一種ARP表項更新方法,其中該方法包括:
[0007] 本發明提供一種地址解析協議ARP表項更新方法,應用于網絡設備,其中該方法 包括:
[0008] 當所述網絡設備的端口狀態發生變化時,獲取狀態發生變化的端口的虛擬局域網 標識 Vlan ID ;
[0009] 在ARP表項中查找與所述VlanID對應的ARP信息;
[0010] 根據所述ARP信息生成ARP請求報文,并廣播,其中,所述ARP請求報文的目的IP 地址為所述ARP信息中的目的IP地址,目的MAC地址為廣播MAC地址,源IP地址為所述端 口的IP地址,源MAC地址為所述端口的MAC地址;
[0011] 若接收到回應報文,根據所述網絡設備上接收所述回應報文的端口對所述ARP表 項進行更新。
[0012] 本發明還提供一種ARP表項更新裝置,應用于網絡設備,所述裝置包括:
[0013] 獲取單元,用于當所述網絡設備的端口狀態發生變化時,獲取狀態發生變化的端 口的 Vlan ID ;
[0014] 查找單元,用于在ARP表項中查找與所述VlanID對應的ARP信息;
[0015] 廣播單元,用于根據所述ARP信息生成ARP請求報文,并廣播,其中,所述ARP請求 報文的目的IP地址為所述ARP信息中的目的IP地址,目的MAC地址為廣播MAC地址,源IP 地址為所述端口的IP地址,源MAC地址為所述端口的MAC地址;
[0016] 更新單元,用于在接收到回應報文后,根據所述網絡設備上接收所述回應報文的 端口對所述ARP表項進行更新。
[0017] 本發明提供的ARP表項更新方法以及裝置,當網絡設備的端口狀態發生變化時, 在ARP表項中查找與端口的Vlan ID對應的ARP信息,并根據ARP信息生成ARP請求報文 并廣播,在接收到回應報文后,根據網絡設備上接收回應報文的端口對ARP表項進行更新。 由此可見,本發明可及時對網絡設備保存的ARP表項進行更新,進而保證了設備間的正常 通信。
【附圖說明】
[0018] 圖1是本發明實施例現有技術中ARP表項更新布局示意圖;
[0019] 圖2是本發明實施例中一種ARP表項更新方法流程示意圖;
[0020] 圖3是本發明實施例中一種ARP表項更新裝置的邏輯結構示意圖;
[0021] 圖4是本發明實施例中ARP表項更新裝置所在網絡設備的硬件架構示意圖。
【具體實施方式】
[0022] 為使本申請的目的,技術方案及優點更加清楚明白,以下參照附圖對本申請方案 做進一步的詳細說明。
[0023] 圖1為本發明實施例提供的ARP表項更新方法所應用的組網環境示意圖。包括多 個網絡設備(例如,設備A以及設備B),各個網絡設備上具有多個端口,例如設備A上包括 端口 Portl以及Port2。其中Portl可與Port3進行通信連接,Port2可與Port4進行通 信連接。該應用場景中設備B的Port3以及Port4分別使用不同的網卡,具有相同的IP地 址,且設有優先級,例如,P〇rt3的優先級高于Port4的優先級,設備B可以通過優先級高的 Port3與外部設備進行通信。
[0024] 現有技術中,當設備A的Portl以及Port2均為Up時,該設備A上保存的ARP表 項可以為:
[0025]
[0026] 表 1
[0027] 由于設備B僅可以通過優先級高的Port3與外部設備進行通信,因此,設備A上不 會保存有與P〇rt4連接的Port2的ARP表項。
[0028] 在設備A的Portl由Up變為Down時,該設備A上保存的ARP表項可以被更改為:
[0029]
[0030] 表 2
[0031] 然而,當Portl由Down變為Up時,若不能及時的更新ARP表項,在接收到發往設 備B的流量時,設備A則會通過Port2轉發出去,但是由于設備B上與Port2連接的Port4 為優先級低,并無法與外部設備進行通信,因此,發往設備B的報文則會被丟包,進而導致 通?目失敗。
[0032] 為了解決現有技術中存在的問題,本發明提供了一種ARP表項更新方法以及裝 置。
[0033] 請參考圖2,為本發明提供的ARP表項更新方法的處理流程示意圖,該ARP表項更 新方法可應用于網絡設備,該網絡設備可以是各種網絡安全設備,例如,交換機、防火墻等 設備,該ARP表項更新方法包括以下步驟:
[0034] 步驟201,當所述網絡設備的端口狀態發生變化時,獲取狀態發生變化的端口的 Vlan ID ;
[0035] 實際應用中,當網絡設備上狀態為Down的端口(即關閉狀態端口)切換為Up時, 通常會需要一定的時間以使網絡設備的各個模塊對該狀態切換為Up的端口進行配置,此 時的端口并沒有真正的Up起來,因此,本發明在檢測到端口由Down切換為Up時,通過設 置定時器的方式給該接口預留一定的時間,來使該端口真正的變為可以用于鏈路通信的Up 狀態。
[0036] 具體地,在網絡設備的端口狀態由Down切換為Up時,可以首先啟動定時器,該定 時器預先設置有定時時長,該定時時長可以根據該端口的端口類型,或者根據對端口進行 配置的時長來設置,例如,本發明可以將該定時時長設置為l〇ms。
[0037] 接著,獲取該狀態發生變化的端口的端口類型。
[0038] 網絡設備各接口的內核均保存有端口信息庫,該端口信息庫中保存有該端口的端 口類型等信息,在確定網絡設備的端口狀態由Down切換為Up時,從該端口信息庫中獲取該 端口的端口類型。
[0039] 其中,該端口類型分為二層端口以及三層端口,二層端口又包括二層物理口、二層 聚合口以及二層虛擬口等。
[0040] 在獲取到該端口的端口類型后,若該端口類型為二層端口,且是物理口或聚合口 時,即:該端口為二層物理口或二層聚合口,可以進一步獲取該端口所屬的Vlan。
[0041] 上述端口信息庫中還保存有端口所屬的Vlan (Virtual Local Area Network,虛 擬局域網)的VlanID,可以從該端口信息庫中獲取該狀態發生變化的端口所屬的VlanID。 之后,將該端口的VlanID保存至位圖中,以備后續使用。
[0042] 由于端口可以分屬于多個Vlan中,因此各端口也可以具有對應的多個VlanID。在 具有多個VlanID時,可以將該多個VlanID均保存至該位圖中。
[0043] 檢查當前是否到達了定時器的定時時長,若未到達,則等待定時器到達定時時長 后,執行步驟202,若已到達,則執行步驟202。
[0044] 步驟202,在ARP表項中查找與所述VlanID對應的ARP信息;
[0045] 本步驟中,可以遍歷該網絡設備的ARP表項,依次將所述ARP表項中的VlanID與 位圖中保存的VlanID進行匹配,若ARP表項中的VlanID與位圖中保存的任一 VlanID匹 配,說明該ARP表項的內容需要更新,并獲取與位圖中保存的任一 VlanID匹配的ARP表項 中ARP信息。
[0046] 其中,該ARP信息除了包括端口號、VlanID外,還包括對應的目的IP地址。
[0047] 步驟203,根據所述ARP信息生成ARP請求報文,并廣播,其中,所述ARP請求報文 的目的IP地址為所述ARP信息中的目的IP地址,目的MAC (Media Access Control,媒體訪 問控制)地址為廣播MAC地址,源IP地址為所述端口的IP地址,源MAC地址為所述端口的 MAC地址;
[0048] 在獲取對應的ARP信息后,可以根據該ARP信息生成ARP請求報文,即:將ARP信 息中對應的目的IP地址作為該ARP請求報文的目的IP地址,將ARP請求報文目的MAC地 址設為廣播MAC地址(全F),源IP地址設為該狀態發生變化的端口的IP地址,源MAC地址 設為該狀態發生變化的端口的MAC地址。
[0049] 通常情況下,各端口可能會被配置多個IP地址,在發生變化的端口具有多個IP地 址時,可以將所述多個IP地址中與所述目的IP地址為同一個網段的IP地址作為該ARP報 文的源IP地址。
[0050] 之后,將該ARP請求報文在與該ARP信息中VlanID對應的Vlan中廣播。
[0051] 步驟204,若接收到回應報文,根據所述網絡設備上接收所述回應報文的端口對所 述ARP表項進行更新。
[0052] 在網絡設備對ARP請求報文進行廣播后,若接收到單播的回應報文,且該回應報 文的源IP地址為上述ARP信息中對應的目的IP地址,則獲取該回應報文中的源MAC地址, 并根據該源MAC地址以及網絡設備上接收該回應報文的端口更新ARP表項中對應的ARP信 息。
[0053] 這樣一來,原來狀態為Down的端口在切換為Up后,即可以及時的更新自身的ARP 表項,以使后續轉發數據報文時,可以根據更新后的ARP信息對該數據報文進行轉發,進而 避免了在端口 Down時,因刪除了對應的ARP信息,而在后續轉發中因ARP表項無對應的ARP 信息而造成的報文丟包等情況的發生。
[0054] 以下結合圖1所示的應用場景對本發明進行進一步地舉例說明。
[0055] 假設,Portl 的 IP 地址為 Portl-IP,Portl 的 MAC 地址為 Portl-MAC,獲取的 Portl 的VlanID為Vlanl,當設備A的Portl由Down切換為Up時,根據Vlanl在設備A的ARP表 項(表2)中查找對應的ARP信息,之后,根據查找到的ARP信息(目的IP地址為設備B-IP) 以及Portl自身的信息,生成目的IP地址為設備B-IP、目的MAC地址為廣播MAC地址(全 F)、源IP地址為Portl-IP,源MAC地址為Portl-MAC的ARP請求報文,并廣播出去。
[0056] 當設備B接收到該ARP請求報文后,則會根據優先級高的Port3D的MAC地址生成 單播的回應報文經由P〇rt3發送至Portl,Portl在接收到該回應報文后,則可以根據接收 該回應報文的端口 Portl更新ARP表項,更新后的ARP表項可以是:
[0057]
[0058] 表 3
[0059] 本發明實施例示出的表1、表2以及表3僅是為進一步理解本發明的示例,并不用 于限制本發明實施例中ARP表項的具體內容。
[0060] 這樣一來,當Portl的狀態由Down變為Up時,該ARP表項也及時地進行了更新, 進而保證了設備間的正常通信。
[0061] 綜上所述,本發明提供的ARP表項更新方法,當網絡設備的端口狀態由Down變為 Up時,在ARP表項中查找與端口的Vlan ID對應的ARP信息,并根據ARP信息生成ARP請求 報文并廣播,在接收到回應報文后,根據網絡設備上接收回應報文的端口對ARP表項進行 更新。由此可見,本發明可及時對網絡設備保存的ARP表項進行更新,進而保證了設備間的 正常通信。
[0062] 本發明還提供一種ARP表項更新裝置,圖3為該ARP表項更新裝置的結構示意圖, 該裝置可以應用于網絡設備,該ARP表項更新裝置可以包括,其中:
[0063] 獲取單元301,用于當所述網絡設備的端口狀態發生變化時,獲取狀態發生變化的 端口的 Vlan ID ;
[0064] 查找單元302,用于在ARP表項中查找與所述VlanID對應的ARP信息;
[0065] 廣播單元303,用于根據所述ARP信息生成ARP請求報文,并廣播,其中,所述ARP 請求報文的目的IP地址為所述ARP信息中的目的IP地址,目的MAC地址為廣播MAC地址, 源IP地址為所述端口的IP地址,源MAC地址為所述端口的MAC地址;
[0066] 更新單元304,用于在接收到回應報文后,根據所述網絡設備上接收所述回應報文 的端口對所述ARP表項進行更新。
[0067] 進一步地,所述裝置還包括定時單元305,用于:當所述網絡設備的端口狀態發生 變化之后,啟動定時器;在到達定時器的定時時長時,執行所述在ARP表項中查找與所述 VlanID對應的ARP信息。
[0068] 進一步地,所述裝置還包括檢查單元306,用于當所述網絡設備的端口狀態發生變 化之后,檢查發生變化的端口是否為二層物理端口或二層聚合端口;若是,執行所述獲取狀 態發生變化的端口的Vlan ID。
[0069] 進一步地,所述裝置包括保存單元307,用于在獲取狀態發生變化的所述端口的 Vlan ID之后,將所述Vlan ID保存至位圖中;所述查找單元302具體用于依次將所述ARP 表項中的VlanID與所述位圖中保存的VlanID進行匹配,若匹配,獲取ARP表項中與位圖中 保存的VlanID對應的ARP信息。
[0070] 進一步地,所述廣播單元303具體用于若發生變化的端口具有多個IP地址,將所 述多個IP地址中與所述目的IP地址為同一個網段的IP地址作為所述ARP報文的源IP地 址。
[0071] 本發明應用于網絡設備的ARP表項更新裝置在具體的處理流程中可以與上述ARP 表項更新方法的處理流程一致,在此不再贅述。
[0072] 上述裝置可以通過軟件實現,也可以通過硬件實現,本發明ARP表項更新裝置所 在網絡設備的硬件架構示意圖均可參考圖4所示,其基本硬件環境包括中央處理器CPU、轉 發芯片、存儲器以及其他硬件,其中存儲器件中包括機器可讀指令,CPU讀取并執行機器可 讀指令執行圖3中各單元的功能。
[0073] 從以上各種方法和裝置的實施方式中可以看出,本發明實施例提供的ARP表項更 新方法以及裝置,可及時對網絡設備保存的ARP表項進行更新,進而保證了設備間的正常 通信。
[0074] 以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精 神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的范圍之內。
【主權項】
1. 一種地址解析協議ARP表項更新方法,應用于網絡設備,其特征在于,所述方法包 括: 當所述網絡設備的端口狀態發生變化時,獲取狀態發生變化的端口的虛擬局域網標識 Vlan ID ; 在ARP表項中查找與所述VlanID對應的ARP信息; 根據所述ARP信息生成ARP請求報文,并廣播,其中,所述ARP請求報文的目的IP地址 為所述ARP信息中的目的IP地址,目的MAC地址為廣播MAC地址,源IP地址為所述端口的 IP地址,源MAC地址為所述端口的MAC地址; 若接收到回應報文,根據所述網絡設備上接收所述回應報文的端口對所述ARP表項進 行更新。2. 如權利要求1所述的方法,其特征在于,當所述網絡設備的端口狀態發生變化之后, 所述方法還包括: 啟動定時器; 在到達定時器的定時時長時,執行所述在ARP表項中查找與所述VlanID對應的ARP信 息。3. 如權利要求1或2所述的方法,其特征在于,當所述網絡設備的端口狀態發生變化之 后,所述方法還包括: 檢查發生變化的端口是否為二層物理端口或二層聚合端口; 若是,執行所述獲取狀態發生變化的端口的Vlan ID。4. 如權利要求1所述的方法,其特征在于,在獲取狀態發生變化的所述端口的Vlan ID 之后,所述方法包括: 將所述Vlan ID保存至位圖中; 在ARP表項中查找與所述VlanID對應的ARP信息具體包括: 依次將所述ARP表項中的VlanID與所述位圖中保存的VlanID進行匹配,若匹配,獲取 ARP表項中與位圖中保存的VlanID對應的ARP信息。5. 如權利要求1所述的方法,其特征在于,所述方法包括: 若發生變化的端口具有多個IP地址,將所述多個IP地址中與所述目的IP地址為同一 個網段的IP地址作為所述ARP報文的源IP地址。6. -種ARP表項更新裝置,應用于網絡設備,其特征在于,所述裝置包括: 獲取單元,用于當所述網絡設備的端口狀態發生變化時,獲取狀態發生變化的端口的 Vlan ID ; 查找單元,用于在ARP表項中查找與所述VlanID對應的ARP信息; 廣播單元,用于根據所述ARP信息生成ARP請求報文,并廣播,其中,所述ARP請求報文 的目的IP地址為所述ARP信息中的目的IP地址,目的MAC地址為廣播MAC地址,源IP地 址為所述端口的IP地址,源MAC地址為所述端口的MAC地址; 更新單元,用于在接收到回應報文后,根據所述網絡設備上接收所述回應報文的端口 對所述ARP表項進行更新。7. 如權利要求6所述的裝置,其特征在于,所述裝置還包括定時單元,用于: 當所述網絡設備的端口狀態發生變化之后,啟動定時器; 在到達定時器的定時時長時,執行所述在ARP表項中查找與所述VlanID對應的ARP信 息。8. 如權利要求6或7所述的裝置,其特征在于,所述裝置還包括檢查單元,用于: 當所述網絡設備的端口狀態發生變化之后,檢查發生變化的端口是否為二層物理端口 或二層聚合端口; 若是,執行所述獲取狀態發生變化的端口的Vlan ID。9. 如權利要求6所述的裝置,其特征在于,所述裝置包括: 保存單元,用于在獲取狀態發生變化的所述端口的Vlan ID之后,將所述Vlan ID保存 至位圖中; 所述查找單元具體用于: 依次將所述ARP表項中的VlanID與所述位圖中保存的VlanID進行匹配,若匹配,獲取 ARP表項中與位圖中保存的VlanID對應的ARP信息。10. 如權利要求6所述的裝置,其特征在于,所述廣播單元具體用于: 若發生變化的端口具有多個IP地址,將所述多個IP地址中與所述目的IP地址為同一 個網段的IP地址作為所述ARP報文的源IP地址。
【文檔編號】H04L12/751GK105991795SQ201510467496
【公開日】2016年10月5日
【申請日】2015年7月31日
【發明人】劉成乾
【申請人】杭州迪普科技有限公司