青云SDN/NFV2.0架構剖析

SDN就是軟件定義網(wǎng)絡粒梦。當然也不是所有網(wǎng)絡定制一定要軟件來實現(xiàn)土童,因為有很多硬件方案也可以做到 SDN 的效果唯袄。青云 QingCloud 用軟件定義來實現(xiàn)虛擬網(wǎng)絡弯屈。

VPC 是什么意思呢?VPC 網(wǎng)絡是 QingCloud 環(huán)境內(nèi)可以為用戶預配置出的一個專屬的大型網(wǎng)絡恋拷。在 VPC 網(wǎng)絡內(nèi)资厉,用戶可以自定義 IP 地址范圍、創(chuàng)建子網(wǎng)蔬顾,并在子網(wǎng)內(nèi)創(chuàng)建主機/數(shù)據(jù)庫/大數(shù)據(jù)等各種云資源宴偿。

正是因為云計算需要虛擬網(wǎng)絡,也需要 VPC 诀豁。所以我們還需要定義一個 SDN 方案解決這兩個需求窄刘,現(xiàn)有的 SDN 方案主要分成兩個方向:

一是用軟件來定義,但是用硬件來實現(xiàn)舷胜。比如某些帶 SDN 功能的交換機都哭,把它采購進來,部署到產(chǎn)品里逞带,用硬件廠商提供的 API 欺矫,在上面提供 SDN 功能。

二是NFV 展氓,就是網(wǎng)絡功能虛擬化穆趴,用軟件的方式來實現(xiàn),用軟件的交換機和路由器遇汞,把他們組織起來成為一個軟件實現(xiàn)的 SDN 未妹。其代表有 VMware NSX簿废、Juniper OpenContrail 等等。

QingCloud 在 SDN 方案的選型上也做過討論络它,用軟件還是用硬件方案族檬?其中考慮的問題主要是以下三個方面:

第一,成本化戳。在公有云上面大家拼的是成本单料,誰的硬件成本低,誰就能把價格降到最低点楼。如果我們采用現(xiàn)有的硬件方案扫尖,在網(wǎng)絡設備上面增加了很多投資,并且我要采購的不是一個或者兩個掠廓,而是一批换怖。

第二,設備依賴蟀瞧。我們的私有云賣的是軟件沉颂,客戶可以按照偏好選擇自己的硬件,假如QingCloud 的 SDN 綁定了某款硬件產(chǎn)品悦污,那我們在面對用戶的時候兆览,可能連招標的機會都沒有,因為人家壓根就沒有辦法用你的硬件塞关。

第三抬探,情懷。對于工程師來說帆赢,大家都想把產(chǎn)品做得更優(yōu)秀小压。其實,軟件跟傳統(tǒng)快遞行業(yè)非常的接近椰于,為什么這么說怠益。因為網(wǎng)絡中的交換機、路由器瘾婿,其實跟快遞行業(yè)里的快遞員和包裹集散中心非常相似蜻牢,一般包裹給快遞員以后,快遞員會發(fā)給一個快遞集散中心偏陪,這里可以查詢包裹應該被送到哪個地方抢呆,然后再將包裹交給快遞員,送到用戶那里笛谦。順豐在中國應該是最好的快遞公司之一抱虐,因為它把轉運環(huán)節(jié)都做全了,只有方方面面都能夠控制才能實現(xiàn)壓倒性的優(yōu)勢饥脑。因此恳邀,我們?nèi)绻褦?shù)據(jù)包轉發(fā)的每個流程都控制到懦冰,就有可能在系統(tǒng)上面做到最優(yōu),采用硬件設備使用這些功能的話谣沸,最后帶來的是同質化刷钢,跟競爭對手相比不會有任何的優(yōu)勢。

綜合以上三方面的原因乳附,我們決定開發(fā)一套新的SDN/NFV 2.0 方案内地,取代 1.0 。

既然定了要自己做一套新的方案许溅,怎么去實現(xiàn)瓤鼻?我們做了一些總結秉版,新的產(chǎn)品需要滿足傳統(tǒng) SDN 的需求贤重。第一,數(shù)據(jù)封裝清焕。也就是實現(xiàn)一個基本的虛擬網(wǎng)絡并蝗;第二,實現(xiàn)控制平面秸妥。二層滚停、三層的網(wǎng)絡數(shù)據(jù)進行路由規(guī)則的同步,然后下發(fā)到虛擬的交換機和路由器里面去粥惧,控制做到 ARP 泛洪抑制键畴;第三,實現(xiàn)數(shù)據(jù)平面突雪。除了 DVR 之外起惕,還提供了虛擬邊界路由器。

除此之外咏删,還需要增加我們需要的 2.0 方面的功能惹想。

第一,VPC 主機直接綁定公網(wǎng) IP 督函。私有云用戶大量依賴基礎網(wǎng)絡嘀粱,要求 VM 直接綁定公網(wǎng) IP ;

第二辰狡,負載均衡器锋叨。可對進入流量進行分流宛篇,出流量經(jīng)由多臺 Virtual Gateway (虛擬網(wǎng)關)分擔負載悲柱,單 IP 可承載 1 TB 出流量。同時些己,4—7層完全透明豌鸡;

第三嘿般,IP 不變。支持可以無限水平擴展的基礎網(wǎng)絡涯冠,并保持高可用及高性能炉奴,VM 任意遷移,IP 地址保持不變蛇更;

第四瞻赶, VPC 和物理網(wǎng)絡連接。

下面分別解釋剛才說的那幾個基礎實現(xiàn)派任。

首先解釋虛擬網(wǎng)絡砸逊。在一些大公司里會提供一種叫內(nèi)部郵遞的服務。公司員工之間可以發(fā)送一種快遞掌逛,比如要給財務部門某同事發(fā)一個報價單师逸,會查他的工位,知道他坐在哪豆混,比如 184-323-534 篓像。然后準備一個大信封,把要填的單子放在里面皿伺。我不需要知道這個人是在北京员辩,還是在上海,我把這個信封交給公司的收發(fā)室鸵鸥,這個收發(fā)室會對這個信封進行重新封裝奠滑,因為他有此員工的具體地址,然后把具有新地址的信封交給外包快遞公司妒穴。放到云計算里宋税,這就是一個虛擬網(wǎng)絡≡壮幔可以允許用戶自己定義一個地址弃甥,然后進行傳輸,為了讓它在三層網(wǎng)絡里傳輸汁讼,可以再進行封裝淆攻,再套一個包,寫上新的地址嘿架。根據(jù)外包的內(nèi)容和里層包的內(nèi)容把這個數(shù)據(jù)包發(fā)送到對應的信息那里瓶珊。

虛擬網(wǎng)絡依賴于拆包、分包∷时耄現(xiàn)在采用的方案主要是比較流行的 VXLAN伞芹,因為 VXLAN 有一系列的優(yōu)勢。第一,隧道連接一組物理機唱较,由于 VXLAN 的數(shù)據(jù)包在整個轉發(fā)過程中保持了內(nèi)部數(shù)據(jù)的完整扎唾,因此 VXLAN 的數(shù)據(jù)平面是一個基于隧道的數(shù)據(jù)平面;第二南缓,使用 UPD 協(xié)議胸遇,當數(shù)據(jù)包交給網(wǎng)卡的時候,網(wǎng)卡根據(jù)這個數(shù)據(jù)的包頭汉形,用不同的網(wǎng)卡隊列纸镊。這樣把包交給不同的CPU處理,提升性能概疆;第三逗威, 是比較有爭議的 Flood & Learn 自動管理虛擬網(wǎng)絡,VXLAN 可以進行泛洪學習岔冀,當 VTEP 收到一個 UDP 數(shù)據(jù)報后凯旭,會檢查自己是否收到過這個虛擬機的數(shù)據(jù),避免組播學習楣颠。

通過以上幾點尽纽,我們覺得 VXLAN 不錯咐蚯,但是仔細的去想童漩,就發(fā)現(xiàn)它有兩個非常大的不足。一個是組播協(xié)議春锋,大規(guī)模部署會受硬件設備組播路由限制矫膨;第二,泛洪學習的機制期奔,會把原來在二層廣播的 ARP 包擴大到三層網(wǎng)絡侧馅,這樣隨著規(guī)模擴大,廣播越來越多呐萌,會嚴重的浪費帶寬資源馁痴。所以,我們既要使用 VXLAN 肺孤,又要消滅它的不足罗晕,所以我們設置了 SDN 控制器,通過我們自己設置的規(guī)則赠堵,取代它自有的泛洪學習規(guī)則小渊。

那么這個控制器需要多少個呢?我之前曾經(jīng)了解過一些用戶生產(chǎn)環(huán)境里用到的控制器茫叭,通常只有一個酬屉。它負責整個集群中所有節(jié)點的規(guī)則,這么做造成一個問題,當集群創(chuàng)建呐萨、銷毀杀饵、遷移的時候,需要把規(guī)則同步到整個集群所有的節(jié)點中谬擦,這樣隨著用戶秒級創(chuàng)建資源的需求凹髓,同步規(guī)則的流量就會相當相當大。所以我們做了一個分布式控制器怯屉,不僅把控制器分布到 VPC 蔚舀,還分布到虛擬網(wǎng)絡里頭。每個 VPC 有 253 個虛擬網(wǎng)絡锨络。

剛才說了虛擬網(wǎng)絡和控制器赌躺,第三點 SDN 需要做的就是控制數(shù)據(jù)平面,其作用就是把數(shù)據(jù)包真的從一個地方拷貝到另外一個地方羡儿。傳統(tǒng)的數(shù)據(jù)平面礼患,比如OpenStack通常會用 OVS ,OVS 會有一個問題掠归,它會把數(shù)據(jù)交給另外一個程序缅叠,這樣會帶來一個性能的下降,而我們的方案完全改變了這個問題虏冻,自己做了一些 Kernel 的改動肤粱,將轉發(fā)放到LinuxKernel 上,而且我們是用 NFV 來實現(xiàn)的厨相。

同時我們引入了一個新的功能叫做 DVR (分布式虛擬路由器)领曼。通過上面的圖解釋一下我們?yōu)槭裁葱枰狣VR。左邊是這張是物理拓撲圖蛮穿,物理世界中 A 和 B 通信庶骄,需要把信息發(fā)送到 A 的交換機,然后到路由器践磅,然后路由器轉給 B 的交換機单刁,B 的交換機再發(fā)送給 B ,A 和 B 通常需要 4 跳才能發(fā)一個數(shù)據(jù)包府适。

我們 1.0 的時候羔飞,也是用 NFV 實現(xiàn)的 SDN ,我們會模仿物理世界细溅,虛擬出虛擬的路由器和交換機提供給用戶褥傍。如果 A、B喇聊、C恍风、D、E 這五個設備分別位于五個不同的虛擬機上,在邏輯上 A 的包經(jīng)過C朋贬、E凯楔、D、B 才能到锦募,邏輯上是四跳摆屯。但是虛擬設備每一跳都要通過物理設備去交換,而物理設備每一條四跳糠亩,這樣總得轉發(fā)量實際上需要 16 跳虐骑。這也就是為什么 1.0 的性能總是上不去。為了解決這個問題赎线,我們引入了 DVR 廷没,從 A 到 B 還是這樣,兩個 DVR 之間直接交換一下數(shù)據(jù)就可以了垂寥,因為在邏輯上有一跳颠黎,所以總數(shù)跟原來物理設備一樣,四跳完成一個數(shù)據(jù)包的轉換滞项,這樣性能就可以非常接近物理機的性能狭归,從而可以組成一個大的虛擬網(wǎng)絡。

QingCloud 的 DVR 除了實現(xiàn) VPC 簡單的功能之外文判,它實際上是一個復雜的東西过椎。因為除了保持自己跟自己的虛擬網(wǎng)絡,還需要有其他四個方向:第一個就是網(wǎng)關需求律杠,我們需要提高公網(wǎng) IP 存儲量潭流,希望 DVR 把包發(fā)到公網(wǎng)網(wǎng)關竞惋;第二是 VPC 的虛擬機要能跟硬件設備進行高度的互訪柜去。因為我們私有云用戶的機房里,不止有 QingCloud 的東西拆宛,還有Oracle的數(shù)據(jù)庫嗓奢、F5 的路由器等等,假如我們讓用戶把這些業(yè)務放到虛擬網(wǎng)絡里浑厚,虛擬網(wǎng)絡就要跟硬件網(wǎng)絡進行高速的互訪股耽。第三是VPC,可以讓用戶定義 255 個 C 段钳幅,加起來可以有 60000 多個虛擬機物蝙。第四是,我們還提供了一個邊界路由器敢艰,可以讓用戶虛擬資源跟遠程的 IDC 之間做一個互通诬乞。最后一個就是一個負載均衡器集群,我們的 DVR 就是一個平臺,讓用戶的主機和負載均衡器直接相連震嫉。

我們做的最后一個功能就是負載均衡器集群森瘪。設計是這樣,我們有一個網(wǎng)關集群連著因特網(wǎng)票堵。比如我有一個 IP 1.1 扼睬,實際上是綁定在 VG 1 這里,VG 1 會做第一次的流量轉發(fā)悴势,會把流量按照用戶定義的負載均衡器節(jié)點數(shù)量轉發(fā)到自己私有的負載均衡器節(jié)點里(1窗宇、2、3)特纤,它的特點就是担映,返回流量不需要經(jīng)過進來的這個網(wǎng)關,而是經(jīng)過自己對應的不同物理網(wǎng)關發(fā)送到因特網(wǎng)叫潦。因為當 VG 1 能力受到限制的時候蝇完,假如我們所有流量都從它回去的時候,它自己的網(wǎng)絡帶寬實際上就是整個集群的能力矗蕊。而我們把它分散之后短蜕,就可以做到,出去的流量幾乎是沒有限制傻咖。只要我們的 VG 設備有多少朋魔,它的帶寬就會有多少,因為流量不需要從默認的線路回去卿操。同時隨著用戶拓展負載均衡器節(jié)點的數(shù)量警检,也擴展了 HTTPS 的卸載能力,并且我們做到了 4 層/ 7 層的完全透明害淤,也就是說用戶通過因特網(wǎng)訪問到他們業(yè)務的時候扇雕,我們在所有轉發(fā)過程中,都會保留其原地址窥摄,用戶這邊得到的包是直接來自因特網(wǎng)用戶的 IP 地址镶奉。

本文轉載自:http://www.infoq.com/cn/articles/AS2015BJ-QingClouSDN2.0

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市崭放,隨后出現(xiàn)的幾起案子哨苛,更是在濱河造成了極大的恐慌,老刑警劉巖币砂,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件建峭,死亡現(xiàn)場離奇詭異,居然都是意外死亡决摧,警方通過查閱死者的電腦和手機亿蒸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門使碾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人祝懂,你說我怎么就攤上這事票摇。” “怎么了砚蓬?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵矢门,是天一觀的道長。 經(jīng)常有香客問我灰蛙,道長祟剔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任摩梧,我火速辦了婚禮物延,結果婚禮上,老公的妹妹穿的比我還像新娘仅父。我一直安慰自己叛薯,他們只是感情好,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布笙纤。 她就那樣靜靜地躺著耗溜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪省容。 梳的紋絲不亂的頭發(fā)上抖拴,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機與錄音腥椒,去河邊找鬼阿宅。 笑死,一個胖子當著我的面吹牛笼蛛,可吹牛的內(nèi)容都是我干的洒放。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼伐弹,長吁一口氣:“原來是場噩夢啊……” “哼拉馋!你這毒婦竟也來了?” 一聲冷哼從身側響起惨好,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎随闺,沒想到半個月后日川,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡矩乐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年龄句,在試婚紗的時候發(fā)現(xiàn)自己被綠了回论。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡分歇,死狀恐怖傀蓉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情职抡,我是刑警寧澤葬燎,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站缚甩,受9級特大地震影響谱净,放射性物質發(fā)生泄漏。R本人自食惡果不足惜擅威,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一壕探、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧郊丛,春花似錦李请、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至庆猫,卻和暖如春认轨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背月培。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工嘁字, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人杉畜。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓纪蜒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親此叠。 傳聞我的和親對象是個殘疾皇子纯续,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容