所以我试图在我的虚拟网络上模拟互联网中断。
我不能按照下面链接的建议关闭接口,因为我想模拟专用网络工作并且我可以访问本地内容(即数据库)但网关失败的场景。
网络使用 Docker 运行,所有机器都是单独的 Docker 镜像
有没有一种简单的方法可以做到这一点?
答案1
第一步是确保每个 docker 镜像都在其自己的网络命名空间内运行,然后使用虚拟接口填充每个镜像;也许理想情况下,一个接口用于(未受干扰的)“本地网”,另一个接口用于(受干扰的)“广域网”。
每个本地网络接口都将“连接”到全局命名空间中自己的接口,然后所有这些接口都将添加到桥接器中。该设置将为本地网络提供“布线”。然后,您可能需要在该网络上添加 DHCP 服务,或者使用静态分配。
每个 WAN 接口同样会连接到全局名称空间中自己的接口,同样所有这些都会添加到另一个桥接器,代表“WAN”的布线。该网桥还将有一个主要主机 IP,以便允许模拟 WAN 流量逃逸到“真实”WAN。为此,您可以设置 iptables 规则来引导流量,并通过更改这些规则来实现干扰。
如果您希望对不同的码头工人应用不同的干扰,您可能不会将它们集中在一座桥中,而是需要有单独的通道规则,并针对单独的干扰操纵这些规则。或者,您也可以将它们引入桥接器中,然后操作它们的虚拟布线(将每个布线与其命名空间中的配套接口连接起来)