數據中心解決方案
9147人瀏覽一直以來,網絡世界都被一眾運營商和設備商大佬把持著,是一個相對封閉的世外桃源。但是隨著互聯網的飛速發展,傳統網絡越來越難以滿足新業務的需求。矛盾越來越難以調和,大佬們不得不出來通過添加新協議、新設備等手段來緩解問題,但是卻成效甚微。于是,人民群眾中滋生了革命的想法,現有的網絡架構既然無法繼續演進發展,為何不推倒重來,重新定義網絡呢?
于是越來越多的人開始探索新的網絡發展道路,SDN(software defines network)的概念應運而生。SDN 顧名思義,就是軟件定義網絡,其最基本的特點就是它的轉控分離網絡架構,我們都知道,傳統網絡設備分為控制平面和轉發平面。控制平面負責指揮,轉發平面負責執行。但是在SDN 網絡中就大不一樣了,SDN 網絡新增了一個網絡部件--SDN 控制器,這個控制器完全由軟件實現,它就如同網絡的大腦,可以指揮網絡中的所有設備。相應的,所有其他的網絡設備就不再需要自己的控制面了,只需要聽從控制器的命令進行轉發就可以了,我們稱之為轉發器。于是 SDN 網絡的簡單模型如圖:
大家可以看到,所有我們常見的路由器、交換機等轉發設備都變成了統一的轉發器,而所有的轉發器都直接接受控制器的指揮。我們可以把SDN 網絡和城市的交通路網做一下對比,轉發器就相當于交叉路口負責指揮的交警,而控制器就如同交通調度中心,交通調度中心了解整個城市的交通狀況,根據每條路的路況,合理的安排車流量(數據流量)。
下面分別介紹一下使用VXLAN的傳統的數據中心網絡和使用SDN的下一代數據中心網絡相對傳統網絡的改進。
標準vxlan網絡介紹
由于傳統的數據中心服務器利用率太低,平均只有10%~15%,浪費了大量的電力能源和機房資源,所以出現了服務器虛擬化技術。通過服務器虛擬化,可以有效地提高服務器的利用率,降低能源消耗,降低客戶的運維成本,所以虛擬化技術目前得到了廣泛的應用。隨著服務器虛擬化的出現數據中心也從傳統數據中心向虛擬化數據中心和云數據中心發展演進。
一臺服務器可虛擬多臺虛擬機,而一臺虛擬機相當于一臺主機。主機的數量發生了數量級的變化,這也為虛擬網絡帶來了如下問題:
在傳統二層網絡環境下,數據報文是通過查詢MAC地址表進行二層轉發,而MAC地址表的容量限制了虛擬機的數量。
當前主流的網絡隔離技術是VLAN,由于IEEE 802.1Q中定義的VLAN Tag域只有12比特,僅能表示4096個VLAN,在大規模的虛擬化網絡中無法滿足大二層網絡中標識大量租戶或租戶群的需求,而且傳統二層網絡中的VLAN無法滿足網絡動態調整的需求。
傳統TCP/IP 網絡設備結構是控制平面和轉發平面深度耦合的結構。控制平面就是一臺網絡設備的大腦,設備收到一個報文,應該怎么處理,是丟棄,還是轉發,從哪個接口發出去,這些都是控制平面需要決定得。而轉發平面就很簡單,控制平面告訴我怎么處理,我就怎么處理好了。那么如果一個大型網絡有幾十甚至幾百臺網絡設備,那么如何保證這些網絡設備能夠良好的配合,完成任務呢。顯而易見,所有的網絡設備都必須遵循一定的標準,從而保證網絡能夠動作統一。但是一個網絡中的設備不一定都是一個廠家的,廠家間也難免你看不起我,我看不起你的。于是大家就推選了一些“德高望重”的人(IETF、 IEEE等組織)負責制定這些標準,這就是所謂的標準協議,比如 OSPF、 BGP 這些。于是,當我們要部署一個新業務時,就必須先去商討這些標準,商討完后,再進行開發,驗證,最后,由于網絡中每臺設備都需要了解這些標準,所以我們需要在每臺設備上都進行更新。這么一套下來,沒有個 3、 5 年還真是難以完成。
上面我們說到了標準協議,現在標準協議是越來越多,每年僅IETF 發布的關于網絡設備的標準協議就有上千,而且還在以每年接近翻倍的速度增加。如此多的協議別說都精通,就是看一遍也去了半條命了,所以也難怪現在各廠家維保的要價越來越高,這活確實難做啊。
前面我們說過,在一個網絡中,為了使所有設備能通力配合,一般來說,所有設備都需要遵循一定的標準協議。那么體現在網絡最重要的功能路徑選擇上,就是一系列路由協議了。我們目前主流的路徑選擇協議大多是采用最短路徑算法(為了避免環路),協議會選擇帶寬較大的那條路,不管有多少業務,它們的最短路徑必然只有一條(或者等價的多條路徑),于是這條路徑就會變得擁擠不堪。
為了實現虛擬機的大范圍甚至跨地域的動態遷移,就要求把虛擬機遷移可能涉及的所有服務器都納入同一個二層網絡域,形成一個更大范圍的二層網絡,這樣才能實現虛擬機的大范圍無障礙遷移,這樣適合于虛擬機隨時隨地無障礙遷移的大范圍二層網絡我們稱之為大二層網絡。VXLAN 是為了解決云計算時代虛擬化中的一系列問題而產生的一項技術。下面就讓我們來看下VXLAN 是如何見招拆招來解決這一系列問題的。
隱形
對于“虛擬機規模受網絡設備表項規格的限制”這個問題,可能有人會想:換成規格大一些的接入交換機(比如跟核心或網關同檔次的設備)不就行了。確實可以這么做。但是在不提高網絡建設成本的前提下,如何能解決問題呢?既然無法提升設備表項規格,那就只能限制設備上的 MAC 表項,將大量 VM 的MAC 地址“隱形”。那么,如何做到隱形呢?這時,就該 VTEP 出場了。VTEP 會將 VM 發出的原始報文封裝成一個新的 UDP 報文,并使用物理網絡的 IP和 MAC 地址作為外層頭,對網絡中的其他設備只表現為封裝后的參數。也就是說,網絡中的其他設備看不到 VM 發送的原始報文。如果服務器作為 VTEP,那從服務器發送到接入設備的報文便是經過封裝后的報文,這樣,接入設備就不需要學習 VM 的 MAC 地址了,它只需要根據外層封裝的報文頭負責基本的三層轉發就可以了。因此,虛擬機規模就不會受網絡設備表項規格的限制了。
對于“傳統網絡的隔離能力有限”這個問題, VXLAN 采用了“擴容”的解決方法,引入了類似 VLAN ID 的用戶標示,也就是前文提到的 VNI。一個 VNI 代表了一個租戶,屬于不同 VNI 的虛擬機之間不能直接進行二層通信。 VTEP 在對報文進行VXLAN 封裝時,給 VNI 分配了 24 比特的空間,這就意味著 VXLAN 網絡理論上支持多達 16M(即: 224-1)的租戶隔離。相比 VLAN, VNI 的隔離能力得到了巨大的提升,有效得解決了云計算中海量租戶隔離的問題。
前面提到,為了保證業務不中斷,VM 的遷移就必須發生在同一個二層域內。現在,再回頭看下 VXLAN 網絡模型,你是不是驚奇地發現,有了 VTEP 的封裝機制和 VXLAN 隧道后,所謂的 “二層域”就可以輕而易舉的突破物理上的界限?也就是說,在 IP 網絡中, “明”里傳輸的是跨越三層網絡的 UDP 報文, “暗”里卻已經悄悄將源 VM 的原始報文送達目的 VM。就好像在三層的網絡之上,構建出了一個虛擬的二層網絡,而且只要 IP 網絡路由可達,這個虛擬的二層網絡想做多大就做多大。
傳統的VXLAN的數據中心雖然解決了三層網絡架構中出現的一些問題,但是依然是基于TCP/IP的網絡架構,這種傳統的基于TCP/IP 的網絡架構仍然會有這樣那樣的一些問題。比如,傳統的數據中心網絡創新困難,創新周期長;協議復雜,運維難度大,運維成本高;路徑規劃能力弱。下面我們來簡單分析一下為什么傳統的數據中心有這些問題。
SDN 顧名思義,就是軟件定義網絡,其最基本的特點就是它的轉控分離網絡架構。SDN 網絡新增了一個網絡部件--SDN 控制器,這個控制器完全由軟件實現,它就如同網絡的大腦,可以指揮網絡中的所有設備。相應的,所有其他的網絡設備就不再需要自己的控制面了,只需要聽從控制器的命令進行轉發就可以了,我們稱之為轉發器。我們可以把 SDN 網絡和城市的交通路網做一下對比,轉發器就相當于交叉路口負責指揮的交警,而控制器就如同交通調度中心,交通調度中心了解整個城市的交通狀況,根據每條路的路況,合理的安排車流量(數據流量)。
首先,調度中心和交警之間需要有一條順暢并且安全的溝通通道,所以openflow 協議規定了控制器和轉發器之間必須要有一條三層可達的鏈路,通過該鏈路建立 TCP 連接,并采用了安全的算法進行加密(比如 TLS)。同時,鏈路需要通過定時的 Hello 進行保活,保證鏈路出現問題時能及時發現。
由于是統一管理,每個路口的性能指標需要規范化,比如路口一共有幾條分叉路口(端口),每條路有多寬,能承擔多少車流量(帶寬),每條路是不是有事故導致通行不暢(鏈路故障),每條路目前的車流量大小(鏈路占用率)以及路口的調度能力(設備表項大小)等。這些數據必須以統一的格式上傳調度中心。同時,如果哪個路口修了新的路,也需要將上述指標主動上報給調度中心。
前面我們說過,交警只需要聽從調度中心的命令即可,但是如果針對每一輛車調度中心都要給交警下發一個指令未免也太效率低下了。于是革命者們想了一個法子,讓調度中心給每個交警一張表,交警們收到這張表,就直接根據車輛信息直接進行指揮,同時記錄下每種車輛的數量用于統計本路口的指標。這樣一來,就不用每輛車都需要調度中心直接下命令,交警直接可以自己進行指揮。
除VXLAN網絡邊緣設備,網絡中的其他設備不需要識別虛擬機的MAC地址,減輕了設備的MAC地址學習壓力,提升了設備性能。
滿足海量用戶
通過24比特的VNI可以支持多達16M的VXLAN段的網絡隔離,對用戶進行隔離和標識不再受到限制,可滿足海量租戶。
通過采用MAC in UDP封裝來延伸二層網絡,實現了物理網絡和虛擬網絡解耦,租戶可以規劃自己的虛擬網絡,不需要考慮物理網絡IP地址和廣播域的限制,大大降低了網絡管理的難度。
SDN 網絡架構中體現為一個集中化的控制策略中心。控制器根據用戶業務需求動態調配數據中心的網絡資源,提高網絡資源利用率,讓網絡更敏捷地為業務服務。它的價值主要體現在以下幾個方面。
SDN控制器基于業務抽象模型,一鍵式自動下發網絡資源;基于邏輯模型的點選或拖拽,實現端到端網絡業務自動打通;各類 Fabric 統一控制,按需下發;自動下發網絡資源,大大加速云業務上線周期。
基于 ODL 開源架構,支持 ODL 架構的第三方應用和 plugIn,充分利用開源社區資源,提供開放的產業生態圈,兼容基于標準 Openstack 的主流云平臺,協同多種主流計算管理平臺,支持通過定制化開發對接第三方 SDN 控制器,適配大部分客戶現網環境。