RFC 8476
Signaling Maximum SID Depth (MSD) Using OSPF
Signaling Maximum SID Depth (MSD) Using OSPF ππ
okay bestie, this is RFC 8476, published in December 2018 πΈ It's a Standards Track document, which means it's a real Internet standard, not just a suggestion. Four people wrote it: J. Tantsura (Apstra, Inc.), U. Chunduri (Huawei Technologies), S. Aldrin (Google, Inc.), and P. Psenak (Cisco Systems). It's on the Internet Engineering Task Force (IETF) stream, with ISSN 2070-1721. The header doesn't list any "Obsoletes" or "Updates" lines, so it isn't replacing or changing another RFC here β¨
Abstract
so this doc is all about letting an OSPF router announce the Maximum SID Depths (MSDs) it supports, with the info available per node and/or per link π¦ why does that matter? Because it lets stuff like centralized controllers check whether a particular Segment Identifier (SID) stack can actually work in a given network π The doc only talks about the Signaling MSD from RFC 8491, but the encoding is built so other MSD types can fit in later. And when it says "OSPF," it means both OSPFv2 and OSPFv3 π
Status of This Memo
this one is an Internet Standards Track document π₯ It's a product of the IETF, which means it reflects the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). If you want more on Internet Standards, check Section 2 of RFC 7841 π
For the current status, any errata, and how to send feedback, go to https://www.rfc-editor.org/info/rfc8476 π
Copyright Notice
Copyright (c) 2018 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) as they were in effect on the date it was published. Please actually read these, because they spell out your rights and restrictions for this document π Code Components pulled out of this document must include the Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as described in the Simplified BSD License π§
Table of Contents
1. Introduction ....................................................3
1.1. Terminology ................................................4
1.2. Requirements Language ......................................4
2. Node MSD Advertisement ..........................................5
3. Link MSD Sub-TLV ................................................6
4. Procedures for Defining and Using Node and Link MSD
Advertisements ..................................................7
5. IANA Considerations .............................................7
6. Security Considerations .........................................8
7. References ......................................................9
7.1. Normative References .......................................9
7.2. Informative References ....................................10
Acknowledgements ..................................................11
Contributors ......................................................11
Authors' Addresses ................................................11
1. Introduction β¨
okay so picture this πΈ When a centralized controller computes Segment Routing (SR) paths, it's absolutely critical that it knows the Maximum SID Depth (MSD) that can be imposed at each node and link on a given SR path. Why? So the SID stack depth of a computed path never goes past the number of SIDs that node can actually handle π Otherwise it's just a mess.
[PCEP-EXT] explains how to signal MSD over the Path Computation Element Communication Protocol (PCEP) π But here's the tea: if PCEP isn't supported or configured on the head-end of an SR tunnel or on a Binding-SID anchor node, and the controller isn't in on IGP routing, the controller has zero way to find out the MSD of nodes and links π BGP-LS (Distribution of Link-State and TE Information Using BGP) [RFC7752] is the fix for exposing topology, plus the attributes and capabilities of nodes in it, to a centralized controller π¦ MSD signaling over BGP-LS is defined in [MSD-BGP]. The catch is that BGP-LS usually runs on a small number of nodes, and those aren't necessarily head-ends. So for BGP-LS to signal MSD for every relevant node and link in the network, every OSPF router in the network SHOULD advertise its MSD capabilities π«Ά
Other MSD types are useful too π For example, [ELC-ISIS] defines Entropy Readable Label Depth (ERLD), which a head-end uses to insert an Entropy Label (EL) at a depth where transit nodes can read it π
This document defines an OSPF extension that advertises one or more MSD types at node and/or link granularity β¨ Down the road, new MSD-Types are expected to show up to signal extra capabilities, like ELs, SIDs that can be imposed through recirculation, or SIDs tied to another data plane such as IPv6 π
Also, MSD advertisements MAY still be useful even if SR isn't enabled π In a non-SR MPLS network, for instance, MSD defines the maximum label depth π
1.1. Terminology
this memo uses the terms defined in [RFC7770] π§ Here's the vocab you need:
- BGP-LS: Distribution of Link-State and TE Information Using BGP
- OSPF: Open Shortest Path First
- MSD: Maximum SID Depth, meaning the number of SIDs a node or a link on a node supports
- SID: Segment Identifier, as defined in [RFC8402]
- Label Imposition: imposition is the act of changing and/or adding labels to the outgoing label stack of a packet. This covers:
- replacing the label at the top of the label stack with a new label
- pushing one or more new labels onto the label stack
The number of labels imposed is the number of labels replaced plus the number of labels pushed. See [RFC3031] for more details π
- PCEP: Path Computation Element Communication Protocol
- SR: Segment Routing
- LSA: Link State Advertisement
- RI: Router Information
1.2. Requirements Language
okay, this part is the rulebook π₯ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" are interpreted as described in BCP 14 [RFC2119] [RFC8174], but only when they're written in all capitals, exactly like that π Lowercase versions are just regular words β¨
2. Node MSD Advertisement π¦
so the Node MSD TLV, sitting inside the body of the OSPF RI Opaque LSA [RFC7770], carries the provisioned SID depth of the router that originated the RI LSA π The Node MSD is the smallest MSD the node supports across the set of interfaces configured for the advertising IGP instance. MSD values can be learned through a hardware API or be provisioned πΈ
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MSD-Type | MSD-Value | MSD-Type... | MSD-Value... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: Node MSD TLV
Here's the breakdown π
- Type: 12
- Length: variable (a multiple of 2 octets). It's the total length of the value field, in octets.
- Value: one or more pairs of a 1-octet MSD-Type and a 1-octet MSD-Value.
- MSD-Type: one of the values in the "IGP MSD-Types" registry defined in [RFC8491] π§
- MSD-Value: a number from 0-255. For every MSD-Type, 0 means the node can't impose an MSD stack of any depth. Any other value is the node's MSD. This value MUST represent the lowest value supported by any link configured for use by the advertising OSPF instance π
This TLV is optional and works for both OSPFv2 and OSPFv3 β¨ How far the advertisement spreads is up to the specific deployment π
Now for the multiple-TLV drama π When a receiver gets several Node MSD TLVs from one router, it MUST use the first occurrence of the TLV in the Router Information (RI) LSA. If the Node MSD TLV shows up in multiple RI LSAs with different flooding scopes, the Node MSD TLV in the RI LSA with the area-scoped flooding scope MUST be used. If the Node MSD TLV shows up in multiple RI LSAs with the same flooding scope, the Node MSD TLV in the RI LSA with the numerically smallest Instance ID MUST be used, and the other instances of the Node MSD TLV MUST be ignored. The RI LSA can be advertised at any of the defined opaque flooding scopes (link, area, or Autonomous System (AS)). For Node MSD TLV advertisement, area-scoped flooding is RECOMMENDED π
3. Link MSD Sub-TLV πΈ
the Link MSD sub-TLV carries the MSD of the interface tied to the link π Just like before, the MSD values can come from a hardware API or be provisioned π¦
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MSD-Type | MSD-Value | MSD-Type... | MSD-Value... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Link MSD Sub-TLV
Where the type number comes from depends on the protocol version π§
- Type, OSPFv2: the link-level MSD-Value is advertised as an optional sub-TLV of the OSPFv2 Extended Link TLV defined in [RFC7684], with a type of 6 π
- Type, OSPFv3: the link-level MSD-Value is advertised as an optional sub-TLV of the E-Router-LSA TLV defined in [RFC8362], with a type of 9 β¨
- Length: variable, same as defined in Section 2 π
- Value: one or more pairs of a 1-octet MSD-Type and a 1-octet MSD-Value π
- MSD-Type: one of the values in the "IGP MSD-Types" registry defined in [RFC8491] π
The MSD-Value field carries the Link MSD of the router that originated the corresponding LSA, as specified for OSPFv2 and OSPFv3 π The Link MSD is a number from 0-255. For every MSD-Type, 0 means the router can't impose an MSD stack of any depth. Any other value is the MSD of that particular link when it's used as an outgoing interface π
Last thing, and it's a big one π If this sub-TLV gets advertised more than once for the same link, in different OSPF Extended Link Opaque LSAs or E-Router-LSAs originated by the same OSPF router, receiving OSPF routers MUST use the sub-TLV in the OSPFv2 Extended Link Opaque LSA with the smallest Opaque ID, or the sub-TLV in the OSPFv3 E-Router-LSA with the smallest Link State ID. This situation SHOULD be logged as an error π¨π
4. Procedures for Defining and Using Node and Link MSD Advertisements π§
okay so π when a Link MSD is present for a given MSD-Type, the value of the Link MSD MUST take precedence over the Node MSD β¨. And if a Link MSD-Type isn't signaled but the Node MSD-Type is, then the Node MSD-Type value MUST be considered as the MSD value for that link π¦.
To boost flooding efficiency π, it is RECOMMENDED that routers with homogenous Link MSD values advertise just the Node MSD value π .
bestie, the meaning of having neither a Node nor a Link MSD advertisement for a given MSD-Type is specific to that MSD-Type π. Generally, all you can infer is that the advertising node doesn't support advertising that MSD-Type. Sometimes though, the lack of an advertisement might imply that the functionality tied to the MSD-Type isn't supported either. Per [RFC8491], the correct interpretation MUST be specified when an MSD-Type is defined π.
5. IANA Considerations π
this specification updates several existing OSPF registries πΈ.
IANA has allocated TLV type 12 from the "OSPF Router Information (RI) TLVs" registry as defined by [RFC7770].
Value Description Reference
----- --------------- -------------
12 Node MSD This document
Figure 3: RI Node MSD
IANA has allocated sub-TLV type 6 from the "OSPFv2 Extended Link TLV Sub-TLVs" registry.
Value Description Reference
----- --------------- -------------
6 OSPFv2 Link MSD This document
Figure 4: OSPFv2 Link MSD
IANA has allocated sub-TLV type 9 from the "OSPFv3 Extended-LSA Sub-TLVs" registry.
Value Description Reference
----- --------------- -------------
9 OSPFv3 Link MSD This document
Figure 5: OSPFv3 Link MSD
6. Security Considerations π
security concerns for OSPF are covered in [RFC7474], [RFC4552], and [RFC7166] π. Further security analysis for the OSPF protocol is done in [RFC6863]. Security considerations as specified by [RFC7770], [RFC7684], and [RFC8362] also apply to this document π«Ά.
Implementations MUST ensure that malformed TLVs and sub-TLVs defined in this document are detected and do not provide a vulnerability for attackers to crash the OSPF router or routing process π¨. This part is non-negotiable, bestie!
Reception of malformed TLVs or sub-TLVs SHOULD be counted and/or logged for further analysis π. Logging of malformed TLVs and sub-TLVs SHOULD be rate-limited to prevent a Denial-of-Service (DoS) attack (distributed or otherwise) from overloading the OSPF control plane π.
advertising an incorrect MSD value may have negative consequences π¬. If the value is smaller than supported, path computation may fail to compute a viable path. If the value is larger than supported, an attempt to instantiate a path that can't be supported by the head-end (the node performing the SID imposition) may occur π.
the presence of this information may also inform an attacker of how to induce any of the aforementioned conditions π.
there's no DoS risk specific to this extension, and it is not vulnerable to replay attacks β¨π¦.
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,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol
Label Switching Architecture", RFC 3031,
DOI 10.17487/RFC3031, January 2001,
<https://www.rfc-editor.org/info/rfc3031>.
[RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W.,
Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute
Advertisement", RFC 7684, DOI 10.17487/RFC7684,
November 2015, <https://www.rfc-editor.org/info/rfc7684>.
[RFC7770] Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and
S. Shaffer, "Extensions to OSPF for Advertising Optional
Router Capabilities", RFC 7770, DOI 10.17487/RFC7770,
February 2016, <https://www.rfc-editor.org/info/rfc7770>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in
RFC 2119 Key Words", BCP 14, RFC 8174,
DOI 10.17487/RFC8174, May 2017,
<https://www.rfc-editor.org/info/rfc8174>.
[RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and
F. Baker, "OSPFv3 Link State Advertisement (LSA)
Extensibility", RFC 8362, DOI 10.17487/RFC8362,
April 2018, <https://www.rfc-editor.org/info/rfc8362>.
[RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
Decraene, B., Litkowski, S., and R. Shakir, "Segment
Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
July 2018, <https://www.rfc-editor.org/info/rfc8402>.
[RFC8491] Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg,
"Signaling Maximum SID Depth (MSD) Using IS-IS", RFC 8491,
DOI 10.17487/RFC8491, November 2018,
<https://www.rfc-editor.org/info/rfc8491>.
7.2. Informative References
[ELC-ISIS] Xu, X., Kini, S., Sivabalan, S., Filsfils, C., and S.
Litkowski, "Signaling Entropy Label Capability and Entropy
Readable Label-stack Depth Using OSPF", Work in Progress,
draft-ietf-ospf-mpls-elc-07, September 2018.
[MSD-BGP] Tantsura, J., Chunduri, U., Mirsky, G., and S. Sivabalan,
"Signaling MSD (Maximum SID Depth) using Border Gateway
Protocol Link-State", Work in Progress,
draft-ietf-idr-bgp-ls-segment-routing-msd-02, August 2018.
[PCEP-EXT] Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W.,
and J. Hardwick, "PCEP Extensions for Segment Routing",
Work in Progress, draft-ietf-pce-segment-routing-14,
October 2018.
[RFC4552] Gupta, M. and N. Melam, "Authentication/Confidentiality
for OSPFv3", RFC 4552, DOI 10.17487/RFC4552, June 2006,
<https://www.rfc-editor.org/info/rfc4552>.
[RFC6863] Hartman, S. and D. Zhang, "Analysis of OSPF Security
According to the Keying and Authentication for Routing
Protocols (KARP) Design Guide", RFC 6863,
DOI 10.17487/RFC6863, March 2013,
<https://www.rfc-editor.org/info/rfc6863>.
[RFC7166] Bhatia, M., Manral, V., and A. Lindem, "Supporting
Authentication Trailer for OSPFv3", RFC 7166,
DOI 10.17487/RFC7166, March 2014,
<https://www.rfc-editor.org/info/rfc7166>.
[RFC7474] Bhatia, M., Hartman, S., Zhang, D., and A. Lindem, Ed.,
"Security Extension for OSPFv2 When Using Manual Key
Management", RFC 7474, DOI 10.17487/RFC7474, April 2015,
<https://www.rfc-editor.org/info/rfc7474>.
[RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and
S. Ray, "North-Bound Distribution of Link-State and
Traffic Engineering (TE) Information Using BGP", RFC 7752,
DOI 10.17487/RFC7752, March 2016,
<https://www.rfc-editor.org/info/rfc7752>.
Acknowledgements π«Ά
the authors would like to thank Acee Lindem, Ketan Talaulikar, Tal Mizrahi, Stephane Litkowski, and Bruno Decraene for their reviews and valuable comments π.
Contributors π
the following person contributed to this document β¨:
Les Ginsberg
Email: ginsberg@cisco.com
Authors' Addresses π
Jeff Tantsura
Apstra, Inc.
Email: jefftant.ietf@gmail.com
Uma Chunduri
Huawei Technologies
Email: uma.chunduri@huawei.com
Sam Aldrin
Google, Inc.
Email: aldrin.ietf@gmail.com
Peter Psenak
Cisco Systems
Email: ppsenak@cisco.com
π¦ where this page comes from
- ietf: rfc8476 2018-12
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms