上一节我们在 host1 中运行了容器 bbox1,今天将详细讨论 overlay 网络跨主机通信的原理。

在 host2 中运行容器 bbox2:

bbox2 IP 为 10.0.0.3,可以直接 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-f4af9b33c0”:

ip netns

......

1-f4af9b33c0

......

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

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

理解了 overlay 网络的连通性,下一节我们继续讨论 overlay 的网络隔离特性。

转载于:https://www.cnblogs.com/CloudMan6/p/7305989.html

overlay 如何实现跨主机通信?- 每天5分钟玩转 Docker 容器技术(52)相关推荐

  1. 跨主机使用 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(77)

    上一节我们在 docker1 上的 MySQL 容器中使用了 Rex-Ray volume mysqldata,更新了数据库.现在容器已经删除,今天将演示在 docker2 中重新使用这个卷. 在 d ...

  2. Service 之间如何通信?- 每天5分钟玩转 Docker 容器技术(101)

    微服务架构的应用由若干 service 组成.比如有运行 httpd 的 web 前端,有提供缓存的 memcached,有存放数据的 mysql,每一层都是 swarm 的一个 service,每个 ...

  3. 准备 overlay 网络实验环境 - 每天5分钟玩转 Docker 容器技术(49)

    为支持容器跨主机通信,Docker 提供了 overlay driver,使用户可以创建基于 VxLAN 的 overlay 网络.VxLAN 可将二层数据封装到 UDP 进行传输,VxLAN 提供与 ...

  4. 容器间通信的三种方式 - 每天5分钟玩转 Docker 容器技术(35)

    容器之间可通过 IP,Docker DNS Server 或 joined 容器三种方式通信. IP 通信 从上一节的例子可以得出这样一个结论:两个容器要能通信,必须要有属于同一个网络的网卡. 满足这 ...

  5. 创建 overlay 网络 - 每天5分钟玩转 Docker 容器技术(50)

    上一节我们搭建好实验环境,配置并运行了consul,今天开始创建 overlay 网络. 在 host1 中创建 overlay 网络 ov_net1: -d overlay 指定 driver 为 ...

  6. 052、overlay如何实现跨主机通信?(2019-03-19 周二)

    参考https://www.cnblogs.com/CloudMan6/p/7305989.html 今天开始学习 overlay 网络跨主机通信的原理   root@host01:~# ufw al ...

  7. Docker的网络模式和跨主机通信

    文章转载自:http://www.a-site.cn/article/169899.html Docker的四种网络模式Bridge模式 当Docker进程启动时,会在主机上创建一个名为docker0 ...

  8. 50-overlay 如何实现跨主机通信?

    上一节我们在 host1 中运行了容器 bbox1,今天将详细讨论 overlay 网络跨主机通信的原理. 在 host2 中运行容器 bbox2: bbox2 IP 为 10.0.0.3,可以直接 ...

  9. docke跨主机通信之gre隧道

    GRE简介 GRE可以对网络层的任何协议来进行封装,类似LVS的IPIP协议,在原有的数据报上增加GRE协议数据报.然后在网络上传输,到达对端后,解开GRE数据报头,得到真实的数据报.其中的mac地址 ...

最新文章

  1. github用相对路径显示图片_url-图像未显示在GitHub的README.md中
  2. [算法]一次商品交易利益最大化
  3. 【STM32】USART相关函数和类型
  4. 2048java课程设计报告_2048小游戏-Java-课程设计报告书
  5. C#中的三层前馈神经网络,带有图形显示
  6. 各大浏览器保存密码的文件
  7. Windows Phone 7 不温不火学习之《Expression Blend 创建渐变效果和创建Storyboard动画》...
  8. 真实场景下如何解决类别不平衡问题
  9. 移动商城第十四篇【收货地址查询、添加、更新】
  10. 机器学习之自然语言处理——中文分词jieba库详解(代码+原理)
  11. top工具全字段解析+实战(一)
  12. EL| EL表达式总结
  13. Knockout+RequireJS+Sammy搭建简单的SPA脚手架
  14. 【BlockingQueue】BlockingQueue接口方法说明和区别
  15. [性能测试]LR常见问题整理
  16. 目前房价、股价下跌。市场出现希望*数市的呼声,请谈请你对救市的看法。
  17. 大电流dcdc降压芯片20a_关于LED驱动电源那些常见的十款经典LED驱动芯片
  18. opensource项目_宣布2018年Opensource.com社区奖获奖者
  19. “大数据金融”亟待“大数据安全”
  20. 决定显卡性能的比较重要的几个参数是什么?

热门文章

  1. 计算机英语阅读路线,高考英语阅读理解真题解析·计算机运用
  2. java 英文字符串排序_英文字符串排序算法
  3. webase crud查看所有表_Laravel-Gii 可视化代码生成工具 CRUD +GUI
  4. 电力电子、电机控制系统的建模和仿真_清华团队研发,首款国产电力电子仿真软件来啦~已捐赠哈工大、海工大、清华使用!...
  5. 所处理的数据在什么地方 有多长 如何定义 如何寻找
  6. 计算机科学导论(第一次阅读)
  7. python数据库连接池使用
  8. 数据结构 二叉树的存储结构_线程二叉树| 数据结构
  9. oracle网卡,Oracle_bond网卡配置
  10. 栈应用_检测成对符号是否正确使用(代码、分析、汇编)