Network Working Group X. Xu Internet Draft D. Zhang Category: Standard Track L.Xia Huawei Expires: December 2016 October 31, 2016 Encapsulating IPsec ESP in UDP for Load-balancing draft-xu-ipsecme-esp-in-udp-lb-00 Abstract IPsec Virtual Private Network (VPN) is widely used by enterprises to interconnect their geographical dispersed branch office locations across IP Wide Area Network (WAN). To fully utilize the bandwidth available in IP WAN, load balancing of traffic between different IPsec VPN sites over Equal Cost Multi-Path (ECMP) and/or Link Aggregation Group (LAG) within IP WAN is attractive to those enterprises deploying IPsec VPN solutions. This document defines a method to encapsulate IPsec Encapsulating Security Payload (ESP) packets inside UDP packets for improving load-balancing of IPsec tunneled traffic. In addition, this encapsulation is also applicable to some special multi-tenant data center network environment where the overlay tunnels need to be secured. 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), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. 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." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Xu, et al. Expires December 31, 2016 [Page 1] Internet-Draft Encapsulating ESP in UDP for Load-balancing October 2016 This Internet-Draft will expire on December 31, 2016. 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 2. Terminology ................................................. 4 3. Encapsulating ESP in UDP .................................... 4 4. Encapsulation and Decapsulation Procedures .................. 5 5. Congestion Considerations ................................... 5 6. Security Considerations ..................................... 5 7. IANA Considerations ......................................... 6 8. Acknowledgements ............................................ 6 9. References .................................................. 6 9.1. Normative References ................................... 6 9.2. Informative References ................................. 6 Authors' Addresses ............................................. 7 Xu, et al. Expires December 31, 2016 [Page 2] Internet-Draft Encapsulating ESP in UDP for Load-balancing October 2016 1. Introduction IPsec Virtual Private Network (VPN) is widely used by enterprises to interconnect their geographical dispersed branch office locations across IP Wide Area Network (WAN). To fully utilize the bandwidth available in IP WAN, load balancing of traffic between different IPsec VPN sites over Equal Cost Multi-Path (ECMP) and/or Link Aggregation Group (LAG) within IP WAN is much attractive to those enterprises that deploy IPsec VPN solutions. Since most existing core routers within IP WAN can already support balancing IP traffic flows based on the hash of the five-tuple of UDP packets, by encapsulating IPsec Encapsulating Security Payload (ESP) packets inside UDP packets with the UDP source port being used as an entropy field, it will enable existing core routers to perform efficient load-balancing of the IPsec tunneled traffic without requiring any change to them. Therefore, this specification defines a method of encapsulating IPsec ESP packets inside UDP packets for improving load-balancing of IPsec tunneled traffic. This is similar to why LISP [RFC6830], MPLS-in-UDP [RFC7510] and VXLAN [RFC7348] use UDP encapsulation. In addition, this encapsulation is also applicable to some special multi-tenant data center network environment where the overlay tunnels need to be secured while the UDP-based ECMP capability is desired as well (see [draft-ietf-nvo3-use-case]). Encapsulating ESP in UDP, as defined in this document, can be used in both IPv4 and IPv6 scenarios. IPv6 flow label has been proposed as an entropy field for load balancing in IPv6 network environment [RFC6438]. However, as stated in [RFC6936], the end-to-end use of flow labels for load balancing is a long-term solution and therefore the use of load balancing using the transport header fields would continue until any widespread deployment is finally achieved. As such, IP-in-UDP encapsulation would still have a practical application value in the IPv6 networks during this transition timeframe. Note that the difference between the ESP-in-UDP encapsulation as proposed in this document and the ESP-in-UDP encapsulation as described in [RFC3948] is that the former uses the UDP tunnel for load-balancing improvement purpose and therefore the source port is used as an entropy field while the latter uses the UDP tunnel for NAT traverse purpose and therefore the source port is set to a constant value (i.e., 4500). In addition, the document only discusses about the tunnel mode ESP encapsulation. Xu, et al. Expires December 31, 2016 [Page 3] Internet-Draft Encapsulating ESP in UDP for Load-balancing October 2016 2. Terminology This memo makes use of the terms defined in [RFC2401] and [RFC2406]. 3. Encapsulating ESP in UDP ESP-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 = ESP | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | UDP Length | UDP Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ ESP Packet ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 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. In case 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. To ensure that the source port number is always in the range 49152 to 65535 (Note that those ports less than 49152 are reserved by IANA to identify specific applications/protocols) which may be required in some cases, instead of calculating a 16-bit hash, the encapsulator SHOULD calculate a 14-bit hash and use those 14 bits as the least significant bits of the source port field while the most significant two bits SHOULD be set to binary 11. That still conveys 14 bits of entropy information which would be enough as well in practice. Destination Port of UDP Xu, et al. Expires December 31, 2016 [Page 4] Internet-Draft Encapsulating ESP in UDP for Load-balancing October 2016 This field is set to a value (TBD) indicating the encapsulated payload in the UDP header is an ESP packet. UDP Length The usage of this field is in accordance with the current UDP specification [RFC768]. UDP Checksum For IPv4 UDP encapsulation, this field is RECOMMENDED to be set to zero for performance or implementation reasons because the IPv4 header includes a checksum and use of the UDP checksum is optional with IPv4. For IPv6 UDP encapsulation, the IPv6 header does not include a checksum, so this field MUST contain a UDP checksum that MUST be used as specified in [RFC0768] and [RFC2460] unless one of the exceptions that allows use of UDP zero-checksum mode (as specified in [RFC6935]) applies. 4. Encapsulation and Decapsulation Procedures This ESP-in-UDP encapsulation causes ESP [RFC2406] packets to be forwarded across IP WAN via "UDP tunnels". When performing ESP-in- UDP encapsulation by an IPsec VPN gateway, ordinary ESP encapsulation procedure is performed and then a formatted UDP header is inserted between ESP header and IP header. The Source Port field of the UDP header is filled with an entropy value which is generated by the IPsec VPN gateway. Upon receiving these UDP encapsulated packets, remote IPsec VPN gateway MUST decapsulate these packets by removing the UDP header and then perform ordinary ESP decapsulation procedure consequently. 5. Congestion Considerations TBD 6. Security Considerations TBD. Xu, et al. Expires December 31, 2016 [Page 5] Internet-Draft Encapsulating ESP in UDP for Load-balancing October 2016 7. IANA Considerations A new UDP destination port number which indicates the encapsulated payload following the UDP header is an ESP packet needs to be assigned by IANA. 8. Acknowledgements Thanks to. 9. References 9.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 [RFC768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, August 1980. [RFC2401] Kent, S. and R. Atkinson, "Security Architecture for the Internet Protocol", RFC 2401, November 1998. [RFC2406] Kent, S. and R. Atkinson, "IP Encapsulating Security Payload (ESP)", RFC 2406, November 1998. [RFC6935] Eubanks, M., Chimento, P., and M. Westerlund, "UDP Checksums for Tunneled Packets", RFC6935, Feburary 2013. [RFC3948] Huttunen, A., Swander, B., Volpe, V., DiBurro, L., and M. Stenberg, "UDP Encapsulation of IPsec Packets", RFC 3948, January 2005. [RFC6936] Fairhurst, G. and M. Westerlund, "Applicability Statement for the use of IPv6 UDP Datagrams with Zero Checksums", RFC6936, Feburary 2013. [RFC7510] Xu, X., Sheth, N., Yong, L., Callon, R., and D. Black, "Encapsulating MPLS in UDP", RFC 7510, DOI 10.17487/RFC7510, April 2015, . Xu, et al. Expires December 31, 2016 [Page 6] Internet-Draft Encapsulating ESP in UDP for Load-balancing October 2016 Authors' Addresses Xiaohu Xu Huawei Technologies, Beijing, China Phone: +86-10-60610041 Email: xuxiaohu@huawei.com Dacheng Zhang Huawei Technologies, Beijing, China Phone: +86-13621142434 Email: dacheng.zhang@huawei.com Liang Xia Huawei Technologies, Email: frank.xialiang@huawei.com Xu, et al. Expires December 31, 2016 [Page 7]