具有重复 IP 地址的两个网络之间的路由

具有重复 IP 地址的两个网络之间的路由

在 Linux 机器上我们有三个网络接口,它们如下所示

| CentOS 6 Server
| ---------> eth0 (DHCP (192.168.1.x) Default Gateway, connects to a wired internet, 
|----------> eth1 (IP : (10.165.11.139) GW to be used : (10.165.11.137), connects to a network A
|----------> eth2 (IP : (10.150.114.190) GW to be used: (10.150.114.191), connects to a network B

这里的问题是网络 A 和网络 B 都有具有相同 IP 的节点,例如:

10.232.130.171
10.232.130.172
10.232.131.100

Route-eth1 文件如下所示:

10.232.130.0/24 via 10.165.11.137
10.232.131.0/24 via 10.165.11.137

Route-eth2 文件如下所示:

10.232.130.0/24 via 10.150.114.189
10.232.131.0/24 via 10.150.114.189

因此 ping 10.232.130.171 将始终将其路由到 eth1 而不是 eth2 尝试使用与接口(星号 PBX)绑定的应用程序,来自上述 IP 的传入连接工作正常,但对其的任何响应都是通过 eth1 发送的,因此被拒绝。

有任何指示如何解决这个问题吗?

答案1

由于您提到传入连接,特别是错误方向的回复,听起来似乎使用源地址 10.150.114.190 (eth2) 发送的数据包使用通过 10.150.114.191 的路由就足够了,对于 eth1 也是如此。基于策略(源)的路由应该能够做到这一点。

它基本上应该归结为:

echo "201 net1" >> /etc/iproute2/rt_tables
echo "202 net2" >> /etc/iproute2/rt_tables
ip rule add from 10.165.11.139 lookup net1
ip route add 10.232.130.0/23 via 10.165.11.143 dev eth1 table net1
ip rule add from 10.150.114.190 lookup net2
ip route add 10.232.130.0/23 via 10.150.114.189 dev eth2 table net2

但我可能在这里错过了一些问题。

另请参见例如

请注意,这样做意味着中央主机上想要启动到“重复”网络之一的连接的任何进程都必须专门绑定到适当的接口/IP 地址,而且如果您路由来自两个 10.232. 130.0/23 阻止了外部世界,那么这还不够。

就我而言,上述内容也几乎未经测试。买者自负。我只是发布这是一个答案,以便可以对其进行否决。

老实说,如果我有选择,我会考虑贿赂两个网络的管理员,以对其中一个或两个网络进行重新编号。

相关内容