BANANA N. Leymann Internet Draft C. Heidemann Intended Category: Proposed Standard Deutsche Telekom AG M. Zhang B. Sarikaya Huawei M. Cullen Painless Security Expires: May 24, 2018 November 20, 2017 BANdwidth Aggregation for interNet Access (BANANA) The Data Plane of Bonding Tunnels draft-leymann-banana-data-encap-01.txt Abstract This memo specifies the encapsulation format for data packets of BANdwidth Aggregation for interNet Access (BANANA). Status of this Memo This Internet-Draft is submitted to IETF 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/1id-abstracts.html The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html Copyright and License Notice Copyright (c) 2017 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 Leymann, et al. Expires May 24, 2018 [Page 1] INTERNET-DRAFT BANANA Encapsulation November 20, 2017 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 . . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Acronyms and Terminology . . . . . . . . . . . . . . . . . . . 2 3. Data Encapsulation . . . . . . . . . . . . . . . . . . . . . . 3 3.1. The GRE Header . . . . . . . . . . . . . . . . . . . . . . 3 4. The Reordering Buffer . . . . . . . . . . . . . . . . . . . . 4 5. Security Considerations . . . . . . . . . . . . . . . . . . . 4 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 5 7.1. Normative References . . . . . . . . . . . . . . . . . . . 5 7.2. Informative References . . . . . . . . . . . . . . . . . . 5 Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 6 1. Introduction GRE tunnels are set up over heterogeneous connections between the local BANANA box and the remote BANANA box. These tunnels are bonded together to form a logic single connection for the subscriber. Each tunnel may be used to carry a user's IP packets as payload, which forms a typical IP-over-IP overlay. This document adopts the GRE header with Key and Sequence Number extensions specified by [RFC2890]. The Protocol Type of the GRE header is either 0x0800 (listed as "0x800" in [RFC2784]) or 0x86DD [RFC7676], which indicates that the inner packet is either an IPv4 packet or an IPv6 packet, respectively. The GRE Key field is set to a unique value for the bonding GRE tunnels between two peering BANANA boxes. The GRE Sequence Number field is used to maintain the sequence of packets transported in all these GRE tunnels. 2. Acronyms and Terminology GRE: Generic Routing Encapsulation [RFC2784] [RFC2890]. RTT: Round-Trip Time. Leymann, et al. Expires May 24, 2018 [Page 2] INTERNET-DRAFT BANANA Encapsulation November 20, 2017 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. Data Encapsulation Users' IP (inner) packets are encapsulated in GRE packets that are in turn carried in IP (outer) packets. The general structure of data packets of the GRE Tunnel Bonding Protocol is shown below. +--------------------------------+ | Media Header | +--------------------------------+ | Outer IP Header | +--------------------------------+ | GRE Header | +--------------------------------+ | Inner IP Packet | +--------------------------------+ 3.1. The GRE Header The GRE header was first standardized in [RFC2784]. [RFC2890] added the optional Key and Sequence Number fields. The Checksum and the Reserved1 fields are not used in this memo; therefore, the C bit is set to 0. The Key bit is set to 1 so that the Key field is present. The Key field is used as a 32-bit random number. It is generated by the remote BANANA box per bonding connection, and the local BANANA box is notified. The S bit is set to 1, and the Sequence Number field is present and used for in-order delivery (see Section 4 and [RFC2890]). The Protocol Type field in the GRE header MUST be set to 0x0800 for IPv4 or 0x86DD for IPv6. So, the GRE header used by data packets of BANANA has the following format: Leymann, et al. Expires May 24, 2018 [Page 3] INTERNET-DRAFT BANANA Encapsulation November 20, 2017 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0| |1|1| Reserved0 | Ver | Protocol Type 0x0800/86DD | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Key | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3: The GRE header for BANANA data packets 4. The Reordering Buffer The local or remote BANANA box generates sequence numbers to be carried by all incoming packets that need to be distributed into the tunnels. The receiver maintains a small reordering buffer and orders the data packets in this buffer according to the Sequence Number field [RFC2890] of their GRE header. Packets carried in GRE tunnels that are bonded to the same session (see Section 5.2 of [BANANA- signaling]) enter the same reordering buffer. Operators may configure the maximum allowed size (see MAX_PERFLOW_BUFFER in [RFC2890]) of the reordering buffer. They may also configure the maximum time (see OUTOFORDER_TIMER in [RFC2890]) that a packet can stay in the reordering buffer. The OUTOFORDER_TIMER must be configured carefully. Values larger than the difference of the normal Round-Trip Time (RTT) (e.g., 100 ms) of any two connections between the two BANANA boxes are not recommended. Implementation and deployment experiences have demonstrated that there is usually a large margin for the value of MAX_PERFLOW_BUFFER. Values larger than the multiplication of the sum of the line rate of the two connections and the value of OUTOFORDER_TIMER can be used. 5. Security Considerations As a security feature, the Key field of the GRE header of the data packets is generated as a 32-bit cleartext password. The local BANANA box and the remote BANANA box validate the Key value and the outer source IP address, and they discard any packets with invalid combinations. See also the Security Considerations section of [BANANA-signaling] and [RFC2890]. 6. IANA Considerations IANA need not assign anything for this memo. RFC editor: please Leymann, et al. Expires May 24, 2018 [Page 4] INTERNET-DRAFT BANANA Encapsulation November 20, 2017 remove this section before publication. 7. References 7.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC2697] Heinanen, J. and R. Guerin, "A Single Rate Three Color Marker", RFC 2697, DOI 10.17487/RFC2697, September 1999, . [RFC2784] Farinacci, D., Li, T., Hanks, S., Meyer, D., and P. Traina, "Generic Routing Encapsulation (GRE)", RFC 2784, DOI 10.17487/RFC2784, March 2000, . [RFC2890] Dommety, G., "Key and Sequence Number Extensions to GRE", RFC 2890, DOI 10.17487/RFC2890, September 2000, . [BANANA-signaling] N. Leymann, C. Heidemann, et al, "BANdwidth Aggregation for interNet Access (BANANA) The Control Protocol of Bonding Tunnels", draft-leymann-banana-signaling, work in progress. 7.2. Informative References [RFC7676] Pignataro, C., Bonica, R., and S. Krishnan, "IPv6 Support for Generic Routing Encapsulation (GRE)", RFC 7676, DOI 10.17487/RFC7676, October 2015, . Contributors Li Xue Individual Email: xueli_jas@163.com Zhongwen Jiang Huawei Technologies Email: jiangzhongwen@huawei.com Leymann, et al. Expires May 24, 2018 [Page 5] INTERNET-DRAFT BANANA Encapsulation November 20, 2017 Authors' Addresses Nicolai Leymann Deutsche Telekom AG Winterfeldtstrasse 21-27 Berlin 10781 Germany Phone: +49-170-2275345 Email: n.leymann@telekom.de Cornelius Heidemann Deutsche Telekom AG Heinrich-Hertz-Strasse 3-7 Darmstadt 64295 Germany Phone: +49-6151-5812721 Email: heidemannc@telekom.de Mingui Zhang Huawei Technologies No. 156 Beiqing Rd. Haidian District Beijing 100095 China Email: zhangmingui@huawei.com Behcet Sarikaya Huawei USA 5340 Legacy Dr. Building 3 Plano, TX 75024 United States of America Email: sarikaya@ieee.org Margaret Cullen Painless Security 14 Summer St. Suite 202 Malden, MA 02148 United States of America Email: margaret@painless-security.com Leymann, et al. Expires May 24, 2018 [Page 6]