SDN概念一直如火如荼,若是要談到概念落地及大規(guī)模應(yīng)用,一定離不開SDN在云計(jì)算數(shù)據(jù)中心的實(shí)踐應(yīng)用。云數(shù)據(jù)中心對網(wǎng)絡(luò)提出了靈活、按需、動態(tài)和隔離的需求,SDN的集中控制、控制與轉(zhuǎn)發(fā)分離、應(yīng)用可編程這三個(gè)特點(diǎn)正巧能夠較好的匹配以上需求。SDN,可以看為是軟件開發(fā)和網(wǎng)絡(luò)技術(shù)的混合領(lǐng)域。本文站在云數(shù)據(jù)中心網(wǎng)絡(luò)維護(hù)工程師的角度,給大家分享SDN與云數(shù)據(jù)中心結(jié)合的前世今生。
一、云數(shù)據(jù)中心為什么要引入SDN
云計(jì)算近十年來受到互聯(lián)網(wǎng)、IT和電信業(yè)共同的關(guān)注,云計(jì)算技術(shù)的快速發(fā)展和廣泛應(yīng)用使得數(shù)據(jù)中心的業(yè)務(wù)形態(tài)產(chǎn)生了很大的變化。目前數(shù)據(jù)中心業(yè)務(wù)聚焦在Iaas層,即云計(jì)算數(shù)據(jù)中心利用自身所擁有的計(jì)算、存儲、網(wǎng)絡(luò)、軟件平臺等資源向租戶提供Iaas虛擬資源出租。典型的IaaS資源包含云主機(jī)(虛擬機(jī))、對象存儲、塊存儲、VPC專用網(wǎng)絡(luò)(VPC,Virtual Private Network虛擬私有云)、公網(wǎng)IP、帶寬、防火墻、負(fù)載均衡等產(chǎn)品。
在網(wǎng)絡(luò)層面,假設(shè)暫不考慮公網(wǎng)IP、帶寬等衍生網(wǎng)絡(luò)產(chǎn)品,僅是云主機(jī),網(wǎng)絡(luò)上最基本的技術(shù)要求就是可遷移性和隔離性。可遷移性,通常是指云主機(jī)在數(shù)據(jù)中心具備自動恢復(fù)能力。當(dāng)云主機(jī)所在宿主機(jī)(物理服務(wù)器)出現(xiàn)宕機(jī)時(shí),云主機(jī)能夠自動遷移至另一臺正常運(yùn)行的物理服務(wù)器上且IP保持不變。隔離性通常可以分為兩個(gè)層面,一是不同租戶間的網(wǎng)絡(luò)隔離,鑒于安全考慮,不同租戶間內(nèi)部網(wǎng)絡(luò)不可達(dá);二是同一租戶內(nèi)部不同子網(wǎng)(vlan)間的隔離,為業(yè)務(wù)規(guī)模較大的租戶提供的多層組網(wǎng)能力。
因云主機(jī)遷移IP不能變,進(jìn)而要求網(wǎng)絡(luò)需處于二層環(huán)境中,早期云數(shù)據(jù)中心在組網(wǎng)上通常是采用大二層技術(shù)。大二層技術(shù),簡單理解就是整個(gè)數(shù)據(jù)中心是一個(gè)大二層環(huán)境,云主機(jī)網(wǎng)關(guān)都位于核心設(shè)備上。一想到二層環(huán)境,肯定離不開廣播風(fēng)暴,也離不開遏制廣播風(fēng)暴的生成樹協(xié)議。全網(wǎng)都用生成樹協(xié)議,勢必會阻塞較多的網(wǎng)絡(luò)鏈路,導(dǎo)致網(wǎng)絡(luò)鏈路利用率不足。為了解決利用率不足的問題,思科VPC(這個(gè)跟上文的VPC不一樣,virtual port channel虛擬端口轉(zhuǎn)發(fā))技術(shù)和華為華三的IRF堆疊技術(shù)應(yīng)運(yùn)而出。簡單的理解,上面兩種技術(shù)都是對生成樹協(xié)議的欺騙,最終使被生成樹協(xié)議阻塞鏈路轉(zhuǎn)變?yōu)榭墒褂脿顟B(tài),提升鏈路使用率。結(jié)合大二層技術(shù)使用的租戶隔離方式有兩種常用的,一個(gè)是vlan隔離,一個(gè)是VRF(Virtual Routing Forwarding虛擬路由轉(zhuǎn)發(fā))隔離。若是采用vlan隔離,通常需要把云主機(jī)網(wǎng)關(guān)終結(jié)在防火墻上,這樣才能滿足租戶間安全隔離的需求。這種模式下,一般是一個(gè)租戶對應(yīng)一個(gè)vlan;針對同一租戶有多子網(wǎng)的需求,則需要在網(wǎng)關(guān)設(shè)備防火墻上通過較為復(fù)雜策略來實(shí)現(xiàn)。若是采用VRF隔離的方式,通常是把云主機(jī)網(wǎng)關(guān)終結(jié)在高端交換機(jī)或者路由器上,一個(gè)租戶對應(yīng)一個(gè)VRF.針對同租戶有多子網(wǎng)的需求,則是一個(gè)VRF+多個(gè)vlan的模式。
受限于vlan/VRF規(guī)模,無論是“大二層+vlan”還是“大二層+VRF”,都存在云數(shù)據(jù)中心租戶數(shù)量不超過4096個(gè)的限制,同時(shí)也不允許租戶間的IP地址段沖突。在加上傳統(tǒng)IP網(wǎng)絡(luò)架構(gòu)在虛擬化、靈活配置和可編程方面能力不足,在云數(shù)據(jù)中心網(wǎng)絡(luò)服務(wù)業(yè)務(wù)鏈編排上也有所制約。為了解決上述問題,出現(xiàn)了在云數(shù)據(jù)中心網(wǎng)絡(luò)中引入了SDN的技術(shù)潮。
二、SDN在云數(shù)據(jù)中心的系統(tǒng)架構(gòu)
SDN的3+2架構(gòu)模型,從上到下分為應(yīng)用層、控制層和轉(zhuǎn)發(fā)層。以控制層為基準(zhǔn)點(diǎn)定義了兩個(gè)外部接口,其中,向上為應(yīng)用提供自定義業(yè)務(wù)功能的API稱為北向接口,向下控制使用底層網(wǎng)絡(luò)資源的API稱為南向接口。常用的北向接口標(biāo)準(zhǔn)是Restful,常用的南向接口標(biāo)準(zhǔn)是Openflow.
SDN的3+2架構(gòu)模型相信大家都不陌生。SDN在云數(shù)據(jù)中心跟云管理平臺(以O(shè)penstack為例)整體融合考慮時(shí),比較常見的系統(tǒng)架構(gòu)如下所示。針對下圖進(jìn)行幾個(gè)說明,說說為什么常用這種模式:
1、關(guān)于系統(tǒng)層級的劃分:
推薦的SDN系統(tǒng)層次劃分中,云數(shù)據(jù)中心運(yùn)營管理平臺和Openstak統(tǒng)一被定義為應(yīng)用層,獨(dú)立的SDN控制器設(shè)備構(gòu)成控制層,底層網(wǎng)絡(luò)設(shè)備構(gòu)成了轉(zhuǎn)發(fā)層。在業(yè)界關(guān)于Openstack數(shù)據(jù)中心系統(tǒng)層級,除了圖中所示,還有另外一種劃分方式。在另一種劃分方式中,是把Openstack的Neutorn當(dāng)成是控制層,由neutron直接對接底層網(wǎng)絡(luò)設(shè)備。在服務(wù)器規(guī)模較大的云數(shù)據(jù)中心,尤其是采用虛擬交換機(jī)時(shí),控制器跟網(wǎng)絡(luò)設(shè)備(虛擬交換機(jī))之間的交互流量是比較大的。在實(shí)際部署中,通常會引用商業(yè)版的SDN控制器。商業(yè)版的SDN控制器與Neutron的對接,主要體現(xiàn)在于Neutron插件上。