More than 2 nodes don't connect

I’m still learning Elixir, Phoenix and Mnesia, so probably it is a newbie question.

What I am trying to achieve is running 3 nodes on different IPs and connect them. I am executing on three terminals
PORT=4001 iex --name n1@127.0.0.1 --cookie secret_cookie -S mix phx.server
PORT=4002 iex --name n2@127.0.0.5 --cookie secret_cookie -S mix phx.server
PORT=4003 iex --name n3@127.0.0.8 --cookie secret_cookie -S mix phx.server.

The problem is that the second and third node do not connect to each other and giving me a warning
[warn] global: :"n2@127.0.0.5" failed to connect to :"n3@127.0.0.8". Running Node.ping returns :pang on both, the second and third one.

I have tried running it on the same IPs and it works, so I suppose there should be something more to do in order for them to connect to each other.

Unless regular ping 127.0.0.5 works and routes to your local computer, you probably want all of those nodes to be on 127.0.0.1.

1 Like

Usually 127.0.0.0/8 is bound by lo, so yes, it should work out of the box…

Doesn’t on my computer, so it may not on theirs.

I’ve checked 20 random samples and I was able to ping all of them… This worked on my linux and my windows box…

I can not test on Mac OS X. But Wikipedia claims that not all operating systems support the full range out of the box…

I’m on OS X so perhaps it’s an OS X thing? Regardless, the OP should make sure that the IPs they’re using are addressable in the general sense. If they are not, that’s probably the issue. If they are, then we know to look elsewhere for a solution to their problem.

5 Likes

On macOS all other addresses in 127.0.0.0/8 are unbound and you need to manually bound them to the lo0.

4 Likes