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

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

在這裏插入圖片描述

Hi!這裏是TF中文社區關於Tungsten Fabric架構解析內容的第二篇,解讀TF如何運作。本文介紹TF控制器和vRouter的軟件體系結構,以及在虛擬機或容器啓動時,vRouters與Tungsten Fabric控制器之間的交互。
Tungsten Fabric架構解析系列文章,旨在幫助初入TF社區的朋友答疑解惑,我們將系統介紹TF有哪些特點、如何運作、如何收集/分析/部署、如何編排、如何連接到物理網絡等話題。

Tungsten Fabric支持Orchestrator(編排器)

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

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

  1. Tungsten Fabric 控制器– 一組維護網絡和網絡策略模型的軟件服務,爲實現高可用性,通常在多個服務器上運行。

  2. 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地址。

vRouter實現物理路由器執行的集成橋接和路由(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中文社區
郵箱:[email protected]

在這裏插入圖片描述

發佈了27 篇原創文章 · 獲贊 1 · 訪問量 1637
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章