相同calico 网络之间的连通性

测试一下 bbox1 与 bbox2 的连通性:

ping 成功,数据包流向如下图所示。

1)根据 bbox1 的路由表,将数据包从 cal0 发出。

2)数据经过 veth pair 到达 host1,查看路由表,数据由 ens192 发给 host2(10.12.31.23)。

192.168.183.64/26 via 10.12.31.23 dev ens192  proto bird

3)host2 收到数据包,根据路由表发送给 cali95e23ca6529,进而通过 veth pair cali0 到达 bbox2。

192.168.183.70 dev cali95e23ca6529  scope link

不同 calico 网络之间的连通性

创建 cal_net2

docker network create --driver calico --ipam-driver calico-ipam cal_net2

在 host1 中运行容器 bbox4,连接到 cal_net2:

docker container run --network cal_net2 --name bbox4 -tid busybox

calico 为 bbox4 分配了 IP 192.168.119.9

验证 bbox1 与 bbox4 的连通性

虽然 bbox1 和 bbox4 都位于 host1,而且都在一个 subnet 192.168.119.0/26,但它们属于不同的 calico 网络,默认不能通行。

calico 默认的 policy 规则是:容器只能与同一个 calico 网络中的容器通信。

calico 的每个网络都有一个同名的 profile,profile 中定义了该网络的 policy。

查看 cal_net1 的 profile:

calicoctl get profile cal_net1 -o yaml

1)命名为 cal_net1,这就是 calico 网络 cal_net1 的 profile。

2)为 profile 添加一个 tag cal_net1。注意,这个 tag 虽然也叫 cal_net1,其实可以随便设置,这跟上面的 name: cal_net1 没有任何关系。此 tag 后面会用到。

3)egress 对从容器发出的数据包进行控制,当前没有任何限制。

4)ingress 对进入容器的数据包进行限制,当前设置是接收来自 tag cal_net1 的容器,根据第 1)步设置我们知道,实际上就是只接收本网络的数据包,这也进一步解释了前面的实验结果。

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

https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587859&idx=1&sn=12d8133bcc802a21ebfc52c4fb8ba98a&chksm=8d30818aba47089c11837734dd096e28872dce37ab20370902c2bc1bbabdb166fca010ad0b51&scene=21#wechat_redirect

第 8 章 容器网络 - 069 - Calico 的默认连通性的更多相关文章

  1. 第 8 章 容器网络 - 070 - 如何定制 Calico 网络 Policy?

    定制 Calico 网络 Policy Calico 默认的 policy 规则是:容器只能与同一个 calico 网络中的容器通信. Calico 能够让用户定义灵活的 policy 规则,精细化控 ...

  2. 第 8 章 容器网络 - 072 - 一文搞懂各种 Docker 网络

    Docker 起初只提供了简单的 single-host 网络,显然这不利于 Docker 构建容器集群并通过 scale-out 方式横向扩展到多个主机上. 跨主机网络方案: Docker Over ...

  3. 第 8 章 容器网络 - 066 - Weave 如何与外网通信?

    Weave 与外网通信 weave 是一个私有的 VxLAN 网络,默认与外部网络隔离. 外部网络如果要访问到 weave 中的容器:1.首先将主机加入到 weave 网络.2.然后把主机当作访问 w ...

  4. 第 8 章 容器网络 - 063 - 如何使用 Weave 网络?

    如何使用 Weave 网络? weave 是 Weaveworks 开发的容器网络解决方案. weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来. 对容器来说,weave 就像一个巨大的以 ...

  5. 第 8 章 容器网络 - 061 - flannel 的连通与隔离

    flannel 的连通与隔离 测试 bbox1 和 bbxo2 的连通性: bbox1 能够 ping 到位于不同 subnet 的 bbox2,通过 traceroute 分析一下 bbox1 到 ...

  6. 第 8 章 容器网络 - 058 - flannel 概述

    flannel 概述 flannel 是 CoreOS 开发的容器网络解决方案. flannel 为每个 host 分配一个 subnet,容器从此 subnet 中分配 IP,这些 IP 可以在 h ...

  7. 第 8 章 容器网络 - 054 - 准备 macvlan 环境

    准备 macvlan 环境 macvlan 本身是 linux kernel 模块,其功能是允许在同一个物理网卡上配置多个 MAC 地址,即多个 interface,每个 interface 可以配置 ...

  8. Calico 的默认连通性 - 每天5分钟玩转 Docker 容器技术(69)

    前面我们完成了 Calico 网络的部署并运行了容器,今天将讨论 Calico 的连通性. 测试一下 bbox1 与 bbox2 的连通性: ping 成功,数据包流向如下图所示. ① 根据 bbox ...

  9. 069、Calico的默认连通性(2019-04-12 周五)

    参考https://www.cnblogs.com/CloudMan6/p/7536746.html   Calico 跨主机连通性测试   root@host1:~# docker exec bbo ...

随机推荐

  1. php导出超大csv导出方法,读取超大文件或者接受超大数组,防止内存溢出

    基本思路就是,知道总数之后分割成2万一个数组进行查询,最后独立写入csv,避免数据过大导致溢出 速度还不错,在php7下,机器I5 8G内存,128G,SSD,52W多条,大概也就30秒,出来整个文件 ...

  2. Restful API设计规范

    理解RESTful架构 Restful API设计指南 理解RESTful架构 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式 ...

  3. Filter and servlet

    filter与servlet的区别与联系呢? 1. Filter    实现javax.servlet.Filter接口,在web.xml中配置与标签指定使用哪个Filter实现类过滤哪些URL链接. ...

  4. PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 的区别

    $_SERVER['SCRIPT_FILENAME']          -------> 当前执行程序的绝对路径及文件名__FILE__                             ...

  5. Mac快捷键大全及cheatsheet插件

    常用快捷键 CheatSheet 在微信上看到一篇文章分享了一款小软件,觉得有必要推荐一下.名叫CheatSheet.如果你想知道某程序的所有快捷键,只需在Mac上安装CheatSheet,然后长按住 ...

  6. (转载)Java Map中的Value值如何做到可以为任意类型的值

    转载地址:http://www.importnew.com/15556.html     如有侵权,请联系作者及时删除. 搬到我的博客来,有空细细品味,把玩. 本文由 ImportNew - shut ...

  7. windows----------如何修改windows服务器远程端口

    远程连接并登录到 Windows 实例. 选择开始 > 运行,输入 regedit 打开注册表编辑器. 查找 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSe ...

  8. Go 初体验 - 令人惊叹的语法 - defer.2 - 如何提前执行?

    上一文中讲到 defer 会在宿主函数 return 之前调用,那么我们就是想在宿主函数执行到中间调用,怎么办呢? 1. 改变宿主函数逻辑,分成多个函数,需要的那个函数里 defer . 2. 使用匿 ...

  9. mysql迁移到data下

    http://www.jb51.net/article/47897.htm 由于yum安装mysql的时候,数据库的data目录默认是在/var/lib下,出于数据安全性的考虑需要把它挪到/data分 ...

  10. uva12545

    #include<iostream> using namespace std; +; char s[maxn],t[maxn]; int main(){ //freopen("1 ...