問題
2 台のコンピューターのそれぞれに 1 つずつ、2 つの Erlang ノードがあります。一意の sname と同じ Cookie を使用して各ノードを起動しています。クライアントからサーバーに net_adm:ping/1 しようとすると、最初にサーバーからクライアントに ping しない限り、常にタイムアウトになります。
たとえば、クライアントでは次のようになります。
(client@client_machine)1> net_adm:ping(server@server_machine).
pang
次に、サーバー上で:
(server@server_machine)1> net_adm:ping(client@client_machine).
pong
次に、クライアントから再び:
(client@client_machine)2> net_adm:ping(server@server_machine).
pong
両方のマシンのすべてのインバウンド接続とアウトバウンド接続に対して、erl.exe と werl.exe がファイアウォールを通過できるようにしました。-name; を使用してどちらの方向にも ping を実行できません。-sname を使用する必要があります。
質問
これはまだファイアウォールの問題ですか、それとも既知の動作ですか? 既知の問題の場合、回避策は何ですか? サーバーは、可能なクライアントに対して定期的に ping を試行しますか?