I have a set of servers that I want to set on two distinct networks.
The justification is: 1) Last Mile Network Redundancy 2) Load Balancing
It is very unlikely we will be allowed to run BGP for external routing so we're going to just do round-robin DNS. So we will have two distinct IP address ranges for each network. For the purposes of this question well say (Net1 = 220.127.116.11/28) and (Net2 = 18.104.22.168/28). I would also like to run OSPF (or some other internal routing) to balance between the two lines. I have a Cisco 2800 (2811) to route between the networks.
The Cisco router is currently configured to use 1 to 1 NAT (ip nat inside source static network 172.16.1.0 22.214.171.124 /28). With this configuration I am working fine on Net1. The problem is that when I bring in the second network I anticipate trouble. For one if I run the command ip nat inside source static network 172.16.1.0 126.96.36.199 /28 (if it will let me do that) the NAT is overlapped. And while the server won't know which network the traffic has originated (good thing) the router will not know which IP address to put back on the IP header which would make requests coming from the secondary network unable to receive a response.
If, however I were to do ip nat inside source static network 172.16.2.0 188.8.131.52 /28 instead (creating a new internal network) and just assign the server a 172.16.1.x and a 172.16.2.x IP address then that would fix the NAT problem but at that point I'm not sure the router will be able to effectively route packets through the best network available. The networks have very different line speeds and because the internal routing is round-robin DNS there could be a better return route. That is to say it should be fine for a packet that originated from the 184.108.40.206 network to be routed back through the 220.127.116.11 network so long as I preserve the originating IP address header.
Any ideas on the best way to configure the network / Cisco 2800 router to achieve my goal?