I have a Linux server which runs a particular service listening on a single TCP port. The Linux server connects to the internet using a PPP connection and also acts as router for a local network using an Ethernet connection. I keep a firewall running on this server and manage it using Shorewall package.
Recently I got another internet link to use as a redundant IP address for my clients to connect to and use the service. This ISP gives me a modem which should connect to my LAN switch and has an IP address of 192.168.1.10
. I configured this modem to forward the service port to my server which is at 192.168.1.2
.
The problem is users can not connect through the new connection to server, routing configuration on new modem is limited (I can't tell it to do SNAT) and I don't know what sort of configuration I need on the firewall on server.
In simple words I need to tell the firewall on server, when packets come from 192.168.1.10
on port 1234, send the replies back to 192.168.1.10
, despite whatever destination IP address is.
My best bet so far from my searches is http://www.shorewall.net/MultiISP.html which requires playing with server routes.
Is there any simpler way to do this preferably using iptables and shorewall?
Edit:
The LAN for local users is at 192.168.1.0/24
. I can change new router IP address, if it helps.
I want the new link to act just as a redundant IP address, which I will add as an alias to DNS, so clients can try it in round robin fashion, when the old IP address goes down, so achieving a level of redundancy and fault tolerance. Outgoing internet connections from local network and server just need to go through old link, and it does not matter if it goes down.
Unfortunately the server has only two ethernet ports, one has been used for old modem and the other for local network switch. So no free ports, but if that's the only solution, I can add another network card.
The Linux server acts as a router and a firewall. It also runs a transparent squid proxy for local network, if that's what you mean by proxy.