My question is similar to the below with a small caveat not answered by any of these threads:
Output traffic on different interfaces based on destination port
https://serverfault.com/questions/648460/load-balancing-network-traffic-using-iptables
iptables --set-mark - Route diferent ports through different interfaces
Only allow certain outbound traffic on certain interfaces
I have three network devices: eth0 (router), eth1 (connected to internet gw1), and eth2 (connected to internet gw2)
eth0 -> eth1 (ip via dhcp) -> gw1 (192.168.0.1 netmask 255.255.255.0) -> internet
eth0 -> eth2 (ip via dhcp) -> gw2 (192.168.0.1 netmask 255.255.255.0) -> internet
I am running Polipo on the router and want traffic of all the people connecting to polipo to go through eth2. Everyone else will have their traffic routed via eth1.
The problem is that both eth1 and eth2 get their IP address via DHCP. And gw1 is identical to gw2. This is part of our infrastructure and they will both have same IP address (i.e. gw1 and gw2 are both 192.168.0.1 with netmask 255.255.255.0).
All answers in the threads mentioned above involve distinct subnets and IP addresses to isolate/mark gateway traffic. In my case this is not an option. I have to accomplish this without changing anything about gw1/gw2 and not involving static IP addresses in eth1 and eth2. Is this even possible?