1. 程式人生 > >資料中心網路架構淺談(三)

資料中心網路架構淺談(三)

構建一個數據中心網路時,除了考慮網路硬體裝置的架構,2-7層網路設計也需要考慮。這兩者其實不能完全分開,硬體架構有時候決定了網路設計,網路設計有時候又限制了硬體架構。從應用場景,例如SDN/NFV來看,網路設計是最直接需要考慮的。所以這部分說說網路設計。

**

傳統三層網路架構中的網路設計

**
L3架構
前面幾部分說過,傳統的三層網路架構中,通常是在匯聚層做L2/L3的分隔。這樣可以在每個匯聚層POD構建一個L2廣播域,跨匯聚層的通訊通過核心交換機做L3路由完成。例如,在劃分VLAN時,將VLAN200劃分在POD A,VLAN300劃分在POD B,VLAN400劃分在POD C。這樣設計的好處是BUM(Broadcase,Unknown Unicast,Multicast)被限制在每個POD。
圖片描述

由於L2廣播域被限制了在匯聚層POD,所以伺服器的遷移一般在POD內部完成。因為跨POD遷移,對應二層網路會變化,相應的伺服器需要做一些變化,例如IP地址,預設閘道器。也就是說,伺服器所在的網路,限制了伺服器的部署範圍(只能在POD內)。

大二層架構
為了更靈活的管理伺服器,需要伺服器可以部署在資料中心任意位置,在任意位置做遷移,可以使用大二層架構。在這種架構下,整個核心交換機以下都是一個L2廣播域,L2廣播域中的不同L2網路,通過核心交換機的路由功能轉發,同一個L2網路,伺服器可以任意遷移部署。
圖片描述

這種架構的缺點就是,BUM會在整個資料中心傳播,這最終限制了網路的規模。因為網路規模大到一定程度,BUM會嚴重影響正常的網路通訊。

**

Spine/Leaf架構中的網路設計

**
Spine/Leaf網路架構中,L2/L3的分隔通常在Leaf交換機。也就是說每個Leaf交換機下面都是個獨立的L2廣播域。如果說兩個Leaf交換機下的伺服器需要通訊,需要通過L3路由,經由Spine交換機轉發。
圖片描述

與傳統三層網路架構類似,這樣的設計,能分隔L2廣播域,適用的網路規模更大。但是對應的問題就是,伺服器的部署不能在資料中心的任意位置。我們來進一步看這個問題。

當伺服器(虛擬的或者物理的)需要被部署在資料中心時,一般需要指定特定的網路分段(Segment)中,或者說特定的L2廣播域。如果Segment被侷限在了某些特定的交換機下,那麼伺服器只能在這些交換機的管理範圍內部署。也就是說,網路限制了計算資源的部署和分配。但是實際中,真正與計算資源相關的資源,例如對於物理伺服器來說,機架的空間,電源,散熱等,或者對於虛擬伺服器來說,伺服器的CPU,記憶體,硬碟等,這些因素才應該是決定伺服器是否部署的因素。如果說對應的機架或者計算資源已經被使用了80%,而其他的機架或者計算資源還基本是空置的,但是網路只在這個高負荷的位置可用,伺服器再向這個高負荷的位置進行部署明顯不合適。

有什麼解決辦法能打破網路的限制?例如給空置的機架對應的交換機也配置上相應的網路,讓新的伺服器部署在它們之上,這樣可行嗎?舉個例子,看一個最簡單的spine/leaf架構:
圖片描述

例如左邊的leaf配置了VLAN200,管理的CIDR是192.168.1.0/24,右邊的leaf交換機配置VLAN300,管理的CIDR是10.11.11.0/24。左右的伺服器可以通過L3路由進行轉發,這沒問題。但是這種情況下,伺服器的部署需要考慮網路的可用性。VLAN200的伺服器只能在左邊,VLAN300的伺服器只能在右邊,這部分上面說過。

那直接給右邊leaf交換機也配上VLAN200,IP地址也配上192.168.1.0/24。看起來似乎可以打破網路的限制,但是實際上,這會導致:

1.兩邊的伺服器的廣播域是不通的,左邊發出來的廣播,Spine上的L3路由不會轉發,所以右邊是收不到的。
2.左邊的伺服器不能到達右邊的伺服器,因為從IP地址來看,左右伺服器在一個二層網路,但是實際上兩邊伺服器又不在一個L2廣播域中,資料不會發向L3路由,本地也找不到。
3.Spine交換機會感到困惑,因為當它收到目的地址是192.168.1.0/24的資料包時,它不知道該路由給左邊還是右邊。

實際效果如下圖所示:
**圖片描述**

這裡相當於,在左右兩個Leaf交換機上,建立了兩個(而不是一個)VLAN200的網路。而由於CIDR重複,這兩個網路之間還不能路由。

**

Overlay網路

**
Overlay網路技術可以很好的解決上面的問題。Overlay技術有很多中,GRE,NVGRE,Geneva,VXLAN。這裡就不說誰好誰不好,只以VXLAN為例說明,但是大部分內容其他的Overlay技術同樣適用。

Overlay網路是在現有的網路(Underlay網路)基礎上構建的一個虛擬網路。所謂的現有網路,就是之前的交換機所在的網路,只要是IP網路就行。而新構建的Overlay網路,用來作為伺服器通訊的網路。Overlay網路是一個在L3之上的L2網路。也就是說,只要L3網路能覆蓋的地方,那Overlay的L2網路也能覆蓋。例如下圖中,原有的交換機網路不變,伺服器之間通過Overlay網路實現了跨Leaf交換機的L2網路。這樣,在Overlay網路中,伺服器可以任意部署,而不用考慮現有網路的架構。
圖片描述

當提起VXLAN解決了什麼問題時,很多人想到的是解決了VLAN ID數量有限的問題,這的確也是VXLAN RFC7348明確說明的。但是現實中解決VLAN ID數量不夠還有別的方法,例如QinQ。以VXLAN為代表的Overlay技術解決的,更多是(個人觀點)提供了一個不受物理網路限制的,可軟體定義的網路環境。

一個完整的Spine/Leaf網路架構配合VXLAN示意圖如下所示,這個圖裡面以虛擬伺服器(VM)為例說明,但是實際上並不侷限於虛擬的伺服器。對於VM來說,並不知道什麼VXLAN,VM只是把Ethernet Frame發出來。Leaf交換機(或者說VTEP)將VM的Ethernet Frame封裝成VXLAN(也就是一個UDP包),在原有的Spine/Leaf的Underlay網路傳輸。因為是一個UDP包,所以可以在原有的L3網路中任意傳輸。
圖片描述

採用Overlay,需要在Leaf交換機上整合VTEP。有時候,將這種網路架構稱為VXLAN Fabric。為什麼是Fabric,上一篇說過了。

VXLAN Fabric網路架構通常有兩種實現,一種是基於Flood-Learn的模式,與傳統的L2網路類似,另一種是基於MP-BGP EVPN作為控制層。有關資料中心內的EVPN,我在之前的多篇文章有介紹,感興趣可以去看看,這裡就不再重複了。

**

最後

**
Overlay技術並非為Spine/Leaf網路架構設計,早在傳統的三層網路架構中,也有應用Overlay技術構建虛擬網路。只是說Spine/Leaf架構作為一種相對較新的網路架構,配合VXLAN或者其他Overlay技術,能夠設計出更靈活的資料中心網路。在SDDC(Software Defined Data Center)架構或者SDN中,這種Overlay更是非常重要的一個部分。

最後的最後,這個系列的淺談就先說到這裡了。這個系列有一部分是受到 @阿布 同學的資料中心“網路架構演進(一)”和“資料中心網路架構演進(二)”的啟發,在此感謝。之所以也寫一次,是想提供一個非網工的,雲端計算從業人員的視角,希望對大家有幫助。

==========================================================
本文轉載自“肖巨集輝-軟體定義網路”專欄,連結:
https://zhuanlan.zhihu.com/p/30119950

該文章版權為作者-肖巨集輝所有,侵權必究。
如需轉載請聯絡作者獲得授權並註明出處。