Solicited-node multicast address

Source: Wikipedia, the free encyclopedia.

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 an unicast or anycast address and appending them to the prefix ff02::1:ff00:0/104.[1]

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.[2]

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

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