RFC 8202

IS-IS Multi-Instance

๐Ÿ“… published June 2017, from ietf

RFC 8202: IS-IS Multi-Instance ๐Ÿ’–

  • Authors: L. Ginsberg and S. Previdi (Cisco Systems), W. Henderickx (Nokia) ๐ŸŽ€
  • Category: Standards Track ๐Ÿ”ฅ
  • Date: June 2017 ๐Ÿฆ‹
  • ISSN: 2070-1721 โœจ
  • Obsoletes: RFC 6822 ๐Ÿ’…

Abstract

okay so this doc is about a way for one router to share one or more circuits between multiple IS-IS routing protocol instances ๐Ÿงš each instance gets its own resources, so they stay isolated and don't step on each other's toes. routers form instance-specific adjacencies, and each instance can support multiple topologies. every topology gets its own unique Link State Database (LSDB) ๐ŸŒˆ and every Protocol Data Unit (PDU) carries a brand new Type-Length-Value (TLV) that says which instance and topology (or topologies) it belongs to. it's giving organized ๐Ÿ“ฆ

this document obsoletes RFC 6822 ๐Ÿ’œ

Status of This Memo

this is an Internet Standards Track document โœจ

it's a product of the Internet Engineering Task Force (IETF) and it represents the consensus of the IETF community ๐Ÿซถ it went through public review and got approved for publication by the Internet Engineering Steering Group (IESG). if you want more info on Internet Standards, check out Section 2 of RFC 7841.

for the current status, any errata, and how to send feedback, go to http://www.rfc-editor.org/info/rfc8202 ๐Ÿ”—

the Copyright is held by the IETF Trust and the people listed as document authors (2017), and all rights are reserved ๐Ÿ’ผ this doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents, which you can find at http://trustee.ietf.org/license-info as they stood on the publication date. please actually read those, bestie, because they spell out your rights and restrictions. any Code Components pulled out of this document must include the Simplified BSD License text described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as the Simplified BSD License describes ๐Ÿ™ˆ

Table of Contents

   1. Introduction ....................................................3
   2. Requirements Language ...........................................4
   3. Elements of Procedure ...........................................4
      3.1. Instance Identifier TLV ....................................4
      3.2. Instance Membership ........................................6
      3.3. Use of Authentication ......................................6
      3.4. Adjacency Establishment ....................................6
           3.4.1. Point-to-Point Adjacencies ..........................6
           3.4.2. Multi-Access Adjacencies ............................7
      3.5. Update Process Operation ...................................7
           3.5.1. Update Process Operation on Point-to-Point
                  Circuits ............................................7
           3.5.2. Update Process Operation on Broadcast Circuits ......7
      3.6. Interoperability Considerations ............................7
           3.6.1. Interoperability Issues on Broadcast Circuits .......8
           3.6.2. Interoperability Using Point-to-Point Circuits ......9
   4. Usage Guidelines ................................................9
      4.1. One-to-One Mapping between Topologies and Instances .......10
      4.2. Many-to-One Mapping between Topologies and Instances ......10
      4.3. Considerations for the Number of Instances ................11
   5. Relationship to M-ISIS .........................................11
   6. Graceful Restart Interactions ..................................12
   7. IANA Considerations ............................................12
   8. Security Considerations ........................................12
   9. References .....................................................12
      9.1. Normative References ......................................12
      9.2. Informative References ....................................14
   Appendix A. Changes to RFC 6822 ...................................15
   Acknowledgements ..................................................15
   Authors' Addresses ................................................16

1. Introduction ๐ŸŒธ

okay so the protocol in [ISO10589] has a big limitation: only one instance of it can run on a given circuit ๐Ÿ˜ค this doc adds an extension to IS-IS that fixes that. the extension is called "Multi-Instance IS-IS" (MI-IS-IS).

routers that support this extension are called "Multi-Instance-capable routers" (MI-RTR) ๐Ÿ‘‘

using multiple instances makes it way easier to isolate the resources for each instance, both inside a router and across the whole network ๐Ÿ’… you can set instance-specific priorities for processing PDUs and running routing calculations inside a router. you can also define instance-specific flooding parameters, so different instances can use network-wide resources at different rates. main character energy for every instance ๐Ÿฆ‹

there's another limitation too: a given instance only supports a single Update Process running on a single LSDB ๐Ÿ™ƒ this doc lets non-zero instances run multiple Update Processes. each Update Process is tied to a topology and its own unique topology-specific LSDB. non-zero instances are only supported by MI-RTRs, and legacy routers just run the standard (zero) instance. the standard instance doesn't change at all because of the extensions in this doc, so nothing breaks for the old crew ๐Ÿซถ

MI-IS-IS might be used for topology-specific routing ๐Ÿ—บ๏ธ this doc defines two ways to do that. one uses [RFC5120] inside a reserved instance-specific topology. the other is an alternative to [RFC5120] that floods link state information on a topology-specific basis.

MI-IS-IS might also be used to advertise information on behalf of applications [RFC6823]. that means info that isn't directly about how IS-IS works can be advertised without messing too much with routing ๐Ÿงš

those are just examples of how MI-IS-IS might be used. specifying the actual uses of MI-IS-IS is outside the scope of this document โœจ

2. Requirements Language ๐ŸŽ€

the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. so if it's not in all caps, it's just regular vibes ๐Ÿ’œ

3. Elements of Procedure ๐Ÿ”ฅ

an Instance Identifier (IID) is introduced to uniquely identify an IS-IS instance ๐Ÿชช the protocol extension adds a new TLV (IID-TLV) to every IS-IS PDU that an MI-RTR originates, unless this document says otherwise. the IID-TLV tells you which unique instance the PDU is for, plus the instance-specific topology (or topologies) it applies to. each IS-IS PDU belongs to only one IS-IS instance.

MI-RTRs form instance-specific adjacencies. the IID-TLV in IS-IS Hellos (IIHs) carries the IID and the set of Instance-specific Topology Identifiers (ITIDs) that the sending IS supports ๐ŸŒˆ when multiple instances share the same circuit, each one keeps its own separate set of adjacencies.

MI-RTRs support exchanging topology-specific Link State PDUs for the IID/ITID pairs each neighbor supports ๐Ÿ’– a unique IS-IS Update Process (see [ISO10589]) runs for each IID/ITID pair. this MAY also mean IID/ITID-specific routing calculations and IID/ITID-specific routing and forwarding tables. however, that part is outside the scope of this spec ๐Ÿ™ˆ

how a router actually separates IS-IS instances and topology-specific Update Processes internally is also outside the scope of this spec ๐Ÿซ 

3.1. Instance Identifier TLV ๐Ÿงš

a new TLV gets defined so we can convey the IID and the ITIDs being supported โœจ the IID-TLV ties a PDU to an IS-IS instance using a unique 16-bit number. the IID-TLV goes in every IS-IS PDU associated with a non-zero instance, and that includes IIHs, Sequence Number PDUs (SNPs), and Link State PDUs (LSPs) ๐ŸŽ€

multiple instances of IS-IS can coexist on the same circuit and on the same physical router ๐Ÿ‘ฏ IIDs MUST be unique within the same routing domain, no exceptions bestie ๐Ÿ˜ค

IID #0 is reserved for the standard instance that legacy systems support. IS-IS PDUs for the standard instance MUST NOT include an IID-TLV, except where this document says so ๐Ÿ™…โ€โ™€๏ธ

the IID-TLV MAY include one or more ITIDs ๐Ÿ’… an ITID is a 16-bit identifier, and every value from 0 to 65535 is valid.

here's the format for the IID-TLV ๐Ÿ“ฆ

     Type:   7
     Length: 2 - 254
     Value:
                                            No. of octets
                 +-------------------------+
                 | IID (0 - 65535)         |     2
                 +-------------------------+
                 | Supported ITID          |     2
                 +-------------------------+
                 :                         :
                 +-------------------------+
                 | Supported ITID          |     2
                 +-------------------------+

when the IID = 0, the list of supported ITIDs MUST NOT be present ๐Ÿšซ

an IID-TLV with IID = 0 MUST NOT show up in an SNP or LSP ๐Ÿ™…โ€โ™€๏ธ when the TLV does show up in an SNP or LSP with a non-zero IID, exactly one ITID MUST be present. that ITID tells you which instance-specific topology the PDU is for ๐ŸŽฏ if there are no ITIDs, multiple ITIDs, or the IID is zero, then the PDU MUST be ignored. ignored, periodt ๐Ÿ’€

when the IID is non-zero and the TLV shows up in an IIH, the IIH includes the set of ITIDs supported on the circuit it's sent over ๐ŸŒธ there MUST be at least one ITID present.

ITID #0 is reserved for a specific use case that we'll get to later in this document ๐Ÿ”ฎ ITID #0 MUST NOT be supported in combination with any non-zero ITID. if an IIH advertises multiple ITIDs and one of them is #0, then the PDU MUST be ignored ๐Ÿฅฒ

multiple IID-TLVs MAY appear in IIHs ๐ŸŒˆ if they do, and the IID value isn't the same across all of them, then the PDU MUST be ignored. no mixing IIDs, sis ๐Ÿ˜ญ

a single IID-TLV can advertise up to 126 ITIDs ๐Ÿ’– if multiple IID-TLVs are in one IIH PDU, the supported set of ITIDs is the union of all ITIDs across all the IID-TLVs ๐Ÿซถ

when an LSP purge gets initiated, the IID-TLV MUST be kept, but the rest of the LSP body SHOULD be removed ๐Ÿงน the purge procedure is described in [RFC6233] and [RFC6232].

it's recommended that the IID-TLV(s), when present, be the first TLV(s) in the PDU ๐Ÿฅ‡ that way you can figure out which instance a PDU belongs to way faster โšก

a PDU without an IID-TLV belongs to the standard instance โœจ

3.2. Instance Membership โœจ

Okay so every MI-RTR gets set up to take part in one or more IS-IS instances ๐Ÿงš. For each non-zero instance it's in, it stamps the IS-IS PDUs it makes for that instance (IIHs, LSPs, or SNPs) by including the IID-TLV with the right instance identifier ๐Ÿท๏ธ. The label does all the work here ๐Ÿ’….

3.3. Use of Authentication ๐Ÿ”

When authentication is in play, the IID (if it's there) gets used first to pick out the authentication config that applies ๐ŸŽฏ. Then the authentication check runs like normal ๐Ÿซถ. When multiple ITIDs are supported, ITID-specific authentication MAY be used in SNPs and LSPs ๐ŸŒธ.

3.4. Adjacency Establishment ๐Ÿค

So to set up adjacencies, IS-IS routers swap IIH PDUs ๐Ÿ’Œ. There are two kinds of adjacency in IS-IS: point-to-point and broadcast ๐Ÿฆ‹. The subsections below lay out the extra rules an MI-RTR MUST follow when it's establishing adjacencies for non-zero instances ๐Ÿ“‹.

3.4.1. Point-to-Point Adjacencies

MI-RTRs put the IID-TLV in the point-to-point Hello PDUs for the non-zero instances they originate ๐ŸŽ€. When an IIH comes in, an MI-RTR checks the IID-TLV it got. If that IID matches any IID the router supports on that circuit, the normal adjacency setup kicks in and builds an instance-specific adjacency โœจ. No IID-TLV at all means IID #0 ๐Ÿ˜Œ. For instances other than IID #0, an adjacency SHOULD NOT be established unless there's at least one ITID in common ๐Ÿ™…โ€โ™€๏ธ.

This extension lets an MI-RTR set up multiple adjacencies with the same physical neighbor over one point-to-point circuit ๐Ÿ‘ฏโ€โ™€๏ธ. Still, since the instances are logically independent, the usual expectation of at most one neighbor on a given point-to-point circuit still applies ๐Ÿ’….

3.4.2. Multi-Access Adjacencies

Multi-access (broadcast) circuits work differently from point-to-point ๐ŸŒŠ. PDUs sent by one router are visible to all routers, and all routers must agree on who gets elected Designated Intermediate System (DIS), no matter which ITIDs each one supports ๐Ÿ—ณ๏ธ.

MI-RTRs set up adjacencies and elect a DIS per IS-IS instance ๐Ÿซง. Each MI-RTR only forms adjacencies with routers that advertise support for the instances the local router is configured to support on that circuit ๐Ÿคณ. Since an MI-RTR isn't required to support every possible instance on a LAN, it's possible to elect a different DIS for different instances ๐Ÿ™ƒ.

3.5. Update Process Operation ๐Ÿ”„

For non-zero instances, there's a unique Update Process for each supported ITID โœจ.

3.5.1. Update Process Operation on Point-to-Point Circuits

On point-to-point circuits (including Point-to-Point Operation over LAN [RFC5309]) ๐Ÿ›ค๏ธ, the ITID-specific Update Process only operates on that circuit, and only for the ITIDs that both ISs on the circuit support ๐Ÿซถ.

3.5.2. Update Process Operation on Broadcast Circuits

On broadcast circuits, a single DIS is elected for each supported IID, no matter which ITIDs are advertised in LAN IIHs ๐Ÿ‘‘. That requires the DIS to generate pseudo-node LSPs for all supported ITIDs, and the Update Process for all supported ITIDs to operate on the broadcast circuit ๐Ÿ“ก. Among MI-RTRs on a broadcast circuit, if the set of supported ITIDs for a given non-zero IID is inconsistent, connectivity for the topology (or topologies) tied to the ITIDs that some MI-RTRs don't support can be compromised ๐Ÿ’€.

3.6. Interoperability Considerations ๐Ÿงฉ

[ISO10589] requires that any TLV that isn't understood be silently ignored without compromising the processing of the whole IS-IS PDU (IIH, LSP, SNP) ๐Ÿ™ˆ.

To a router that doesn't implement this extension, every IS-IS PDU it receives will look like it belongs to the standard instance, whether or not an IID-TLV is present ๐Ÿ˜ญ. This can cause interoperability issues unless the mechanisms and procedures discussed below are followed ๐Ÿšจ.

3.6.1. Interoperability Issues on Broadcast Circuits

So routers can interoperate correctly with routers that don't implement this extension, and avoid causing disruption ๐Ÿซ , a specific, dedicated Media Access Control (MAC) address is used for multicasting IS-IS PDUs with any non-zero IID ๐ŸŽฏ. Each level uses its own specific Layer 2 multicast address ๐Ÿ—บ๏ธ. That address lets MI-RTRs exchange IS-IS PDUs with non-zero IIDs without those PDUs being processed by legacy routers, so no disruption is caused โœจ.

When sending SNPs, LSPs, and LAN IIHs for the standard instance (IID #0), an MI-RTR will use either the AllL1IS or the AllL2IS MAC-layer addresses (as defined in [ISO10589]) as the destination address ๐Ÿ . When sending SNPs, LSPs, and LAN IIHs for any non-zero IID, an MI-RTR MUST use one of two new dedicated Layer 2 multicast addresses (AllL1MI-ISs or AllL2MI-ISs) as the destination address ๐ŸŒŸ. Those addresses are specified in Section 7 ๐Ÿ“–.

MI-RTRs MUST discard IS-IS PDUs received if either of the following is true ๐Ÿ—‘๏ธ:

  • The destination multicast address is AllL1IS, AllL2IS, or AllIS and the PDU contains an IID-TLV.
  • The destination multicast address is AllL1MI-ISs or AllL2MI-ISs and the PDU contains an IID-TLV with a zero value for the IID or has no IID-TLV.
NOTE: If the multicast addresses AllL1IS, AllL2IS, and/or AllIS are improperly used to send IS-IS PDUs for non-zero IIDs, legacy systems will interpret these PDUs as being associated with IID #0. This will cause inconsistencies in the LSDB in those routers, may incorrectly maintain adjacencies, and may lead to inconsistent DIS election ๐Ÿ˜ฌ.

3.6.1.1. Special Considerations when Operating in Point-to-Point Mode

When operating in point-to-point mode on a broadcast circuit [RFC5309], an MI-RTR will use AllL1IS, AllL2IS, or AllIS MAC-layer addresses when sending SNPs, LSPs, and point-to-point IIHs associated with the standard instance ๐ŸŽ€. When sending SNPs, LSPs, and point-to-point IIHs for a non-zero IID, an MI-RTR MUST use one of the two new multicast addresses (AllL1MI-ISs or AllL2MI-IS) as the destination address ๐Ÿ’œ. When sending point-to-point IIHs for a non-zero IID, either address is permitted ๐Ÿ™Œ.

3.6.2. Interoperability Using Point-to-Point Circuits

For an MI-RTR to interoperate over a point-to-point circuit with a router that does NOT support this extension, the MI-RTR MUST NOT send IS-IS PDUs for instances other than IID #0 over that point-to-point circuit, since these PDUs may affect the state of IID #0 in the neighbor ๐Ÿฅบ.

The presence or absence of the IID-TLV in an IIH tells you whether the neighbor does or doesn't support this extension, respectively ๐Ÿง. So all IIHs an MI-RTR sends on a point-to-point circuit MUST include an IID-TLV, and that includes the IIHs for IID #0 ๐Ÿ’–. Once it's determined that the neighbor doesn't support this extension, the MI-RTR MUST NOT send PDUs (including IIHs) for instances other than IID #0 ๐Ÿšซ.

Until an IIH is received from a neighbor, an MI-RTR MAY send IIHs for a non-zero instance โณ. However, once an IIH with no IID-TLV has been received (which means the neighbor isn't an MI-RTR), the MI-RTR MUST NOT send IIHs for a non-zero instance ๐Ÿ›‘. That temporary relaxation on sending IIHs for non-zero instances lets a non-zero instance adjacency come up on an interface where an MI-RTR does NOT support the standard instance ๐ŸŒˆ.

Point-to-point adjacency setup MUST be done through the use of the three-way handshaking procedure as defined in [RFC5303] ๐Ÿค. That stops a non-MI-capable neighbor from bringing up an adjacency prematurely just because it received an IIH with an IID-TLV for a non-zero instance ๐Ÿ”’.

4. Usage Guidelines ๐Ÿ“š

As we talked about above, MI-IS-IS extends IS-IS to support multiple instances on a given circuit ๐ŸŽ€. Each instance is uniquely identified by the IID and forms instance-specific adjacencies ๐Ÿ†”. Each instance supports one or more topologies, represented by the ITIDs ๐Ÿ—บ๏ธ. All topologies associated with a given instance share the instance-specific adjacencies ๐Ÿค. The set of topologies supported by a given IID MAY differ from circuit to circuit ๐Ÿ”€. Each topology has its own set of LSPs and runs a topology-specific Update Process โœจ. Flooding of topology-specific LSPs is only performed on circuits where both the local router and the neighbor(s) support a given topology (i.e., advertise the same ITID in the set of supported ITIDs sent in the IID-TLV included in IIHs) ๐Ÿ“ฃ.

The following subsections give some usage guidelines for instances and topologies within each instance ๐Ÿ’ก. While this represents examples based on the intent of the authors, implementors are not constrained by the examples ๐Ÿ™Œ.

4.1. One-to-One Mapping between Topologies and Instances 1๏ธโƒฃ

When the set of information to be flooded in LSPs is intended to be flooded to all MI-RTRs supporting a given IID, a single topology MAY be used ๐ŸŽฏ. The information contained in the single LSDB MAY still contain information associated with multiple applications, since the GENINFO TLV for each application has an application-specific ID that identifies the application to which the TLV applies [RFC6823] ๐Ÿงพ.

4.2. Many-to-One Mapping between Topologies and Instances ๐Ÿ”—

When the set of information to be flooded in LSPs includes subsets that are of interest to a subset of the MI-RTRs supporting a given IID, support of multiple ITIDs allows each subset to be flooded only to those MI-RTRs that are interested in that subset ๐ŸŽฏ. In the simplest case, a one-to-one mapping between a given application and an ITID allows that application's information to be flooded only to MI-RTRs that support that application, but a many-to-one mapping between applications and a given ITID is also possible ๐Ÿ’ซ. When the set of application-specific information is large, using multiple ITIDs provides significantly greater efficiencies, since MI-RTRs only need to maintain the LSDB for applications of interest and that information only needs to be flooded over a topology defined by the MI-RTRs who support a given ITID ๐Ÿ“ˆ.

The use of multiple ITIDs also allows a full LSP set (256 LSPs at each level) to be dedicated to a given (set of) applications, which minimizes the possibility of exceeding the carrying capacity of an LSP set ๐Ÿง . That possibility could come up if information for all applications were included in a single LSP set ๐Ÿ˜ต.

Note that the topology associated with each ITID MUST be fully connected in order for ITID-specific LSPs to be successfully flooded to all MI-RTRs that support that ITID ๐Ÿ”Œ.

When multiple ITIDs are supported by an instance, ITID #0 MUST NOT be supported ๐Ÿšท.

4.3. Considerations for the Number of Instances ๐Ÿ”ข

Supporting multiple topologies within a single instance gives you better scalability for multiple applications, both in terms of how many adjacencies are required and how much topology-specific LSDB gets flooded ๐Ÿ“Š. In many cases, a single non-zero instance would be sufficient and optimal ๐Ÿ’ฏ. But when the set of topologies you want for one set of applications is largely disjoint from the set you want for a second set, it could make sense to use multiple instances ๐ŸŒธ.

5. Relationship to M-ISIS โœจ

okay so [RFC5120] is the spec that brings multi-topology routing to the party ๐Ÿ—บ๏ธ In that doc, 12-bit Multi-Topology Identifiers (MTIDs) pick out which topologies an IS-IS instance (a "standard instance" in this doc) supports. Big deal: there is no relationship between those MTIDs and the ITIDs we're defining here. Not the same thing, bestie ๐Ÿ™…โ€โ™€๏ธ

An MI-RTR MAY use the extensions in this document to support multiple topologies inside an instance with a non-zero IID. ๐Ÿ’… Each MI topology gets its own unique LSDB, identified by an ITID, and each ITID gets its own IS-IS Update Process running on it. This is different from [RFC5120], which uses one LSDB and one IS-IS Update Process for all the topologies. Iconic, honestly. If an MI-RTR uses the extensions for the BFD-Enabled TLV [RFC6213], the ITID MUST be used in place of the MTID. In that case, all 16 bits of the identifier field are useable ๐Ÿ”ฅ

An MI-RTR MAY support [RFC5120] multi-topology inside a non-zero instance when ITID #0 is supported. When ITID #0 is supported, it MUST be the only ITID supported by that instance. And if the MI-RTR uses the extensions for the BFD Enabled TLV [RFC6213], the [RFC5120] MTID MUST be used as specified in [RFC6213] ๐Ÿฆ‹

An MI-RTR MUST NOT support [RFC5120] multi-topology inside a non-zero instance when any non-zero ITID is supported. ๐Ÿ™ˆ Also, these TLVs MUST NOT be sent in an LSP associated with a non-zero instance that supports a non-zero ITID, and such an LSP MUST be ignored when received:

TLV 222 - MT IS Neighbors
TLV 235 - MT IP Reachability
TLV 237 - MT IPv6 Reachability

6. Graceful Restart Interactions ๐Ÿ”„

[RFC5306] defines the protocol extensions for graceful restart of a routing instance ๐Ÿงš Those extensions apply to MI-RTRs too, with one big plot twist: since every topology has its own LSP database, all of the topology-specific LSP databases must be synchronized after a restart for database synchronization to be complete. That's where the extra T2 timers come in. For the full story, go read [RFC5306] ๐Ÿ“š

7. IANA Considerations ๐ŸŒธ

IANA has registered an IS-IS TLV, which shows up in the "IS-IS TLV Codepoints Registry":

Value  Name                   IIH  LSP  SNP  Purge
----   ---------------------  ---  ---  ---  -----
 7     Instance Identifier     y    y    y     y

Per [RFC6822], IANA has also registered two EUI-48 multicast addresses from the IANA-managed EUI address space, as specified in [RFC7042]. They are:

01-00-5E-90-00-02 AllL1MI-ISs
01-00-5E-90-00-03 AllL2MI-ISs

All references to [RFC6822] in the "IS-IS TLV Codepoints Registry" and the "IANA Multicast 48-bit MAC Addresses" registry have been swapped out for references to this document. Clean ๐Ÿงผโœจ

8. Security Considerations ๐Ÿ”

Security concerns for IS-IS are addressed in [ISO10589], [RFC5304], and [RFC5310]. Please go read those, because they are the protection squad for this protocol. ๐Ÿ›ก๏ธ๐Ÿ’€

9. References ๐Ÿ“–

9.1. Normative References

[ISO10589]
           International Organization for Standardization,
           "Information technology -- Telecommunications and
           information exchange between systems -- Intermediate
           System to Intermediate System intra-domain routeing
           information exchange protocol for use in conjunction with
           the protocol for providing the connectionless-mode network
           service (ISO 8473)", ISO/IEC 10589:2002, Second Edition,
           November 2002.

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119,
           DOI 10.17487/RFC2119, March 1997,
           <http://www.rfc-editor.org/info/rfc2119>.

[RFC5120]  Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi
           Topology (MT) Routing in Intermediate System to
           Intermediate Systems (IS-ISs)", RFC 5120,
           DOI 10.17487/RFC5120, February 2008,
           <http://www.rfc-editor.org/info/rfc5120>.

[RFC5303]  Katz, D., Saluja, R., and D. Eastlake 3rd, "Three-Way
           Handshake for IS-IS Point-to-Point Adjacencies", RFC 5303,
           DOI 10.17487/RFC5303, October 2008,
           <http://www.rfc-editor.org/info/rfc5303>.

[RFC5304]  Li, T. and R. Atkinson, "IS-IS Cryptographic
           Authentication", RFC 5304, DOI 10.17487/RFC5304, October
           2008, <http://www.rfc-editor.org/info/rfc5304>.

[RFC5306]  Shand, M. and L. Ginsberg, "Restart Signaling for IS-IS",
           RFC 5306, DOI 10.17487/RFC5306, October 2008,
           <http://www.rfc-editor.org/info/rfc5306>.

[RFC5310]  Bhatia, M., Manral, V., Li, T., Atkinson, R., White, R.,
           and M. Fanto, "IS-IS Generic Cryptographic
           Authentication", RFC 5310, DOI 10.17487/RFC5310, February
           2009, <http://www.rfc-editor.org/info/rfc5310>.

[RFC6213]  Hopps, C. and L. Ginsberg, "IS-IS BFD-Enabled TLV",
           RFC 6213, DOI 10.17487/RFC6213, April 2011,
           <http://www.rfc-editor.org/info/rfc6213>.

[RFC6232]  Wei, F., Qin, Y., Li, Z., Li, T., and J. Dong, "Purge
           Originator Identification TLV for IS-IS", RFC 6232,
           DOI 10.17487/RFC6232, May 2011,
           <http://www.rfc-editor.org/info/rfc6232>.

[RFC6233]  Li, T. and L. Ginsberg, "IS-IS Registry Extension for
           Purges", RFC 6233, DOI 10.17487/RFC6233, May 2011,
           <http://www.rfc-editor.org/info/rfc6233>.

[RFC6822]  Previdi, S., Ed., Ginsberg, L., Shand, M., Roy, A., and D.
           Ward, "IS-IS Multi-Instance", RFC 6822,
           DOI 10.17487/RFC6822, December 2012,
           <http://www.rfc-editor.org/info/rfc6822>.

[RFC6823]  Ginsberg, L., Previdi, S., and M. Shand, "Advertising
           Generic Information in IS-IS", RFC 6823,
           DOI 10.17487/RFC6823, December 2012,
           <http://www.rfc-editor.org/info/rfc6823>.

[RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
           2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
           May 2017, <http://www.rfc-editor.org/info/rfc8174>.

9.2. Informative References

[Err4519]  RFC Errata, Erratum ID 4519, RFC 6822.

[Err4520]  RFC Errata, Erratum ID 4520, RFC 6822.

[RFC5309]  Shen, N., Ed. and A. Zinin, Ed., "Point-to-Point Operation
           over LAN in Link State Routing Protocols", RFC 5309,
           DOI 10.17487/RFC5309, October 2008,
           <http://www.rfc-editor.org/info/rfc5309>.

[RFC7042]  Eastlake 3rd, D. and J. Abley, "IANA Considerations and
           IETF Protocol and Documentation Usage for IEEE 802
           Parameters", BCP 141, RFC 7042, DOI 10.17487/RFC7042,
           October 2013, <http://www.rfc-editor.org/info/rfc7042>.

Appendix A. Changes to RFC 6822 ๐ŸŽ€

RFC 6822 banned Multi-Topology (MT) support as described in RFC 5120 inside a non-zero instance. ๐Ÿ™…โ€โ™€๏ธ But deployment experience since then showed people actually want RFC 5120-style MT in multiple non-zero instances, since it's a way to control leaking of information between L1 areas while also supporting incongruent topologies for different address families. So the rules got relaxed: you can use MT per RFC 5120 in a non-zero instance, as long as ITID #0 is the only instance topology (ITID) that instance supports. Heads up though, this change is not backwards compatible with implementations that strictly follow RFC 6822. As of writing, all known implementations are compatible with it, so we're good ๐Ÿ’–

A suggestion has been added to put the IID-TLV as the first TLV in a PDU, which speeds up recognizing the correct instance when parsing a received PDU ๐Ÿš€

It's now clarified that when operating in point-to-point mode on a broadcast circuit, the IID-TLV is only included in point-to-point IIHs associated with non-zero instances. This addresses Errata ID 4519 [Err4519] ๐Ÿ™Œ

The appropriate MAC multicast addresses to use when sending PDUs on a broadcast interface are now clarified for both standard instances and non-zero instances. This addresses Errata ID 4520 [Err4520] ๐Ÿ’…

Acknowledgements ๐Ÿซถ

The authors greatly appreciate Mike Shand, Abhay Roy, and Dave Ward for their work as coauthors of RFC 6822. We also note that RFC 6822 acknowledged contributions from Dino Farinacci and Tony Li ๐ŸŒˆ

The authors would also like to thank Paul Wells ๐Ÿงš

Authors' Addresses ๐Ÿ“ฌ

Les Ginsberg
Cisco Systems
821 Alder Drive
Milpitas, CA  95035
United States of America

Email: ginsberg@cisco.com


Stefano Previdi
Cisco Systems
Via Del Serafico 200
Rome  0144
Italy

Email: sprevidi@cisco.com


Wim Henderickx
Nokia
Belgium

Email: wim.henderickx@nokia.com
๐Ÿ“ฆ where this page comes from