摘要:本文主要探索在網絡安全教學及網絡中采用云平臺和SDN網絡結合的方法來滿足各種教學網絡安全模擬、網絡攻防及網絡執法演練。同時配合SDN網絡及控制器技術來實現各種級別的網絡攻擊模擬,流量控制,流量分發和牽引的處理。同時通過SDN網絡體系來滿足各種級別的網絡安全教學模擬和實際仿真試驗。
關鍵詞:云平臺、SDN、KVM、虛擬機模板、流量控制、OpenFlow、Vmware
針對國內目前日益嚴重的網絡安全形勢,需要加速人才培訓和環境模擬試驗。可是網絡安全涉及的面廣,環境復雜。很難全面地反映整個方面的問題,如何解決網絡安全人員的培訓和環境模擬試驗成了一個重要的問題。我們針對整個需求設計了一套完善而可靠的基于大數據云計算環境的網絡安全人員培訓和網絡安全實訓模擬試驗環境。
采用大數據云計算環境和靈活性是*符合網絡安全模擬環境和靈活性要求。因為它提供了足夠靈活的環境建設和環境靈活設置的模式。可以把無限多的可能性都通過系統模板的方式保存和建立起來。以便隨時調用和重組。采用大數據云計算方式來組建和搭建網絡安全環境模擬和網絡執法仿真。
由于網絡安全與執法需要的環境復雜涉及的面相對多。需要一套可以靈活滿足這樣需求的系統和網絡體系。在具體設計和應用中,我們采用全部基于SDN的網絡體系來配套并滿足這樣的需求。
SDN技術
SDN(Software Define Network簡寫)網絡的zui終目標是服務于多樣化的業務應用創新。因此隨著SDN技術的部署和推廣,將會有越來越多的業務應用被研發,這類應用將能夠便捷地通過SDN北向接口調用底層網絡能力,按需使用網絡資源。
SDN推動業務創新已經是業界不爭的事實,它可以被廣泛地應用在云數據中心、寬帶傳輸網絡、移動網絡等種種場景中,其中為云計算業務提供網絡資源服務就是一個非常典型的案例。*,在當前的云計算業務中,服務器虛擬化、存儲虛擬化都已經被廣泛應用,它們將底層的物理資源進行池化共享,進而按需分配給用戶使用。相比之下,傳統的網絡資源遠遠沒有達到類似的靈活性,而SDN的引入則能夠很好地解決這一問題。
SDN通過標準的南向接口屏蔽了底層物理轉發設備的差異,實現了資源的虛擬化,同時開放了靈活的北向接口供上層業務按需進行網絡配置并調用網絡資源。現有所有的云計算領域中的OpenStack、CloudStack、Hpyer-V、Vmware等就是可以工作在SDN應用層的云管理平臺,通過在其網絡資源管理組件中增加SDN管理插件,管理者和使用者可利用SDN北向接口便捷地調用SDN控制器對外開放的網絡能力。當有云主機組網需求(例如建立用戶專有的VLAN)被發出時,相關的網絡策略和配置可以在云管理平臺的界面上集中制定并進而驅動SDN控制器統一地自動下發到相關的網絡設備上。
因此,網絡資源可以和其他類型的虛擬化資源一樣,以抽象的資源能力的面貌統一呈現給業務應用,無需針對底層網絡設備的差異耗費大量開銷從事額外的適配工作,這有助于業務應用的快速創新。
SDN控制器及北向接口技術初探
SDN控制層是SDN的大腦,負責對底層轉發設備的集中統一控制,同時向上層業務提供網絡能力調用的接口,在SDN架構中具有舉足輕重的作用,SDN控制器也是SDN關注的焦點。從技術實現上看,控制器除了南向的網絡控制和北向的業務支撐外,還需要關注東西的擴展,以避免SDN集中控制導致的性能和安全瓶頸問題,SDN控制器也在南向、北向、東西向上引入了相應的核心技術,有效解決與各層通信以及控制集群橫向擴展的難題。
當前,業界有很多基于OpenFlow控制協議的開源的控制器實現,例如NOX、Onix、Floodlight等,它們都有各自的特色設計,能夠實現鏈路發現、拓撲管理、策略制定、表項下發等支持SDN網絡運行的基本操作。雖然不同的控制器在功能和性能上仍舊存在差異,但是從中已經可以總結出 SDN控制器應當具備的技術特征,從這些開源系統的研發與實踐中得到的經驗和教訓將有助于推動SDN控制器的規范化發展。
另外,用于網絡集中化控制的控制器作為SDN網絡的核心,其性能和安全性非常重要,其可能存在的負載過大、單點失效等問題一直是SDN領域中亟待解決的問題。當前,業界對此也有了很多探討,從部署架構、技術措施等多個方面提出了很多有創見的方法。
SDN控制器對網絡的控制主要是通過南向接口協議實現,包括鏈路發現、拓撲管理、策略制定、表項下發等,其中鏈路發現和拓撲管理主要是控制其利用南向接口的上行通道對底層交換設備上報信息進行統一監控和統計;而策略制定和表項下發則是控制器利用南向接口的下行通道對網絡設備進行統一控制。
SDN北向接口是通過控制器向上層業務應用開放的接口,其目標是使得業務應用能夠便利地調用底層的網絡資源和能力。通過北向接口,網絡業務的能以軟件編程的形式調用各種網絡資源;同時上層的網絡資源管理系統可以通過控制器的北向接口全局把控整個網網絡的資源狀態,并對資源進行統一調度。因為北向接口是直接為業務應用服務的,因此其設計需要密切業務應用需求,具有多樣化的特征。同時,北向接口的設計是否合理、便捷,以便能被業務應用廣泛調用,會直接影響到SDN控制器廠商的市場前景。
與南向接口方面已有OpenFlow等標準不同,北向接口方面還缺少業界*的標準,因此,北向接口的協議制定成為當前SDN領域競爭的焦點,不同的參與者或者從用戶角度出發,或者從運營角度出發,或者從產品能力角度出發提出了很多方案。據悉,目前至少有20種控制器,每種控制器會對外提供北向接口用于上層應用開發和資源編排。雖然北向接口標準當前還很難達成共識,但是充分的開放性、便捷性、靈活性將是衡量接口優劣的重要標準,例如REST API就是上層業務應用的比較喜歡的接口形式。部分傳統的網絡設備廠商在其現有設備上提供了編程接口供業務應用直接調用,也可被視作是北向接口之一,其目的是在不改變其現有設備架構的條件下提升配置管理靈活性,應對開放協議的競爭。
控制器負責整個SDN網絡的集中化控制,對于把握全網置資源視圖、改善網絡資源交付都具有非常重要的作用。但控制能力的集中化,也意味著控制器局的安全性和性能成為全網的瓶頸;另外,單一的控制器也無法應對跨多個地域的SDN網絡問題,需要多個SDN控制器組成的分布式集群,以避免單一的控制器節點 在可靠性、擴展性、性能方面的問題。目前,用于多個控制器之間溝通和的東西向接口還沒定義標準,但專家表示,一些非常成熟的集群技術可以被運用到 SDN網絡中來解決上述難題。
SDN交換機及南向接口技術初探
SDN的核心理念之一就是將控制功能從網絡設備中剝離出來,通過中央控制器實現網絡可編程,從而實現資源的優化利用,提升網絡管控效率。
工作在基礎設施層的SDN交換機雖然不在需要對邏輯控制進行過多考慮,但作為SDN網絡中負責具體數據轉發處理的設備,為了完成高速數據轉發,還是 要遵循交換機工作原理。本質上看,傳統設備中無論是交換機還是路由器,其工作原理都是在收到數據包時,將數據包中的某些特征域與設備自身存儲的一些表項進行比對,當發現匹配時則按照表項的要求進行相應處理。SDN交換機也是類似的原理,但是與傳統設備存在差異的是,設備中的各個表項并非是由設備自身根據周邊的網絡環境在本地自行生成的,而是由遠程控制器統一下發的,因此各種復雜的控制邏輯(例如鏈路發現、地址學習、路由計算等等)都無需在SDN交換機中實現。
SDN交換機可以忽略控制邏輯的實現,全力關注基于表項的數據處理,而數據處理的性能也就成為評價SDN交換機優劣的zui關鍵指標,因此,很多高性能 轉發技術被提出,例如基于多張表以流水線方式進行高速處理的技術。另外,考慮到SDN和傳統網絡的混合工作問題,支持混合模式的SDN交換機也是當前設備 層技術研發的焦點。同時,隨著虛擬化技術的出現和完善,虛擬化環境將是SDN交換機的一個重要應用場景,因此SDN交換機可能會有硬件、軟件等多種形態。 例如,OVS(Open vSwitch,開放虛擬交換標準)交換機就是一款基于開源軟件技術實現的能夠集成在服務器虛擬化Hypervisor中的交換機,具備完善的交換機功 能,在虛擬化組網中起到了非常重要的作用。
SDN交換機只負責網絡高速轉發,保存的用于轉發決策的轉發表信息來自控制器,SDN交換機需要在遠程控制器的管控下工作,與之相關的設備狀態和控制指令都需要經由SDN的南向接口傳達,從而實現集中化統一管理。
在本項目中和設計中*采用基于SDN交換機構建整個網絡體系就可以滿足越發復雜的需求。同時靈活調度相關的網絡資源和重新構建各種網絡形態。同時SDN控制器就可以滿足整個模擬系統復雜的網絡方面的應用需求。
OpenFlow技術
伴隨SDN技術同步發展的還有Openflow協議。OpenFlow標準的名稱是OpenFlow Switch Specification,因此它本身是一份設備規范,其中規定了作為SDN基礎設施層轉發設備的OpenFlow交換機的基本組件和功能要求,以及用于由遠程控制器對交換機進行控制的OpenFlow協議。
當前zui的南向接口莫過于ONF倡導的OpenFlow協議。作為一個開放的協議,OpenFlow突破了傳統網絡設備廠商對設備能力接口的壁壘,經過多年的發展,在業界的共同努力下,當前已經日臻完善,能夠全面解決SDN網絡中面臨的各種問題。
當前,OpenFlow已經獲得了業界的廣泛支持,并成為了SDN領域的事實標準,例如OVS交換機就能夠支持OpenFlow協議。 OpenFlow解決了如何由控制層把SDN交換機所需的用于和數據流做匹配的表項下發給轉發層設備的問題,同時ONF還提出了OF-CONFIG協議, 用于對SDN交換機進行遠程配置和管理,其目標都是為了更好地對分散部署的SDN交換機實現集中化管控。
OpenFlow在SDN領域中的重要地位不言而喻,甚至大家一度產生過OpenFlow就等同于SDN的誤解。實際上,OpenFlow只是基于開放協議的SDN實現中可使用的南向接口之一,后續可能還會有很多的南向接口(例如ForCES、PCE-P等等)被陸續應用和推廣。但必須承認的 是,OpenFlow就是為SDN而生的,因此它與SDN的契合度zui高。相信在以ONF為領導的產業各方的大力推動下,它在未來的發展前景也將更加明朗。
OpenFlow交換機利用基于安全連接的OpenFlow協議與遠程控制器相通信。其中,流表(Flow Table)是OpenFlow交換機的關鍵組件,負責數據包的高速查詢和轉發。
流表概念
在OpenFlow v1.1和v1.2中,交換機中的流表項雖然還是由三部分組成,但是相應的名稱已經發生了變化。其中,v1.0中定義的包頭域(Header Fields)和動作(Actions)被分別更名為匹配域(Match Fields)和指令(Instructions)。之所以對包頭域進行改名,是因為流表項中的入端口等元組信息并不是屬于數據包頭的內容,因此將其改為匹配域將更為確切。而使用指令一詞替代動作,則主要是因為OpenFlow交換機中多流表的引入。在多流表場景中,雖然數據包在前*表中出現了匹配,但是交換機后續的操作仍舊可能是將其轉到下*表中繼續進行匹配,而并非像v1.0一樣馬上依照流表動作對數據包做具體操作。因此,新版本的OpenFlow將相關的動作統一更名為指令。OpenFlow v1.1和v1.2中定義的流表結構如圖1-2所示。
圖1-2 OpenFlow v1.1和v1.2的流表結構
而在OpenFlow v1.3之后,流表結構的內容又一次發生了變化,增加了優先級(Priority)、超時定時器(Timeouts)和Cookie等內容,從而將原來流表結構中的三部分擴展至六部分,如圖1-3所示。
圖1-3 OpenFlow v1.3的流表結構
如圖1-3所示,OpenFlow v1.3的流表結構的各個域的說明如下。
匹配域:對數據包匹配。包括入端口和數據包報頭,以及由前一個表的可選的元數據。
優先級:流表項的匹配次序。
計數器:更新匹配數據包的計數。
指令:修改動作集或流水線處理。
超時定時器:一個流的zui長有效時間或zui大空閑時間。
Cookie:由控制器選擇的不透明數據值。控制器用來過濾流統計數據、流改變和流刪除。但處理數據包時不能使用。
Openflow關鍵技術
OpenFlow提供了一個開放的協議,用戶可以通過該協議對不同的交換機中的流表進行控制。研究者可以通過選擇數據轉發通路以及它們需要怎樣的處理來輕松地控制數據流的走向。通過這種方式,研宄人員可以在網絡中嘗試創新型的路由協議、安全網絡模型、新型網絡服務、甚至可以用其替換現有的TCP/IP協議。一個完整的OpenFlow網絡是由一個OpenFlow控制器和一個或者多個OpenFlow交換機組成。
OpenFlow交換機是整個OpenFlow網絡的核心部件,主要管理數據層的轉發。OpenFlow交換機接收到數據包后,首先會在本地的流表上查找轉發端口,如果沒有匹配,則把數據包轉發給控制器,由控制層決定轉發端口。OpenFlow交換機主要由三個部分組成:交換機中的流表、與遠程控制器連接的安全通道、連接交換機與控制器之間通信使用的標準OpenFlow協議:
(1)交換機流表表中的每一個表項包含一個動作,Flow按表項匹配后執行相應的動作。
(2)安全通道連接交換機和控制器的接口,實現控制器和交換機之間網絡數據包以及交互指令的傳輸。
(3)OpenFlow協議描述控制器和交換機之間交互所用信息的標準,以及控制器和交換機接口標準。
OpenFlow交換機具體工作原理如下:
(1)開啟OpenFlow控制器,通過安全通道與OpenFlow交換機進行信息交互并完成連接。
(2) OpenFlow交換機中的流表中可以保存若干流表項,每個流表項由匹配域,計數器和動作組成。
(3)數據流進入OpenFlow交換機后根據流表項中的匹配域進行匹配,找到流表項的數據流修改計數值,然后OpenFlow交換機根據查詢的動作對數據包進行處理。
(4)若進入OpenFlow交換機的數據流沒有匹配成功,則通過安全通道發送到控制器,由控制器的決策模塊進行處理。
OpenFlow控制器負責控制OpenFlow交換機中的流表。包括對流表的添加、修改以及刪除等基本操作。這些基本操作功能的實現基于在控制器上開發的程序。實現控制器的硬件設備較為靈活,可以是一臺運行簡單應用的PC機,也可以通過虛擬機模擬完成。控制器上控制程序的功能設計使得OpenFlow網絡得以提供豐富的應用,體現OpenFlow網絡的靈活性和擴展性的特點。
OpenFlow網絡中交換機和控制器之間通信采用OpenFlow協議。OpenFlow協議規定交換機和控制器之間互通控制信息時,通過可靠傳輸的安全通道進行消息的傳輸。控制信息包括建立連接消息、配置交換機消息、讀取狀態消息、修改狀態消息、配置隊列消息等。控制器消息的主要功能是實現交換機通過安全通道向控制器發送數據包以及控制器向交換機下發命令等操作。
多云環境模擬
在網絡安全及執法專業中需要用到大量的實驗和網絡模擬試驗。如果需要構建一個完善而可靠的系統,必然非常困難而且無法實現。因為在網絡安全和執法中需要熟悉和了解的知識太多,而且非常復雜。我們希望通過虛擬化云技術和SDN網絡技術來進行靈活構建一套完善而可靠的網絡安全及執法的環境仿真和試驗環境。通過這樣的方式來滿足教學和實際的需求。
核心包括幾個方面。包括目前所有的網絡虛擬化化環境(KVM系列、Vmware、Xen、微軟Hyper-V等)。滿足所有的網絡安全的環境需求。所有的交換機全部采用高密度的SDN交換機。接口全部是萬兆光纖。SDN交換機之間采用40G直連。
SDN系統與云系統的連接示意圖如下:
多云系統整體連接架構圖如下:
系統中包含目前所有的虛擬化環境。這樣可以滿足實際教育的需求。其中Vmware和微軟Azure均為商業化產品。Xen及KVM系列為開源類產品。通過在各種虛擬化環境的系統來滿足各種各樣的環境模擬需求。涉及網絡方面的可以通過SDN控制器、OpenFlow配置和其他軟件配合完成。
典型案例DDOS攻擊清洗。我們采用以下的SDN架構就可以滿足這個實驗需求。
網絡安全及執法試驗環境模擬,通過虛擬化平臺把各種平臺和環境做成標準模板庫。方便共享和調用。可以包括微軟Windows Server系列、Linux系列、FreeBSD系列、Solaris系列、Mac OS系列等均可以建立成標準的環境,然后生成標準模板共所有的用戶調用、整合和應用。
系統鏡像
可以展示當前的鏡像信息,包括:鏡像名稱、操作系統類型、操作系統版本、操作系統架構、鏡像可用狀態、鏡像大小、創建時間
可以查看共有鏡像和私有鏡像
通過建立統一的安全環境鏡像(公有鏡像和私有鏡像)。公有鏡像為統一的環境和結構。私有鏡像為特殊的或的系統來構建。通過鏡像環境和SDN網絡配合,就可以滿足我們的設計要求。涉及網絡攻擊的試驗,就需要在SDN上配置封鎖域和做流量牽引,以保證系統和網絡安全。
總結
以上技術的探討為一種初步的經驗總結。由于網絡安全及執法需要涉及的技術和靈活性是無法估量的。采用傳統的架構和方式是無法滿足需求的。我們希望在此拋磚引玉和同行共同探討相關技術和完善架構。目前采用多云架構和SDN網絡來構建是能滿足目前已知的網絡安全及執法教學需求。同時希望大家共同研究進步。