idnits 2.17.1 draft-ietf-pim-mtid-05.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'MUST not' in this paragraph: - the value MUST not be 0. If it is 0, the PIM MT-ID attribute is ignored. Processing of the rest of the Join message, including the current (S,G) or (*,G) entry, continues as if the particular PIM MT-ID attribute weren't present in the packet. -- The document date (September 22, 2010) is 4965 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Obsolete normative reference: RFC 4601 (Obsoleted by RFC 7761) -- Obsolete informational reference (is this intentional?): RFC 761 (Obsoleted by RFC 793, RFC 7805) Summary: 1 error (**), 0 flaws (~~), 2 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 PIM WG Yiqun Cai 3 Internet Draft Heidi Ou 4 Intended Status: Proposed Standard 5 Expires: March 22, 2011 Cisco Systems, Inc. 7 September 22, 2010 9 PIM Multi-Topology ID (MT-ID) Join-Attribute 11 draft-ietf-pim-mtid-05.txt 13 Status of this Memo 15 This Internet-Draft is submitted to IETF in full conformance with the 16 provisions of BCP 78 and BCP 79. 18 Internet-Drafts are working documents of the Internet Engineering 19 Task Force (IETF), its areas, and its working groups. Note that 20 other groups may also distribute working documents as Internet- 21 Drafts. 23 Internet-Drafts are draft documents valid for a maximum of six months 24 and may be updated, replaced, or obsoleted by other documents at any 25 time. It is inappropriate to use Internet-Drafts as reference 26 material or to cite them other than as "work in progress." 28 The list of current Internet-Drafts can be accessed at 29 http://www.ietf.org/ietf/1id-abstracts.txt. 31 The list of Internet-Draft Shadow Directories can be accessed at 32 http://www.ietf.org/shadow.html. 34 This Internet-Draft will expire on March 22, 2011. 36 Copyright Notice 38 Copyright (c) 2010 IETF Trust and the persons identified as the 39 document authors. All rights reserved. 41 This document is subject to BCP 78 and the IETF Trust's Legal 42 Provisions Relating to IETF Documents 43 (http://trustee.ietf.org/license-info) in effect on the date of 44 publication of this document. Please review these documents 45 carefully, as they describe your rights and restrictions with respect 46 to this document. Code Components extracted from this document must 47 include Simplified BSD License text as described in Section 4.e of 48 the Trust Legal Provisions and are provided without warranty as 49 described in the Simplified BSD License. 51 Abstract 53 This document introduces a new type of PIM Join Attribute that 54 extends PIM signaling to identify a topology that should be used when 55 constructing a particular multicast distribution tree. 57 Table of Contents 59 1 Specification of Requirements ...................... 3 60 2 Introduction ....................................... 3 61 3 Functional Overview ................................ 3 62 3.1 PIM RPF Topology ................................... 3 63 3.2 PIM MT-ID .......................................... 4 64 3.3 Applicability ...................................... 5 65 4 Protocol Specification of PIM MT-ID ................ 5 66 4.1 PIM MT-ID Hello Option ............................. 5 67 4.2 PIM MT-ID Join Attribute ........................... 5 68 4.2.1 Sending PIM MT-ID Join Attribute ................... 5 69 4.2.2 Receiving PIM MT-ID Join Attribute ................. 6 70 4.2.3 Validating PIM MT-ID Join Attribute ................ 6 71 4.2.4 Conflict Resolution ................................ 7 72 4.2.4.1 Conflict Resolution Rules For Upstream Routers ..... 7 73 4.2.4.2 Conflict Resolution Rules For Downstream Routers ... 8 74 5 Packet Format ...................................... 8 75 5.1 PIM MT-ID Hello Option ............................. 8 76 5.2 PIM MT-ID Join Attribute TLV Format ................ 9 77 6 IANA Considerations ................................ 9 78 7 Security Considerations ............................ 9 79 8 Acknowledgments .................................... 10 80 9 Authors' Addresses ................................. 10 81 10 Normative References ............................... 10 82 11 Informative References ............................. 11 84 1. Specification of Requirements 86 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 87 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 88 document are to be interpreted as described in [RFC2119]. 90 2. Introduction 92 Some unicast protocols, such as OSPF and IS-IS, allow a single 93 network to be viewed as multiple topologies [RFC4915, RFC5120]. This 94 enables PIM to construct multicast distribution trees using separate 95 network paths even when the roots of the trees are the same. 97 This capability can be used to improve the resilience of multicast 98 applications. For instance, a multicast stream can be duplicated and 99 transported using different network layer addresses simultaneously. 100 Assuming that two source trees, (S1, G1) and (S1, G2), are used for 101 the stream. By using MT capable unicast routing protocols and 102 procedures described in this document, it is possible to construct 103 two source trees for (S1, G1) and (S1, G2) in such a way that they do 104 not share any transit network segment. As a result, a single network 105 failure will not cause any loss to the stream. 107 This draft introduces a new type of PIM Join Attribute used to encode 108 the identity of the topology PIM uses for RPF. It is based on 109 [RFC5384], and specifies additional procedures and rules to process 110 the attribute and resolve conflict. The draft does not introduce any 111 change to the RPF check procedure used to verify the incoming 112 interface when a packet is forwarded. 114 3. Functional Overview 116 3.1. PIM RPF Topology 118 PIM RPF topology is a collection of routes used by PIM to perform RPF 119 operation when building shared or source trees. In the rest of the 120 document, PIM RPF topology may be simply referred to as "topology" 121 when there is no ambiguity. 123 In a multi-topology environment, multiple RPF topologies can be 124 created in the same network. A particular source may be reachable in 125 only one of the topologies, or in several of them via different 126 paths. 128 To select the RPF topology for a particular multicast distribution 129 tree, one or more of the following can be done. 131 1. configure a policy that maps a group range to a topology. When 132 RPF information needs to be resolved for the RP or the sources 133 for a group within the range, the RPF lookup takes place in the 134 specified topology. This can be used for PIM-SM/SSM/Bidir. 136 2. configure a policy that maps a source prefix range to a 137 topology. This can be used for PIM-SM and PIM-SSM. 139 3. use the topology identified by the Join Attribute encoding in 140 the received PIM packets. 142 The details of the first two methods are implementation specific and 143 are not discussed in this document. The specification to support the 144 third method is included in this document. 146 3.2. PIM MT-ID 148 For each PIM RPF topology created, a unique numerical ID is assigned 149 per PIM domain. This ID is called PIM MT-ID. PIM MT-ID has the 150 following property, 152 - this value is not required to be the same as the MT-ID used by 153 the unicast routing protocols that contribute routes to the 154 topology. In practice, when only one unicast routing protocol 155 (such as OSPF or IS-IS) is used, PIM MT-ID is recommended to be 156 assigned using the same value as the IGP topology identifier. 157 This is for the purpose of reducing management overhead and 158 simplifying troubleshooting. 160 - this value must be unique and consistent within the network 161 domain for the same topology. For actual deployment, one should 162 have a means to detect inconsistency of the MT-ID configuration, 163 but the detail of such mechanism is beyond the scope of this 164 document. 166 - 0 is reserved as the default, and MUST NOT be included in the 167 join attribute encoding. 169 - how to assign a PIM MT-ID to a topology is decided by the network 170 administrator and is outside the scope of this document 172 3.3. Applicability 174 The PIM MT-ID join attribute described in this draft applies to PIM 175 Join/Assert packets used by PIM SM/SSM/Bidir. It is not used in any 176 other PIM packets, such as Prune, Register, Register-Stop, Graft, 177 Graft-ack, DF Election, Candidate-RP, and Bootstrap. As such, it can 178 only be used to build shared or source trees for PIM SM/SSM and PIM- 179 bidir downstream. 181 When this attribute is used in combination with RPF vectors defined 182 in [RFC5496] [ID.ietf-l3vpn-2547bis-mcast], they are processed 183 against the topology identified by the PIM MT-ID attribute. 185 4. Protocol Specification of PIM MT-ID 187 The change to the PIM protocol includes two pieces, PIM MT-ID Hello 188 Option and PIM MT-ID Join Attribute. 190 4.1. PIM MT-ID Hello Option 192 A router MUST include both PIM MT-ID and PIM Join Attribute Hello 193 Option in its PIM Hello packets if it supports functionality 194 described by this document. 196 4.2. PIM MT-ID Join Attribute 198 4.2.1. Sending PIM MT-ID Join Attribute 200 When a PIM router originates a PIM Join/Assert packet, it may choose 201 to encode PIM MT-ID of the topology in which RPF lookup takes place 202 for the corresponding (*,G) or (S,G) entry. The chosen PIM MT-ID MUST 203 be the one decided by local topology selection configuration if it 204 exists, or the one received from downstream routers after conflict 205 resolution procedures are applied. 207 The following are the exceptions, 209 - a router MUST NOT attach the attribute if PIM MT-ID is 0. The 210 value of 0 is ignored on reception. 212 - a router SHOULD NOT do so if the upstream router, or any of the 213 routers on the LAN does not include "PIM Join Attribute" or "PIM 214 MT-ID" option in its Hello packets. 216 - a router SHOULD NOT encode PIM MT-ID for pruned sources. If 217 encoded, the value is ignored. 219 4.2.2. Receiving PIM MT-ID Join Attribute 221 When a PIM router receives a PIM MT-ID join attribute in a 222 Join/Assert packet, it MUST perform the following, 224 - validate the attribute encoding. The detail is described in the 225 next section. 227 - if the join attribute is valid, use the rules described in the 228 section "Conflict Resolution" to determine a PIM MT-ID to use. 230 - use the topology identified by the selected PIM MT-ID to perform 231 RPF lookup for the (*,G)/(S,G) entry unless a different topology 232 is specified by a local configuration. The local configuration 233 always takes precedence. 235 4.2.3. Validating PIM MT-ID Join Attribute 237 An upstream router must be known to support this draft in order for a 238 downstream router to include the PIM MT-ID attribute in its Join 239 packets. But an upstream router doesn't need to know if a downstream 240 router supports this draft or not when deciding whether to accept the 241 attribute. Hence, if the Join packet sender doesn't include "PIM Join 242 Attribute" or "PIM MT-ID" options in its Hello packets, the PIM MT-ID 243 attribute in the Join may still be considered valid. This is also in 244 accordance with the "Robustness Principle" outlined in [RFC761]. 246 The following text specifies the detail of the validity check. 248 - there is at most 1 PIM MT-ID attribute encoded. If there are 249 multiple PIM MT-ID Join Attributes included, only the last one is 250 accepted for this particular source. Processing of the rest of 251 the Join message continues. 253 - the length field must be 2. If the length field is not 2, the 254 rest of the Join message, including the current (S,G) or (*,G) 255 entry, MUST be ignored. The group, source and the RP in the Join 256 message that have already been processed SHOULD still be 257 considered valid. 259 - the value MUST not be 0. If it is 0, the PIM MT-ID attribute is 260 ignored. Processing of the rest of the Join message, including 261 the current (S,G) or (*,G) entry, continues as if the particular 262 PIM MT-ID attribute weren't present in the packet. 264 4.2.4. Conflict Resolution 266 The definition of "PIM MT-ID conflict" varies depending on whether it 267 is on an upstream or a downstream router. 269 On an upstream router, a conflict occurs when the router doesn't have 270 local topology selection policy and it has received different PIM 271 MT-ID from Join packets sent by its downstream routers or Assert 272 packets from another forwarding router on the LAN. In another word, 273 if an upstream router has a local configuration that specifies a 274 different topology than that from an incoming Join/Assert packet, 275 including the case PIM MT-ID is not encoded in the incoming packet, 276 it does not apply the conflict resolution procedures. 278 On the other hand,when a downstream router sees a different PIM MT-ID 279 attribute from other routers on the LAN it applies rules to resolve 280 the conflicts regardless of whether the router has local topology 281 selection policy or not. 283 It MUST be noted that the MT-ID value being considered for comparison 284 does not include the four reserved bits. That is, only the lower 285 order 12 bits are used in resolving conflicting attributes. 287 4.2.4.1. Conflict Resolution Rules For Upstream Routers 289 - if an upstream router receives different PIM MT-ID attributes 290 from PIM Join packets, it MUST follow the rules specified in 291 [RFC5384] to select one. The PIM MT-ID chosen will be the one 292 encoded for its upstream neighbor. 294 In order to minimize the chances of potential transient 295 forwarding loops, an upstream router MAY choose to ignore the 296 incoming PIM Join/Prune packets all together if it sees a 297 conflict in PIM MT-ID attributes. This action may also be taken 298 by an upstream router which has locally configured topology 299 selection policy, as an exception to the rules described above. 301 - if an upstream router receives a different PIM MT-ID attribute in 302 an ASSERT packet, it MUST use the tie-breaker rules as specified 303 in [RFC4601] to determine an ASSERT winner. PIM MT-ID is not 304 considered in deciding a winner from Assert process. 306 4.2.4.2. Conflict Resolution Rules For Downstream Routers 308 - if a downstream router sees different PIM MT-ID attributes from 309 PIM Join packets, it MUST follow the specification of [RFC4601] 310 as if the attribute did not exist. For example, the router 311 suppresses its own Join packet if a Join for the same (S,G) is 312 seen. 314 The router MUST NOT use the rules specified in [RFC5384] to 315 select a PIM MT-ID from Join packets sent by other downstream 316 routers. 318 - if a downstream router sees its preferred upstream router loses 319 in the ASSERT process, and the ASSERT winner uses a different PIM 320 MT-ID, the downstream router SHOULD still choose the ASSERT 321 winner as the RPF neighbour but it MUST NOT encode PIM MT-ID when 322 sending Join packets to it. 324 5. Packet Format 326 5.1. PIM MT-ID Hello Option 328 0 1 2 3 329 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 330 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 331 | OptionType | OptionLength | 332 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 333 | OptionValue | 334 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 336 - OptionType: 30. 338 - OptionLength: 8. 340 - OptionValue: There is none specified at this moment. 342 5.2. PIM MT-ID Join Attribute TLV Format 344 0 1 2 3 345 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 346 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 347 |F|E| Attr Type | Length |R R R R| Value | 348 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 350 - F bit: 0 Non-transitive Attribute. 352 - E bit: As specified by [RFC5384]. 354 - Attr Type: 3. 356 - Length: 2. 358 - R: Reserved bits, 4 in total. 360 - Value: PIM MT-ID, 1 to 4095. Range 2048 to 4095 are for 361 experimental and proprietary use. 363 6. IANA Considerations 365 A new PIM Hello Option type, 30, has been assigned for PIM MT-ID 366 Hello Option. The detail is in [HELLO]. 368 A new PIM Join Attribute type needs to be assigned. 3 is proposed for 369 now. 371 7. Security Considerations 373 As a type of PIM Join Attribute, the security considerations 374 described in [RFC5384] apply here. Specifically, malicious alteration 375 of PIM MT-ID may cause the resiliency goals to be violated. 377 8. Acknowledgments 379 The authors would like to thank Eric Rosen, Ice Wijnands, Dino 380 Farinacci, Colby Barth, Les Ginsberg, Dimitri Papadimitriou and 381 Thomas Morin for their input. 383 9. Authors' Addresses 385 Yiqun Cai 386 Cisco Systems, Inc 387 170 West Tasman Drive 388 San Jose, CA 95134 390 E-mail: ycai@cisco.com 392 Heidi Ou 393 Cisco Systems, Inc 394 170 West Tasman Drive 395 San Jose, CA 95134 397 E-mail: hou@cisco.com 399 10. Normative References 401 [RFC2119] S. Bradner, "Key words for use in RFCs to Indicate 402 Requirement Levels", RFC 2119, March 1997. 404 [RFC4601] Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas, 405 "Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol 406 Specification (Revised)", RFC 4601, August 2006. 408 [RFC5384] A. Boers, I. Wijnands, E. Rosen, "The Protocol Independent 409 Multicast (PIM) Join Attribute Format", RFC 5384, November 2008 411 11. Informative References 413 [RFC761] ISI, "Transmission Control Protocol", RFC 761, January 1980. 415 [RFC4915] P. Psenak, S. Mirtorabi, A. Roy, L. Nguyen, P. Pillay- 416 Esnault, "Multi-Topology (MT) Routing in OSPF", RFC 4915, June 2007. 418 [RFC5120] T. Przygienda, N. Shen, N. Sheth, "M-ISIS: Multi Topology 419 (MT) Routing in Intermediate System to Intermediate Systems (IS- 420 ISs)", RFC 5120, February 2008. 422 [RFC5496] I. Wijnands, A. Boers, E. Rosen, "The Reverse Path 423 Forwarding (RPF) Vector TLV", RFC 5496, March 2009. 425 [HELLO] IANA, "PIM-Hello Options", 426 http://www.iana.org/assignments/pim-parameters/pim- 427 parameters.xhtml#pim-parameters-1 429 [ID.ietf-l3vpn-2547bis-mcast] E. Rosen,R Aggarwal, "Multicast in 430 MPLS/BGP IP VPNs", draft-ietf-l3vpn-2547bis-mcast-10, January 2010