1
votes

I have three machines: A, B and C.

I use erl -name '[email protected]' to start a shell on each of the machines, where xx.xx.xx.xx are their IPs. The problem is I can ping (using net_adm:ping/1) from A to C and B to C, but I can't ping from A to B!

=ERROR REPORT==== 18-Apr-2011::18:28:34 ===
global: '[email protected]' failed to connect to '[email protected]'

All the IPs are global IPs, and A and B are at the same place sharing the same value of the first three segments of IP Address. How come I can't ping from A to B?

BTW: A and B has CentOS installed with Erlang R14B and C has Debian installed with Erlang R13A. One might expect problems between A and C or B and C, but quite strangely the connection between A and B is the problematic one.

1
I thought it was firewalls, but I can actually use nc to connect to tcp port 4369, and when I call net_adm:ping/1 I can actually see packets flowing through port 4369 at both sides using tcpdump - Chi Zhang

1 Answers

2
votes

I think your node is firewalled. To open firewall you need to open port 4369 (for Erlang port mapper) and some other ports for communication between nodes (you can allow all connections from your other nodes or setup only a range of ports). However it's even better to use some sort of VPN if you connect your nodes across Internet.