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: December 2013                                     June March 2014                                  September 9, 2013

                         Encapsulating MPLS in UDP

                         draft-ietf-mpls-in-udp-02

                         draft-ietf-mpls-in-udp-03

Abstract

   Existing technologies to encapsulate Multi-Protocol Label Switching
   (MPLS) over IP are not adequate for efficient load balancing of MPLS
   application traffic, such as MPLS-based Layer2 Virtual Private
   Network (L2VPN) or Layer3 Virtual Private Network (L3VPN) traffic
   across IP networks.

   This document specifies an additional IP-based encapsulation technology, for
   MPLS, referred to as MPLS-in-User MPLS-in-UDP (User Datagram
   Protocol (UDP), Protocol), which can facilitate is
   applicable in some circumstances. This document only describes the load balancing of MPLS
   application traffic across IP networks.
   MPLS-in-UDP encapsulation.

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 December March 9, 2013. 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.

Conventions used in this document

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

Table of Contents

   1. Introduction ................................................ 3
      1.1. Existing Technologies .................................. Encapsulations ................................ 3
      1.2. Motivations for MPLS-in-UDP Encapsulation .............. 4
   2. Terminology ................................................. 4
   3. Encapsulation in UDP ........................................ UDP......................................... 4
   4. Processing Procedures ....................................... 5
   5. Applicability ............................................... Congestion Considerations ................................... 6
   6. Security Considerations ..................................... 6
   7. IANA Considerations ......................................... 6
   8. Contributors ................................................ 7
   9. Acknowledgements ............................................ 6
   9. 7
   10. References .................................................. ................................................. 7
      9.1.
      10.1. Normative References ................................... .................................. 7
      9.2.
      10.2. Informative References ................................. 7 ................................ 8
   Authors' Addresses ............................................. 8

1. Introduction

   To fully utilize

   This document specifies an additional IP-based encapsulation for
   MPLS, referred to as MPLS-in-UDP (User Datagram Protocol). It also
   describes the bandwidth available in IP networks and/or
   facilitate recovery from a link or node failure, load balancing applicability of
   traffic over Equal Cost Multi-Path (ECMP) and/or Link Aggregation
   Group (LAG) across IP networks is widely used. In effect, most
   existing core routers this encapsulation in IP networks are already capable presence of
   distributing IP traffic flows over ECMP paths and/or LAG based
   other IP-based encapsulations 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
   hash of capability to decapsulate MPLS-in-UDP by 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, remote
   LSRs. This specification defines only the data plane encapsulation
   and protocol).

   In practice, there are some scenarios for Multi-Protocol Label
   Switching (MPLS) applications (e.g., MPLS-based Layer2 Virtual
   Private Network (L2VPN) or Layer3 Virtual Private Network (L3VPN))
   where does not concern itself with how the MPLS application traffic needs knowledge to use this
   encapsulation is conveyed.

   An applicability statement will compare situations in which using
   the MPLS-in-UDP encapsulation might be transported through
   IP-based tunnels, rather than MPLS tunnels. For example, MPLS-based
   L2VPN or L3VPN technologies may be used advantageous over other IP-
   based encapsulations for interconnecting
   geographically dispersed enterprise data centers or branch offices
   across IP Wide Area Networks (WAN) where enterprise own router
   devices are deployed as L2VPN or L3VPN Provider Edge (PE) routers. In MPLS. One of the key considerations in
   this case, respect is how to achieve efficient load balancing load-balance of the MPLS application traffic
   across IP networks is very desirable.
   over Equal Cost Multi-Path (ECMP) and/or Link Aggregation Group
   (LAG).

1.1. Existing Technologies

   With existing Encapsulations

   Currently, there are a number of IP-based encapsulation methods encapsulations for MPLS applications,
   such as MPLS-in-IP and MPLS-in-Generic MPLS.
   These include MPLS-in-IP, MPLS-in- GRE (Generic Routing Encapsulation (GRE)
   [RFC4023] or even MPLS-in-Layer
   Encapsulation) [RFC4023], and MPLS-in-L2TPv3 (Layer Two Tunneling
   Protocol - Version 3
   (L2TPv3)[RFC4817], distinct customer traffic flows between a given PE
   router pair would be encapsulated with the same IP-based tunnel
   headers prior to traversing the core of the IP WAN. Since the
   encapsulated traffic is neither TCP nor UDP traffic, for many
   existing core routers which could only perform hash calculation on
   fields in 3)[RFC4817]. In all these methods, the IP headers of those tunnels (i.e., source IP address,
   destination IP address), it would
   addresses can be hard varied to achieve a fine-grained
   load balancing of load-balancing.

   All these traffic flows across the network core due to
   the lack of adequate entropy information.

   [RFC5640] describes a method IP-based encapsulations for improving the load balancing
   efficiency in a network carrying Softwire Mesh service over L2TPv3 MPLS are specified for both
   IPv4 and GRE encapsulation. However, this method requires core routers to
   be capable of performing hash calculation on IPv6. In the "load-balancing"
   field contained in case of IPv6-based encapsulations, the tunnel encapsulation headers (i.e., IPv6
   Flow Label can be used for ECMP and LAGs [RFC6438].

   For MPLS-in-GRE as well as MPLS-in-L2TPv3, protocol fields (the GRE
   Key and the L2TPv3 Session ID field in the L2TPv3 header or respectively) can be used as the Key field
   load-balancing key. This method is described in the GRE
   header), which means a non-trivial change [RFC5640]. For this,
   however, core routers need to understand these fields in the date plane
   context of many
   existing core routers. being used as load-balancing keys.

   In terms of MPLS-based encapsulations, load-balancing is achieved
   with the introduction of the Entropy Label [RFC6790].

1.2. Motivations for MPLS-in-UDP Encapsulation

   On basis of the fact that most

   Currently, many existing core routers (i.e., P routers in the context of MPLS-based L2VPN or L3VPN) IP networks are already capable
   of
   balancing distributing IP traffic flows "microflows" [RFC2474] over the IP networks ECMP paths
   and/or LAG based on the hash of the five-tuple of UDP packets, it would be advantageous to use MPLS-
   in-UDP encapsulation instead 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).

   The motivation of MPLS-in-GRE or MPLS-in-L2TPv3 in the
   environments where the load balancing MPLS-in-UDP is to leverage this existing
   capability to provide load-balancing of MPLS application traffic
   across over IP networks is much desired but the load balancing mechanisms
   defined
   networks.

2. Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in [RFC5640] have not yet been widely supported by most
   existing core routers. In
   this way, the default load balancing
   capability of most existing core routers as mentioned above can be
   utilized directly without requiring any change document are to them.

2. Terminology

   This memo makes use of the terms defined be interpreted as described in [RFC4364] and [RFC4664]. RFC-2119
   [RFC2119].

3. Encapsulation in UDP

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

   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 an a 16-bit entropy value that is
                generated by the ingress PE router. For example, the
                entropy value can be generated by performing hash
                calculation on certain fields in the customer packets
                (e.g., the five tuple of UDP/TCP packets).

            Destination Port of UDP

                This field is set to a value (TBD) indicating that the
                UDP tunnel payload is a MPLS packet. As for whether the
                top label in the MPLS label stack is downstream-assigned 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.

            UDP Length

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

            UDP Checksum

                The usage of this field is in accordance with the
                current UDP specification. To simplify the operation on
                egress PE routers, this field is RECOMMENDED to be set
                to zero in IPv4 UDP encapsulation case, and even also in
                IPv6 UDP encapsulation case if appropriate[RFC6935][RFC6936]. appropriate [RFC6935]
                [RFC6936].

            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
   an ingress PE router, the entropy value would be generated by the
   ingress PE router and then be filled in the Source Port field of
   the UDP header. As such, P routers, upon receiving these UDP
   encapsulated packets, could balance these packets based on the hash
   of the five-
   tuple five-tuple of UDP packets.

   Upon receiving these UDP encapsulated packets, egress PE routers
   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
   procedures
   "Common Procedures" defined in [RFC4023] which are applicable for
   MPLS-in-IP and MPLS-in-GRE encapsulation formats SHOULD be followed.

5. Applicability

   Besides Congestion Considerations

   MPLS can carry a number of different protocols as payloads. When an
   MPLS/UDP flow carries IP-based traffic, the MPLS-based L3VPN [RFC4364] and L2VPN [RFC4761, RFC4762]
   applications, MPLS-in-UDP encapsulation could apply aggregate traffic is
   assumed to other MPLS
   applications including but be TCP friendly due to the congestion control mechanisms
   used by the payload traffic. Packet loss will trigger the necessary
   reduction in offered load, and no additional congestion avoidance
   action is necessary. When an MPLS/UDP flow carries payload traffic
   that is not limited known to 6PE [RFC4798] be TCP friendly and PWE3
   services. the flow runs across an
   unprovisioned path that could potentially become congested, the
   application that uses the encapsulation specified in this document
   MUST employ additional mechanisms to ensure that the offered load
   is reduced appropriately during periods of congestion.

6. Security Considerations

   Just like MPLS-in-GRE and MPLS-in-IP encapsulation formats, other IP-based encapsulations of MPLS, the MPLS-
   in-UDP 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. In the case
   where any of the above security issues is concerned, the MPLS-in-UDP MPLS-in-
   UDP tunnels SHOULD be secured with IPsec in transport mode. In this
   way, the UDP header would not be visible to P routers anymore. As a
   result, the meaning of adopting MPLS-in-UDP encapsulation format as
   an alternative to MPLS-in-GRE and MPLS-in-IP encapsulation formats
   is lost. Hence, MPLS-in-UDP encapsulation format SHOULD be used
   only in the scenarios where all the security issues as mentioned
   above are not significant concerns. For example, in a data center environment,
   the whole network including P routers and PE routers are under the
   control of a single administrative entity and therefore there is no
   need to worry about the above security issues.

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 : 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, Weiguo Hao,
   Mark Szczesniak, Zhenxiao Liu and Xing Tong for their valuable
   comments and
   suggestions andsuggestions on this document. Thanks to Daniel King,
   Gregory Mirsky and Eric Osborne for their valuable reviews on this
   document.

9.

10. References

9.1.

10.1. Normative References

   [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
             Requirement Levels", BCP 14, RFC 2119, March 1997.

9.2. Informative References

   [RFC4364]

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

   [RFC3032] Rosen, E and Y. E., Tappan, D., Fedorkow, G., Rekhter, "BGP/MPLS IP Virtual Private
             Networks (VPNs)", RFC 4364, February 2006.

   [RFC4664] Andersson, L. Y.,
             Farinacci, D., Li, T., and Rosen, E. (Editors),"Framework for Layer
             2 Virtual Private Networks (L2VPNs)", A. Conta, "MPLS Label Stack
             Encoding", RFC 4664, Sept 2006. 3032, January 2001.

10.2. Informative References

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

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

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

   [RFC5332] Eckert, T., Rosen, E., Aggarwal, R., and Y. Rekhter, "MPLS
             Multicast Encapsulations", RFC 5332, August 2008.

   [RFC4798] J Declerq et al., "Connecting IPv6 Islands over IPv4 MPLS
             using IPv6 Provider Edge Routers (6PE)", RFC4798, February
             2007.

   [RFC4761] Kompella, K. and Y. Rekhter, "Virtual Private LAN Service
             (VPLS) Using BGP for Auto-Discovery and Signaling", RFC
             4761, January 2007.

   [RFC4762] Lasserre, M. and V. Kompella, "Virtual Private LAN Service
             (VPLS) Using Label Distribution Protocol (LDP) Signaling",
             RFC 4762, January 2007.

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

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

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

   [IP-in-UDP] Xu, etc, "Encapsulating IP

   [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 UDP", draft-xu-softwire-ip-
             in-udp-01 (work
             Tunnels", RFC 6438, November 2011.

   [RFC6790] Kompella, K., Drake, J., Amante, S., Henderickx, W., and
             L. Yong, "The Use of Entropy Labels in progress), February 2013. MPLS Forwarding",
             RFC 6790, November 2012.

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:
   Email: cpignata@cisco.com

   Yongbing Fan
   China Telecom
   Guangzhou, China.
   Phone: +86 20 38639121
   Email: fanyb@gsta.com
   Zhenbin Li
   Huawei Technologies,
   Beijing, China
   Phone: +86-10-60613676
   Email: lizhenbin@huawei.com