Network Working GroupInternet Engineering Task Force (IETF) J. AsgharInternet-DraftRequest for Comments: 7891 IJ. Wijnands, Ed.Intended status:Category: Standards Track S. KrishnaswamyExpires: October 28, 2016ISSN: 2070-1721 A. Karan Cisco Systems V. Arya DIRECTV Inc.April 26,June 2016 ExplicitRPFReverse Path Forwarding (RPF) Vectordraft-ietf-pim-explicit-rpf-vector-09.txtAbstract The PIM Reverse Path Forwarding (RPF) Vector TLV defined in RFC 5496 can be included in a PIM Join Attribute such that the RPF neighbor is selected based on the unicast reachability of the RPF Vector instead of theSourcesource orRandezvousRendezvous Point associated with the multicast tree. This document defines a new RPF Vector Attribute type such that an explicit RPF neighbor list can be encoded in the PIM Join Attribute, thus bypassing the unicast route lookup. Status of This Memo ThisInternet-Draftissubmitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documentsan Internet Standards Track document. This document is a product of the Internet Engineering Task Force (IETF).Note that other groups may also distribute working documents as Internet-Drafts. The listIt represents the consensus ofcurrent Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents validthe IETF community. It has received public review and has been approved fora maximumpublication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 ofsix monthsRFC 5741. Information about the current status of this document, any errata, and how to provide feedback on it may beupdated, replaced, or obsoleted by other documentsobtained atany time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on October 28, 2016.http://www.rfc-editor.org/info/rfc7891. Copyright Notice Copyright (c) 2016 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Specification of Requirements . . . . . . . . . . . . . . . . 3 3. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 3 4. Use of the PIM Explicit RPF Vector . . . . . . . . . . . . . 4 5. Explicit RPF Vector Attribute TLV Format . . . . . . . . . . 4 6. Mixed Vector Processing . . . . . . . . . . . . . . . . . . . 5 7. Conflicting RPF Vectors . . . . . . . . . . . . . . . . . . . 5 8. PIM Asserts . . . . . . . . . . . . . . . . . . . . . . . . . 6 9. Join Suppression . . . . . . . . . . . . . . . . . . . . . . 6 10. Unsupported Explicit Vector Handling . . . . . . . . . . . . 6 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . .67 12. Security Considerations . . . . . . . . . . . . . . . . . . . 7 13.AcknowledgmentsReferences . . . . . . . . . . . . . . . . . . . . . . . . . 714.13.1. Normative References . . . . . . . . . . . . . . . . . . 7 13.2. Informative References . . . . . . .7 14.1. Normative References .. . . . . . . . . . 8 Acknowledgements . . . . . . .7 14.2. Informative References. . . . . . . . . . . . . . . . . 8 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 1. Introduction The procedures in [RFC5496] define howaan RPFvectorVector can be used to influence the path selection in the absence of a route to the source. The same procedures can be used to override a route to the source when it exists. It is possible to include multiple RPFvectorsVectors in the list where each router along the path will perform a unicast route lookup on the firstvectorVector in the attribute list. Once the router owning the address of the RPFvectorVector is reached, following the procedures in [RFC5496], the RPFvectorVector will be removed from the attribute list. This will result in a 'loosely' routed path that still depends on unicast reachability to the RPFvector(s).Vector(s). In somescenariosscenarios, the networkadminstratorsadministrators don't want to rely on the unicast reachability to the RPFvectorVector address and want to build a path strictly based on the RPFvectors.Vectors. In thatcasecase, the RPFvectorsVectors represent a list of directly connected PIM neighbors along the path. For thesevectorsVectors, the router would not do a route lookup in the unicast routing table. ThesevectorsVectors are referred to as 'Explicit' RPF Vector addresses. If a router receiving an Explicit RPF Vector does not have a PIM neighbor matching the Explicit RPF Vector address, it does not fall back to loosely routing thejoin.Join. Instead, it could process the packet and store the RPF Vector list so that the PIMjoinJoin can be sent out as soon as the neighbor comes up. Since the behavior of the Explicit RPF Vector differs from theloose'loose' RPFvectorVector as defined in [RFC5496], a new attribute called the Explicit RPF Vector is defined. This document defines a new TLV in the PIM Join Attribute message [RFC5384] for specifying the explicit path. 2. Specification of Requirements 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]. 3. Motivation Some broadcast video transport networks use a multicast PIM Live-Live resiliency model for video delivery based on PIMSSMSource-Specific Multicast (PIM-SSM) or PIMASM.Any-Source Multicast (PIM-ASM). Live-Live implies using2 activetwo active, spatially diverse multicast trees to transport video flows from root to leaf multicast routers. The leaf multicast router receives2two copies from the PIM multicast core and will replicate1one copy towards the receivers [RFC7431]. One of the requirements of the PIM Live-Live resiliency model is to ensurepath-diversitypath diversity of the2two active PIM trees in the core such that they do not intersect to avoid a single point of failure.IGPIGP- routed RPF paths of2two PIM trees could be routed over the same transit router and create a single point of failure. It is useful to have a way to specify the explicit path along which the PIMjoinJoin is propagated. How the Explicit RPF Vector list is determined is outside the scope of this document. For example, it may either be manually configured by the network operator or procedures may be implemented on the egress router to dynamically calculate thevectorVector list based on alink statelink-state database protocol, like OSPF or IS-IS. Due to the fact that the leaf router receives two copies of the multicast stream via two diverse paths, there is no need for PIM to repair the broken path immediately. It is up to the egress router to either wait for the broken path to be repaired or build a new explicit path using a new RPFvectorVector list. Which method is applied depends very much on how thevectorVector list was determined initially. Double failures are not considered and are outside the scope of this document. This document describes the procedures to carry Explicit RPFvectorsVectors in PIM. It is up to the mechanism(s) that produce the Explicit RPF Vectors to ensure they are correct. Existing mechanisms like[I-D.ietf-mboned-mtrace-v2][MTRACE-V2] may be used to verify how the PIM tree wasbuild.built. 4. Use of the PIM Explicit RPF Vector Figure 1 provides an example multicast join path R4->R3->R6->R5->R2->R1, where the multicast join is explicitly routed to the sourcehop-by-hophop by hop using the Explicit RPF Vector list. When the R5-R6 linkfailsfails, thejoinJoin will NOT take an alternate path. [S]---(R1)--(R2)---(R3)--(R4)---[R] <--- | | --- | | | | | (R5)---(R6) | - (S,G) Join - | | | | (R7)---(R8) Figure 1 In comparison, when[RFC5496]the procedures specified in [RFC5496] are used, if the R5-R6 linkfailsfails, then thejoinJoin may bere-routedrerouted using the R6-R8-R7 path to reach R5. 5. Explicit RPF Vector Attribute TLV Format 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |F|E| Type | Length | Value +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-....... Figure 2 F bit: 'Transitive Attribute' bit. The F bit MUST be set to 0.OtherwiseOtherwise, there could be loops. E bit:End'End ofAttributes.Attributes' bit. Ifthisthe E bit issetset, then this is the last TLV specified in the list. Type:The Vector Attribute type is TBD1.4 (Explicit RPF Vector) Length:LengthThe length depending on the Address Family (IPv4 or IPv6) of the Encoded-Unicast address. Value: Encoded-Unicast address. This SHOULD be a valid IPv4 or IPv6 address of an upstream router. 6. Mixed Vector Processing The Explicit RPF VectorattributeAttribute does not impact or restrict the functionality of other RPFvector attributesVector Attributes in a PIMjoin.Join. It is possible to mixvectorsVectors of differenttypes,types such that some part of the tree is explicit and other parts are loosely routed. RPFvectorsVectors are processed in the order in which they are specified. 7. Conflicting RPF Vectors It is possible that a PIM router has multiple downstream neighbors. If for the same multicast route there is an inconsistency between the Explicit RPF Vector lists provided by the downstream PIM neighbor, the procedures as documented insectionSection 3.3.3 of [RFC5384] apply. The conflict resolution procedures insectionSection 3.3.3 of [RFC5384] only apply to attributes of the same Join Attribute type. Join Attributes that have a different type can't be compared because the content of the Join Attribute may have a totally different meaning and/or encoding. This may cause a problem if a mix of Explicit RPF Vectors (this document) and 'loose' RPFvectorsVectors [RFC5496] is received from two or more downstream routers. The order in which the RPFvectorsVectors are encoded may bedifferentdifferent, and/or the combination of RPFvectorsVectors may be inconsistent. The procedures insectionSection 3.3.3 of [RFC5384] would not resolve the conflict. The following procedures MUST be applied to deal with this scenario. When a PIM Join with a Join Attribute list is received from a downstream neighbor, the router MUST verify that the order in which the RPF Vector types appear in the PIM Join Attribute list matches what is stored as the Join Attribute list for reaching theSourcesource orRandezvous pointRendezvous Point listed in the PIM Join. Once it is determined that the RPF Vector types on the stack are equal, the content of the RPF Vectors MUST be compared ([RFC5384]). If it is determined that there is either a conflict with RPF Vector types or the RPF Vector content, the router uses the RPF Vector stack from the PIM adjacency with the numerically smallest IP address. In the case of IPv6, thelink locallink-local address will be used. When two neighbors have the same IP address, either for IPv4 or IPv6, the interface index MUST be used as a tie breaker. It's RECOMMENDED that the router doing the conflict resolution log a message. 8. PIM Asserts Section 3.3.3 of [RFC5496] specifies the procedures for how to deal with PIMassertsAsserts when RPFvectorsVectors are used. The same procedures apply to the Explicit RPF Vector. There is a minor behavioraldifference,difference: the routemetric'metric' that is included in the PIM Assert should be the route metric of the first Explicit RPFvectorVector address in the list. However, the first ExplicitvectorVector should always be directly connected, so theMetricmetric may likely be zero. TheMetricmetric will therefore not be a tie breaker in the PIM Assert selection procedure. 9. Join Suppression Section 3.3.4 of [RFC5496] specifies the procedures for how to applyjoin suppressionJoin Suppression when an RPF VectorattributeAttribute is included in the PIMjoin.Join. The same procedure applies to the Explicit RPF Vectorattribute.Attribute. The procedure MUST match against all the Explicit RPF Vectors in the PIMjoinJoin before a PIMjoinJoin can be suppressed. 10. Unsupported Explicit Vector Handling The F bit MUST be set to 0 in all Explicit RPFvectorsVectors in case the upstream router receiving thejoinJoin does not support the TLV. As described insectionSection 3.3.2 of [RFC5384], routers that do not understand the type of a particular attribute that has the F bit clear will discard it and continue to process thejoin.Join. This processing is particularly important when the routers that do not support the Explicit RPF TLV are identified as hops in theexplicitExplicit RPFlist,list because failing to remove the RPFvectorsVectors could cause upstream routers to send thejoinJoin back toward these routers causing loops. As the administrator is manually specifying the path that thejoinsJoins need to be sent on, it is recommended that the administrator computes the path to include routers that supportexplcit vectorthe Explicit Vector and check that the state is created correctly on each router along the path. Tools like mtrace can be used for debugging and to ensure that thejoinJoin state is setup correctly. 11. IANA ConsiderationsA new attribute (TBD1) type fromIn the "PIM Join Attribute Types"registry needs to be assigned byregistry, IANAforhas assigned the value 4 to the Explicit RPF Vectorattribute. The proposed value 4.Attribute. 12. Security Considerations Security of the Explicit RPF Vector Attribute is only guaranteed by the security of the PIM packet, so the security considerations for PIM Join packets as described in PIM-SM[I-D.ietf-pim-rfc4601bis][RFC7761] apply here. A malicious downstream node can attempt adenial of servicedenial-of-service attack by sending PIM Join packets with invalid addresses listed in the RPFvectorVector stack with an intent to stop thepropogationpropagation of thejoinsJoins to the correct upstream node. Anotherdenial of servicedenial-of-service attack would be a malicious downstream node targeting alljoinsJoins to a specific node with an intent to overload the bandwidth on that node by making it responsible for forwarding multicast traffic for more streams that it can handle.InorderIn order to minimize the risk of adenial of service attacksdenial-of-service attack from forged PIMjoinJoin packets withexplicitExplicit RPFvectorVector stack, it should be used within a single trusted management domain. If a router finds that it cannot use thevectorVector list due to the next hop router not being a PIM neighbor, it may log an error.AlsoAlso, if a router is receiving two conflictingvectorsVectors, it may log an error. It isuptoup to the mechanisms that produced the Explicit RPFvectorVector to ensure that thethePIM tree is built correctly and to monitor any error logs. 13.Acknowledgments The authors would like to thank Vatsa Kumar, Nagendra Kumar and Bharat Joshi for the comments on the document. 14.References14.1.13.1. Normative References[I-D.ietf-pim-rfc4601bis] Fenner, B., Handley, M., Holbrook, H., Kouvelas, I., Parekh, R., Zhang, J., and L. Zheng, "Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)", draft-ietf-pim-rfc4601bis-06 (work in progress), August 2015.[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <http://www.rfc-editor.org/info/rfc2119>. [RFC5384] Boers, A., Wijnands, I., and E. Rosen, "The Protocol Independent Multicast (PIM) Join Attribute Format", RFC 5384, DOI 10.17487/RFC5384, November 2008, <http://www.rfc-editor.org/info/rfc5384>. [RFC5496] Wijnands, IJ., Boers, A., and E. Rosen, "The Reverse Path Forwarding (RPF) Vector TLV", RFC 5496, DOI 10.17487/RFC5496, March 2009, <http://www.rfc-editor.org/info/rfc5496>.14.2.[RFC7761] Fenner, B., Handley, M., Holbrook, H., Kouvelas, I., Parekh, R., Zhang, Z., and L. Zheng, "Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)", STD 83, RFC 7761, DOI 10.17487/RFC7761, March 2016, <http://www.rfc-editor.org/info/rfc7761>. 13.2. Informative References[I-D.ietf-mboned-mtrace-v2][MTRACE-V2] Asaeda, H., Meyer, K., and W. Lee, "Mtrace Version 2: Traceroute Facility for IP Multicast",draft-ietf-mboned- mtrace-v2-12 (workWork inprogress),Progress, draft-ietf-mboned-mtrace-v2-12, October 2015. [RFC7431] Karan, A., Filsfils, C., Wijnands, IJ., Ed., and B. Decraene, "Multicast-Only Fast Reroute", RFC 7431, DOI 10.17487/RFC7431, August 2015, <http://www.rfc-editor.org/info/rfc7431>. Acknowledgements The authors would like to thank Vatsa Kumar, Nagendra Kumar, and Bharat Joshi for their comments on the document. Authors' Addresses Javed Asghar Cisco Systems 725, Alder DriveMilpitasMilpitas, CA 95035USAUnited States Email: jasghar@cisco.com IJsbrand Wijnands (editor) Cisco Systems De Kleetlaan 6a Diegem 1831 Belgium Email: ice@cisco.com Sowmya Krishnaswamy Cisco Systems 3750 Cisco Way SanJoseJose, CA 95134USAUnited States Email: sowkrish@cisco.com Apoorva Karan Cisco Systems 3750 Cisco Way SanJoseJose, CA 95134USAUnited States Email: apoorva@cisco.com Vishal Arya DIRECTV Inc. 2230 E Imperial Hwy ElSegundoSegundo, CA 90245USAUnited States Email: varya@directv.com