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