rfc-9279

Internet Group Management Protocol Version 3 (IGMPv3) and Multicast Listener Discovery Version 2 (MLDv2) Message Extension

M. Sivakumar, S. Venaas, Z. Zhang, H. Asaeda
date2022-08 streamIETF areartg wgpim statusPROPOSED STANDARD pages12 canonicalhttps://www.rfc-editor.org/rfc/rfc9279 doi10.17487/RFC9279
This document specifies a generic mechanism to extend IGMPv3 and Multicast Listener Discovery Version 2 (MLDv2) by using a list of TLVs (Type, Length, and Value).

Extracted elements (17)

design-rationale §6

IGMP and MLD implementations rarely change, so adoption of this extension mechanism is expected to be slow. Defining new extension TLVs should not be taken lightly; partial support by hosts or routers on the same link and dependencies between Extension Types must be carefully considered.

multicast

interoperability-note §6

Implementations that do not support the extension mechanism will ignore it as specified in RFC 3376 and RFC 3810. This extension mechanism applies only to IGMPv3 and MLDv2; it does not apply when hosts or routers send older version messages.

multicast

normative-requirement §6 MUST

Future documents defining a new Extension Type MUST specify the conditions under which it should be used (including which message types) and what behavior should occur if used outside its defined context.

multicast, registry

normative-requirement §3 MUST

The extension format MUST contain at least one TLV when the extension mechanism is used.

multicast

normative-requirement §5 MUST

TLV validation requires: at least one TLV present, no data in the IP payload after the last TLV, and the total Extension length MUST NOT exceed the remainder of the IP payload length. If validation fails, the entire Additional Data field MUST be ignored.

multicast

normative-requirement §5 MUST

TLVs with unsupported Extension Types MUST be ignored. Type-specific validation rules are only examined after the general validation succeeds.

multicast

normative-requirement §3 SHOULD

When this extension is used, the number of records in each Report message SHOULD be kept small enough so that the entire message, including any extension TLVs, can fit within the network MTU.

multicast

protocol-element §3.1

The E-bit is a previously reserved bit in IGMPv3 and MLDv2 message headers that indicates the presence of the extension. It MUST be set to 1 when the extension is present, and MUST be 0 otherwise.

multicast

protocol-element §4

The No-op TLV (Extension Type=0) is a No-Operation TLV that MUST be ignored during processing. It may be used to verify correct implementation of the extension mechanism. No alignment requirement exists, so No-op is not needed for padding.

multicast

registry §8

IANA created the 'IGMP/MLD Extension Types' registry under 'Internet Group Management Protocol (IGMP) Type Numbers', with registration procedure 'IETF Review'. Type 0 is No-op, types 1-65533 are Unassigned, and types 65534-65535 are Reserved for Experimental Use.

multicast, registry

security-consideration §7

Implementations must take care not to exceed the packet boundary when parsing TLVs, because an attacker could intentionally specify a TLV with a length exceeding the boundary. Additionally, an attacker could add a large number of minimal TLVs to increase processing cost and magnify a denial-of-service attack.

multicast, security

wire-format §3

The Extension Format consists of a variable list of TLVs appended to the Additional Data section of IGMPv3/MLDv2 messages. Each TLV has a 2-octet Extension Type, 2-octet Extension Length, and variable-length Extension Value field. There is no alignment or padding between TLVs.

multicast, registry

wire-format §3.3

The IGMPv3 Query message (Type=0x11) uses the E-bit in the octet shared with Resv, S, and QRV fields to signal extension presence. The Extension field follows after all Source Addresses.

multicast

wire-format §3.4

The IGMPv3 Report message (Type=0x22) uses the E-bit in the second word (shared with Reserved and Number of Group Records) to signal extension presence. The Extension field follows after all Group Records.

multicast

wire-format §3.1

The MLDv2 Query message (Type=130) uses the E-bit in the octet shared with Resv, S, and QRV fields to signal extension presence. The Extension field follows after all Source Addresses.

multicast

wire-format §3.2

The MLDv2 Report message (Type=143) uses the E-bit in the second word (shared with Reserved and Nr of Mcast Address Records) to signal extension presence. The Extension field follows after all Multicast Address Records.

multicast

wire-format §4

The No-op TLV has a 2-octet No-op Type field (value 0), a 2-octet Extension Length field, and a variable-length Value field. The number of octets in the Value field MUST match the specified length.

multicast