溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Tungsten Fabric架構(gòu)解析丨詳解vRouter體

發(fā)布時間:2020-02-14 11:07:31 來源:網(wǎng)絡(luò) 閱讀:317 作者:TF中文社區(qū) 欄目:網(wǎng)絡(luò)管理

Hi!歡迎來到Tungsten Fabric架構(gòu)解析內(nèi)容的第三篇,本文將詳細(xì)介紹Tungsten Fabric vRouter的體系結(jié)構(gòu)。
Tungsten Fabric架構(gòu)解析系列文章,由TF中文社區(qū)為你呈現(xiàn),旨在幫助初入TF社區(qū)的朋友答疑解惑。我們將系統(tǒng)介紹TF有哪些特點、如何運作、如何收集/分析/部署、如何編排、如何連接到物理網(wǎng)絡(luò)等話題。

先來看一張Tungsten Fabric vRouter功能組件的概念視圖。
Tungsten Fabric架構(gòu)解析丨詳解vRouter體

vRouter代理在主機操作系統(tǒng)的用戶空間中運行,而轉(zhuǎn)發(fā)器可以是內(nèi)核模塊,在使用DPDK時在用戶空間中運行,或者在可編程網(wǎng)絡(luò)接口卡(也稱為“智能NIC”)中運行。這些選項在后續(xù)文章中有更詳細(xì)的描述,這里說明了更常用的內(nèi)核模塊模式。

代理與控制器保持會話,并發(fā)送其需要的VRF、路由和訪問控制列表(ACL)的信息。代理將信息存儲在自己的數(shù)據(jù)庫中,并使用該信息配置轉(zhuǎn)發(fā)器。接口連接到VRF,每個VRF中的轉(zhuǎn)發(fā)信息庫(FIB)都配置有轉(zhuǎn)發(fā)條目。

每個VRF都有自己的轉(zhuǎn)發(fā)表和流表,然而MPLS和VXLAN表在vRouter中是全局的。轉(zhuǎn)發(fā)表包含目的地的IP和MAC地址的路由,并且IP到MAC關(guān)聯(lián)用于提供代理ARP功能。當(dāng)VM接口啟動時,vRouter選擇MPLS表中的標(biāo)簽值,并且這些值僅對該vRouter本地有效。

在一個Tungsten Fabric域內(nèi),對于不同vRouters中同一虛擬網(wǎng)絡(luò)的所有VRF來說,VXLAN網(wǎng)絡(luò)標(biāo)識符是全局的。

每個虛擬網(wǎng)絡(luò)都有一個分配給它的默認(rèn)網(wǎng)關(guān)地址,并且每個VM或容器接口都會在初始化時獲得的DHCP響應(yīng)中接收該地址。當(dāng)工作負(fù)載將數(shù)據(jù)包發(fā)送到其子網(wǎng)外的地址時,它將為與網(wǎng)關(guān)IP的IP地址對應(yīng)的MAC進行ARP,并且vRouter以其自己的MAC地址進行響應(yīng)。

因此,vRouters支持所有虛擬網(wǎng)絡(luò)的完全分布式默認(rèn)網(wǎng)關(guān)功能。

詳細(xì)的vRouter數(shù)據(jù)包處理邏輯

流出VM和流入VM的數(shù)據(jù)包的邏輯詳細(xì)信息略有不同,以下兩張圖和說明中對此進行了描述。
Tungsten Fabric架構(gòu)解析丨詳解vRouter體

當(dāng)從VM通過虛擬接口發(fā)送數(shù)據(jù)包時,轉(zhuǎn)發(fā)器接收該數(shù)據(jù)包后,首先檢查接口所在的VRF流表中是否存在與數(shù)據(jù)包的五元組(包括協(xié)議、源和目標(biāo)IP地址、源和目標(biāo)TCP或UDP)匹配的條目。

如果這是流中的第一個數(shù)據(jù)包,則不會有條目,轉(zhuǎn)發(fā)器通過pkt0接口將該數(shù)據(jù)包發(fā)送給代理。代理根據(jù)VRF路由表和訪問控制列表確定流的操作,并使用結(jié)果更新流表。動作可以是DROP、FORWARD、NAT或MIRROR。

如果要轉(zhuǎn)發(fā)數(shù)據(jù)包,轉(zhuǎn)發(fā)器將檢查目標(biāo)MAC地址是否是其自己的MAC地址,如果VM在目標(biāo)位于VM的子網(wǎng)外時將數(shù)據(jù)包發(fā)送到默認(rèn)網(wǎng)關(guān)。在這種情況下,將在IP轉(zhuǎn)發(fā)表中查找目的地的下一跳,否則將使用MAC地址用于查找。雖然在計算節(jié)點內(nèi),但vRouter在這里執(zhí)行物理路由器的IRB(集成路由和橋接)功能。
Tungsten Fabric架構(gòu)解析丨詳解vRouter體

當(dāng)數(shù)據(jù)包從物理網(wǎng)絡(luò)到達時,vRouter首先檢查數(shù)據(jù)包是否具有支持的封裝。如果不是,則將數(shù)據(jù)包發(fā)送到主機操作系統(tǒng)。

對于基于UDP的MPLS和基于GRE的MPLS,標(biāo)簽直接標(biāo)識VM接口,但VXLAN需要由VLAN網(wǎng)絡(luò)標(biāo)識符(VNI)標(biāo)識的VRF中查找內(nèi)部報頭中的目標(biāo)MAC地址。

一旦識別出接口,如果沒有為接口設(shè)置策略標(biāo)志(指示允許所有協(xié)議和所有TCP / UDP端口),則vRouter可以立即轉(zhuǎn)發(fā)數(shù)據(jù)包。否則,使用五元組來查找流表中的流,并使用與針對傳出分組所描述的邏輯相同的邏輯。

相同子網(wǎng)虛擬機之間的數(shù)據(jù)包流

當(dāng)VM中的應(yīng)用程序首先將數(shù)據(jù)包發(fā)送到另一個VM時,發(fā)生的操作順序如下圖所示。

起點是兩個VM均已啟動,并且控制器已將L2(MAC)和L3(IP)路由發(fā)送到兩個vRouter,以啟用VM之間的通信。發(fā)送VM前尚未將數(shù)據(jù)發(fā)送到其他的VM,因此之前沒有通過DNS解析目標(biāo)名稱。
Tungsten Fabric架構(gòu)解析丨詳解vRouter體

  1. VM1需要向VM2發(fā)送數(shù)據(jù)包,因此首先查找自己的DNS緩存以獲取IP地址,但由于這是第一個數(shù)據(jù)包,因此沒有條目。
  2. VM1在其接口啟動時向DHCP響應(yīng)中提供的DNS服務(wù)器地址發(fā)送DNS請求。
  3. vRouter捕獲DNS請求并將其轉(zhuǎn)發(fā)到在Tungsten Fabric控制器中運行的DNS服務(wù)器。
  4. 控制器中的DNS服務(wù)器以VM2的IP地址響應(yīng)。
  5. vRouter將DNS響應(yīng)發(fā)送給VM1。
  6. VM1需要形成以太網(wǎng)幀,因此需要VM2的MAC地址,它會檢查自己的ARP緩存,但沒有條目,因為這是第一個數(shù)據(jù)包。
  7. VM1發(fā)出ARP請求。
  8. vRouter捕獲ARP請求,并在其自己的轉(zhuǎn)發(fā)表中查找IP-VM2的MAC地址,并在控制器為VM2發(fā)送的L2 / L3路由中找到關(guān)聯(lián)。
  9. vRouter使用VM2的MAC地址向VM1發(fā)送ARP回復(fù)。
  10. VM1的網(wǎng)絡(luò)堆棧中發(fā)生TCP超時。
  11. VM1的網(wǎng)絡(luò)堆棧重試發(fā)送數(shù)據(jù)包,這次在ARP緩存中找到VM2的MAC地址,并可以形成以太網(wǎng)幀并將其發(fā)送出去。
  12. vRouter查找VM2的MAC地址并找到封裝路由,vRouter構(gòu)建外部頭部,并將結(jié)果數(shù)據(jù)包發(fā)送到S2。
  13. S2上的vRouter對數(shù)據(jù)包進行解封裝,并查找MPLS標(biāo)簽以識別將原始以太網(wǎng)幀發(fā)送到的虛擬接口,以太網(wǎng)幀被發(fā)送到接口并由VM2接收。

不同子網(wǎng)虛擬機之間的數(shù)據(jù)包流

將數(shù)據(jù)包發(fā)送到不同子網(wǎng)中的目標(biāo)時,順序是相同的,只是vRouter作為默認(rèn)網(wǎng)關(guān)響應(yīng)。VM1將在以太網(wǎng)幀中發(fā)送數(shù)據(jù)包,其中包含默認(rèn)網(wǎng)關(guān)的MAC地址,其IP地址是在VM1啟動時vRouter提供的DHCP響應(yīng)中提供的。

當(dāng)VM1對網(wǎng)關(guān)IP地址發(fā)出ARP請求時,vRouter將使用自己的MAC地址進行響應(yīng)。當(dāng)VM1使用該網(wǎng)關(guān)MAC地址發(fā)送以太網(wǎng)幀時,vRouter使用幀內(nèi)數(shù)據(jù)包的目的IP地址在VRF中查找轉(zhuǎn)發(fā)表以查找路由,該路由將通過封裝隧道連接到正在運行目標(biāo)的主機。

更多Tungsten Fabric解析文章
第一篇:TF主要特點和用例
第二篇:TF怎么運作

關(guān)注微信:TF中文社區(qū)
Tungsten Fabric架構(gòu)解析丨詳解vRouter體

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI