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

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

在 host1 中運行容器 bbox1:docker

eval $(weave env)網絡

docker run --name bbox1 -itd busyboxrest

首先執行 eval $(weave env) 很重要,其做用是將後續的 docker 命令發給 weave proxy 處理。若是要恢復以前的環境,可執行 eval $(weave env --restore)code

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

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

如今咱們重點分析 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 輸出:it

這裏出現了多個新 interface:ast

① 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

相關文章
相關標籤/搜索