Istio 流量劫持

2021-10-09 15:39:58 字數 1823 閱讀 8469

運用服務網格的好處,就是不用修改本身應用的任何**,就可以實現重試、重試、註冊、發現、故障注入等等的能力,而且對開發語言、框架都是沒有任何限定統一的技術棧的,那麼為什麼服務網格那麼厲害可以做到那麼透明呢,不用修改應用的任何**讓應用獲得服務的治理能力呢,我們一起了解一下吧!

envoy 邊車模式

iptables 流量劫持

上訴我們已經知道了通過iptables修改流量的走向,讓envoy去接管流量從而實現服務的治理能力,那麼iptables是如何修改進去pods中的呢,可以參考我之前的文章 - istio 注入原理,通過對原來的資源定義清單進行修改後實施,從而附加上 envoy 容器以及 init 容器,iptables的策略就是由 init容器進行定義的。

iptables 重定向規則

首先我們安裝一下 nsenter 這個工具,用於接下來的實驗探索。

yum install -y util-linux

pid=

$(docker inspect --format "}"

)nsenter -t $pid -n iptables -t nat -nvl

inbound

通過 nsenter 可以發現

1.進入的流量會命中#1紅框的prerouting鏈。

2.接著在target中會選擇#2紅框 istio_inbound鏈。

3.如果是 tcp destination port 22 15090 15021的流量會直接放行處理,

否則其他流量全部交給下乙個鏈 #3紅框istio_in_redirect。

4.istio_in_redirect 鏈中就把流量交給了 15006 埠 (envoy容器流量入埠)

request -> (iptables prerouting -> istio_inbound -> istio_in_redirect -> redirect port 15006) -> istio-proxy

outbound

通過 nsenter 可以發現

1.出去的流量會命中#1紅框的output鏈。

2.接著在target中會選擇#2紅框 istio_output鏈。

如果是 owner gid 1337 的流量會直接放行處理,gid1337 表示的是envoy自身流量,以防止流量迴圈。

其他流量全部交給下乙個鏈 #3紅框istio_redirect。

3.istio_redirect 鏈中就把流量交給了 15001 埠 (envoy容器流量出埠)

經過iptables處理後的流量,最後都會經過envoy進行處理(return的除外),那麼在envoy進行流量的處理,那麼就可以對應用透明無感知的情況下進行一些高階的治理能力處理,而envoy處理的規則,是由pilot進行下發的,具體可以定義那些服務治理規則的?歡迎繼續關注,我們下期在見!

點點關注不迷路!希望可以得到你的點點點點點讚!

bc劫持流量 seo流量劫持

seo流量劫持為您提供免費seo診斷諮詢 獨家seo優化建議。如需合作右側聯絡客服,承接各類合作。seo流量劫持優化服務介紹 1.行業及競爭對手研究 3.現狀詳細診斷 4.seo優化診斷報告 5.外部鏈結及反鏈建設 6.優化seo執行 7.日常seo優化諮詢 8.公司網路營銷及seo培訓 seo流量...

DNS劫持 流量劫持,HTTP HTTPS劫持

dns劫持 dns劫持就是通過劫持了dns伺服器,通過某些手段取得某網域名稱的解析記錄控制權,進而修改此網域名稱的解析結果,導致對該網域名稱的訪問由原ip位址轉入到修改後的指定ip,其結果就是對特定的 不能訪問或訪問的是假 從而實現竊取資料或者破壞原有正常服務的目的。dns劫持通過篡改dns伺服器上...

什麼是流量劫持,如何防止流量劫持?

流量劫持,是利用各種惡意軟體修改瀏覽器 鎖定主頁或不停彈出新視窗,強制使用者訪問某些 從而造成使用者流量損失的情形。流量劫持是一種古老的攻擊方式,比如早已見慣的廣告彈窗 如下圖 等,很多人已經對此麻木,並認為流量劫持不會造成什麼損失。而事實上,流量劫持可以通過多種你無法覺察的方式竊取資訊 http協...