RFC 5186 INFORMATIONAL MULTICAST · ROUTING · GROUP MANAGEMENT

Internet Group Management Protocol Version 3 (IGMPv3) / Multicast Listener Discovery Version 2 (MLDv2) and Multicast Routing Protocol Interaction

How multicast routers use source filtering from group management protocols.

On rfc-editor.org ↗
PUBLISHED
May 2008
AUTHORS
B. Haberman, J. Martin
STREAM
IETF
RECORD TYPES
4: EXCLUDE, INCLUDE, with and without source lists
ROUTING PROTOCOLS COVERED
DVMRP, MOSPF, PIM-DM, PIM-SM, PIM-SSM
GROUP MANAGEMENT PROTOCOLS
IGMPv3 for IPv4, MLDv2 for IPv6
KEY INNOVATION
Source-specific multicast trees
DOI
10.17487/RFC5186

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                        B. Haberman
Request for Comments: 5186                      Johns Hopkins University
Category: Informational                                        J. Martin
                                                           Woven Systems
                                                                May 2008


        Internet Group Management Protocol Version 3 (IGMPv3) /
          Multicast Listener Discovery Version 2 (MLDv2) and
                 Multicast Routing Protocol Interaction

Status of This Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard of any kind.  Distribution of this
   memo is unlimited.

Abstract

   The definitions of the Internet Group Management Protocol Version 3
   (IGMPv3) and Multicast Listener Discovery Version 2 (MLDv2) require
   new behavior within the multicast routing protocols.  The additional
   source information contained in IGMPv3 and MLDv2 messages
   necessitates that multicast routing protocols manage and utilize the
   information.  This document describes how multicast routing protocols
   will interact with these source-filtering group management protocols.

1.  Introduction

   The definitions of IGMPv3 [IGMP3] and MLDv2 [MLDv2] require new
   behavior within the multicast routing protocols.  The additional
   source information contained in IGMPv3 and MLDv2 messages
   necessitates that multicast routing protocols manage and utilize the
   information.  This document will describe how multicast routing
   protocols will interpret information learned from these source-
   filtering group management protocols.

2.  Multicast Forwarding State

   Existing multicast routing protocols utilize the group management
   database in determining if local members exist for a particular
   multicast group.  With previous group management protocols, this
   database had one type of record indicating the group for which there
   was interest and the associated local interfaces.

   In the case of IGMPv3 and MLDv2, these routing protocols may now
   build multicast forwarding state based on the source filter
   information available for each multicast group that has local
   membership.  This requires that the group management database have
   four record types.  Only one record may exist for a given interface
   and a given multicast group.

      1. EXCLUDE <>
         The EXCLUDE <> record indicates interest in all sources
         destined to this group address for a set of local interfaces.
         It is equivalent to the single record type existing in previous
         versions of the group management protocols.

      2. INCLUDE <>
         The INCLUDE <> record indicates that there is no interest in
         any sources destined to this group address for a set of local
         interfaces.

      3. EXCLUDE <list>
         The EXCLUDE <list> record indicates that there is interest in
         all sources other than the specifically listed sources for a
         set of local interfaces.

      4. INCLUDE <list>
         The INCLUDE <list> record indicates that there is interest in
         only the specifically listed sources for a set of local
         interfaces.

   The records in the group management database should be utilized when
   generating forwarding state for a multicast group.  If the source
   address in the multicast packet exists in the database for the
   specified multicast group and is in an INCLUDE list or is not listed
   in an EXCLUDE list, the multicast routing protocol should add the
   interface to the list of downstream interfaces; otherwise, it should
   not be added based on local group membership.

3.  DVMRP Interaction

   The Distance Vector Multicast Routing Protocol (DVMRP) [DVMRP] does
   not incorporate any knowledge of the multicast group's senders.
   Therefore, DVMRP will act only on the multicast group address
   contained in an IGMPv3 or MLDv2 report.

   Future standardized versions of DVMRP may incorporate pruning and
   grafting messages similar to PIM-DM (discussed in Section 5).  The
   rules defined in Section 5 can be applied in this situation.

4.  MOSPF Interaction

   In Multicast Extensions to OSPF (MOSPF) [MOSPF], the consideration of
   source filter information in the group management database is limited
   to the building of forwarding state (discussed above).  This is due
   to the flooding of group-membership-LSAs within MOSPF.

5.  PIM-DM Interaction

   The PIM-DM protocol [PIMDM] interaction with a source-filtering group
   management protocol is important in two areas: multicast distribution
   tree pruning and multicast distribution tree grafting.  The following
   sections will describe the behavior needed in PIM-DM to interoperate
   with IGMPv3 and MLDv2.

5.1.  PIM-DM Prunes

   PIM-DM prune messages are initiated when a PIM-DM router determines
   that there are no entities interested in the data flowing on the
   (S,G) forwarding state.  If the multicast router is running IGMPv3 or
   MLDv2, this is determined by the source S being in EXCLUDE state in
   the source filter for the destination G, or all interest in G being
   terminated for an existing (S,G) forwarding entry.

5.2.  PIM-DM Grafts

   PIM-DM graft messages are sent in order to override an existing PIM-
   DM prune.  In the case of IGMPv3 or MLDv2, this occurs when prune
   state exists for (S,G) and a state change occurs in which the source
   filter state for S changes to INCLUDE for the specified G.

6.  PIM-SM Interaction

   A PIM-SM interaction takes place when a PM-SM [PIMSM] router receives
   an IGMP or MLD message regarding a group address that is in the Any
   Source Multicast (ASM) range.  This range is defined as the entire
   multicast address space excluding the global SSM range [SSM] and any
   locally defined Source Specific space.

6.1.  PIM-SM Joins (ASM Behavior)

   PIM-SM join messages are initiated when a PIM-SM router determines
   that there are entities interested in a specific group or a specific
   source sending to the group.  If this is due to an IGMPv3 or MLDv2
   report with a zero-length EXCLUDE list, then the join is sent as a
   (*,G) join towards the RP.

   If the join is triggered by an IGMPv3 or MLDv2 state change that
   affects source information, the PIM-SM join is sent as a (S,G) join
   towards the specific source.  This behavior optimizes the join
   process, as well as facilitates the adoption of the SSM model.  The
   generation of this (S,G) join can cause failures in architectures
   where leaf routers do not have global reachability, and thus, can be
   overridden by local policy.  If this is the case, then all triggered
   joins are sent towards the RP as (*,G) joins.  The router sending the
   (*,G) join is responsible for filtering the data as per the IGMPv3
   database before forwarding.

6.2.  PIM-SM Prunes (ASM Behavior)

   PIM-SM prune messages are initiated when a PIM-SM router determines
   that there are no entities interested in a specific group, or a
   specific source sending to the group.  If this is triggered by either
   receiving a report with an EXCLUDE or if a specific Source/Group
   times out, then an (S,G) prune is sent towards the upstream router.
   If all of the IGMPv3 or MLDv2 derived requests for a group time out,
   then (S,G) and (*,G) prunes are sent upstream as needed to stop all
   flow of traffic for that group.

7.  PIM-SSM Interaction

   A PIM-SSM interaction takes place when a PIM-SM router receives an
   IGMPv3 or MLDv2 message regarding a group address that is in the
   Source Specific Multicast range.  This behavior is not defined in
   this document, but rather in [PIMSM].

8.  Security Considerations

   This document does not introduce any additional security issues above
   and beyond those already discussed in [PIMDM], [PIMSM], [IGMP3], and
   [MLDv2].

9.  Acknowledgements

   The authors would like to thank Murali Brahmadesam, Leonard Giuliano,
   and Hal Sandick for their feedback and suggestions.

10.  Normative References

   [IGMP3] Cain, B., Deering, S., Kouvelas, I., Fenner, B., and A.
           Thyagarajan, "Internet Group Management Protocol, Version 3",
           RFC 3376, October 2002.

   [MLDv2] Vida, R., Ed., and L. Costa, Ed., "Multicast Listener
           Discovery Version 2 (MLDv2) for IPv6", RFC 3810, June 2004.

   [DVMRP] Waitzman, D., Partridge, C., and S. Deering, "Distance Vector
           Multicast Routing Protocol", RFC 1075, November 1988.

   [MOSPF] Moy, J., "Multicast Extensions to OSPF", RFC 1584, March
           1994.

   [PIMDM] Adams, A., Nicholas, J., and W. Siadak, "Protocol Independent
           Multicast - Dense Mode (PIM-DM): Protocol Specification
           (Revised)", RFC 3973, January 2005.

   [PIMSM] Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas,
           "Protocol Independent Multicast - Sparse Mode (PIM-SM):
           Protocol Specification (Revised)", RFC 4601, August 2006.

   [SSM]   Holbrook, H. and B. Cain, "Source-Specific Multicast for IP",
           RFC 4607, August 2006.

Authors' Addresses

   Brian Haberman
   The Johns Hopkins University Applied Physics Laboratory
   11100 Johns Hopkins Road
   Laurel, MD  20723-6099
   US

   Phone: +1 443 778 1319
   EMail: brian@innovationslab.net

   Jim Martin
   Woven Systems
   2455 Augustine Drive, Suite 211
   Santa Clara, CA  95054
   US

   Phone: +1 408 654-8143
   EMail: jim@wovensystems.com

Full Copyright Statement

   Copyright (C) The IETF Trust (2008).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.

AI ELI5

On this page
PROBLEMIGMPv3 and MLDv2 introduce source filtering to group management, allowing hosts to specify which sources they want to receive from. Multicast routing protocols must understand and act on this source information, but the original routing protocols were not designed with this capability.
MECHANISMRFC 5186 specifies how multicast routing protocols (DVMRP, MOSPF, PIM-DM, PIM-SM) interpret and utilize source filter state from IGMPv3/MLDv2 reports to build forwarding trees that respect source and group membership preferences.
EFFICIENT SOURCE FILTERINGMulticast routing protocols can now efficiently forward only to subscribers who actually want to receive from specific sources, rather than assuming all subscribers want all sources for a group.

§1Source Filtering in Multicast Group Management

Older multicast group management protocols like IGMPv2 and MLDv1 allowed hosts to simply join or leave a multicast group without specifying which sources they wanted to receive from. A host joining group 224.0.0.5 would receive traffic from any source sending to that group.

IGMPv3 (Internet Group Management Protocol Version 3) and MLDv2 (Multicast Listener Discovery Version 2) add source filtering capability. Hosts can now express interest in receiving traffic only from specific sources, or explicitly exclude specific sources. This creates a new requirement: multicast routing protocols must understand and act on this source information to build correct forwarding trees.

RFC 5186 describes how the major multicast routing protocols—DVMRP, MOSPF, PIM-DM, and PIM-SM—must be modified to interpret and utilize this source filtering state from IGMPv3 and MLDv2 reports.

Old group management said 'I want to watch group X' without saying which station. New versions let you say 'I want shows from this station' or 'I want everything except this station.' Routers need rules for using this information.

§2Multicast Forwarding States with Source Filtering

The group management database that multicast routers use now maintains four record types instead of one. Only one record type may exist per interface and per multicast group:

EXCLUDE <> (empty exclude list) indicates interest in all sources for a group—equivalent to the single record type in older protocols. INCLUDE <> (empty include list) indicates no interest in any sources for that group. EXCLUDE <list> indicates interest in all sources except those specifically listed. INCLUDE <list> indicates interest in only the specifically listed sources.

When building forwarding state, the routing protocol examines the source address in an arriving multicast packet. If the source is in an INCLUDE list for that group on an interface, or is not listed in an EXCLUDE list, the interface is added to the downstream interfaces for that packet. Otherwise it is not added based on local group membership. This allows routers to prune traffic from sources no local subscriber wants, improving efficiency.

The router keeps track of four types of subscriber preferences: 'I want everything,' 'I want nothing,' 'I want everything except these sources,' and 'I want only these sources.' When a packet arrives, the router checks the source address against these lists to decide where to send it.

Group Membership States (illustrative)
  • EXCLUDE (none) start
  • INCLUDE (none)
  • EXCLUDE (list)
  • INCLUDE (list)
FromToEvent
EXCLUDE (none)INCLUDE (list)Host specifies sources
INCLUDE (list)INCLUDE (none)Host drops all sources
EXCLUDE (none)EXCLUDE (list)Host blocks sources

§3DVMRP, MOSPF, and PIM-DM Protocol Interactions

DVMRP (Distance Vector Multicast Routing Protocol) does not inherently incorporate knowledge of multicast group sources, so it acts only on the multicast group address in IGMPv3 or MLDv2 reports, not the source filtering information. Future standardized versions of DVMRP that include pruning and grafting behaviors can follow PIM-DM rules.

MOSPF (Multicast Extensions to OSPF) uses source filter information only for building forwarding state, not for modifying its link-state flooding of group membership information.

PIM-DM (Protocol Independent Multicast - Dense Mode) uses source information in two key areas: Prune messages are sent when there are no subscribers interested in a source-group pair (when source S is in EXCLUDE state for group G, or all interest in G is terminated). Graft messages override a prune when the source filter state changes, such as when source S changes to INCLUDE state for group G after previously being pruned.

Different routing protocols handle the source information differently. Some ignore it, some use it just for forwarding decisions, and others use it to actively prune off branches of the tree where nobody wants a particular source. When interest changes, they send 'graft' messages to restore a pruned branch.

§4PIM-SM Protocol Behavior with Source Filtering

PIM-SM (Protocol Independent Multicast - Sparse Mode) provides the most sophisticated source filtering integration. PIM-SM routers interpret IGMPv3/MLDv2 messages differently based on whether the addressed group is in the Any Source Multicast (ASM) range or the Source Specific Multicast (SSM) range.

In ASM mode, when a PIM-SM router receives an IGMPv3/MLDv2 report with a zero-length EXCLUDE list (indicating 'I want everything'), it sends a (*,G) join towards the rendezvous point. When the report affects source information, the router sends an (S,G) join towards the specific source, optimizing the join process and facilitating SSM adoption. The router sending a (*,G) join is responsible for filtering data according to the IGMPv3 database before forwarding.

For prunes, when IGMPv3/MLDv2 shows no interest in a specific source-group pair or when all interest in a group times out, the router sends (S,G) prunes upstream or (S,G) and (*,G) prunes to stop all flow.

PIM-SSM (Source Specific Multicast) behavior with IGMPv3/MLDv2 is defined separately in the PIM-SM specification and operates on SSM-range groups where source information is essential.

PIM-SM is the most flexible: it sends different join messages depending on what subscribers want. If they want all sources, it joins toward a central point. If they want specific sources, it joins directly to those sources. When interest drops, it sends prune messages to stop the flow.

§5References