SDN應對數據中心互聯(lián)網(wǎng)絡(luò )的挑戰
騰訊的網(wǎng)絡(luò )架構伴隨了騰訊15年的發(fā)展,幾乎承載了全部互聯(lián)網(wǎng)業(yè)務(wù)產(chǎn)品,包括即時(shí)通信(QQ/微信)、SNS(QZONE)、網(wǎng)絡(luò )媒體(騰訊網(wǎng)/微博)和游戲(QQGAME)等,為了給廣大互聯(lián)網(wǎng)用戶(hù)提供更好的接入體驗,數十萬(wàn)服務(wù)器分布在全球10多個(gè)城市、數十個(gè)數據中心,產(chǎn)生的跨城數據中心間流量達到數百G規模。在業(yè)務(wù)類(lèi)型多樣及流量需求規模巨大的情況下,騰訊數據中心間網(wǎng)絡(luò )主要存在如下挑戰:
首先,從響應業(yè)務(wù)的角度來(lái)看,數據中心間網(wǎng)絡(luò )鏈路帶寬資源有限,難以滿(mǎn)足業(yè)務(wù)臨時(shí)性的大容量傳輸需求,通常需要業(yè)務(wù)部門(mén)自行搭建VPN平臺并通過(guò)公網(wǎng)傳輸;對重點(diǎn)業(yè)務(wù)流量的QoS保障也需要較長(cháng)時(shí)間的擴容來(lái)滿(mǎn)足,業(yè)務(wù)部門(mén)通常抱怨基礎架構側行動(dòng)緩慢、缺乏靈活性、響應速度慢。
其次,從鏈路利用率角度分析,為確保DCI(Data Center Interconnect,數據中心互聯(lián))專(zhuān)線(xiàn)的可靠性需要對其進(jìn)行1:1備份,所以正常情況下網(wǎng)絡(luò )鏈路利用率低于50%。昂貴的DCI專(zhuān)線(xiàn)帶寬浪費過(guò)半,而業(yè)務(wù)部門(mén)又苦于DCI專(zhuān)線(xiàn)帶寬不夠,如何提高DCI鏈路利用率成為一個(gè)難題。
第三,從網(wǎng)絡(luò )管理的角度分析,在大型骨干網(wǎng)中,由于地理分布較廣和業(yè)務(wù)類(lèi)型眾多等原因,一個(gè)管理域中設備數量往往接近1000臺,完全通過(guò)人工方式來(lái)管理如此大型的分布式網(wǎng)絡(luò )系統,需要一個(gè)非常復雜的管理體系和風(fēng)險控制流程。而且,未來(lái)網(wǎng)絡(luò )規模還會(huì )持續不斷地增加,完全通過(guò)傳統方式進(jìn)行管理將是不可想象的;同時(shí),業(yè)務(wù)模式的多樣性還意味著(zhù)需要為不同的業(yè)務(wù)類(lèi)型提供差異化服務(wù),也就是說(shuō),在管理一個(gè)規模達1000臺設備的網(wǎng)絡(luò )的同時(shí),還要求在每臺設備上為不同類(lèi)型的業(yè)務(wù)提供實(shí)時(shí)變化的差異化服務(wù),其復雜程度可想而知。
SDN(Software Defined Networking,軟件定義網(wǎng)絡(luò ))將網(wǎng)絡(luò )配置從單臺設備遷移到軟件平臺,設備本身變得更加簡(jiǎn)單。網(wǎng)絡(luò )配置由中央控制器管理,控制器是一個(gè)包含算法、分析和規則的軟件,它來(lái)自一組規則,并使用OpenFlow或其它協(xié)議將配置下發(fā)到網(wǎng)絡(luò )設備。SDN允許網(wǎng)絡(luò )工程師更為靈活地控制和管理網(wǎng)絡(luò ),以便最好地服務(wù)需求,從而達到增加功能和降低運營(yíng)成本的目的。
為了更好地滿(mǎn)足業(yè)務(wù)的帶寬需求、提升專(zhuān)線(xiàn)利用率以及降低運營(yíng)復雜度,騰訊逐步實(shí)踐了數據中心間網(wǎng)絡(luò )SDN解決方案。為此我們提出了一個(gè)全新的概念——“Network as a Router”,它假設整個(gè)網(wǎng)絡(luò )只有一臺路由器,所有的功能和配置都在其中實(shí)現。試想一下,管理這樣的網(wǎng)絡(luò )將會(huì )是一件多么輕松愉悅的事情,不僅如此,通過(guò)這臺路由器提供的標準API,甚至可以讓每個(gè)用戶(hù)來(lái)自己管理其在網(wǎng)絡(luò )上使用的資源。那么,騰訊是如何將數據中心間網(wǎng)絡(luò )從傳統的網(wǎng)絡(luò )架構演變?yōu)?ldquo;Network as a Router”?又是怎樣在SDN解決方案下實(shí)現智能的流量調度、網(wǎng)絡(luò )管理的?
分階段逐步演進(jìn)的解決思路
規劃和構建一個(gè)網(wǎng)絡(luò )就好比建設一座城市,俗話(huà)說(shuō)“羅馬不是一天建成的”,網(wǎng)絡(luò )架構的改變也是一項長(cháng)期而重大的工程,需要在一個(gè)總體的藍圖下分階段逐步演進(jìn)。
道路建設
任何一座智能城市,都需要建立在穩固的基礎設施架構之上,沒(méi)有好的公路便談不上城市的智能。網(wǎng)絡(luò )也是一樣,任何智能網(wǎng)絡(luò )都是建立在穩定、可靠的基礎設施之上的。
在數據中心間網(wǎng)絡(luò )上,需要選擇穩定、可靠的網(wǎng)絡(luò )設備和主備鏈路,選擇設備節點(diǎn)的異地備份,選擇具備良好擴展性的路由協(xié)議。物理硬件設施的基礎特性跟傳統的網(wǎng)絡(luò )理念是一致的。
BRT工程
當一個(gè)城市把公路修好之后是否就可以高枕無(wú)憂(yōu)?答案是否定的,隨著(zhù)城市車(chē)輛的增多、人口的增長(cháng),再寬敞的馬路也會(huì )逐步產(chǎn)生擁堵,特別是在交通高峰期更會(huì )發(fā)生大面積擁堵,為了解決這一問(wèn)題,國內各大城市開(kāi)始建設BRT(Bus Rapid Transit,快速公交系統)工程,通過(guò)公交車(chē)專(zhuān)用車(chē)道,提前預留專(zhuān)用道路給公交車(chē),讓優(yōu)先級別更高的公交車(chē)可以暢通無(wú)阻地通行。
在網(wǎng)絡(luò )上也需要相應的技術(shù)手段預留帶寬,讓專(zhuān)用的流量在專(zhuān)用的帶寬上轉發(fā),例如MPLS-TE,不同優(yōu)先級別的TE,可以為不同類(lèi)型的業(yè)務(wù)保障、承諾不同等級的服務(wù)。
智能交通
現在,駕車(chē)者為了更快地到達目的地,通常會(huì )選擇導航工具來(lái)提供所有道路的交通信息,通常導航工具推薦的路徑可能不是物理距離最短的,但卻是交通最暢通、花費時(shí)間最短的路徑,這里體現了道路交通的一部分智能化。
在網(wǎng)絡(luò )上也可以實(shí)現類(lèi)似的功能,和過(guò)去不同的是,現在我們可以把全網(wǎng)的所有鏈路和設備都看作一個(gè)資源池,從A點(diǎn)到B點(diǎn),使用者不需要知道直連的物理鏈路有多少,只需能夠調配資源池里面的所有資源即可,因為從A到B不僅僅只有A→B直連的路徑,也有可能是A→C→B或者A→D→B。到底使用哪個(gè)路徑到達目的地,使用者也許不必關(guān)心。
如何把不同的流量放到不同的路徑上,從而避免網(wǎng)絡(luò )發(fā)生擁塞的情況,這就完全依賴(lài)于網(wǎng)絡(luò )控制器了(Network Controller)。Controller不僅僅能看到某條物理專(zhuān)線(xiàn)的帶寬,還能看到整個(gè)資源池,對池中的資源進(jìn)行總體調度,它可以判斷哪里有網(wǎng)絡(luò )帶寬,甚至與業(yè)務(wù)應用的計算聯(lián)動(dòng),根據網(wǎng)絡(luò )資源情況將計算放到有資源的節點(diǎn)進(jìn)行處理。
網(wǎng)絡(luò )控制器擁有面對用戶(hù)的接口,能夠獲取網(wǎng)管工具傳遞的信息,并通過(guò)用戶(hù)信息和網(wǎng)管信息等有效控制網(wǎng)絡(luò )設備和網(wǎng)絡(luò )資源。它可以根據實(shí)時(shí)需求將不同的flow在不同的路徑上進(jìn)行添加、刪除、修改等操作,讓全網(wǎng)資源得到合理的共享。這就相當于將全網(wǎng)看作一臺路由器,只需要維護和管理控制器就可以管理整個(gè)網(wǎng)絡(luò ),從而實(shí)現“Network as a Router”的目標。
智能調度網(wǎng)絡(luò )的技術(shù)實(shí)現
騰訊的下一代數據中心間網(wǎng)絡(luò )將會(huì )實(shí)現資源自動(dòng)池化、業(yè)務(wù)應用自動(dòng)化管理網(wǎng)絡(luò )資源、業(yè)務(wù)應用自動(dòng)感知網(wǎng)絡(luò )資源等特征。業(yè)務(wù)系統直接通過(guò)網(wǎng)絡(luò )系統提供的北向API接口實(shí)現自動(dòng)申請、使用和釋放網(wǎng)絡(luò )資源,利用集中式調度系統自動(dòng)完成網(wǎng)絡(luò )資源合理分配和使用。為了實(shí)現以上智能調度工作,PCEP(Path Computation Element Protocol)協(xié)議給了控制器和路由器一個(gè)非常好的交互接口。
傳統網(wǎng)絡(luò )設備的工作角色
在未來(lái)的網(wǎng)絡(luò )世界,報文的轉發(fā)路徑不能再由每個(gè)獨立的路由器決定。原因很簡(jiǎn)單,因為網(wǎng)絡(luò )中每個(gè)獨立的路由器就像城市中的汽車(chē)一樣,只知道自己怎樣走,不會(huì )去考慮會(huì )不會(huì )給整個(gè)城市帶來(lái)交通擁堵。
因此,未來(lái)數據中心間網(wǎng)絡(luò )中的路由器的角色將會(huì )發(fā)生變化,由原來(lái)的計算路徑、轉發(fā)報文兩個(gè)功能減少為只有轉發(fā)報文的能力,而路徑計算將會(huì )交給集中式智能管理系統統一計算和調度。在PCEP協(xié)議中,傳統路由器將擔當PCC(Path Computation Client)角色,在整套控制系統中成為控制系統的Client端。
集中控制系統的工作角色
集中控制系統就像一個(gè)交通樞紐中心,它知道每一條道路的容量、當前流量以及路上每一輛汽車(chē)將要到達的目的地。利用這些信息,它可以通過(guò)智能算法為每一個(gè)業(yè)務(wù)f(shuō)low計算出最合適的路徑。所以集中控制器就成為了PCEP協(xié)議中的Server端。但在整個(gè)控制系統中,核心部分是控制系統的邏輯算法,而不是PCEP協(xié)議,PCEP協(xié)議只是為傳統網(wǎng)絡(luò )設備提供了北向接口,為控制器提供了南向接口。
為什么說(shuō)控制系統中最重要的是邏輯算法呢?因為不同的網(wǎng)絡(luò )、業(yè)務(wù)系統和業(yè)務(wù)類(lèi)型對網(wǎng)絡(luò )資源有不同的要求,在傳統網(wǎng)絡(luò )架構中,只能按照統一的硬件網(wǎng)絡(luò )設備設計好的路徑轉發(fā),而不能靈活地為不同的業(yè)務(wù)類(lèi)型提供不同的選路方案。
在傳統網(wǎng)絡(luò )中,硬件設備提供商或者IETF協(xié)議已經(jīng)把規則固化在硬件設備中,允許用戶(hù)調整的空間很小,作為用戶(hù)只能按照固化的規則進(jìn)行業(yè)務(wù)的部署。那么這是否是我們想要的呢?從眾多的實(shí)際業(yè)務(wù)部署場(chǎng)景中可以看到,很多時(shí)候網(wǎng)絡(luò )的路徑選擇并不是最貼合業(yè)務(wù)需求的,這些方案的選擇應該交給網(wǎng)絡(luò )的使用者來(lái)決定,甚至應該交由上層的業(yè)務(wù)應用層進(jìn)行選擇。作為網(wǎng)絡(luò )的使用者,應當能更多地控制路徑選擇的邏輯算法,甚至可以為每種不同類(lèi)型的業(yè)務(wù)應用提供不同的網(wǎng)絡(luò )選路算法。
業(yè)務(wù)應用系統的工作角色
上面所說(shuō)的網(wǎng)絡(luò )控制系統是為業(yè)務(wù)應用系統提供服務(wù)的,業(yè)務(wù)應用系統通過(guò)調用網(wǎng)絡(luò )控制系統提供的北向API接口來(lái)申請、使用、釋放網(wǎng)絡(luò )資源,通過(guò)API接口通知網(wǎng)絡(luò )控制系統業(yè)務(wù)的真實(shí)需求(包括需求帶寬、延時(shí)、使用時(shí)長(cháng)等信息)。
向更簡(jiǎn)單、更智能方向發(fā)展
為了不斷提高廣大互聯(lián)網(wǎng)用戶(hù)的使用體驗,滿(mǎn)足不斷發(fā)展的業(yè)務(wù)需求,我們正在嘗試利用SDN的思路研究下一代數據中心互聯(lián)網(wǎng)絡(luò )。
在過(guò)去階段,騰訊按照業(yè)務(wù)帶寬需求構建了一個(gè)高速、穩定、可靠的數據中心間網(wǎng)絡(luò ),并且全面承載騰訊所有類(lèi)型的業(yè)務(wù),實(shí)現了網(wǎng)絡(luò )資源的靈活共享。在現階段,我們正在進(jìn)行BRT工程的建設,使用SDN的初級理念實(shí)現QoS的集中管理和控制,使用MPLS-TE提供業(yè)務(wù)差異化服務(wù)能力,為業(yè)務(wù)的快速部署提供了堅實(shí)基礎。在未來(lái)階段,我們將進(jìn)一步引入SDN理念,采用Controller控制全網(wǎng)flow的轉發(fā),讓特定的flow轉發(fā)到特定的路徑上。實(shí)現集中控制的智能調度網(wǎng)絡(luò ),簡(jiǎn)化網(wǎng)絡(luò )管理。
可以預計的是,基于SDN理念的網(wǎng)絡(luò )正向著(zhù)更簡(jiǎn)單、更智能化的方向發(fā)展,未來(lái)將會(huì )衍生出一系列相對于現有路由協(xié)議更輕量級、更易于管理的協(xié)議。千里之行,始于足下,今天我們研究SDN,應該著(zhù)眼于如何協(xié)調網(wǎng)絡(luò )的能力,增加網(wǎng)絡(luò )的可視化,提升網(wǎng)絡(luò )的差異化服務(wù),從而為今后提供更智能、更便捷的服務(wù)夯實(shí)基礎。
今天,我們探討了數據中心間網(wǎng)絡(luò )流量調度的思路,通過(guò)這個(gè)思路可以解決我們長(cháng)期以來(lái)DCI流量模型的困惑,指導我們未來(lái)DCI流量調度的發(fā)展方向。但是否所有問(wèn)題都解決了呢?在大型網(wǎng)絡(luò )中,大量的路由條目、運行了20多年的BGP協(xié)議、每個(gè)AS各自管理自己的路由條目接收發(fā)送、由于某些運營(yíng)商的不正確操作經(jīng)常導致大規模故障事件……這種運營(yíng)了20多年的互聯(lián)網(wǎng)協(xié)議和模式是否還適合今天的運營(yíng)環(huán)境?這應該引起大家更多的思考。