Inter-Domain Routing H. Gredler, Ed.
Internet-Draft Juniper Networks, Inc.
Intended status: Standards Track S. Ray, Ed.
Expires: April 19, 2015 S. Previdi
C. Filsfils
Cisco Systems, Inc.
M. Chen
Huawei Technologies
J. Tantsura
Ericsson
October 16, 2014

BGP Link-State extensions for Segment Routing
draft-gredler-idr-bgp-ls-segment-routing-extension-02

Abstract

Segment Routing (SR) allows for a flexible definition of end-to-end paths within link-state graphs by encoding paths as sequences of topological sub-paths, called "segments".

The link-state routing protocols (IS-IS, OSPF and OSPFv3) have been extended to advertise the segments. But flooding based propagation of path segments using IGPs is limited by the perimeter of the IGP domain. For building paths which span across IGP domains (e.g. multiple ASes), the Border Gateway Protocol (BGP) is better suited as its propagation perimeter is not limited like the IGPs.

This draft defines extensions to the BGP Link-state address-family to carry path segment information via BGP.

Requirements Language

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

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 April 19, 2015.

Copyright Notice

Copyright (c) 2014 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.


Table of Contents

1. Introduction

Segment Routing (SR) allows for a flexible definition of end-to-end paths within link-state topologies by encoding paths as sequences of topological sub-paths, called "segments". Segment routing is an amalgamation of source routing and MPLS. In Segment Routing, the ingress node prepends a sequence of instructions, called "segments", to the packet. The SR capable nodes sequentially execute the instructions on the packet to achieve packet forwarding via required topological paths as well as service paths.

The segments can be thought of, in a simple way, to represent instructions such as "go to node N using the shortest path", "follow the shortest path for prefix P", "use link/node/ERO L", etc. Each segment is identified by a 32 bit Segment Identifier (SID) (when unmodified MPLS data-plane is used, the SIDs are restricted to 20 bits). There are "global" segments that are known to all SR nodes in the local domain, and there are local segments whose semantics are known only to the nodes that originate them. The segment routing architecture is described in [I-D.filsfils-rtgwg-segment-routing] and segment routing use-cases in [I-D.filsfils-rtgwg-segment-routing-use-cases].

Segment routing is enabled in a network by advertising the segments (including the associated SIDs) to the nodes in the network. The IGP link-state routing protocols (IS-IS [I-D.previdi-isis-segment-routing-extensions], OSPFv2 [I-D.psenak-ospf-segment-routing-extensions] and OSPFv3 [I-D.psenak-ospf-segment-routing-ospfv3-extension]) have been extended to advertise the segments. Using these extensions, segment routing can be enabled within an IGP domain.

                        +------------+
                        |  Consumer  |
                        +------------+
                              ^
                              |
                              v
                    +-------------------+
                    |    BGP Speaker    |         +-----------+
                    | (Route-Reflector) |         | Consumer  |
                    +-------------------+         +-----------+
                          ^   ^   ^                       ^
                          |   |   |                       |
          +---------------+   |   +-------------------+   |
          |                   |                       |   |
          v                   v                       v   v
    +-----------+       +-----------+             +-----------+
    |    BGP    |       |    BGP    |             |    BGP    |
    |  Speaker  |       |  Speaker  |    . . .    |  Speaker  |
    +-----------+       +-----------+             +-----------+
          ^                   ^                         ^
          |                   |                         |
         IGP                 IGP                       IGP
        

Figure 1: Link State info collection

Segment Routing (SR) allows advertisement of single or multi-hop paths. The flooding scope for the IGP extensions for Segment routing is IGP area-wide. Consequently, the contents of a Link State Database (LSDB) or a Traffic Engineering Database (TED) has the scope of an IGP area and therefore by using the IGP alone it is not possible to construct segments across an IGP Area or AS boundaries.

To address the need for applications that require visibility into LSDB across IGP areas, or even across ASes, the BGP-LS address-family/sub-address-family have been defined that allows BGP to carry LSDB information. The BGP Network Layer Reachability Information (NLRI) encoding format for BGP-LS and a new BGP Path Attribute called BGP-LS attribute are defined in [I-D.ietf-idr-ls-distribution]. The identifying key of each LSDB object, namely a node, a link or a prefix, is encoded in the NLRI and the properties of the object are encoded in the BGP-LS attribute. Figure Figure 1 describes a typical deployment scenario. In each IGP area, one or more nodes are configured with BGP-LS. These BGP speakers form an IBGP mesh by connecting to one or more route-reflectors. This way, all BGP speakers - specifically the route-reflectors - obtain LSDB information from all IGP areas (and from other ASes from EBGP peers). An external component connects to the route-reflector to obtain this information (perhaps moderated by a policy regarding what information is sent to the external component, and what information isn't).

This document describes extensions to BGP-LS to carry the segments. An external component - a Controller - then can collect segment information in the "northbound direction" across IGP areas/autonomous systems and construct the segment stack that need to be added to an incoming packet to achieve the desired end-to-end forwarding.

2. BGP-LS Extensions for Segment Routing

The BGP-LS NLRI can be a node NLRI, a link NLRI or a prefix NLRI. The corresponding BGP-LS attribute is a node attribute, a link attribute or a prefix attribute. BGP-LS [I-D.ietf-idr-ls-distribution] defines the TLVs that map link-state information to BGP-LS NLRI and BGP-LS attribute. This document adds additional BGP-LS attribute TLVs to encode SR information.

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |              Type             |             Length            | 
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  //                        Value (variable)                     //
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Figure 2: TLV format

[I-D.previdi-isis-segment-routing-extensions] defines the following TLVs to encode SR information. Table 1, Table 2, and Table 3. The next 2 octet Length field encodes length of the rest of the TLV. The Value portion of the TLV is variable and is equal to the corresponding Value portion of the TLV defined in [I-D.previdi-isis-segment-routing-extensions].

  • TLV for Prefix-SID
  • TLV for Adjacency-SID between two nodes as well as between nodes in a LAN
  • TLV for SID/Label binding for advertising paths from other protocols (and their optional ERO)
  • TLV for SR Capabilities
  • TLV for SR Algorithm

These TLVs are mapped to BGP-LS attribute TLVs in the following way.

In each case, multiple TLVs for a given type are allowed to be added. The semantics of multiple such values are determined by [I-D.previdi-isis-segment-routing-extensions].

2.1. Node Attribute TLVs

The following 'Node Attribute' TLVs are defined:

Node Attribute TLVs
TLV Code Point Description Length IS-IS SR TLV/sub-TLV
1033 SID/Label Binding variable 149
1034 SR Capabilities variable 2
1035 SR Algorithm variable 15

The sections refer to [I-D.previdi-isis-segment-routing-extensions].

These TLVs can ONLY be added to the Node Attribute associated with the Node NLRI that originates the corresponding SR TLV.

2.2. Link Attribute TLVs

The following 'Link Attribute' TLVs are are defined: