您好,登錄后才能下訂單哦!
Hi!歡迎來到Tungsten Fabric架構解析內容的第三篇,本文將詳細介紹Tungsten Fabric vRouter的體系結構。
Tungsten Fabric架構解析系列文章,由TF中文社區為你呈現,旨在幫助初入TF社區的朋友答疑解惑。我們將系統介紹TF有哪些特點、如何運作、如何收集/分析/部署、如何編排、如何連接到物理網絡等話題。
先來看一張Tungsten Fabric vRouter功能組件的概念視圖。
vRouter代理在主機操作系統的用戶空間中運行,而轉發器可以是內核模塊,在使用DPDK時在用戶空間中運行,或者在可編程網絡接口卡(也稱為“智能NIC”)中運行。這些選項在后續文章中有更詳細的描述,這里說明了更常用的內核模塊模式。
代理與控制器保持會話,并發送其需要的VRF、路由和訪問控制列表(ACL)的信息。代理將信息存儲在自己的數據庫中,并使用該信息配置轉發器。接口連接到VRF,每個VRF中的轉發信息庫(FIB)都配置有轉發條目。
每個VRF都有自己的轉發表和流表,然而MPLS和VXLAN表在vRouter中是全局的。轉發表包含目的地的IP和MAC地址的路由,并且IP到MAC關聯用于提供代理ARP功能。當VM接口啟動時,vRouter選擇MPLS表中的標簽值,并且這些值僅對該vRouter本地有效。
在一個Tungsten Fabric域內,對于不同vRouters中同一虛擬網絡的所有VRF來說,VXLAN網絡標識符是全局的。
每個虛擬網絡都有一個分配給它的默認網關地址,并且每個VM或容器接口都會在初始化時獲得的DHCP響應中接收該地址。當工作負載將數據包發送到其子網外的地址時,它將為與網關IP的IP地址對應的MAC進行ARP,并且vRouter以其自己的MAC地址進行響應。
因此,vRouters支持所有虛擬網絡的完全分布式默認網關功能。
流出VM和流入VM的數據包的邏輯詳細信息略有不同,以下兩張圖和說明中對此進行了描述。
當從VM通過虛擬接口發送數據包時,轉發器接收該數據包后,首先檢查接口所在的VRF流表中是否存在與數據包的五元組(包括協議、源和目標IP地址、源和目標TCP或UDP)匹配的條目。
如果這是流中的第一個數據包,則不會有條目,轉發器通過pkt0接口將該數據包發送給代理。代理根據VRF路由表和訪問控制列表確定流的操作,并使用結果更新流表。動作可以是DROP、FORWARD、NAT或MIRROR。
如果要轉發數據包,轉發器將檢查目標MAC地址是否是其自己的MAC地址,如果VM在目標位于VM的子網外時將數據包發送到默認網關。在這種情況下,將在IP轉發表中查找目的地的下一跳,否則將使用MAC地址用于查找。雖然在計算節點內,但vRouter在這里執行物理路由器的IRB(集成路由和橋接)功能。
當數據包從物理網絡到達時,vRouter首先檢查數據包是否具有支持的封裝。如果不是,則將數據包發送到主機操作系統。
對于基于UDP的MPLS和基于GRE的MPLS,標簽直接標識VM接口,但VXLAN需要由VLAN網絡標識符(VNI)標識的VRF中查找內部報頭中的目標MAC地址。
一旦識別出接口,如果沒有為接口設置策略標志(指示允許所有協議和所有TCP / UDP端口),則vRouter可以立即轉發數據包。否則,使用五元組來查找流表中的流,并使用與針對傳出分組所描述的邏輯相同的邏輯。
當VM中的應用程序首先將數據包發送到另一個VM時,發生的操作順序如下圖所示。
起點是兩個VM均已啟動,并且控制器已將L2(MAC)和L3(IP)路由發送到兩個vRouter,以啟用VM之間的通信。發送VM前尚未將數據發送到其他的VM,因此之前沒有通過DNS解析目標名稱。
將數據包發送到不同子網中的目標時,順序是相同的,只是vRouter作為默認網關響應。VM1將在以太網幀中發送數據包,其中包含默認網關的MAC地址,其IP地址是在VM1啟動時vRouter提供的DHCP響應中提供的。
當VM1對網關IP地址發出ARP請求時,vRouter將使用自己的MAC地址進行響應。當VM1使用該網關MAC地址發送以太網幀時,vRouter使用幀內數據包的目的IP地址在VRF中查找轉發表以查找路由,該路由將通過封裝隧道連接到正在運行目標的主機。
更多Tungsten Fabric解析文章
第一篇:TF主要特點和用例
第二篇:TF怎么運作
關注微信:TF中文社區
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。