細說TF服務鏈丨服務鏈後臺的路由實現
作者: Umberto Manferdini 譯者:TF編譯組
上一篇文章中, 我 配置了 最簡單的服務鏈 。現在,是時候瞭解路由實際上是如何實現的了。
我們的拓撲結構是這樣一條簡單的服務鏈:
讓我們看一下路由表。
從“分離的” VN 開始:沒有策略,沒有服務鏈。
在本例項中,路由表僅包含該虛擬網路的地址。
接下來,應用策略,但不新增任何服務例項:
現在,左側網路還包括來自右側網路的路由:
在這背後是什麼?Route Target !
為了解更多資訊,我將在控制節點上使用Introspect 並瀏覽路由表(模組為 bgp_peer ,然後使用 ShowRoute family 請求)。
建立虛擬網路後,會自動為其分配R oute Target 。即使沒有配置R oute Target ,仍然有一個VN 。這種 R oute Target 的值高於800 萬,因此很容易識別。
指定左側VN 為 target:64520:8000059
指定右側VN 為 target:64520:8000060
一旦我們應用網路策略,允許這兩個VN 之間進行通訊, Tungsten Fabric 就會自動調整匯入R oute Target 策略。
左側VN 現在會匯入“ 8000060 ”,這意味著它將匯入右側 VN 的路由:
右側 VN 的更新方式類似,不過它將匯入 RT “ 8000059 ”,即左側 VN RT :
到最後,網路策略看起來似乎只是利用Route Target執行洩漏。
那麼,為什麼在建立虛擬網路時,我們要花時間在網路策略上,而不僅僅是配置適當的Route Target ,然後匯入 Route Target 策略就好了?
我們知道,網路策略允許建立L4 規則。透過網路策略,可以決定允許 TCP 通訊,以及阻止 UDP 通訊。這就是重點,我們可以建立服務鏈。
開始吧!最後一步,服務鏈:
檢視左側VN匯入 Route Target政策:
這很有趣……我們知道還有兩個虛擬網路:
–左側,原始 VN 出來
–左側服務,一個輔助 VN “對映”到了服務例項
左側VN 匯出 RT “ 8000059 ”,而左側服務則匯出 RT “ 8000061 ”。這兩個 VN 相互匯入 RT 。這意味著它們之間有洩漏!
來看一下右側的情況:
我們看到了類似的東西:右側和右側服務相互匯入 RT 。
沒有服務例項,左側VN 將匯入右側 VN ,反之亦然。現在,此機制僅限於左側和左側服務(或右側和右側服務)。那麼,從右到左的路由如何到達?
看起來,RT 洩漏並不簡單。
在這種情況下,我們必須談論路由重新分配。這意味著 Tungsten Fabric 將重新分配路由。仔細考慮一下,這是有道理的。
假如沒有服務例項,可以按原樣從右向左複製路由,反之亦然。
另一方面,在服務例項起作用的情況下,當一條路由從右側“洩露”到左側時,下一跳必須更新,因為它必須指向服務例項 vmi 。
那麼這是如何工作的呢?讓我們看看右側VN 路由: 192.168.20.3/32 。
跟以往一樣,該路由有兩個副本:XMPP 和 BGP 。
檢視這些路由更多的詳細資訊:
這裡要注意的是,該路由具有一個輔助表,是的,它是右側服務!這裡右側到右側服務的洩露,是由於我們之前看到的匯入Route Target 策略。可以看到, BGP 路由(第二個)匯出 RT “ 8000060 ”,而該 RT 是由右側服務匯入的。
現在,我們轉到左側服務路由表:
仍然有兩條路由,但XMPP 的那一條已被服務鏈的那一條所取代。
此路由將左側VN 作為輔助表:
下圖表示了路由的傳播:
當流量從左向右移動時,會發生以下情況:
回程流量利用了現有流量。
是不是有點複雜?可能是的……但是考慮一下,我們為建立這條鏈實際配置了什麼,很明顯 Tungsten Fabric 是如何隱藏了所有的複雜性!
下一次,我將開始研究高階服務例項的設定。
---
細說TF服務鏈——
-
第八篇: TF支援API一覽
-
第九篇: TF如何連線到物理網路
-
第十篇: TF基於應用程式的安全策略
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69981760/viewspace-2712826/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 細說TF服務鏈丨服務鏈的冗餘是如何實現的
- 細說TF服務鏈丨手把手教你配置服務鏈
- Tungsten Fabric架構解析丨TF的服務鏈架構
- 數商雲供應鏈服務平臺方案:助供應鏈服務公司實現商品+決策+物流+售後協同辦公
- go-kit 微服務 服務鏈路追蹤 (jaeger 實現)(2)Go微服務
- go-kit 微服務 服務鏈路追蹤 (jaeger 實現)(1)Go微服務
- 區塊鏈開發平臺_區塊鏈技術服務區塊鏈
- 詳細教程丨如何利用Rancher和Kong實現服務網格?
- 跨境電商供應鏈平臺方案,提供全鏈條的跨境供應鏈服務
- RouterSrv路由服務路由
- 系統設計實踐(01) - 短鏈服務
- 分散式服務呼叫鏈追蹤分散式
- go-kit微服務:服務鏈路追蹤Go微服務
- Java後端分散式系統的服務路由:智慧DNS與服務網格Java後端分散式路由DNS
- 面試官:說一說前端路由,後端路由客戶端渲染與服務端渲染面試前端路由後端客戶端服務端
- Tungsten Fabric入門寶典丨關於服務鏈、BGPaaS及其它
- NodeJs服務註冊與服務發現實現NodeJS
- 供應鏈服務平臺促進B2B改革
- 區塊鏈可信資料服務平臺搭建解決方案區塊鏈
- nginx實現兩臺服務負載均衡Nginx負載
- Dapr實現分散式有狀態服務的細節分散式
- ⑦SpringCloud 實戰:引入Sleuth元件,完善服務鏈路跟蹤SpringGCCloud元件
- Mac Redis 服務後臺執行MacRedis
- 基於 golang 開發的短鏈服務(自帶前臺頁面)Golang
- 辦公室出租,全產業鏈服務產業
- NestJS搭建前端路由服務JS前端路由
- 仿掘金前臺 vue 服務端渲染(ssr)後臺 react (spa) 後臺服務是 koa 的一個專案Vue服務端React
- 企業如何開發自己的聯盟鏈,區塊鏈實體運用落地服務區塊鏈
- Docker實現服務發現Docker
- etcd實現服務發現
- 區塊鏈商品溯源系統開發方案,區塊鏈公共服務平臺建設區塊鏈
- 區塊鏈商品溯源平臺開發,區塊鏈公共服務系統開發方案區塊鏈
- 打造跨平臺.NET Core後臺服務
- React服務端渲染(前後端路由同構)React服務端後端路由
- 區塊鏈實體運用落地服務方案,區塊鏈底層鏈和應用開發區塊鏈
- 區塊鏈的應用領域——公共服務(三)區塊鏈
- Android入門教程 | 四大元件之Service(前臺服務,後臺服務)Android元件
- 區塊鏈技術應用開發,公鏈搭建服務商區塊鏈