上一节我们在 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-3e14e93b3e”:

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

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

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

转载于:https://www.cnblogs.com/mkxfs/p/10975363.html

50-overlay 如何实现跨主机通信?相关推荐

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

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

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

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

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

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

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

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

  5. docker跨主机网络——overlay与macvlan

    docker的跨主机网络 前言 这篇文件分两种方式介绍docker跨主机通信,overlay和macvlan,macvlan的方式给大家做个参考,生产环境下不推荐大家使用这种方式

  6. docker跨主机集群之flannel

    0. 环境说明 CentOS7 etcd-v3.4.3-linux-amd64.tar.gz flannel-v0.11.0-linux-amd64.tar.gz 官方文档:https://githu ...

  7. Docker 跨主机网络方案分析

    PS:文章首发公众号,欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家. 上篇文章介绍了容器网络的单主机网络,本文将进一步介绍多 ...

  8. Docker 跨主机容器网络通信 -- Flannel 实现

    一.简介 Flannel 是一种基于 overlay 网络的跨主机容器网络解决方案,也就是将 TCP 数据包封装在另一种网络包里面进行路由转发和通信,Flannel 是 CoreOS 开发,专门用于 ...

  9. 微服务自动化.03.跨主机集群

    一.容器间内部通信 bridge模式 host模式 自定义网络 Container模式 None模式 二.跨主机通信 Docker默认的网络环境下,单台主机上的Docker容器可以通过docker0网 ...

最新文章

  1. 怎么将多个html组合_技巧分享之在HTML元素中添加逼真阴影的教程
  2. 走进JVM之一 自己编译openjdk源码
  3. Python打包之pyinstaller
  4. c++随机打乱数组_第四天 Java 数组与排序
  5. 零百1.8秒的电动车竟然是威马... | 云逛成都车展
  6. 初次使用uwsgi:no python application found, check your startup logs for errors
  7. 用httpPost对JSON发送和接收的例子
  8. java 动态转换器_非常简单的Java动态转换
  9. Shell nohup 命令详解
  10. 高速光通信-调制概述
  11. Excel快捷键(字母+数字)大全
  12. 明基PD2710QC测评
  13. CAD异常闪退的原因
  14. 竹云+巨杉丨互信认证 安全可靠
  15. AirTest 基本使用及框架浅剖析——五分钟上手制作游戏辅助
  16. Documentation/timers/hpet.txt
  17. 计算机及其应用本课程,北京08自考计算机及应用(独本)课程设置
  18. Linux安装chrome的两个方法
  19. 笔记本电脑打开后不显示桌面_70后、80后、90后、00后……不一样的夏天打开方式,满满回忆!| 特别关注...
  20. 把游戏里面的 UI 做成前端组件库会怎么样?

热门文章

  1. 英特尔物联网产业的布局中,优势和劣势都在哪?
  2. 使用OpenSSL为支付宝生成RSA私钥
  3. GridView+ZedGraph【转】
  4. YII中session和cookie
  5. 优雅且高效的使用Chrome Developer Tools
  6. 监视Rails进程内存泄漏的技巧
  7. 一个B/S结构自动二次请求需求的实现
  8. java中四种线程池的区别
  9. 总结-各种安全漏洞学习环境集合(转)
  10. 快速傅里叶变换之后的结果含义