閱讀30 返回首頁    go 阿裏雲 go 技術社區[雲棲]


阿裏雲SDN、NFV技術揭秘

摘要:阿裏雲的網絡產品,為海量的客戶提供了私密、靈活、高效、可靠、安全的基礎服務,在由雲棲社區和阿裏雲網絡團隊聯合主辦的2017阿裏雲網絡技術在線高峰論壇上,阿裏雲高級技術專家仙俠就為大家揭開了阿裏雲的網絡產品背後技術架構,並且分享了阿裏雲網絡團隊對SDN和NFV相關技術的理解和實踐。

本文內容根據演講嘉賓分享視頻以及PPT整理而成。



公有雲客戶的需求:“既要”、“又要”、“還要”
SDN、NFV的概念對於很多同學而言是比較陌生的,其實在阿裏雲網絡團隊最開始設計SDN和NFV的時候對於這兩個概念也並沒有非常深刻的理解。其實在最開始,阿裏雲是一切以客戶的需求作為出發點來做的。那麼問題來了,阿裏雲是一家麵向公有雲用戶的雲計算公司,而做雲計算,客戶到底需要什麼樣的功能呢?經過阿裏雲長期對於客戶的調研和分析發現,阿裏雲所提供的公有雲需要能夠滿足客戶們各種各樣的訴求,這些需求可以使用三個詞形象地概括:“既要”、“又要”、“還要”。
68d7e5ec8c870fcb9a84868ba6e79dcff552c64b
阿裏雲所麵向的是公有雲的用戶,大體上客戶的需求可以分為以下七點:海量租戶、隔離性、互聯、安全、高性能、可靠性、私密。
  • 海量租戶;對於阿裏雲而言,首先需要解決的問題就是海量租戶的問題。海量租戶會對於阿裏雲的係統容量造成巨大的挑戰,那麼對於用戶或者租戶而言,他們首先需要考慮的問題就是自己能否與其他人隔離起來。
  • 隔離;所以對於公有雲用戶,首先需要提供的功能就是隔離。
  • 互聯;在實現了隔離之後,用戶又會提出新的需求,就是需要實現互聯。因為每個租戶自己的資源不是一個完全孤立的島嶼,彼此之間必然會存在資源的互聯互通,除此之外還需要滿足和公網流量進行互通,甚至需要跨機房、跨地區以及出海等各種各樣的互聯互通需求。
  • 安全;對於公有雲用戶而言,在雲上往往會非常關注的一件事情就是自身產品以及數據的安全,而且用戶對於雲上安全的需求是非常強烈的。
  • 高性能;當用戶上雲之後,其所接到的需求也會遞增,所以也會期望能夠獲取性能更高的產品來滿足提供更高的PPS以及BPS的需求。
  • 可靠;看似用戶的一係列問題都已經滿足了,但是實際上還會有更多的需求出現。比如虛擬機一定是存活於某一個宿主物理機上的,那麼如果宿主物理機宕機了應該怎樣處理,如果整個機房都掛掉了又應該怎麼處理,這就是客戶對於阿裏雲的可靠性訴求。
  • 私密;除此之外,客戶還會產生一些保護私密性的訴求。比如想要和自己的辦公網互通的時候並不會將辦公網暴露在公網上,那麼就需要將自己的辦公網與阿裏雲的VPC打通,並使得兩者能夠互聯互通而且還能夠保護客戶的私密性。
以上就是客戶對於阿裏雲所提出的訴求,總結而言就是“既要”、“又要”、“還要”的訴求。

先把網絡隔開

阿裏雲首先需要去滿足公有雲用戶對於網絡的第一個需求:隔離。如果對於整個網絡進行抽象,那麼先隔離開就是為每個租戶提供一個完全屬於自己的網絡空間。在這個網絡空間裏,用戶可以自行購買計算、存儲等一係列資源,這樣網絡對於用戶而言稱為虛擬網絡,而虛擬網絡最終是由物理網絡承載的。
d23fc11b2024ee7c05176c757888d1666c49aaca
如上圖所示,“先隔開”的概念實際上是包含兩個層麵含義的。第一層含義是租戶與租戶之間網絡的隔開,也就是每個租戶都會有自己的虛擬網絡,彼此之間是沒有任何關聯的完全隔開的網絡。可以看到,在虛擬網絡中會提供一個虛擬路由器,並且會提供很多個虛擬交換機,而在虛擬交換機下麵會掛載計算節點ECS、負載均衡器SLB、雲數據庫RDS以及緩存OCS等雲產品。在整個虛擬網絡流量轉發路徑中,ECS、負載均衡器SLB和雲數據庫RDS等構成了東西向的流量路徑;而ECS的流量需要出公網和其他的網絡互聯互通,就會需要經過虛擬交換機和虛擬路由器進行流量交換,以上就是虛擬網絡層麵的隔開。

而在另外一個層麵的隔開是這樣的理念:阿裏雲希望用戶與用戶的流量可以完全隔開,並且采用通用的Overlay技術方案。Overlay並不是一個新的概念,其有很多的實現方案比如IPONIP、XLAN等,阿裏雲采用的是XLAN方案。在XLAN方案中,為每個用戶提供了一個具有XLAN地址空間的VPC網絡,在這個網絡裏麵實現了虛擬網絡隔開和物理網絡隔開。在物理網絡隔開方麵,普通的組網裏麵有一個核心交換機、一個接入交換機以及最下麵的物理服務器,這是物理網絡接入的基本情況。如果在傳統的網絡裏麵,路由以及流量的交換等一係列功能實際上是由傳統的交換設備來實現的,那麼如果想使用Overlay的技術把這些功能分開,把路由以及交換的功能做到虛擬網絡裏麵之後就會發現物理網絡變得非常簡單,這也就意味著物理網絡的可靠性以及穩定性會更好,這也是阿裏雲網絡團隊多年以來得出的經驗。所以對於物理網絡的需求就是隻要物理網絡達到2層或者3層互通即可,而一係列複雜的邏輯會在虛擬網絡中完成,如此就能夠形成上下完全隔離的一張網絡。這樣的做法會帶來非常多的好處,比如對於物理網絡而言,它並不知道虛擬網絡的流量是如何轉發的,而隻知道將虛擬流量包裝成為XLAN之後在物理網絡中去跑,這是一個非常簡單的拓撲關係。在虛擬網絡中的虛擬路由器、虛擬交換機等實際上都是虛擬的網絡設備,這也就是NFV的概念。

光隔離不夠,還要互通
b17b2c1098c52fa352f9d6b767bd9918875603fc
在實現了隔離之後,實際上還遠遠不夠。用戶的訴求還有很多,其中比較典型的就是互通。雲上的客戶對互通的需求大致可分為四類:
  • 私網互通。私網互通不僅包括VPC內部的私網互通,還需要包括同一用戶的兩張網絡之間的互通。
  • 公網互通。公網互通屬於必備的功能之一,它也是混合雲接入的一種方案。ECS搭配公網IP來聯通公網是其中的一種方式,除此之外,用戶還會需要另外的方式。舉個例子現在每個家庭中都會有自己的無線網絡,自己的手機等設備連接上無線網絡之後就可以連接到公網,也就能夠享受到SNAT服務。所以對於用戶網絡而言,是具有聯通公網的需求的,也就是用戶網絡會具有SNAT和DNAT的一係列需求。
  • 用戶IDC。對於普通用戶而言,私網互通和公網互通這兩種形態已經能夠滿足絕大部分的需求了,但是實際中還會有一些用戶具有特殊的需求,比如這些用戶的線下機房是屬於IDC的,線下機房扛起平時的流量已經足夠了,但是會有一些流量的高峰出現,比如舉辦活動或者新聞熱點出現的時候,所以需要有一個彈性擴展的機房空間。對於這樣的場景,阿裏雲提供了專線接入方案,最後得到的效果就是把用戶的IDC就近接入一個阿裏雲的POP點,這樣就可以實現IDC和阿裏雲VPC之間的互聯互通。就阿裏雲對於用戶的了解來看,對於上述這樣的方案,用戶會存在兩種訴求:第一種訴求就是用戶需要非常可靠的接入,不僅可靠還需要延遲比較低,這是一種硬專線的接入方式。還有一種訴求就是需要較為靈活的接入方式,也就是軟專線的接入。
  • 跨地域互通。除了能夠用上述三種方案滿足需求的用戶之外,阿裏雲還有一些用戶的業務分散在全國各地甚至世界各地,這樣的用戶往往就會產生跨地區甚至全球互通的需求。
自研是解決互通之道
如下圖所示的是阿裏雲設計的整體網絡拓撲圖。阿裏雲在為用戶提供網絡解決方案的時候也會考慮幾套方案,其中第一種方案就是使用交換設備來解決問題,而這種方案會帶來兩個問題,第一個問題就是包括交換設備在內的硬件的研發周期往往會比較長,這樣就容易跟不上用戶需求發展的節奏,可能導致當用戶的需求提出之後,卻遲遲無法實現,所以這樣的方案就會受製於硬件。而依賴於硬件也會帶來另外一個問題,因為像交換設備這些硬件設備的升級都是需要重啟的,而設備重啟會對於用戶的業務產生時間點不可精確控製的影響。所以從整體層麵上來看,阿裏雲認為通過硬件方式實現解決用戶網絡的問題會存在很多弊端,因此阿裏雲選擇了軟件的方式,通過自研一些網絡設備解決了上述的問題。
bcb873a9a1f0269f1c8d67034cb44347419f4f86
上圖中有幾點需要說明,其中的虛擬交換機、網絡設備和控製器這三部分都是阿裏雲自研的產品。從上向下看這張圖,自研網絡設備會承載用戶IDC機房的流量和VPC流量的專線流量互通,也就是自研設備會承載兩個設備之間的流量,將其打通。除了用戶IDC之外,還有公網南北向的流量,南北向的流量是由自研的網絡設備承載的。虛擬交換機承載的是東西向流量,比如VM和RDS數據庫進行東西向數據交換的時候,是需要經過虛擬交換機的。所以,從數據層麵上來看,自研網絡設備和虛擬交換機設備之間的分工都非常明確。而在控製層麵,自研的控製器對自研的網絡設備和虛擬交換機會進行流表和轉發表的下發,實際上是由自研控製器來控製整個轉發行為。在控製器上麵可以見到的控製台以及售賣等一係列的配套周邊資源。對於整體網絡拓撲圖而言,從上往下以及從左往右的分工都是非常清晰明確的。

自研節點可靠嗎?
這裏可能有同學會產生疑問:這麼多自研的東西是否靠譜呢?對於這個問題,阿裏雲網絡團隊在研發的時候也經常自問,這些設計真的靠譜嗎?真的能夠解決問題嗎?當發生故障的時候真的能夠把對於用戶的影響降到最低嗎?所以在阿裏雲網絡團隊設計整個產品的時候就已經把產品的可靠性考慮在內了。阿裏雲網絡團隊思考了很多,認為冗餘容災仍舊是最重要的手段。在如下圖所示的拓撲圖中,自研的網絡設備是集群化的,而集群是由多台設備組成的,也就是說首先這個集群是可以水平擴展的,當流量達到水位之後就可以通過水平擴展來抗住更多的流量。第二點,設備之間實際上是沒有關係的,也就是說當集群中某台設備宕機了,流量可以自動被其他的正常的設備承擔,這樣就可以做到對於用戶沒有影響,用戶無感知熱升級也是阿裏雲的技術優勢所在。
2bcf3e4c46bf7b111a817006817816fac53f152b
除此之外,如果網絡節點隻在一個機房,如果機房掛掉怎麼辦?這就涉及到容災的另外一個層麵,也就是機房和機房之間的容災。比如在上圖中,機房1中自研的網絡設備和機房2中自研的網絡設備之間形成的是互為主備的備份關係,這樣在沒有網絡設備故障的時候,機房1和機房2的設備都抗住自己的流量,此時機房1的備也是機房2,而機房2的備也是機房1,他們互為主備都是Active的。而當機房1發生了故障之後流量就會自動遷移到機房2上去,這樣就可以實現瞬時的容災。而自研的控製器采用的也是類似的方案。也就是從這個層麵上來看,所有的自研方案都可實現容災和備份,並且能夠實現機房之間的容災冗餘,使得機房能夠非常可靠地提供服務。

安全、安全、還是安全
安全永遠是公有雲用戶排在第一位的訴求。這裏的安全特指公網層麵的安全,公網其實是一個非常脆弱的地方,如果用戶將自己的服務暴露在公網上,往往會有黑客進行攻擊或者破壞。接下來就分享阿裏雲對於公網安全的處理邏輯和采取的方案。
c3e034054c202f05a5bc799f3ffa66427730bac8
首先,當公網流量進入到阿裏雲的時候,會有一個旁路的檢測設備,這就是流量的清洗中心。當流量進入到機房之後,旁路檢測設備就會對於流量進行檢測和分析,如果發現其中包含攻擊流量就會對它進行清洗。而且這裏旁路檢測設備的清洗能力是TB級別的,也就是說如果TB級別的流量過來都能夠在這裏清洗完成。當然清洗的過程是需要一定的時間反應的,在這一時刻流量也會透到下一層的自研的邊界網關設備上。在邊界網關設備上也需要有TB級別的容量,也就是當清洗設備還沒有完成清洗工作之前,邊界網關設備需要扛起全部流量,這裏包括了正常流量和攻擊流量。當流量到了邊界網關設備之後接下來會經過一係列的處理流程對流量進行分析和限速。如果流量達到了限速的標準,就會將流量限製下來,到這一步就能夠抵抗住大概60%~70%以上的攻擊流量,經過限速處理完了之後流量就會通過黑名單的過濾流程。其實限速這個環節是比較模煳的處理手段,而過濾這個環節則是比較明確的處理,誰有問題就直接丟掉誰,在經過了過濾階段之後,就能夠抵抗住大概90%以上的攻擊流量。最後流量會到調度中心,調度中心會對於流量進行采樣分析,將攻擊流量甚至包括一些畸形包檢測出來最終反饋給過濾環節,以此來豐富過濾環節的處理,讓過濾環節更好地處理流量。

控製器抽象出虛擬的網絡組件
db64b5804bf13325dbb6462f2828baa81cbc9877
在虛擬網絡上已經有很多的虛擬組件了,比如大家在VPC中所見到的虛擬交換機、虛擬路由器,這是兩個最常見的虛擬組件。虛擬交換機為其下的ECS、RDS等產品提供數據交換的服務,而虛擬路由器則允許用戶在其上加一些路由來控製整個網絡流量的轉發。虛擬邊界路由器可能大家看到的比較少,其主要應用在有專線接入的場景中。虛擬邊界路由器一端連接用戶的IDC,另一端連接阿裏雲的VPC,這裏的VPC會與阿裏雲上的虛擬路由器關聯起來,但是又不是直接和虛擬路由器直接連接起來的,實際上中間需要借助路由器接口,也就是虛擬路由器和虛擬邊界路由器都會有一個接口,這樣中間連接起來。還有就是虛擬NAT網關,以及阿裏雲剛剛推出的虛擬VPN網關等虛擬網絡組件。

阿裏雲的雲市場
在介紹了這麼多阿裏雲官方提供的NFV之後,其實用戶可能還不過癮,因為用戶的需求層出不窮,所以還可以去阿裏雲的雲市場上去搜尋相應的功能。
756d0346a1bac5ca8f7494c581ab85344854d14b
阿裏雲的雲市場能夠提供豐富的產品,並且打包成鏡像,如果大家有需要可以按照鏡像去購買一個ECS,這個ECS就能夠達到想要的功能,比如雲市場能夠提供路由器、防火牆、VPN以及DNS等各種各樣的NFV。那麼如何玩轉這些NFV組件呢?其實這些NFV組件都是存在於ECS中的,也就是用戶可以選擇雲市場中的鏡像,並用鏡像來生產一個ECS,這個鏡像中就提供了VPN等一係列的NFV功能。而對於用戶而言,他們所需要的是可靠的NFV服務,那麼想要實現可靠性至少需要兩台ECS,如同上圖中所示的1.4和1.3就是一個NFV組件的兩台機器,這兩台機器之間在跑一個VRRP的協議,這樣可以形成一個主備的高可用服務。當組裝出NFV服務以後,問題就來了:1.2和它之間還能聯通嗎?其實還需要另外一個環節在於路由表。阿裏雲向用戶提供開放用戶對路由表控製的一整套方案,比如需要訪問哪一個地址,下一跳需要跳到哪裏,形成這樣自定義的一個路由將流量導到這兩台NFV的服務器上的一台上,因為兩台中一個為主,另外一個為備。這就是在雲市場上,用戶通過DIY方式解決自己需求的方案。

二、什麼是SDN

上麵主要介紹了NFV以及虛擬網路組件以及NFV如何去滿足用戶的互聯互通、安全、隔離等等一係列的需求,那麼問題又來了,究竟什麼是SDN呢?

阿裏雲的SDN架構
阿裏雲網絡團隊在最初設計網絡產品的時候對於SDN這個概念也不是十分理解的,但是隨著產品以及技術架構的逐漸演化,發現所做的東西就是SDN的產品。阿裏雲的SDN架構圖如下所示,最下麵一層是硬件層,這一層包括服務器、網卡、交換機、路由器、物理網絡以及光纖等硬件設備。在硬件層之上是數據層,數據層則包括了之前所提到的邊界網關、虛擬網關以及虛擬交換機等轉發層麵的東西。在數據層之上是兩個管控層——控製層和自治層,控製層主要負責生產虛擬機以及IP等,而自治層主要負責對於整個SDN係統的部署、運維、自製以及整個運維故障的發現和自愈這樣一係列的管控。在自製層中有很多個模塊對於業務進行監控、信息采集以及流量采樣,之後會根據這些信息進行趨勢的預判和預測,並且根據采集的數據來判斷是否報警或者進行故障的自愈。在管控層麵之上是產品層,這裏包括了VPC、負載均衡以及公網IP等雲產品。
e08ae843fa9dc2966f6f105eaff6d10044a6a37b

對於SDN的一點淺見:運維自動化
其實阿裏雲網絡團隊對於SDN的理解中最重要的一點就是自治和自愈,SDN需要能夠管理得了這個網絡、治理網絡並且發現問題之後需要讓網絡能夠自愈,將故障修複。也就是說運維的自動化是對於SDN最核心的一點理解。
3a9967285390440da0c38c58ea5148ec5c64bede

用戶看得到也摸得著的SDN
除此之外,阿裏雲還希望開放整個SDN的功能給用戶,賦能用戶來管理自己的這張網絡,讓用戶能夠看得見並且摸得著還能用得了。比如在網絡層麵,阿裏雲希望能夠使得用戶想要怎麼連接就能夠怎樣連接,想要怎樣控製就怎樣控製,按照用戶自己的需求去跑。阿裏雲還希望賦能用戶網絡的彈性伸縮以及遷移的能力,當用戶的業務流量壓力上來之後,可以實現整體業務的擴展來抵抗業務的高峰,當高峰過去之後,希望能夠自動地縮回去。並且阿裏雲希望能夠為用戶提供自動熱遷移這樣的一係列功能,幫助用戶能夠更快速地解決自己業務中的問題。對於彈性公網IP而言,阿裏雲為用戶提供了一係列的方案,彈性公網IP既可以綁定給ECS也可以綁定給SLB,還可以綁定給HIVIP等,總而言之就是公網IP可以隨意綁定,並且可以隨意變配,並且通過Open API 、混合雲產品以及可選擇的計費方式來為用戶提供更多的網絡管理方式。
3ceeffc62868c5df765285bb1c14a64d4b79bdc4

三、NFV與SDN實踐

新浪微博的實踐案例
對於微博而言,每當出現新聞熱點、大型活動或者除夕、春晚等節日的時候往往會有突發的流量上來。實際上,微博選擇基於阿裏雲構建混合雲平台,微博自己的IDC機房和阿裏雲之間拉了一根專線,那麼這就相當於微博在阿裏雲上獲得了一個彈性的機房,在這個彈性機房VPC裏麵,微博係統可以非常快速地擴展自己的計算資源,某一年的除夕當天,微博日活躍用戶首次突破1億,同比上一年同期大幅增長了近50%。通常大家的印象是當用戶量上來之後,成本也會隨之上升,但是實際情況是即使微博的業務量上升了那麼多,但是其成本卻降低了很多,這就是阿裏雲的VPC以及ECS所帶來的一係列技術紅利。阿裏雲可以實現在10分鍾的時間內為微博提供數千台ECS,可以讓微博係統的計算資源規模翻倍,提供更高的計算能力。
2f936ec49e7a535c564097ae28f400ca801a1f25
很多同學在搭建網站或者做一些服務的時候,傳統情況下需要租賃機房和機櫃,還會需要購買電力、搭建網絡,這一係列的活動可能需要花費很久的時間才能獲得計算資源,但是對於微博而言,阿裏雲僅用10分鍾就可以將其計算資源的規模翻倍,這是技術進步所帶來的效率的巨大提升。

四、如何麵對飛速發展的未來

69af171fcf49a40e89edba0d659165c943fd5f1a
其實阿裏雲的步伐已經很快了,但是這個世界的變化得更快,客戶的需求會更多,未來應該怎麼辦呢?其實對於阿裏雲網絡產品而言,未來主要有以下三個層麵的發展方向:
  • NFV。從產品形態層麵而言,阿裏雲會加大對NFV以及相關雲產品的研發。包括為用戶提供智能DNS私網定製,為用戶提供VPC內部的一套域名解析方案,能夠幫助用戶很容易地實現兩地三中心的網絡架構,從而使得用戶能夠快速地應對突發情況。IPSEC接入網關屬於VPN網關,這個目前已經實現了,並且目前已經處於公測期了,未來VPN除了支持IPSEC之外,還會支持SSL2協議。除此之外,還會有GRE接入網關和子網路由,讓用戶在子網中自己定義路由來控製更細粒度的流量的轉發。
  • 擁抱大數據。由於目前用戶的反饋是認為VPC像是一個黑盒子,用戶看不到整個VPC的流量是如何走的,也看不到每個包是怎樣流動的。所以阿裏雲網絡產品未來會在數據方麵進行一係列的加強,會采集數據並對於數據進行分析,為用戶提供數據流動的解決方案,讓用戶能夠看到每個數據包在網絡中是如何流動的。
  • 增強用戶體驗。當實現了數據采集以及數據分析以後就可以為用戶做更多優化用戶體驗的事情,比如實現網絡可視化,可以實現所見即所得,使得業務可視化。除此之外,還需要實現能力的拓展,比如實現全球加速和接入的能力,讓更多的用戶能夠找到最近的接入點能夠將自己的IDC機房或者資源與阿裏雲進行打通,這也是阿裏雲努力的方向。最後,因為用戶的需求是層出不窮的,沒有辦法滿足所有用戶的需求,所以阿裏雲也會開放第三方開發者雲生態平台,提供一係列的API讓用戶調用,形成第三方的市場來讓更多的開發者為用戶提供NFV的服務。

最後更新:2017-10-09 22:34:51

  上一篇:go  攻略:如何快速賺取積分,Get雲棲大會資料
  下一篇:go  Java安全編碼:糟糕的在線建議和令人困惑的APIs