50-overlay 如何实现跨主机通信?
上一節(jié)我們在 host1 中運行了容器 bbox1,今天將詳細討論 overlay 網(wǎng)絡跨主機通信的原理。
在 host2 中運行容器 bbox2:
?
bbox2 IP 為 10.0.0.3,可以直接 ping bbox1:
可見 overlay 網(wǎng)絡中的容器可以直接通信,同時 docker 也實現(xiàn)了 DNS 服務。
下面我們討論一下 overlay 網(wǎng)絡的具體實現(xiàn):
docker 會為每個 overlay 網(wǎng)絡創(chuàng)建一個獨立的 network namespace,其中會有一個 linux bridge br0,endpoint 還是由 veth pair 實現(xiàn),一端連接到容器中(即 eth0),另一端連接到 namespace 的 br0 上。
br0 除了連接所有的 endpoint,還會連接一個 vxlan 設備,用于與其他 host 建立 vxlan tunnel。容器之間的數(shù)據(jù)就是通過這個 tunnel 通信的。邏輯網(wǎng)絡拓撲結構如圖所示:
要查看 overlay 網(wǎng)絡的 namespace 可以在 host1 和 host2 上執(zhí)行?ip netns(請確保在此之前執(zhí)行過?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 網(wǎng)絡的連通性,下一節(jié)我們繼續(xù)討論 overlay 的網(wǎng)絡隔離特性。
轉(zhuǎn)載于:https://www.cnblogs.com/mkxfs/p/10975363.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的50-overlay 如何实现跨主机通信?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初涉网络流 POJ 1459 Power
- 下一篇: ##MySql数据库表的操作与应用