Network Working Group                                        C. Filsfils
Request for Comments: 5640                                  P. Mohapatra
Category: Standards Track                                   C. Pignataro
                                                           Cisco Systems
                                                             August 2009
        
Network Working Group                                        C. Filsfils
Request for Comments: 5640                                  P. Mohapatra
Category: Standards Track                                   C. Pignataro
                                                           Cisco Systems
                                                             August 2009
        

Load-Balancing for Mesh Softwires

网状软电线的负载平衡

Abstract

摘要

Payloads transported over a Softwire mesh service (as defined by BGP Encapsulation Subsequent Address Family Identifier (SAFI) information exchange) often carry a number of identifiable, distinct flows. It can, in some circumstances, be desirable to distribute these flows over the equal cost multiple paths (ECMPs) that exist in the packet switched network. Currently, the payload of a packet entering the Softwire can only be interpreted by the ingress and egress routers. Thus, the load-balancing decision of a core router is only based on the encapsulating header, presenting much less entropy than available in the payload or the encapsulated header since the Softwire encapsulation acts in a tunneling fashion. This document describes a method for achieving comparable load-balancing efficiency in a network carrying Softwire mesh service over Layer Two Tunneling Protocol - Version 3 (L2TPv3) over IP or Generic Routing Encapsulation (GRE) encapsulation to what would be achieved without such encapsulation.

通过Softwire mesh服务(如BGP封装后续地址族标识符(SAFI)信息交换所定义)传输的有效载荷通常携带大量可识别、不同的流。在某些情况下,希望将这些流分布在分组交换网络中存在的等成本多路径(ECMPs)上。目前,进入软线的分组的有效载荷只能由入口和出口路由器来解释。因此,核心路由器的负载平衡决策仅基于封装报头,由于软线封装以隧道方式起作用,因此呈现的熵比有效载荷或封装报头中可用的熵小得多。本文档描述了一种在通过第二层隧道协议(IP上的版本3(L2TPv3))或通用路由封装(GRE)封装承载软线网状服务的网络中实现可比负载平衡效率的方法,该封装与没有这种封装的情况下可以实现的效果相同。

Status of This Memo

关于下段备忘

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

本文件规定了互联网社区的互联网标准跟踪协议,并要求进行讨论和提出改进建议。有关本协议的标准化状态和状态,请参考当前版本的“互联网官方协议标准”(STD 1)。本备忘录的分发不受限制。

Copyright Notice

版权公告

Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved.

版权所有(c)2009 IETF信托基金和确定为文件作者的人员。版权所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents in effect on the date of publication of this document (http://trustee.ietf.org/license-info). Please review these documents carefully, as they describe your rights and restrictions with respect to this document.

本文件受BCP 78和IETF信托在本文件出版之日生效的与IETF文件有关的法律规定的约束(http://trustee.ietf.org/license-info). 请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。

Table of Contents

目录

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 2
     1.1.  Requirements Language . . . . . . . . . . . . . . . . . . . 2
   2.  Load-Balancing Block sub-TLV  . . . . . . . . . . . . . . . . . 2
     2.1.  Applicability to Tunnel Types . . . . . . . . . . . . . . . 3
     2.2.  Encapsulation Considerations  . . . . . . . . . . . . . . . 4
   3.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 4
   4.  Security Considerations . . . . . . . . . . . . . . . . . . . . 4
   5.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 4
   6.  Normative References  . . . . . . . . . . . . . . . . . . . . . 5
        
   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 2
     1.1.  Requirements Language . . . . . . . . . . . . . . . . . . . 2
   2.  Load-Balancing Block sub-TLV  . . . . . . . . . . . . . . . . . 2
     2.1.  Applicability to Tunnel Types . . . . . . . . . . . . . . . 3
     2.2.  Encapsulation Considerations  . . . . . . . . . . . . . . . 4
   3.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 4
   4.  Security Considerations . . . . . . . . . . . . . . . . . . . . 4
   5.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 4
   6.  Normative References  . . . . . . . . . . . . . . . . . . . . . 5
        
1. Introduction
1. 介绍

Consider the case of a router R1 that encapsulates a packet P into a Softwire bound to router R3. R2 is a router on the shortest path from R1 to R3. R2's shortest path to R3 involves equal cost multiple paths (ECMPs). The goal is for R2 to be able to choose which path to use on the basis of the full entropy of packet P.

考虑路由器R1的情况,该路由器将包P封装到绑定到路由器R3的软线中。R2是从R1到R3的最短路径上的路由器。R2到R3的最短路径包括等成本多路径(ECMP)。目标是R2能够根据数据包P的全熵选择使用哪条路径。

This is achieved by carrying in the encapsulation header a signature of the inner header, hence enhancing the entropy of the flows as seen by the core routers. The signature is carried as part of one of the fields of the encapsulation header. To aid with better description in the document, we define the generic term "load-balancing field" to mean such a value that is specific to an encapsulation type. For example, for L2TPv3-over-IP [RFC3931] encapsulation, the load-balancing field is the Session Identifier (Session ID). For GRE [RFC2784] encapsulation, the Key field [RFC2890], if present, represents the load-balancing field. This mechanism assumes that core routers base their load-balancing decisions on a flow definition that includes the load-balancing field. This is an obvious and generic functionality as, for example, for L2TPv3-over-IP tunnels, the Session ID is at the same well-known constant offset as the TCP/ UDP ports in the encapsulating header.

这是通过在封装报头中携带内部报头的签名来实现的,因此增强了核心路由器所看到的流的熵。签名作为封装头的一个字段的一部分携带。为了在文档中更好地进行描述,我们定义了通用术语“负载平衡字段”来表示特定于封装类型的值。例如,对于L2TPv3 over IP[RFC3931]封装,负载平衡字段是会话标识符(会话ID)。对于GRE[RFC2784]封装,键字段[RFC2890]如果存在,则表示负载平衡字段。该机制假设核心路由器的负载平衡决策基于包含负载平衡字段的流定义。这是一个明显的通用功能,例如,对于L2TPv3 over IP隧道,会话ID与封装头中的TCP/UDP端口处于相同的已知常量偏移量。

The Encapsulation SAFI [RFC5512] is extended such that a contiguous block of the load-balancing field is bound to the Softwire advertised by a BGP next-hop. On a per-inner-flow basis, the ingress Provider Edge (PE) selects one value of the load-balancing field from the block to preserve per-flow ordering and, at the same time, to enhance the entropy across flows.

封装SAFI[RFC5512]被扩展,使得负载平衡字段的连续块被绑定到由BGP下一跳播发的软线。在每个内部流的基础上,入口提供者边缘(PE)从块中选择负载平衡字段的一个值,以保持每个流的顺序,同时增强流之间的熵。

1.1. Requirements Language
1.1. 需求语言

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

本文件中的关键词“必须”、“不得”、“要求”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照RFC 2119[RFC2119]中所述进行解释。

2. Load-Balancing Block sub-TLV
2. 负载平衡块子TLV

This document defines a new sub-TLV for use with the Tunnel Encapsulation Attribute defined in [RFC5512]. The new sub-TLV is referred to as the "Load-Balancing Block sub-TLV" and MAY be included in any Encapsulation SAFI UPDATE message where load-balancing is desired.

本文档定义了一个新的子TLV,用于[RFC5512]中定义的隧道封装属性。新的子TLV被称为“负载平衡块子TLV”,并且可以包括在需要负载平衡的任何封装SAFI更新消息中。

The sub-TLV type of the Load-Balancing Block sub-TLV is 5. The sub-TLV length is 2 octets. The value represents the length of the block in bits and MUST NOT exceed the size of the load-balancing field. This format is very similar to the variable-length subnet masking (VLSM) used in IP addresses to allow arbitrary length prefixes. The block is determined by extracting the initial sequence of 'block size' bits from the load-balancing field.

负载平衡块sub TLV的sub TLV类型为5。子TLV长度为2个八位字节。该值以位表示块的长度,且不得超过负载平衡字段的大小。这种格式非常类似于IP地址中使用的可变长度子网掩码(VLSM),允许使用任意长度的前缀。通过从负载平衡字段提取“块大小”位的初始序列来确定块。

If a load-balancing field is not signaled (e.g., if the encapsulation sub-TLV is not included in an advertisement as in the case of GRE without a Key), then the Load-Balancing Block sub-TLV MUST NOT be included.

如果未通知负载平衡字段(例如,如果封装子TLV未包括在广告中,如在没有密钥的GRE情况下),则不得包括负载平衡块子TLV。

The smaller the value field of the Load-Balancing Block sub-TLV, the larger the space for per-flow identification, and hence the better entropy for potential load-balancing in the core, as well as, the lower the polarization when mapping flows to ECMP paths. However, reducing the load-balancing block size consumes more L2TPv3 Session IDs or GRE Keys, resulting in potentially less numbers of supported services. A typical deployment would need to arbitrate between this trade-off.

负载平衡块子TLV的值字段越小,每个流识别的空间越大,因此核心中潜在负载平衡的熵越好,并且在将流映射到ECMP路径时极化越低。但是,减少负载平衡块大小会消耗更多的L2TPv3会话ID或GRE密钥,从而导致支持的服务数量可能会减少。典型的部署需要在这两者之间进行仲裁。

As an example, assume that there is a Softwire set up between R1 and R3 with L2TPv3-over-IP tunnel type. Assume that R3 encodes the Session ID with value 0x1234ABCD in the encapsulation sub-TLV. It also includes the Load-Balancing Block sub-TLV and encodes the value 24. This should be interpreted as follows:

例如,假设在R1和R3之间设置了一条软线,采用L2TPv3 over IP隧道类型。假设R3在封装子TLV中使用值0x1234ABCD对会话ID进行编码。它还包括负载平衡块子TLV,并对值24进行编码。这应解释如下:

o If an ingress router does not understand the Load-Balancing Block sub-TLV, it continues to use the Session ID 0x1234ABCD and encapsulates all packets with that Session ID.

o 如果入口路由器不理解负载平衡块子TLV,它将继续使用会话ID 0x1234ABCD并用该会话ID封装所有数据包。

o If an ingress router understands the Load-Balancing Block sub-TLV, it picks the first 24 bits out of the Session ID (0x1234AB) to be used as the block and fills in the lower-order 8 bits with a per-flow identifier (e.g., it can be determined based on the inner packet's source, destination addresses, and TCP/UDP ports). This selection preserves the per-flow ordering of packets.

o 如果入口路由器理解负载平衡块子TLV,它将从会话ID(0x1234AB)中选取前24位用作块,并用每流标识符(例如,可以根据内部数据包的源、目标地址和TCP/UDP端口确定)填充低阶8位。此选择保留数据包的每流顺序。

This requirement and solution applies equally to GRE where the Key plays the same role as the Session ID in L2TPv3.

此要求和解决方案同样适用于GRE,其中密钥与L2TPv3中的会话ID起着相同的作用。

Needless to say, if an egress router does not support the Load-Balancing Block sub-TLV, the Softwire continues to operate with a single load-balancing field with which all ingress routers encapsulate.

不用说,如果出口路由器不支持负载平衡块子TLV,则软线继续使用所有入口路由器封装的单个负载平衡字段操作。

2.1. Applicability to Tunnel Types
2.1. 适用于隧道类型

The Load-Balancing Block sub-TLV is applicable to tunnel types that define a load-balancing field. This document defines load-balancing fields for tunnel types 1 (L2TPv3 over IP) and 2 (GRE) as follows:

负载平衡块子TLV适用于定义负载平衡字段的隧道类型。本文档定义了隧道类型1(L2TPv3 over IP)和隧道类型2(GRE)的负载平衡字段,如下所示:

o L2TPv3 over IP - Session ID. Special care needs to be taken to always create a non-zero Session ID. When an egress router includes a Load-Balancing Block sub-TLV, it MUST encode the Session ID field of the encapsulation sub-TLV in a way that ensures that the most significant bits of the Session ID, after extracting the block, are non-zero.

o L2TPv3 over IP-会话ID。需要特别注意始终创建非零会话ID。当出口路由器包括负载平衡块子TLV时,它必须对封装子TLV的会话ID字段进行编码,以确保提取块后会话ID的最高有效位为非零。

o GRE - GRE Key

o GRE-GRE键

This document does not define a load-balancing field for the IP-in-IP tunnel type (tunnel types 7). Future tunnel types that desire to use the Load-Balancing Block sub-TLV MUST define a load-balancing field that is part of the encapsulating header.

本文档没有为IP-in-IP隧道类型(隧道类型7)定义负载平衡字段。希望使用负载平衡块子TLV的未来隧道类型必须定义作为封装头一部分的负载平衡字段。

2.2. Encapsulation Considerations
2.2. 封装注意事项

Fields included in the encapsulation header besides the load-balancing field are not affected by the Load-Balancing Block sub-TLV. All other encapsulation fields are shared between variations of the load-balancing field. For example, for the L2TPv3-over-IP tunnel type, if the optional cookie is included in the encapsulation sub-TLV by the egress router during Softwire signaling, it applies to all the "Session ID" values derived at the ingress router after applying the load-balancing block as described in this document.

除负载平衡字段外,封装头中包含的字段不受负载平衡块子TLV的影响。所有其他封装字段在负载平衡字段的变体之间共享。例如,对于L2TPv3 over IP隧道类型,如果在软线信令期间出口路由器将可选cookie包括在封装子TLV中,则它应用于在应用本文档中描述的负载平衡块之后在入口路由器处导出的所有“会话ID”值。

3. IANA Considerations
3. IANA考虑

IANA has assigned the value 5 for the Load-Balancing Block sub-TLV, in the BGP Tunnel Encapsulation Attribute Sub-TLVs registry (number space created as part of the publication of [RFC5512]):

IANA已在BGP隧道封装属性子TLV注册表中为负载平衡块子TLV分配了值5(作为[RFC5512]发布的一部分创建的数字空间):

       Sub-TLV name                            Value
       -------------                           -----
       Load-Balancing Block                      5
        
       Sub-TLV name                            Value
       -------------                           -----
       Load-Balancing Block                      5
        
4. Security Considerations
4. 安全考虑

This document defines a new sub-TLV for the BGP Tunnel Encapsulation Attribute. Security considerations for the BGP Encapsulation SAFI and the BGP Tunnel Encapsulation Attribute are covered in [RFC5512]. There are no additional security risks introduced by this design.

本文档为BGP隧道封装属性定义了一个新的子TLV。[RFC5512]中介绍了BGP封装SAFI和BGP隧道封装属性的安全注意事项。此设计不会带来额外的安全风险。

5. Acknowledgements
5. 致谢

The authors would like to thank Stewart Bryant, Mark Townsley, Rajiv Asati, Kireeti Kompella, and Robert Raszuk for their review and comments.

作者要感谢Stewart Bryant、Mark Townsley、Rajiv Asati、Kireeti Kompella和Robert Raszuk的评论和评论。

6. Normative References
6. 规范性引用文件

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

[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

[RFC2784] Farinacci, D., Li, T., Hanks, S., Meyer, D., and P. Traina, "Generic Routing Encapsulation (GRE)", RFC 2784, March 2000.

[RFC2784]Farinaci,D.,Li,T.,Hanks,S.,Meyer,D.,和P.Traina,“通用路由封装(GRE)”,RFC 27842000年3月。

[RFC2890] Dommety, G., "Key and Sequence Number Extensions to GRE", RFC 2890, September 2000.

[RFC2890]Dommety,G.“GRE的密钥和序列号扩展”,RFC 28902000年9月。

[RFC3931] Lau, J., Townsley, M., and I. Goyret, "Layer Two Tunneling Protocol - Version 3 (L2TPv3)", RFC 3931, March 2005.

[RFC3931]Lau,J.,Townsley,M.,和I.Goyret,“第二层隧道协议-版本3(L2TPv3)”,RFC 39312005年3月。

[RFC5512] Mohapatra, P. and E. Rosen, "The BGP Encapsulation Subsequent Address Family Identifier (SAFI) and the BGP Tunnel Encapsulation Attribute", RFC 5512, April 2009.

[RFC5512]Mohapatra,P.和E.Rosen,“BGP封装后续地址族标识符(SAFI)和BGP隧道封装属性”,RFC 5512,2009年4月。

Authors' Addresses

作者地址

Clarence Filsfils Cisco Systems Brussels, Belgium

Clarence Filsfils思科系统比利时布鲁塞尔

   EMail: cfilsfil@cisco.com
        
   EMail: cfilsfil@cisco.com
        

Pradosh Mohapatra Cisco Systems 170 W. Tasman Drive San Jose, CA 95134 USA

Pradosh Mohapatra Cisco Systems 170 W.塔斯曼大道圣何塞,加利福尼亚州95134

   EMail: pmohapat@cisco.com
        
   EMail: pmohapat@cisco.com
        

Carlos Pignataro Cisco Systems 7200 Kit Creek Road, PO Box 14987 Research Triangle Park, NC 27709 USA

Carlos Pignataro Cisco Systems美国北卡罗来纳州三角研究公园Kit Creek路7200号邮政信箱14987 27709

   EMail: cpignata@cisco.com
        
   EMail: cpignata@cisco.com