淺談SDN與云網(wǎng)絡(luò)

責(zé)任編輯:jackye

2016-06-20 17:52:04

摘自:品高云計(jì)算

3)計(jì)算節(jié)點(diǎn)使用Openvswitch作為分布式虛擬交換機(jī)。4)使用SDN控制器,將全部的云網(wǎng)絡(luò)業(yè)務(wù)功能都集中在SDN控制器。

SDN軟件定義網(wǎng)絡(luò)

1什么是SDN

什么是SDN?這個(gè)問(wèn)題似乎自從SDN的誕生到現(xiàn)在就一直存在爭(zhēng)議的問(wèn)題。SDN的官方解釋上提出了SDN的三個(gè)特性:集中化管理、控制轉(zhuǎn)發(fā)分離、開(kāi)放的API。可以這么說(shuō),只要滿足SDN的三個(gè)特性的,就是SDN。SDN是一種理念,一種思想。在我們架構(gòu)網(wǎng)絡(luò)的時(shí)候,SDN是一種新的思路。

SDN的三大特性:

集中化的管理

有統(tǒng)一的管理入口。比方說(shuō)我有100臺(tái)交換機(jī),對(duì)著100臺(tái)交換機(jī)的配置管理,不需要逐個(gè)交換機(jī)配置,可以通過(guò)一個(gè)統(tǒng)一的控制器配置著100臺(tái)交換機(jī)。這就是集中化的管理。

控制轉(zhuǎn)發(fā)分離

在SDN的網(wǎng)絡(luò)種,SDN所希望的是交換機(jī)應(yīng)該足夠的“傻瓜”。交換機(jī)的功能應(yīng)該只是匹配和動(dòng)作(match &action)。里面的鄰居子系統(tǒng)、ACL規(guī)則、路由、網(wǎng)關(guān)等功能都應(yīng)該在交換機(jī)上完成,而是在控制器上完成。當(dāng)然也是一種理想的情況。也是大部分宣稱自己是SDN云網(wǎng)絡(luò)的產(chǎn)品做到的地方。在openstack 的dragon flow云網(wǎng)絡(luò)中,其實(shí)就把鄰居子系統(tǒng)和網(wǎng)關(guān)的部分功能做到SDN控制器上,主要的目的是為了解決東西流量的分布式以及減少故障域。在dragon flow的云網(wǎng)絡(luò)中還是保留了不少傳統(tǒng)云網(wǎng)絡(luò)的實(shí)現(xiàn)。

開(kāi)放的API

在SDN的架構(gòu)中,開(kāi)放的API成為北向接口。傳統(tǒng)網(wǎng)絡(luò)的交換機(jī)的配置基本上都是CLI配置,或者Netconf配置,這樣的配置接口很難實(shí)現(xiàn)通過(guò)軟件控制網(wǎng)絡(luò)。對(duì)于我們的這些軟件開(kāi)發(fā)者來(lái)說(shuō),如果通過(guò)可以對(duì)網(wǎng)絡(luò)編程,就需要一個(gè)統(tǒng)一的開(kāi)放的API進(jìn)行調(diào)用。這也是SDN的核心思想可編程的網(wǎng)絡(luò)。

2SDN有什么好處

這個(gè)問(wèn)題其實(shí)有很多人問(wèn)過(guò)我,SDN究竟有什么好處?有些比較直接會(huì)問(wèn),用了SDN網(wǎng)絡(luò)性能會(huì)不會(huì)提升30%?用了SDN之后,會(huì)不會(huì)多出很多新的網(wǎng)絡(luò)功能?我的觀點(diǎn)是SDN的提出不是一場(chǎng)網(wǎng)絡(luò)的革命,而是一次網(wǎng)絡(luò)的發(fā)展。架構(gòu)云網(wǎng)絡(luò)的過(guò)程中,SDN給我們帶來(lái)最大的好處是通過(guò)SDN實(shí)現(xiàn)的網(wǎng)絡(luò)功能所付出的代價(jià)會(huì)比傳統(tǒng)網(wǎng)絡(luò)的要小很多。這個(gè)代價(jià)主要是指這幾個(gè)個(gè)方面:開(kāi)發(fā)周期、網(wǎng)絡(luò)復(fù)雜度、架構(gòu)的完整度、網(wǎng)絡(luò)IO路徑長(zhǎng)度、冗余耦合度。

我們很早之前就有考慮將云網(wǎng)絡(luò)和第三方的安全產(chǎn)品整合,提供一套更安全的云網(wǎng)絡(luò)。安全的廠家只要把原來(lái)的安全產(chǎn)品做成實(shí)例,運(yùn)行到云網(wǎng)絡(luò)中即可。但是最大的問(wèn)題是云網(wǎng)絡(luò),如何將流量引流到虛擬化的安全產(chǎn)品?為了引流我們需要?jiǎng)?chuàng)建更多的Vlan,需要更多的橋,并且第三方的安全廠家還需要識(shí)別我們的實(shí)例的遷移日志,配合遷移做規(guī)則的調(diào)整,我們也需要開(kāi)放很多本來(lái)不應(yīng)該開(kāi)放的API(提供vlan、橋的創(chuàng)建、日志的篩選)。最終這個(gè)計(jì)劃還是終止了,因?yàn)榇鷥r(jià)太高了。我們的整體網(wǎng)絡(luò)架構(gòu)都有大量的改動(dòng),同時(shí)網(wǎng)絡(luò)的IO路徑增加了近一倍,并且開(kāi)發(fā)周期預(yù)計(jì)要兩個(gè)季度,更重要的是和第三方的整合項(xiàng)目是不應(yīng)該存在這么多的交叉開(kāi)發(fā)過(guò)程。后來(lái)我們的SDN云網(wǎng)絡(luò)終于開(kāi)發(fā)完成了。引流的工作集中在SDN控制器完成,整體的網(wǎng)絡(luò)架構(gòu)基本沒(méi)有任何改動(dòng)。網(wǎng)絡(luò)IO路徑?jīng)]有變化。即使實(shí)例的遷移我們的SDN控制器也能夠識(shí)別出來(lái),不需要第三方安全廠家監(jiān)聽(tīng)日志事件。實(shí)現(xiàn)這樣的功能一個(gè)月就能完成了。這就是SDN的最大的好處了。當(dāng)然這是我們對(duì)SDN云網(wǎng)絡(luò)的技術(shù)實(shí)現(xiàn)細(xì)節(jié)有關(guān)系,后續(xù)我會(huì)專門寫一篇關(guān)于品高SDN云網(wǎng)絡(luò)的介紹文章,專門講一講這一方面的事情。

傳統(tǒng)的云網(wǎng)絡(luò)

1傳統(tǒng)的云網(wǎng)絡(luò)

傳統(tǒng)的云網(wǎng)絡(luò):就是基于Linux kernel的網(wǎng)絡(luò)協(xié)議棧提供的傳統(tǒng)網(wǎng)絡(luò)組件實(shí)現(xiàn)云網(wǎng)絡(luò)的基本功能。比方說(shuō):安全組就用Linux自帶的iptables實(shí)現(xiàn)、子網(wǎng)隔離就用Linux自帶的Vlan實(shí)現(xiàn)、地址轉(zhuǎn)換就用Linux自帶的NAT實(shí)現(xiàn)、流量控制就用Linux自帶的TC實(shí)現(xiàn)、路由功能Linux自帶的route table實(shí)現(xiàn)等等。再配合一些網(wǎng)絡(luò)規(guī)劃,用其中一兩臺(tái)服務(wù)器作為網(wǎng)絡(luò)節(jié)點(diǎn)(云網(wǎng)絡(luò)的出口核心路由器)。最后配合上云的調(diào)度能力。這樣傳統(tǒng)的云網(wǎng)絡(luò)就構(gòu)建起來(lái)的。

2傳統(tǒng)的云網(wǎng)絡(luò)存在的問(wèn)題

1)網(wǎng)絡(luò)節(jié)點(diǎn)的網(wǎng)絡(luò)業(yè)務(wù)過(guò)于集中,容易出現(xiàn)單點(diǎn)故障。

2)東西南北流量混合,網(wǎng)絡(luò)質(zhì)量不高。

3)傳統(tǒng)Linux網(wǎng)絡(luò)協(xié)議棧的網(wǎng)絡(luò)功能捆綁嚴(yán)重,資源消耗嚴(yán)重。

4)Vlan的子網(wǎng)隔離,數(shù)量不足。

5)橫向擴(kuò)展能力差,網(wǎng)絡(luò)規(guī)模難以擴(kuò)展。

6)縱向吞掉性能,受網(wǎng)絡(luò)節(jié)點(diǎn)點(diǎn)單限制。

為了解決傳統(tǒng)網(wǎng)絡(luò)的這些問(wèn)題,其實(shí)很多企業(yè)、開(kāi)源組織也是付出了不少的努力。說(shuō)到底其實(shí)最關(guān)鍵的就是把網(wǎng)絡(luò)節(jié)點(diǎn)的業(yè)務(wù)功能下沉到計(jì)算節(jié)點(diǎn)(分布式的虛擬化網(wǎng)絡(luò))。當(dāng)然還有其他的問(wèn)題,這是不會(huì)這么快暴露出來(lái)。

3OpenStack云網(wǎng)絡(luò)之路

前段時(shí)間看了《通向高可用與分布式的OpenStack網(wǎng)絡(luò)之路》http://www.infoq.com/cn/presentations/lead-to-high-availability-and-distributed-openstack-network。我得到很多的啟發(fā),深深地體會(huì)到云網(wǎng)絡(luò)之路確實(shí)艱辛并且曲折。我對(duì)比了Openstack的發(fā)展之路和品高的SDN云網(wǎng)絡(luò)做了一些分析。如下圖:

  Openstack的網(wǎng)絡(luò)之路與Bingo SDN的對(duì)比

一個(gè)成熟的商用云網(wǎng)絡(luò)有一個(gè)準(zhǔn)入條件就是高可用。Openstack在Neutron L3HA版本中實(shí)現(xiàn)了的HA。但是在后續(xù)的幾個(gè)版本中,因?yàn)榧軜?gòu)上沖突Neutron L2POP &ARP Respondar 、DVR、Dragon Flow的版本中HA就無(wú)法兼容了。Openstack的發(fā)展之路總結(jié)起來(lái)就是把網(wǎng)絡(luò)節(jié)點(diǎn)上網(wǎng)絡(luò)功能(FW,Gateway,NAT,ROUTE,DHCP等功能)下沉到計(jì)算節(jié)點(diǎn)。也是提高為了網(wǎng)絡(luò)容災(zāi)能力。不可否認(rèn)Openstack是一個(gè)成功的產(chǎn)品,目前很多云廠商也是在Openstack的基礎(chǔ)上實(shí)現(xiàn)自己的云。SDN的云網(wǎng)絡(luò)

SDN的提出確實(shí)給了我們很多的新的想法。首當(dāng)其中的想法就是:如果云網(wǎng)絡(luò)是通過(guò)SDN實(shí)現(xiàn)的,是不是可以解決傳統(tǒng)云網(wǎng)絡(luò)難以解決的問(wèn)題呢?對(duì)于一個(gè)新的技術(shù),我們必須要有足夠的寬容度。我們的做法是通過(guò)SDN實(shí)現(xiàn)和傳統(tǒng)云網(wǎng)絡(luò)一樣功能的云網(wǎng)絡(luò),不要求SDN去突破性能,創(chuàng)造新功能。我們和Dragon Flow不同,我們不是部分功能使用SDN,而是全部網(wǎng)絡(luò)功能都通過(guò)SDN實(shí)現(xiàn)。這想法確實(shí)有點(diǎn)瘋狂,但是可行性上是完全沒(méi)有問(wèn)題的。

1我們制定了一些SDN的要求

1)擺脫網(wǎng)絡(luò)節(jié)點(diǎn)。

2)不使用Linux網(wǎng)絡(luò)協(xié)議棧自帶的網(wǎng)絡(luò)組件。

3)計(jì)算節(jié)點(diǎn)使用Openvswitch作為分布式虛擬交換機(jī)。

4)使用SDN控制器,將全部的云網(wǎng)絡(luò)業(yè)務(wù)功能都集中在SDN控制器。

5)SDN 控制器和Openvswitch的通信使用OpenFlow協(xié)議。

6)SDN控制器集群高可用。

在開(kāi)發(fā)的過(guò)程中,我們深刻地體會(huì)到SDN的強(qiáng)大之處。我們不僅僅完成了我們當(dāng)初制定的要求,我們也通過(guò)SDN帶來(lái)了很多新的網(wǎng)絡(luò)特性。隱藏式分布式虛擬化網(wǎng)關(guān)、實(shí)例遷移規(guī)則不用重新配置、網(wǎng)絡(luò)功能可熱插拔、網(wǎng)絡(luò)業(yè)務(wù)的疊加不會(huì)增加IO路徑、網(wǎng)絡(luò)可視化、ARP預(yù)處理以及ARP預(yù)填充等等。所有網(wǎng)絡(luò)功能都在SDN控制器,所有網(wǎng)絡(luò)規(guī)則都是按需分配自動(dòng)超時(shí),控制器集群高可用。后續(xù)我會(huì)和大家分享一下Bingo SDN的網(wǎng)絡(luò)功能。

SDN的云網(wǎng)絡(luò)開(kāi)發(fā)過(guò)程中我們也確實(shí)遇到了很多問(wèn)題。比方說(shuō),Openflow協(xié)議對(duì)一些網(wǎng)絡(luò)功能功能的不支持,Openvswitch中有一些Bug,SDN網(wǎng)絡(luò)的新建連接性能低,SDN控制器集群高可用等等。最后我們還是突破這些問(wèn)題,后續(xù)我會(huì)和大家分享的Bingo SDN的遇到的問(wèn)題和解決方法。

不可否認(rèn),SDN的云網(wǎng)絡(luò)確實(shí)是一套可行并且正確的發(fā)展之路。SDN給了我們?cè)凭W(wǎng)絡(luò)更多發(fā)展的空間。

注:本文引自品高云技術(shù)專家

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)