第 8 章 容器网络 - 057 - macvlan 网络隔离和连通

Posted gsophy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第 8 章 容器网络 - 057 - macvlan 网络隔离和连通相关的知识,希望对你有一定的参考价值。

macvlan 网络隔离和连通

验证 macvlan 之间的连通性。

技术图片

技术图片

 

bbox1 能 ping 通 bbox3,bbox2 能 ping 通 bbox4。

即:同一 macvlan 网络能通信。

技术图片

技术图片

 

bbox1 无法 ping 通 bbox2 和 bbox4。

即:不同 macvlan 网络之间不能通信。

但更准确的说法应该是:不同 macvlan 网络不能 在二层上 通信。

在三层上可以通过网关将 macvlan 连通,下面我们就启用网关。

 

将 Host 10.12.31.21 配置成一个虚拟路由器,设置网关并转发 VLAN10 和 VLAN20 的流量。

当然也可以使用物理路由器达到同样的效果。首先确保操作系统 IP Forwarding 已经启用。

 

输出为 1 则表示启用,如果为 0 可通过如下命令启用:

sysctl -w net.ipv4.ip_forward=1

技术图片

 

在 /etc/network/interfaces 中配置 vlan sub-interface:

技术图片

 

启用 sub-interface:

ifup ens192.10

ifup ens192.20

技术图片

 

 

将网关 IP 配置到 sub-interface:

[[email protected] ~]$ifconfig ens192.10 172.16.10.1 netmask 255.255.255.0 up

[[email protected] ~]$ifconfig ens192.20 172.16.20.1 netmask 255.255.255.0 up

 

添加 iptables 规则,转发不同 VLAN 的数据包。

iptables -t nat -A POSTROUTING -o ens192.10 -j MASQUERADE

iptables -t nat -A POSTROUTING -o ens192.20 -j MASQUERADE

iptables -A FORWARD -i ens192.10 -o ens192.20 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -i ens192.20 -o ens192.10 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -i ens192.10 -o ens192.20 -j ACCEPT

iptables -A FORWARD -i ens192.20 -o ens192.10 -j ACCEPT

 

当前网络拓扑如下图所示:

技术图片

 

 

现在 host1 上位于 mac_net10 的 bbox1 已经可以与 host2 上位于 mac_net20 的 bbox4 通信了。

技术图片

 

 

下面我们分析数据包是如何从 bbox1(172.16.10.10)到达 bbox4(172.16.20.11)的。整个过程如下图所示:

技术图片

 

 

1) 因为 bbox1 与 bbox4 在不同的 IP 网段,跟据 bbox1 的路由表:

技术图片

数据包将发送到网关 172.16.10.1。

 

2) 路由器从 ens192.10 收到数据包,发现目的地址是 172.16.20.11,查看自己的路由表:

技术图片

于是将数据包从 ens192.20 转发出去。

 

3) 通过 ARP 记录的信息,路由器能够得知 172.16.20.11 在 host2 上,于是将数据包发送给 host2。

 

4) host2 根据目的地址和 VLAN 信息将数据包发送给 bbox4。

 

macvlan 网络的连通和隔离完全依赖 VLAN、IP subnet 和路由,docker 本身不做任何限制,用户可以像管理传统 VLAN 网络那样管理 macvlan。

 

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

 https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587795&idx=1&sn=133376e76be3bcfb58dbac457044b51d&chksm=8d30814aba47085c983437c99ed3a5fc43b2c97844fb93e839450e75328903774f545e58eb9d&scene=21#wechat_redirect

以上是关于第 8 章 容器网络 - 057 - macvlan 网络隔离和连通的主要内容,如果未能解决你的问题,请参考以下文章

Docker网络浅析

2019-2020-1学期 20192425《网络空间安全专业导论》第四周学习总结”

CISP 考试教材《第 8 章 知识域:物理与网络通信安全》知识整理

系统学习Docker 践行DevOps理念-第1章 容器技术和Docker简介

思科 计算机网络 第8章测试&考试 答案

第8章 面向对象高级编程与网络编程