在同一个网络中模拟 2 个集群

在同一个网络中模拟 2 个集群

我有 4 台电脑和另一台电脑(将充当代理),它们都位于同一个网络:172.16.96.0/20。我可以互相 ping 通。但是,我想将它们分成两组。即:

pc1 is directly connected to pc2
pc3 is directly connected to pc4

但是,所有从 pc1 或 pc2 到 pc3 或 pc4 的流量都必须经过代理,所有从 pc3 或 pc4 到 pc1 或 pc2 的流量都必须经过代理。例如:

pc1          pc3
 |   -proxy-  |
pc2          pc4

pc1 IP: 172.16.97.24 
pc3 IP: 172.16.97.27
proxy IP: 172.16.97.2

为了在 pc1 上执行此操作,我添加了:

ip route add 172.16.97.27 via 172.16.97.2

但是,当我这样做时traceroute 172.16.97.27,172.16.97.2 并没有出现作为跳跃..我不确定它是否应该..

在代理上,路由表如下所示:

default via 172.16.111.254 dev eth0 
172.16.96.0/20 dev eth0  proto kernel  scope link src 172.16.97.2  

由于最后一行,我认为我应该添加另一个源,即 pc1 172.16.97.24。为了能够将从 pc1(172.16.97.24)收到的流量转发到其目的地(pc3 或 pc4),我使用了以下命令:

ip route add 172.16.96.0/20 via 0.0.0.0 src 172.16.97.24

错误:RTNETLINK 回答:没有这样的设备

ip route add 172.16.96.0/20 dev eth0:0 via 0.0.0.0 src 172.16.97.24

错误:RTNETLINK 答案:无效参数

和:

ip route add 172.16.96.0/20 src 172.16.97.24

错误:RTNETLINK 回答:没有这样的设备

我不确定我是否按照正确的方式进行此配置。如果不对,请告诉我。谢谢!

答案1

如果您想使用代理执行 IP 路由,则需要将您的 IP 网络划分为更小的部分。

您的 pc1/pc2/pc3/pc4 的网络掩码均为 255.255.240.0,这意味着所有这些 IP 地址都位于同一 IP 子网中。因此,它们将直接相互通信,而不通过路由器路由数据包。

有效的路由配置可能是这样的:

pc1: IP 172.16.96.3/24
pc2: IP 172.16.96.4/24
pc3: IP 172.16.97.3/24
pc4: IP 172.16.97.4/24

Proxy: IP 172.16.96.1/24, 172.16.97.1/24

然后您将在 PC1/2 中添加路由表条目:

ip route add 172.16.97.0/24 via 172.16.96.1

并分别在PC3/4

ip route add 172.16.96.0/24 via 172.17.97.1

因此,您将拥有两个独立的 IP 子网。

相关内容