Distributed nodes in different networks

Hi guys, I have a question
I’m trying connect two distributed nodes with differents networks, but in always return false
these was my attempts:
pc1: iex --name one@william --cookie secret_token
pc2: iex --name two@uriel --cookie secret_token

pc1: iex --name one@william --cookie banana --erl ‘-kernel inet_dist_listen_min 9500’ --erl ‘-kernel inet_dist_listen_max 9500’
pc2: iex --name two@uriel --cookie banana --erl ‘-kernel inet_dist_listen_min 9500’ --erl ‘-kernel inet_dist_listen_max 9500’

pc1: iex --name one@161.22.57.2 --cookie secret_token
pc2: iex --name two@189.4.78.45 --cookie secret_token

Does anyone have any idea?
maybe it’s necessary open some network port

Open port 4369, that’s erlang port mapper daemon (epmd) https://erlang.org/doc/man/epmd.html

You may also have to activate other, higher port ranges in the firewall depending on your service

https://www.erlang-solutions.com/blog/erlang-and-elixir-distribution-without-epmd.html

1 Like

Note that the distributed Erlang protocol is really not designed for use over a WAN connection between the nodes, both in terms of its latency tolerances and mesh behavior and in terms of security considerations.

4 Likes

Right, to steal a joke from LYSE, distributed Erlang’s security protocol looks like this:



This space intentionally left blank


4 Likes

you can do erlang distribution over TLS, which is not horrible, if I understand correctly, but latency is still an issue.

1 Like

@shanesveller base on your note, what would be the recommendation for building geo-redundant (resilient) solutions?

What are it’s latency tolerances?

Take your pick of rpc technologies, Jsonapi, openapi/swagger, grpc… I’m playing around with some of my own protocols (one which extends genserver over the WAN and one which extends Phoenix pubsub over the WAN) but I can’t recommend them for other people to use in prod, yet.