overlay 如何实现跨主机通信?

在 host2 中运行容器 bbox2:

docker run -itd --name bbox2 --network ov_net1 busybox

bbox2 IP 为 10.0.0.4,可以直接 ping bbox1:

可见 overlay 网络中的容器可以直接通信,同时 docker 也实现了 DNS 服务。

overlay 网络的具体实现:

docker 会为每个 overlay 网络创建一个独立的 network namespace,其中会有一个 linux bridge br0,endpoint 还是由 veth pair 实现,一端连接到容器中(即 eth0),另一端连接到 namespace 的 br0 上。

br0 除了连接所有的 endpoint,还会连接一个 vxlan 设备,用于与其他 host 建立 vxlan tunnel。容器之间的数据就是通过这个 tunnel 通信的。逻辑网络拓扑结构如图所示:

要查看 overlay 网络的 namespace 可以在 host1 和 host2 上执行 ip netns(请确保在此之前执行过 ln -s /var/run/docker/netns /var/run/netns),可以看到两个 host 上有一个相同的 namespace “1-9a04f53798”:

这就是 ov_net1 的 namespace,查看 namespace 中的 br0 上的设备。

查看 vxlan1 设备的具体配置信息可知此 overlay 使用的 VNI(VxLAN ID)为 256。

-------------------------------------------------引用来自---------------------------------------------------

https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587771&idx=1&sn=d3cabc71d9a8ff34ce7a9192b188da08&chksm=8d308122ba4708349d01a6cfa2db04aef853e1813ee2a59dbc3bb7b50f712b170ad88de90d8a&scene=21#wechat_redirect

最新文章

  1. PHP去重算法的优化过程
  2. MI卡UID
  3. ubuntu添加sudo权限
  4. Server.Transfer方式(或称HttpContext方式)传值实例
  5. iptables转发
  6. OC基础--self关键字&super关键字
  7. codeforces B. Flag Day 解题报告
  8. Oracle Flashback Technologies - 闪回被drop的表
  9. jquery 1.6发布后,增加prop()方法部分取代attr()方法
  10. PHP前端$.ajax传递数据到后台
  11. Android(java)学习笔记80:UDP协议发送数据
  12. 在“BindingNavigator”删除数据前弹出确认框的实现
  13. iOS-封装静态库
  14. 领域驱动设计系列(2)浅析VO、DTO、DO、PO的概念、区别和用处
  15. Selenium webdriver 常见问题
  16. 利用h5标签在网页上播放音乐
  17. PHPmysqli的 预处理执行查询语句
  18. #WEB安全基础 : HTML/CSS | 0x9美丽的饮料店
  19. yum安装mysql5.7
  20. Codeforces Round #539 div2

热门文章

  1. oracle 11g亿级复杂SQL优化一例(数量级性能提升)
  2. Python爬虫(一)——豆瓣下图书信息
  3. 关于sql中in 和 exists 的效率问题
  4. 【专家坐堂Q&A】在 petalinux-config 中选择外部来源时,可将符号链路添加内核来源目录树
  5. TensorFlow学习---tf.nn.dropout防止过拟合
  6. vector at()函数比 []运算符操作安全
  7. CNN Mnist
  8. 求最大流dinic算法模板
  9. ProgrammingError: You must not use 8-bit bytestrings...
  10. 两个线程分别打印 1- 100,A 打印偶数, B打印奇数。