RFC 2370

The OSPF Opaque LSA Option

๐Ÿ“… published July 1998, from ietf

RFC 2370: The OSPF Opaque LSA Option ๐Ÿฆ‹

Okay bestie, this one is from the Network Working Group and it's by R. Coltun at FORE Systems ๐ŸŒธ. It's dated July 1998 and it's a Standards Track doc, so it's an actual official protocol spec, not just an idea someone floated. It has a "See Also" pointer to RFC 2328 (that's the main OSPF spec, so this one is basically its add-on ๐Ÿ’…). The title block doesn't list any RFCs it obsoletes or updates, so this one isn't replacing or patching anything else.


Status of This Memo ๐Ÿ“œ

This document is an Internet standards track protocol spec for the Internet community, and the authors are asking for discussion and suggestions for improvements ๐Ÿ’ฌ. If you want to know where this protocol stands officially, check the current edition of "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited, so you can share it with literally anyone ๐ŸŒˆ.

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

Table Of Contents ๐Ÿ“š

1.0 Abstract .................................................  1
2.0 Overview .................................................  2
2.1 Organization Of This Document ............................  2
2.2 Acknowledgments ..........................................  3
3.0 The Opaque LSA ...........................................  3
3.1 Flooding Opaque LSAs .....................................  4
3.2 Modifications To The Neighbor State Machine ..............  5
4.0 Protocol Data Structures .................................  6
4.1 Additions To The OSPF Neighbor Structure .................  6
5.0 Management Considerations ................................  7
6.0 Security Considerations ..................................  9
7.0 IANA Considerations ...................................... 10
8.0 References ............................................... 10
9.0 Author's Information ..................................... 11
Appendix A: OSPF Data Formats ................................ 12
A.1 The Options Field ........................................ 12
A.2 The Opaque LSA ........................................... 13
Appendix B: Full Copyright Statment .......................... 15

1.0 Abstract โœจ

Okay so this memo adds new stuff to OSPF called Opaque LSAs (link-state advertisements) ๐ŸŽ€. Think of them as a general-purpose, future-proof container. Each one is a standard LSA header followed by application-specific info. OSPF can use that info directly, or other applications can use it. The usual OSPF link-state database flooding is used to spread them to all of the topology, or just a limited part of it ๐Ÿซถ.

2.0 Overview ๐ŸŒธ

OSPF routing protocol [OSPF] is basically everywhere on the Internet now ๐Ÿ˜ญ. Because it's been deployed so much and networking tech keeps changing, OSPF has picked up loads of options, and obviously that's gonna keep happening ๐Ÿ’….

This memo adds the Opaque LSA class to OSPF, which is the same generalized, future-extensible mechanism we just talked about ๐Ÿฆ‹. The info in Opaque LSAs MAY be used directly by OSPF, or indirectly by some application that wants to spread info around the whole OSPF domain. For example, the OSPF LSA MAY be used by routers to distribute IP to link-layer address resolution information (see [ARA] for more information) ๐Ÿงš. Exactly how Opaque LSAs get used is out of scope for this memo, so it's not covered here ๐Ÿ™ˆ.

An Opaque LSA is a standard LSA header followed by a 32-bit aligned, application-specific info field โœจ. Like every other LSA, it uses the link-state database distribution mechanism to flood that info across the topology. The link-state type field tells you the LSA's range of topological distribution, and that range is called the Flooding Scope ๐Ÿ‘‘.

An implementation of the Opaque option is expected to give applications an interface for three things: 1) wrapping app-specific info in a particular Opaque type, 2) sending and receiving that app-specific info, and 3) if needed, telling the app when info it got earlier is no longer valid because the topology changed ๐Ÿ”ฅ.

2.1 Organization Of This Document ๐Ÿ—‚๏ธ

The doc goes like this: first it defines the three types of Opaque LSAs, then it describes OSPF packet processing. The packet processing parts cover changes to the flooding procedure and to the neighbor state machine. Appendix A has the packet formats ๐Ÿ’–.

2.2 Acknowledgments ๐Ÿซถ

Huge thanks to Dennis Ferguson, Acee Lindem, John Moy, Sandra Murphy, Man-Kit Yeung, Zhaohui "Jeffrey" Zhang, and the rest of the OSPF Working Group for the ideas and support they gave this project ๐Ÿฅน๐Ÿ’œ.

3.0 The Opaque LSA ๐Ÿ”ฎ

Opaque LSAs are link-state advertisements of types 9, 10 and 11 ๐Ÿ“. Each one is a standard LSA header plus a 32-bit aligned application-specific info field. Standard link-state database flooding handles distributing them, and the flooding scope is determined by the link-state type. This section is all about how Opaque LSAs get flooded ๐ŸŒˆ.

Here's the flooding scope for each Opaque link-state type:

  • Link-state type 9 means link-local scope. Type-9 Opaque LSAs don't get flooded past the local (sub)network ๐Ÿ .
  • Link-state type 10 means area-local scope. Type-10 Opaque LSAs don't get flooded past the borders of their area ๐Ÿ—บ๏ธ.
  • Link-state type 11 means it gets flooded across the whole Autonomous System (AS) ๐ŸŒ. The scope for type-11 Opaque LSAs is the same as for AS-external (type-5) LSAs. Specifically, type-11 Opaque LSAs are 1) flooded through all transit areas, 2) not flooded into stub areas from the backbone, and 3) not originated by routers into their connected stub areas. Same as type-5 LSAs: if a type-11 Opaque LSA arrives in a stub area from a neighbor inside that stub area, it gets rejected ๐Ÿšซ.

The link-state ID of an Opaque LSA is split into two parts: an Opaque type field (the first 8 bits) and a type-specific ID (the remaining 24 bits) ๐Ÿ”ข. The packet format for Opaque LSAs is in Appendix A, and Section 7.0 covers how Opaque types get allocated and assigned ๐Ÿงฉ.

Both the sender and the receiver are responsible for handling an Opaque LSA's flooding scope correctly ๐Ÿค. The receiver MUST always store a valid received Opaque LSA in its link-state database. The receiver MUST NOT accept Opaque LSAs that break the flooding scope. For example, a type-11 (domain-wide) Opaque LSA doesn't get accepted in a stub area ๐Ÿ™…โ€โ™€๏ธ. The flooding scope affects both how the link-state database gets synchronized and how flooding works.

The next bits describe the changes to these procedures needed to make sure everything follows the Opaque LSA's Scoping Rules ๐Ÿ“.

3.1 Flooding Opaque LSAs ๐ŸŒŠ

Flooding of Opaque LSAs MUST follow the Flooding Scope rules in this section ๐Ÿ”. Section 13 of [OSPF] describes the regular OSPF flooding procedure. What follows are the type-specific flooding restrictions for Opaque LSAs.

  • If the Opaque LSA is type 9 (link-local scope) and the interface it was received on is not the same as the target interface (for example, the interface linked to a particular target neighbor), the Opaque LSA MUST NOT be flooded out that interface (or to that neighbor). An implementation SHOULD keep track of the IP interface associated with each Opaque LSA that has link-local flooding scope ๐Ÿงญ.
  • If the Opaque LSA is type 10 (area-local scope) and the area associated with the Opaque LSA when it was received is not the same as the area associated with the target interface, the Opaque LSA MUST NOT be flooded out that interface. An implementation SHOULD keep track of the OSPF area associated with each Opaque LSA that has area-local flooding scope ๐Ÿ—บ๏ธ.
  • If the Opaque LSA is type 11 (flooded throughout the AS) and the target interface is associated with a stub area, the Opaque LSA MUST NOT be flooded out that interface. A type-11 Opaque LSA received on an interface associated with a stub area MUST be discarded and not acknowledged, since the neighboring router flooded it by mistake ๐Ÿ™ƒ.

When opaque-capable routers and non-opaque-capable OSPF routers are mixed in the same routing domain, Opaque LSAs don't get flooded to the non-opaque-capable routers. The general design idea is that optional OSPF advertisements only get flooded to routers that actually understand them ๐Ÿค“.

An opaque-capable router finds out whether its neighbor is opaque-capable at the start of the "Database Exchange Process" (see Section 10.6 of [OSPF], when it receives Database Description packets from a neighbor in state ExStart). A neighbor is opaque-capable if and only if it sets the O-bit in the Options field of its Database Description packets. The O-bit isn't set in any packets other than Database Description packets ๐Ÿ”. Then, in the next step of the Database Exchange process, Opaque LSAs get included in the Database summary list sent to that neighbor (see Sections 3.2 below and 10.3 of [OSPF]), but only if the neighbor is opaque-capable ๐Ÿ“‹.

When an opaque-capable router floods Opaque LSAs to adjacent neighbors, it checks each neighbor's opaque capability first ๐Ÿ•ต๏ธโ€โ™€๏ธ. Opaque LSAs only get flooded to opaque-capable neighbors. More precisely, in Section 13.3 of [OSPF], Opaque LSAs only get placed on the link-state retransmission lists of opaque-capable neighbors. Heads up though: when Link State Update packets get sent as multicasts, a non-opaque-capable neighbor MAY (inadvertently) receive Opaque LSAs anyway ๐Ÿ˜ฌ. When that happens, the non-opaque-capable router just discards the LSA (see Section 13 of [OSPF], under receiving LSAs with unknown LS types) ๐Ÿ—‘๏ธโœจ.

3.2 Modifications To The Neighbor State Machine ๐Ÿซถ

okay so the state machine in section 10.3 of [OSPF] stays exactly the same ๐Ÿ’… except for ONE action. It's the one for State: ExStart, Event: NegotiationDone, which is where the Database summary list gets built. To get Opaque LSAs into OSPF, we change that action to the following โœจ

  State(s):  ExStart

    Event:  NegotiationDone

  New state:  Exchange

Action: bestie, this is the big one ๐Ÿ‘‘ The router has to list its ENTIRE area link-state database in the neighbor's Database summary list. The area database includes Router LSAs, Network LSAs, Summary LSAs, and type 9 and 10 Opaque LSAs living in the area structure, plus AS External and type-11 Opaque LSAs living in the global structure ๐ŸŒธ

AS External and type-11 Opaque LSAs get left out of a virtual neighbor's Database summary list ๐Ÿ™ˆ And if the area has been set up as a stub area (see Section 3.6 of [OSPF]), AS External and type-11 Opaque LSAs get left out of the Database summary list too. Stub areas are lowkey so selective ๐Ÿฆ‹

Type-9 Opaque LSAs get omitted if the interface tied to the neighbor is NOT the interface tied to the Opaque LSA (as noted when it was received). Like, they only belong to their own local interface, no sharing ๐Ÿงš

Any advertisement whose age is equal to MaxAge gets omitted from the Database summary list. Instead, it gets added to the neighbor's link-state retransmission list. Iconic redirect ๐Ÿ˜ญ

A summary of the Database summary list gets sent to the neighbor in Database Description packets. Each Database Description packet has a DD sequence number and is explicitly acknowledged. And only ONE Database Description packet is allowed to be outstanding at any one time ๐Ÿ’œ For more detail on how Database Description packets get sent and received, check Sections 10.6 and 10.8 of [OSPF].


4.0 Protocol Data Structures โœจ

The Opaque option is described here in terms of how it works on various protocol data structures ๐ŸŽ€ These data structures are just there to explain things. They are NOT meant to box in your implementation, so no stress ๐Ÿ’… On top of the ones listed below, this spec also refers to the various data structures (like OSPF neighbors) defined in [OSPF].

In an OSPF router, the following item gets added to the list of global OSPF data structures described in Section 5 of [OSPF]:

  • Opaque capability. This tells you whether the router is running the Opaque option, which means it's able to store Opaque LSAs. Such a router keeps inter-operating with non-opaque-capable OSPF routers, so it's still a good friend to everyone ๐ŸŒˆ

4.1 Additions To The OSPF Neighbor Structure ๐Ÿฆ‹

The OSPF neighbor structure is defined in Section 10 of [OSPF]. In an opaque-capable router, the following items get added to the OSPF neighbor structure:

  • Neighbor Options. This field was already defined in the OSPF specification, but opaque-capable routers got a NEW option that shows the neighbor's Opaque capability. The router learns this during the Database Exchange process when it receives the neighbor's Database Description packets. This option decides whether Opaque LSAs get flooded to the neighbor. For a more detailed explanation of how Opaque LSAs get flooded, see section 3 of this document ๐Ÿ’–

5.0 Management Considerations ๐Ÿ“

This section points out the current OSPF MIB [OSPFMIB] capabilities that apply to the Opaque option, and lists the extra management information needed to support it ๐Ÿง

Opaque LSAs are type 9, 10 and 11 link-state advertisements. The link-state ID of an Opaque LSA is split into an Opaque type field (the first 8 bits) and a type-specific ID (the remaining 24 bits) ๐Ÿ”ฅ The packet format of the Opaque LSA is given in Appendix A. The range of topological distribution (aka the flooding scope) of an Opaque LSA is identified by its link-state type. Here's the breakdown:

  • Link-State type 9 Opaque LSAs have a link-local scope. They get flooded on a single local (sub)network, but NOT beyond that local (sub)network ๐ŸŒธ
  • Link-state type 10 Opaque LSAs have an area-local scope. They get flooded throughout a single area, but NOT beyond the borders of that associated area ๐Ÿฆ‹
  • Link-state type 11 Opaque LSAs have an Autonomous-System-wide scope. The flooding scope of type-11 LSAs is equivalent to the flooding scope of AS-external (type-5) LSAs. Main character energy, literally ๐Ÿ‘‘

The OSPF MIB gives you a bunch of objects to manage and monitor an OSPF router's Link-State Database. The ones that matter for the Opaque option are these ๐Ÿ’…

The ospfGeneralGroup defines two objects for keeping track of newly originated and newly received LSAs (ospfOriginateNewLsas and ospfRxNewLsas respectively) โœจ

The OSPF MIB defines a set of optional traps. The ospfOriginateLsa trap signals that a router has originated a new LSA, and the ospfMaxAgeLsa trap signals that one of the LSAs in the router's link-state database has aged to MaxAge ๐Ÿ’€

The ospfAreaTable describes the configured parameters and cumulative statistics of the router's attached areas ๐ŸŽ€ This table includes a count of the LSAs in the area's link-state database (ospfAreaLsaCount), and a sum of the LS checksums of the LSAs in that area (ospfAreaLsaCksumSum). That sum can be used to tell if a router's link-state database has changed, and to compare the link-state databases of two routers. Lowkey genius ๐Ÿง 

The ospfLsdbTable describes the OSPF Process's link-state database (excluding AS-external LSAs). Entries in this table are indexed with an Area ID, a link-state type, a link-state ID and the originating router's Router ID ๐ŸŒˆ

The management objects needed to support the Opaque option are as follows ๐Ÿ’œ

An Opaque-option-enabled object is needed to show whether the Opaque option is enabled on the router ๐Ÿซถ

The origination and reception of new Opaque LSAs should be reflected in the counters ospfOriginateNewLsas and ospfRxNewLsas (inclusive for types 9, 10 and 11 Opaque LSAs) ๐Ÿ“

If the OSPF trap option is supported, the origination of new Opaque LSAs and the purging of MaxAge Opaque LSAs should be reflected in the ospfOriginateLsa and ospfMaxAgeLsa traps (inclusive for types 9, 10 and 11 Opaque LSAs) ๐Ÿ”ฅ

The number of type-10 Opaque LSAs should be reflected in ospfAreaLsaCount, and the checksums of type-10 Opaque LSAs should be included in ospfAreaLsaChksumSum โœจ

Type-10 Opaque LSAs should be included in the ospfLsdbTable. Note that this table has no way to examine the Opaque type field (in the Opaque option this is a sub-field of the link-state ID), which is a little bit of a bummer ๐Ÿ™ˆ

Up until now, LSAs have NOT had a link-local scope, so there was no way to request the number of LSAs associated with a specific OSPF interface, or to examine them. A new group of management objects is required to support type-9 Opaque LSAs ๐Ÿงš These objects should include a count of type-9 Opaque LSAs, a checksum sum, and a table for displaying the link-state database for type-9 Opaque LSAs on a per-interface basis. Entries in this table should be indexed with an Area ID, the interface's IP address, the Opaque type, the link-state ID and the originating router's Router ID ๐ŸŒธ

Before type-11 Opaque LSAs showed up, AS-External (type-5) LSAs were the only link-state types with an Autonomous-System-wide scope. A new group of objects is required to support type-11 Opaque LSAs ๐Ÿ‘‘ These objects should include a count of type-11 Opaque LSAs, a type-11 checksum sum, and a table for displaying the type-11 link-state database. Entries in this table should be indexed with the Opaque type, the link-state ID and the originating router's Router ID. The type-11 link-state database table will let type-11 LSAs be displayed once for the router, instead of once in each non-stub area ๐Ÿฆ‹

6.0 Security Considerations ๐Ÿ”

okay bestie, security is where the real drama lives ๐Ÿ’€ when you're protecting routing protocols from misconfigs and bad actors, there are two kinds of issues to handle. first is authentication and certification of routing protocol info. second is denial of service attacks, which happen either when someone keeps originating the same router advertisement over and over, or when someone originates a huge pile of distinct advertisements and overflows the database ๐Ÿ˜ญ and lowkey, both of these worries exist no matter whether a router supports the Opaque option ๐Ÿซถ

To deal with the authentication side, OSPF protocol exchanges get authenticated ๐Ÿ”. OSPF supports multiple authentication types, and the type in use can be configured on a per network segment basis. One of them, the Cryptographic authentication option, is believed to be secure against passive attacks and gives significant protection against active attacks ๐Ÿ’…. With that option, each router appends a "message digest" to its transmitted OSPF packets. Receivers then use the shared secret key and the received digest to verify that each received OSPF packet is authentic โœจ

The quality of the security from the Cryptographic authentication option depends completely on three things: how strong the message digest algorithm is (MD5 is currently the only message digest algorithm specified ๐Ÿ‘€), how strong the key is, and whether the security mechanism is implemented correctly in all communicating OSPF implementations. It also requires that all parties keep the shared secret key secret ๐Ÿคซ None of the standard OSPF authentication types provide confidentiality, and they don't protect against traffic analysis either ๐Ÿ™ˆ if you want more on the standard OSPF security mechanisms, check Sections 8.1, 8.2, and Appendix D of [OSPF] ๐Ÿ“–

[DIGI] is the one that describes the extensions to OSPF needed to add digital signature authentication to Link State data, plus a certification mechanism for router data ๐Ÿ–Š๏ธ it also covers the added LSA processing and key management, and a method for migrating from, or co-existing with, standard OSPF V2 ๐Ÿฆ‹

Now for repetitive origination. OSPF handles this by putting a limit on how often new instances of any particular LSA can be originated and accepted during the flooding procedure โฑ๏ธ new LSA instances can be originated once every MinLSInterval seconds, and that value is 5 seconds (see Section 12.4 of [OSPF]). New LSA instances are accepted during flooding once every MinLSArrival seconds, and that value is set to 1 (see Section 13, Appendix B and G.5 of [OSPF]) ๐Ÿ›‘

Proper OSPF operation requires that every OSPF router keeps an identical copy of the OSPF link-state database ๐Ÿง  but when the link-state database gets really, really big, some routers may not be able to hold the entire thing because of resource shortages. we call this "database overflow" ๐Ÿ˜ฉ when database overflow is anticipated, routers with limited resources can be accommodated by configuring OSPF stub areas and NSSAs ๐Ÿ  and [OVERFLOW] details a way of gracefully handling unanticipated database overflows ๐Ÿซง


7.0 IANA Considerations ๐Ÿ“‹

Opaque types are maintained by the IANA ๐Ÿ—‚๏ธ if an extension to OSPF needs a new Opaque type, it must be reviewed by the OSPF working group. If the OSPF working group has disbanded, the review gets done by a recommended Designated Expert ๐Ÿ‘ฉโ€๐Ÿ’ผ

Following the policies outlined in [IANA], Opaque type values in the range of 0-127 are allocated through an IETF Consensus action, and Opaque type values in the range of 128-255 are reserved for private and experimental use ๐ŸŒˆ


8.0 References ๐Ÿ“š

  • [ARA] Coltun, R., and J. Heinanen, "The OSPF Address Resolution Advertisement Option", Work in Progress.
  • [DEMD] Moy, J., "Extending OSPF to Support Demand Circuits", RFC 1793, April 1995.
  • [DIGI] Murphy, S., Badger, M., and B. Wellington, "OSPF with Digital Signatures", RFC 2154, June 1997.
  • [IANA] Narten, T., and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", Work in Progress.
  • [MOSPF] Moy, J., "Multicast Extensions to OSPF", RFC 1584, March 1994.
  • [NSSA] Coltun, R., and V. Fuller, "The OSPF NSSA Option", RFC 1587, March 1994.
  • [OSPF] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998.
  • [OSPFMIB] Baker, F., and R. Coltun, "OSPF Version 2 Management Information Base", RFC 1850, November 1995.
  • [OVERFLOW] Moy, J., "OSPF Database Overflow", RFC 1765, March 1995.

9.0 Author's Information ๐ŸŽ€

Rob Coltun, FORE Systems

Phone: (703) 245-4543
EMail: rcoltun@fore.com

Appendix A: OSPF Data formats ๐Ÿงฉ

This appendix is the spot for the format of the Options Field, followed by the packet format of the Opaque LSA ๐Ÿ’œ

A.1 The Options Field

The OSPF Options field shows up in OSPF Hello packets, Database Description packets, and all link-state advertisements ๐Ÿ“ฌ it lets OSPF routers support (or not support) optional capabilities, and communicate their capability level to other OSPF routers. That's how routers with different capabilities can be mixed together inside one OSPF routing domain ๐ŸŒธ

When it's used in Hello packets, the Options field lets a router reject a neighbor because of a capability mismatch ๐Ÿ™…โ€โ™€๏ธ when capabilities get exchanged in Database Description packets, a router can choose not to forward certain link-state advertisements to a neighbor because that neighbor has reduced functionality ๐Ÿซฃ and listing capabilities in link-state advertisements lets routers route traffic around reduced functionality routers by leaving them out of parts of the routing table calculation ๐Ÿ—บ๏ธ

Six bits of the OSPF Options field have been assigned, but only the O-bit is fully described by this memo โœจ each bit gets a quick description below. Routers should reset (i.e., clear) unrecognized bits in the Options field when sending Hello packets or Database Description packets, and when originating link-state advertisements. On the flip side, routers that run into unrecognized Option bits in received Hello Packets, Database Description packets, or link-state advertisements should ignore the capability and process the packet or advertisement normally ๐Ÿงƒ

                +------------------------------------+
                | * | O | DC | EA | N/P | MC | E | * |
                +------------------------------------+

                             The Options Field
  • E-bit: describes the way AS-external-LSAs are flooded, as described in Sections 3.6, 9.5, 10.8 and 12.1.2 of [OSPF] ๐ŸŒŠ
  • MC-bit: describes whether IP multicast datagrams are forwarded according to the specifications in [MOSPF] ๐Ÿ“ก
  • N/P-bit: describes the handling of Type-7 LSAs, as specified in [NSSA] ๐Ÿท๏ธ
  • DC-bit: describes the router's handling of demand circuits, as specified in [DEMD] โšก
  • EA-bit: describes the router's willingness to receive and forward External-Attributes-LSAs, as specified in [EAL] ๐Ÿค
  • O-bit: describes the router's willingness to receive and forward Opaque-LSAs as specified in this document ๐Ÿฆ‹

A.2 The Opaque LSA

Opaque LSAs are Type 9, 10 and 11 link-state advertisements ๐Ÿ’– these can get used directly by OSPF, or indirectly by some application that wants to distribute information throughout the OSPF domain. The whole point of the Opaque LSA option is to provide for future extensibility of OSPF ๐Ÿ”ฎ

Opaque LSAs carry some number of octets of application-specific data, padded to 32-bit alignment ๐Ÿงฑ like any other LSA, the Opaque LSA uses the link-state database distribution mechanism to flood this information through the topology. The difference is that the Opaque LSA has a flooding scope attached to it, so the scope can be link-local (type 9), area-local (type 10), or the entire OSPF routing domain (type 11). Section 3 of this document describes the flooding procedures for the Opaque LSA ๐Ÿซถ

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            LS age             |     Options   |   9, 10 or 11 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Opaque Type  |               Opaque ID                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Advertising Router                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      LS Sequence Number                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         LS checksum           |           Length              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                                                               +
   |                      Opaque Information                       |
   +                                                               +
   |                              ...                              |

The link-state type of the Opaque LSA tells you the range of its topological distribution ๐Ÿ—บ๏ธ that range is called the Flooding Scope. Here's how the flooding scope works for each link-state type ๐Ÿ‘‘

  • A value of 9 denotes a link-local scope. Opaque LSAs with a link-local scope are not flooded beyond the local (sub)network. ๐Ÿก
  • A value of 10 denotes an area-local scope. Opaque LSAs with an area-local scope are not flooded beyond the area that they are originated into. ๐ŸŒณ
  • A value of 11 denotes that the LSA is flooded throughout the Autonomous System (e.g., has the same scope as type-5 LSAs). Opaque LSAs with AS-wide scope are not flooded into stub areas. ๐ŸŒ

The link-state ID of the Opaque LSA is split into an Opaque Type field (the first 8 bits) and an Opaque ID (the remaining 24 bits) ๐Ÿงฉ for how Opaque type allocation and assignment works, see section 7.0 of this document ๐ŸŽฏ

bestie, this one is legal text so I'm keeping every word exactly as written ๐Ÿซถโš–๏ธ

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

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS 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. ๐Ÿ’…

๐Ÿ“ฆ where this page comes from