(二十一)Calico 的网络结构是什么?
上一节我们部署了 Calico 网络,今天将运行容器并分析 Calico 的网络结构。 在 host1 中运行容器 bbox1 并连接到 cal_net1:
docker container run --net cal_net1 --name bbox1 -tid busybox
查看 bbox1 的网络配置。
docker exec bbox1 ip addr
cali0 是 calico interface,分配的 IP 为 192.168.119.2。cali0 对应 host1 编号 11 的 interface cali5f744ac07f0。
ip -link show
host1 将作为 router 负责转发目的地址为 bbox1 的数据包。
所有发送到 bbox1 的数据都会发给 cali5f744ac07f0,因为 cali5f744ac07f0 与 cali0 是一对 veth pair,bbox1 能够接收到数据。
host1 网络结构如图所示:
接下来我们在 host2 中运行容器 bbox2,也连接到 cal_net1:
docker container run --net cal_net1 --name bbox2 -tid busybox
IP 为 192.168.183.65。
host2 添加了两条路由:
- 目的地址为 host1 容器 subnet 192.168.119.0/26 的路由。
- 目的地址为本地 bbox2 容器 192.168.183.65 的路由。
同样的,host1 也自动添加了到 192.168.183.64/26 的路由。
完成了上面这些准备工作,下一节我们将讨论 Calico 网络的连通性。