如何看待數據中心網絡架構變化?
在不太遙遠的過去,數據中心內的流量轉發是簡單的。一個IP地址將與另一個IP地址實現通訊。這些地址屬于端點——裸金屬主機或虛擬機與其他裸露的金屬主機或虛擬機實現通訊。這些IP地址之間的路徑被稱為數據中心交換機,就像路由和橋接表中的入口。
如果某位工程師需要解決兩個IP端點之間的性能低下或異常問題時,一種很好的辦法就是觀察兩者之間的這些表單。等價多路徑與多機架鏈路聚合為這一過程增加了復雜性,但總的來說,運行維護人員可以精確地找出任何指定的數據中心會話的路徑。
多個端點之間的通訊流會有些復雜。網絡地址轉換,加密或打通是很少存在的。這些類型的功能往往位于數據中心的邊緣,與可信邊界外部的設備進行聯系。
這個時代流行簡單,是因為需求簡單。
現代數據中心
由于商業需求的變化,現代數據中心網絡架構已經變得不一樣。曾經相對簡單的數據中心,現在已成為運行的應用程序的統一的基礎設施平臺。數據中心作為一個整體運行;它是應用程序交付的引擎。
越來越多的基礎設施面向開發者和他們的應用程序透明。某一完整意義上的現代基礎設施應該是開發人員所部署應用程序的抽象。資源池按需分配,而開發者不必擔心基礎設施的問題。基礎設施不僅只是運行那么簡單。
現代數據中心還需要用分布式的辦法處理安全問題,采取通過工作負載的創建和取消相結合的方式。不再需要通過某一集中的、物理防火墻來執行增強的安全策略。相反,某一集中的安全策略是結構化的,并且安全管理人員將有關的策略安裝到受影響的主機、虛擬機或容器上。增強這樣的策略沒有基礎設施檢查的要求,也沒有難懂的路由需求。
站在更高的視角上,我們一直在描述私有云架構。以這種方式分散物理基礎設施使得與公有云的協同變得更加簡便。因此,混合云架構越來越受歡迎,大家期待著公有云工作負載能像私有云工作負載那樣擁有相同的安全性和連通性。
分層
隨著混合云架構成為新的常態,最需要注意的是這些趨勢對網絡的影響。數據中心不再是簡單的實現某一IP與另一IP的通訊,當遇到問題是使用路由和橋接表進行協調這么簡單。
基礎設施建設機制是借助復雜的網絡賦予現代中心的靈活性。驅動這種復雜性的是工作負載的分離、服務策略增強以及安全性等需求。因此,現代數據中心看起來更像是一份多層蛋糕,而并非只是IP地址的海洋。
在我們多層蛋糕的底端是服務承載網絡。這一網絡是所有其他網絡服務所需承載的基礎。這也是廣大網絡工程師最為熟悉的網絡。當他們仔細檢查著自己的路由和橋接表,他們就會看到服務承載網絡,也是數據中心的基礎。
憑借服務承載網絡本身,并不能滿足混合云的所有需求。不斷增長的需求是分離,主要針對多租戶的情況。單一租戶可能是某一應用程序,或者某一業務單元或某一客戶。
某一租戶的通信與其他租戶的通信是通過虛擬可擴展局域網隔離(Virtual Extensible LAN,VXLAN)封裝技術進行分離的。同一段通信是封裝在某一VXLAN包中,以封裝的形式在網絡中傳輸,并在到達傳輸目的地后解除封裝。VXLAN是一種二層覆蓋方式,它位于服務承載網絡的頂端。
它不僅提供分離的流量,VXLAN同時還可以用來在特定網絡間進行流量的路由規劃。讓我們來討論下,數據中心需要在特定的防火墻和負載均衡器間推送流量的問題吧。在現代網絡中,防火墻和負載平衡器很可能以虛擬網絡功能方式工作,可能集成在數據中心的任意地區。為了到達目的地而精確地規劃,VXLAN封裝還能夠用來打通設備與設備之間的通信流,直到聯通所有需要的設備。
防火墻規則在我們的覆蓋和底層蛋糕中形成另外一層。中央策略管理器為每一臺主機插入防火墻策略。每個主機都會有自己的一套策略來管理和轉發設備中的信息。這被稱為微分段,這是一種在規模化數據中心環境下能夠保證安全的可行辦法。
容器是增加網絡復雜性的又一通配符。容器網絡是一項新興的技術,由命名空間、代理服務器和網絡地址轉換所管理,使不同容器之間的通訊就像與外界一樣容易進行,即使對方并不在相同網絡層級上。
運維人員的麻煩
對于運行維護人員來說,伴隨著數據中心網絡架構而來的復雜性是一大潛在問題。大多數網絡問題都涉及到連通性或網絡性能。本應該連通的兩個端點卻因為某種問題無法實現,或者兩個端點雖然是連通狀態,但訊通性能遠不如預期則是另外一類問題。
用數據包走查方法(the packet walk method)來解決連接問題。從某臺網絡設備到另一臺網絡設備,按照數據包達到目的地的路徑實際發送數據。當實際的IP端點已知時,這一方法將直抵關鍵。
在現代數據中心領域,底層網絡用來傳輸VXLAN或其他覆蓋包。最重要的是,我們追加防火墻的策略,也許網絡地址轉換或代理服務,數據包走查方法變得更加困難,并解決細節問題。要診斷一個連通性問題,運維人員需要知道的數據包的源頭和目的地,包括容器,虛擬機或裸金屬主機、防火墻的策略管理、數據包、數據包封裝以及所遵循的服務鏈條。
假設運維人員工作在某一扁平化的IT公司,并了解應用程序數據流,可以很大程度上避免問題。然而,這并不容易。在橋接和路由表中查找媒體訪問控制和IP地址只是一個更為詳細的故障排除過程的某一小部分。再加上,現代基礎設施(中的工作流信息)往往是短暫的,運維人員可以解決過去發生的問題但卻無法重建。
性能的挑戰更加難以診斷。網絡設備的數量,接觸特定的會話可能涉及某一虛擬的操作系統、虛擬機管理程序的切換、虛擬防火墻、頂端機架交換機、主干交換機以及然后再反向排查通向另一端點的所有路徑。
當某些工作負載位于公有云,事情會變得更加復雜。把基礎設施或平臺當作某項服務等于意味著增加高延遲和額外的通信貫通追加到我們的故障排除方程中。
業界的回應
我們被IP問題困住了。并且因為我們在IP被困住的同時需要額外的功能,我們停留在這里。覆蓋給我們引導和分離通信的能力,這一功能非常重要。有了它,我們可以把自己的基礎設施看作是只需要增加和降低容量的資源池。然后我們把它加入到環境中,成為我們解決網絡復雜性問題的辦法。
網絡業界已經開始采取不同的方法來接受這一挑戰。首先是接受。如果我們認同復雜性問題仍然存在,那么我們將提供工具,幫助我們能夠發現或可視化網絡上發生的問題。例如,思科在其應用程序為中心基礎設施平臺上為運維人員提供解決端到端的連通性問題的增強性工具。VMware最近完成了對Arkin的收購,這一可視化工具可將相關工作負載對應的防火墻策略和VXLAN分離,用圖形化界面(Graphic User Interface,GUI)搭配自然語言搜索引擎的方式進行展示。
越來越多有效的故障排除和可視化工具的出現,有效地支撐了現代數據中心平臺。然而,部分人士反對由創建轉發方案所帶來的復雜性,(他們認為)如果有可能,應盡力避免覆蓋的發生。
例如,在Romana.io開源項目依賴于一個分層的IP尋址方案,結合基于主機的防火墻規則來創建分割以及中心安全策略。開源Project Calico與Romana.io原理接近。Romana.io Project Calico項目都致力于提供轉發方案,面向大型數據中心同時還能兼顧處理安全和分離的需求,而在這一過程中他們不會進行覆蓋。
也許最大的問題并不是關于如何處理網絡的復雜性,而是關乎誰應該如何支持解決方案。有一種想法認為,自動化的應用將降低人工成本。作為一名從業20年的IT基礎設施老司機,我并不同意這種看法。伴隨著巨大的復雜性而來的是更加迫切的技術支持需求。當魔術不再有效時,公司并不想與他們的供應商那樣暫時擱置問題。他們會希望有了解系統的專業人士能隨時準備好解決發生的各類問題。