Network Working Group X. Xu Internet Draft L. Yong Category: Standard Track Huawei Y. Lee Comcast Y. Fan China Telecom R. Asati Cisco I. van Beijnum Institute IMDEA Networks Expires: January 2014 July 1, 2013 Encapsulating IP in UDP draft-xu-softwire-ip-in-udp-02 Abstract Existing Softwire encapsulation technologies are not adequate for efficient load balancing of Softwire service traffic across IP networks. This document specifies additional Softwire encapsulation technology, referred to as IP-in-User Datagram Protocol (UDP), which can facilitate the load balancing of Softwire service traffic across IP networks. 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." Xu, et al. Expires January 1, 2014 [Page 1] Internet-Draft Encapsulating IP in UDP July 2013 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. This Internet-Draft will expire on January 1, 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 2. Terminology ................................................. 3 3. Encapsulation in UDP ........................................ 3 4. Processing Procedures ....................................... 4 5. Encapsulation Considerations ................................ 5 6. Security Considerations ..................................... 5 7. IANA Considerations ......................................... 5 8. Acknowledgements ............................................ 5 9. References .................................................. 6 9.1. Normative References ................................... 6 9.2. Informative References ................................. 6 Authors' Addresses ............................................. 7 Xu, et al. Expires January 1, 2014 [Page 2] Internet-Draft Encapsulating IP in UDP July 2013 1. Introduction To fully utilize the bandwidth available in IP networks and/or facilitate recovery from a link or node failure, load balancing of traffic over Equal Cost Multi-Path (ECMP) and/or Link Aggregation Group (LAG) across IP networks is widely used. In practice, most existing core routers in IP networks support distributing IP traffic flows over ECMP paths 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). [RFC5640] describes a method for improving the load balancing efficiency in a network carrying Softwire Mesh service [RFC5565] over Layer Two Tunneling Protocol - Version 3 (L2TPv3) [RFC3931] and Generic Routing Encapsulation (GRE)[RFC2784] encapsulations. However, this method requires core routers to perform hash calculation on the "load-balancing" field contained in tunnel encapsulation headers (i.e., the Session ID field in L2TPv3 headers or the Key field in GRE headers), which is not widely supported by existing core routers. Since most existing core routers already support balancing IP traffic flows based on the hash of the five-tuple of UDP packets, by encapsulating Softwire service traffic into UDP tunnels, it will enable existing core routers to perform efficient load-balancing of the Softwire service traffic without requiring any change to them. Therefore, this specification defines an IP-in-UDP encapsulation method for Software service including both mesh and hub-spoke modes. IPv6 flow label has been proposed as an entropy field for load balancing in IPv6 network environment [RFC6437]. 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. 2. Terminology This memo makes use of the terms defined in [RFC5565]. 3. Encapsulation in UDP IP-in-UDP encapsulation format is shown as follows: Xu, et al. Expires January 1, 2014 [Page 3] Internet-Draft Encapsulating IP in UDP July 2013 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 = TBD | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | UDP Length | UDP Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ IP Packet ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Source Port of UDP This field contains an 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 received customer IP packets (e.g., the five tuple of UDP/TCP packets). Destination Port of UDP This field is set to a value (TBD) indicating the encapsulated payload in the UDP header is an IP packet. As for whether the encapsulated IP packet is IPv4 or IPv6, it would be determined according to the Version field in the IP header of the encapsulated IP 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. To simplify the operation on egress PE routers, this field is recommended to be set to zero in IPv4 UDP encapsulation case, and even in IPv6 UDP encapsulation case if appropriate [RFC6935][RFC6936]. 4. Processing Procedures This IP-in-UDP encapsulation causes E-IP [RFC5565] packets to be forwarded across an I-IP [RFC5565] transit core via "UDP tunnels". While performing IP-in-UDP encapsulation, an ingress AFBR (e.g. PE Xu, et al. Expires January 1, 2014 [Page 4] Internet-Draft Encapsulating IP in UDP July 2013 router) would generate an entropy value and encode it in the Source Port field of the UDP header. Transit routers, upon receiving these UDP encapsulated IP packets, could balance these packets based on their chosen hashing algorithm. Egress AFBRs receiving these UDP encapsulated IP packets MUST decapsulate these packets by removing the UDP header and then forward them accordingly (assuming that the Destination Port was set to the reserved value pertaining to IP). 5. Encapsulation Considerations Similar to all other Softwire tunneling technologies, IP-in-UDP encapsualtion introduces overheads and reduces the effective Maximum Transmision Unit (MTU) size. IP-in-UDP encapsulation may also impact Time-to-Live (TTL) or Hop Count (HC) and Differentiated Services (DSCP). Hence, IP-in-UDP MUST follow the corresponding procedures defined in [RFC2003]. If an ingress AFBR performs fragmentation on an E-IP packet before encapsulating, it MUST use the same source UDP port for all fragmented packets so as to ensures these fragmented packets are always forwarded on the same path. 6. Security Considerations The security consideration for IP-in-UDP encapsulation format is the same as that for the existing Softwire encapsulation methods for Softwire service such as IP-in-IP. 7. IANA Considerations A UDP destination port number which indicates the encapsulated payload following the UDP header is an IP packet needs to be assigned by IANA. 8. Acknowledgements Thanks to Vivek Kumar, Carlos Pignataro and Mark Townsley for their valuable comments on the initial idea of this document. Thanks to Andrew G. Malis for his valuable comments on this document. Xu, et al. Expires January 1, 2014 [Page 5] Internet-Draft Encapsulating IP in UDP July 2013 9. References 9.1. Normative References [RFC768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, August 1980. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. 9.2. Informative References [RFC2003] Perkins, C., "IP Encapsulation within IP", RFC 2003, October 1996. [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 2460, December 1998. [RFC4213] Nordmark, E. and R. Gilligan, "Basic Transition Mechanisms for IPv6 Hosts and Routers", RFC 4213, October 2005. [RFC5565] Wu, J., Cui, Y., Metz, C. and E. Rosen, "Softwire Mesh Framework", RFC 5565, June 2009. [RFC5640] Filsfils, C., Mohapatra, P., and C. Pignataro, "Load- Balancing for Mesh Softwires", RFC 5640, August 2009. [RFC2784] Farinacci, D., Li, T., Hanks, S., Meyer, D., and P. Traina, "Generic Routing Encapsulation (GRE)", RFC 2784, March 2000. [RFC3931] Lau, J., Townsley, M., and I. Goyret, "Layer Two Tunneling Protocol - Version 3 (L2TPv3)", RFC 3931, March 2005. [RFC6935] Eubanks, M., Chimento, P. and M. Westerlund, "IPv6 and UDP Checksums for Tunneled Packets", RFC 6935, April 2013. [RFC6936] Fairhurst, G. and M. Westerlund, "Applicability Statement for the Use of IPv6 UDP Datagrams with Zero Checksums", RFC 6936, April 2013. [MPLS-in-UDP] Xu, X., Sheth, N., Yong, L., Pignataro, C., Fan, Y and Z. Li, "Encapsulating MPLS in UDP", draft-ietf-mpls-in-udp- 02.txt (work in progress), June 2013. Xu, et al. Expires January 1, 2014 [Page 6] Internet-Draft Encapsulating IP in UDP July 2013 Authors' Addresses Xiaohu Xu Huawei Technologies, Beijing, China Phone: +86-10-60610041 Email: xuxiaohu@huawei.com Lucy Yong Huawei USA 5340 Legacy Dr. Plano TX75025 Phone: 469-277-5837 Email: Lucy.yong@huawei.com Yiu Lee Comcast One Comcast Center Philadelphia, PA 1903 USA Email: Yiu_Lee@Cable.Comcast.com Yongbing Fan China Telecom Guangzhou, China. Phone: +86 20 38639121 Email: fanyb@gsta.com Rajiv Asati Cisco Systems 7025-4 Kit Creek Rd PO Box 14987 Research Triangle Park, NC 27709 USA Email: rajiva@cisco.com Iljitsch van Beijnum Institute IMDEA Networks Avda. del Mar Mediterraneo, 22 Leganes, Madrid 28918 Spain Email: iljitsch@muada.com Xu, et al. Expires January 1, 2014 [Page 7]