The question is pretty straightforward as in the title, but almost everybody who I asks this to tries to convince me I'm crazy or stupid. I'll explain here why I need this, and I welcome other solutions to accomplish this task, but I'd still be very grateful if you can give me an answer (specially if it's not "no" :)) to the question.
So, I have a pool of machines on the same network (let's say, 10.0.0.1/24), their IPs are 10.0.0.1, 10.0.0.2, ..., 10.0.0.10
They also have a public internet IP (let's say, 184.108.40.206) configured on their loopback interface (ie, lo:dsr) [wait, don't call me crazy yet]
On top of this pool, I have a Direct Server Return load-balancer. If you don't know how it works, please check this out: http://www.weirdnet.nl/images/natvsdsr.png
So far so good, this works perfectly.
Now comes the problem. Those machines don't run a single service. They run 3 different services, on ports 8080, 8081 and 8082, and they communicate between themselves (via network).
So when service 8080 on machine A tries to contact service 8081 (via the load balancer IP, 220.127.116.11), Linux is "smart enough" to notice machine A owns the IP 18.104.22.168 and, instead, send this packet to the loopback interface.
Usually this is not a problem, but since it's a highly-available system, it will be a problem if, for whatever reason (a delivery, maybe), service B is stopped on machine A.