PIM Working Group Rajiv Asati Internet Draft Mike McBride Intended status: Informational Cisco Systems Expires: January 2009 July 6, 2008 Multicast Routing Blackhole Avoidance draft-asati-pim-multicast-routing-blackhole-avoid-00.txt Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html This Internet-Draft will expire on January 6, 2007. Copyright Notice Copyright (C) The IETF Trust (2008). Asati & McBride Expires January 6, 2009 [Page 1] Internet-Draft draft-asati-pim-multicast-routing-blackhole July 2008 Abstract This document specifies a mechanism to avoid blackholing of IP Multicast traffic due to the disruption of multicast tree during the time when the RPF neighbor is yet to become the PIM neighbor. Such scenario is possible during the topology change (e.g. link UP) in an IP network that employs PIM-SM (or SSM) as the multicast routing protocol and a unicast routing protocol (including static routing). Conventions used in this document In examples, "C:" and "S:" indicate lines sent by the client and server respectively. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC2119 [RFC2119]. Table of Contents 1. Introduction...................................................3 2. Problem Details................................................3 2.1. Root-cause................................................4 3. Solution.......................................................5 3.1. Solution Detail...........................................6 3.2. Make-before-Break.........................................7 4. Other Solutions................................................8 5. Interoperability Considerations................................8 6. Security Considerations........................................8 7. IANA Considerations............................................8 8. Conclusions....................................................9 9. Acknowledgments................................................9 10. References...................................................10 10.1. Normative References....................................10 10.2. Informative References..................................10 Author's Addresses...............................................10 Intellectual Property Statement..................................10 Disclaimer of Validity...........................................11 Asati & McBride Expires January 6, 2009 [Page 2] Internet-Draft draft-asati-pim-multicast-routing-blackhole July 2008 1. Introduction A Multicast distribution tree, as identified by the corresponding multicast route e.g. (S,G), (*,G), provides a pre-determined path for distributing the multicast traffic from the source (or RP) to the receivers through a set of routers. PIM-SM [RFC4601] is a multicast routing protocol that uses the information from the underlying unicast routing information base (or its derivative) to determine the reverse path for the multicast distribution tree (be it a source tree (S,G) or shared tree (*,G)) and establishes the tree on that path. Specifically, the unicast routing information base (or its derivative) information is utilized to determine the next-hop neighbor and interface, commonly referred to as RPF neighbor and RPF interface respectively in PIM-SM [RFC4601], for the source of (S,G) or RP of (*,G). PIM-SM [RFC4601] specifies that the PIM Join/Prune message for a multicast tree must be sent to the RPF neighbor on the RPF interface to join or prune a multicast tree. It also specifies that the PIM Join/Prune message must be sent to or received from only PIM neighbors. This means that the PIM neighbor relationship must be established with the RPF neighbor on the RPF interface prior to transmitting the PIM Join/Prune message after the link UP event. This ensures that the PIM neighbor becomes capable of processing the PIM Join/Prune messages and joining/pruning a multicast distribution tree. However, such assumption also opens up the possibility of multicast traffic getting blackholed for brief time period after the link UP event when the PIM neighbor relationship MAY take a little longer to get established. This document describes this problem and proposes a solution for that. 2. Problem Details Multicast distribution trees built using PIM-SM [RFC4601] in an IP network may experience an outage for brief period following the link UP event. The figure 1 and 2 below are used to explain this problem. Asati & McBride Expires January 6, 2009 [Page 3] Internet-Draft draft-asati-pim-multicast-routing-blackhole July 2008 +------------------------------------------------+ | | | Source----R1------R2------R3------Receiver | | | +------------------------------------------------+ Figure 1 Topology prior to R1-R3 link Up +------------------------------------------------+ | | | Source----R1------R2------R3------Receiver | | \ / | | \------------/ | | | +------------------------------------------------+ Figure 2 Topology after R1-R3 link Up After the (R1-R3) link Up event, the unicast routing may likely converge quite fast and update the unicast routing information base to make use of that link. This may trigger the RPF neighbor calculation at router R3 for the particular multicast route(s). The determination of new RPF neighbor (R1, say) for a particular multicast route may further trigger an update of the multicast route in the multicast routing information base. This further triggers the PIM module to send PIM Prune message to the current RPF neighbor (R2, say) and PIM Join message to the new RPF neighbor (R1, say). However, per PIM-SM [RFC4601], if the RPF neighbor is not yet the PIM neighbor, then the PIM Join should not be sent to that neighbor. Even if the PIM Join was sent (by R3, say), then the upstream router (R1, say) may not process the PIM Join/Prune message until the downstream router is known as the PIM neighbor. This means that the multicast tree may be disrupted on R1-R3 link for some time until PIM neighbor relationship is established on R1-R3 link and PIM Join is sent and processed. 2.1. Root-cause Firstly, after the link UP event, the PIM neighbor adjacency establishment on a link may take longer than the total time taken to Asati & McBride Expires January 6, 2009 [Page 4] Internet-Draft draft-asati-pim-multicast-routing-blackhole July 2008 establish the unicast routing neighbor adjacency on that link, determine the new RPF neighbor, if any, and update the corresponding multicast route entry(s). The larger time-period may be due to any of the reasons such as - 1) PIM is misconfigured or not configured. 2) PIM Hellos are not exchanged immediately after the link UP. 3) PIM Hello is sent, but not received after the link UP. 4) PIM module experienced a software issue. Secondly, a multicast routing entry is updated with the new RPF neighbor information as soon as that information becomes available after the unicast routing convergence. There is no check for the RPF neighbor being the PIM neighbor prior to this update. This is really what causes the disruption in multicast tree. 3. Solution It may be somewhat obvious from section 2.1 that one may attempt to solve the 1st problem, but it is difficult to solve for all of the scenarios. However, it is very much possible to sufficiently solve the 2nd problem, and that will automatically bypass the 1st one. The solution is somewhat simple and straight-forward - replace the current RPF neighbor with the new RPF neighbor for a multicast routing entry ONLY if the new RPF neighbor is determined to be the PIM neighbor. This means that the logic is infused to not propagate the new RPF neighbor information to the multicast routing information base unless the RPF neighbor is listed in the PIM neighbor database. If the RPF neighbor is not listed in the PIM neighbor database, then the PIM adjacency establishment procedure i.e. send PIM hello etc. must be initiated. This means that the forwarding mroute entry may be left intact until the PIM neighbor adjacency is established with the RPF neighbor on the RPF interface. While this may keep the multicast distribution tree from taking advantage of the changed topology i.e. new link for brief time period, it ensures that the multicast distribution tree is not disrupted unnecessarily and the multicast traffic is not blackholed. Asati & McBride Expires January 6, 2009 [Page 5] Internet-Draft draft-asati-pim-multicast-routing-blackhole July 2008 An advantage with this solution is that the proposed changes are local to a router. 3.1. Solution Detail One may construct the state machine to be the modified as following (please refer to figure 2) - After the (R1-R3) link Up event, the unicast routing convergence triggers the RPF neighbor calculation at router R3 for the particular multicast route(s). After the RPF neighbor is determined, a check is inserted whether the RPF neighbor is also the PIM neighbor on R1-R3 link by looking up the PIM neighbor database If such a check returns a positive match, then the corresponding multicast route in the multicast routing information base is(are) updated with the new RPF neighbor (R1, say) information. This further triggers the PIM module to send PIM Join message to the new RPF neighbor (R1, say), and PIM Prune message to the current RPF neighbor (R2, say). If such a check returns a negative match, then the multicast route in the multicast routing information base is(are) NOT updated with the new RPF neighbor (R1, say) information, and no PIM Join/Prune messages are generated as a result. This results in the multicast distribution tree continuing to use the old RPF neighbor information and avoiding the multicast traffic blackholing. The state machine may continue to check for RPF neighbor being the PIM neighbor either regularly or wait for the trigger, so that when the RPF neighbor indeed becomes the PIM neighbor, the check returns a positive match for the multicast routes to be updated as explained above. In summary, the multicast routing sequence would be as follows - 1) New RPF neighbor is determined after the unicast routing convergence 2) Check whether the new RPF neighbor is also PIM neighbor on the RPF interface Asati & McBride Expires January 6, 2009 [Page 6] Internet-Draft draft-asati-pim-multicast-routing-blackhole July 2008 3) If it is not, then initiate the PIM neighbor establishment procedure by sending PIM Hellos etc. on the new RPF interface 4) If it is, then update the multicast forwarding entry by replacing the old RPF neighbor (and interface) information with the new RPF neighbor (and interface) information 5) Send the PIM Join message for the related multicast routes (S,G or *,G). 6) Send the PIM Prune message to the old RPF neighbor for the related multicast routes (S,G or *,G) 3.2. Make-before-Break This solution also paves the way for true make-before-break behavior for multicast forwarding if the PIM join for a particular mroute (*,G or S,G) is sent to the new RPF neighbor after establishing the PIM neighbor relationship, but before updating the related multicast forwarding entry. This increases the likelihood that the upstream RPF neighbor would have updated its multicast forwarding entry and started sending the multicast traffic downstream. Of course, the traffic would not get forwarded by the downstream router (thanks to RPF check failure) until the multicast forwarding entry is updated with the new RPF neighbor. This almost ensures that the multicast traffic is available on the new path before switching the RPF interface of the multicast forwarding entry. The multicast routing sequence for make-before-break can be summarized as below - 1) New RPF neighbor is determined after the unicast routing convergence 2) Check whether the new RPF neighbor is also PIM neighbor on the RPF interface 3) If it is not, then initiate the PIM neighbor establishment procedure by sending PIM Hellos etc. on the new RPF interface 4) If it is, then send the PIM Join message for the related multicast routes (S,G or *,G). Asati & McBride Expires January 6, 2009 [Page 7] Internet-Draft draft-asati-pim-multicast-routing-blackhole July 2008 5) Update the multicast forwarding entry by replacing the old RPF neighbor (and interface) information with the new RPF neighbor (and interface) information 6) Send the PIM Prune message to the old RPF neighbor for the related multicast routes (S,G or *,G) It is envisioned that an implementation may provide a configuration option to enable the make-before-break functionality. Also note that this section refers to section 4.5.7 of RFC4601. 4. Other Solutions There are number of other approaches to solve this issue, however, they all attempt to solve the 1st problem as explained in the section 2.1. 1. Ignore the PIM hello - This doesn't solve the issue completely. What if the PIM module is malfunctioning on the upstream router. 2. Triggered PIM Hello - This doesn't solve the issue completely, what if the PIM hellos are not received by the remote router. Speeding up Hellos may also penalize the processing resources at the router. 3. Multi-topology - A non-PIM solution that shifts the problem to a different topology, which becomes responsible for maintaining the PIM operation. 5. Interoperability Considerations This mechanism introduces no interoperability issue since the changes are local to the router. 6. Security Considerations None. 7. IANA Considerations None. Asati & McBride Expires January 6, 2009 [Page 8] Internet-Draft draft-asati-pim-multicast-routing-blackhole July 2008 8. Conclusions IPTV deployment using multicast for Broadcast Video delivery desires multicast sub-second convergence and resiliency since the broadcast video such as MPEG video is loss intolerant. Hence, it is imperative to eliminate any unnecessary multicast traffic outage (blackholing) during the IP network topology changes such as Link UP event. The root-cause of the blackholing problem, as clarified in this document, lies in the PIM protocol. Although there are non-PIM solutions, having a PIM based solution that is simple, straight-forward, easier to implement and that requires no interoperability is the goal of this document. The simple change to the PIM state machinery, as proposed in this document, would prevent blackholing of multicast data. 9. Acknowledgments TBD. This document was prepared using 2-Word-v2.0.template.dot. Asati & McBride Expires January 6, 2009 [Page 9] Internet-Draft draft-asati-pim-multicast-routing-blackhole July 2008 10. References 10.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC4601] Fenner B., Handley M., Holbrook H., and Kouvelas I., "Protocol Indpendent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)", RFC 2601, August 2006. 10.2. Informative References Author's Addresses Rajiv Asati Cisco Systems, 7025-6 Kit Creek Rd, RTP, NC, 27709-4987 Email: rajiva@cisco.com Mike McBride Cisco Systems, 121 Theory, IRVINE, CA, 92617-3045 Email: mmcbride@cisco.com Intellectual Property Statement 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. Asati & McBride Expires January 6, 2009 [Page 10] Internet-Draft draft-asati-pim-multicast-routing-blackhole July 2008 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. Disclaimer of Validity 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. 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. Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society. Asati & McBride Expires January 6, 2009 [Page 11]