編者按:無論是雲計算還是SDN都把注意力集中在數據中心網絡的建設上,各種解決方案層出不窮,其中以VMware為代表的軟件廠商提出Overlay網絡方案后,為數據中心網絡的發展提出了新的思路。那么Overlay是如何與物理網絡相互依存的?
在以往IT建設中,硬件服務器上運行的是虛擬層的計算,物理網絡為了與虛擬服務器對接,需要網絡自己進行調整,以便和新的計算層對接(如圖1所示)。
Overlay是在傳統網絡上虛擬出一個虛擬網絡來,傳統網絡不需要在做任何適配,這樣物理層網絡只對應物理層的計算(物理機、虛擬化層管理網),虛擬的網絡只對應虛擬計算(虛擬機的業務IP),如圖2所示。
Overlay的技術路線,其實是從架構上對數據中心的建設模式進行了顛覆,對物理設備的要求降至最低,業務完全定義在層疊網絡上。那么,這是否意味着將來數據中心使用Overlay網絡不需要硬件支持而只需要軟件定義就足夠了呢?答案無疑是否定的。
以下討論Overlay網絡與物理網絡的依存關系。由於VXLAN(Virtual eXtensible LAN)技術是當前最為主流的Overlay標准,以下VXLAN技術為代表進行具體描述。
1. 報文的封裝與解封裝
VXLAN的核心在於承載於物理網絡上的隧道技術,這就意味着要對報文進行封裝和解封裝,因此需要硬件來加速處理。
在VXLAN網絡中,用於建立VXLAN隧道的端點設備稱為VTEP(VXLAN Tunneling End Point,VXLAN隧道終結點),封裝和解封裝在VTEP節點上進行。
在雲數據中心,部分業務是不適合進行虛擬化的(如小機服務器,高性能數據庫服務器),這些服務器會直接與物理交換機互聯,而他們又必須與對應租戶/業務的VXLAN網絡互通,此時就必須要求與其互聯的硬件交換機也能支持VXLAN協議,以接入VXLAN網絡。
考慮到服務器接入的可以是虛擬交換機,也可以是物理交換機,因此存在三種不同的構建模式(如圖3所示):其中網絡Overlay方案中,所有終端均采用物理交換機作為VTEP節點;主機Overlay方案中,所有終端均采用虛擬交換機作為VTEP節點;混合Overlay方案中,既有物理交換機接入,又有虛擬交換機接入,且軟件VTEP和硬件VTEP之間可以基於標准協議互通。
在網絡Overlay方案和混合Overlay方案中,都需要有物理交換機設備支持VXLAN協議棧,並能與虛擬交換機構建的VTEP互通。由於在實際組網環境中,服務器種類很多,高吞吐高性能要求的業務一般都采用單獨物理服務器甚至小機的硬件環境,而非虛擬化的x86服務器,這就沒法使用vSwitch來接入VXLAN網絡,只能讓支持VXLAN的物理交換機來接入了。
2. 組播協議傳播
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。
如圖4所示,多個VTEP需要在整網中傳遞VTEP下MAC地址信息,邏輯傳遞路線如綠色虛線所示。由於需要進行邏輯上的Full-Mesh連接,連接邏輯線路會達到N平方量級,因此實際組網中,VXLAN利用了物理網絡的組播組,在建立好的組播組中加入VXLAN中所有VTEP成員,傳遞VTEP變更信息。在多用戶多業務情況下,組播組要求與VXLAN數量息息相關。由於VXLAN網絡規模的不斷拓展(最大可達到16M個VXLAN網絡),所需要的組播條目數會不斷增加,這實際上對於物理網絡承載組播處理能力和規格提出了要求。
由於標准VXLAN架構下使用組播協議,對物理網絡組播數規格要求較大,因此H3C VXLAN解決方案基於SDN架構,通過引入全網的SDN Controller來實現VXLAN的管理和維護,使得VTEP之間的信息可以通過Controller來進行反射(如圖5所示)。這樣,VTEP的MAC地址表映射關系不再通過組播向全網其他VTEP傳達,而是統一上報給控制器,由控制器統一下發給需要接受此消息的其他VTEP,由具體的VTEP執行轉發機制。
可見,在SDN架構下,硬件形態的VTEP需要能夠支持集中控制器下發的業務控制信息,同時基於Openflow進行流表轉發。而傳統硬件交換機不能支持上述特性,必須由新硬件設備來執行和完成的。
3. VXLAN網絡互通
在傳統L2網絡中,報文跨VLAN轉發,需要借助三層設備來完成不同VLAN之間的互通問題。VXLAN網絡與傳統網絡、以及VXLAN網絡的互通,必須有網絡設備的支持。
VXLAN網絡框架中定義了兩種網關單元。
VXLAN三層網關。用於終結VXLAN網絡,將VXLAN報文轉換成傳統三層報文送至IP網絡,適用於VXLAN網絡內服務器與遠端終端之間的三層互訪;同時也用作不同VXLAN網絡互通。如圖6所示,當服務器訪問外部網絡時,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報文的解封裝和封裝操作。從轉發效率和執行性能來看,都只能在物理網絡設備上實現,並且傳統設備無法支持,必須通過新的硬件形式來實現。
結束語
Overlay由於其簡單、一致的解決問題方法,加上重新定義的網絡可以進行軟件定義,已經成為數據中心網絡最炙手可熱的技術方案。然而,它並不是一張完全由軟件定義的網絡,Overlay網絡解決方案必定是一種軟硬結合的方案,無論是從接入層VTEP混合組網的組網要求、組播或SDN控制層協議的支持,還是VXLAN網絡與傳統網絡的互通來看,都需要硬件積極的配合和參與,必須構建在堅實和先進的物理網絡架構基礎上。
轉載自:http://www.h3c.com.cn/About_H3C/Company_Publication/IP_Lh/2014/07/Home/Catalog/201501/852551_30008_0.htm