On Tue, 2004-11-09 at 15:21 -0800, David Stevens wrote:
> The loopback device doesn't have IFF_MULTICAST set, so technically
> it is not a multicast-capable device, and you shouldn't be able to join a
> group on it.
That is Linux-specific, right? At least KAME's 'lo' does support
multicast, and their README says:
Each interface joins the solicited multicast address and the
link-local all-nodes multicast addresses (e.g. fe80::1:ff01:6317
and ff02::1, respectively, on the link the interface is attached).
In addition to a link-local address, the loopback address (::1) will be
assigned to the loopback interface. Also, ::1/128 and ff01::/32 are
automatically added to routing table, and loopback interface joins
node-local multicast group ff01::1.
On Windows I don't see 'lo' joining ff01::1.
RFC 3513 tells me:
2.7.1 Pre-Defined Multicast Addresses
All Nodes Addresses: FF01:0:0:0:0:0:0:1
The above multicast addresses identify the group of all IPv6 nodes,
within scope 1 (interface-local) or 2 (link-local).
Does that imply that the linux stack doesn't conform to RFC 3513?
> I think the way it ought to work is that you join the group on any device,
> with IPV6_MULTICAST_LOOP set and local guys should hear the node-local
> multicasts, but it shouldn't be sent on the wire. Multicasting could be
> supported on
> loopback, too, but it doesn't matter all that much unless there are no
> real devices.
> However, it appears that node-local multicasts are being sent out
> the device, at least on an early 2.6 kernel I did a quick test with. There
> isn't anything enforcing the node-locality in the send path, which I would
> consider a
> bug. :-)
Even more interesting: an other node responded to 'ping6 ff01::1' so
there is some bug somewhere ;)
On another note: 'ping6 ff02::1' gives "connect: Invalid argument" on
linux. On KAME it says "ping6: UDP connect: Network is unreachable". The
only implementation that gives me replies is Solaris. This also sounds
like a bug to me.
Network and Protocols Group
Tampere University of Technology, Finland