Link-state advertisement
The link-state advertisement (LSA) is a basic communication means of the OSPF routing protocol for the Internet Protocol (IP). It communicates the router's local routing topology to all other local routers in the same OSPF area. OSPF is designed for scalability, so some LSAs are not flooded out on all interfaces, but only on those that belong to the appropriate area. In this way detailed information can be kept localized, while summary information is flooded to the rest of the network. The original IPv4-only OSPFv2 and the newer IPv6-compatible OSPFv3 have broadly similar LSA types.
Types
The LSA types defined in OSPF are as follows:
- Type 1 - Router LSA - the router announces its presence and lists the links to other routers or networks in the same area, together with the metrics to them. Type 1 LSAs are flooded across their own area only. The link-state ID of the type 1 LSA is the originating router ID.
- Type 2 - Network LSA - the designated router (DR) on a broadcast segment (e.g. Ethernet) lists which routers are joined together by the segment. Type 2 LSAs are flooded across their own area only. The link-state ID of the type 2 LSA is the IP interface address of the DR.
- Type 3 - Summary LSA - an Area Border Router (ABR) takes information it has learned on one of its attached areas and summarizes it before sending it out on other areas it is connected to. This summarization helps provide scalability by removing detailed topology information for other areas, because their routing information is summarized into just an address prefix and metric. The summarization process can also be configured to remove a lot of detailed address prefixes and replace them with a single summary prefix, helping scalability. The link-state ID is the destination network number for type 3 LSAs.
- Type 4 - ASBR-Summary LSA - this is needed because Type 5 External LSAs are flooded to all areas and the detailed next-hop information may not be available in those other areas because it may be using a different routing protocol. This is solved by an Area Border Router flooding the information for the router (i.e. the Autonomous System Boundary Router) where the type 5 originated. The link-state ID is the router ID of the described ASBR for type 4 LSAs.
- Type 5 - External LSA - these LSAs contain information imported into OSPF from other routing processes. They are flooded to all areas unchanged (except stub and NSSA areas). For "External Metric Type 1" LSAs routing decisions are made using the Type 1 metric cost sent, as the total cost to get to the external destination and includes the cost to the ASBR; while for "External Type 2" LSAs the metric sent is the cost from the ASBR to the External destination network and must be added to the OSPF cost to the ASBR advertising the Type 5. The link-state ID of the type 5 LSA is the external network number.
- Type 6 - Group Membership LSA (Only supported on a few routers) - this was defined for Multicast extensions to OSPF (MOSPF),[1] a multicast OSPF routing protocol which was not in general use. MOSPF has been deprecated since OSPFv3[2] and is not currently used. It may be reassigned in the future.
- Type 7 - Routers in a Not-so-stubby-area (NSSA) do not receive external LSAs from Area Border Routers, but are allowed to send external routing information for redistribution. They use type 7 LSAs to tell the ABRs about these external routes, which the Area Border Router then translates to type 5 external LSAs and floods as normal to the rest of the OSPF network.
- Type 8 - A link-local only LSA for OSPFv3. A Type 8 LSA is used to give information about link-local addresses and a list of IPv6 addresses on the link. In OSPFv2, however, the Type 8 was originally intended to be used as a so-called External-Attributes-LSA for transit autonomous systems where OSPFv2 could replace the internal Border Gateway Protocol (iBGP). In these networks, the BGP destinations would be carried in LSA Type 5 while their BGP attributes would be inserted into LSA Type 8. Most OSPFv2 implementations never supported this feature.
- Type 9 - a link-local "opaque" LSA (defined by RFC2370) in OSPFv2 and the Intra-Area-Prefix LSA in OSPFv3. It is the OSPFv3 LSA that contains prefixes for stub and transit networks in the link-state ID.
- Type 10 - an area-local "opaque" LSA as defined by RFC2370. Opaque LSAs contain information which should be flooded by other routers even if the router is not able to understand the extended information itself. Typically type 10 LSAs are used for traffic engineering extensions to OSPF, flooding extra information about links beyond just their metric, such as link bandwidth and color.
- Type 11 - an AS "opaque" LSA defined by RFC 5250, which is flooded everywhere except stub areas. This is the opaque equivalent of the type 5 external LSA.[3]
The opaque LSAs, types 9, 10, and 11, are designated for upgrades to OSPF for application-specific purposes. For example, OSPF-TE has traffic engineering extensions to be used by RSVP-TE in Multiprotocol Label Switching (MPLS). Opaque LSAs are used to flood link color and bandwidth information. Standard LSDB flooding mechanisms are used for distribution of opaque LSAs. Each of the three types has a different flooding scope.
For all types of LSAs, there are 20-byte LSA headers. One of the fields of the LSA header is the link-state ID.
Each router link is defined as one of four types: type 1, 2, 3, or 4. The LSA includes a link ID field that identifies, by the network number and mask, the object that this link connects to.
Depending on the type, the link ID has different meanings as shown in below table:
Link type | Description | Link ID | Link Data |
---|---|---|---|
1 | point-to-point connection to another router | neighboring router ID | IP address of the originating's interface to the network |
2 | connection to a transit network | IP address of Designated Router | IP address of the originating's interface to the network |
3 | connection to a stub network | IP network/subnet number | Subnet mask of the interface |
4 | virtual link | neighboring router ID | IP address of the originating's interface to the network |
OSPF v3 LSA Packet Header Formats
As per Appendix A.4.2 of RFC 5340, all LSA packets start with a common LSA "20-byte header" as shown below.
Note: These LSA Packet Headers are all preceded by standard "16-byte" OSPF Headers.
Bit/ Byte |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | LS Age | LS Type | ||||||||||||||||||||||||||||||
32 | Link State ID | |||||||||||||||||||||||||||||||
64 | Advertising Router | |||||||||||||||||||||||||||||||
96 | LS Sequence Number | |||||||||||||||||||||||||||||||
128 | LS Checksum | Length | ||||||||||||||||||||||||||||||
160 | Depending on the "LS Type" details of the contents will vary. (Details of each LS Type are listed below.) | |||||||||||||||||||||||||||||||
192 | ||||||||||||||||||||||||||||||||
~ | ||||||||||||||||||||||||||||||||
~ | ||||||||||||||||||||||||||||||||
~ | ||||||||||||||||||||||||||||||||
~ | ... |
As per Appendix A.4 of RFC 5340 (OSPFv3 for IPv6) depending upon the LS Type, there are nine major LSA Packet formats as follows (actually eight as one has been deprecated):
LSA Function Code | LS Type | Description |
1 | 0x2001 | Router-LSA |
2 | 0x2002 | Network-LSA |
3 | 0x2003 | Inter-Area-Prefix-LSA Also referred to as Summary-LSA in OSPFv2. |
4 | 0x2004 | Inter-Area-Router-LSA Also referred to as ASBR-Summary-LSA in OSPFv2. |
5 | 0x4005 | AS-External-LSA Also referred to as External-LSA or AS-External-LSA in OSPFv2. |
Was referred to as Multicast-OSPF-LSA in OSPFv2. | ||
7 | 0x2007 | NSSA-LSA Also referred to as NSSA-LSA in OSPFv2. |
8 | 0x0008 | Link-LSA |
9 | 0x2009 | Intra-Area-Prefix-LSA |
The nine different formats for each "Type" of LSA packet are listed below (including the deprecated LSA-6):
Type 1: Router LSA Header
Bit/ Byte |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | LS Age | 0 | 0 | 1 | 1 | |||||||||||||||||||||||||||
32 | Link State ID | |||||||||||||||||||||||||||||||
64 | Advertising Router | |||||||||||||||||||||||||||||||
96 | LS Sequence Number | |||||||||||||||||||||||||||||||
128 | LS Checksum | Length | ||||||||||||||||||||||||||||||
160 | 0 | Nt | x | V | E | B | Options | |||||||||||||||||||||||||
192 | Type | 0 | Metric | |||||||||||||||||||||||||||||
224 | Interface ID | |||||||||||||||||||||||||||||||
256 | Neighbor Interface ID | |||||||||||||||||||||||||||||||
288 | Neighbor Router ID | |||||||||||||||||||||||||||||||
320 | ... | |||||||||||||||||||||||||||||||
~ | Type | 0 | Metric | |||||||||||||||||||||||||||||
~ | Interface ID | |||||||||||||||||||||||||||||||
~ | Neighbor Interface ID | |||||||||||||||||||||||||||||||
~ | Neighbor Router ID | |||||||||||||||||||||||||||||||
~ | ... |
Type 2: Network-LSA Header
Bit/ Byte |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | LS Age | 0 | 0 | 1 | 2 | |||||||||||||||||||||||||||
32 | Link State ID | |||||||||||||||||||||||||||||||
64 | Advertising Router | |||||||||||||||||||||||||||||||
96 | LS Sequence Number | |||||||||||||||||||||||||||||||
128 | LS Checksum | Length | ||||||||||||||||||||||||||||||
160 | 0 | Options | ||||||||||||||||||||||||||||||
192 | Attached Router | |||||||||||||||||||||||||||||||
~ | ... |
Type 3: Inter-Area-Prefix-LSA Header
Bit/ Byte |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | LS Age | 0 | 0 | 1 | 3 | |||||||||||||||||||||||||||
32 | Link State ID | |||||||||||||||||||||||||||||||
64 | Advertising Router | |||||||||||||||||||||||||||||||
96 | LS Sequence Number | |||||||||||||||||||||||||||||||
128 | LS Checksum | Length | ||||||||||||||||||||||||||||||
160 | 0 | Metric | ||||||||||||||||||||||||||||||
192 | PrefixLength | PrefixOptions | 0 | |||||||||||||||||||||||||||||
224 | Address Prefix | |||||||||||||||||||||||||||||||
256 | ||||||||||||||||||||||||||||||||
288 | ... |
Type 4: Inter-Area-Router-LSA Header
Bit/ Byte |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | LS Age | 0 | 0 | 1 | 4 | |||||||||||||||||||||||||||
32 | Link State ID | |||||||||||||||||||||||||||||||
64 | Advertising Router | |||||||||||||||||||||||||||||||
96 | LS Sequence Number | |||||||||||||||||||||||||||||||
128 | LS Checksum | Length | ||||||||||||||||||||||||||||||
160 | 0 | Options | ||||||||||||||||||||||||||||||
192 | 0 | Metric | ||||||||||||||||||||||||||||||
224 | Destination Router ID |
Type 5: AS-External-LSA Header
Bit/ Byte |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | LS Age | 0 | 1 | 0 | 5 | |||||||||||||||||||||||||||
32 | Link State ID | |||||||||||||||||||||||||||||||
64 | Advertising Router | |||||||||||||||||||||||||||||||
96 | LS Sequence Number | |||||||||||||||||||||||||||||||
128 | LS Checksum | Length | ||||||||||||||||||||||||||||||
160 | E | F | T | Metric | ||||||||||||||||||||||||||||
192 | PrefixLength | PrefixOptions | Referenced LS Type | |||||||||||||||||||||||||||||
224 | Address Prefix ... | |||||||||||||||||||||||||||||||
256 | ||||||||||||||||||||||||||||||||
288 | Forwarding Address (Optional) | |||||||||||||||||||||||||||||||
~ | ||||||||||||||||||||||||||||||||
~ | ||||||||||||||||||||||||||||||||
~ | ||||||||||||||||||||||||||||||||
~ | External Route Tag (Optional) | |||||||||||||||||||||||||||||||
~ | Referenced Link State ID (Optional) |
Type 6: MOSPF LSA Header (Deprecated)
Bit/ Byte |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
N/A | This LSA Type is deprecated in OSPF v3 RFC 5340 and thus is not shown here. | |||||||||||||||||||||||||||||||
~ | ||||||||||||||||||||||||||||||||
~ |
Type 7: NSSA-LSA Header (Same as Type 5 except for the type number field)
Bit/ Byte |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | LS Age | 0 | 1 | 0 | 7 | |||||||||||||||||||||||||||
32 | Link State ID | |||||||||||||||||||||||||||||||
64 | Advertising Router | |||||||||||||||||||||||||||||||
96 | LS Sequence Number | |||||||||||||||||||||||||||||||
128 | LS Checksum | Length | ||||||||||||||||||||||||||||||
160 | E | F | T | Metric | ||||||||||||||||||||||||||||
192 | PrefixLength | PrefixOptions | Referenced LS Type | |||||||||||||||||||||||||||||
224 | Address Prefix ... | |||||||||||||||||||||||||||||||
256 | ||||||||||||||||||||||||||||||||
288 | Forwarding Address (Optional) | |||||||||||||||||||||||||||||||
~ | ||||||||||||||||||||||||||||||||
~ | ||||||||||||||||||||||||||||||||
~ | ||||||||||||||||||||||||||||||||
~ | External Route Tag (Optional) | |||||||||||||||||||||||||||||||
~ | Referenced Link State ID (Optional) |
Type 8: Link-LSA Header
Bit/ Byte |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | LS Age | 0 | 0 | 0 | 8 | |||||||||||||||||||||||||||
32 | Link State ID | |||||||||||||||||||||||||||||||
64 | Advertising Router | |||||||||||||||||||||||||||||||
96 | LS Sequence Number | |||||||||||||||||||||||||||||||
128 | LS Checksum | Length | ||||||||||||||||||||||||||||||
160 | Rtr Priority | Options | ||||||||||||||||||||||||||||||
192 | Link-local Interface Address | |||||||||||||||||||||||||||||||
224 | ||||||||||||||||||||||||||||||||
256 | ||||||||||||||||||||||||||||||||
288 | ||||||||||||||||||||||||||||||||
320 | # prefixes | |||||||||||||||||||||||||||||||
352 | PrefixLength | PrefixOptions | 0 | |||||||||||||||||||||||||||||
384 | Address Prefix ... | |||||||||||||||||||||||||||||||
~ | ||||||||||||||||||||||||||||||||
~ | ... | |||||||||||||||||||||||||||||||
~ | PrefixLength | PrefixOptions | 0 | |||||||||||||||||||||||||||||
~ | Address Prefix ... | |||||||||||||||||||||||||||||||
~ |
Type 9: Intra-Area-Prefix LSA Header
Bit/ Byte |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | LS Age | 0 | 0 | 0 | 9 | |||||||||||||||||||||||||||
32 | Link State ID | |||||||||||||||||||||||||||||||
64 | Advertising Router | |||||||||||||||||||||||||||||||
96 | LS Sequence Number | |||||||||||||||||||||||||||||||
128 | LS Checksum | Length | ||||||||||||||||||||||||||||||
160 | # Prefixes | Referenced LS Type | ||||||||||||||||||||||||||||||
192 | Referenced Link State ID | |||||||||||||||||||||||||||||||
224 | Referenced Advertising Router | |||||||||||||||||||||||||||||||
256 | PrefixLength | PrefixOptions | Metric | |||||||||||||||||||||||||||||
288 | Address Prefix ... | |||||||||||||||||||||||||||||||
320 | ||||||||||||||||||||||||||||||||
352 | ... | |||||||||||||||||||||||||||||||
~ | PrefixLength | PrefixOptions | Metric | |||||||||||||||||||||||||||||
~ | Address Prefix ... | |||||||||||||||||||||||||||||||
~ |
References
- ↑ http://tools.ietf.org/html/rfc1584
- ↑ http://tools.ietf.org/html/rfc5340#appendix-A.4.2.1
- ↑ http://tools.ietf.org/html/rfc5250