idnits 2.17.1 draft-rosen-mpls-in-ip-or-gre-00.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: ---------------------------------------------------------------------------- == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an Introduction section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** There is 1 instance of too long lines in the document, the longest one being 1 character in excess of 72. ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 140: '...d in the GRE header MUST be set to the...' RFC 2119 keyword, line 143: '... fields MUST NOT be used....' RFC 2119 keyword, line 167: '... head MUST set the Don't Fragment fl...' RFC 2119 keyword, line 170: '... The tunnel head SHOULD perform Path MTU Discovery [RFC1191] over each...' RFC 2119 keyword, line 173: '... The tunnel head MUST maintain a Tunne...' (6 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- -- 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 (August 2002) is 7918 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) == Missing Reference: 'RFC791' is mentioned on line 108, but not defined == Missing Reference: 'RFC2460' is mentioned on line 108, but not defined ** Obsolete undefined reference: RFC 2460 (Obsoleted by RFC 8200) == Unused Reference: 'RFC7915' is defined on line 257, but no explicit reference was found in the text Summary: 7 errors (**), 0 flaws (~~), 4 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group Tom Worster 3 Internet Draft 4 Expiration Date: February 2003 5 Yakov Rekhter 6 Juniper Networks, Inc. 8 Eric C. Rosen, editor 9 Cisco Systems, Inc. 11 August 2002 13 Encapsulating MPLS in IP or GRE 15 draft-rosen-mpls-in-ip-or-gre-00.txt 17 Status of this Memo 19 This document is an Internet-Draft and is in full conformance with 20 all provisions of Section 10 of RFC2026. 22 Internet-Drafts are working documents of the Internet Engineering 23 Task Force (IETF), its areas, and its working groups. Note that other 24 groups may also distribute working documents as Internet-Drafts. 26 Internet-Drafts are draft documents valid for a maximum of six months 27 and may be updated, replaced, or obsoleted by other documents at any 28 time. It is inappropriate to use Internet-Drafts as reference 29 material or to cite them other than as "work in progress." 31 The list of current Internet-Drafts can be accessed at 32 http://www.ietf.org/ietf/1id-abstracts.txt. 34 The list of Internet-Draft Shadow Directories can be accessed at 35 http://www.ietf.org/shadow.html. 37 Abstract 39 In various applications of MPLS, label stacks with multiple entries 40 are used. In some cases, it is possible to replace the top label of 41 the stack with an IP-based encapsulation, thereby enabling the 42 application to run over networks which do not have MPLS enabled in 43 their core routers. This draft specifies two IP-based 44 encapsulations, MPLS-in-IP, and MPLS-in-GRE. Each of these is 45 applicable in some circumstances. 47 Table of Contents 49 1 Motivation ............................................. 2 50 2 Encapsulation in IP .................................... 3 51 3 Encapsulation in GRE ................................... 4 52 4 Common Procedures ...................................... 4 53 4.1 Fragmentation, Reassembly, and MTU ..................... 4 54 4.2 TTL .................................................... 5 55 4.3 EXP and DSCP fields .................................... 5 56 5 Applicability .......................................... 5 57 6 Security Considerations ................................ 6 58 7 Acknowledgments ........................................ 6 59 8 References ............................................. 6 60 9 Author Information ..................................... 7 62 1. Motivation 64 In many applications of MPLS, packets traversing an MPLS backbone 65 carry label stacks with more than one label. As described in 66 [RFC3031], section 3.15, each label represents a Label Switched Path 67 (LSP). For each such LSP, there is a Label Switching Router (LSR) 68 which is the "LSP Ingress", and an LSR which is the "LSP Egress". If 69 LSRs A and B are the Ingress and Egress, respectively, of the LSP 70 corresponding to a packet's top label, then A and B are adjacent LSRs 71 on the LSP corresponding to the packet's second label (i.e., the 72 label immediately beneath the top label) 74 The purpose (or one of the purposes) of the top label is to get the 75 packet delivered from A to B, so that B can further process the 76 packet based on the second label. In this sense, the top label 77 serves as an encapsulation header for the rest of the packet. In 78 some cases the top label can be replaced, without loss of 79 functionality, by other sorts of encapsulation headers. For example, 80 the top label could be replaced by an IP header or a GRE header. As 81 the encapsulated packet would still be an MPLS packet, the result is 82 an MPLS-in-IP or MPLS-in-GRE encapsulation. 84 With these encapsulations, it is possible for two LSRs that are 85 adjacent on an LSP to be separated by an IP network, even if that IP 86 network does not provide MPLS. 88 2. Encapsulation in IP 90 MPLS-in-IP messages have the following format: 92 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 93 | | 94 | IP Header | 95 | | 96 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 97 | | 98 | MPLS Label Stack | 99 | | 100 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 101 | | 102 | Message Body | 103 | | 104 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 106 IP Header 107 This field contains an IPv4 or an IPv6 datagram header 108 as defined in [RFC791] and [RFC2460] respectively. The 109 source and destination addresses are set to addresses 110 of the encapsulating and decapsulating LSRs respectively. 112 MPLS Label Stack 113 This field contains an MPLS Label Stack as defined in 114 [RFC3032]. 116 Message Body 117 This field contains one MPLS message body. 119 The Protocol Number field in an IPv4 header and the Next Header field 120 in an IPv6 are set as follows: 122 - X indicates an MPLS unicast packet, 124 - Y indicates an MPLS multicast packet. (The use of the MPLS-in-IP 125 encapsulation for MPLS multicast packets is for further study.) 127 Following the IP header is an MPLS packet, as specified in [RFC3032]. 128 This encapsulation causes MPLS packets to be sent through "IP 129 tunnels". When a packet is received by the tunnel's receive 130 endpoint, the receive endpoint decapsulates the MPLS packet by 131 removing the IP header. The packet is then processed as a received 132 MPLS packet whose "incoming label" [RFC3031] is the topmost packet of 133 the decapsulated packet. 135 3. Encapsulation in GRE 137 The MPLS-in-GRE encapsulation encapsulates an MPLS packet in GRE 138 [RFC2784]. The packet then consists of an IP header followed by a 139 GRE header followed by an MPLS label stack as specified in [RFC3032]. 140 The protocol type field in the GRE header MUST be set to the 141 Ethertype value for MPLS Unicast (0x8847) or Multicast (0x8848). The 142 optional GRE checksum, key [RFC2890] and sequence number [RFC2890] 143 fields MUST NOT be used. 145 This encapsulation causes MPLS packets to be sent through "GRE 146 tunnels". When a packet is received by the tunnel's receive endpoint, 147 the receive endpoint decapsulates the MPLS packet by removing the IP 148 header and the GRE header. The packet is then processed as a 149 received MPLS packet whose "incoming label" [RFC3031] is the topmost 150 packet of the decapsulated packet. 152 4. Common Procedures 154 Certain procedures are common to both the MPLS-in-IP and the MPLS- 155 in-GRE encapsulations. In the following, the encapsulator, whose 156 address appears in the IP source address field of the encapsulating 157 IP header, is known as the "tunnel head". The decapsulator, whose 158 address appears in the IP destination address field of the 159 decapsulating IP header, is known as the "tunnel tail". 161 4.1. Fragmentation, Reassembly, and MTU 163 If an MPLS-in-IP or MPLS-in-GRE packet were to get fragmented (due to 164 "ordinary" IP fragmentation), it would have to be be reassembled by 165 the tunnel tail before the contained MPLS packet be decapsulated. To 166 avoid the need for the tunnel tail to perform reassembly, the tunnel 167 head MUST set the Don't Fragment flag of the encapsulating IPv4 168 header. 170 The tunnel head SHOULD perform Path MTU Discovery [RFC1191] over each 171 MPLS-in-IP and MPLS-in-GRE tunnel. 173 The tunnel head MUST maintain a Tunnel MTU value for each MPLS-in-IP 174 or MPLS-in-GRE tunnel. This is the minimum of (a) an administratively 175 configured value, and, if known, (b) the discovered Path MTU value 176 minus the encapsulation overhead. 178 If the tunnel head receives, for encapsulation, an MPLS packet whose 179 size exceeds the Tunnel MTU, that packet MUST be discarded. 181 In some cases, the tunnel head receives, for encapsulation, an IP 182 packet, which it first encapsulates in MPLS and then encapsulates in 183 MPLS-in-IP or MPLS-in-GRE. If the source of the IP packet is 184 reachable from the tunnel head, and if the result of this 185 encapsulation would be a packet whose size exceeds the Tunnel MTU, 186 then the tunnel head SHOULD use the Tunnel MTU value for the purposes 187 of fragmentation and PMTU discovery outside the tunnel. 189 4.2. TTL 191 The tunnel head MAY place the TTL from the MPLS label stack into the 192 encapsulating IP header. The tunnel tail MAY place the TTL from the 193 encapsulating IP header into the MPLS header, but only if that does 194 not cause the TTL value in the MPLS header to become smaller. 196 Whether such modifications are made, and the details of how they are 197 made, will depend on the configuration of the tunnel tail and the 198 tunnel head. 200 4.3. EXP and DSCP fields 202 The tunnel head MAY consider the EXP field of the encapsulated MPLS 203 packet when setting the DSCP field of the encapsulating IP header. 204 The tunnel tail MAY modify the EXP field of the encapsulated MPLS 205 packet, based on consideration of the DSCP field of the encapsulating 206 IP header. 208 Whether such modifications are made, and the details of how they are 209 made, will depend on the configuration of the tunnel tail and the 210 tunnel head. 212 5. Applicability 214 The MPLS-in-IP encapsulation is the more efficient, and would 215 generally be regarded as preferable, other things being equal. There 216 are however some situations in which the MPLS-in-GRE encapsulation 217 may be used: 219 - Two routers are "adjacent" over a GRE tunnel that exists for some 220 reason that is outside the scope of this document, and those two 221 routers need to send MPLS packets over that adjacency. As all 222 packets sent over this adjacency must have a GRE encapsulation, 223 the MPLS-in-GRE encapsulation is more efficient than the 224 alternative, which would be an MPLS-in-IP encapsulation which is 225 then encapsulated in GRE. 227 - Implementation considerations may dictate the use of MPLS-in-GRE. 228 For example, some hardware device might only be able to handle 229 GRE encapsulations in its fastpath. 231 6. Security Considerations 233 MPLS-in-IP or MPLS-in-GRE tunnels may be secured using IPsec. If 234 they are not secured using IPsec, then some other method should be 235 used to ensure that packets are decapsulated and forwarded by the 236 tunnel tail only if those packets were encapsulated by the tunnel 237 head. This can be done by address filtering at the boundaries of an 238 administrative domain. When the tunnel head and the tunnel tail are 239 not in the same domain, this may become difficult, and it can even 240 become impossible if the packets must traverse the public Internet. 242 7. Acknowledgments 244 This draft is a combination of two previous drafts: 246 - draft-worster-mpls-in-ip, by Tom Worster, Paul Doolan, Yasuhiro 247 Katsube, Tom K. Johnson, Andrew G. Malis, and Rick Wilder 249 - draft-rekhter-mpls-over-gre, by Yakov Rekhter, Daniel Tappan, and 250 Eric Rosen 252 The current authors wish to thank all these authors for their 253 contribution. 255 8. References 257 [RFC7915] "Internet Protocol," J. Postel, Sep 1981 259 [RFC2460]"Internet Protocol, Version 6 (IPv6) Specification," S. 260 Deering and R. Hinden, RFC 2460,Dec 1998 262 [RFC1191] "Path MTU Discovery", J.C. Mogul, S.E. Deering, November 263 1990 265 [RFC2784] "Generic Routing Encapsulation (GRE)", D. Farinacci, T. Li, 266 S. Hanks, D. Meyer, P. Traina, March 2000 268 [RFC2890] "Key and Sequence Number Extensions to GRE", G. Dommety, 269 August 2000 271 [RFC3031] "Multiprotocol Label Switching Architecture", E. Rosen, A. 273 Viswanathan, R. Callon, January 2001 275 [RFC3032] "MPLS Label Stack Encoding", E. Rosen, D. Tappan, G. 276 Fedorkow, Y. Rekhter, D. Farinacci, T. Li, A. Conta. January 2001 278 9. Author Information 280 Tom Worster 281 Email: fsb@thefsb.org 283 Yakov Rekhter 284 Juniper Networks, Inc. 285 1194 N. Mathilda Ave. 286 Sunnyvale, CA 94089 287 Email: yakov@juniper.net 289 Eric Rosen 290 Cisco Systems, Inc. 291 250 Apollo Drive 292 Chelmsford, MA, 01824 293 e-mail: erosen@cisco.com