軟件定義網(wǎng)絡(luò) (SDN) 是一種網(wǎng)絡(luò)方法,允許管理員通過抽象更低級功能來管理網(wǎng)絡(luò)服務(wù)。SDN 將控制層面(用于確定流量發(fā)送到何處)與 數(shù)據(jù)層面(將流量轉(zhuǎn)發(fā)到所選的目的地)分離。
本文將介紹如何組合 SDN 與云基礎(chǔ)架構(gòu)服務(wù),以便優(yōu)化 IaaS;我將重點介紹以下區(qū)域:
確保 IaaS 互操作性充分利用 IaaS 云服務(wù)模型通過 OpenStack Foundation 和 OpenDayLight 項目來滿足用戶、開發(fā)人員、提供商和維護人員的期望提供富有成本效益的減輕風(fēng)險的方式,以便優(yōu)化 IaaSIaaS 互操作性
網(wǎng)絡(luò)管理員可以使用帶網(wǎng)絡(luò)功能虛擬化 (Network Functions Virtualization, NFV) 的 SDN 架構(gòu)來實現(xiàn) IaaS 互操作性的目標(biāo)。NFV 架構(gòu)概念要求使用虛擬化技術(shù),將一整類網(wǎng)絡(luò)節(jié)點功能虛擬化為構(gòu)建塊,然后,后者可以相互連接來創(chuàng)建通信服務(wù)。一種虛擬化的網(wǎng)絡(luò)功能可能包含一個或多個虛擬機,它們可在云基礎(chǔ)架構(gòu)上運行不同的軟件和流程。
SDN 架構(gòu)在一個中央控制臺中為管理員提供了從 IaaS 中的某個網(wǎng)絡(luò)設(shè)備傳輸?shù)搅硪粋€設(shè)備的流量的全局視圖;在必要的時候,它還詳細描述了在轉(zhuǎn)移到兼容的 IaaS 之前應(yīng)如何優(yōu)化流量。
SDN 架構(gòu)的核心是控制器,控制器是一個開源應(yīng)用程序,用于將控制功能與專用網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)功能相分離。如果某個網(wǎng)絡(luò)設(shè)備遇到大量的流量,那么管理員可以使用控制器告訴網(wǎng)絡(luò)設(shè)備將這些流量包重定向或重新發(fā)送到何處。管理員可以根據(jù)需要添加 IaaS VM:例如將大量數(shù)據(jù)從性能低下的網(wǎng)絡(luò)設(shè)備轉(zhuǎn)移到更健康的網(wǎng)絡(luò)設(shè)備。
NFV 將網(wǎng)絡(luò)功能(比如網(wǎng)絡(luò)地址轉(zhuǎn)換 (NAT)、防火墻、入侵檢測、域名服務(wù) (DNS) 和緩存)與專用硬件設(shè)備相分離,以便這些功能可以運行軟件中的控件。NFV 整合了必要的網(wǎng)絡(luò)組件,以便為全面虛擬化的網(wǎng)絡(luò)基礎(chǔ)架構(gòu)提供支持。
必須正確配置 SDN 和 NFV 控制器,才能優(yōu)化網(wǎng)絡(luò)流量,或者讓管理員對其執(zhí)行其他更改。不當(dāng)?shù)呐渲每赡軐?dǎo)致 IaaS 宕機或受到攻擊。正確的配置可以通過 OpenStack 和 OpenDayLight 等開源工具來完成。
為了了解有多少網(wǎng)絡(luò)專家喜歡商業(yè)提供商提供的適用于其 SDN 解決方案的開放源碼,OpenDayLight 進行了一項調(diào)查……該報告調(diào)查了北美企業(yè)大中型組織中的 600 多位 IT 決策者和技術(shù)人員,其中 300 位來自企業(yè),300 位來自服務(wù)提供商。該調(diào)查顯示,95% 的網(wǎng)絡(luò)專家希望其 SDN 解決方案是開放源碼的,但其中 76% 的更喜歡來自商業(yè)提供商的開源解決方案。(“SDN、NFV 開源報告:運營商的視角。”)
通過選擇來自商業(yè)提供商的開源解決方案,可以使用 SDN 和 NFV 控制器來優(yōu)化 IaaS。
IaaS 云服務(wù)模型
為了更好地了解如何使用 SDN 執(zhí)行 IaaS 優(yōu)化,您需要了解 IaaS 云服務(wù)模型的主要角色在控制 IaaS 云上的對比情況。重要參與者包括:
IaaS 云服務(wù)用戶PaaS/IaaS 云服務(wù)開發(fā)人員IaaS 云服務(wù)提供商SDN 管理員IaaS 云服務(wù)用戶
我們看看 IaaS 云服務(wù)用戶擁有的控制范圍。這個分組包括 IaaS 用戶和 SaaS 用戶。
IaaS 用戶(通常是網(wǎng)絡(luò)或基礎(chǔ)架構(gòu)專家):
在虛擬機級別控制操作系統(tǒng)、網(wǎng)絡(luò)設(shè)備和部署的應(yīng)用程序。基礎(chǔ)架構(gòu)專家可擴展或精減虛擬服務(wù)或存儲區(qū)域塊。他或她也可以是使用控制器來優(yōu)化設(shè)備間的流量的 SDN 管理員。相較而言,SaaS 用戶(無論他或她是個人、企業(yè)還是政府機構(gòu))擁有的控制權(quán)僅包括訪問 SaaS 應(yīng)用程序;SDN 管理員對流量的控制是對他或她透明的。SaaS 用戶也可以是 SaaS 提供商,負責(zé)滿足用戶對訪問控制、系統(tǒng)、響應(yīng)時間(吞吐量)和查詢響應(yīng)的期望。
PaaS/IaaS 云服務(wù)開發(fā)人員
PaaS 和 IaaS 云服務(wù)開發(fā)人員擁有多少控制權(quán)?
PaaS 開發(fā)人員控制和保護一個完整業(yè)務(wù)生命周期中的所有應(yīng)用程序。開發(fā)人員可以構(gòu)建、部署和運行自定義倉庫管理應(yīng)用程序。作為業(yè)務(wù)生命周期的一部分,開發(fā)人員會使用電子表格、文字處理器、賬單、薪資處理功能和發(fā)票。PaaS 開發(fā)人員需要確保應(yīng)用程序在 SDN 管理員能夠控制的網(wǎng)絡(luò)中正常運行。
IaaS 開發(fā)人員控制一個 IaaS 公共或私有云的生命周期開發(fā),這個云可以與不同服務(wù)提供商所托管的另一個 IaaS 云進行互操作。IaaS 開發(fā)人員需要確保 IaaS 基于 OpenStack。IaaS 開發(fā)人員與 PaaS 開發(fā)人員合作在測試環(huán)境中的 IaaS 或 PaaS 上運行 SaaS 應(yīng)用程序。
IaaS 云服務(wù)提供商
最低限度上,IaaS 提供商控制虛擬機底層的傳統(tǒng)計算資源的基礎(chǔ)架構(gòu)。提供商設(shè)置用戶、資源和數(shù)據(jù)請求閾值水平,允許就閾值水平的更改與 PaaS 開發(fā)人員進行協(xié)商。提供商也可以是控制網(wǎng)絡(luò)設(shè)備之間的流量的 SDN 管理員。
SDN 管理員
在 IaaS 云中,管理員能夠控制與數(shù)據(jù)層面分離的 SDN 功能,以及與專用硬件設(shè)備分離的 NFV 功能。管理員需要與 IaaS 云服務(wù)模型的角色協(xié)作來優(yōu)化開源 IaaS。
滿足期望:OpenStack Foundation
潛在的和當(dāng)前的云服務(wù)客戶想要一種開放云服務(wù)標(biāo)準(zhǔn),以便允許 IaaS 與另一個提供商托管的另一個 IaaS 進行互操作。OpenStack 會主動采取措施來滿足他們的期望:OpenStack Foundation Project 允許開發(fā)人員和云計算技術(shù)人員協(xié)作,為 IaaS 公共和私有云生成開源云計算平臺。
我們更詳細地看看 OpenStack Foundation 有什么用,對 OpenStack 執(zhí)行了哪些基礎(chǔ)工作來標(biāo)準(zhǔn)化 IaaS。然后我將討論模塊架構(gòu)組件、共享服務(wù)以及 Neuron 和 SDN。
Foundation 的工作
OpenStack 是一個 IaaS 云操作系統(tǒng),可以控制整個數(shù)據(jù)中心中龐大的計算、存儲和網(wǎng)絡(luò)資源池,以及共享服務(wù)。所有這些都通過一個儀表板來管理,這使得管理員能夠進行有效控制,同時使得用戶和開發(fā)人員能夠通過 Web 界面來配備資源。
OpenStack Foundation 負責(zé)監(jiān)督 OpenStack 項目,該項目集成了來自 NASA 的 Nebula 平臺的代碼與 Rackspace 的平臺。針對此項目的代碼更改是由 2011 年從 Rackspace 分離出的 OpenStack Foundation 的成員貢獻的。全球的開發(fā)人員和云計算技術(shù)人員協(xié)作為公共云和私有云生成了開源的云計算平臺。
2012 年 4 月,IBM 和 Red Hat 同意作為高級成員加入 Foundation,這意味著它們在接下來的 3 年內(nèi)每年都會捐贈 500,000 美元。其他計劃作為高級成員加入的公司包括 AT&T、Canonical、HP、Nebula、Rackspace 和 SU SE。
模塊化架構(gòu)組件
作為標(biāo)準(zhǔn)化 IaaS 的工作的一部分,OpenStack 擁有一種包含 3 個組件的模塊化架構(gòu)。每個組件都有一個代號。
計算 (Nova):為自動配備的虛擬計算實例的大規(guī)模部署提供開源軟件和標(biāo)準(zhǔn)。對象存儲 (Swift):為靜態(tài)對象的大規(guī)模、冗余的存儲提供開源軟件和標(biāo)準(zhǔn)。網(wǎng)絡(luò) (Neuron):在其他 OpenStack 服務(wù)(比如 Nova)管理的網(wǎng)絡(luò)接口設(shè)備 (vNIC) 之間提供 “網(wǎng)絡(luò)即服務(wù)”。共享服務(wù)
OpenStack 擁有多個共享服務(wù),涵蓋計算、存儲和網(wǎng)絡(luò) 3 個分支。這些服務(wù)包括:
Identity 跨所有 OpenStack 項目提供統(tǒng)一的身份驗證Image 提供虛擬磁盤鏡像的交付服務(wù)Telemetry 提供跨某個 OpenStack 云中部署的服務(wù)的聚合的使用和性能數(shù)據(jù)Orchestration 提供了一個模板驅(qū)動的引擎,允許應(yīng)用程序開發(fā)人員描述并自動化基礎(chǔ)架構(gòu)的部署Dashboard 為 OpenStack 服務(wù)(包括 Nova 和 Swift)提供一個基于 Web 的用戶界面。它們都將 OpenStack 組件彼此集成。
Neuron 和 SDN
Neuron(網(wǎng)絡(luò)服務(wù)的代號)可用于使用 SDN 優(yōu)化 IaaS。通過利用 OpenFlow 等 SDN 技術(shù),網(wǎng)絡(luò)管理員可以實現(xiàn)較高的多租戶水平,以及一個網(wǎng)絡(luò)設(shè)備到另一個設(shè)備的大規(guī)模數(shù)據(jù)移動。(OpenFlow 是一個開源標(biāo)準(zhǔn)、通信協(xié)議,提供了對網(wǎng)絡(luò)交換機或路由器的轉(zhuǎn)發(fā)平面的網(wǎng)絡(luò)訪問,使得遠程控制器可以通過交換機網(wǎng)絡(luò)確定網(wǎng)絡(luò)包的路徑。)
用戶可以創(chuàng)建自己的網(wǎng)絡(luò),控制流量,通過 SDN 技術(shù)將服務(wù)器和設(shè)備連接到一個或多個網(wǎng)絡(luò)。
Neuron 有一個擴展框架,支持部署和管理其他網(wǎng)絡(luò)服務(wù),比如入侵檢測系統(tǒng) (IDS)、負載平衡、防火墻和虛擬專用網(wǎng) (VPN)。
滿足期望:OpenDayLight
使用 OpenFlow 標(biāo)準(zhǔn)的帶 SDN 的 Neuron 還不夠。更適合用來優(yōu)化 IaaS 的是 OpenDayLight,一個 Linux Foundation 項目。OpenDayLight 是一個開源框架,它利用了 SDN 和 NFV 控制器,管理員可以將它與 OpenStack Neuron 結(jié)合使用,幫助用戶采取主動措施來優(yōu)化 IaaS。
我們會更詳細地查看 OpenDayLight 有什么用,以及它是如何標(biāo)準(zhǔn)化 IaaS 的。
SDN 和 NFV 控制器包含在其自己的 Java 虛擬機 (JVM) 中。這意味著 OpenDayLight 不是僅適用于 Linux ;它是一個開放平臺,為了在支持 Java 代碼的任何硬件和操作系統(tǒng)上使用而設(shè)計。
OpenDayLight 由 18 個公司共同創(chuàng)立,這些公司包括 Cisco、Dell、Juniper、IBM 和 Intel;該項目現(xiàn)在已有 36 個成員。150 多位開發(fā)人員為 Hydrogen(OpenDayLight 的第一版)做出了積極貢獻。
Hydrogen
Hydrogen 可供企業(yè)、服務(wù)提供商、設(shè)備提供商和學(xué)術(shù)機構(gòu)使用。它在一個包中包含 3 個版本:
基礎(chǔ)版 在筆記本電腦上運行,以便連接到某個提供了綜合網(wǎng)絡(luò)的測試工具。虛擬化版 添加了數(shù)據(jù)中心虛擬化技術(shù)。它構(gòu)建于基礎(chǔ)版之上。服務(wù)提供商版 可幫助服務(wù)提供商和運營商開發(fā)一個遷移到 SDN 和 NFV 及支持流量工程的計劃。它擁有 SNMP 協(xié)議支持和 API 來管理遺留網(wǎng)絡(luò)設(shè)備。網(wǎng)絡(luò)功能虛擬化
前面已經(jīng)解釋過,NFV 將網(wǎng)絡(luò)功能與專用的硬件設(shè)備分離,所以這些功能都可以在軟件中運行。NFV 旨在整合需要的網(wǎng)絡(luò)組件,以便支持一個完全虛擬化的基礎(chǔ)架構(gòu),包括虛擬服務(wù)器、存儲,甚至其他網(wǎng)絡(luò)。它利用在大容量服務(wù)和存儲硬件上運行的標(biāo)準(zhǔn) IT 虛擬化技術(shù)來虛擬化網(wǎng)絡(luò)功能。
我們將查看如何將 NFV 用于 SDN。在 OpenDayLight 的總體視圖上,SDN 分 3 層來描述。
網(wǎng)絡(luò)應(yīng)用程序和編制:最頂層包含控制和監(jiān)視網(wǎng)絡(luò)行為的業(yè)務(wù)和網(wǎng)絡(luò)邏輯應(yīng)用程序。它們包括對網(wǎng)絡(luò)流量進行全局控制所需的編制應(yīng)用程序??刂破髌脚_:中間層位于 SDN 的向北的接口與向南的接口之間。向北的接口為應(yīng)用程序?qū)犹峁┝艘唤M常見 API。它連接到向南的接口,實現(xiàn)了一個或多個協(xié)議(比如 OpenFlow)來控制網(wǎng)絡(luò)內(nèi)的物理硬件。物理和虛擬網(wǎng)絡(luò)設(shè)備:底層包括物理和虛擬設(shè)備、交換機、路由器等,它們組成了網(wǎng)絡(luò)中所有端點之間的連接。控制器風(fēng)險減輕
SDN 存在一些漏洞(比如 SDN 控制器劫持),這些漏洞可能被攻擊者利用。為了減輕控制器風(fēng)險,您需要執(zhí)行以下 4 步。
識別資產(chǎn)。識別漏洞和威脅。評估風(fēng)險。加固安全措施。識別資產(chǎn)
在風(fēng)險減輕流程中,首先要識別與控制器有關(guān)聯(lián)的資產(chǎn)。確定這些資產(chǎn)應(yīng)屬于的類別;以下是一些示例:
硬件:網(wǎng)絡(luò)設(shè)備和交換機,以及 SDN 管理員的控制臺安全形:加密機制、安全測試工具和防火墻管理:OpenStack 和 OpenDayLight 指南文檔:SDN 管理員的聯(lián)系點、培訓(xùn)手冊、網(wǎng)絡(luò)標(biāo)準(zhǔn)、災(zāi)難恢復(fù)計劃和服務(wù)水平協(xié)議識別漏洞和威脅
攻擊者并不只是可以利用控制器漏洞的威脅方。另一種可能的威脅方包括 SDN 管理員,他們可能以不正確的方式配置了控制器(和防火墻)。
控制器和防火墻的不當(dāng)配置可能導(dǎo)致 IaaS 宕機和受到攻擊。如果沒有從一個區(qū)域到另一個區(qū)域的 IaaS 故障轉(zhuǎn)移機制,那么用戶有可能會投靠其他 IaaS 托管服務(wù)提供商。
評估風(fēng)險
用戶希望確保具有連續(xù)的 IaaS 互操作性和可用性,而且更多流量的需求可通過 IaaS 優(yōu)化來滿足。評估 IaaS 不可用性風(fēng)險的一種方式是定量評估。一些示例包括:
IaaS 將變得無用的估計頻率由于不當(dāng)?shù)目刂破髋渲枚鴮?dǎo)致網(wǎng)絡(luò)攻擊的估計頻率未滿足服務(wù)水平協(xié)議中規(guī)定的性能保證的估計頻率未成功故障轉(zhuǎn)移到網(wǎng)絡(luò)路由器和交換機的估計頻率加固安全措施
富有成本效益的安全措施是降低控制器風(fēng)險的一種途徑。SDN 管理員應(yīng)確保:
控制器已正確配置并受到保護,至少要審核誰訪問了它,加密流量并激活日志選項。已部署了網(wǎng)絡(luò)服務(wù)來阻止網(wǎng)絡(luò)攻擊。它們包含入侵檢測系統(tǒng) (IDS)、負載平衡器和防火墻。已部署了故障轉(zhuǎn)移機制來快速從不健康的網(wǎng)絡(luò)路由器和交換機故障轉(zhuǎn)移到健康的設(shè)備。SDN/NFV 管理員擁有適當(dāng)?shù)募寄芎椭噶顏砉芾碓撓到y(tǒng)。結(jié)束語
在計劃使用 SDN 優(yōu)化 IaaS 的過程中,需要考慮解決 IaaS 互操作性問題和設(shè)置 IaaS 云服務(wù)模型的最佳實踐。采取主動措施,將基于 OpenStack 的 IaaS 與 OpenDayLight 結(jié)合使用來優(yōu)化 IaaS,這應(yīng)該是計劃的一部分。確保制定了控制器風(fēng)險減輕計劃。您需要構(gòu)建一個 IaaS 云服務(wù)角色、經(jīng)理、業(yè)務(wù)分析師和系統(tǒng)工程師團隊,使得他們能夠更輕松地執(zhí)行使用 SDN 優(yōu)化 IaaS 的作業(yè)。