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由兩個主要軟件組成:
• Tungsten Fabric 控制器– 一組維護網絡和網絡策略模型的軟件服務,爲實現高可用性,一般在多個服務器上運行。
• Tungsten Fabric vRouter– 安裝在運行工做負載(虛擬機或容器)的每一個主機上,vRouter執行封包轉發,並實施網絡和安全策略。服務器

Tungsten Fabric的典型部署以下圖所示:
Tungsten Fabric架構解析丨TF怎麼運做?微信

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中安裝路由集。ide

例如:默認狀況下,同一網絡中的虛擬機能夠相互通訊,但不能與不一樣網絡中的虛擬機進行通訊,除非在網絡策略中特別容許。控制器和vRouters之間的通訊是經過一種普遍使用且靈活的消息傳遞協議XMPP實現的。網站

雲自動化的一個關鍵特性,是用戶能夠爲其應用程序請求資源,而無需瞭解如何或在何處提供資源的詳細信息。插件

這一般是經過一個門戶網站完成的,該門戶網站提供了一組服務產品,用戶能夠從中選擇,並將其轉換爲API調用到底層系統,包括雲協調器,以啓動具備必要內存、磁盤和CPU的虛擬機或容器,知足用戶要求的能力。3d

服務產品能夠像具備特定內存、分配給它的磁盤和CPU的虛擬機同樣簡單,也能夠包括由多個預配置軟件實例組成的整個應用程序堆棧。

和Orchestrator的互動

Tungsten Fabric控制器和vRouter的架構,以及與協調器的交互,以下圖所示:
Tungsten Fabric架構解析丨TF怎麼運做?

該圖顯示了一個協調器工做虛擬機管理程序和虛擬機,這和容器協調器的信息流相似,例如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中文社區
Tungsten Fabric架構解析丨TF怎麼運做?

相關文章
相關標籤/搜索