码迷,mamicode.com
首页 > 其他好文 > 详细

flannel 的连通与隔离 - 每天5分钟玩转 Docker 容器技术(61)

时间:2017-08-30 11:07:00      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:docker   教程   容器   

上一节我们在 flannel 网络中部署了容器本节讨论 flannel 的连通和隔离特性。

flannel 网络连通性

测试 bbox1 和 bbxo2 的连通性
技术分享

bbox1 能够 ping 到位于不同 subnet 的 bbox2通过 traceroute 分析一下 bbox1 到 bbox2 的路径。

技术分享

  1. bbox1 与 bbox2 不是一个 subnet数据包发送给默认网关 10.2.40.1docker0。

  2. 根据 host1 的路由表下图数据包会发给 flannel.1。
    技术分享

  3. flannel.1 将数据包封装成 VxLAN通过 enp0s8 发送给 host2。

  4. host2 收到包解封装发现数据包目的地址为 10.2.17.2根据路由表下图将数据包发送给 flannel.1并通过 docker0 到达 bbox2。
    技术分享

数据流向如图所示

技术分享

另外flannel 是没有 DNS 服务的容器无法通过 hostname 通信。

技术分享

flannel 网络隔离

flannel 为每个主机分配了独立的 subnet但 flannel.1 将这些 subnet 连接起来了相互之间可以路由。本质上flannel 将各主机上相互独立的 docker0 容器网络组成了一个互通的大网络实现了容器跨主机通信。flannel 没有提供隔离。

flannel 与外网连通性

因为 flannel 网络利用的是默认的 bridge 网络所以容器与外网的连通方式与 bridge 网络一样即

  1. 容器通过 docker0 NAT 访问外网

  2. 通过主机端口映射外网可以访问容器

详细讨论可参考前面 bridge 网络相关章节。

技术分享以上是 flannel vxlan 的相关知识点下一节我们讨论 flannel host-gw backend。

技术分享

flannel 的连通与隔离 - 每天5分钟玩转 Docker 容器技术(61)

标签:docker   教程   容器   

原文地址:http://cloudman.blog.51cto.com/10425448/1961000

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!