macvlan 网络隔离和连通 - 每天5分钟玩转 Docker 容器技术(57)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 上一节我们创建了两个 macvlan 并部署了容器,网络结构如下: 本节验证 macvlan 之间的连通性。 bbox1 能 ping 通 bbox3,bbox2 能 ping 通 bbox4。

上一节我们创建了两个 macvlan 并部署了容器,网络结构如下:

本节验证 macvlan 之间的连通性。

bbox1 能 ping 通 bbox3,bbox2 能 ping 通 bbox4。即:同一 macvlan 网络能通信。

bbox1 无法 ping 通 bbox2 和 bbox4。即:不同 macvlan 网络之间不能通信。但更准确的说法应该是:不同 macvlan 网络不能 在二层上 通信。在三层上可以通过网关将 macvlan 连通,下面我们就启用网关。

我们会将 Host 192.168.56.101 配置成一个虚拟路由器,设置网关并转发 VLAN10 和 VLAN20 的流量。当然也可以使用物理路由器达到同样的效果。首先确保操作系统 IP Forwarding 已经启用。

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

sysctl -w net.ipv4.ip_forward=1

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

auto eth2

iface eth2 inet manual

auto eth2.10

iface eth2.10 inet manual

vlan-raw-device eth2

auto eth2.20

iface eth2.20 inet manual

vlan-raw-device eth2


启用 sub-interface:

ifup eth2.10

ifup eth2.20


将网关 IP 配置到 sub-interface:

ifconfig eth2.10 172.16.10.1 netmask 255.255.255.0 up

ifconfig eth2.20 172.16.20.1 netmask 255.255.255.0 up


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

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

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


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

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


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

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


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

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

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

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

数据包将发送到网关 172.16.10.1。

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

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

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

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

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

至此,macvlan 就讨论完了,恭喜大家又学完一个网络方案,下一节我们开始学习 flannel。

二维码+指纹.png

目录
相关文章
|
3天前
|
SQL 安全 算法
网络安全与信息安全:攻防之间的技术博弈
【4月更文挑战第20天】在数字化时代,网络安全与信息安全已成为维护国家安全、企业利益和个人隐私的重要屏障。本文深入探讨了网络安全漏洞的成因、加密技术的进展以及提升安全意识的必要性,旨在为读者提供全面的网络安全知识框架,同时分享最新的防御策略和技术手段。通过对网络攻防技术的分析,本文揭示了安全防御的复杂性,并强调了持续教育和技术创新在网络安全领域的重要性。
15 6
|
20天前
|
SQL 安全 算法
网络安全与信息安全:防御前线的关键技术与意识
【4月更文挑战第3天】在数字化时代,网络安全与信息安全已成为维护信息完整性、确保数据私密性和保障系统可用性的基石。本文深入探讨了网络安全漏洞的概念、加密技术的应用以及提升安全意识的重要性,旨在为读者提供全面的网络安全知识框架,以应对日益复杂的网络威胁。
|
27天前
|
存储 安全 网络安全
云计算与网络安全:新时代的技术挑战与应对策略
随着云计算技术的快速发展,网络安全问题变得愈发突出。本文探讨了云服务、网络安全以及信息安全在当今技术领域面临的挑战,并提出了相应的解决方案。通过分析现状和未来趋势,可以更好地了解云计算与网络安全的关系,为构建安全可靠的云服务提供参考。
|
13天前
|
数据采集 大数据 数据安全/隐私保护
掌握网络抓取技术:利用RobotRules库的Perl下载器一览小红书的世界
本文探讨了使用Perl和RobotRules库在遵循robots.txt规则下抓取小红书数据的方法。通过分析小红书的robots.txt文件,配合亿牛云爬虫代理隐藏真实IP,以及实现多线程抓取,提高了数据采集效率。示例代码展示了如何创建一个尊重网站规则的数据下载器,并强调了代理IP稳定性和抓取频率控制的重要性。
掌握网络抓取技术:利用RobotRules库的Perl下载器一览小红书的世界
|
2天前
|
运维 前端开发 Devops
云效产品使用报错问题之流水线打包docker镜像时报网络代理有问题如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
2天前
|
安全 物联网 网络安全
网络安全与信息安全:防御前线的关键技术与策略
【4月更文挑战第21天】在数字化时代,数据成为了新的货币,而网络安全则是保护这些资产不受威胁的盾牌。本文深入探讨了网络安全漏洞的本质、加密技术的进展以及提升个人和企业安全意识的方法。通过分析当前网络攻击的模式和动机,我们提出了一系列切实可行的防御措施,旨在帮助读者构建更加安全的网络环境。
|
4天前
|
存储 监控 安全
网络安全与信息安全:防御前线的关键技术与意识
【4月更文挑战第18天】在数字化时代,数据成为了新的货币,而网络安全则是保护这些宝贵资产不受威胁的盾牌。本文深入探讨了网络安全的核心议题—漏洞管理、加密技术以及安全意识的重要性。通过分析当前网络环境中普遍存在的安全挑战,我们阐述了如何通过持续监控、定期更新和强化员工培训来构建一个更加坚固的防线。
|
8天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:DevOps与容器技术融合实践
【4月更文挑战第15天】 在当今快速发展的信息技术时代,传统的IT运维模式已难以满足业务敏捷性的需求。本文旨在探讨如何通过整合DevOps理念和容器技术来构建一个高效的自动化运维体系。文章将详细阐述DevOps的核心原则、容器技术的基础知识,以及两者结合的优势。此外,文中还将分享一系列实践经验,包括持续集成/持续部署(CI/CD)流程的搭建、微服务架构的应用,以及监控和日志管理策略的优化,以期帮助企业实现快速、可靠且安全的软件交付过程。
|
13天前
|
存储 安全 网络安全
未来云计算与网络安全:技术创新与挑战
随着数字化时代的来临,云计算与网络安全成为了当今科技领域的焦点。本文从技术创新和挑战两个方面探讨了未来云计算与网络安全的发展趋势。在技术创新方面,人工智能、区块链和量子计算等新兴技术将为云计算和网络安全带来前所未有的发展机遇;而在挑战方面,隐私保护、数据泄露和网络攻击等问题也将不断考验着技术研究者和行业从业者的智慧和勇气。未来,只有不断创新,同时加强安全防护,才能实现云计算与网络安全的良性发展。
15 1
|
14天前
|
传感器 监控 安全