打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
容器网络(八)Weave 网络结构分析【59】

(十七)Weave 网络结构分析

上一节我们安装并创建了 Weave 网络,本节将部署容器并分析网络结构。

在 host1 中运行容器 bbox1:

root@host1:~# eval $(weave env)
root@host1:~# docker run --name bbox1 -itd busybox

首先执行 eval $(weave env) 很重要,其作用是将后续的 docker 命令发给 weave proxy 处理。如果要恢复之前的环境,可执行 eval $(weave env --restore)

查看一下当前容器 bbox1 的网络配置:

root@host1:~# docker exec -it bbox1 ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
25: eth0@if26: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue 
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
27: ethwe@if28: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1376 qdisc noqueue 
    link/ether 72:28:6a:63:a6:ea brd ff:ff:ff:ff:ff:ff
    inet 10.32.0.1/12 brd 10.47.255.255 scope global ethwe
       valid_lft forever preferred_lft forever
root@host1:~# 

bbox1 有两个网络接口 eth0 和 ethwe,其中 eth0 连接的是默认 bridge 网络,即网桥 docker0。

现在我们重点分析 ethwe。从命名和分配的 IP 10.32.0.1/12 可以猜测 ethwe 与 weave 相关,ethwe@if28 告诉我们与 ethwe 对应的是编号 27 的 interface。从 host1 的 ip link` 命令输出中找到该 interface:

28: vethwepl9602@if27: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1376 qdisc noqueue master weave state UP mode DEFAULT group default 
    link/ether a2:31:cd:31:38:26 brd ff:ff:ff:ff:ff:ff link-netnsid 0
root@host1:~# 

vethwepl9602 与 ethwe 是一对 veth pair,而且 vethwepl9602 挂在 host1 的 Linux bridge weave 上。

root@host1:~# brctl show
bridge name	bridge id		STP enabled	interfaces
br-283474cba87c		8000.024243ac3d30	no		
br-ba21840c1713		8000.0242f076f3a5	no		
docker0		8000.02429b0a69cd	no		vethc529fcc
weave		8000.c6160b5837f6	no		vethwe-bridge
							vethwepl9602
root@host1:~# 

除了 vethwepl9602,weave 上还挂了一个 vethwe-bridge,这是什么?让我们更深入的分析一下,查看 ip -d link 输出:

这里出现了多个新 interface:

vethwe-bridgevethwe-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。

root@host1:~# docker run --name bbox2 -itd busybox
db6161d808f59b933bac57a6b35f47c17892686a052787d765c6a3475231dccc
root@host1:~# 

weave DNS 为容器创建了默认域名 weave.local,bbox1 能够直接通过 hostname 与 bbox2 通信。

root@host1:~# docker exec -it bbox1 hostname
bbox1.weave.local
root@host1:~# docker exec  -it bbox1 ping -c 2 bbox2
PING bbox1 (10.32.0.1): 56 data bytes
64 bytes from 10.32.0.1: seq=0 ttl=64 time=0.077 ms
64 bytes from 10.32.0.1: seq=1 ttl=64 time=0.055 ms
root@host1:~#

当前 host1 网络结构为:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
容器网络(八)容器在 Weave 中如何通信和隔离?【60】
容器网络(八)Calico 的网络结构是什么?【63】
容器网络(十)Weave Scope 多主机监控【76】
容器网络(八)如何使用 Weave 网络?【58】
Docker学习笔记— Weave实现跨主机容器互联&n
Docker 容器技术 — 容器网络
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服