Tungsten Fabric架構解析丨TF怎麼運作?

TF中文社群發表於2019-12-13

Hi!這裡是TF中文社群關於Tungsten Fabric架構解析內容的第二篇,解讀TF如何運作。本文介紹TF控制器和vRouter的軟體體系結構,以及在虛擬機器或容器啟動時,vRouters與Tungsten Fabric控制器之間的互動。


Tungsten Fabric支援Orchestrator(編排器)


Tungsten Fabric控制器整合了OpenStack或Kubernetes等雲管理系統,其功能是確保在建立虛擬機器(VM)或容器時,根據控制器或協調器中指定的網路和安全策略為其提供網路連線。


Tungsten Fabric由兩個主要軟體組成:

 Tungsten Fabric 控制器– 一組維護網路和網路策略模型的軟體服務,為實現高可用性,通常在多個伺服器上執行。

Tungsten Fabric vRouter– 安裝在執行工作負載(虛擬機器或容器)的每個主機上,vRouter執行封包轉發,並實施網路和安全策略。


Tungsten Fabric的典型部署如下圖所示:


Tungsten Fabric控制器透過軟體外掛與協調器整合在一起,該外掛實現了協調器的網路服務。


例如,OpenStack的Tungsten Fabric外掛實現了Neutron API,kube-network-manager_和_CNI(容器網路介面)元件使用Kubernetes k8s API監聽網路相關事件。


Tungsten Fabric vRouter取代Linux橋接器和IP表,或計算主機上的Open vSwitch網路,控制器配置vRouters以實現所需的網路和安全策略。


VM的封包如果要轉發到不同主機上,vRouter會加MPLS over UDP / GRE或VXLAN封裝,其中外部標頭的目標是執行目標VM的主機的IP地址。控制器負責在每個實現網路策略的vRouter的每個VRF中安裝路由集。


例如:預設情況下,同一網路中的虛擬機器可以相互通訊,但不能與不同網路中的虛擬機器進行通訊,除非在網路策略中特別允許。控制器和vRouters之間的通訊是透過一種廣泛使用且靈活的訊息傳遞協議XMPP實現的。


雲自動化的一個關鍵特性,是使用者可以為其應用程式請求資源,而無需瞭解如何或在何處提供資源的詳細資訊。


這通常是透過一個入口網站完成的,該入口網站提供了一組服務產品,使用者可以從中選擇,並將其轉換為API呼叫到底層系統,包括雲協調器,以啟動具有必要記憶體、磁碟和CPU的虛擬機器或容器,滿足使用者要求的能力。


服務產品可以像具有特定記憶體、分配給它的磁碟和CPU的虛擬機器一樣簡單,也可以包括由多個預配置軟體例項組成的整個應用程式堆疊。


和Orchestrator的互動


Tungsten Fabric控制器和vRouter的架構,以及與協調器的互動,如下圖所示:




該圖顯示了一個協調器工作虛擬機器管理程式和虛擬機器,這和容器協調器的資訊流類似,例如Kubernetes(帶有Tungsten Fabric的Kubernetes容器)。


主機上執行的工作負載的每個介面都連線到VRF,包含相應網路的L2和L3轉發表,其中包含該介面的IP地址。


vRoute r實現物理路由器執行的整合橋接和路由(IRB)功能。 vRouter僅具有位於該主機上有網 絡介面的VRF,包括連線到主機物理介面的Fabric VRF。 使用VRF可以使不同的虛 擬網路具有重疊的IP和MAC地址,不會定義任何網路策略來允許它們之間的流量


Tungsten Fabric虛擬化網路使用封裝隧道在不同主機上的VM之間傳輸封包,而封 裝和解封裝在Fabric VRF和VM VRF之間發生。


建立新的虛擬工作負載時,會在特定於orchestrator的外掛中看到一個事件並將其傳送到控制器,然後控制器會向代理傳送請求,以便在虛擬網路的VRF中安裝路由,然後代理將其配置在轉發器裡。


使用單個介面在新VM上配置網路的邏輯流程如下:


1. 使用UI、CLI或北向REST API在Orchestrator或Tungsten Fabric中定義網路和網路策略。 網路主要定義為IP地址池,在建立VM時將分配給介面。

2. 使用者請求由協調器啟動VM,包括其介面所在的網路。

3. 協調器選擇要執行的新VM的主機,並指示該主機上的計算代理程式獲取其映像並啟動VM。

4. Tungsten Fabric外掛從協調器的網路服務接收事件或API呼叫,指示它為將要啟動的新VM的介面設定網路。 這些指令將轉換為Tungsten Fabric REST呼叫併傳送到Tungsten Fabric控制器。

5. Tungsten Fabric控制器向vRouter代理傳送請求,以便將新VM虛擬介面連線到指定的虛擬網路。 vRouter代理指示vRouter轉發器將VM介面連線到虛擬網路的VRF。如果不存 在,則建立VRF,並且介面連線到它。

6. 計算代理啟動VM,通常將其配置為使用DHCP為其每個介面請求IP地址。 vRouter代理DHCP請求,然後對介面IP地址,預設閘道器和DNS伺服器地址進行響應。

7. 一旦介面啟動且具有來自DHCP的IP地址,vRouter安裝到VM的IP和MAC地址路由,並將下一跳設為VM虛擬介面。

8. vRouter為介面分配標籤,並在MPLS表中安裝標籤路由。 vRouter向控制器傳送XMPP訊息,該訊息包含到新VM的路由。該路由具有執行vRouter的伺服器的IP地址的下一跳,並使用剛剛分配的標籤指定封裝協議。

9. 在網路策略所允許下,控制器將新VM路由分發到其他vRouters,包含VM位於同一網路和其他網路。

10. 在網路策略所允許下,控制器將其他VM的路由傳送到新VM的vRouter。


在此過程結束時,已更新資料中心中所有vRouter的VRF中的路由已經有新VM的資訊。


更多Tungsten Fabric解析文章

第一篇: TF主要特點和用例


關注微信:TF中文社群
郵箱:tfzw001@163.com


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69957171/viewspace-2668456/,如需轉載,請註明出處,否則將追究法律責任。

相關文章