We are constructing a set of computers with Open MPI and there's a small problem with mixing public and private IPs.
We aren't sure about what's causing the problem or how to solve it.
The files are shared thanks to NFS and we have a couple computers with private IPs and public IPs that we want them to send MPI work to some machines that have public IPs.
I'm going to try to describe with example IPs.
Computer 1 sees itself as eth0: 172...2 but has a public IP assigned: 210...2
Computer 2 sees itself as eth0: 172...3 but has a public IP assigned: 210...3
Computers outside the subnet directly have public IPs assigned: 210...100+
The computers outside see Computer 1 and 2 only with 210... they can't see the 172... internal IPs.
If an outside computer launches mpirun to Computer 1, it works ok.
If Computer 1 tries to launch mpirun to Computer 2 (with 172...) it also works ok (not with 210... because they don't know that that's their public IP, but that's not an issue).
The problem comes when Computer 1 or 2 try to launch mpirun to outside computers.
We tried to check out what was happening and installed wireshark on an outside computer and it seems that the ssh part works ok (the ssh talk between 210...2 and 210...101 is ok), but after that the outside computer tries to send a TCP SYN package to 172...2 instead of 210...2 and the rest of the packets onward the same.
Is there a way to solve this problem?
I've read this ( http://www.open-mpi.org/community/lists/users/2009/11/11184.php ) but I'm not really sure what he's doing there.
We have the option of plugging Computer 1 and Computer 2 directly to the switch that the outside computers are on, but we'd rather not because we'd prefer the computers to stay on the private network, but if there's no other way, I guess we can.
Can it be done without having to change the network topology?
Thanks in advance.