50 overlay 如何實現跨主機通訊?

2022-08-20 13:48:15 字數 1198 閱讀 9554

上一節我們在 host1 中執行了容器 bbox1,今天將詳細討論 overlay 網路跨主機通訊的原理。

在 host2 中執行容器 bbox2:

bbox2 ip 為 10.0.0.3,可以直接 ping bbox1:

可見 overlay 網路中的容器可以直接通訊,同時 docker 也實現了 dns 服務。

下面我們討論一下 overlay 網路的具體實現:

docker 會為每個 overlay 網路建立乙個獨立的 network namespace,其中會有乙個 linux bridge br0,endpoint 還是由 veth pair 實現,一端連線到容器中(即 eth0),另一端連線到 namespace 的 br0 上。

br0 除了連線所有的 endpoint,還會連線乙個 vxlan 裝置,用於與其他 host 建立 vxlan tunnel。容器之間的資料就是通過這個 tunnel 通訊的。邏輯網路拓撲結構如圖所示:

要檢視 overlay 網路的 namespace 可以在 host1 和 host2 上執行ip netns(請確保在此之前執行過ln -s /var/run/docker/netns /var/run/netns),可以看到兩個 host 上有乙個相同的 namespace 「1-3e14e93b3e」:

這就是 ov_net1 的 namespace,檢視 namespace 中的 br0 上的裝置。

檢視 vxlan0 裝置的具體配置資訊可知此 overlay 使用的 vni(vxlan id)為 256。

理解了 overlay 網路的連通性,下一節我們繼續討論 overlay 的網路隔離特性。

如何實現跨域?

1.最經典的跨域方案jsonp jsonp本質上是乙個hack,它利用標籤不受同源策略限制的特性進行跨域操作。jsonp優點 實現簡單 相容性非常好 jsonp的缺點 只支援get請求 因為標籤只能get 有安全性問題,容易遭受xss攻擊 需要服務端配合jsonp進行一定程度的改造 jsonp的實現...

如何實現跨域

跨域的前提條件 所有的跨域請求都必須經過資訊提供方允許 如果未經允許即可獲取,那是瀏覽器同源策略出現漏洞 解決 1.src跨域 jsonp方式 2.cors方式 3.伺服器 cors 對比 jsonp 都能解決 ajax直接請求普通檔案存在跨域無許可權訪問的問題 jsonp只能實現get請求,而co...

內網如何實現跨域

1.jsonp跨域 利用了 script 不受同源策略的限制 缺點 只能 get 方式,易受到 xss攻擊 2.cors跨域 當使用xmlhttprequest傳送請求時,如果瀏覽器發現違反了同源策略就會自動加上乙個請求頭 origin 後端在接受到請求後確定響應後會在後端在接受到請求後確定響應後會...