A solicited-node multicast address is an IPv6 multicast address used by the Neighbor Discovery Protocol to determine the link layer address associated with a given IPv6 address, which is also used to check if an address is already being used by the local-link or not, through a process called DAD (Duplicate Address Detection). The solicited-node multicast addresses are generated from the host's IPv6 unicast or anycast address, and each interface must have a solicited-node multicast address associated with it.
A solicited-node address is created by taking the least-significant 24 bits of a unicast or anycast address and appending them to the prefix ff02::1:ff00:0/104.
Example
Assume a host with an unicast/anycast IPv6 address of 2001:db8::2aa:ff:fe28:9c5a. Its solicited-node multicast address will be ff02::1:ff28:9c5a.
2001:db8::2aa:ff:fe28:9c5a IPv6 unicast/anycast address (compressed notation) 2001:0db8:0000:0000:02aa:00ff:fe28:9c5a IPv6 unicast/anycast address (uncompressed notation) -- ---- The least-significant 24 bits ff02::1:ff00:0/104 Solicited-node multicast address prefix (compressed notation) ff02:0000:0000:0000:0000:0001:ff00:0000/104 Solicited-node multicast address prefix (uncompressed notation) ---- ---- ---- ---- ---- ---- -- The most-significant 104 bits ff02:0000:0000:0000:0000:0001:ff28:9c5a Solicited-node multicast address (uncompressed notation) ff02::1:ff28:9c5a Solicited-node multicast address (compressed notation)
Solicited-node multicast MAC address
A solicited-node multicast MAC address is an Ethernet multicast address used by the Neighbor Discovery Protocol as a destination MAC address when communicating to hosts using a solicited-node multicast address. Each interface must be listening to its solicited-node multicast MAC address associated to them.
It is created by taking the least-significant 24 bits of a solicited-node multicast address and appending them to the prefix 33:33:FF:xx:xx:xx.
Example
Assume a host with a solicited-node multicast address of ff02::1:ff28:9c5a. Its solicited-node multicast MAC address will be 33:33:FF:28:9C:5A.
ff02::1:ff28:9c5a Solicited-node multicast address -- ---- The least-significant 24 bits 33:33:FF:xx:xx:xx Solicited-node multicast MAC address prefix 33:33:FF:28:9C:5A Solicited-node multicast MAC address -- -- -- The least-significant 24 bits
Efficiency compared to IPv4 and ARP
Solicited-node multicast addresses are used with IPv6 neighbor discovery to provide the same function as the Address Resolution Protocol in IPv4. ARP uses broadcasts to send an ARP request to the broadcast MAC address FF:FF:FF:FF:FF:FF, which is received by all hosts on the local link, although only one host—the one being queried—would need to respond. The other hosts still have to process and discard the request.
Since a solicited-node multicast address is a function of the last 24 bits of an IPv6 unicast/anycast address, the number of hosts that are subscribed to each solicited-node multicast address is very small. This number would typically be one, but there could be a few because the mapping function is not a 1:1 mapping, like for example if the same host bear the same last 24 bits of their IPv6 address (2001:db8:1::55 and 2001:db8:2::55 has the same solicited-node multicast address). This means that a host should not need to be interrupted as often to neighbor solicitation requests, compared to ARP in IPv4.
References
- R. Hinden; S. Deering (February 2006). IP Version 6 Addressing Architecture. Network Working Group. doi:10.17487/RFC4291. RFC 4291. Draft Standard. Obsoletes RFC 3513. Updated by RFC 5952, 6052, 7136, 7346, 7371 and 8064.
- "IPv6 Real-Time Usage of IEEE 802.16: Problem Statement". www.ietf.org. Retrieved 2024-02-20.