In IPv6, a single interface can have multiple IPv6 addresses assigned to it. Every unicast and anycast IPv6 address assigned to an interface must have a corresponding solicited-node multicast address.

For example, a router auto-configures a link-local address for itself and because every IPv6 address on a router must have a corresponding solicited-node multicast address it creates one for that specific link-local address.

Solicited-node multicast is used for:

  • Neighbor Discovery (ND) – A node sends a Neighbor Solicitation message to a solicited-node multicast address to learn the MAC address of other nodes. Only the node registered to a particular solicited-node multicast address will process the packet. The other nodes aren’t bothered with it. This is good for performance and security.
  • Duplicate Address Detection (DAD) – After an interface is assigned a link-local unicast address, DAD can check to see that no other interfaces on the link are already using the newly assigned address.

Let’s look into how solicited-node multicast addresses are created:

The first 104 bits must be FF02::1:FF
FF=multicast
0 = Required because it’s reserved for future use
2 = Scope is within the local link
0000:0000:0000:0000:0001:ff = ::1:FF

  • FF02::1:FF

The last 24 bits come from the last 24 bits of the corresponding IPv6 address:
fe80:0000:0000:0000:cafe:1234:5678:9abc

  • fe28:9c5a = last 24 bits

The complete solicited-node multicast address is:
FF02::1:FF (104 bits) + 78:9abc (24 bits) = ff02::1:ff78:9abc (128 bits)

  • ff02::1:ff78:9abc

To continue reading, please login or become a member for full access...