在同一个networking中模拟2个集群

我有4个pc和另一个pc,它们将作为代理,全部在同一个networking中: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不会显示为一跳。我不知道是否应该..

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

 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)收到的stream量转发到目的地(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答案:没有这样的设备

我不知道我是否正在进行这种configuration的正确path。 请告诉我,如果没有。 谢谢!

如果要使用代理执行IP路由,则需要将IPnetworking划分为较小的部分。

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

工作路由configuration可能是这样的:

 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子网。