idnits 2.17.00 (12 Aug 2021) /tmp/idnits39052/draft-ietf-mpls-ldp-mtu-extensions-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == The page length should not exceed 58 lines per page, but there was 11 longer pages, the longest (page 5) being 72 lines == It seems as if not all pages are separated by form feeds - found 0 form feeds but 11 pages Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (April 2004) is 6603 days in the past. Is this intentional? Checking references for intended status: Experimental ---------------------------------------------------------------------------- -- Looks like a reference, but probably isn't: 'OPTIONAL' on line 170 ** Obsolete normative reference: RFC 3036 (ref. '2') (Obsoleted by RFC 5036) Summary: 2 errors (**), 0 flaws (~~), 3 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Network Working Group B. Black 2 Internet Draft Layer8 Networks 3 Category: Experimental K. Kompella 4 Juniper Networks 5 Expires: October 2004 April 2004 7 Maximum Transmission Unit Signalling Extensions 8 for the Label Distribution Protocol 9 draft-ietf-mpls-ldp-mtu-extensions-03.txt 11 Status of this Memo 13 This document is an Internet-Draft and is in full conformance with 14 all provisions of Section 10 of RFC2026. 16 Internet-Drafts are working documents of the Internet Engineering 17 Task Force (IETF), its areas, and its working groups. Note that 18 other groups may also distribute working documents as Internet- 19 Drafts. 21 Internet-Drafts are draft documents valid for a maximum of six months 22 and may be updated, replaced, or obsoleted by other documents at any 23 time. It is inappropriate to use Internet-Drafts as reference 24 material or to cite them other than as "work in progress." 26 The list of current Internet-Drafts can be accessed at 27 http://www.ietf.org/ietf/1id-abstracts.txt 29 The list of Internet-Draft Shadow Directories can be accessed at 30 http://www.ietf.org/shadow.html. 32 Copyright Notice 34 Copyright (C) The Internet Society (2004). All Rights Reserved. 36 Abstract 38 Proper functioning of RFC 1191 path Maximum Transmission Unit (MTU) 39 discovery requires that IP routers have knowledge of the MTU for each 40 link to which they are connected. As currently specified, the Label 41 Distribution Protocol (LDP) does not have the ability to signal the 42 MTU for a Label Switched Path (LSP) to the ingress Label Switching 43 Router (LSR). In the absence of this functionality, the MTU for each 44 LSP must be statically configured by network operators or by 45 equivalent, off-line mechanisms. 47 This document specifies experimental extensions to LDP in support of 48 LSP MTU discovery. 50 Conventions used in this document 52 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 53 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 54 document are to be interpreted as described in RFC-2119 [1]. 56 Changes from last version 58 [Note to RFC Editor: please remove this section before publishing.] 60 - changed category to Experimental 61 - incorporated suggestions from WG chairs and IESG 63 1. Introduction 65 As currently specified in [2], the LDP protocol for MPLS does not 66 support signalling of the MTU for LSPs to ingress LSRs. This 67 functionality is essential to the proper functioning of RFC 1191 path 68 MTU detection [3]. Without knowledge of the MTU for an LSP, edge 69 LSRs may transmit packets along that LSP which are, according to [4], 70 too big. Such packets may be silently discarded by LSRs along the 71 LSP, effectively preventing communication between certain end hosts. 73 The solution proposed in this document enables automatic 74 determination of the MTU for an LSP with the addition of a Type- 75 Length-Value triplet (TLV) to carry MTU information for a Forwarding 76 Equivalence Class (FEC) between adjacent LSRs in LDP Label Mapping 77 messages. This information is sufficient for a set of LSRs along the 78 path followed by an LSP to discover either the exact MTU for that 79 LSP, or an approximation which is no worse than could be generated 80 with local information on the ingress LSR. 82 2. MTU Signalling 84 The signalling procedure described in this document employs the 85 addition of a single TLV to LDP Label Mapping messages and a simple 86 algorithm for LSP MTU calculation. 88 2.1. Definitions 90 Link MTU: the MTU of a given link. This size includes the IP header 91 and data (or other payload) and the label stack, but does not include 92 any lower-layer headers. A link may be an interface (such as 93 Ethernet or Packet-over-SONET), a tunnel (such as GRE or IPsec) or an 94 LSP. 96 Peer LSRs: for LSR A and FEC F, this is the set of LSRs that sent a 97 Label Mapping for FEC F to A. 99 Downstream LSRs: for LSR A and FEC F, this is the subset of A's peer 100 LSRs for FEC F to whom A will forward packets for the FEC. 101 Typically, this subset is determined via the routing table. 103 Hop MTU: the MTU of an LSP hop between an upstream LSR A and a 104 downstream LSR B. This size includes the IP header and data (or 105 other payload) and the part of the label stack that is considered 106 payload as far as this LSP goes. It does not include any lower-level 107 headers. (Note: if there are multiple links between A and B, the Hop 108 MTU is the minimum of the Hop MTU of those links used for 109 forwarding.) 110 LSP MTU: the MTU of an LSP from a given LSR to the egress(es), over 111 each valid (forwarding) path. This size includes the IP header and 112 data (or other payload) and any part of the label stack that was 113 received by the ingress LSR before it placed the packet into the LSP 114 (this part of the label stack is considered part of the payload for 115 this LSP). The size does not include any lower-level headers. 117 2.2. Example 119 Consider LSRs A-F interconnected as follows: 121 M P 122 _____ C ===== 123 / | \ 124 A ~~~~~ B ===== D ----- E ----- F 125 L N Q R 127 Say that the link MTU for link L is 9216, for links M, Q and R is 128 4470, and for N and P is 1500. 130 Consider a FEC X for which F is the egress, and say that all LSRs 131 advertise X to their neighbors. 133 Note that while LDP may be running on the C-D link, it is not used 134 for forwarding (e.g., because it has a high metric). In particular, 135 D is an LDP neighbor of C, but D is not one of C's downstream LSRs 136 for FEC X. 138 E's peers for FEC X are C, D and F. Say E chooses F as its 139 downstream LSR for X. E's Hop MTU for link R is 4466. If F 140 advertised an implicit null label to E, then E MAY set the Hop MTU 141 for R to 4470. 143 C's peers for FEC X are B, D and E. Say C chooses E as its 144 downstream LSR for X. Similarly, A chooses B, B chooses C and D 145 (equal cost multi-path), D chooses E and E chooses F (respectively) 146 as their downstream LSRs. 148 C's Hop MTU to E for FEC X is 1496. B's Hop MTU to C is 4466, and to 149 D is 1496. A's LSP MTU for FEC X is 1496. If A has another LSP for 150 FEC Y to F (learned via targetted LDP) that rides over the LSP for 151 FEC X, the MTU for that LSP would be 1492. 153 If B had a targetted LDP session to E, say over an RSVP-TE tunnel T, 154 and B received a Mapping for FEC X over the targetted LDP session, 155 then E would also be B's peer, and E may be chosen as a downstream 156 LSR for B. In that case, B's LSP MTU for FEC X would then be the 157 smaller of {(T's MTU - 4), E's LSP MTU for X}. 159 This memo describes how A determines its LSP MTU for FECs X and Y. 161 2.3. Signalling Procedure 163 The procedure for signalling the MTU is performed hop-by-hop by each 164 LSR L along an LSP for a given FEC F. The steps are as follows: 166 1. First, L computes the its LSP MTU for FEC F: 168 A. If L is the egress for F, L sets the LSP MTU for F to 65535. 170 B. [OPTIONAL] If L's only downstream LSR is the egress for F 171 (i.e., L is a penultimate hop for F), and L receives an 172 implicit null label as its Mapping for F, then L can set the 173 Hop MTU for its downstream link to the link MTU instead of 174 (link MTU - 4 octets). L's LSP MTU for F is the Hop MTU. 176 C. Otherwise (L is not the egress LSR), L computes the LSP MTU 177 for F as follows: 179 a) L determines its downstream LSRs for FEC F. 181 b) For each downstream LSR Z, L computes the minimum of the 182 Hop MTU to Z and the LSP MTU in the MTU TLV that Z 183 advertised to L. If Z did not include the MTU TLV in its 184 Label Mapping, then Z's LSP MTU is set to 65535. 186 c) L sets its LSP MTU to the minimum of the MTUs it computed 187 for its downstream LSRs. 189 2. For each LDP neighbor (direct or targetted) of L to which L 190 decides to send a Mapping for FEC F, L attaches an MTU TLV with 191 the LSP MTU that it computed for this FEC. L MAY (because of 192 policy or other reasons) advertise a smaller MTU than it has 193 computed, but L MUST NOT advertise a larger MTU. 195 3. When a new MTU is received for FEC F from a downstream LSR, or 196 the set of downstream LSRs for F changes, L returns to Step 1. 197 If the newly computed LSP MTU is unchanged, L SHOULD NOT 198 advertise new information to its neighbors. Otherwise, L 199 readvertises its Mappings for F to all its peers with an updated 200 MTU TLV. 202 This behavior is standard for attributes such as path vector and 203 hop count, and the same rules apply, as specified in [2]. 205 If the LSP MTU decreases, L SHOULD readvertise the new MTU 206 immediately; if the LSP MTU increases, L MAY hold down the 207 readvertisement. 209 2.4. MTU TLV 211 The MTU TLV encodes information on the maximum transmission unit for 212 an LSP, from the advertising LSR to the egress(es) over all valid 213 paths. 215 The encoding for the MTU TLV is: 217 0 1 2 3 218 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 219 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 220 |1|1| MTU TLV (0x0XXX) | Length | 221 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 222 | MTU | 223 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 225 MTU 227 This is a 16-bit unsigned integer that represents the MTU in octets 228 for an LSP or segment of an LSP. 230 Note that the U and F bits are set. An LSR that doesn't recognize 231 the MTU TLV MUST ignore it when it processes the Label Mapping 232 message, and forward the TLV to its peers. This may result in the 233 incorrect computation of the LSP MTU; however, silently forwarding 234 the MTU TLV preserves maximal amount of information about the LSP 235 MTU. 237 3. Example of Operation 239 Consider the example network in section 2.2. Table 1 describes, for 240 each LSR, the links to its downstream LSRs, the Hop MTU for the peer, 241 the LSP MTU received from the peer, and the LSR's computed LSP MTU. 243 Now consider the same network with the following changes: there is an 244 LSP T from B to E, and a targetted LDP session from B to E. B's peer 245 LSRs are A, C, D and E; B's downstream LSRs are D and E; to reach E, 246 B chooses to go over T. The LSP MTU for LSP T is 1496. This 247 information is depicted in Table 2. 249 LSR | Link | Hop MTU | Recvd MTU | LSP MTU 250 -------------------------------------------------- 251 F | - | 65535 | - | 65535 252 -------------------------------------------------- 253 E | R | 4466 | F: 65535 | 4466 254 -------------------------------------------------- 255 D | Q | 4466 | E: 4466 | 4466 256 -------------------------------------------------- 257 C | P | 1496 | E: 4466 | 1496 258 -------------------------------------------------- 259 B | M | 4466 | C: 1496 | 260 | N | 1496 | D: 4466 | 1496 261 -------------------------------------------------- 262 A | L | 9212 | B: 1496 | 1496 263 -------------------------------------------------- 264 Table 1 266 LSR | Link | Hop MTU | Recvd MTU | LSP MTU 267 -------------------------------------------------- 268 F | - | 65535 | - | 65535 269 -------------------------------------------------- 270 E | R | 4466 | F: 65535 | 4466 271 -------------------------------------------------- 272 D | Q | 4466 | E: 4466 | 4466 273 -------------------------------------------------- 274 C | P | 1496 | E: 4466 | 1496 275 -------------------------------------------------- 276 B | T | 1492 | E: 4466 | 277 | N | 1496 | D: 4466 | 1492 278 -------------------------------------------------- 279 A | L | 9212 | B: 1492 | 1492 280 -------------------------------------------------- 281 Table 2 283 4. Using the LSP MTU 285 An ingress LSR that forwards an IP packet into an LSP whose MTU it 286 knows MUST either fragment the IP packet to the LSP's MTU (if the 287 Don't Fragment bit is clear) or drop the packet and respond with an 288 ICMP Destination Unreachable message to the source of the packet, 289 with the Code indicating "fragmentation needed and DF set", and the 290 Next-Hop MTU set to the LSP MTU. In other words, the LSR behaves as 291 RFC 1191 says, except it treats the LSP as the next hop "network". 293 If the payload for the LSP is not an IP packet, the LSR MUST forward 294 the packet if it fits (size <= LSP MTU), and SHOULD drop it if it 295 doesn't fit. 297 5. Protocol Interaction 299 5.1. Interaction With LSRs Which Do Not Support MTU Signalling 301 Changes in MTU for sections of an LSP may cause intermediate LSRs to 302 generate unsolicited label Mapping messages to advertise the new MTU. 303 LSRs which do not support MTU signalling will accept these messages, 304 but will ignore them (see Section 2.4). 306 5.2. Interaction with CR-LDP and RSVP-TE 308 The MTU TLV can be used to discover the Path MTU of both LDP LSPs and 309 CR-LDP LSPs. This proposal is not impacted in the presence of LSPs 310 created using CR-LDP, as specified in [5]. 312 Note that LDP/CR-LDP LSPs may tunnel through other LSPs signalled 313 using LDP, CR-LDP or RSVP-TE [6]; the mechanism suggested here 314 applies in all these cases, essentially by treating the tunnel LSPs 315 as links. 317 Normative References 319 [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement 320 Levels", BCP 14, RFC 2119, March 1997 322 [2] Andersson, L., Doolan, P., Feldman, N., Fredette, A. and B. 323 Thomas, "LDP Specification", RFC 3036, January 2001 325 [3] Mogul, J. and S. Deering, "Path MTU Discovery", RFC 1191, 326 November 1990 328 [4] Rosen, E., Tappan, D., Federkow, G., Rekhter, Y., Farinacci, D., 329 Li, T. and A. Conta, "MPLS Label Stack Encoding", RFC 3032, 330 January 2001 332 [6] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V. and G. 333 Swallow, "RSVP-TE: Extensions to RSVP for LSP Tunnels", RFC 334 3209, December 2001 336 Informative References 338 [5] Jamoussi, B., Ed., "Constraint-Based LSP Setup Using LDP", RFC 339 3212, January 2002 341 Security Considerations 343 This mechanism does not introduce any new weaknesses in LDP. It is 344 possible to spoof TCP packets belonging to an LDP session to 345 manipulate the LSP MTU, but LDP has mechanisms (see Section 5 of [2]) 346 to thwart these types of attacks. 348 IANA Considerations 350 A new LDP TLV Type is defined in section 2.4. A Type has to be 351 allocated by IANA; a number from the range 0x0000 - 0x3DFF is 352 requested. 354 Acknowledgments 356 We would like to thank Andre Fredette for a number of detailed 357 comments on earlier versions of the signalling mechanism. Eric Gray, 358 Giles Heron and Mark Duffy have contributed numerous useful 359 suggestions. 361 Authors' Addresses 363 Benjamin Black 364 Layer8 Networks 366 EMail: ben@layer8.net 368 Kireeti Kompella 369 Juniper Networks 370 1194 N. Mathilda Ave 371 Sunnyvale, CA 94089 372 US 374 EMail: kireeti@juniper.net 376 IPR Notice 378 The IETF takes no position regarding the validity or scope of any 379 intellectual property or other rights that might be claimed to 380 pertain to the implementation or use of the technology described in 381 this document or the extent to which any license under such rights 382 might or might not be available; neither does it represent that it 383 has made any effort to identify any such rights. Information on the 384 IETF's procedures with respect to rights in standards-track and 385 standards-related documentation can be found in BCP-11. Copies of 386 claims of rights made available for publication and any assurances of 387 licenses to be made available, or the result of an attempt made to 388 obtain a general license or permission for the use of such 389 proprietary rights by implementors or users of this specification can 390 be obtained from the IETF Secretariat. 392 The IETF invites any interested party to bring to its attention any 393 copyrights, patents or patent applications, or other proprietary 394 rights which may cover technology that may be required to practice 395 this standard. Please address the information to the IETF Executive 396 Director. 398 Full Copyright Statement 400 Copyright (C) The Internet Society (2004). All Rights Reserved. 402 This document and translations of it may be copied and furnished to 403 others, and derivative works that comment on or otherwise explain it 404 or assist in its implementation may be prepared, copied, published 405 and distributed, in whole or in part, without restriction of any 406 kind, provided that the above copyright notice and this paragraph are 407 included on all such copies and derivative works. However, this 408 document itself may not be modified in any way, such as by removing 409 the copyright notice or references to the Internet Society or other 410 Internet organizations, except as needed for the purpose of 411 developing Internet standards in which case the procedures for 412 copyrights defined in the Internet Standards process must be 413 followed, or as required to translate it into languages other than 414 English. 416 The limited permissions granted above are perpetual and will not be 417 revoked by the Internet Society or its successors or assigns. 419 This document and the information contained herein is provided on an 420 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 421 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 422 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 423 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 424 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 426 Acknowledgement: 428 Funding for the RFC Editor function is currently provided by the 429 Internet Society.