Using Internet Group Management Protocol Version 3 (IGMPv3) and Multicast Listener Discovery Protocol Version 2 (MLDv2) for Source-Specific Multicast
updates
Extracted elements (22)
Although current IGMPv3/MLDv2 routers have no reason to send a Group-Specific Query for an SSM address, SSM-aware hosts should still respond correctly to such queries because the semantics are well-defined and future implementations may have reason to send them ('be liberal in what you accept').
An SSM-aware host is prohibited from allowing older-version report suppression for SSM addresses because suppression would allow an attacker to send a spoofed older-version report and deny SSM service to all other hosts on the link.
EXCLUDE mode (MODE_IS_EXCLUDE, CHANGE_TO_EXCLUDE_MODE) is prohibited for SSM addresses because EXCLUDE semantics require knowledge of all sources, which conflicts with the SSM model where receivers must explicitly specify sources. An SSM-aware router ignores such records to prevent non-source-specific semantics from being applied to SSM addresses.
A router compliant with this document will never generate an IGMPv1, IGMPv2, or MLDv1 query for an address in the SSM range. If such a query is observed, it indicates either a non-SSM-aware router or an inconsistent SSM range configuration between devices on the link.
An SSM-aware host MUST respond to SFGMP Group-and-Source-Specific Queries for SSM addresses per normal IGMPv3/MLDv2 rules; a host must be able to process queries listing multiple sources per group. The use of an SSM address does not modify this behavior.
If a host receives an IGMPv1 Query or an IGMPv2/MLDv1 General Query, it reverts to older-version compatibility mode, stops reporting source-specific subscriptions, and reports interest in SSM addresses without source qualification — causing SSM semantics to break. This occurs only if the router is not SSM-aware or if host and router disagree on the SSM address range.
SSM can be used by any host supporting source filtering APIs and the appropriate SFGMP. The SFGMP modifications defined in this document make SSM work better on SSM-aware hosts but are not strict prerequisites for using SSM.
A host or router GMP module SHOULD have a configuration option to set the SSM address range(s). If this option exists, it MUST default to the IANA-allocated SSM range (232/8 for IPv4, FF3x::/96 for IPv6). The mechanism MUST at least allow for manual configuration.
A host SHOULD log an error if it receives an IGMPv2 or MLDv1 Group Specific Query for an address in a configured source-specific range (MODIFICATION), as this indicates the querying router may not be SSM-compliant or uses a different SSM range.
A router SHOULD ignore all IGMPv1/v2 and MLDv1 reports for addresses in the source-specific range and specifically SHOULD NOT use them to establish IP forwarding state (MODIFICATION to IGMPv3/MLDv2).
A router SHOULD ignore all IGMPv2 Leave and MLDv1 Done messages in the source-specific address range and MAY log an error (MODIFICATION). Such messages may originate from non-SSM-aware hosts.
A router SHOULD ignore group records of type MODE_IS_EXCLUDE or CHANGE_TO_EXCLUDE_MODE if they refer to an SSM destination address (MODIFICATION), and MUST process any other group records within the same report.
An SSM-aware host MUST NOT allow its IGMPv3 or MLDv2 report to be suppressed by an older-version report when operating on an SSM address (MODIFICATION). Suppression in this scenario would allow an attacker to deny SSM service to other hosts on the link.
An SSM-aware host receiving an SFGMP Group-Specific Query for an SSM address MUST respond with a report if the group matches any subscribed source-specific channel, as specified in IGMPv3/MLDv2.
An SSM-aware host SHOULD NOT send MODE_IS_EXCLUDE Current-State Records or CHANGE_TO_EXCLUDE_MODE Filter-Mode-Change Records for an SSM address (MODIFICATION). EXCLUDE mode semantics do not apply to SSM addresses.
If the host IP module of an SSM-aware host receives a non-source-specific request to receive multicast traffic sent to an SSM destination address, it SHOULD return an error to the application (MODIFICATION to IGMPv3/MLDv2).
An 'SSM-aware' host is one that knows the SSM address range and is capable of applying SSM semantics to it. SSM requires a receiver to specify both source address and multicast destination address to receive traffic.
An 'SSM-aware' router is one that knows the SSM address range and is capable of applying SSM semantics as described in this document. An SSM-aware router MAY support configuring SSM semantics for addresses outside the IANA-allocated range, but MUST default to the IANA-allocated range.
SFGMP Group-and-Source-Specific Queries are used within the SSM address range when a router receives a BLOCK_OLD_SOURCES Record for one or more source-specific groups, to determine if remaining hosts have interest in a given (S,G) pair.
Valid Group Record types for SSM destination addresses in host reports are: MODE_IS_INCLUDE (Current-State), ALLOW_NEW_SOURCES (State-Change), and BLOCK_OLD_SOURCES (State-Change). CHANGE_TO_INCLUDE_MODE may also appear in specific configuration-change scenarios.
A router must not accept non-source-specific reception requests (e.g., IGMPv1/v2 or MLDv1 reports) for SSM destination addresses. If a router were to revert to compatibility mode upon receiving such a report, an attacker could exploit this to deny SSM service to all IGMPv3-capable hosts on the same link.
The protocol modifications in this document are not known to create security concerns beyond those already present in IGMPv3 or MLDv2 with ASM-style multicast. RFC 4607 (SSM) contains an analysis of SSM-specific security issues.