Hi, when experimenting with the IPv6 multicast routing daemon mrd6, I've found an issue that makes it impossible for the daemon to see listeners on the host the daemon is running on. When joining the multicast group, the kernel sends MLD reports to ff02::16 on the interface used for multicast. mrd6 uses a socket (PF_INET6, SOCK_RAW, IPPROTO_ICMPV6) to receive MLD reports, and although it joins the multicast group ff02::16, it can only receive reports sent by other hosts, while the reports from the router host are sent out, but aren't received by the socket. I also don't receive the reports with a socket (PF_PACKET, SOCK_DGRAM, htons(ETH_P_IPV6)), but it works with ETH_P_ALL; filtering all packets in userspace would be very much overhead, of course... A related issue is that the router host doesn't respond to the MLD queries that mrd6 sends periodically to ff02::1. This doesn't only cause problems for mrd6, but is also inconsistent with the behaviour of the kernel responding to ICMP echo requests to ff02::1 on the local host. Matthias Schiffer
Attachment:
signature.asc
Description: OpenPGP digital signature