Octet

What is a solicited-node multicast address and how do you derive it? Give me an example.

Show the answer

Say this first

It is the multicast group a node joins for each of its unicast and anycast addresses, and it is where neighbor solicitations go instead of an ARP broadcast. Take the prefix ff02::1:ff00:0/104 and append the last 24 bits of the unicast address. For 2001:db8:acad:10:21a:2bff:fe3c:4d5e the last 24 bits are 3c:4d5e, so the group is ff02::1:ff3c:4d5e and its Ethernet MAC is 33:33:ff:3c:4d:5e.

Go deeper

Derivation step by step

Output
Unicast:         2001:db8:acad:10:21a:2bff:fe3c:4d5e
Last 24 bits:                              3c:4d5e
Prefix:          ff02::1:ff00:0/104
Group:           ff02::1:ff3c:4d5e
Ethernet MAC:    33:33:ff:3c:4d:5e

More examples

UnicastSolicited-node
2001:db8:acad:10::1ff02::1:ff00:1
2001:db8:acad:10::20ff02::1:ff00:20
fe80::a8bb:ccff:fe00:100ff02::1:ff00:100
2001:db8::abcd:1234:5678ff02::1:ff34:5678

Write every hextet out to four digits before you take the last 24 bits. fe00:100 is fe00:0100, so the last 24 bits are 00:0100.

Why it exists

  • Address resolution: to find the MAC of 2001:db8:acad:10::20, a host sends an NS to ff02::1:ff00:20. Only nodes whose addresses end in 00:0020 have joined that group.
  • DAD: a node checks its tentative address by sending an NS to the same group.

On a router

show ipv6 interface lists the groups under "Joined group address(es)". A router with fe80::1 and 2001:db8:acad:10::1 shows a single FF02::1:FF00:1, because both addresses share the last 24 bits.

Traps

  • Taking the last 24 bits of the MAC address. That only matches when the address was built with EUI-64.
  • Dropping leading zeros before taking the bits, which shifts the result.
How did you do?Book 4.2 IP Version 6