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
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.
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].
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 (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.
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.
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].
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].
The following 'Node Attribute' TLVs are defined:
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.
The following 'Link Attribute' TLVs are are defined:
TLV Code Point | Description | Length | IS-IS SR TLV/sub-TLV |
---|---|---|---|
1099 | Adjacency Segment Identifier (Adj-SID) TLV | variable | 31 |
1100 | LAN Adjacency Segment Identifier (Adj-SID) TLV | variable | 32 |
The sections refer to [I-D.previdi-isis-segment-routing-extensions].
These TLVs can ONLY be added to the Link Attribute associated with the link whose local node originates the corresponding SR TLV.
For a LAN, normally a node only announces its adjacency to the pseudo-node. [I-D.previdi-isis-segment-routing-extensions] allows a node to announce adjacency to all other nodes attached to the LAN. In such a case, the corresponding BGP-LS link NLRI must be originated for each additional link in order to add the SR TLVs to the Link Attribute.
The following 'Prefix Attribute' TLVs are defined:
TLV Code Point | Description | Length | IS-IS SR TLV/sub-TLV |
---|---|---|---|
1158 | Prefix SID | variable | 3 |
The sections refer to [I-D.previdi-isis-segment-routing-extensions].
These TLVs can ONLY be added to the Prefix Attribute whose local node in the corresponding prefix NLRI is the node that originates the corresponding SR TLV.
This document requests assigning code-points from the registry for BGP-LS attribute TLVs based on table Table 4.
This section is structured as recommended in [RFC5706].
Existing BGP and BGP-LS operational procedures apply. No new operation procedures are defined in this document.
This section contains the global table of all TLVs/Sub-TLVs defined in this document.
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 |
1099 | Adjacency Segment Identifier (Adj-SID) TLV | variable | 31 |
1100 | LAN Adjacency Segment Identifier (Adj-SID) TLV | variable | 32 |
1158 | Prefix SID | variable | 3 |
Procedures and protocol extensions defined in this document do not affect the BGP security model. See the 'Security Considerations' section of [RFC4271] for a discussion of BGP security. Also refer to [RFC4272] and [RFC6952] for analysis of security issues for BGP.
TBD.
[I-D.ietf-idr-ls-distribution] | Gredler, H., Medved, J., Previdi, S., Farrel, A. and S. Ray, "North-Bound Distribution of Link-State and TE Information using BGP", Internet-Draft draft-ietf-idr-ls-distribution-04, November 2013. |
[I-D.previdi-isis-segment-routing-extensions] | Previdi, S., Filsfils, C., Bashandy, A., Gredler, H. and S. Litkowski, "IS-IS Extensions for Segment Routing", Internet-Draft draft-previdi-isis-segment-routing-extensions-04, October 2013. |
[I-D.psenak-ospf-segment-routing-extensions] | Psenak, P., Previdi, S., Filsfils, C., Gredler, H., Shakir, R. and W. Henderickx, "OSPF Extensions for Segment Routing", Internet-Draft draft-psenak-ospf-segment-routing-extensions-03, October 2013. |
[I-D.psenak-ospf-segment-routing-ospfv3-extension] | Psenak, P., Previdi, S., Filsfils, C., Gredler, H., Shakir, R. and W. Henderickx, "OSPFv3 Extensions for Segment Routing", Internet-Draft draft-psenak-ospf-segment-routing-ospfv3-extension-00, October 2013. |
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. |
[RFC4271] | Rekhter, Y., Li, T. and S. Hares, "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, January 2006. |