SDN交換機固然可以表現出像防火墻一樣的功能,但其可能不會是一個真正的替代品
摘要:許多人預期,企業組織在不久的將來對于軟件定義網絡(SDN)的采用可能會超過采用服務供應商或多租戶數據中心及云服務提供商的技術。現在,我們已然看到越來越多的企業使用網絡功能虛擬化(NFV),而一些企業也已經開始SDN試點項目。隨著企業開始考慮如何在他們的數據中心環境利用SDN技術,他們也在開始考慮SDN可以提供怎樣的新的安全功能。SDN交換機可以丟棄不被控制器允許的流量包。本文中,我們將探討關于SDN交換機是否可以表現得像一個傳統的防火墻的話題。
軟件定義網絡從低層數據包解耦,控制功能的轉發幀智能地決定應用程序的流量應如何傳輸這一概念發展演化而來??刂泼姘鍙霓D發面板的分離使得網絡為數據包處理提供了創新的方法,并為建立網絡虛擬化提供了新的范式。SDN開辟了整個網絡設計的新世界和創造性的網絡方法。SDN也引發我們重新思考如何在網絡上執行安全政策。
在OpenFlow的SDN模型中,網絡交換機內的流量是通過OpenFlow控制器安置的。如果流量是不存在的(Table-miss項),然后切換到控制器尋求幫助,以確定數據包應該如何轉發。OpenFlow技術規范規定,如果Table-miss項的流量入口在交換機中不存在,就沒有任何規則將數據包發送到控制器,然后數據包就會被交換器丟棄。如果交換機將數據包發送到控制器,然后控制器處理數據包的消息,進而決定數據包的命運。然后控制器確定數據包是否應被轉發或丟棄。這聽起來像是SDN交換機執行的是類似防火墻的功能,執行的是將不包括在流量表中的流量數據包丟棄的標準的安全政策。這可以被認為是類似于默認的“錯誤保護狀態”(Fail-Safe Stance) ,其也在由Elizabeth D. Zwicky、Simon Cooper和D. Brent Chapman聯合編寫的《建立互聯網防火墻》一書中提到。乍一看,這聽起來像一種非常好的新的安全擔保形式,使SDN交換機每個端口看起來就像一個防火墻。
許多SDN交換機運行起來酷似一個標準的以太網交換機,以太網幀的所有端口的洪水般的數據流量發往廣播,多播或未知的MAC地址。大多數的SDN交換機ARP流量通常就是像一個典型的基于硬件的以太網交換機。在大多數情況下,一個SDN交換機的默認行為就像一個以太網橋,或學習型交換機。然而,讓一個SDN交換機成為一個明確的轉發模式,只有被允許的流量或由控制器配置/推送的流量將被允許發送。
如果環境中的每一個以太網交換機都能夠像傳統的防火墻,那么,這將改變在網絡環境下實現安全策略的方式。想象一下,如果每個以太網交換機是多端口的防火墻,則防火墻策略可以在網絡上通過每次進入交換機端口和交換機之間的每一條鏈路上實施。這樣,就對每一臺服務器,臺式機,每一條鏈路都設置了防火墻,而防火墻策略會通過一個控制器來實施,而控制器會對當前的應用程序流量現狀有一個全局觀并讓獲得允許的流量進行有效傳輸。在整個環境執行安全政策意味著安全邊界的完整侵蝕。太多安全政策的實施及其手動執行可能會為您企業的安全管理帶來噩夢。然而,利用控制器架構,該安全政策將只需創建一次,然后即可推廣到每臺網絡設備執行了。
網絡切分(network slicing)是SDN中非常常見的使用案例之一。一個網絡在邏輯上可以劃分為分隔的網絡,而這些網絡是覆蓋在同一物理網絡硬件上的。網絡切分在大學里非常流行一種,因為大學里,他們希望將不同的部門分開(包括招生部門、財務部門、宿舍、計算機科學系等),以便使得各自成為一個自成一體的邏輯網絡區域。SDN可以分隔網絡,類似于虛擬路由和轉發(VRF)的情況,可用于分隔第3層轉發。這也可以通過在控制面板和數據面板之間添加一個切片層來實現,從而使安全策略得以能夠針對特定的切片。在“流空間(Flowspace)”強制執行切片之間的強隔離意味著一個切片的行動不會影響另一片。想要了解更多信息,您可以參考Flowvisor和流空間防火墻(FSFW: Flowspace firewall)。這方面的一個例子就是思科的可擴展網絡控制器(XNC)及網絡分層應用程序。在這些方面,SDN可以提供“多類型防御體系”的概念,而這一概念在《構建網絡防火墻》一書中也被提及。
使用SDN交換機作為防火墻的可行性的關鍵概念在于,其將維持應用程序流量的狀態。訪問控制列表(ACL)是無狀態的,當連接開始或結束時并沒有意識。即使有老式的思科ACL CLI參數,ACL也只是略顯“帶狀態功能”。訪問控制列表通常并不關注任何三向TCP握手(SYN、SYN-ACK和 ACK),也不關注FIN/ACK會話終止。另一方面,狀態防火墻能夠觀察會話的建立和關閉過程,定向使用狀態檢測適用的政策。
那么,現代的SDN產品是否能夠通過安全的實施部署,使其有可能運行起來像傳統的防火墻呢?當涉及到思科的以應用程序為中心的基礎設施(ACI)時,Nexus 9000交換機就能夠以一個無狀態的方式運行。應用程序網絡配置文件(ANP)在應用程序策略基礎設施控制器(APIC)中配置,并以無狀態的方式被部署到交換機的ACI架構中。因此,一個ACI系統將不能夠作為標準狀態防火墻在同一安全級別上操作。這就是為什么ACI允許第4層到第7層的服務圖形進行配置,并集成整合到ACI架構的原因了。
當涉及到Open vSwitch(OVS)時,其僅支持無狀態匹配的政策。配置OVS政策以匹配TCP標簽或使用一種 “學習”方法配置規則,以建立流量回歸方法。然而,這些方法中沒有一種是像一個傳統狀態檢測防火墻那樣的有狀態的。Open vSwitch社區正在試圖在這方面進行努力,以便讓連接跟蹤(Conntrack)允許OVS通知Netfilter(如iptables)連接跟蹤,并保持現有會話狀態表。
然而,Project Floodlight可以配置ACL,這運行起來也像一個無狀態防火墻。Floodlight有一個防火墻應用程序模塊,通過檢查數據包執行ACL規則。這以一種反應方式,讓第一個數據包為流量創建實例,基于優先級排序的決策規則集允許或拒絕。規則允許有重疊的流空間,但優先創建第一個匹配規則的行動,自上而下的操作政策。
VMware NSX能夠在SDN環境配置安全策略。NSX的vSphere支持邏輯交換/路由、防火墻、負載均衡、和VPN功能。防火墻規則在vNIC強制執行,而當主機遷移時,防火墻策略與虛擬機相關聯,其策略也隨之移動。NSX分布式防火墻是一種可加載內核模塊,提供有狀態的L2/L3/L4雙協議的防火墻,可以執行反欺騙。VMware NSX的防火墻策略運作起來就像一個有自反ACL的思科路由器。當涉及到等價多路徑(ECMP)設計或高可用性(HA)時, NSX邊緣服務網關的防火墻功能以無狀態方式運行。換句話說,有狀態的防火墻和負載均衡或NAT不支持邊緣服務網關和高可用性或ECMP拓撲。
還有人正在嘗試創建SDN系統以提供強大的安全策略。這方面的研究項目有諸如FlowGuard和一篇題為《基于OpenFlow原型的面向狀態的SDN硬件防火墻》的文章,由北達科他大學的雅各伯·柯林斯所撰寫,表明了在SDN網絡設備建立獲得狀態功能的潛在可能性。
從上述的分析中,我們可以得出這樣的結論:從控制器獲取轉發政策的SDN交換機不一定有狀態。因此,這些SDN功能的交換機無法提供作為一個狀態防火墻同樣水平的保護。詢問供應商關于他們SDN解決方案的防火墻功能的有狀態細節,以及了解他們是如何運作的,是非常重要的。因為許多這些SDN系統可以以無狀態的方式操作,如果您企業需要有狀態防火墻的保護,那么您必須使用SDN政策引導流量與服務鏈的狀態包,檢測防火墻的網絡功能虛擬化(NFV)。