SDN交換機(jī)在云計(jì)算網(wǎng)絡(luò)中的應(yīng)用場(chǎng)景
歡迎來(lái)到學(xué)習(xí)啦。這篇是學(xué)習(xí)啦小編特地為大家整理的,希望對(duì)大家有所幫助!
SDN的技術(shù)已經(jīng)發(fā)展了好幾年了,而云計(jì)算的歷史更長(zhǎng),兩者的結(jié)合更是作為SDN的一個(gè)殺手級(jí)應(yīng)用在近兩年炒得火熱,一些知名咨詢公司的關(guān)于SDN逐年增加的市場(chǎng)份額的論斷,也主要是指SDN在云計(jì)算網(wǎng)絡(luò)中的應(yīng)用。
關(guān)于SDN在云計(jì)算網(wǎng)絡(luò)中的應(yīng)用,目前有兩個(gè)主要的流派,一個(gè)是VMware為代表的”軟”派,另外一個(gè)則是以思科為代表的“硬”派。前者主要是指整個(gè)網(wǎng)絡(luò)虛擬化方案的核心邏輯都是實(shí)現(xiàn)在服務(wù)器中的Hypervisor之上,物理網(wǎng)絡(luò)只是一個(gè)管道;而后者則是指網(wǎng)絡(luò)虛擬化的核心邏輯實(shí)現(xiàn)在物理網(wǎng)絡(luò)中(主要邊緣的機(jī)頂交換機(jī),即TOR),只有交換機(jī)實(shí)現(xiàn)不了的部分才放到服務(wù)器或者別的專用設(shè)備中。這兩種方案各有千秋,也各有粉絲。
但是世界從來(lái)都不是單極的,也不是兩極,而是多極,現(xiàn)實(shí)網(wǎng)絡(luò)中有很多各種非常規(guī)的需求,這些需求并不是靠這兩個(gè)方案就可以解決的,或者說(shuō)雖然他們能解決,但是不是最優(yōu)的,包括實(shí)現(xiàn)難度、性能和價(jià)格。作為一個(gè)長(zhǎng)期使用硬件SDN為用戶提供解決方案的從業(yè)者,我在這里想來(lái)介紹一下現(xiàn)實(shí)世界中硬件SDN交換機(jī)是如何來(lái)解決一些云計(jì)算網(wǎng)絡(luò)中的特定場(chǎng)景需求的,這些需求無(wú)論公有云還是私有云都可能會(huì)碰到,私有云(包括托管云)居多,因?yàn)槎ㄖ频男枨笤谒接性浦懈R?jiàn)。
需要特別說(shuō)明的是,這里的這些場(chǎng)景,用思科的ACI都可以做到,因?yàn)楸举|(zhì)上ACI的思路也是用硬件SDN來(lái)支持網(wǎng)絡(luò)虛擬化。但是由于很多用戶因?yàn)楦鞣N原因并不想使用思科ACI(如價(jià)格太貴、廠商鎖定、國(guó)產(chǎn)化趨勢(shì)等),所以他們需要另外的方案(我并不是說(shuō)ACI不好,相反,純粹從技術(shù)的角度,我個(gè)人很欣賞ACI)。
云計(jì)算網(wǎng)絡(luò)對(duì)SDN控制器和交換機(jī)的定制要求
很多人對(duì)SDN交換機(jī)在云計(jì)算網(wǎng)絡(luò)中的應(yīng)用都會(huì)有一些誤解。最典型的誤解有兩個(gè),一個(gè)是總有人問(wèn),你們用的控制器是哪個(gè)控制器?能跟OpenDayLight/Ryu/ONOS對(duì)接嗎?另外一個(gè)則是,覺(jué)得只要拿一臺(tái)SDN交換機(jī)來(lái),就可以支持云計(jì)算網(wǎng)絡(luò)場(chǎng)景,無(wú)論是哪個(gè)廠商的哪種SDN交換機(jī)。之所以有這兩個(gè)誤解,是因?yàn)楹芏嗳诉€沒(méi)理解到SDN就意味著跟應(yīng)用相關(guān)的定制,以為隨便拿著一個(gè)通用的東西就可以來(lái)做云計(jì)算網(wǎng)絡(luò)了。云計(jì)算網(wǎng)絡(luò)作為一種特定的SDN場(chǎng)景,其控制器通常都是專門針對(duì)云計(jì)算這個(gè)場(chǎng)景設(shè)計(jì)的,功能單一,就是完成云計(jì)算網(wǎng)絡(luò)的需求,甚至都可能沒(méi)有顯式的控制器,而是隱藏在云平臺(tái)里面(比如直接實(shí)現(xiàn)在OpenStack Neutron Server中的代碼邏輯)。這種場(chǎng)景中的控制器沒(méi)法用作通用SDN控制器,反之,通用SDN控制器也沒(méi)法直接用于云計(jì)算網(wǎng)絡(luò)場(chǎng)景。至于第二個(gè)問(wèn)題為什么說(shuō)是誤解,那也就很容易理解了,連控制器都需要為云計(jì)算場(chǎng)景定制,更不要說(shuō)SDN交換機(jī)了。所以并非是隨便拿一個(gè)SDN交換機(jī)過(guò)來(lái)就能支持云計(jì)算網(wǎng)絡(luò)場(chǎng)景,而需要有專門的深度定制。比如我們盛科網(wǎng)絡(luò),就專門針對(duì)這個(gè)場(chǎng)景,設(shè)計(jì)了相應(yīng)的控制器和交換機(jī)功能。
場(chǎng)景1:使用硬件SDN交換機(jī)提升性能
在這種場(chǎng)景中,用戶使用Tunnel Overlay的方式部署網(wǎng)絡(luò)虛擬化。但是由于vSwitch對(duì)Tunnel(VxLAN或者NvGRE)的操作對(duì)性能影響比較大(吞吐量偏低,延時(shí)偏大,抖動(dòng)比較大,具體影響大小要看每個(gè)公司對(duì)它的實(shí)現(xiàn)和優(yōu)化),所以這個(gè)時(shí)候可以借助SDN TOR交換機(jī)來(lái)進(jìn)行tunnel offload,把對(duì)性能影響比較大的tunnel操作offload到SDN TOR交換機(jī)上,其它所有操作保持在服務(wù)器中不變,邏輯上可以認(rèn)為SDN TOR交換機(jī)是vSwitch的擴(kuò)展。如果更進(jìn)一步,則可以把分布式東西向L3 Gateway也放到SDN TOR上,這樣SDN TOR等于是深度參與到網(wǎng)絡(luò)虛擬化中。
并非所有用戶都認(rèn)可這種模式,但是有人喜歡。目前這種場(chǎng)景我們已經(jīng)在幾個(gè)中小型的私有云和某著名IDC云中部署了,對(duì)這些云最大的幫助就是優(yōu)良的性能和穩(wěn)定性。
場(chǎng)景2:使用硬件SDN交換機(jī)接入物理服務(wù)器
在不少人的理解中,以為云計(jì)算數(shù)據(jù)中心里面,所有的服務(wù)器都虛擬化了,實(shí)際上這個(gè)理解跟事實(shí)相去甚遠(yuǎn),不僅在很多公有云和私有云中有大量物理服務(wù)器存在,甚至有些云里面物理服務(wù)器還占了大頭。我接觸到的絕大多數(shù)真正有大量客戶實(shí)踐的云,基本上都有這個(gè)需求。原因也多種多樣,有的是現(xiàn)存的一些老的服務(wù)器沒(méi)有虛擬化能力,有的是客戶要跑一些非常消耗資源的應(yīng)用,使用虛機(jī)性能太差或者性能不可預(yù)測(cè),有的是客戶的某些服務(wù)器是定制化的服務(wù)器,有的是出于安全考慮,從物理上就不想跟別人共享,還有的則是用戶自帶服務(wù)器,壓根就不想云服務(wù)提供商來(lái)動(dòng),等等,總之原因是千奇百怪,但是都是客戶真實(shí)需求。
對(duì)于這個(gè)需求,如果使用Vlan組網(wǎng),那還是比較容易搞定的,不用SDN交換機(jī)也勉強(qiáng)可以,因?yàn)橐龈綦x的話,直接在普通交換機(jī)上配置Vlan就行了。但是一旦使用Tunnel,那問(wèn)題就來(lái)了,Tunnel VTEP配置在哪里?有人說(shuō)可以在服務(wù)器上只起一個(gè)虛機(jī),然后也安裝vSwitch,這樣當(dāng)然也可以做,但是性能受損,不是客戶希望的,相當(dāng)于欺騙客戶;還有人說(shuō)專門設(shè)計(jì)一個(gè)特殊的vSwitch,安裝在服務(wù)器上,這樣理論上肯定也行,但是工作量就大了(不僅僅是設(shè)計(jì)這個(gè)vSwitch的工作量,還有云平臺(tái)控制的工作量),一般人搞不定。更何況,如果是用戶自帶設(shè)備根本不想你去動(dòng),這兩種辦法都行不通。對(duì)于這個(gè)場(chǎng)景,包括VMware在內(nèi)的很多專業(yè)網(wǎng)絡(luò)虛擬化解決方案提供商,一般的做法都是通過(guò)一臺(tái)硬件SDN交換機(jī)作為VTEP Gateway,來(lái)將這些物理服務(wù)器接入到虛擬網(wǎng)絡(luò)中去,物理服務(wù)器不需要做任何事情。而且這種場(chǎng)景對(duì)作為VTEP Gateway的SDN交換機(jī)來(lái)說(shuō),還有一個(gè)比較重要的要求,是目前用某大牌交換芯片的所有交換機(jī)都做不到的,那就是需要交換機(jī)既能支持Tunnel bridging,也能支持Tunnel Routing(否則沒(méi)法做分布式L3 Gateway),當(dāng)前用該大牌芯片的交換機(jī)只能支持前者,無(wú)法支持后者。思科的ACI之所以能支持后者,是因?yàn)樗麄冇昧俗约阂活w芯片。當(dāng)然,該芯片提供商后面的芯片據(jù)說(shuō)會(huì)解決這個(gè)問(wèn)題。
盛科網(wǎng)絡(luò)的SDN交換機(jī),用的是自研交換芯片,從第一代芯片開(kāi)始就支持Tunnel bridging & routing。 目前針對(duì)這個(gè)場(chǎng)景的SDN交換機(jī)已經(jīng)大量部署和即將部署在多個(gè)公有云中。
場(chǎng)景3:使用硬件SDN交換機(jī)接入硬件防火墻
云計(jì)算網(wǎng)絡(luò)中使用硬件防火墻,這個(gè)很常見(jiàn)。特別是企業(yè)私有云,托管云,甚至公有云里面也有。很多用戶明確提出,我原來(lái)用我的硬件防火墻用得很好,你要讓我上云可以,一定要把我的硬件防火墻用起來(lái)。那問(wèn)題就來(lái)了,以前在傳統(tǒng)網(wǎng)絡(luò)中,用戶數(shù)據(jù)想經(jīng)過(guò)防火墻,很簡(jiǎn)單,把防火墻串接在網(wǎng)絡(luò)出口或者配置一個(gè)ACL把流引過(guò)去就可以了。但是在云計(jì)算的網(wǎng)絡(luò)里面,有可能某個(gè)防火墻只是為某幾個(gè)用戶或者某一組應(yīng)用服務(wù)的,甚至這個(gè)防火墻壓根就這個(gè)用戶自帶的,你不能把它物理上串接在網(wǎng)絡(luò)出口,必須要將流量引到放在某個(gè)機(jī)柜的防火墻上,但是這個(gè)時(shí)候用傳統(tǒng)ACL不合適,因?yàn)閂M是動(dòng)態(tài)產(chǎn)生的,策略也可能動(dòng)態(tài)變化,你需要?jiǎng)討B(tài)在交換機(jī)上配置ACL。用什么來(lái)做最合適?毫無(wú)疑問(wèn)是SDN交換機(jī),動(dòng)態(tài)策略跟隨,本來(lái)就是SDN的強(qiáng)項(xiàng),思科的ACI最核心的東西就是動(dòng)態(tài)策略跟隨。
如果云計(jì)算網(wǎng)絡(luò)中使用了Tunnel,那問(wèn)題會(huì)更麻煩,因?yàn)楹芏嘤布阑饓Σ恢С諸unnel,必須要有另外一個(gè)地方終結(jié)Tunnel,然后將Tunnel轉(zhuǎn)換成Vlan送到防火墻,誰(shuí)來(lái)做這個(gè)事情最合適?毫無(wú)疑問(wèn),那就是支持Tunnel的SDN交換機(jī)。
有人說(shuō)這樣的話防火墻仍然會(huì)受4K Vlan的限制。其實(shí)不然,因?yàn)門unnel向Vlan轉(zhuǎn)換的時(shí)候,這里的Vlan可以是每端口唯一的,而不需要是全局唯一的。當(dāng)然,這個(gè)也需要交換機(jī)能支持才行。盛科的SDN交換機(jī)就可以很好地支持這個(gè)需求。
場(chǎng)景4:使用硬件SDN交換機(jī)支持多個(gè)Hypervisor混合組網(wǎng)
說(shuō)是多個(gè)Hypervisor,其實(shí)最多的還是說(shuō)VMware跟其它Hypervisor的混合組網(wǎng)。因?yàn)闊o(wú)論是KVM還是Xen,那些開(kāi)源的云平臺(tái)或者第三方中立的私有云平臺(tái)都能支持得很好,云平臺(tái)可以完全控制這些Hypervisor。但是VMware是一個(gè)閉源的Hypervisor,沒(méi)辦法隨心所欲控制。很多客戶都用了VMware以前的老產(chǎn)品,現(xiàn)在VPC比較熱,無(wú)論是趕時(shí)髦也好,還是真的有需求也好,他們都想能支持VPC,特別是基于Tunnel Overlay的VPC。有人說(shuō),那好辦啊,VMware不是有NSX專門來(lái)干這事嗎?盡管它提供了對(duì)OpenStack的driver,但是NSX非常貴,一般客戶用不起或者覺(jué)得不劃算。這些客戶要引入一些開(kāi)源的KVM,XEN,但是又不想丟棄以前的VMware,還想讓這些Hypervisor一起組成VPC網(wǎng)絡(luò)。那怎么辦呢?
一個(gè)有效的解決方案就是使用SDN交換機(jī)接入使用了VMware的服務(wù)器,云平臺(tái)調(diào)用vCenter的接口配置VMware,使用Vlan標(biāo)識(shí)租戶的network,然后在SDN交換機(jī)上,將Vlan轉(zhuǎn)換成Tunnel,如果要讓VM的流量送到防火墻去做過(guò)濾,也都可以通過(guò)SDN交換機(jī)去做。該方案已經(jīng)由我們的一個(gè)行業(yè)云服務(wù)提供商合作伙伴成功在其行業(yè)客戶中部署,該行業(yè)客戶群大量使用了VMware產(chǎn)品。而且我們發(fā)現(xiàn)有類似需求的私有云很多,說(shuō)白了就是不想花錢買NSX,而又想有某些NSX的功能。
場(chǎng)景5:使用硬件SDN交換機(jī)按需部署Vlan
這個(gè)場(chǎng)景不算是剛需,有些客戶不在乎,但是也有客戶在乎。當(dāng)前很多小型私有云中,還是使用了Vlan的組網(wǎng)方式,畢竟簡(jiǎn)單易部署,且性能好。但是用Vlan來(lái)組網(wǎng)除了擴(kuò)展性不如Tunnel Overlay之外,它還有另外一個(gè)小問(wèn)題,因?yàn)閂M可以隨便遷移,而每個(gè)VM都綁到一個(gè)特定Vlan,當(dāng)VM遷移走的時(shí)候,Vlan也需要跟著遷移。而在Vlan組網(wǎng)的方案里面,Vlan必須對(duì)中間的物理網(wǎng)絡(luò)可見(jiàn),這就意味著交換機(jī)端口上的Vlan配置要經(jīng)常動(dòng)態(tài)變化。為了規(guī)避這個(gè)問(wèn)題,現(xiàn)在一般的做法都是預(yù)先把所有可能用到的vlan在所有的交換機(jī)的所有端口上都全部使能。這樣帶來(lái)的問(wèn)題是,所有廣播(如ARP/DHCP)、組播、未知單播的報(bào)文每次都會(huì)被發(fā)送到整個(gè)物理網(wǎng)絡(luò)的所有服務(wù)器上,最終在服務(wù)器里面才丟棄,這種做法一方面浪費(fèi)了帶寬,另外一方面也有潛在的安全問(wèn)題。
對(duì)于這種問(wèn)題的一個(gè)很簡(jiǎn)單的解決方案就是引入SDN交換機(jī),動(dòng)態(tài)按需去配置Vlan。
總結(jié)
張衛(wèi)峰(盛科網(wǎng)絡(luò)SDN云計(jì)算CTO 兼 軟件研發(fā)部門總監(jiān),《深度解析SDN》一書作者。):對(duì)于SDN交換機(jī)在上述場(chǎng)景中的應(yīng)用,用一句話來(lái)總結(jié),就是運(yùn)用之妙存乎一心?,F(xiàn)實(shí)中的需求真的是千奇百怪,我這里列出來(lái)的還都是相對(duì)有一些共性,大家容易理解的需求。還有一些一般人理解不了的,甚至我都無(wú)法理解的需求,都還沒(méi)列出來(lái)。面對(duì)這些需求的時(shí)候,通常你是別指望用常規(guī)手段能去解決,而SDN,或許就能幫你一臂之力,這也許就是SDN的魅力之一吧。當(dāng)然,這里說(shuō)的SDN交換機(jī),不一定是OpenFlow交換機(jī),更多的時(shí)候,通過(guò)在傳統(tǒng)交換機(jī)里面引入一個(gè)Cloud Agent,提供開(kāi)放的API(JSON RPC或者REST API),也許是一種更好的接地氣的實(shí)現(xiàn)方式,因?yàn)樗烊豢梢愿鷤鹘y(tǒng)網(wǎng)絡(luò)無(wú)縫對(duì)接,并且不需要對(duì)匯聚和核心設(shè)備有任何特殊需求,這是我們?cè)谇О俅蔚膶?shí)踐中總結(jié)出的寶貴經(jīng)驗(yàn)。