Fact-checked by Grok 2 weeks ago

Solicited-node multicast address

A solicited-node multicast address is a link-local scope multicast address derived from the low-order 24 bits of a node's or address, appended to the fixed prefix ff02::1:ff00:0/104, and is primarily used in the (NDP) to enable efficient address resolution and duplicate address detection on the same link without relying on broadcast traffic. This address format ensures that multiple IPv6 addresses sharing the same trailing 24 bits map to the same multicast group, allowing nodes to join a limited number of such groups rather than one per address, which optimizes network efficiency and reduces the overhead of multicast processing. For example, the unicast address 2001:db8::1 yields the solicited-node address ff02::1:ff00:1, while 2001:db8::abcd:1 maps to ff02::1:ffcd:1. IPv6 nodes are required to compute and join these multicast groups for every assigned unicast and anycast address upon interface configuration, enabling them to receive targeted Neighbor Solicitation messages. In the NDP, specified in RFC 4861, solicited-node multicast addresses facilitate key functions such as neighbor unreachability detection and router discovery by directing ICMPv6 Neighbor Solicitation messages (Type 135) to the appropriate group, prompting the target node to respond with its link-layer address via a unicast Neighbor Advertisement. This mechanism replaces the ARP broadcasts of IPv4, providing a more scalable and secure alternative for local link communication in IPv6 networks. The link-local scope (flag value 2 in the multicast address structure) confines these operations to the local segment, preventing unintended propagation across routers.

Definition and Purpose

Definition

The solicited-node multicast address is a specialized type of that belongs to the link-local scope range ff02::1:ff00:0/104, enabling targeted communication among a limited group of nodes on the same local network link. It is constructed to identify interfaces associated with specific or addresses, facilitating efficient one-to-few messaging rather than to all devices. This address type operates within the broader framework, where the ff02::/16 denotes link-local traffic confined to a single link. Unlike general-purpose multicast addresses such as the all-nodes address (ff02::1), which reaches every -enabled on the link, or the all-routers address (ff02::2), which targets only routers, the solicited-node emphasizes precision by soliciting responses from nodes matching a particular suffix. This targeted nature minimizes unnecessary traffic, as multiple similar addresses can map to the same solicited-node group, promoting scalability in dense network environments. In contrast to scope-wide s, it avoids overwhelming the link with broad solicitations, focusing instead on -specific interactions. The concept and format of the solicited-node multicast address were formally defined in RFC 4291, "IP Version 6 Addressing Architecture," published in February 2006, which outlines its structure and role within addressing. This standard was further integrated into the in RFC 4861, "Neighbor Discovery for IP version 6," published in September 2007, where it supports mechanisms for address resolution on local links. These documents establish it as a foundational element of 's stateless autoconfiguration and discovery processes.

Purpose in IPv6 Networking

Solicited-node multicast addresses serve a critical role in networking by facilitating efficient neighbor discovery processes on a shared link. Unlike broadcast mechanisms in IPv4, these addresses enable a sender to target a specific subset of nodes without flooding the entire , thereby minimizing unnecessary traffic and conserving . This targeted approach is particularly valuable in large-scale deployments where could lead to and scalability issues. The mechanism supports one-to-many solicitation, allowing only those devices that share the lower-order 24 bits of their or address to respond to a query. This design ensures that responses are limited to a small group of potential neighbors, enhancing efficiency and reducing the processing overhead on non-relevant devices. By multiple addresses to the same solicited-node group when they differ only in higher-order bits, nodes can join fewer groups overall, optimizing resource usage without compromising discovery accuracy. Operating within the link-local scope, designated by the ff02:: prefix, solicited-node multicast addresses confine their operations to a single , preventing propagation beyond the local link. This scoped delivery supports both and addressing modes, enabling seamless integration in diverse environments such as enterprise networks or mobile infrastructures. As outlined in RFC 4291, this architecture promotes robust, low-overhead communication essential for protocols like neighbor discovery while maintaining compatibility with configurations for load balancing and redundancy.

Construction of the Address

IPv6 Multicast Address Format

The multicast address format is a 128-bit identifier beginning with the fixed 8-bit ff (binary 11111111), distinguishing it from and addresses. This is followed by a 4-bit (flgs), where the second-highest bit is the Transient (T) (set to 0 for well-known addresses like solicited-node), and a 4-bit (scop) that defines the , such as 2 for link-local. The remaining 112 bits form the group ID, which identifies the specific group. For solicited-node multicast addresses, the format adheres to the prefix ff02::1:ff00:0:0/104, which expands to ff02:0000:0000:0000:0001:ff00:0000:0000/104 in full notation. Here, ff02:: establishes the link-local scope (scop value of 2), the flags field includes the solicited-node identifier (1 in the appropriate position), and the initial group ID portion is fixed as ff00:0:0. The first 104 bits of this 128-bit address are thus fixed, leaving the last 24 bits as a variable suffix that targets specific nodes. This structure ensures efficient neighbor discovery by allowing nodes to join only relevant groups, with the solicited-node derived by appending the low-order 24 bits of a corresponding or to the fixed (detailed further in the process). In compressed notation, solicited-node addresses are commonly represented as ff02::1:ffxx:xxxx, where xx:xxxx denotes the 24-bit variable portion, facilitating readability while preserving the full 128-bit structure.

Derivation from Unicast Address

The solicited-node multicast address is derived from a node's unicast or anycast IPv6 address through a deterministic process that preserves the low-order 24 bits of the target address while embedding them within a fixed multicast prefix. This method ensures that the multicast address uniquely identifies a group associated with the specific unicast or anycast address, facilitating efficient neighbor solicitation on the local link. The derivation begins by taking the target unicast or anycast address and extracting its least significant 24 bits, which correspond to the last three bytes (or six hexadecimal digits) of the 128-bit . These 24 bits are then appended to the fixed prefix ff02::1:ff00:0/104, effectively replacing the zeroed portion of the prefix in the final 24-bit field. For example, given the unicast address 4037::1:800:200e:8c6c, the last 24 bits are 0e:8c6c (spanning the low 8 bits of the penultimate hextet and the final hextet), resulting in the solicited-node address ff02::1:ff0e:8c6c. This process applies identically regardless of whether the target address is a global , unique local , or link-local address, as the derivation focuses solely on the low-order bits without regard to the or of the original . However, the resulting solicited-node address always carries link-local (indicated by the ff02 ), ensuring that solicitations are confined to the local and not routed beyond it. Nodes are required to join the corresponding solicited-node multicast groups for each of their configured and addresses to receive relevant neighbor discovery messages.

Multicast MAC Address Format

The multicast MAC address format for packets on Ethernet networks is a 48-bit that begins with the fixed 16-bit prefix 33-33 in notation, followed by the low-order 32 bits (the last four octets) of the corresponding . This structure ensures that traffic, including solicited-node addresses, can be efficiently mapped to link-layer addresses for transmission. This format adheres to standards for Ethernet multicast addresses, where the individual/group bit (the least significant bit of the first octet) is set to 1, allowing network interface hardware to filter and process frames at the without unnecessary CPU involvement. The 33-33 prefix specifically reserves the range 33-33-00-00-00-00 to 33-33-FF-FF-FF-FF for use, preventing overlap with other address types. In contrast, Ethernet MAC addresses have the individual/group bit (least significant bit of the first octet) set to 0, indicating a unique destination, while IPv4 addresses use the prefix 01-00-5E followed by a modified version of the IPv4 address bits. The uniqueness of the 33-33 prefix for thus enables clear differentiation in mixed environments, supporting seamless coexistence of IPv4 and traffic on shared Ethernet links.

Mapping Process

The mapping process for converting an solicited-node multicast address to its corresponding 48-bit Ethernet follows a standardized defined for all addresses. This involves extracting the low-order bits (the last four octets) from the 128-bit and mapping them directly to the last four octets of the , while prepending the fixed prefix 33:33 in . Each 16-bit segment (hextet) within these bits is represented in big-endian byte order to form the octets. This ensures that packets are efficiently transmitted over Ethernet networks without requiring additional address resolution for the . For example, consider the solicited-node multicast address FF02::1:FF0E:8C6C, which corresponds to a address ending in low-order bits that yield this multicast form. The last 32 bits are FF0E:8C6C, equivalent to the octets FF, 0E, 8C, 6C. Prepending 33:33 results in the 33:33:FF:0E:8C:6C. This mapping allows Ethernet switches and interfaces to forward frames to the appropriate group members based solely on the link-layer destination address. Network interface cards (NICs) handle this mapping by joining the relevant multicast MAC groups upon subscription to the IPv6 multicast address. In IPv6 networks, hosts use the Multicast Listener Discovery (MLD) protocol—equivalent to IGMP in IPv4—to report interest in specific multicast groups, including solicited-node addresses, to the local router or switch. The NIC then filters incoming Ethernet frames with the mapped MAC address, delivering only those matching the subscribed IPv6 groups to the host's protocol stack, thereby optimizing bandwidth usage on shared links.

Role in Protocols

Neighbor Discovery Protocol Usage

In the IPv6 Neighbor Discovery Protocol (NDP), solicited-node multicast addresses play a central role in address resolution by enabling efficient querying of a target's link-layer address without broadcasting to all nodes on the link. When a node needs to resolve the link-layer address associated with a target's , it sends a message to the solicited-node multicast address derived from that target address. This multicast destination ensures that only nodes sharing the same low-order 24 bits of their unicast or addresses receive the solicitation, minimizing unnecessary traffic. The message includes the Target Address option specifying the being resolved and, if the source address is known, the Source Link-Layer Address option containing the sender's own to facilitate immediate use by the responder. Upon receiving a valid NS message, the target node responds with a Neighbor Advertisement (NA) message to confirm its link-layer address. The NA is typically sent as a unicast reply to the source address of the NS if specified; otherwise, it is multicast to the all-nodes address (ff02::1). The response includes the Target Link-Layer Address option with the target's MAC address, along with flags such as the Solicited flag (set to 1 for solicited responses) and the Override flag (to indicate whether the response should override existing cache entries). This mechanism allows the soliciting node to populate its neighbor cache with the resolved mapping, enabling subsequent packet transmission at the link layer. To receive these NS messages, IPv6 hosts must join the solicited-node multicast groups corresponding to each of their assigned unicast and anycast addresses upon interface initialization or address configuration. This group membership is managed using Multicast Listener Discovery (MLD) version 2, where the host sends an MLD Report message in INCLUDE mode to the all-MLDv2-capable-routers address (ff02::16), specifying the solicited-node addresses as sources to include. Routers on the link maintain multicast forwarding state based on these reports, ensuring that NS messages reach only the relevant group members and supporting efficient duplicate address detection during address autoconfiguration.

Address Resolution Mechanism

In IPv6 networks, the address resolution mechanism begins when a sending requires the link-layer ( corresponding to a target but lacks an entry in its Neighbor Cache. The sender first constructs the solicited-node multicast address from the low-order 24 bits of the target . It then transmits a multicast message to this solicited-node address, specifying the target in the Target Address field of the ; the source address is the sender's , and the source link-layer address is included in the option field to allow immediate use if needed. Upon receipt of the NS, the target node verifies that the target address matches one of its assigned addresses and, if so, generates a unicast Neighbor Advertisement (NA) message in response. The NA includes the target's link-layer address in its option field, sets the Solicited flag to indicate it is a response, and is sent directly to the source from the NS. The sender, upon receiving the NA, extracts the link-layer address and updates its Neighbor Cache entry for the target, transitioning the state from INCOMPLETE to REACHABLE and enabling packet transmission using the resolved mapping. Neighbor Cache entries are managed through a state machine to track and prevent resource exhaustion. During resolution, an INCOMPLETE state entry is created upon sending the initial , with up to three solicitations retransmitted at one-second intervals (the default RetransTimer value) before failure and entry removal if no response arrives. Successful resolution sets the entry to REACHABLE for a determined by ReachableTime, a randomized value (default BaseReachableTime of 30,000 milliseconds, scaled between 0.5 and 1.5 factors), after which it transitions to STALE; implementations often configure longer periods up to several minutes for sustained . For validation, STALE entries trigger Neighbor Unreachability Detection: upon packet transmission, the state moves to DELAY for five seconds, then to , where up to three messages are sent at RetransTimer intervals to confirm before declaring the neighbor UNREACHABLE and removing the entry. Garbage collection uses a least-recently-used for unused entries across all states. The mechanism integrates with Duplicate Address Detection (DAD) to ensure address uniqueness before assignment. When autoconfiguring a tentative , the node sends an message to the solicited-node multicast address corresponding to the tentative address, using an unspecified source (to avoid claiming it prematurely) and omitting the source link-layer option. If no is received after sending a Neighbor Solicitation message and waiting for a response during RetransTimer milliseconds (default DupAddrDetectTransmits = 1, so no retransmission by default), the address is considered unique and can be assigned; otherwise, a conflict is detected, and assignment is aborted. This process occurs on the link-local scope before global address use.

Comparison to IPv4 ARP

ARP Overview

The (ARP) is a communications protocol used to map an IPv4 address to the corresponding link-layer hardware address, such as a Media Access Control (MAC) address, on a local network. Specified in RFC 826 and published in 1982, ARP enables devices to resolve network-layer addresses into data-link-layer addresses necessary for direct communication within the same . It operates at the network access layer and is essential for protocols like that abstract addressing from the underlying physical medium. ARP functions through a request-response . When a needs to communicate with a target IPv4 on the local link, it constructs an Request packet containing its own and along with the target's , then broadcasts this packet to the Ethernet ff:ff:ff:ff:ff:ff, soliciting responses from all devices on the network. The matching the target IPv4 unicasts an Reply back to the requester, including its , which the original caches in its table for a limited time to reuse the mapping and reduce broadcast overhead. This cache is dynamically updated and timed out to reflect network changes. Despite its simplicity, 's broadcast-based approach introduces limitations, particularly in larger or more complex networks. Frequent ARP Requests can generate excessive broadcast traffic, leading to broadcast storms that overwhelm network bandwidth and device processing resources, as the protocol floods the entire segment without targeted delivery. Furthermore, ARP provides no inherent scope control beyond the , making it prone to issues in environments with many hosts or interconnected segments.

Efficiency and Differences

The solicited-node multicast mechanism in IPv6 significantly enhances efficiency over the ARP broadcast approach in IPv4 by limiting the scope of address resolution messages to a targeted of nodes on the , rather than flooding the entire . In IPv4, ARP requests are broadcast to all devices, potentially interrupting every host and consuming substantial bandwidth in large subnets. By contrast, IPv6's Neighbor Solicitation messages are sent to a solicited-node address derived from the target's address, spreading resolutions across 224 (approximately 16 million) possible addresses and thereby reducing interrupts on non-target nodes. This design results in an average of 1 to 2 recipients per in typical deployments, as the probability of address collision in the low-order 24 bits is roughly 1 in 16 million, dramatically lowering overhead. A key efficiency metric arises in large IPv6 subnets, such as a /64 prefix supporting up to 264 addresses; would flood queries to all active hosts, whereas confines delivery to hosts sharing the same 24-bit suffix, yielding reductions of up to 99.999% by minimizing unnecessary packet and across the . This targeted delivery not only conserves resources but also scales better in dense environments, where broadcast storms from could degrade performance. The approach further benefits from link-local scoping (ff02::/16 ), ensuring messages do not propagate beyond the local segment, unlike 's domain-wide broadcasts. Design differences extend beyond efficiency to privacy and protocol integration. Solicited-node addresses expose only the target's low-order 24 bits in the multicast group identifier, concealing the full unicast address and thereby providing inherent privacy against eavesdroppers scanning for specific hosts— a vulnerability in ARP, where the complete IPv4 address is revealed in every broadcast request. Additionally, IPv6's mechanism integrates seamlessly with stateless address autoconfiguration (SLAAC), allowing nodes to perform duplicate address detection via solicited-node multicasts without relying on separate protocols, whereas IPv4 ARP operates independently of autoconfiguration processes like DHCP. These distinctions collectively make IPv6's approach more secure and adaptable for modern networks, prioritizing multicast precision over broadcast ubiquity.

References

  1. [1]
    RFC 4291 - IP Version 6 Addressing Architecture - IETF Datatracker
    RFC 4291 IPv6 Addressing Architecture February 2006 For example, the Solicited-Node multicast address corresponding to the IPv6 address 4037::01:800:200E ...
  2. [2]
    RFC 4861 - Neighbor Discovery for IP version 6 (IPv6)
    This document specifies the Neighbor Discovery protocol for IP Version 6. IPv6 nodes on the same link use Neighbor Discovery to discover each other's presence.
  3. [3]
  4. [4]
  5. [5]
  6. [6]
    RFC 2464 - Transmission of IPv6 Packets over Ethernet Networks
    This document specifies the frame format for transmission of IPv6 packets and the method of forming IPv6 link-local addresses and statelessly autoconfigured ...
  7. [7]
    RFC 7042 - for IEEE 802 Parameters - IETF Datatracker
    Identifiers Prefixed "33-33" All MAC-48 multicast identifiers prefixed "33-33" (that is, the 2**32 multicast MAC identifiers in the range from 33-33-00-00 ...
  8. [8]
    RFC 3810 - Multicast Listener Discovery Version 2 (MLDv2) for IPv6
    MLDv2 is an IPv6 protocol used by routers to discover multicast listeners and which addresses are of interest, and it adds source filtering.
  9. [9]
  10. [10]
  11. [11]
  12. [12]
  13. [13]
  14. [14]
  15. [15]
  16. [16]
  17. [17]
  18. [18]
  19. [19]
    RFC 826 - An Ethernet Address Resolution Protocol - IETF Datatracker
    The purpose of this RFC is to present a method of Converting Protocol Addresses (eg, IP addresses) to Local Network Addresses (eg, Ethernet addresses).Missing: IPv4 | Show results with:IPv4
  20. [20]
    RFC 6820 - Address Resolution Problems in Large Data Center ...
    As the size of an L2 broadcast domain increases, the level of broadcast traffic from protocols like ARP increases. Large amounts of broadcast traffic pose a ...
  21. [21]
  22. [22]