Skip to main content

Encapsulating MPLS in UDP
draft-ietf-mpls-in-udp-05

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft that was ultimately published as RFC 7510.
Authors Xiaohu Xu , Nischal Sheth , Lucy Yong , Carlos Pignataro , Fan Yongbing
Last updated 2014-03-07 (Latest revision 2014-01-24)
Replaces draft-xu-mpls-in-udp
RFC stream Internet Engineering Task Force (IETF)
Formats
Reviews
Additional resources Mailing list discussion
Stream WG state Submitted to IESG for Publication
Associated WG milestone
Jun 2015
++ Progress draft-ietf-mpls-in-udp to publication
Document shepherd Ross Callon
Shepherd write-up Show Last changed 2014-01-30
IESG IESG state Became RFC 7510 (Proposed Standard)
Consensus boilerplate Unknown
Telechat date (None)
Responsible AD Adrian Farrel
Send notices to mpls-chairs@tools.ietf.org, draft-ietf-mpls-in-udp@tools.ietf.org
IANA IANA review state Version Changed - Review Needed
draft-ietf-mpls-in-udp-05
Network working group                                           X.  Xu 
Internet Draft                                                  Huawei 
Category: Standard Track                                      N. Sheth 
                                                               Juniper          
                                                               L. Yong 
                                                                Huawei 
                                                          C. Pignataro 
                                                                 Cisco 
                                                                Y. Fan 
                                                         China Telecom   
                                                                               
Expires: July 2014                                   January 24, 2014 
                                                                                
                                      
                         Encapsulating MPLS in UDP  
                                      
                         draft-ietf-mpls-in-udp-05 

Abstract 

   This document specifies an IP-based encapsulation for MPLS, called 
   MPLS-in-UDP (User Datagram Protocol). Note that the MPLS-in-UDP 
   encapsulation technology MUST only be deployed within a service 
   provider network or networks of an adjacent set of co-operating 
   service providers where the congestion control is not a concern. 

Status of this Memo 

   This Internet-Draft is submitted in full conformance with the   
   provisions of BCP 78 and BCP 79.  

   Internet-Drafts are working documents of the Internet Engineering   
   Task Force (IETF).  Note that other groups may also distribute   
   working documents as Internet-Drafts.  The list of current Internet-   
   Drafts is at http://datatracker.ietf.org/drafts/current/. 

   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."  

   This Internet-Draft will expire on July 24, 2014. 

 
 
 

Xu, et al.              Expires July 24, 2014                 [Page 1] 


Internet-Draft          Encapsulating MPLS in UDP          January 2014 
 
Copyright Notice 
  
   Copyright (c) 2013 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 ................................................ 3 
      1.1. Existing Encapsulations ................................ 3 
      1.2. Motivations for MPLS-in-UDP Encapsulation .............. 4 
      1.3. Application Statements ................................. 4 
   2. Terminology ................................................. 4 
   3. Encapsulation in UDP ........................................ 4 
   4. Processing Procedures ....................................... 6 
   5. Congestion Considerations ................................... 7 
   6. Security Considerations ..................................... 7 
   7. IANA Considerations ......................................... 8 
   8. Contributors ................................................ 9 
   9. Acknowledgements ............................................ 9 
   10. References ................................................. 9 
      10.1. Normative References .................................. 9 
      10.2. Informative References ............................... 10 
   Authors' Addresses ............................................ 11 

 
 

Xu, et al.              Expires July 24, 2014                 [Page 2] 


Internet-Draft          Encapsulating MPLS in UDP          January 2014 
 
    
1. Introduction 

   This document specifies an IP-based encapsulation for MPLS, i.e. 
   MPLS-in-UDP (User Datagram Protocol), which is applicable in some 
   circumstances where IP-based encapsulation for MPLS is required and 
   further fine-grained load balancing of MPLS packets over IP 
   networks over Equal Cost Multi-Path (ECMP) and/or Link Aggregation 
   Groups (LAG) is required as well. There are already IP-based 
   encapsulations for MPLS that allow for fine-grained load balancing 
   by using some special field in the encapsulation header as an 
   entropy field. However, MPLS-in-UDP can be advantageous since some 
   networks have used the UDP port number fields as a basis for load-
   balancing solutions for some time. This is similar to why LISP [RFC 
   6830] uses UDP encapsulation. 

   Like other IP-based encapsulation methods for MPLS, this 
   encapsulation allows for two Label Switching Routers (LSR) to be 
   adjacent on a Label Switched Path (LSP), while separated by an IP 
   network. In order to support this encapsulation, each LSR needs to 
   know the capability to decapsulate MPLS-in-UDP by the remote LSRs. 
   This specification defines only the data plane encapsulation and 
   does not concern itself with how the knowledge to use this 
   encapsulation is conveyed. Specifically, this capability can be 
   either manually configured on each LSR or be dynamically advertised 
   in manners that are outside the scope of this document. 

   Similarly, the MPLS-in-UDP encapsulation format defined in this 
   document by itself cannot ensure the integrity and privacy of data 
   packets being transported through the MPLS-in-UDP tunnels and 
   cannot enable the tunnel decapsulators to authenticate the tunnel 
   encapsulator. Therefore, in the case where any of the above 
   security issues is concerned, the MPLS-in-UDP SHOULD be secured 
   with IPsec [RFC4301] or DTLS [RFC6347]. For more details, please 
   see Section 6 of Security Considerations. 

1.1. Existing Encapsulations 

   Currently, there are several IP-based encapsulations for MPLS such 
   as MPLS-in-IP, MPLS-in-GRE (Generic Routing Encapsulation) 
   [RFC4023], and MPLS-in-L2TPv3 (Layer Two Tunneling Protocol - 
   Version 3) [RFC4817]. In all these methods, the IP addresses can be 
   varied to achieve load-balancing. 

   All these IP-based encapsulations for MPLS are specified for both 
   IPv4 and IPv6. In the case of IPv6-based encapsulations, the IPv6 

 
 
Xu, et al.              Expires July 24, 2014                 [Page 3] 


Internet-Draft          Encapsulating MPLS in UDP          January 2014 
 
   Flow Label can be used for ECMP and LAGs [RFC6438]. However, there 
   is no such entropy field in the IPv4 header. 

   For MPLS-in-GRE as well as MPLS-in-L2TPv3, protocol fields (the GRE 
   Key and the L2TPv3 Session ID respectively) can be used as the 
   load-balancing key as described in [RFC5640]. For this, 
   intermediate routers need to understand these fields in the context 
   of being used as load-balancing keys.  

1.2. Motivations for MPLS-in-UDP Encapsulation 

   Currently, most existing routers in IP networks are already capable 
   of distributing IP traffic "microflows" [RFC2474] over ECMPs and/or 
   LAG based on the hash of the five-tuple of User Datagram Protocol 
   (UDP)[RFC768] and Transmission Control Protocol (TCP) packets (i.e., 
   source IP address, destination IP address, source port, destination 
   port, and protocol). By encapsulating the MPLS packets into an UDP 
   tunnel and using the source port of the UDP header as an entropy 
   field, the existing load-balancing capability as mentioned above 
   can be leveraged to provide fine-grained load-balancing of MPLS 
   traffic over IP networks. 

1.3. Application Statements 

   The MPLS-in-UDP encapsulation technology MUST only be deployed 
   within a Service Provider (SP) network or networks of an adjacent 
   set of co-operating SPs where the congestion control is not a 
   concern, rather than over the Internet where the congestion control 
   is a must. Furthermore, packet filters should be added so as to 
   prevent MPLS-in-UDP packets from escaping from the service provider 
   networks due to misconfiguation or packet errors. 

2. Terminology 

   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 RFC-2119 
   [RFC2119]. 

3. Encapsulation in UDP 

   MPLS-in-UDP encapsulation format is shown as follows: 

    

    

 
 
Xu, et al.              Expires July 24, 2014                 [Page 4] 


Internet-Draft          Encapsulating MPLS in UDP          January 2014 
 
   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  
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |    Source Port = Entropy      |       Dest Port = MPLS        | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |           UDP Length          |        UDP Checksum           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                                                               | 
   ~                       MPLS Label Stack                        ~ 
   |                                                               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+            
   |                                                               | 
   ~                         Message Body                          ~ 
   |                                                               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 

            Source Port of UDP 

                This field contains a 16-bit entropy value that is 
                generated by the encapsulator to uniquely identify a 
                flow. What constitutes a flow is locally determined by 
                the encapsulator and therefore is outside the scope of 
                this document. What algorithm is actually used by the 
                encapsulator to generate an entropy value is outside 
                the scope of this document as well. In the case where 
                the tunnel does not need entropy, this field of all 
                packets belonging to a given flow SHOULD be set to a 
                randomly selected constant value so as to avoid packet 
                reordering.                 

            Destination Port of UDP 

                This field is set to a value (TBD1) allocated by IANA 
                to indicate that the UDP tunnel payload is an MPLS 
                packet.  

            UDP Length 

                The usage of this field is in accordance with the 
                current UDP specification [RFC768]. 

            UDP Checksum  

                The usage of this field is in accordance with the 
                current UDP specification [RFC768]. In the IPv4 UDP 
                encapsulation case, this field is RECOMMENDED to be set 
                to zero. In the IPv6 UDP encapsulation case, this field 

 
 
Xu, et al.              Expires July 24, 2014                 [Page 5] 


Internet-Draft          Encapsulating MPLS in UDP          January 2014 
 
                SHOULD NOT be set to zero. If the UDP checksum needs to 
                be disabled for performance or implementation reasons, 
                the considerations described in [RFC6935] [RFC6936] 
                MUST be examined.  

            MPLS Label Stack 

                This field contains an MPLS Label Stack as defined in            
                [RFC3032]. 

            Message Body 

                This field contains one MPLS message body. 

4. Processing Procedures   

   This MPLS-in-UDP encapsulation causes MPLS packets to be forwarded 
   through "UDP tunnels". When performing MPLS-in-UDP encapsulation by 
   the encapsulator, the entropy value would be generated by the 
   encapsulator and then be filled in the Source Port field of the UDP 
   header. The Destination Port field is set to a value (TBD1) 
   allocated by IANA to indicate that the UDP tunnel payload is an 
   MPLS packet. As for whether the top label in the MPLS label stack 
   is downstream-assigned or upstream-assigned, it SHOULD be 
   determined based on the tunnel destination IP address. That is to 
   say, if the destination IP address is a multicast address, the top 
   label SHOULD be upstream-assigned, otherwise if the destination IP 
   address is a unicast address, it SHOULD be downstream-assigned.  

   As such, intermediate routers, upon receiving these UDP 
   encapsulated packets, could balance these packets based on the hash 
   of the five-tuple of UDP packets.  

   Upon receiving these UDP encapsulated packets, the decapsulator 
   would decapsulate them by removing the UDP headers and then process 
   them accordingly.  

   As for other common processing procedures associated with tunneling 
   encapsulation technologies including but not limited to Maximum 
   Transmission Unit (MTU) and preventing fragmentation and reassembly, 
   Time to Live (TTL) and differentiated services, the corresponding 
   "Common Procedures" defined in [RFC4023] which are applicable for 
   MPLS-in-IP and MPLS-in-GRE encapsulation formats SHOULD be followed.  

 
 
Xu, et al.              Expires July 24, 2014                 [Page 6] 


Internet-Draft          Encapsulating MPLS in UDP          January 2014 
 
5. Congestion Considerations 

   Since the MPLS-in-UDP encapsulation causes MPLS packets to be 
   forwarded through "UDP tunnels", the congestion control guidelines 
   for UDP tunnels as defined in Section 3.1.3 of [RFC5405] SHOULD be 
   followed. Specifically, as stated in Section 3.1.3 of [RFC5405], 
   "some bulk transfer applications may choose not to implement any 
   congestion control mechanism and instead rely on transmitting 
   across reserved path capacity. This might be an acceptable choice 
   for a subset of restricted networking environments, but is by no 
   means a safe practice for operation in the Internet."Given the 
   fact that the MPLS-in-GRE and MPLS-in-IP [RFC4023] encapsulation 
   technologies have been successfully deployed within a SP network or 
   networks of an adjacent set of co-operating SPs which is a 
   restricted network environment without any congestion control 
   mechanism and the fact that the current MPLS technology couldn't 
   provide congestion control without major changes, the MPLS-in-UDP 
   encapsulation MUST only be deployed within a SP network or networks 
   of an adjacent set of co-operating SPs as well.  

6. Security Considerations 

   The security problems faced with the MPLS-in-UDP tunnel are exactly 
   the same as those faced with MPLS-in-IP and MPLS-in-GRE tunnels 
   [RFC4023]. In other words,, the MPLS-in-UDP tunnel as defined in 
   this document by itself cannot ensure the integrity and privacy of 
   data packets being transported through the MPLS-in-UDP tunnel and 
   cannot enable the tunnel decapsulator to authenticate the tunnel 
   encapsulator. In the case where any of the above security issues is 
   concerned, the MPLS-in-UDP tunnel SHOULD be secured with IPsec or 
   DTLS. IPsec was designed as a network security mechanism and 
   therefore it resides at the network layer. As such, if the tunnel 
   is secured with IPsec, the UDP header would not be visible to 
   intermediate routers anymore in either IPsec tunnel or transport 
   mode. As a result, the meaning of adopting the MPLS-in-UDP tunnel 
   as an alternative to the MPLS-in-GRE or MPLS-in-IP tunnel is lost. 
   By comparison, DTLS is better suited for application security and 
   can better preserve network and transport layer protocol 
   information. Specifically, if DTLS is used, the destination port of 
   the UDP header will be filled with a value (TBD2) indicating MPLS 
   with DTLS and the source port can still be used as an entropy field 
   for load-sharing purposes. 

   If the tunnel is not secured with IPsec or DTLS, some other method 
   should be used to ensure that packets are decapsulated and 
   forwarded by the tunnel tail only if those packets were 
   encapsulated by the tunnel head. If the tunnel lies entirely within 

 
 
Xu, et al.              Expires July 24, 2014                 [Page 7] 


Internet-Draft          Encapsulating MPLS in UDP          January 2014 
 
   a single administrative domain, address filtering at the boundaries 
   can be used to ensure that no packet with the IP source address of 
   a tunnel endpoint or with the IP destination address of a tunnel 
   endpoint can enter the domain from outside. However, when the 
   tunnel head and the tunnel tail are not in the same administrative 
   domain, this may become difficult, and filtering based on the 
   destination address can even become impossible if the packets must 
   traverse the public Internet. Sometimes only source address 
   filtering (but not destination address filtering) is done at the 
   boundaries of an administrative domain. If this is the case, the 
   filtering does not provide effective protection at all unless the 
   decapsulator of an MPLS-in-UDP validates the IP source address of 
   the packet. This document does not require that the decapsulator 
   validate the IP source address of the tunneled packets, but it 
   should be understood that failure to do so presupposes that there 
   is effective destination-based (or a combination of source-based 
   and destination-based) filtering at the boundaries. 

7. IANA Considerations 

   One UDP destination port number indicating MPLS needs to be 
   allocated by IANA. 

     Service Name : MPLS-in-UDP 

     Transport Protocol(s) : UDP 

     Assignee: IESG <iesg@ietf.org> 

     Contact : IETF Chair <chair@ietf.org>. 

     Description : Encapsulate MPLS packets in UDP tunnels. 

     Reference : This document -- draft-ietf-mpls-in-udp (MPLS WG 
   document).  

     Port Number : TBD1 -- To be assigned by IANA. 

   One UDP destination port number indicating MPLS with DTLS needs to
   be allocated by IANA. 

     Service Name : MPLS-in-UDP-with-DTLS 

     Transport Protocol(s) : UDP 

     Assignee: IESG <iesg@ietf.org> 

 
 
Xu, et al.              Expires July 24, 2014                 [Page 8] 


Internet-Draft          Encapsulating MPLS in UDP          January 2014 
 
     Contact : IETF Chair <chair@ietf.org>. 

     Description : Encapsulate MPLS packets in UDP tunnels with DTLS. 

     Reference : This document -- draft-ietf-mpls-in-udp (MPLS WG 
   document).  

     Port Number : TBD2 -- To be assigned by IANA. 

8. Contributors 

   Zhenbin Li 
   Huawei Technologies, 
   Beijing, China 
   Phone: +86-10-60613676 
   Email: lizhenbin@huawei.com 
    
9. Acknowledgements 

   Thanks to Shane Amante, Dino Farinacci, Keshava A K, Ivan Pepelnjak, 
   Eric Rosen, Andrew G. Malis, Kireeti Kompella, Marshall Eubanks, 
   George Swallow, Loa Andersson, Ross Callon, Vivek Kumar, Stewart 
   Bryant, Wen Zhang, Curtis Villamizar, Joel M. Halpern, Scott Brim, 
   Alia Atlas, Alexander Vainshtein, Joel Jaeggli, Edward Crabbe, Lars 
   Eggert, Joe Touch, Lloyd Wood, Weiguo Hao, Mark Szczesniak, 
   Zhenxiao Liu and Xing Tong for their valuable comments and 
   suggestions on this document. Thanks to Daniel King, Gregory Mirsky 
   and Eric Osborne for their valuable MPLS-RT reviews on this 
   document. Special thanks to Adrian Farrel for his conscientious AD 
   review and insightful suggestion of using DTLS for securing the 
   MPLS-in-UDP tunnels. Thanks to Charlie Kaufman for his SecDir 
   review of this document. Thanks to Nevil Brownlee for the OPSDir 
   review of this document. Thanks to Roni Even for the Gen-ART review 
   of this document. Thanks to Pearl Liang for the IANA review of this 
   documents. 
    
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. 

   [RFC768]  Postel, J., "User Datagram Protocol", STD 6, RFC 768,              
             August 1980. 

 
 
Xu, et al.              Expires July 24, 2014                 [Page 9] 


Internet-Draft          Encapsulating MPLS in UDP          January 2014 
 
   [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y.,             
             Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack             
             Encoding", RFC 3032, January 2001. 

   [RFC4023] Worster, T., Rekhter, Y., and E. Rosen, "Encapsulating 
             MPLS in IP or GRE", RFC4023, March 2005. 

   [RFC4301] Kent, S. and K. Seo, "Security Architecture for the               
             Internet Protocol", RFC 4301, December 2005. 

   [RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer            
             Security Version 1.2", RFC 6347, January 2012. 

10.2. Informative References 

   [RFC4817] M. Townsley, C. Pignataro, S. Wainner, T. Seely and J. 
             Young, "Encapsulation of MPLS over Layer 2 Tunneling 
             Protocol Version 3", RFC4817, March 2007. 

   [RFC5640] Filsfils, C., Mohapatra, P., and C. Pignataro, "Load-
             Balancing for Mesh Softwires", RFC 5640, August 2009. 

   [RFC6935] Eubanks, M., Chimento, P., and M. Westerlund, "UDP 
             Checksums for Tunneled Packets", RFC6935, Feburary 2013. 

   [RFC6936] Fairhurst, G. and M. Westerlund, "Applicability Statement 
             for the use of IPv6 UDP Datagrams with Zero Checksums", 
             RFC6936, Feburary 2013. 

   [RFC5405] Eggert, L. and G. Fairhurst, "Unicast UDP Usage 
             Guidelines for Application Designers", RFC 5405, November 
             2008. 

   [RFC2474] Nichols, K., Blake, S., Baker, F. and D. Black, 
             "Definition of the Differentiated Services Field (DS 
             Field) in the IPv4 and IPv6 Headers", RFC2474, December 
             1998. 

   [RFC6438] Carpenter, B. and S. Amante, "Using the IPv6 Flow Label            
             for Equal Cost Multipath Routing and Link Aggregation              
             in Tunnels", RFC 6438, November 2011. 

   [RFC6830] Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, "The           
             Locator/ID Separation Protocol (LISP)", RFC 6830,               
             January 2013. 

 
 
Xu, et al.              Expires July 24, 2014                [Page 10] 


Internet-Draft          Encapsulating MPLS in UDP          January 2014 
 
Authors' Addresses 

   Xiaohu Xu 
   Huawei Technologies 
   Beijing, China 
   Phone: +86-10-60610041 
   Email: xuxiaohu@huawei.com 
    
   Nischal Sheth 
   Juniper Networks 
   1194 N. Mathilda Ave 
   Sunnyvale, CA 94089 
   Email: nsheth@juniper.net 
    
   Lucy Yong 
   Huawei USA 
   5340 Legacy Dr. 
   Plano TX75025 
   Phone: 469-277-5837 
   Email: Lucy.yong@huawei.com 
    
   Carlos Pignataro 
   Cisco Systems 
   7200-12 Kit Creek Road 
   Research Triangle Park, NC 27709 
   USA 
   Email: cpignata@cisco.com 
    
   Yongbing Fan  
   China Telecom  
   Guangzhou, China.  
   Phone: +86 20 38639121  
   Email: fanyb@gsta.com