Solicited-node multicast addresses are computed by taking the last 24 bits of an IPv6 unicast address and appending them to the ff02::1:ff00:0/104 prefix. This creates a multicast group that a node must join for its own addresses.
Calculation Formula:
- Prefix: ff02:0000:0000:0000:0000:0001:ff (104 bits fixed)
- Suffix: Last 24 bits of the unicast address
- Result: ff02::1:ffXX:XXXX where XX:XXXX are the last 24 bits
Examples:
- 2001:db8::1 → ff02::1:ff00:0001 (last 24 bits: 00:0001)
- 2001:db8::abcd:ef01 → ff02::1:ff0d:ef01 (last 24 bits: 0d:ef01)
- fe80::20c:29ff:fe12:3456 → ff02::1:ff12:3456 (last 24 bits: 12:3456)
How NDP Uses Solicited-Node Multicast:
- Node A wants to communicate with 2001:db8::1
- A computes solicited-node address: ff02::1:ff00:0001
- A sends ICMPv6 Neighbor Solicitation to ff02::1:ff00:0001
- Only nodes with addresses ending in 00:0001 process the message
- Target node responds with Neighbor Advertisement
- A now knows the MAC address and can communicate
Efficiency Improvement Over ARP:
In IPv4, ARP uses broadcast (ff:ff:ff:ff:ff:ff) which forces every node on the link to process the request:
- IPv4 ARP: Broadcast to ALL nodes on link
- IPv6 NDP: Multicast to ~16 million possible addresses
- With 2^24 = 16,777,216 possible solicited-node addresses, collision probability is low
- Even when collisions occur, only a small subset processes the message
- Dramatically reduces CPU interrupts on idle nodes
Multicast MAC Address:
The solicited-node IPv6 multicast address maps to an Ethernet multicast MAC:
- Pattern: 33:33:XX:XX:XX:XX
- Last 32 bits of IPv6 address map to last 32 bits of MAC
- Example: ff02::1:ff00:0001 → MAC 33:33:ff:00:00:01
- Ethernet NIC filters in hardware, further reducing CPU load
Required Multicast Group Membership:
Every IPv6 node must join the solicited-node multicast group for each of its unicast and anycast addresses. This is automatic and handled by the operating system's IPv6 stack.
Security Considerations:
- Solicited-node multicast reduces but doesn't eliminate IPv6 address scanning
- Attackers can still probe all 16 million solicited-node addresses
- SEcure Neighbor Discovery (SEND, RFC 3971) can add cryptographic protection
- Link-local scope (ff02) means messages don't cross routers