叶一力 twt企业IT社区
【導讀】本文介紹了雲端運算中網路的一些重要知識和原理,以及結合實際業務分享產業雲的一些架構設計。
【作者】一力搜索,某銀行分散式資料庫架構師,重點負責行內分散式資料庫領域及私有雲。
最簡單的總結
SDN主流選擇了OverLay。 虛擬集群的規模(非實體機所能比擬) 使得Vxlan的組播傳播( 虛擬機構成的集群包含的MAC 地址數量往往多一兩個數量級MAC地址表)對網絡設備性能要求巨大(你不可能每 個交換器都買核心交換器一樣的配置吧)。 Overlay透過隧道技術(VxLAN或GRE)和控制平面可以減少叢集中MAC位址表和ARP請求( H3C VXLAN解決方案基於SDN架構,透過引入全網的SDN Controller來實現VXLAN的管理和維護,使得VTEP之間 的資訊可以透過Controller來進行反射。這樣,VTEP的MAC位址表映射關係不再透過組播向全網其他VTEP傳達,而是統一上報給控制器,由控制器統一下發給需要接受此訊息的 其他VTEP,由具體的VTEP執行轉發機), VxLan中Vlan內部只走2層網關,只有VxLan之間(不同租戶,雲端主機和裸金屬之間)才需要走3層網關。 進而有效降低二層核心網路設備壓力。
常見網路術語
普通的VLAN數量只有4096個,無法滿足大規模雲端運算IDC的需求,而IDC為何需求那麼多VLAN呢,因為目前大部分IDC內部結構主要分為兩種L2,L3。
L2( 二層網關 ) :位於同一網段的終端用戶通信,L2網關收到用戶報文後,根據報文中包含的目的MAC類型 進行轉發。
L2網關主要解決的就是同一VNI下的VM之間的互訪 。
L3(三層閘道):用於非同一網段的終端用戶通訊或VXLAN和非VXLAN用戶間的通訊。
L3閘道解決的是不同VNI(VXLAN Network Identifier)以及VXLAN和非VXLAN之間的互訪
VTEP(VXLAN Tunnel Endpoints,VXLAN隧道端點) 為VXLAN隧道的端點,封裝在NVE中,用於VXLAN封包的封裝和解封裝。 VTEP與實體網路相連,分配的位址為實體網路IP位址。 VXLAN封包中來源IP位址為本節點的VTEP位址,VXLAN封包中目的IP位址為對端節點的VTEP位址,一對VTEP位址就對應一個VXLAN隧道。
L2架構裡面,所有的伺服器都在一個大的區域網路裡面,TOR透明L2,不同交換器上的伺服器互通靠MAC位址,通訊隔離和廣播隔離靠的vlan,網關在內網核心上。 而L3結構是從TOR層級就開始用協定進行互聯,網關在TOR上,不同交換器之間的互通靠IP位址。
ToR(Top of Rack):存取方式就是在伺服器機櫃的最上方安裝接入交換器。
EoR(End of Row):接取交換器集中安裝在一列機櫃端部的機櫃內,透過水平纜線以永久連結方式連接設備櫃內的主機/伺服器/小型機設備。 EoR 對設備機櫃需要敷設大量的水平纜線連接到交換器。
對比:
EOR佈線方式的缺點:從伺服器機櫃到網路機櫃的銅纜多(約有20-40根銅纜),且距離網路機櫃越遠的伺服器機櫃的銅纜,在機房中的佈線距離越長,由 此導致線纜管理維護工作量大、靈活性差。
TOR佈線的缺點:每個伺服器機櫃受電源輸出功率限制,可部署的伺服器數量有限,由此導致機櫃內交換器的存取連接埠使用率不足。 在幾個伺服器機櫃間共用1-2台接取交換機,可解決交換器連接埠使用率不足的問題,但這種方式增加了線纜管理工作量。
從網路設計考慮,TOR佈線方式的每台接入交換機上的VLAN量不會很多,在網路規劃的時候也要盡量避免使一個VLAN通過匯聚交換機跨多台接入交換機,因此採用TOR佈線方式的 在網路拓撲中,每個VLAN的範圍不會太大,包含的連接埠數量也不會太多。 但對於EOR佈線方式來說,接取交換器的連接埠密度高,在網路路徑最初設計時,就可能存在包含較多連接埠數的VLAN。
TOR方式的接入交換器數量多,EOR方式的接入交換器數量少,所以TOR方式的網路設備管理維護工作量大。
隨著用戶資料業務需求的激增,資料中心機房伺服器密度越來越高,虛擬化和雲端運算等新技術趨勢日益流行,使得伺服器對應的網路連接埠大大增加,並且增加了管理的複雜性,另外 乙太網路(LAN)與光纖儲存區域網路(SAN)的融合也越來越常見,這必然要求一種新的網路拓撲結構與之相對應。 在雲端運算的大潮下,這種分散式架構的業務擴展性極強,要求的伺服器數量也越來越多。 例如新的Apache Hadoop 0.23支援6000~10000台伺服器在一個叢集內,海量的伺服器數量要求充分利用資料中心機櫃空間的同時,海量的業務資料也需要更快更直接的高效能連結把資料傳送到 網路核心。 在這樣的趨勢下,顯然ToR更加適用,在業務迅速擴展的壓力下,ToR的方式可以更好的實現網絡的更快速擴展。
一 . SDN
在SDN解決方案中overlay與underlay是最常見的二個網路術語。
UnderLay指的是實體網絡,它由實體設備和實體連結組成。 常見的實體設備有交換器、路由器、防火牆、負載平衡、入侵偵測、行為管理等,這些設備透過特定的連結連接起來形成了一個傳統的實體網絡,這樣的實體網絡,我們稱之為UnderLay網路。
實作 SDN的技術主要有 overlay , OpenFlow ,和思科的 onePK 。 Overlay已成主流,該類方案主要思想可被歸納為解耦,獨立,控制三個面向。
OverLay其實就是一種隧道技術 ,VXLAN,NVGRE及STT (都是OverLay實現方式之一) 是典型的三種隧道技術, 它們都是透過隧道技術實現大二層網路。 將原生態的二層資料幀報文進行封裝後再透過隧道進行傳輸。 總之,透過OverLay技術,我們在對實體網路不做任何改造的情況下,透過隧道技術在現有的實體網路上創建了一個或多個邏輯網路即虛擬網絡,有效解決了實體資料中心,尤其是 雲端資料中心存在的諸多問題,實現了資料中心的自動化和智慧化。
與UnderLay網路相比,OverLay實現了控制與轉發的分離,這是SDN的核心理念 。
Overlay 技術與 SDN 可以說天生就是適合互相結合的技術組合。 Overlay 網路虛擬機器實體位置無關特性就需要有一個強而有力的集中控制技術進行虛擬機器的管理與控制。 而 SDN 技術恰好可以完美的做到這一點。
二 . OverLay 解決哪些痛點
Overlay由於其簡單、一致的解決問題方法,加上重新定義的網路可以進行軟體定義,已成為資料中心網路最炙手可熱的技術方案。 然而,它並不是完全由軟體定義的網絡,Overlay網絡解決方案必定是一種軟硬結合的方案,無論是從接入層VTEP混合組網的組網要求、組播或SDN控制層協議 的支持,還是VXLAN網路與傳統網路的互通來看,都需要硬體的積極配合與參與,必須建構在堅實且先進的實體網路架構基礎上。
考慮到伺服器存取的可以是虛擬交換機,也可以是實體交換機,因此有三種不同的建置模式:
2.1 OverLay类型
2.2 Overlay 网络主要解决的问题
三 . 為什麼需要 Vxlan
在雲端運算IDC裡,要求伺服器做到虛擬化,原來這個伺服器掛在TOR A上,我可以隨意把它遷移到TOR B上,而不需要改變IP位址,這個優點就是L2網路的特長,因為 我這個虛擬伺服器和外界(網關之外)通訊還靠L3,但是我網關內部互訪是走L2的,這個在L3裡是無法做到的。 因為L3裡每個IP都是唯一的,位址也是固定位置的,除非你整網段物理搬遷。 因此如何在L3網路裡傳輸L2資料呢,這就是overlay技術。
因此VXLAN(Virtual eXtensible LAN可擴充虛擬區域網路)誕生了,基於IP網路之上,採用的是MAC in UDP技術,原本OSI7層模型裡就是一層疊一層的,這種和GRE/IPSEC等tunnel技術是 不是很像,這種封裝技術對中間網路沒有特殊要求,只要能辨識IP封包即可傳送。
好了,解釋清楚了,那麼現在總結為何需要Vxlan:
虛擬機器規模受到網路規格的限制,大L2網路裡,封包透過查詢MAC位址轉發, MAC表容量限制了虛擬機器的數量。
網路隔離的限制,普通的vlan和VPN配置無法滿足動態網路調整的需求,同時配置複雜
虛擬器搬遷受到限制,虛擬機啟動後假如在業務不中斷基礎上將該虛擬機遷移到另外一台實體機上去,需要保持虛擬機的IP位址和MAC位址等參數保持不變,這就要求業務 網路是一個二層的網路。
3.1 報文的封裝與解封裝
VXLAN的核心在於承載於實體網路上的隧道技術,這意味著要對封包進行封裝和解封裝,因此需要硬體來加速處理。
在VXLAN網路中,用於建立VXLAN隧道的端點設備稱為VTEP(VXLAN Tunneling End Point,VXLAN隧道終結點 ,起到網關的作用 ), 封裝和解封裝在VTEP節點上進行 。
在雲端資料中心,部分業務是不適合進行虛擬化的(如小機伺服器,高效能資料庫伺服器),這些伺服器會直接與實體交換器互聯, 而他們又必須與對應租用戶/業務的VXLAN網路互通,此 時必須要求與其互聯的硬體交換器也能支援VXLAN協議,以接取VXLAN網路。
3.2 組播協定傳播
簡單總結,vxlan用組播協定傳播,每個VTEP都需要清楚來源和目的MAC,新增MAC位址需要組播通知一實例下所有VTEP。 另,本地VTEP 找不到目的MAC處於哪一個遠端VTEP時,也需要組播封包查找目的MAC主機所屬遠端VTEP。 租戶很多時,組播條數指數增加,對實體網路承載組播處理能力有較大要求。 引入SDN Controller來實現VXLAN的管理和維護,VTEP的MAC位址表映射關係不再透過組播向全網其他VTEP傳達,而是統一上報給控制器,由控制器統一下發給需要接受此訊息的 其他VTEP,由具體的VTEP執行轉送機制。
VXLAN網路的MAC表與隧道終端的綁定關係要用組播協定傳播,而大規格組播協定離不開實體網路設備的支援。
依照VXLAN的標準, 每個VTEP都需要了解其存取的終端MAC位址,同時也需要知道整網(該VXLAN實例中)其他VTEP下所有的終端MAC位址。 只有這樣,在本地的VTEP收到報文後需要轉發時,才能根據目的MAC查詢到需要送到遠端的目的VTEP那裡 。
依照IETF中對VXLAN網路的定義,負責在網路中傳播MAC位址和VTEP對應關係的機制,正是依託於實體網路中的組播協定。 VTEP將本地的MAC位址表利用組播協定在整個組播中傳播,從而使得整網中所有組播成員,也就是其他VTEP都知道本地的MAC位址表。 當VTEP下的終端存取情況有所更改,例如新增了MAC位址或減少了MAC位址,也需要利用組播協定通知同一個實例下的所有VTEP。 另外,當本地VTEP找不到目的MAC處於哪一個遠端VTEP時,也需要發送組播封包來尋找目的MAC主機所屬的遠端VTEP。
實際組網中,VXLAN利用了實體網路的組播群組,在建立好的組播群組中加入VXLAN中所有VTEP成員,傳遞VTEP變更資訊。 在多用戶多業務情況下,組播群組要求與VXLAN數量息息相關。 由於VXLAN網路規模的不斷拓展 (最大可達16M個VXLAN網路),所需的組播條目數會不斷增加,這實際上對於實體網路承載組播處理能力和規格提出了要求。
由於標準VXLAN架構下使用組播協議,對實體網路組播數規格要求較大,因此H3C VXLAN解決方案基於SDN架構, 透過引入全網的SDN Controller來實現VXLAN的管理和維護,使得VTEP之間的 資訊可以透過Controller來進行反射。 這樣, VTEP的MAC位址表映射關係不再透過群播向全網其他VTEP傳達,而是統一上報給控制器,由控制器統一下發給需要接受此訊息的其他VTEP, 由具體的VTEP執行轉發 機制。
在SDN架構下,硬體形態的VTEP需要能夠支援集中控制器下發的業務控制訊息,同時基於Openflow進行流程表轉送。 而傳統硬體交換器不能支援上述特性,必須由新硬體設備來執行和完成的。
3.3 VXLAN網路互通
在傳統L2網路中,封包跨VLAN轉發,需要藉助三層設備來完成不同VLAN之間的互通問題。 VXLAN網路與傳統網路、以及VXLAN網路的互通,必須有網路設備的支援。
VXLAN網路框架中定義了兩種網關單元。
VXLAN三層閘道。 用於終結VXLAN網絡,將VXLAN封包轉換成傳統三層封包送至IP網絡,適用於VXLAN網路內伺服器與遠端終端之間的三層互訪;同時也用作不同VXLAN網路互通(可 理解為不同VPC) 。 當伺服器存取外部網路時,VXLAN三層閘道剝離對應VXLAN封包封裝,送入IP網路;當外部終端存取VXLAN內的伺服器時,VXLAN依據目的IP位址確定所屬VXLAN及所屬的VTEP,加上對應的 VXLAN封包頭封裝進入VXLAN網路。 VXLAN之間的互訪流量與此類似,VXLAN閘道剝離VXLAN封包頭,並基於目的IP位址確定所屬VXLAN及所屬的VTEP,重新封裝後送入另外的VXLAN網路。
VXLAN二層閘道。 用於終結VXLAN網絡,將VXLAN封包轉換成對應的傳統二層網路送到傳統乙太網絡,適用於VXLAN網路內伺服器與遠端終端或遠端伺服器的二層互聯。 如在不同網路中做虛擬機器遷移時,當業務需要傳統網路中伺服器與VXLAN網路中伺服器在同一個二層中,此時需要使用VXLAN二層網關打通VXLAN網路和二層網路。 如圖7所示,VXLAN 10網路中的伺服器要和IP網路中VLAN100的業務二層互通,此時就需要透過VXLAN的二層閘道進行互聯。 VXLAN10的封包進入IP網路的流量,剝掉VXLAN的封包頭,依照VXLAN的標籤查詢對應的VLAN網路(此處對應的是VLAN100),並據此在二層封包中加入VLAN的802.1Q 封包送入IP網路;相反VLAN100的業務流量進入VXLAN也需要依VLAN獲知對應的VXLAN網路編號,依目的MAC獲知遠端VTEP的IP位址,基於上述資訊進行VXLAN封裝後送入對應的VXLAN網路。
可見,無論是二層或三層網關,均涉及到查表轉送、VXLAN封包的解封裝及封裝操作。 從轉送效率和執行效能來看,都只能在實體網路設備上實現,而且傳統設備無法支持,必須透過新的硬體形式來實現。