I'm a networking noob, so sorry for the very generic title. I have the network setup in the following way:
A few details about the network:
- eth0 on all the devices have an in IP in 10.10.10.0 subnet, which is accessible from our intranet
- eth1 on machine 1 is connected via a private network to eth1 on machine 2
- eth1 on machine 3 is connected via a private network to eth2 on machine 2
- eth1 and eth2 on machine 2 are bridged
- eth1 and eth2 on machine 2 don't have IPs
Machine 1 has to communicate with machine 3 via the bridge on machine 2. I have the routes setup on all the machines for this. That is, when traffic is sent from eth1 on machine 1, it reaches at eth1 on machine 2, and sent out from eth2 on machine 2 to eth1 on machine 3. This works perfectly fine.
The problem that I have is when machine 2 does NATing (which is NOT done using iptables, but by a program that I don't have control over). What the program does is assigns an IP of eth0 on machine 2 as the source IP when it forwards the packets to machine 3. So when machine 3 has to reply back, it sees the source on the 10.10.0.0 subnet, and routes the packet from eth0 on machine 3 to eth0 on machine 2.
My question: How can I route the packet from machine 3 to arrive on eth2 on machine 2?
The only control I have over that program that does the NATing is telling it what source IP to use when NATing. eth1 and eth2 on machine 2 don't have IPs, so the only IPs that I can use are the aliases I have for eth0 on machine 2.