Weave 網絡結構分析 - 每天5分鍾玩轉 Docker 容器技術(64)


上一節我們安裝並創建了 Weave 網絡,本節將部署容器並分析網絡結構。

在 host1 中運行容器 bbox1:

eval $(weave env)

docker run --name bbox1 -itd busybox

 

首先執行 eval $(weave env) 很重要,其作用是將后續的 docker 命令發給 weave proxy 處理。如果要恢復之前的環境,可執行 eval $(weave env --restore)

查看一下當前容器 bbox1 的網絡配置:

bbox1 有兩個網絡接口 eth0 和 ethwe,其中 eth0 連接的是默認 bridge 網絡,即網橋 docker0。

現在我們重點分析 ethwe。從命名和分配的 IP 10.32.0.1/12 可以猜測 ethwe 與 weave 相關,ethwe@if77 告訴我們與 ethwe 對應的是編號 77 的 interface。從 host1 的 ip link 命令輸出中找到該 interface:

vethwepl22809  ethwe 是一對 veth pair,而且 vethwepl22809 掛在 host1 的 Linux bridge weave 上。

除了 vethwepl22809,weave 上還掛了一個 vethwe-bridge,這是什么?讓我們更深入的分析一下,查看 ip -d link 輸出:

這里出現了多個新 interface:

 vethwe-bridge  vethwe-datapath 是 veth pair。

 vethwe-datapath 的父設備(master)是 datapath

 datapath 是一個 openvswitch。

 vxlan-6784 是 vxlan interface,其 master 也是 datapath,weave 主機間是通過 VxLAN 通信的。

host1 的網絡結構如下圖所示:

weave 網絡包含兩個虛擬交換機:Linux bridge weave 和 Open vSwitch datapath,veth pair vethwe-bridge  vethwe-datapath 將二者連接在一起。weave  datapath 分工不同,weave 負責將容器接入 weave 網絡,datapath 負責在主機間 VxLAN 隧道中並收發數據。

再運行一個容器 bbox2。

docker run --name bbox2 -itd busybox

 

weave DNS 為容器創建了默認域名 weave.local,bbox1 能夠直接通過 hostname 與 bbox2 通信。

當前 host1 網絡結構為:

host1 已准備就緒,下一節部署 host2 並討論 Weave 的連通與隔離特性。

二維碼+指紋.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM