如何在 Windows 上模拟网络分区?

如何在 Windows 上模拟网络分区?

正在从事一个实现聚类算法的项目。聚类的一个重要特性是在面临网络分区时尊重保证。

为了证明集群有效,我需要一种方法来在我的 Windows 开发环境中模拟分区。

在以下示例中,我将使用术语“节点”,在此上下文中,节点是启动于 IP 并接受端口上的传入连接的 Tcp 侦听器。例如,在 c# 中:new TcpListener("10.16.8.9", 12345)

测试用例:N2 与 N1 和 N3 分离

Given 
    I have a cluster of 3 nodes running on one NIC with 3 IPs
        N1 running at 10.16.8.9
        N2 running at 10.16.8.10
        N3 running at 10.16.8.11
        Dev can connect to N1, N2, N3
When 
    A partition occurrences for N2 
Then
    N2 cannot reach N1 and N3
    N1 can reach N3
    N3 can reach N1
    Dev can connect to N1, N2, N3

插图

在此处输入图片描述

如果我想使用 Windows 工具阻止/恢复来自/到 N2 的流量,我有哪些选择?

相关内容