[erlang-questions] How to connect erlang nodes over IPv6 (on Ubuntu 10.04 server installations, Erlang R14B1)?

Boris Mühmer boris.muehmer@REDACTED
Mon Feb 7 06:40:28 CET 2011


[ Note 1: I am working with the source tarball R14B01 from erlang.org. ]
[ Note 2: The systems I use are 64 Bit, using either Ubuntu 10.04 or 10.10. ]
[ Note 3: The current test system is a Ubuntu 10.10 desktop, 64 Bit. ]

I had a look at "erts/epmd/src/epmd_int.h". In there is the following line:

       #if defined(HAVE_IN6) && defined(AF_INET6) && defined(EPMD6)

On my system "HAVE_IN6" is defined during "configure"
(e.g. "erts/x86_64-unknown-linux-gnu/config.h"), but I can't find a definition
for "AF_INET6" or "EPMD6".

I checked one system with running "epmd -d" manually and calling
"netstat -an" afterwards: I only could find an "0.0.0.0:4369" entry =>
   tcp        0      0 0.0.0.0:4369            0.0.0.0:*               LISTEN

After setting "AF_INET6" or "EPMD6" manually in the "config.h"
file, e.g. adding
   #define AF_INET6 1
   #define EPMD6 1
to "erts/x86_64-unknown-linux-gnu/config.h" and doing the above test,
netstat returned
   tcp6       0      0 :::4369                 :::*                    LISTEN

But calling "erl -name test -setcookie abc123 -proto_dist inet6_tcp"
results in a crash dump being written:
---> snipp <---
$ /opt/Erlang/OTP/R14B01/20110206/1030/bin/erl -name test -setcookie
abc123 -proto_dist inet6_tcp
{error_logger,{{2011,2,6},{11,26,45}},"Protocol: ~p: register/listen
error: ~p~n",["inet6_tcp",eprotonosupport]}
{error_logger,{{2011,2,6},{11,26,45}},crash_report,[[{initial_call,{net_kernel,init,['Argument__1']}},{pid,<0.19.0>},{registered_name,[]},{error_info,{exit,{error,badarg},[{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}},{ancestors,[net_sup,kernel_sup,<0.9.0>]},{messages,[]},{links,[<0.16.0>]},{dictionary,[{longnames,true}]},{trap_exit,true},{status,running},{heap_size,377},{stack_size,24},{reductions,246}],[]]}
{error_logger,{{2011,2,6},{11,26,45}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfargs,{net_kernel,start_link,[[test,longnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]}
{error_logger,{{2011,2,6},{11,26,45}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined},{name,net_sup},{mfargs,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]}
{error_logger,{{2011,2,6},{11,26,45}},std_info,[{application,kernel},{exited,{shutdown,{kernel,start,[normal,[]]}}},{type,permanent}]}
{"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}"}

Crash dump was written to: erl_crash.dump
Kernel pid terminated (application_controller)
({application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}})
---> snipp <---


 - boris



2011/2/5 Tony Rogvall <tony@REDACTED>:
> Hi!
> Yes the -proto_dist inet6_tcp is required, since the default is inet_tcp. A
> (near) future release may even
> default to handle both ipv6 and ipv4. The transition to ipv6 will happen any
> day now ;-)
> Any how, at least on my mac I discovered that epmd did not accept IPv6
> connection for
> looking up the port name.
> (ipv4)
> erl_epmd:port_please("b", {127,0,0,1}, 1000).
> {port,65347,5}
> (ipv6)
> erl_epmd:port_please("b", {0,0,0,0,0,0,0,1}, 1000).
> noport
>
> I have not been hacking on this for years ! Any one know the status of this
> ?
> /Tony
>
>
> On 5 feb 2011, at 09.01, Boris Mühmer wrote:
>
> I try to connect Erlang nodes using only IPv6. But somehow it doesn't
> work. The systems in questions are Ubuntu 10.04 based server setups.
>
> The DNS names of the participating hosts resolv only to IPv6
> addresses. "ping6" and "traceroute6" work without any problems.
>
> After running "erl -name node-X", I try to "net_adm:ping/1" the other
> host, but I only get "pang"s.
>
> I also tried to add "-proto_dist inet6_tcp" (found this information
> with google) to the erl command line, but it doesn't improve the
> situation.
>
> Does anyone have any hints how to start an IPv6 based Erlang "cluster",
> please?
>
>
>  - boris
>
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:erlang-questions-unsubscribe@REDACTED
>
>
> "Have run Make so many times I dunno what's installed anymore"
>


More information about the erlang-questions mailing list