Sockets – Link-scope IPv6 Multicast packets suddenly not routable on a MacBook Pro

cipv6multicastsendtosockets

This is a slightly obscure question, but I'm stumped and I thought maybe somebody out there might have more of a clue on the issue.

My co-worker has been successfully running an in-house application that uses IPv6 multicasting on his MacBook Pro for several months, but today the Mac decided to stop routing the multicast packets. In particular, the program prints this error:

SendDataUDP(ff02::bead:cede:deed:feed@4) failed on Network interface [Name=[en0] Description=[] IP=[fe80::222:41ff:fe21:dfd4@4] Netmask=[ffff:ffff:ffff:ffff::] Broadcast=[::]] (errno=65/No route to host).

… which pretty well describes what went wrong… it tried to sendto() a UDP packet to the IP address shown, and send() failed with errno=EHOSTUNREACH.

What I don't understand is, what could possibly cause an IPv6 link-scope multicast address to be "unreachable"? If my understanding of link-scope multicast is correct, the packet only has to go out the local ethernet port (en0 in this case, which is up and working on that machine).

Is there some aspect to multicasting that I'm missing, or is his machine just borked? He says he didn't change anything, it just mysteriously stopped working.

Best Answer

To test whether en0 is still capable of transmitting link-local multicast requests, try

ping6 ff02::1%en0

This contacts all hosts, so you should get plenty of responses (for fun, try adding -w).

Related Topic