網絡協議之數據中心:我是開發商,自己拿地蓋別墅

無論你是看新聞、下訂單、看視頻、下載文件,最終的訪問的目的地都在數據中心裏面。我們前面學了這麼多的網絡協議和網絡相關的知識,你是不是很好奇,數據中心究竟長啥樣呢?

數據中心是一個大雜燴,幾乎要用到前面學過的所有知識。

前面講辦公室網絡的時候,我們知道辦公室裏面有很多臺電腦,如果要訪問外網,需要經過一個叫網關的東西,而網關往往是一個路由器。

數據中心裏面也有一大堆的電腦,但是它和咱們辦公室裏面的筆記本或者臺式機不一樣。數據中心裏面是服務器。服務器被放在一個個叫作機架Rack的架子上面。

數據中心的入口和出口也是路由器,由於在數據中心的邊界,就像在一個國家的邊境,稱爲邊界路由器Border Router)。爲了高可用,邊界路由器會有多個。

一般家裏只會連接一個運營商的網絡,而爲了高可用, 爲了當一個運營商出問題的時候,還可以通過另外一個運營商來提供服務,所以數據中心的邊界路由器會連接多個運營商網絡。

既然是路由器,就需要跑路由協議,數據中心往往就是路由協議中的自治區域AS。數據中心裏面的機器要想訪問外面的網站,數據中心裏面也是有對外提供服務的機器,都可以通過BGP協議,獲取內外互通的路由信息。這就是我們常聽到的多線BGP的概念。

如果數據中心非常簡單,沒幾臺機器,那就像家裏或者宿舍一樣,所有的服務器都直接連到路由器上就可以了。但是數據中心裏面往往有非常多的機器,當塞滿一機架Rack的時候,需要有交換機將這些服務器連接起來,可以互相通信。

這些交換機往往是放在機架頂端的,所以經常稱爲TORTop Of Rack交換機。這一層的交換機常常稱爲接入層Access Layer)。注意這個接入層和原來講過的應用的接入層不是一個概念。

當一個機架放不下的時候,就需要多個機架,還需要有交換機將多個機架連接在一起。這些交換機對性能的要求更高,帶寬也更大。這些交換機稱爲匯聚層交換機Aggregation Layer)。

數據中心裏面的每一個連接都是需要考慮高可用的。這裏首先要考慮的是,如果一臺機器只有一個網卡,上面連着一個網線,接入到TOR交換機上。如果網卡壞了,或者不小心網線掉了,機器就上不去了。所以,需要至少兩個網卡、兩個網線插到TOR交換機上,但是兩個網卡要工作得像一張網卡一樣,這就是常說的網卡綁定bond)。

瞭解更多內容點擊這裏

這就需要服務器和交換機支持協議LACP,Link Aggregation Control Protocol)。它們互相通信,將多個網卡聚合稱爲一個網卡,多個網線聚合成一個網線,在網線之間可以進行負載均衡,也可以爲了高可用作準備。

網卡有了高可用保證,但交換機還有問題。如果一個機架只有一個交換機,它掛了,那整個機架都不能上網了。因而TOR交換機也需要高可用,同理接入層和匯聚層的連接也需要高可用性,也不能單線連着。

最傳統的方法是,部署兩個接入交換機。兩個匯聚交換機、服務器和兩個接入交換機都連接,接入交換機和兩個匯聚都連接,當然這樣會形成環,所以需要啓用STP協議,去除環,但是這樣兩個匯聚就只能一主一備了。STP協議裏我們學過,只有一條路會起作用。

交換機有一種技術叫作堆疊,所以另一種方法是,將多個交換機形成一個邏輯的交換機,服務器通過多根線分配連到多個的接入層交換機上,而接入層交換機多根線分別連接到多個匯聚交換機上,並且通過堆疊的私有協議,形成雙活的連接方式。

由於對帶寬要錢求更大,而且掛了影響也更大,所以兩個堆疊可能就不夠了,可以就會有更多的,比如四個堆疊爲一個邏輯的交換機。

瞭解更多內容點擊這裏

匯聚層將大量的計算節點相互連接在一起,形成一個集羣,在這個集羣裏面,服務器之間通過二層互通,這個區域常稱爲一個PODPoint Of Delivery),有時候也稱爲一個可用區Available Zone)。

當節點數目再多的時候,一個可用區放不下,需要將多個可用區連在一起,連接多個可用區的交換機稱爲核心交換機

核心交換機吞吐量更大,高可用要求更高,肯定需要堆疊,但是往往僅僅堆疊,不足以滿足吞吐量,因而還是需要部署多組核心交換機。核心和匯聚交換機之間爲了高可用,也是全互連模式的。

這個時候還存在那個問題,出現環路怎麼辦? 點擊這裏瞭解更多內容

一種方式是,不同的可用區在不同的二層網絡,需要分配不同的網段。匯聚和核心之間通過三層網絡互通的,二層都不在一個廣播域裏面,不會存在二層環路的問題。三層有環是沒有問題的,只要通過路由協議選擇最佳的路徑就可以了。那爲啥二層不能有環路,而三層可以呢?你可以回憶一下二層環路的情況。

如圖,核心層和匯聚層之間通過內部的路由協議OSPF,找到最佳的路由進行訪問,而且還可以通過ECMP等價路由,在多個路徑之間進行負載均衡和高可用。

但是隨着數據中心裏面的機器越來越多,尤其是有了雲計算、大數據,集羣規模非常大,而且都要求在一個二層網絡裏面。這就需要二層互連從匯聚層上升爲核心層,也即在覈心以下,全部是二層互連,全部在一個廣播域裏面,這就是常說的大二層

如果大二層橫向流量不大,核心交換機數目不多,可以做堆疊,但是如果橫向流量很大,僅僅堆疊滿足不了,就需要部署多組核心交換機,而且要和匯聚層進行全互連。由於堆疊只解決一個核心交換機組內的無環問題,而組之間全互連,還需要其他機制進行解決。

如果是STP,那部署多組核心無法擴大橫向流量的能力,因爲還是隻有一組起作用。

於是大二層就引入了TRILLTransparent Interconnection of Lots of Link),即多鏈接透明互聯協議。它的基本思想是,二層環有問題,三層環沒有問題,那就把三層的路由能力模擬在二層實現。

運行TRILL協議的交換機稱爲RBridge,是具有路由轉發特性的網橋設備,只不過這個路由是根據MAC地址來的,不是根據IP來的。

點擊這裏瞭解更多內容

Rbridage之間通過鏈路狀態協議運作。記得這個路由協議嗎?通過它可以學習整個大二層的拓撲,知道訪問哪個MAC應該從哪個網橋走;還可以計算最短的路徑,也可以通過等價的路由進行負載均衡和高可用性。

TRILL協議在原來的MAC頭外面加上自己的頭,以及外層的MAC頭。TRILL的頭裏面Ingress RBridge,有點像IP頭裏面的源IP地址,Egress RBridge是目標IP地址,這兩個地址是端到端的,在中間路由的時候,不會發生改變。而外層的MAC,可以有下一跳的Bridge,就像路由的下一跳,也是通過MAC地址來呈現的一樣。

如圖中所示的過程,有一個包要從主機A發送到主機B,中間要經過RBridge 1、RBridge 2、RBridge X等等,直到RBridge 3。在RBridge 2收到的包裏面,分內外兩層,內層就是傳統的主機A和主機B的MAC地址以及內層的VLAN。

在外層首先加上一個TRILL頭,裏面描述這個包從RBridge 1進來的,要從RBridge 3出去,並且像三層的IP地址一樣有跳數。然後再外面,目的MAC是RBridge 2,源MAC是RBridge 1,以及外層的VLAN。

當RBridge 2收到這個包之後,首先看MAC是否是自己的MAC,如果是,要看自己是不是Egress RBridge,也即是不是最後一跳;如果不是,查看跳數是不是大於0,然後通過類似路由查找的方式找到下一跳RBridge X,然後將包發出去。

RBridge 2發出去的包,內層的信息是不變的,外層的TRILL頭裏面。同樣,描述這個包從RBridge 1進來的,要從RBridge 3出去,但是跳數要減1。外層的目標MAC變成RBridge X,源MAC變成RBridge 2。

如此一直轉發,直到RBridge 3,將外層解出來,發送內層的包給主機B。

這個過程是不是和IP路由很像?點擊這裏瞭解更多內容

對於大二層的廣播包,也需要通過分發樹的技術來實現。我們知道STP是講一個有環的圖通過去掉邊形成一棵樹,而分發樹是一個有環的圖形成多棵樹,不同的樹有不同的VLAN,有點廣播包從VLAN A廣播,有的從VLAN B廣播,實現負載均衡和高可用。

核心交換機之外,就是邊界路由器了。至此從服務器到數據中心邊界的層次情況已經清楚了。

在覈心交換上面,往往會掛一些安全設備,例如入侵檢測、DDoS防護等等。這是整個數據中心的屏障,防止來自外來的攻擊。核心交換機上往往還有負載均衡器,原理前面的章節已經說過了。

在有的數據中心裏面,對於存儲設備,還會有一個存儲網絡,用來連接SAN和NAS。但是對於新的雲計算來講,往往不使用傳統的SAN和NAS,而使用部署在x86機器上的軟件定義存儲,這樣存儲也是服務器了,而且可以和計算節點融合在一個機架上,從而更加有效率,也就沒有了單獨的存儲網絡了。

點擊這裏瞭解更多內容

於是整個數據中心的網絡如下圖所示。

這是一個典型的三層網絡結構。這裏的三層不是指IP層,而是指接入層、匯聚層、核心層三層。這種模式非常有利於外部流量請求到內部應用,這個類型的流量,是從外到內或者從內到外,對應到上面那張圖裏,就是從上到下,從下到上,上北下南,所以稱爲南北流量

但是隨着雲計算和大數據的發展,節點之間的交互越來越多,例如大數據計算經常要在不同的節點將數據拷貝來拷貝去,這樣需要經過交換機,使得數據從左到右,從右到左,左西右東,所以稱爲東西流量

爲了解決東西流量的問題,演進出了葉脊網絡Spine/Leaf)。

  • 葉子交換機leaf),直接連接物理服務器。L2/L3網絡的分界點現在在葉子交換機上,葉子交換機之上是三層網絡。
  • 脊交換機spine switch),相當於核心交換機。葉脊之間通過ECMP動態選擇多條路徑。脊交換機現在只是爲葉交換機提供一個彈性的L3路由網絡,南北流量可以不用直接從脊交換機發出,而是通過與leaf交換機並行的交換機,再接到邊界路由器出去。

傳統的三層網絡架構是垂直的結構,而葉脊spine/leaf網絡架構是扁平的結構,更易於水平擴展。

小結

好了,複雜的數據中心就講到這裏了。我們來總結一下,你需要記住這三個重點。

  • 數據中心分爲三層。服務器連接到接入層,然後是匯聚層,再然後是核心層,最外面是邊界路由器和安全設備。
  • 數據中心的所有鏈路都需要高可用性。服務器需要綁定網卡,交換機需要堆疊,三層設備可以通過等價路由,二層設備可以通過TRILL協議。
  • 隨着雲和大數據的發展,東西流量相對於南北流量越來越重要,因而演化爲葉脊網絡結構。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章