SDN的核心構(gòu)建模塊有哪些?
來源:cnw.com.cn
網(wǎng)界網(wǎng) 波波編譯
摘要: 為了了解軟件定義網(wǎng)絡(luò)(SDN),你可能會(huì)碰到很多跟此項(xiàng)技術(shù)相關(guān)的術(shù)語(yǔ)。其中有些術(shù)語(yǔ)是SDN獨(dú)有的,而其他一些術(shù)語(yǔ)則并非SDN專有,但經(jīng)常會(huì)用來描述SDN設(shè)計(jì)。重點(diǎn)來了解一下和SDN相關(guān)的三個(gè)基本技術(shù)范疇:控制器、交換網(wǎng)絡(luò)和疊加網(wǎng)...
Abstract:
Key words :
為了了解軟件定義網(wǎng)絡(luò)(SDN),你可能會(huì)碰到很多跟此項(xiàng)技術(shù)相關(guān)的術(shù)語(yǔ)。其中有些術(shù)語(yǔ)是SDN獨(dú)有的,而其他一些術(shù)語(yǔ)則并非SDN專有,但經(jīng)常會(huì)用來描述SDN設(shè)計(jì)。
了解這些術(shù)語(yǔ)及其語(yǔ)義環(huán)境是很有幫助的。下面我們重點(diǎn)來了解一下和SDN相關(guān)的三個(gè)基本技術(shù)范疇:控制器、交換網(wǎng)絡(luò)和疊加網(wǎng)絡(luò)。
控制器
SDN的一個(gè)重要概念就是被稱為控制器的設(shè)備,該設(shè)備與某個(gè)域中所有的網(wǎng)絡(luò)設(shè)備會(huì)話,獲悉網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),并從一個(gè)無(wú)所不知的中心點(diǎn)上對(duì)網(wǎng)絡(luò)進(jìn)行編程??梢哉f,SDN控制器是把網(wǎng)絡(luò)編程模式從分布模式(相互通信的網(wǎng)絡(luò)設(shè)備決定轉(zhuǎn)發(fā)路徑)轉(zhuǎn)變成了集中模式。
網(wǎng)絡(luò)的集中編程是控制器給業(yè)務(wù)帶來的重大價(jià)值。從概念上看,控制器可用于給某個(gè)網(wǎng)絡(luò)全面部署業(yè)務(wù)策略,而與網(wǎng)絡(luò)中的設(shè)備無(wú)關(guān)。控制器的行為很像是一個(gè)網(wǎng)絡(luò)中間件層,它將底層的物理網(wǎng)絡(luò)組件如交換機(jī)、路由器、防火墻和負(fù)載均衡設(shè)備等都做了抽象。
用一臺(tái)SDN控制器對(duì)網(wǎng)絡(luò)進(jìn)行編程,網(wǎng)絡(luò)運(yùn)營(yíng)者就不必再用傳統(tǒng)方法(比如說命令行界面)對(duì)個(gè)別的網(wǎng)絡(luò)設(shè)備進(jìn)行編程了。此外,還可根據(jù)成本或者安全策略需求創(chuàng)建專有的網(wǎng)絡(luò)轉(zhuǎn)發(fā)范式。
控制器是通過軟件完成網(wǎng)絡(luò)編程的,也正因此,SDN才具有了極大的靈活性??刂破骷仁窃撥浖倪\(yùn)行平臺(tái),也是該軟件的一個(gè)通信網(wǎng)關(guān)。大多數(shù)控制器架構(gòu)都是模塊化的,允許控制器利用多種不同的方法與各種不同的網(wǎng)絡(luò)設(shè)備進(jìn)行通信。
將SDN控制器視為中間件,也就意味著其通信有兩個(gè)方向。迄今為止大多數(shù)的討論都是圍繞南向通信的。也就是說,控制器對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行編程,并從這些設(shè)備接收數(shù)據(jù),這就是南向通信。南向通信的一個(gè)例子就是控制器利用OpenFlow對(duì)網(wǎng)絡(luò)交換機(jī)的轉(zhuǎn)發(fā)表進(jìn)行編程。另一個(gè)方向則是北向通信。希望對(duì)網(wǎng)絡(luò)進(jìn)行編程的各個(gè)應(yīng)用與控制器之間的通信稱之為北向的。北向通信的一個(gè)例子就是類似VMware的vCloud Director之類的應(yīng)用通過控制器發(fā)出網(wǎng)絡(luò)配置服務(wù)請(qǐng)求。
交換機(jī)
說到SDN時(shí),可能很多人談到的設(shè)備就是交換機(jī),尤其是以太網(wǎng)交換機(jī)。以太網(wǎng)交換機(jī)的速度和密度一直在增加,可以為數(shù)據(jù)中心的主機(jī)、刀片中心和以太網(wǎng)存儲(chǔ)提供上行鏈路。服務(wù)器虛擬化的到來,hypervisor軟件交換機(jī)的地位越來越重要,它能夠探測(cè)到虛擬服務(wù)器和虛擬網(wǎng)卡,并可將出入hypervisor的流量匯聚起來,發(fā)送給物理網(wǎng)絡(luò)。
無(wú)論是硬件還是軟件交換機(jī)在SDN中都發(fā)揮著重要作用,首先是交換機(jī)的轉(zhuǎn)發(fā)表可以由控制器進(jìn)行編程控制。再考慮到軟交換機(jī)一般駐留在網(wǎng)絡(luò)邊緣,所以“智能的軟邊緣”概念已經(jīng)出現(xiàn)。
支持智能軟邊緣的網(wǎng)絡(luò)設(shè)計(jì)者們感覺,軟件交換機(jī)在hypervisor上運(yùn)行是個(gè)很理想的場(chǎng)所,因?yàn)檫@里可以安裝豐富的網(wǎng)絡(luò)功能,而讓物理硬件交換機(jī)在一個(gè)相對(duì)簡(jiǎn)單的配置環(huán)境中運(yùn)行。在智能軟邊緣的SDN設(shè)計(jì)中,控制器可通過軟交換機(jī)進(jìn)行轉(zhuǎn)發(fā)、QoS和安全策略。
例如軟交換機(jī)可以有接入列表、受速率限制的QoS參數(shù)和流量?jī)?yōu)先級(jí),以及應(yīng)用于虛擬端口的智能轉(zhuǎn)發(fā)。當(dāng)網(wǎng)絡(luò)數(shù)據(jù)離開hypervisor之時(shí),已經(jīng)經(jīng)過了安全合規(guī)檢測(cè)、速率整形和封裝。將所有這些功能放置在網(wǎng)絡(luò)邊緣,可以讓核心硬件交換機(jī)只去做快速的流量傳輸。
并非所有的網(wǎng)絡(luò)都允許智能的軟邊緣設(shè)計(jì),也并非所有可行的SDN用例會(huì)用上軟交換機(jī)。對(duì)SDN來說,硬件交換機(jī)依然會(huì)在一些諸如端到端業(yè)務(wù)策略的部署、流量控制和安全執(zhí)法等任務(wù)上發(fā)揮作用。此外,仍然有一定量的基本配置會(huì)在硬件交換機(jī)上完成,而無(wú)論邊緣網(wǎng)絡(luò)有多么智能。
控制器對(duì)硬件和軟件交換機(jī)轉(zhuǎn)發(fā)行為進(jìn)行編程控制所使用的主要的南向協(xié)議就是OpenFlow。OpenFlow(OF)協(xié)議的標(biāo)準(zhǔn)正在由開放網(wǎng)絡(luò)基金會(huì)(ONF)快速地推進(jìn)之中。
ONF是一個(gè)主要由網(wǎng)絡(luò)廠商和服務(wù)提供商會(huì)員組成的機(jī)構(gòu),關(guān)起門來運(yùn)作。該基金會(huì)的OpenFlow規(guī)范目前已發(fā)布了PF 1.0,在生產(chǎn)環(huán)境中經(jīng)常會(huì)看到;下一步要發(fā)布的OF 1.3,將主要面向大多數(shù)交換機(jī)廠商。OF 1.4目前正在制定當(dāng)中。
要記住,雖然OpenFlow可以像Open vSwitch那樣完全在軟件交換機(jī)上實(shí)施,但是要翻譯成硬件交換機(jī)的網(wǎng)絡(luò)芯片(ASIC)可以執(zhí)行的代碼,OF已被證明是要面對(duì)挑戰(zhàn)的。雖然有報(bào)道說,可更好處理OF的新的芯片很快就會(huì)出來,但是用戶們?cè)谠u(píng)估OF的有用性時(shí),肯定會(huì)結(jié)合其已有網(wǎng)絡(luò)進(jìn)行測(cè)試,以便確保所需的OF功能能夠盡可能地?cái)U(kuò)展,可以支持他們的應(yīng)用。
對(duì)于北向通信來說,控制器常常會(huì)提供API。一個(gè)REST(表述性狀態(tài)轉(zhuǎn)移)API可能是最常用到的。REST API很像HTTP服務(wù)器,會(huì)利用一些熟悉的方法如GET和POST來交換數(shù)據(jù)和指令。API提供了應(yīng)用到控制器的一種方法,可以告訴控制器網(wǎng)絡(luò)上將會(huì)發(fā)生什么。
值得注意的是,除了OF之外,有些廠商已經(jīng)有一些專門的南向API推出。這部分是因?yàn)镺F的指令集有限,有時(shí)候很難在傳統(tǒng)的芯片上實(shí)現(xiàn)。例如思科,雖然支持OpenFlow,但還是強(qiáng)調(diào)其API須借助其ONE架構(gòu)來實(shí)現(xiàn),思科的主張是說,它的API允許網(wǎng)絡(luò)程序員能夠充分發(fā)揮其思科硬件的能力。
疊加(Overlay)
在SDN討論中經(jīng)常會(huì)出現(xiàn)的另一個(gè)術(shù)語(yǔ)就是疊加網(wǎng)絡(luò)。簡(jiǎn)而言之,疊加是用來創(chuàng)建虛擬的網(wǎng)絡(luò)容器,這些容器之間在邏輯上彼此隔離,但可共享相同的底層物理網(wǎng)絡(luò)。
網(wǎng)絡(luò)工程師一般都很熟悉的通用路由封裝(GRE),比較容易理解疊加的概念。一個(gè)數(shù)據(jù)包(或幀)封裝在另一個(gè)數(shù)據(jù)包內(nèi);被封裝的包轉(zhuǎn)發(fā)到隧道端點(diǎn)后再被拆裝。原來的包就發(fā)送到了目的地。疊加網(wǎng)絡(luò)就是使用這種所謂“包內(nèi)之包”的技術(shù)安全地將一個(gè)網(wǎng)絡(luò)隱藏在另一個(gè)網(wǎng)絡(luò)中,然后將網(wǎng)絡(luò)區(qū)段進(jìn)行遷移。2層擴(kuò)展和多租戶就是比較流行的疊加網(wǎng)絡(luò)實(shí)例。
在過去幾年間,個(gè)標(biāo)準(zhǔn)化組織已發(fā)布了不少的疊加協(xié)議,這是因?yàn)樘摂M化數(shù)據(jù)中心需要在任意時(shí)間、任意地點(diǎn)移動(dòng)主機(jī)的需求所致。有些SDN控制器使用疊加作為其傳輸選項(xiàng),在散布于數(shù)據(jù)中心內(nèi)的各個(gè)主機(jī)之間架起了一座橋。而軟交換機(jī)通常被用作隧道的另一端。虛擬可擴(kuò)展局域網(wǎng)(VXLAN)是目前獲得業(yè)界最廣泛支持的協(xié)議,思科、博科和VMware都支持疊加網(wǎng)絡(luò)。在硬件方面支持VXLAN隧道端點(diǎn)的是Arista和博科的交換機(jī)。VXLAN的硬件端點(diǎn)正給業(yè)界帶來一場(chǎng)劇變,因?yàn)榀B加通常都是由軟件交換機(jī)作為端點(diǎn)的。
VXLAN在3層UDP包內(nèi)封裝2層幀。這樣做可以讓一個(gè)VXLAN段內(nèi)的主機(jī)彼此通信,只要它們處在同一個(gè)2層網(wǎng)絡(luò)上,即便這些主機(jī)可能被一個(gè)或多個(gè)3層網(wǎng)絡(luò)所隔離。
此外,由于VXLAN保留了全部的2層幀、還有VLAN標(biāo)識(shí),所以在一個(gè)VXLAN段內(nèi)可允許多個(gè)3層網(wǎng)絡(luò)存在。在該VXLAN段內(nèi)的客戶(也可叫做租戶)會(huì)覺得這個(gè)網(wǎng)絡(luò)很像他們以前所用過的VLAN,但底層網(wǎng)絡(luò)只能用一個(gè)段ID來區(qū)分VXLAN的包。
每個(gè)VXLAN網(wǎng)絡(luò)是用VXLAN包頭內(nèi)的段ID來區(qū)分的。這個(gè)ID有24位,也就是說可允許1600萬(wàn)個(gè)租戶共享同一個(gè)網(wǎng)絡(luò)基礎(chǔ)架構(gòu),同時(shí)又可以彼此間相互隔離。
和VXLAN相似,利用GRE實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化(NVGRE)使用一個(gè)24位的標(biāo)識(shí)符來定義租戶的網(wǎng)絡(luò)。NVGRE主要是微軟開發(fā)的技術(shù),也是其Hyper-V所使用的疊加方法。
盡管VMware堅(jiān)定地支持VXLAN,但是它的疊加網(wǎng)絡(luò)仍被稱為無(wú)狀態(tài)傳輸隧道(STT)。屬于VMware旗下的Nicira。STT是Nicira網(wǎng)絡(luò)虛擬化平臺(tái)的一個(gè)組成部分,尤其需要指出的是,STT的封裝格式充分利用了先進(jìn)網(wǎng)卡的硬件能力,可以將較大的數(shù)據(jù)塊分解成較小的數(shù)據(jù)塊。
這被稱為TCP分段卸載(TSO),一塊有TSO功能的網(wǎng)卡可以承擔(dān)分段卸載的任務(wù),從而釋放出服務(wù)器的CPU給其他任務(wù)。STT的未來尚無(wú)法確定,但VXLAN已經(jīng)有了VMware的支持以及來自行業(yè)的普遍支持。
除了VXLAN、NVGRE和STT,另一個(gè)值得關(guān)注的疊加網(wǎng)絡(luò)技術(shù)是網(wǎng)絡(luò)虛擬化疊加(NVO3)。NVO3是由IETF的一個(gè)工作組開發(fā)的。關(guān)于NVO3的問題說明與上面已經(jīng)討論過的其他疊加技術(shù)很相像,也就是說,流量孤立、租戶可自由使用所選擇的尋址方案,可將虛擬機(jī)在網(wǎng)絡(luò)內(nèi)自由移動(dòng),不必考慮底層核心中3層網(wǎng)絡(luò)的分隔等等。NVO3未來會(huì)怎么演進(jìn),如何封裝尚有待觀察,但NVO3工作組成員所提交的用例線路已經(jīng)基本成形。
結(jié)論
對(duì)上述三大術(shù)語(yǔ)的討論可歸結(jié)為一點(diǎn):一個(gè)無(wú)所不知的中央控制器能夠發(fā)現(xiàn)網(wǎng)絡(luò)交換機(jī)組成的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),而無(wú)論這些交換機(jī)是在hypervisor上的軟件交換機(jī),還是在數(shù)據(jù)中心機(jī)柜里的硬件交換機(jī)。
這個(gè)中央控制器就像是在北向的應(yīng)用和南向的交換機(jī)之間的一個(gè)中間件。北向應(yīng)用主要向控制器闡明業(yè)務(wù)策略、網(wǎng)絡(luò)配置和諸如此類的信息;而控制器則將這些策略和配置翻譯成南向的編程指令給網(wǎng)絡(luò)交換機(jī)。
南向協(xié)議最常用的就是OpenFlow,但要把OpenFlow加裝到已有的網(wǎng)絡(luò)硬件上是頗具挑戰(zhàn)性的,所以廠商們都在借助API推動(dòng)網(wǎng)絡(luò)的可編程。
在這個(gè)網(wǎng)絡(luò)可編程以及物理設(shè)備被抽象的平臺(tái)上,還要再加上疊加。疊加允許希望支持多租戶的云提供商和企業(yè)安全地隔離每個(gè)租戶的流量,而且與此同時(shí)還允許租戶的主機(jī)駐留在數(shù)據(jù)中心內(nèi)的任何地方。
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。