Internet-Draft | PIA | July 2021 |
Wang, et al. | Expires 1 February 2022 | [Page] |
This document describes the mechanism that can be used to differentiate the stub links from the normal interfaces within ISIS or OSPF domain.¶
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 https://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 1 February 2022.¶
Copyright (c) 2021 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 (https://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.¶
Stub links are used commonly within an operators enterprise or service provider networks. One of the most common use cases for stub links is in a data center Layer 2 and Layer 3 Top of Rack(TOR) switch where the inter connected links between the TOR switches and uplinks to the core switch are only a few links and a majority of the links are Layer 3 VLAN switched virtual interface trunked between the TOR switches serving Layer 2 broadcast domains. In this scenario all the VLANs are made as stub links as it is recommended to limit the number of network LSAs between routers and switches to avoid unnecessary hello processing overhead.¶
Another common use case is an inter-as routing scenario where the same routing protocol but different IGP instance is running between the adjacent BGP domains. Using stub link on the inter-as connections can ensure that prefixes contained within a domain are only reachable within the domain itself and not allow the link state database to be merged between domain which could result in undesirable consequences.¶
For operator which runs different IGP domains that interconnect with each other via the stub links, there is desire to obtain the inter-as topology information as described in [I-D.ietf-idr-bgpls-inter-as-topology-ext]. If the router that runs BGP-LS within one IGP domain can distinguish stub links from other normal interfaces, it is then easy for the router to report these stub links using BGP-LS to a centralized PCE controller.¶
Draft [I-D.dunbar-lsr-5g-edge-compute-ospf-ext] describes the case that edge compute server attach the network and needs to flood some performance index information to the network to facilitate the network select the optimized application resource. The edge compute server will also not run IGP protocol.¶
And, stub links are normally the boundary of one IGP domain, knowing them can facilitate the operators to apply various policies on such interfaces, for example, to secure their networks, or filtering the incoming traffic with scrutiny.¶
But OSPF and ISIS have no position to flag such stub links and their associated attributes now.¶
This document defines the protocol extension for OSPF and ISIS to indicate the stub links and their associated attributes.¶
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 [RFC2119] .¶
ISIS[RFC5029] defines the Link-Attributes Sub-TLV to carry the link attribute information, but this Sub-TLV can only be carried within the TLV 22, which is used to described the attached neighbor. For stub link, there is no ISIS neighbor, then it is not appropriate to use this Sub-TLV to indicate the attribute of such link.¶
OSPFv2[RFC2328] defines link type field within Router LSA, the type 3 for connections to a stub network can be used to identified the stub link. But in OSPFv3[RFC5340], type 3 within the Router-LSA has been reserved. The information that associated with stub network has been put in the Intra-Area-Prefix-LSAs.¶
It is necessary to define one general solution for ISIS and OSPF to flag the stub link and transfer the associated attributes then.¶
The following sections define the protocol extension to indicate the stub link and its associated attributes in OSPFv2/v3 and ISIS.¶
[RFC7684] defines the OSPFv2 Extended Link Opaque LSA to contain the additional link attribute TLV. Currently, only OSPFv2 Extended Link TLV is defined to contain the link related sub-TLV. Because stub link is not the normal link that participate in the OSPFv2 process, we select to define one new top TLV within the OSPFv2 Extended Link Opaque LSA to contain the stub link related attribute information.¶
The OSPFv2 Extended Stub-Link TLV has the following format:¶
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(Stub-Link) | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Link Type | Reserved | Metric | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Link ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Link Data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sub-TLVs (variable) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1: OSPFv2 Extended Stub-Link TLV¶
Type: The TLV type. The value is 2(TBD) for this stub-link type¶
Length: Variable, dependent on sub-TLVs¶
Link Type: Define the type of the stub-link. This document defines the followings type:¶
Metric: Link metric used for inter-AS traffic engineering.¶
Link ID: Link ID is defined in Section A.4.2 of [RFC2328]¶
Link Data: Link Data is defined in Section A.4.2 of [RFC2328]¶
Sub-TLVs: Existing sub-TLV that defined within "OSPFv2 Extended Link TLV Sub-TLV" can be included if necessary, the definition of new sub-TLV can refer to Section 4.4¶
If this TLV is advertised multiple times in the same OSPFv2 Extended Link Opaque LSA, only the first instance of the TLV is used by receiving OSPFv2 routers. This situation SHOULD be logged as an error.¶
If this TLV is advertised multiple times for the same link in different OSPFv2 Extended Link Opaque LSAs originated by the same OSPFv2 router, the OSPFv2 Extended Stub-Link TLV in the OSPFv2 Extended Link Opaque LSA with the smallest Opaque ID is used by receiving OSPFv2 routers. This situation may be logged as a warning.¶
It is RECOMMENDED that OSPFv2 routers advertising OSPFv2 Extended Stub-Link TLVs in different OSPFv2 Extended Link Opaque LSAs re-originate these LSAs in ascending order of Opaque ID to minimize the disruption.¶
This document creates a registry for Stub-Link attribute in Section 6.¶
[RFC8362] extend the LSA format by encoding the existing OSPFv3 LSA [RFC5340] in TLV tuples and allowing advertisement of additional information with additional TLV.¶
This document defines the Router-Stub-Link TLV to describes stub link of a single router. The Router-Stub-Link TLV is only applicable to the E-Router-LSA. Inclusion in other Extended LSA MUST be ignored.¶
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(Router-Stub-Link) | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Link Type | Reserved | Metric | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sub-TLVs(Variable) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2: OSPFv3 Router-Stub-Link TLV¶
Type: OSPFv3 Extended-LSA TLV Type. Value is 10(TBD) for Router-Stub-Link TLV.¶
Length: Variable, dependent on sub-TLVs¶
Link Type: Define the type of the stub-link. This document defines the followings type:¶
Metric: Link metric used for inter-AS traffic engineering.¶
Interface ID: 32-bit number uniquely identifying this interface among the collection of this router's interfaces. For example, in some implementations it may be possible to use the MIB-II IfIndex [RFC2863].¶
Sub-TLVs: Existing sub-TLV that defined within "OSPFv3 Extended-LSA Sub-TLV" can be included if necessary. The definition of new sub-TLV can refer to Section 4.4.¶
This document defines one new top TLV to contain the stub link attributes, which is shown in Figure 4:¶
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(Stub-Link) | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Link Type | Reserved | Metric | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sub-TLVs(Variable) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3: ISIS Stub-Link TLV¶
Type: ISIS TLV Codepoint. Value is 28(TBD) for stub-link TLV.¶
Length: Variable, dependent on sub-TLVs¶
Link Type: Define the type of the stub-link. This document defines the followings type:¶
Metric: Link metric used for inter-AS traffic engineering.¶
Interface ID: 32-bit number uniquely identifying this interface among the collection of this router's interfaces. For example, in some implementations it may be possible to use the MIB-II IfIndex [RFC2863].¶
Sub-TLVs: Existing sub-TLV that defined within "Sub-TLVs for TLVs 22, 23, 25, 141, 222, and 223" can be included if necessary. The definition of new sub-TLV can refer to Section 4.4.¶
This document defines one new sub-TLV that can be contained within the OSPFv2 Extended Stub-Link TLV , OSPFv3 Router-Stub-Link TLV or ISIS Stub-Link TLV, to describe the prefix information associated with the stub link.¶
The format of the sub-TLV is the followings:¶
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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Prefix or IPv6 Prefix Subobject | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 4: Stub-Link Prefix Sub-TLV¶
Type: The TLV type. The value is 01(TBD) for this Stub-Link Prefix type¶
Length: Variable, dependent on associated subobjects¶
Subobject: IPv4 prefix subobject or IPv6 prefix subobject, as that defined in [RFC3209]¶
If the stub link has multiple address, then multiple subobjects will be included within this sub-TLV.¶
Security concerns for ISIS are addressed in [RFC5304] and[RFC5310]¶
Security concern for OSPFv3 is addressed in [RFC4552]¶
Advertisement of the additional information defined in this document introduces no new security concerns.¶
IANA is requested to the allocation in following registries:¶
+=========================+===========+======================+ | Registry | Type | Meaning | +=========================+===========+======================+ |OSPFv2 Extended Link | 2 |Stub-Link TLV | |Opaque LSA TLV | | | +-------------------------+-----------+----------------------+ |OSPFv3 Extended-LSA TLV | 10 |Router-Stub-Link TLV | +-------------------------+-----------+----------------------+ |IS-IS TLV Codepoint | 28 |Stub-Link TLV | +-------------------------+-----------+----------------------+ Figure 5: Newly defined TLV in existing IETF registry¶
IANA is requested to allocate one new registry that can be referred by OSPFv2, OSPFv3 and ISIS respectively.¶
+=========================+==================================+ | New Registry | Meaning | +=========================+==================================+ |Stub-Link Attribute | Attributes for stub-link | +-------------------------+----------------------------------+ Figure 6: Newly defined Registry for stub-link attributes¶
One new sub-TLV is defined in this document under this registry codepoint:¶
+=========================+===========+===============================+ | Registry | Type | Meaning | +=========================+===========+===============================+ |Stub-Link Attribute | 0 | Reserved +=========================+===========+===============================+ | | 1 |Stub-Link Prefix sub-TLV | +-------------------------+-----------+-------------------------------+ | | 2-65535 |Reserved | +-------------------------+-----------+-------------------------------+ Figure 7: Stub-Link Prefix Sub-TLV¶
Thanks Shunwan Zhang, Tony Li, Les Ginsberg, Acee Lindem, Dhruv Dhody, Jeff Tantsura and Robert Raszuk for their suggestions and comments on this idea.¶