如何将来自特定端口上的第二个路由器的数据包发送回路由器,使用iptables而不是路由

我有一个Linux服务器运行一个特定的服务在单个TCP端口上侦听。 Linux服务器使用PPP连接连接到互联网,也可以作为使用以太网连接的本地networking的路由器。 我在这台服务器上运行防火墙,并使用Shorewall软件包进行pipe理。

最近我有另一个互联网链接作为冗余的IP地址为我的客户端连接和使用服务。 这ISP给我一个调制解调器,它应该连接到我的LAN交换机,并有一个IP地址192.168.1.10 。 我configuration了这个调制解调器转发服务端口到我的服务器是在192.168.1.2

问题是用户无法通过新的连接连接到服务器,新的调制解调器上的路由configuration是有限的(我不能告诉它做SNAT),我不知道什么样的configuration,我需要在服务器上的防火墙。

简单地说,我需要告诉服务器上的防火墙,当端口1234上的数据包来自192.168.1.10 ,尽pipe目标IP地址是什么,但是将这些回复发送回192.168.1.10

我最好的select离我的search是http://www.shorewall.net/MultiISP.html要求玩服务器路线。

有没有更简单的方法来最好使用iptables和shorewall?

编辑:

本地用户的LAN位于192.168.1.0/24 。 如果有帮助,我可以更改新的路由器IP地址。

我希望新的链接只是作为一个冗余的IP地址,我将添加到DNS的别名,所以客户端可以循环尝试,当旧的IP地址closures,所以达到一个冗余和故障的水平公差。 从本地networking和服务器发出的互联网连接只需要经过旧的连接,如果发生故障则无关紧要。

不幸的是,服务器只有两个以太网端口,一个用于旧的调制解调器,另一个用于本地networking交换机。 所以没有空闲的端口,但如果这是唯一的解决scheme,我可以添加另一个网卡。

Linux服务器充当路由器和防火墙。 它也运行一个透明的本地networking鱿鱼代理,如果这是你的意思是代理。

为了使事情变得简单并避免任何冲突,您需要执行以下操作:

1-改变新的路由器的IP范围,可以说172.20.1.0/24 2-在服务器上添加一个新的接口。 给它分配一个路由器范围的ip。

 Router 172.20.1.1 <----------> Linux Box 172.20.1.2 

3-使用iproute2创build新的路由表。

 On that table set the default gateway to 172.20.1.1 Use ip rule command to add all packets returning from new internet connection to the new created table. 

假设表名是NewLink ip rule从172.20.1.2表NewLink添加

使用ip规则添加用户组到新的连接:

 ip rule add from 192.168.1.0/28 table NewLink [just a group of ips to allow them to use the new link] 

4-使用源代码,而不是最有可能使用的MASQUARGE。 将每一组ips指定给他们指定的互联网连接。

你需要走过上面提到的步骤,并寻找更多的信息,我花了一个多星期,使其工作,但现在只需要5分钟,成立一个新的提供者。