Re: routing for split multiple uplinks/providers with port forwarding

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ian,

 : It doesn't work as given for connections that are port forwarded from
 : the Linux router to machines inside the local network (e.g. to a web
 : server).

True, the multiple uplinks is for exactly that, uplinks!  Or, in other
words, outbound connectivity, only.

 : With port forwarding in the mix, packets arriving from the Internet to
 : a particular port on the Linux router have DNAT applied so that they
 : pass transparently on to the internal web server; but, the answer
 : packets from the web server arrive back at the Linux router and do not
 : necessarily go out by the same gateway/provider by which they came in.

Also true.  The conventional solution is to have an end-to-end unique
path, and perform DNAT (or NAT) based on each public/private pair. [0]
Although, you might consider using connection tracking to do the heavy
lifting for you. [1]

 : I suspect the fix is somehow to mark the port forwarded packets with a
 : flag indicating on which interface they arrived at the Linux router,
 : and then preserve this flag into the answer packets on the web server.
 : On the Linux router I can then make sure that appropriately flagged
 : answer packets go out the correct interface.

Yes, you can mark the packets....the trick is to take advantage of the
DNAT connection tracking entry in the PREROUTING table as the packet
enters the firewall from the internal network.  This allows you to mark
the packet before routing based on the original (public) destination IP
address.  Observe the use of "--ctorigdst" in this iptables command.

-Martin

 [0]  http://linux-ip.net/html/adv-multi-internet.html#adv-multi-internet-inbound
 [1]  http://mailman.ds9a.nl/pipermail/lartc/2003q2/008090.html

-- 
Martin A. Brown --- SecurePipe, Inc. --- mabrown@xxxxxxxxxxxxxx

_______________________________________________
LARTC mailing list / LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux