You have asynchronous routing in place. Here's an example of the packet flow:
1. Packet comes into machine destined for port 80.
2. DNAT rule is matched immediately, setting the new destination to 202.141.xxx.26:80, source is
untouched.
3. Packet is routed(assuming forwarding is enabled) to 204.141.xxx.26:80
4. Assuming 204.141.xxx.26 doesn't have it's default gateway set to this machine, the packet returns via the internet, never hitting this box again.
Now, sometimes this is acceptable, however since whatever is listening on port 80 will inevitably fork to another random port, your two machines will communicate directly bypassing your linux box.
To correct this, you need to rewrite the source address after the DNAT so that the packet will come back to your linux box, something like:
Code:
iptables -t nat -A POSTROUTING -o <interface> -p tcp -d 202.141.xxx.26 --dport 80 -j SNAT --to <ip of interface>