本發明涉及網絡安全和網絡管理領域,確切地說涉及一種基于SDN的ARP協議輔助模型。
背景技術:
ARP欺騙和ARP廣播風暴一直都是網絡管理所面臨的基本問題。ARP協議用于建立局域網內主機IP和主機物理地址之間的映射,是TCP/IP協議中的重要的基層協議。ARP協議簡單有效但同時又缺少安全機制,對網絡攻擊的門檻很低,受攻擊后導致網絡帶寬消耗、交換機資源大量占用、會話劫持、拒絕服務攻擊、廣播風暴等嚴重后果,而且難以追蹤攻擊來源。在傳統計算機網絡中,ARP欺騙和ARP廣播可以受到一定程度的控制,但代價是需要購置高配置網絡設備,并且至今沒有根本的解決之道。SDN網絡所具有的網絡資源集中控制的特性為SDN網絡中的ARP協議攻擊預防研究提供了很好的解決思路,有望最大程度的約束網絡內ARP流量,從根本上對ARP攻擊提出解決方案。
SDN最早起源于斯坦福大學的clean state項目,它是一種創新的網絡體系架構,其核心思想是把轉發平面和控制平面解耦,通過集中式的控制器并使用標準的接口對各種不同的網絡設備進行管理。目前,OpenFlow作為標準的接口已經得到廣泛使用,中心控制器通過OpenFlow協議實現對物理交換機的精細化監測和管理。同時,SDN具有天然的網絡虛擬化的優勢,特別是對于數據中心的網絡虛擬化應用。出于部署的要求,虛擬化要求具有集中式控制的網絡架構,而SDN網絡恰恰就是一種集中式管理的網絡架構。
公開號為105379228A,公開日為2016年3月2日的中國專利文獻公開了一種實現ARP的方法、交換設備及控制設備,所述方法包括:交換設備接收ARP報文;所述交換設備將包含所述ARP報文的信息上報消息發送到控制設備;所述交換設備根據所述控制設備發送的信息下發消息中包含的MAC地址實現ARP,所述信息下發消息為所述控制設備根據所述信息上報消息發送的消息。應用該發明實施例,雖然SDN網絡中的交換設備不具有支持ARP協議的能力,但是交換設備可以通過將ARP報文上報到控制設備,通過控制設備的協助實現與外部設備之間的ARP交互,從而提高了SDN網絡的數據傳輸能力。
以上述專利危險為代表的現有技術,在對網絡內的ARP流量的約束能力有限,無法從根本上解決網絡中的ARP攻擊。
技術實現要素:
本發明旨在針對上述現有技術所存在的缺陷和不足,提供一種基于SDN的ARP協議輔助模型,采用本模型應用在SDN網絡中,具有全局控制能力的控制器可以擔負ARP協議工作中的全局協調者的任務,主要工作是對全局IP-MAC映射表進行維護、對ARP請求做出正確響應,追蹤局域網內ARP攻擊的實施者,從而有效的隔離ARP廣播、防止ARP欺騙并追蹤其實施者以及全局IP-MAC信息的管理和維護。
本發明是通過采用下述技術方案實現的:
一種基于SDN的ARP協議輔助模型,其特征在于包括:
ARP數據報過濾模塊:用于對由交換機上報來的ARP報文進行格式正確性檢測,檢測通過的ARP報文進入ARP請求數據報處理模塊的處理邏輯;
ARP請求數據報處理模塊:用于應答ARP請求報文,具體是:針對ARP請求數據報所詢問的IP地址,控制器查詢內部維護的IP-MAC映射表,返回所述IP地址所對應的MAC,并構造ARP響應報文,通過SDN的發包機制發送該ARP響應報文給發出該ARP請求的主機;
ARP響應報文發送模塊:用于非空查詢結果的ARP響應數據報的構造和發送,具體是:該模塊根據ARP請求報文的信息和查詢出的MAC數據來構造ARP響應報文,然后利用OpenFlow規范中的發包工具PackOut消息來把ARP響應數據報從SDN交換機的相應接收端口發出,發出ARP請求的主機接收這個可信的ARP響應報文,完成ARP協議調用;
ARP流量統計和分析模塊:接收ARP數據報過濾模塊和ARP請求處理模塊發送過來的各種ARP報文事件記錄和交換機端口信息,集中維護著網絡中每臺主機設備的ARP流量統計記錄,并動態地分析這些數據,形成ARP廣播報警、ARP欺騙報警事件,并且結合交換機端口信息和控制器的設備管理模塊來追蹤觸發報警事件的主機;
IP-MAC映射表管理配置模塊:用于提供IP-MAC映射表的管理和配置的接口,網絡管理員通過該模塊提供的接口來實現對IP-MAC映射表的所有管理。
所述的ARP數據報過濾模塊,更具體的是:ARP數據報過濾模塊對二層數據幀進行初步過濾并記錄ARP流量數據,ARP數據報過濾模塊對二層數據幀進行兩層檢查,檢測該ARP數據報是否是一個偽造的數據報,通過這兩層檢測的ARP數據報會進入ARP請求處理模塊的處理邏輯中。
所述的ARP請求數據報處理模塊,更具體的是:通過ARP數據報過濾模塊的兩層檢查后,ARP請求處理模塊提取出ARP請求數據報的源IP和源MAC,查看IP-MAC映射表中是否包含了該IP-MAC映射實體,如果不包含,則說明該ARP報文是具有欺騙性的ARP請求報文,發出這樣ARP報文的主機正在實施ARP欺騙行為,發送該ARP欺騙記錄和接收到該數據報的交換機端口信息給ARP流量統計和分析模塊,該數據報的處理流程結束;如果IP-MAC映射表中包含該IP-MAC映射實體,就再次查詢IP-MAC映射表,查詢該請求報文所請求的目的IP的MAC,如果目的IP不在IP-MAC映射表中,即查詢結果為空,那就說明ARP請求的是一臺未經管理員注冊的主機,發送該請求未知主機記錄和接收到該數據報的交換機端口信息給ARP流量和分析模塊,如果目的IP在IP-MAC映射表中,即查詢結果為MAC值,那就發送正常ARP請求記錄和接收到該數據報的交換機端口信息給ARP流量統計和分析模塊,并且調用ARP響應報文發送模塊來構造并發送ARP響應報文。
所述的ARP響應報文發送模塊,更具體的是:ARP響應報文發送模塊接收ARP請求處理模塊傳來的ARP請求報文、查詢出的MAC和接收到ARP請求報文的交換機端口信息,按照ARP協議規范,用這些數據來構造ARP響應報文,把ARP響應報文作為PacketOut消息的數據,指示交換機從接收端口處發出該ARP響應報文。
所述的ARP請求數據報處理模塊,進一步包括:ARP請求處理模塊內部維持一個IP-MAC映射表的內存鏡像。
所述的ARP流量統計和分析模塊,更具體的是:ARP流量統計和分析模塊為每臺主機維持著四類ARP記錄,四類ARP記錄分別包括:一、數據幀源MAC與ARP報文的源MAC不相等的ARP報文記錄;二、ARP響應報文記錄;三、源MAC和源IP映射實體未注冊的ARP請求報文記錄;四、請求未知主機的ARP請求報文記錄。
與現有技術相比,本發明所達到的有益效果如下:
1.本發明能有效的減少甚至杜絕網絡內的ARP廣播。原始ARP協議工作方式是分布式的,而在該ARP協議輔助模型的配合下,ARP協議以集中式方式來工作。ARP請求數據報不需再搭載網絡廣播來發送它自己,而是直接由一個安全可控的ARP協議輔助中心來接收并回應它。
2.本發明能有效地防止并追蹤ARP攻擊。該ARP協議輔助模型能基于網絡中的主機設備和它們所連接的交換機端口來記錄主機的ARP數據包發送情況,并根據這些ARP流量信息診斷出ARP欺騙或者ARP攻擊的實施者。如果ARP攻擊流量占用了大量的端口帶寬,還可以擴展該模型,對ARP流量施加靈活的控制。
3.本發明不需要更改或添加網絡內的任何設備,不需要網絡內主機安裝任何客戶端軟件,不需要主機采用靜態主機配置(當IP-MAC配置模塊工作在動態配置模式時),即本發明對網絡內的主機是透明的。而且,本發明只需要在SDN控制器平臺上做相應的軟件開發工作。本發明不會對現有ARP協議的正常工作有任何干擾,而且本發明的工作完全基于現有ARP協議。本發明為APR提供理想、可信的工作環境,并過濾和處理掉異常交互,從而完成對ARP協議的輔助工作。
4、本發明能夠給主機提供安全正確的ARP響應、攔截網絡內的ARP欺騙、抑制網絡中ARP廣播風暴,既能早期避免ARP攻擊又能發現企圖發起ARP攻擊的破壞者,既維護了ARP正確的工作流程、凈化了網絡流量,又給管理員提供了簡易的管理接口和清晰的網絡狀態視圖。
附圖說明
下面將結合說明書附圖和具體實施方式對本發明作進一步的詳細說明,其中:
圖1為本發明基于SDN的ARP協議輔助模型功能模塊和網絡拓撲圖。
圖2為本發明實施例基于SDN的ARP協議輔助工作流程圖。
具體實施方式
ARP協議輔助模型的工作關鍵是由網絡管理員統一集中管理網絡內主機的IP和MAC信息,這些關鍵信息可以由管理員手工配置也可以從網絡的DHCP服務中收集。當ARP數據報由主機發出并被傳輸到與主機直連的SDN交換機的接口時,交換機因匹配流表項不成功而上報該數據包給SDN控制器。控制器把包裹有ARP數據報的二層數據幀交給ARP協議輔助模型來處理。在此基礎上,ARP協議輔助模型主要包括:
ARP數據報過濾模塊:用于對由交換機上報來的ARP報文進行格式正確性檢測,檢測通過的ARP報文進入ARP請求數據報處理模塊的處理邏輯;
所述的正確性檢測屬于ARP數據報的初步檢測,具體是根據ARP協議規范的報文格式以及正常ARP報文的字段組合情況,記錄并過濾掉那些非法格式和非正常邏輯的報文;例如數據鏈路層數據幀的源MAC與ARP報文的源MAC不一致的報文就屬于非正常邏輯的ARP報文。
ARP請求數據報處理模塊:用于應答ARP請求報文,具體是:針對ARP請求數據報所詢問的IP地址,控制器查詢內部維護的IP-MAC映射表,返回所述IP地址所對應的MAC,并構造ARP響應報文,通過SDN的發包機制發送該ARP響應報文給發出該ARP請求的主機;
主機發出ARP請求并接收到正確的ARP響應的這一過程,是ARP協議設計之初所期望的最理想的工作流程,也是本ARP協議輔助模型極力維護的ARP工作流程,而當控制器查詢IP-MAC映射表的結果是空時,說明目前網絡中還沒有響應的主機信息,從網絡管理的角度說,ARP所請求的是一臺不存在的主機。
ARP響應報文發送模塊:用于非空查詢結果的ARP響應數據報的構造和發送,具體是:該模塊根據ARP請求報文的信息和查詢出的MAC數據來構造ARP響應報文,然后利用OpenFlow規范中的發包工具PackOut消息來把ARP響應數據報從SDN交換機的相應接收端口發出,發出ARP請求的主機接收這個可信的ARP響應報文,完成ARP協議調用;
該模塊衍生自ARP請求數據報處理模塊。ARP數據報處理模塊主要負責對請求IP的MAC信息的查詢和ARP流量統計。
ARP流量統計和分析模塊:接收ARP數據報過濾模塊和ARP請求處理模塊發送過來的各種ARP報文事件記錄和交換機端口信息,集中維護著網絡中每臺主機設備的ARP流量統計記錄,并動態地分析這些數據,形成ARP廣播報警、ARP欺騙報警事件,并且結合交換機端口信息和控制器的設備管理模塊來追蹤觸發報警事件的主機;
ARP流量信息主要來自流量收集模塊,流量收集模塊包括ARP數據報過濾模塊和ARP請求處理模塊,借助SDN控制器的設備管理模塊,該模塊維護著每臺主機的ARP數據報發送情況,其中ARP數據報包括ARP請求數據報和ARP響應數據報。該模塊會從多個角度分析這些數據,并形成響應信息,例如某臺主機在一定時間間隔內發送了大于一定量的ARP響應包,或者該主機發送了很多請求未知主機的ARP請求包,該模塊就會以警告的形式把這些統計數據和相應的推理結論呈現給網絡管理員。
IP-MAC映射表管理配置模塊:用于提供IP-MAC映射表的管理和配置的接口,網絡管理員通過該模塊提供的接口來實現對IP-MAC映射表的所有管理。
該模塊維護著IP-MAC的存儲和內部邏輯,IP-MAC內部邏輯指整個映射表中IP和MAC只能是一一對應的關系,IP-MAC映射表是整個模型中最重要的數據資源,另外,從數據安全和訪問性能的角度考量,該數據應該被持久化到數據庫,并在模塊內支持數據緩存。
IP-MAC映射表管理配置模塊提供靜態和動態兩種配置模式。靜態配置模式中,局域網內的所有主機都采用靜態主機配置,即手工配置由管理員分配的靜態IP信息。動態配置模式中,局域網內的所有主機都采用DHCP(動態主機配置協議)來自動配置主機IP信息。靜態配置模式,需要網絡管理員集中分配并配置主機IP信息,操作繁瑣,但從信息的配置和維護角度看,ARP協議輔助模型將更加安全;動態配置模式,允許主機啟動DHCP來動態配置主機,符合局域網內主機的配置習慣,但在實現ARP協議輔助模型系統時需要監聽網絡內的DHCP服務,收集網絡內IP-MAC數據,并實時更新。
所述的ARP數據報過濾模塊,更具體的是:ARP數據報過濾模塊對二層數據幀進行初步過濾并記錄ARP流量數據,ARP數據報過濾模塊對二層數據幀進行兩層檢查,檢測該ARP數據報是否是一個偽造的數據報,通過這兩層檢測的ARP數據報會進入ARP請求處理模塊的處理邏輯中。
所述的兩層檢查具體是指:首先檢查二層幀的源MAC是否與ARP數據報中的源MAC相等,如果不相等,則可以斷定是該ARP數據報是一個偽造的數據報,發送該偽造數據報記錄和接收該數據報的交換機端口信息給ARP流量統計和分析模塊,該數據報的處理流程結束;如果不是偽造的數據報,那么進行第二層檢查,即查看ARP數據報是否是ARP響應數據報,在該ARP協議輔助模型的參與下,ARP工作方式由分布式轉成了集中式,即由SDN控制器完全控制對ARP請求報文的響應,而不需要網絡中的任何一臺主機來發送ARP響應報文,在沒有ARP請求報文到達的情況下主機發送ARP響應報文屬于不正常響應,需要發送該無來由的ARP響應記錄和接收到該ARP響應報文的交換機端口信息給ARP流量統計和分析模塊,該數據報的處理流程結束,通過這兩層檢測的ARP數據報會進入ARP請求處理模塊的處理邏輯中。
所述的ARP請求數據報處理模塊,更具體的是:通過ARP數據報過濾模塊的兩層檢查后,ARP請求處理模塊提取出ARP請求數據報的源IP和源MAC,查看IP-MAC映射表中是否包含了該IP-MAC映射實體,如果不包含,則說明該ARP報文是具有欺騙性的ARP請求報文,發出這樣ARP報文的主機正在實施ARP欺騙行為,發送該ARP欺騙記錄和接收到該數據報的交換機端口信息給ARP流量統計和分析模塊,該數據報的處理流程結束;如果IP-MAC映射表中包含該IP-MAC映射實體,就再次查詢IP-MAC映射表,查詢該請求報文所請求的目的IP的MAC,如果目的IP不在IP-MAC映射表中,即查詢結果為空,那就說明ARP請求的是一臺未經管理員注冊的主機,發送該請求未知主機記錄和接收到該數據報的交換機端口信息給ARP流量和分析模塊,如果目的IP在IP-MAC映射表中,即查詢結果為MAC值,那就發送正常ARP請求記錄和接收到該數據報的交換機端口信息給ARP流量統計和分析模塊,并且調用ARP響應報文發送模塊來構造并發送ARP響應報文。
所述的ARP響應報文發送模塊,更具體的是:ARP響應報文發送模塊接收ARP請求處理模塊傳來的ARP請求報文、查詢出的MAC和接收到ARP請求報文的交換機端口信息,按照ARP協議規范,用這些數據來構造ARP響應報文,把ARP響應報文作為PacketOut消息的數據,指示交換機從接收端口處發出該ARP響應報文。
在該ARP協議輔助模型參與下,網絡中的所有ARP響應數據報均出自該模塊。
所述的ARP請求數據報處理模塊,進一步包括:查詢IP-MAC映射表的操作屬于頻繁操作,為了提高查詢性能,ARP請求處理模塊內部維持一個IP-MAC映射表的內存鏡像。由于IP-MAC數據資源不會頻繁更新,所以該內存鏡像的數據一致性很容易維護。
所述的ARP流量統計和分析模塊,更具體的是:ARP流量統計和分析模塊為每臺主機維持著四類ARP記錄,在SDN網絡中每臺鏈接到SDN交換機的主機都對應著一個交換機端口,ARP數據報過濾模塊和ARP請求處理模塊發送ARP記錄時是附有交換機端口信息的,借助控制器的設備管理服務可以在ARP記錄和主機之間建立映射,從而為每臺主機維護ARP記錄;四類ARP記錄分別包括:一、數據幀源MAC與ARP報文的源MAC不相等的ARP報文記錄;屬于偽造ARP報文,此類偽造ARP報文用處不大,很少被用于真正的ARP欺騙。二、ARP響應報文記錄;在由ARP協議輔助模型統一集中接管了ARP請求處理和ARP回應報文發送的情況下,正常情況下主機是不會發送ARP響應報文的。三、源MAC和源IP映射實體未注冊的ARP請求報文記錄;在ARP協議輔助模型的參與下,ARP請求數據報中出現未注冊的IP-MAC映射實體,說明這個ARP請求報文是一個ARP欺騙報文;四、請求未知主機的ARP請求報文記錄;在原ARP工作流程中,請求主機是得不到來自未知主機的ARP響應報文的,從而主機連續發送ARP請求報文,造成網絡中大量無效ARP流量,在該ARP協議輔助模型的參與下,未知ARP請求報文被限制在請求主機和交換機端口之間,從而極大的避免了網絡中的ARP廣播流量。
偽造ARP記錄、ARP響應報文記錄、未注冊IP-MAC映射實體報文記錄都屬于ARP欺騙的范疇,特別是未注冊IP-MAC映射實體報文記錄是APR欺騙的常用手段,當出現這些記錄出現時,ARP流量統計和分析模塊就會上報ARP欺騙告警,偽造ARP記錄中的ARP請求報文、未注冊IP-MAC映射實體報文記錄、請求未知主機報文記錄都屬于ARP廣播范疇,當這些記錄出現時,說明網絡內有主機在有意實施ARP廣播攻擊,ARP流量統計和分析模塊就會上報ARP廣播告警,通過主機和四類ARP記錄的映射關系,管理員能輕松地從告警信息中追蹤到ARP攻擊實施者。
IP-MAC映射表管理配置模塊也是一個后臺工作模塊,主要向網絡管理員提供IP-MAC映射表的管理接口。
IP-MAC映射表管理配置模塊,更具體的是:IP-MAC映射表管理配置模塊提供Web界面或者RestAPI形式的配置管理接口,并且提供一定形式的安全訪問機制,例如用戶名和密碼;網絡管理員需持有一定的用戶名和密碼信息來登錄配置管理模塊,然后進行IP-MAC映射表的增刪改查操作,模塊維護著IP-MAC內部的沖突檢查,只允許IP與MAC一一對應的映射關系存在。
IP-MAC映射表配置模塊被配置成動態配置模式時,配置模塊需監聽網絡內的DHCP Request消息和DHCP ACK消息,這兩種消息是主機在動態主機配置過程中的關鍵消息,配置模塊從這兩種消息中解析出局域網內IP和MAC的對應關系,并更新到IP-MAC映射表中。