RFC 3786

Extending the Number of Intermediate System to Intermediate System (IS-IS) Link State PDU (LSP) Fragments Beyond the 256 Limit

๐Ÿ“… published May 2004, from ietf

okay bestie, let's get into RFC 3786 ๐Ÿฆ‹ It came out in May 2004 from the Network Working Group, and it's Informational, so it's not a standard, but it's giving real-world main character energy ๐Ÿ’… It was written by A. Hermelin (Montilio Inc.), S. Previdi (Cisco Systems), and M. Shand (Cisco Systems). The title block doesn't list anything it obsoletes or updates. โœจ

Status of this Memo ๐Ÿ“œ

This memo is for the Internet community as information only ๐Ÿซถ It does not specify an Internet standard of any kind, and distribution of it is unlimited.

Copyright (C) The Internet Society (2004). All Rights Reserved.

Abstract ๐Ÿ’–

So this doc describes a mechanism that lets a system originate more than 256 Link State PDU (LSP) fragments ๐Ÿ˜ญ That 256 cap comes from the original Intermediate System to Intermediate System (IS-IS) routing protocol, as described in ISO/IEC 10589, and it's giving tight ๐Ÿ™ˆ This mechanism can be used in IP-only, OSI-only, and dual routers, so it's not picky about the setup ๐ŸŒˆ

Table of Contents ๐Ÿงš

   1.  Introduction .................................................  2
       1.1.  Keywords ...............................................  2
       1.2.  Definitions of Commonly Used Terms .....................  2
       1.3.  Operation Modes ........................................  3
       1.4.  Overview ...............................................  4
   2.  IS Alias ID TLV (IS-A) .......................................  5
   3.  Generating LSPs ..............................................  6
       3.1.  Both Operation Modes ...................................  6
       3.2.  Operation Mode 1 Additives .............................  8
   4.  Purging Extended LSP Fragments ............................... 10
   5.  Modifications to LSP handling in SPF ......................... 10
   6.  Forming Adjacencies .......................................... 11
   7.  Interoperating between extension-capable and non-capable ISs . 11
   8.  Security Considerations ...................................... 12
   9.  Acknowledgements ............................................. 12
   10. References ................................................... 12
   11. Authors' Addresses ........................................... 13
   12. Full Copyright Statement ..................................... 14

1. Introduction โœจ

okay so in IS-IS, a system floods its link-state info in Link State PDU (LSP) Data Units, or LSPs for short ๐Ÿ“ These logical LSPs can get seriously big, so the protocol has a way to chop that info into multiple LSP fragments โœ‚๏ธ The number of fragments a system can generate is capped by ISO/IEC 10589 [ISIS-ISO] at 256 fragments, and each fragment's size is capped too. So yeah, there's a limit on how much link-state info a system can generate ๐Ÿ’€

A bunch of things can push you past that limit:

  • Introduction of new TLVs and sub-TLVs to be included in LSPs. ๐Ÿงš
  • The use of LSPs to propagate various types of information (such as traffic-engineering information). ๐Ÿ“ก
  • The increasing number of destinations and AS topologies. ๐ŸŒธ
  • Finer granularity routing, and the ability to inject external routes into areas [DOMAIN-WIDE]. ๐Ÿฆ‹
  • Other emerging technologies, such as optical, IPv6, etc. โœจ

This document describes mechanisms to relax the limit on the number of LSP fragments ๐Ÿ’–

1.1. Keywords ๐Ÿ”‘

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 BCP 14, RFC 2119 [BCP14].

1.2. Definitions of Commonly Used Terms ๐Ÿ“š

This section gives definitions for the terms used throughout the text, so you're never lost ๐Ÿซถ

  • Originating System: A router physically running the IS-IS protocol. As this document describes methods allowing a single IS-IS process to advertise its LSPs as multiple "virtual" routers, the Originating System represents the single "physical" IS-IS process. ๐Ÿ–ฅ๏ธ
  • Normal system-id: The system-id of an Originating System. ๐Ÿชช
  • Additional system-id: An Additional system-id that is assigned by the network administrator. Each Additional system-id allows generation of 256 additional, or extended, LSP fragments. The Additional system-id, like the Normal system-id, must be unique throughout the routing domain. ๐Ÿ”
  • Virtual System: The system, identified by an Additional system-id, advertised as originating the extended LSP fragments. These fragments specify the Additional system-id in their LSP IDs. ๐Ÿ‘ฏ
  • Original LSP: An LSP using the Normal system-id in its LSP ID. ๐ŸŒฑ
  • Extended LSP: An LSP using an Additional system-id in its LSP ID. ๐ŸŒŸ
  • LSP set: Logical LSP. This term is used only to resolve the ambiguity between a logical LSP and an LSP fragment, both of which are sometimes termed "LSP". ๐Ÿง 
  • Extended LSP set: A group of LSP fragments using an Additional system-id, and originated by the Originating System. ๐ŸŽ€
  • Extension-capable IS: An IS implementing the mechanisms described in this document. ๐Ÿ’…

1.3. Operation Modes ๐ŸŽ›๏ธ

There are two administrative operation modes:

  • Operation Mode 1 provides behavior that allows implementations that don't support this extension, to correctly process the extended fragment information, without any modifications. This mode has some restrictions on what may be advertised in the extended LSP fragments. Namely, only leaf information may be advertised in the extended LSPs. ๐Ÿƒ
  • Operation Mode 2 extends the previous mode and relaxes its advertisement restrictions. Any link-state information may be advertised in the extended LSPs. However, it mandates a change to the way LSPs are considered during the SPF algorithm, in a way that is not compatible with previous implementations. ๐Ÿ”ฅ

These modes are configured on a per-level and area basis. That is, all LSPs considered in the same SPF instance MUST use the same Mode. There is no restriction that an L1/L2 IS operates in the same mode, for both its L1 and L2 instances. It can use Mode 1 for its L1 LSPs, and Mode 2 for its L2 LSPs, or vice versa. ๐Ÿ”„

Mode 1 has the only advantage of being backwards compatible with older implementations. It does have restrictions which are considered drawbacks. Therefore, routers should operate in Mode 1 only if backwards compatibility is desired. Otherwise, it is recommended to run in Mode 2. ๐Ÿค”

Routers MAY implement Operational Mode 2 without supporting running in Operational Mode 1. They will still interoperate correctly with routers that support both modes. ๐Ÿค

1.4. Overview ๐Ÿ—บ๏ธ

Using Additional system-ids assigned by the administrator, the Originating System can advertise the excess link-state information in extended LSPs under these Additional system-ids. It does this as if other routers, or "Virtual Systems", were advertising this information. These extended LSPs will also have the specified limit on their LSP fragments. However, the Originating System may generate extended LSPs under numerous Virtual Systems ๐Ÿช„

For Operation Mode 1, 0-cost adjacencies are advertised from the Originating System to its Virtual System(s). No adjacencies (other than back to the Originating System) are advertised in the extended LSPs. As a consequence, the Virtual Systems are 'stub', meaning they can only be reached through their Originating System. Therefore, older implementations do not need modifications in order to correctly process these extended LSPs. ๐Ÿงธ

For both modes, each LSP (set) created by a node will contain in its fragment-0 a new TLV (IS Alias ID TLV) that contains the Normal system-id and PN Number of the Original LSP created by the router. Extension-capable ISs can then use this information and store the original and extended LSPs as one logical LSP. ๐Ÿ”—

The only sections that deal only with Mode 1 additions are 3.2, 3.2.1, and 3.2.2. All other sections relate to both modes. ๐Ÿ“Œ

2. IS Alias ID TLV (IS-A) ๐Ÿชž

The proposed IS-A TLV lets extension-capable ISs recognize all LSPs of an Originating System, and combine the original and extended LSPs for the purpose of SPF computation. It identifies the Normal system-id of the Originating System. ๐Ÿ‘‘

The proposed IS Alias ID TLV is type 24, and its format is as follows:

  • CODE - 24.
  • LENGTH - total length of the value field.
  • VALUE -
                        No. of Octets
  +-------------------+
  | Normal system-id  |      6
  +-------------------+
  | Pseudonode number |      1
  +-------------------+
  | Sub-TLVs length   |      1
  +-------------------+
  |                   |     0-247
  : Sub-TLVs          :
  :                   :
  |                   |
  +-------------------+

Normal system-id The Normal system-id of the LSP set, as described in section 1.2 of this document.

Pseudonode number The Pseudonode number of the LSP set. LSPs with the same Normal system-id and Pseudonode number are considered in SPF as one logical LSP, as described in section 5 of this document. ๐Ÿงฉ

Sub-TLVs length Total length of all sub-TLVs.

Sub-TLVs A series of tuples with the following format:

                     No. of Octets
+-------------------+
| Sub-type          |      1
+-------------------+
| Length            |      1
+-------------------+
|                   |     0-245
: Value             :
:                   :
|                   |
+-------------------+

Sub-type Type of the sub-TLV

Length Total length of the value field

Value Type-specific TLV payload.

For an explanation on sub-TLV handling, see [ISIS-TE].

Without sub-TLVs, this structure consumes 8 octets per LSP set. This TLV MUST be included in fragment 0 of every LSP set belonging to an Originating System running in either Mode 1 or Mode 2. Currently, there are no sub-TLVs defined. ๐Ÿšจ

For a complete list of used IS-IS TLV numbers, see [ISIS-CODES]. ๐Ÿ“–

3. Generating LSPs ๐ŸŒธ

3.1. Both Operation Modes โœจ

okay so under both modes, the Originating System MUST include info that binds the Original LSP and the Extended ones together ๐Ÿซถ It can do this easily because it's already an extension-capable IS, so it's trivially set up for it ๐Ÿ’… The whole point is that other extension-capable routers handle the extra info correctly in their SPF calculation. This binding gets advertised in a brand new IS Alias ID TLV, which shows up in all fragment 0 of Original and Extended LSPs ๐Ÿฆ‹

+---------------------------------------------+
|  Originating System                         |
|  system-id   = S                            |
|  is-alias-id = S                            |
+---------------------------------------------+

+-------------------+     +-------------------+
|  Virtual System   |     |  Virtual System   |
|  system-id   = S' |     |  system-id   = S''|
|  is-alias-id = S  |     |  is-alias-id = S  |
+-------------------+     +-------------------+

Figure 1. Advertising binding between all of a system's LSPs (both modes). S' and S'' are configured as Additional system-ids.

When new extended LSP fragments get generated, they should be made the way ISO/IEC 10589 [ISIS-ISO] describes ๐Ÿงš Also, a system SHOULD treat its extended LSPs the same as its original LSPs, except for the exceptions in the sections that follow. Creating, flooding, renewing, purging and everything else are basically the same for Original and Extended LSPs, unless it says otherwise ๐Ÿ’– The Extended LSPs use one of the Additional system-ids configured for the router in their LSP ID.

Extended LSP fragment zero should get the same special treatment that ISO/IEC 10589 gives LSPs with number zero, and it should carry the same kinds of extra info that ISO/IEC 10589 and RFC 1195 [ISIS-IP] call for ๐Ÿ‘‘ For example, if a system reissues its LSP fragment zero because of an area address change, it should reissue all extended LSPs fragment zero as well.

An extended LSP fragment zero MUST be generated for every extended LSP set, so a router's SPF calculation can consider those fragments in that set. See section 5 for details ๐Ÿ”ฅ

3.1.1. The Attached Bits ๐ŸŒธ

The Attached (ATT) bits SHOULD be set to zero for all four metric types, on all Extended LSPs. Here's why: if a Virtual System is reachable, so is its Originating System. So it's way better for an L1 IS to pick the Originating System, not the Virtual System, as its nearest L2 exit point. Connectivity to the Virtual System has a higher chance of getting lost (because the extended LSP stops being advertised), and that could cause unnecessary computations on some implementations ๐Ÿ™ˆ

3.1.2. The Partition Repair Bit ๐Ÿฆ‹

The Partition Repair (P) bit SHOULD be set to zero on all extended LSPs. It's for the same reasons as the Attached bits ๐Ÿ’…

3.1.3. ES Neighbors TLV ๐ŸŽ€

ISO/IEC 10589 [ISIS-ISO] section 7.3.7 says to insert an ES Neighbor TLV in L1 LSPs, with the system ID of the router. RFC 1195 [ISIS-IP] lets IP-only routers skip this requirement. But for routers that do insert this ESN TLV in L1 LSPs (IP-only or OSI-capable), the ESN TLV in an extended LSP should include the relevant Additional system-id. Also, OSI-capable routers should accept packets destined for this Additional system-id โœจ

3.1.4. Overload Bit ๐Ÿ“

The overload bit should be set consistently across all LSPs, original and extended, that belong to an Originating System. It should reflect the Originating System's overload state ๐ŸŒˆ

3.1.5. Other Fields and TLVs ๐Ÿง

Other fields and TLVs that aren't mentioned above stay the same, for both original and extended LSPs ๐Ÿ’œ

3.2. Operation Mode 1 Additions ๐Ÿ’…

These additions only apply to routers generating LSPs in Mode 1. Routers configured to operate in Operation Mode 2 SHOULD NOT apply these additions to their advertisements ๐Ÿ™…โ€โ™€๏ธ

Under Operation Mode 1, adjacencies from the Originating System to its Virtual Systems are advertised using the standard neighbor TLVs. The metric for these connections MUST be zero, because reaching a Virtual System costs the same as reaching its Originating System ๐Ÿฆ‹

Here's the tea: to older implementations, Virtual Systems would only look reachable through their Originating System. So if you lose connectivity to the Originating System, you lose connectivity to all of its info, including the stuff advertised in its extended LSPs ๐Ÿ˜ญ Also, the cost of reaching info in non-extended LSPs is the same as the cost of reaching info in the new extended LSPs, plus one extra hop.

+---------------------------------------------+
|         Originating System                  |
|         system-id = S                       |
|         is-alias-id = S                     |
+---------------------------------------------+
       |    /\                    |    /\
cost=0 |    |cost=max-1    cost=0 |    |cost=max-1
       |    |                     |    |
       \/   |                     \/   |
+-------------------+     +-------------------+
|  Virtual System   |     |  Virtual System   |
|  system-id   = S' |     |  system-id   = S''|
|  is-alias-id = S  |     |  is-alias-id = S  |
+-------------------+     +-------------------+

Figure 2. Advertising connections to Virtual Systems under Operation Mode 1. S' and S'' are configured as Additional system-ids.

Under Operation Mode 1, only "leaf" information (info that only acts as a leaf in a shortest path tree) can be advertised in extended LSPs ๐ŸŒฟ

When an Extended LSP belonging to Additional system-id S' is first created, the Original LSP MUST specify S' as a neighbor, with the metric set to zero. This makes the cost of reaching the Virtual System S' the same as reaching its Originating System ๐Ÿงš Also, the Extended LSP MUST specify the Normal system-id as a neighbor. The metric SHOULD be set to MaxLinkMetric - 1. (This is only for uniformity; any metric greater than zero is fine.) This is so other routers can pass the two-way connectivity check ๐Ÿ’– Where relevant, this adjacency SHOULD be considered point-to-point.

Heads up: the restriction in ISO/IEC 10589 section 7.2.5 still holds. If an LSP Number zero of the Originating System isn't present, none of that system's neighbor entries get processed during SPF, so none of its extended LSPs get processed either ๐Ÿ˜ฌ

3.2.1. IS Neighbors TLV (Mode 1 Only) ๐ŸŽ€

An Extended LSP must specify only the Originating System as a neighbor, with the metric set to (MaxLinkMetric - 1). Where relevant, this adjacency should be considered point-to-point. Other neighbors MUST NOT be specified in an Extended LSP, because those other neighbors would only specify the Originating System and not the Virtual System. That means they wouldn't pass the bi-directionality check in the SPF computation ๐Ÿ™ˆ

3.2.2. Originating System in the Overload State in (Mode 1 Only) ๐ŸŒ™

If the Originating System is in the overload state, the info in its extended LSPs won't be processed by other routers in their SPF computation. That's because in Mode 1, extended LSPs are only reachable through adjacencies from the Original LSP. If that LSP has its OL bit set, the adjacencies won't be processed in the SPF computation ๐Ÿ˜ญ

This side effect should be taken into consideration when operating in Mode 1 โœจ

4. Purging Extended LSP Fragments ๐Ÿงน

ISO/IEC 10589 [ISIS-ISO] section 7.3.4.4 note 25 suggests that an implementation keeps the number of LSP fragments within a certain limit, based on the optimal (minimal) number of fragments needed. Section 7.3.4.6 also recommends that an IS purge its empty LSPs to conserve resources. These recommendations hold for the extended LSP fragments too ๐Ÿ’… However, an extended LSP fragment zero should not be purged until all of the fragments in its set (meaning, the ones belonging to a particular Additional system-id) are empty as well. This makes sure implementations consider those fragments in their SPF computations, as section 7.2.5 specifies ๐Ÿฆ‹

In Operational Mode 1, once all the extended LSP fragments of a particular Additional system-id S' have been purged, the Originating System SHOULD remove the neighbor information for S' from its original LSPs ๐ŸŒธ

5. Modifications to LSP handling in SPF ๐Ÿ”ฅ

This section describes the changes to how extension-capable ISs handle LSPs for the SPF computation ๐Ÿ‘‘

When considering LSPs of an extension-capable IS (identified by the inclusion of the IS Alias ID TLV), the original and extended LSPs get combined to form one big logical LSP. If the LSP belongs to an IS running Operational Mode 1, there might be adjacencies between the original and extended LSPs. These get trivially ignored (since, by the time they're processed, the large logical LSP is already on PATHS), so they don't complicate the SPF. Also, this check should already be implemented, since this scenario could happen on error even without this extension ๐Ÿ™ˆ

If LSP fragment 0 of the Original LSP set is missing, or its RemainingLifetime is zero, then all of the LSPs generated by that Originating System (Extended ones too) MUST NOT be considered in the SPF. In other words, the large logical LSP isn't considered in the SPF ๐Ÿ˜ญ The original LSP fragments are identified when the is-alias-id value matches the system-id of those LSPs. If an LSP fragment 0 of an extended LSP set is missing, or its RemainingLifetime is zero, only that LSP set MUST NOT be considered in the SPF. These rules exist to make sure SPF results are consistent for Mode 1 and Mode 2 LSPs ๐Ÿ’–

Note that the above behavior matches how previous implementations interpret Mode 1 LSPs ๐Ÿงš

6. Forming Adjacencies ๐Ÿซถ

Worth noting: an IS MUST use the system-id of the LSP that will include a neighbor when forming an adjacency with that neighbor. So if a neighbor is going to be included in extended LSP S', then S' should be used as the system-id in IS Hellos [3] and IS-IS Hellos when forming that adjacency. This applies regardless of the Operational Mode. Of course, in Mode 1 that means only the Normal system-id gets used when sending hellos ๐ŸŒˆ

7. Interoperating between extension-capable and non-extension-capable ISs โœจ

okay so bestie, listen ๐Ÿ‘‚ to hit the Operation Mode 2 glow-up and advertise link-state info correctly, all ISs in an area must be extension-capable ๐Ÿ’…. BUT ๐Ÿซข you don't have to upgrade every single router if the extended info isn't routing info. it can be data that only a few routers care about, like optical switches running IS-IS carrying optical-specific stuff in extended LSPs. the way that's so smart ๐Ÿง โœจ

now, if a live network has routers going past the 256 fragment limit ๐Ÿ˜ณ, and the upgrade has to happen bit by bit for some reason, you can transition the whole network with these steps:

  • Upgrade the routers, one-by-one, to run this extension in Operation Mode 1. The other non-extension-capable routers will interoperate correctly. ๐ŸŒฑ
  • When all routers are extension-capable, configure them one-by-one to run in Operation Mode 2. All extension-capable routers interoperate correctly, regardless of what mode they are run in. ๐Ÿ’–

Implementations SHOULD support a configuration parameter controlling the LSP origination behavior. The default value of this parameter SHOULD correspond to the behavior described in [ISIS-ISO], i.e., neither of the two modes described in this document should be enabled without explicit configuration when the router software is upgraded with this extension. so basically, the default is chill ๐Ÿ˜Œ and you opt IN to the fancy modes on purpose. no surprise upgrades, periodt ๐ŸŽ€


8. Security Considerations ๐Ÿ”

This document raises no new security issues for IS-IS. ๐Ÿ˜ฎโ€๐Ÿ’จ phew, the spec is literally saying the vibe stays the same security-wise, but we still take that seriously because nobody wants a surprise ๐Ÿ’€

9. Acknowledgments ๐Ÿซถ

The authors would like to thank Tony Li and Radia Perlman for helpful comments and suggestions on the subject. ๐ŸŒธ shoutout to the legends who gave their feedback, they're iconic ๐Ÿ‘‘

10. References ๐Ÿ“š

10.1. Normative References

[ISIS-ISO]    "Intermediate System to Intermediate System Intra-
              Domain Routeing Exchange Protocol for use in
              Conjunction with the Protocol for Providing the
              Connectionless-mode Network Service (ISO 8473)",
              ISO/IEC 10589:2002, Second Edition.

[ISIS-IP]     Callon, R., "Use of OSI IS-IS for routing in TCP/IP and
              dual environments", RFC 1195, December 1990.

[ISIS-TE]     Smit, H. and T. Li, "Intermediate System to
              Intermediate System (IS-IS) Extensions for Traffic
              Engineering (TE)", RFC 3784, May 2004.

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

10.2. Informative References

[DOMAIN-WIDE] Li, T., Przygienda, T. and H. Smit, "Domain-wide Prefix
              Distribution with Two-Level IS-IS", RFC 2966, October
              2000.

[ISIS-CODES]  Przygienda, T., "Reserved Type, Length and Value (TLV)
              Codepoints in Intermediate System to Intermediate
              System", RFC 3359, August 2002.

11. Authors' Addresses ๐Ÿ’Œ

Amir Hermelin
Montilio Inc.
1 Maskit St.
POB 12253
Herzelia, 46733
ISRAEL

Phone: +972 9 9511944
Fax: +972 9 9542430
EMail: amir@montilio.com
Stefano Previdi
Cisco Systems, Inc.
Via Del Serafico 200
00142 Roma
Italy

Phone: +39 06 5164 4491
EMail: sprevidi@cisco.com
Mike Shand
Cisco Systems
250, Longwater Avenue,
Green Park,
Reading,
RG2 6GB,
UK

Phone: +44 20 8824 8690
EMail: mshand@cisco.com

Copyright (C) The Internet Society (2004). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property ๐Ÿฆ‹

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.

Acknowledgement ๐ŸŒˆ

Funding for the RFC Editor function is currently provided by the Internet Society. ๐Ÿ’œ that's the whole story, bestie โœจ

๐Ÿ“ฆ where this page comes from