macvlan 网络结构分析 macvlan 不依赖 Linux bridge,brctl show 可以确认没有创建新的 bridge. 查看一下容器 bbox1 的网络设备: 除了 lo,容器只有一个 eth0,请注意 eth0 后面的 @if2,这表明该 interface 有一个对应的 interface,其全局的编号为 2. 根据 macvlan 的原理,我们有理由猜测这个 interface 就是主机的 ens192,确认如下: 由此可见,容器的 eth0 就是 ens192 通过…
macvlan 网络隔离和连通 验证 macvlan 之间的连通性. bbox1 能 ping 通 bbox3,bbox2 能 ping 通 bbox4. 即:同一 macvlan 网络能通信. bbox1 无法 ping 通 bbox2 和 bbox4. 即:不同 macvlan 网络之间不能通信. 但更准确的说法应该是:不同 macvlan 网络不能 在二层上 通信. 在三层上可以通过网关将 macvlan 连通,下面我们就启用网关. 将 Host 10.12.31.21 配置成一个虚拟路由…
1.创建 macvlan 网络 在 host1 和 host2 中创建 macvlan 网络 mac_net1: docker network create -d macvlan --subnet=172.16.86.0/24 --gateway=172.16.86.1 -o parent=ens192 mac_net1 注意:在 host2 中也要执行相同的命令. 1) -d macvlan 指定 driver 为 macvlan. 2) macvlan 网络是 local 网络,为了保证跨主…
准备 macvlan 环境 macvlan 本身是 linux kernel 模块,其功能是允许在同一个物理网卡上配置多个 MAC 地址,即多个 interface,每个 interface 可以配置自己的 IP. macvlan 本质上是一种网卡虚拟化技术,Docker 用 macvlan 实现容器网络. macvlan 的最大优点是性能极好,相比其他实现,macvlan 不需要创建 Linux bridge,而是直接通过以太 interface 连接到物理网络. 创建一个 macvlan 网…
上一节我们准备好了 macvlan 的实验环境,今天在 host1 和 host2 中创建 macvlan 网络 mac_net1: 注意:在 host2 中也要执行相同的命令. ① -d macvlan 指定 driver 为 macvlan. ② macvlan 网络是 local 网络,为了保证跨主机能够通信,用户需要自己管理 IP subnet. ③ 与其他网络不同,docker 不会为 macvlan 创建网关,这里的网关应该是真实存在的,否则容器无法路由. ④ -o parent 指…
上一节我们创建了 macvlan 并部署了容器,本节详细分析 macvlan 底层网络结构. macvlan 网络结构分析 macvlan 不依赖 Linux bridge,brctl show 可以确认没有创建新的 bridge. 查看一下容器 bbox1 的网络设备: 除了 lo,容器只有一个 eth0,请注意 eth0 后面的 @if4,这表明该 interface 有一个对应的 interface,其全局的编号为 4.根据 macvlan 的原理,我们有理由猜测这个 interface…
上一节我们创建了两个 macvlan 并部署了容器,网络结构如下: 本节验证 macvlan 之间的连通性. bbox1 能 ping 通 bbox3,bbox2 能 ping 通 bbox4.即:同一 macvlan 网络能通信. bbox1 无法 ping 通 bbox2 和 bbox4.即:不同 macvlan 网络之间不能通信.但更准确的说法应该是:不同 macvlan 网络不能 在二层上 通信.在三层上可以通过网关将 macvlan 连通,下面我们就启用网关. 我们会将 Host 19…
Docker 起初只提供了简单的 single-host 网络,显然这不利于 Docker 构建容器集群并通过 scale-out 方式横向扩展到多个主机上. 跨主机网络方案: Docker Overaly Macvaln Flannel Weave Calico 根据不同场景选择最合适的方案: 网络模型 采用何种网络模型支持 multi-host 网络? Distributed Store 是否需要 etcd 或 consul 这类分布式 key-value 数据库存储网络信息? IPMA 如…
参考https://www.cnblogs.com/CloudMan6/p/7383919.html   macvlan不依赖linux bridge   brctl show 可以确认没有创建新的bridge   查看容器中只有一块网卡 eth0@if3 ,对应host上的 3号接口   容器的interface 直接与host的网卡连接,这种方法使得容器无需通过NAT和端口映射就能与外网直接通信(只要网络中有网关),在网络上与其他独立的主机没有区别   root@host1:~# brctl…
如何使用 Weave 网络? weave 是 Weaveworks 开发的容器网络解决方案. weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来. 对容器来说,weave 就像一个巨大的以太网交换机,所有容器都被接入这个交换机,容器可以直接通信,无需 NAT 和端口映射. 除此之外,weave 的 DNS 模块使容器可以通过 hostname 访问. 实验环境描述 weave 不依赖分布式数据库(例如 etcd 和 consul)交换网络信息,每个主机上只需运行 weave 组件就能…