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