rfc-4286

Multicast Router Discovery

B. Haberman, J. Martin
date2005-12 streamIETF areaint wgmagma statusPROPOSED STANDARD pages18 canonicalhttps://www.rfc-editor.org/rfc/rfc4286 doi10.17487/RFC4286 errataview
The concept of Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) snooping requires the ability to identify the location of multicast routers. Since snooping is not standardized, there are many mechanisms in use to identify the multicast routers. However, this can lead to interoperability issues between multicast routers and snooping switches from different vendors. This document introduces a general mechanism that allows for the discovery of multicast routers. This new mechanism, Multicast Router Discovery (MRD), introduces a standardized means of identifying multicast routers without a dependency on particular multicast routing protocols. [STANDARDS-TRACK]

Extracted elements (28)

design-rationale §1

MRD messages are sent as IGMP (IPv4) or MLD (IPv6) messages rather than ICMP, because this functionality is multicast-specific and using the group management protocols allows operators to correlate MRD problems with data forwarding issues. Using IGMP Query messages to discover multicast routers is insufficient due to query suppression.

multicast, routing

interoperability-note §1

Because IGMP/MLD snooping is not standardized, many vendor-specific mechanisms exist to identify multicast routers, leading to interoperability issues between routers and snooping switches from different vendors. MRD provides a vendor-neutral, protocol-independent discovery mechanism to resolve this.

multicast, routing

normative-requirement §4.4 MUST

A Solicitation message MUST be validated before a response is sent: checksum must be correct, destination MUST be All-Routers multicast address, and for IPv6 the source MUST be a link-local address. Invalid solicitations SHOULD be silently discarded.

multicast

normative-requirement §3.1.1 MUST

AdvertisementInterval MUST be no less than 4 seconds and no greater than 180 seconds (default 20 seconds). AdvertisementJitter MUST be an integer no less than 0 and no greater than AdvertisementInterval, and MUST be at least 0.025 * AdvertisementInterval.

multicast

normative-requirement §2 MUST

All MRD messages MUST be sent with an IPv4 TTL or IPv6 Hop Limit of 1 and MUST contain the Router Alert Option. Any data beyond the fixed message format MUST be ignored.

multicast, ip

normative-requirement §2 SHOULD

All MRD messages SHOULD be rate-limited as per the MaxMessageRate variable (default: 10 messages per second per interface or per management/logging destination).

multicast

normative-requirement §3.5 MUST

An Advertisement not meeting validity requirements (correct checksum, destination is All-Snoopers, IPv6 source is link-local) MUST be silently discarded and may be logged in a rate-limited manner.

multicast

normative-requirement §3.4 MUST NOT

An Advertisement received while another Advertisement is pending in response to a Solicitation MUST cause that pending Solicitation to be ignored. Changes in the Query Interval or Robustness Variable MUST NOT trigger a new Advertisement, but the new values MUST be used in all future messages.

multicast

normative-requirement §3.1 MUST

An MRD implementation MUST support the Advertisement configuration variables (AdvertisementInterval, AdvertisementJitter, MaxInitialAdvertisementInterval, MaxInitialAdvertisements, NeighborDeadInterval, MaxMessageRate) being configurable by system management.

multicast

normative-requirement §3.3.1 MUST

For IPv6, MRD messages MUST use a link-local address as the IP source address. For IPv4, the source address MUST be an IP address configured on the advertising interface.

multicast, ip

normative-requirement §4.3 MUST

Solicitations MUST be rate-limited per MaxMessageRate; an implementation MUST send no more than MAX_SOLICITATIONS (3) in MAX_SOLICITATION_DELAY (1 second) seconds.

multicast

normative-requirement §3.2.4 MUST

The Query Interval field in an Advertisement MUST be set to 0 if IGMP or MLD is not enabled on the advertising interface. Note this carries the Querier's Query Interval (QQI) in seconds, not the QQIC code.

multicast

normative-requirement §3.2.5 MUST

The Robustness Variable field MUST be set to 0 if IGMPv1 is in use or no group management protocol is enabled on the advertising interface.

multicast

normative-requirement §5.4 MUST

Upon receiving a Termination, the receiver validates checksum, destination (MUST equal All-Snoopers), and for IPv6 source MUST be link-local. Invalid Terminations MUST be silently discarded. Valid Terminations trigger a Solicitation; if no Advertisement is received within NeighborDeadInterval, the sending router is removed from the active list.

multicast

normative-requirement §3.4 MUST

When an Advertisement is sent, the periodic advertisement interval timer MUST be reset.

multicast

protocol-element §3.3

Advertisement messages are sent to the All-Snoopers multicast address (224.0.0.106 / FF02::6A); Solicitation messages are sent to the All-Routers multicast address. Advertisements carry the IPv4 Protocol field set to IGMP (2) and for IPv6 use ICMPv6 Next Header value 58.

multicast, ip

protocol-element §2

MRD defines three message types: Multicast Router Advertisement (sent periodically by routers with multicast forwarding enabled and in response to solicitations), Multicast Router Solicitation (sent by devices wishing to discover multicast routers), and Multicast Router Termination (sent when a router stops IP multicast routing on an interface).

multicast, routing

protocol-element §6

Protocol constants: MAX_RESPONSE_DELAY = 2 seconds (maximum random delay before responding to a Solicitation with an Advertisement), MAX_SOLICITATION_DELAY = 1 second, MAX_SOLICITATIONS = 3 transmissions.

multicast

registry §8

IPv4 All-Snoopers multicast address 224.0.0.106 assigned in the 224.0.0/24 link-local control range. Corresponding IPv6 All-Snoopers link-local multicast address FF02::6A assigned, with group-ID equal to the low-order 8 bits of the IPv4 address.

multicast, registry, ip

registry §8

Three new IGMP Type values assigned: 0x30 (Multicast Router Advertisement), 0x31 (Multicast Router Solicitation), 0x32 (Multicast Router Termination). Three corresponding ICMPv6 Type values from the Informational range: 151, 152, 153.

multicast, registry

security-consideration §7

MRD is a link-local protocol; for IPv6, MRD messages MUST have a valid link-local source address and any messages without one MUST be discarded. For IPv4, the receiver MUST verify the source is local to the receiving interface and MUST discard non-local messages.

multicast, security

security-consideration §7

Rogue Advertisement messages could allow machines to masquerade as multicast routers, enabling eavesdropping or denial of service. Mitigations include SEND-based link-local addresses for IPv6 (allowing switch-based router authentication challenges) and IPsec ESP mode for both IPv4 and IPv6 using a manually configured symmetric key with HMAC-SHA-1.

multicast, security, ipsec

security-consideration §7

Spoofed Solicitation messages can be used as a flooding mechanism against multicast routers. This is mitigated by the rate-limiting recommendation (MaxMessageRate) applied to all MRD messages.

multicast, security

security-consideration §7

Spoofed Termination messages can disrupt multicast service. The protocol mitigates this by requiring receivers to send a Solicitation upon receiving a Termination, forcing any active router to respond with an Advertisement before the router is removed from the active list.

multicast, security

state-machine §3.1.5

Neighbor reachability is tracked per neighbor. A neighbor is declared unreachable if no valid Advertisement is received within NeighborDeadInterval = 3 * (received Advertisement Interval + calculated AdvertisementJitter). Receipt of a valid Termination triggers a Solicitation; absence of a subsequent Advertisement within NeighborDeadInterval causes the neighbor to be removed.

multicast, routing

wire-format §3.2

The Advertisement message is 8 octets: Type (1 octet, 0x30 for IPv4 / 151 for IPv6), Advertisement Interval (1 octet, unsigned seconds), Checksum (2 octets), Query Interval (2 octets, QQI in seconds), and Robustness Variable (2 octets).

multicast

wire-format §4.1

The Solicitation message is 4 octets: Type (1 octet, 0x31 for IPv4 / 152 for IPv6), Reserved (1 octet, set to 0 on transmission and ignored on reception), and Checksum (2 octets).

multicast

wire-format §5.1

The Termination message is 4 octets: Type (1 octet, 0x32 for IPv4 / 153 for IPv6), Reserved (1 octet, set to 0 on transmission and ignored on reception), and Checksum (2 octets).

multicast