Destination NAT and Connection Tracking

Hi Everyone..
I hope you can help me!

I am setting up a router for a friend and he has a strange setup which I am having trouble creating appropriate configuration.

The setup is, a capped DSL PPPOE Connection and an uncapped Wireless provider. DSL is fast and required for delay sensitive and priority traffic, with uncapped wireless for Web Browsing, FTP and other forms of traffic. This wireless gets forwarded through a Computer since the wireless has to plug into a USB port, so this server is setup with Internet Connection Sharing on a Windows Server 2008 Box.

Ok.. now the issue. I have setup the wireless as the main default gateway, and the PPPOE connection mark and I have set up a policy routing rule that all traffic marked with “dsl” routing mark goes over DSL.

This rule has worked for the traffic types we want to direct externally. However I am having trouble setting up destination NAT for traffic I wish to direct from externally to internal. I wish to direct rdp traffic and VPN traffic to one of the servers and the rule works. When I torch the interface I can see the requests coming in, however the TCP connection is not able to be established.

What I think is happening is traffic that is getting DST-NAT to the server, and the server is sending that traffic to the router, which is routing it out over the default gateway. I have tried to specify that traffic from the server with the source port which was DST-NAT’ed gets a routing mark to be routed over the DSL.

I’m quite new to Linux routing and would appreciate any advice as to best get around this situation.

Thanks a lot! :astonished:

To make this work you must ensure that packets belonging to the same connection will leave the same interface. Configuration example how to make it work is here
http://wiki.mikrotik.com/wiki/ECMP_load_balancing_with_masquerade#Connections_to_the_router_itself