diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc2740.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc2740.txt')
-rw-r--r-- | doc/rfc/rfc2740.txt | 4483 |
1 files changed, 4483 insertions, 0 deletions
diff --git a/doc/rfc/rfc2740.txt b/doc/rfc/rfc2740.txt new file mode 100644 index 0000000..bb70f46 --- /dev/null +++ b/doc/rfc/rfc2740.txt @@ -0,0 +1,4483 @@ + + + + + + +Network Working Group R. Coltun +Requests for Comments: 2740 Siara Systems +Category: Standards Track D. Ferguson + Juniper Networks + J. Moy + Sycamore Networks + December 1999 + + + OSPF for IPv6 + +Status of this Memo + + This document specifies an Internet standards track protocol for the + Internet community, and requests discussion and suggestions for + improvements. Please refer to the current edition of the "Internet + Official Protocol Standards" (STD 1) for the standardization state + and status of this protocol. Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (1999). All Rights Reserved. + +Abstract + + This document describes the modifications to OSPF to support version + 6 of the Internet Protocol (IPv6). The fundamental mechanisms of + OSPF (flooding, DR election, area support, SPF calculations, etc.) + remain unchanged. However, some changes have been necessary, either + due to changes in protocol semantics between IPv4 and IPv6, or simply + to handle the increased address size of IPv6. + + Changes between OSPF for IPv4 and this document include the + following. Addressing semantics have been removed from OSPF packets + and the basic LSAs. New LSAs have been created to carry IPv6 + addresses and prefixes. OSPF now runs on a per-link basis, instead of + on a per-IP-subnet basis. Flooding scope for LSAs has been + generalized. Authentication has been removed from the OSPF protocol + itself, instead relying on IPv6's Authentication Header and + Encapsulating Security Payload. + + Most packets in OSPF for IPv6 are almost as compact as those in OSPF + for IPv4, even with the larger IPv6 addresses. Most field-XSand + packet-size limitations present in OSPF for IPv4 have been relaxed. + In addition, option handling has been made more flexible. + + + + + + +Coltun, et al. Standards Track [Page 1] + +RFC 2740 OSPF for IPv6 December 1999 + + + All of OSPF for IPv4's optional capabilities, including on-demand + circuit support, NSSA areas, and the multicast extensions to OSPF + (MOSPF) are also supported in OSPF for IPv6. + +Table of Contents + + 1 Introduction ........................................... 4 + 1.1 Terminology ............................................ 4 + 2 Differences from OSPF for IPv4 ......................... 4 + 2.1 Protocol processing per-link, not per-subnet ........... 5 + 2.2 Removal of addressing semantics ........................ 5 + 2.3 Addition of Flooding scope ............................. 5 + 2.4 Explicit support for multiple instances per link ....... 6 + 2.5 Use of link-local addresses ............................ 6 + 2.6 Authentication changes ................................. 7 + 2.7 Packet format changes .................................. 7 + 2.8 LSA format changes ..................................... 8 + 2.9 Handling unknown LSA types ............................ 10 + 2.10 Stub area support ..................................... 10 + 2.11 Identifying neighbors by Router ID .................... 11 + 3 Implementation details ................................ 11 + 3.1 Protocol data structures .............................. 12 + 3.1.1 The Area Data structure ............................... 13 + 3.1.2 The Interface Data structure .......................... 13 + 3.1.3 The Neighbor Data Structure ........................... 14 + 3.2 Protocol Packet Processing ............................ 15 + 3.2.1 Sending protocol packets .............................. 15 + 3.2.1.1 Sending Hello packets ................................. 16 + 3.2.1.2 Sending Database Description Packets .................. 17 + 3.2.2 Receiving protocol packets ............................ 17 + 3.2.2.1 Receiving Hello Packets ............................... 19 + 3.3 The Routing table Structure ........................... 19 + 3.3.1 Routing table lookup .................................. 20 + 3.4 Link State Advertisements ............................. 20 + 3.4.1 The LSA Header ........................................ 21 + 3.4.2 The link-state database ............................... 22 + 3.4.3 Originating LSAs ...................................... 22 + 3.4.3.1 Router-LSAs ........................................... 25 + 3.4.3.2 Network-LSAs .......................................... 27 + 3.4.3.3 Inter-Area-Prefix-LSAs ................................ 28 + 3.4.3.4 Inter-Area-Router-LSAs ................................ 29 + 3.4.3.5 AS-external-LSAs ...................................... 29 + 3.4.3.6 Link-LSAs ............................................. 31 + 3.4.3.7 Intra-Area-Prefix-LSAs ................................ 32 + 3.5 Flooding .............................................. 35 + 3.5.1 Receiving Link State Update packets ................... 36 + 3.5.2 Sending Link State Update packets ..................... 36 + 3.5.3 Installing LSAs in the database ....................... 38 + + + +Coltun, et al. Standards Track [Page 2] + +RFC 2740 OSPF for IPv6 December 1999 + + + 3.6 Definition of self-originated LSAs .................... 39 + 3.7 Virtual links ......................................... 39 + 3.8 Routing table calculation ............................. 39 + 3.8.1 Calculating the shortest path tree for an area ........ 40 + 3.8.1.1 The next hop calculation .............................. 41 + 3.8.2 Calculating the inter-area routes ..................... 42 + 3.8.3 Examining transit areas' summary-LSAs ................. 42 + 3.8.4 Calculating AS external routes ........................ 42 + 3.9 Multiple interfaces to a single link .................. 43 + References ............................................ 44 + A OSPF data formats ..................................... 46 + A.1 Encapsulation of OSPF packets ......................... 46 + A.2 The Options field ..................................... 47 + A.3 OSPF Packet Formats ................................... 48 + A.3.1 The OSPF packet header ................................ 49 + A.3.2 The Hello packet ...................................... 50 + A.3.3 The Database Description packet ....................... 52 + A.3.4 The Link State Request packet ......................... 54 + A.3.5 The Link State Update packet .......................... 55 + A.3.6 The Link State Acknowledgment packet .................. 56 + A.4 LSA formats ........................................... 57 + A.4.1 IPv6 Prefix Representation ............................ 58 + A.4.1.1 Prefix Options ........................................ 58 + A.4.2 The LSA header ........................................ 59 + A.4.2.1 LS type ............................................... 60 + A.4.3 Router-LSAs ........................................... 61 + A.4.4 Network-LSAs .......................................... 64 + A.4.5 Inter-Area-Prefix-LSAs ................................ 65 + A.4.6 Inter-Area-Router-LSAs ................................ 66 + A.4.7 AS-external-LSAs ...................................... 67 + A.4.8 Link-LSAs ............................................. 69 + A.4.9 Intra-Area-Prefix-LSAs ................................ 71 + B Architectural Constants ............................... 73 + C Configurable Constants ................................ 73 + C.1 Global parameters ..................................... 73 + C.2 Area parameters ....................................... 74 + C.3 Router interface parameters ........................... 75 + C.4 Virtual link parameters ............................... 77 + C.5 NBMA network parameters ............................... 77 + C.6 Point-to-MultiPoint network parameters ................ 78 + C.7 Host route parameters ................................. 78 + Security Considerations ............................... 79 + Authors' Addresses .................................... 79 + Full Copyright Statement .............................. 80 + + + + + + + +Coltun, et al. Standards Track [Page 3] + +RFC 2740 OSPF for IPv6 December 1999 + + +1. Introduction + + This document describes the modifications to OSPF to support version + 6 of the Internet Protocol (IPv6). The fundamental mechanisms of + OSPF (flooding, DR election, area support, SPF calculations, etc.) + remain unchanged. However, some changes have been necessary, either + due to changes in protocol semantics between IPv4 and IPv6, or simply + to handle the increased address size of IPv6. + + This document is organized as follows. Section 2 describes the + differences between OSPF for IPv4 and OSPF for IPv6 in detail. + Section 3 provides implementation details for the changes. Appendix A + gives the OSPF for IPv6 packet and LSA formats. Appendix B lists the + OSPF architectural constants. Appendix C describes configuration + parameters. + +1.1. Terminology + + This document attempts to use terms from both the OSPF for IPv4 + specification ([Ref1]) and the IPv6 protocol specifications + ([Ref14]). This has produced a mixed result. Most of the terms used + both by OSPF and IPv6 have roughly the same meaning (e.g., + interfaces). However, there are a few conflicts. IPv6 uses "link" + similarly to IPv4 OSPF's "subnet" or "network". In this case, we have + chosen to use IPv6's "link" terminology. "Link" replaces OSPF's + "subnet" and "network" in most places in this document, although + OSPF's Network-LSA remains unchanged (and possibly unfortunately, a + new Link-LSA has also been created). + + The names of some of the OSPF LSAs have also changed. See Section 2.8 + for details. + +2. Differences from OSPF for IPv4 + + Most of the algorithms from OSPF for IPv4 [Ref1] have preserved in + OSPF for IPv6. However, some changes have been necessary, either due + to changes in protocol semantics between IPv4 and IPv6, or simply to + handle the increased address size of IPv6. + + The following subsections describe the differences between this + document and [Ref1]. + + + + + + + + + + +Coltun, et al. Standards Track [Page 4] + +RFC 2740 OSPF for IPv6 December 1999 + + +2.1. Protocol processing per-link, not per-subnet + + IPv6 uses the term "link" to indicate "a communication facility or + medium over which nodes can communicate at the link layer" ([Ref14]). + "Interfaces" connect to links. Multiple IP subnets can be assigned to + a single link, and two nodes can talk directly over a single link, + even if they do not share a common IP subnet (IPv6 prefix). + + For this reason, OSPF for IPv6 runs per-link instead of the IPv4 + behavior of per-IP-subnet. The terms "network" and "subnet" used in + the IPv4 OSPF specification ([Ref1]) should generally be relaced by + link. Likewise, an OSPF interface now connects to a link instead of + an IP subnet, etc. + + This change affects the receiving of OSPF protocol packets, and the + contents of Hello Packets and Network-LSAs. + +2.2. Removal of addressing semantics + + In OSPF for IPv6, addressing semantics have been removed from the + OSPF protocol packets and the main LSA types, leaving a network- + protocol-independent core. In particular: + + o IPv6 Addresses are not present in OSPF packets, except in + LSA payloads carried by the Link State Update Packets. See + Section 2.7 for details. + + o Router-LSAs and Network-LSAs no longer contain network + addresses, but simply express topology information. See + Section 2.8 for details. + + o OSPF Router IDs, Area IDs and LSA Link State IDs remain at + the IPv4 size of 32-bits. They can no longer be assigned as + (IPv6) addresses. + + o Neighboring routers are now always identified by Router ID, + where previously they had been identified by IP address on + broadcast and NBMA "networks". + +2.3. Addition of Flooding scope + + Flooding scope for LSAs has been generalized and is now explicitly + coded in the LSA's LS type field. There are now three separate + flooding scopes for LSAs: + + + + + + + +Coltun, et al. Standards Track [Page 5] + +RFC 2740 OSPF for IPv6 December 1999 + + + o Link-local scope. LSA is flooded only on the local link, and + no further. Used for the new Link-LSA (see Section A.4.8). + + o Area scope. LSA is flooded throughout a single OSPF area + only. Used for Router-LSAs, Network-LSAs, Inter-Area-Prefix- + LSAs, Inter-Area-Router-LSAs and Intra-Area-Prefix-LSAs. + + o AS scope. LSA is flooded throughout the routing domain. Used + for AS-external-LSAs. + +2.4. Explicit support for multiple instances per link + + OSPF now supports the ability to run multiple OSPF protocol instances + on a single link. For example, this may be required on a NAP segment + shared between several providers -- providers may be running separate + OSPF routing domains that want to remain separate even though they + have one or more physical network segments (i.e., links) in common. + In OSPF for IPv4 this was supported in a haphazard fashion using the + authentication fields in the OSPF for IPv4 header. + + Another use for running multiple OSPF instances is if you want, for + one reason or another, to have a single link belong to two or more + OSPF areas. + + Support for multiple protocol instances on a link is accomplished via + an "Instance ID" contained in the OSPF packet header and OSPF + interface structures. Instance ID solely affects the reception of + OSPF packets. + +2.5. Use of link-local addresses + + IPv6 link-local addresses are for use on a single link, for purposes + of neighbor discovery, auto-configuration, etc. IPv6 routers do not + forward IPv6 datagrams having link-local source addresses [Ref15]. + Link-local unicast addresses are assigned from the IPv6 address range + FF80/10. + + OSPF for IPv6 assumes that each router has been assigned link-local + unicast addresses on each of the router's attached physical segments. + On all OSPF interfaces except virtual links, OSPF packets are sent + using the interface's associated link-local unicast address as + source. A router learns the link-local addresses of all other + routers attached to its links, and uses these addresses as next hop + information during packet forwarding. + + On virtual links, global scope or site-local IP addresses must be + used as the source for OSPF protocol packets. + + + + +Coltun, et al. Standards Track [Page 6] + +RFC 2740 OSPF for IPv6 December 1999 + + + Link-local addresses appear in OSPF Link-LSAs (see Section 3.4.3.6). + However, link-local addresses are not allowed in other OSPF LSA + types. In particular, link-local addresses must not be advertised in + inter-area-prefix-LSAs (Section 3.4.3.3), AS-external-LSAs (Section + 3.4.3.5) or intra-area-prefix-LSAs (Section 3.4.3.7). + +2.6. Authentication changes + + In OSPF for IPv6, authentication has been removed from OSPF itself. + The "AuType" and "Authentication" fields have been removed from the + OSPF packet header, and all authentication related fields have been + removed from the OSPF area and interface structures. + + When running over IPv6, OSPF relies on the IP Authentication Header + (see [Ref19]) and the IP Encapsulating Security Payload (see [Ref20]) + to ensure integrity and authentication/confidentiality of routing + exchanges. + + Protection of OSPF packet exchanges against accidental data + corruption is provided by the standard IPv6 16-bit one's complement + checksum, covering the entire OSPF packet and prepended IPv6 pseudo- + header (see Section A.3.1). + +2.7. Packet format changes + + OSPF for IPv6 runs directly over IPv6. Aside from this, all + addressing semantics have been removed from the OSPF packet headers, + making it essentially "network-protocol-independent". All addressing + information is now contained in the various LSA types only. + + In detail, changes in OSPF packet format consist of the following: + + o The OSPF version number has been increased from 2 to 3. + + o The Options field in Hello Packets and Database description Packet + has been expanded to 24-bits. + + o The Authentication and AuType fields have been removed from the + OSPF packet header (see Section 2.6). + + o The Hello packet now contains no address information at all, and + includes an Interface ID which the originating router has assigned + to uniquely identify (among its own interfaces) its interface to + the link. This Interface ID becomes the Netowrk-LSA's Link State + ID, should the router become Designated-Router on the link. + + + + + + +Coltun, et al. Standards Track [Page 7] + +RFC 2740 OSPF for IPv6 December 1999 + + + o Two option bits, the "R-bit" and the "V6-bit", have been added to + the Options field for processing Router-LSAs during the SPF + calculation (see Section A.2). If the "R-bit" is clear an OSPF + speaker can participate in OSPF topology distribution without + being used to forward transit traffic; this can be used in multi- + homed hosts that want to participate in the routing protocol. The + V6-bit specializes the R-bit; if the V6-bit is clear an OSPF + speaker can participate in OSPF topology distribution without + being used to forward IPv6 datagrams. If the R-bit is set and the + V6-bit is clear, IPv6 datagrams are not forwarded but diagrams + belonging to another protocol family may be forwarded. + + o TheOSPF packet header now includes an "Instance ID" which allows + multiple OSPF protocol instances to be run on a single link (see + Section 2.4). + +2.8. LSA format changes + + All addressing semantics have been removed from the LSA header, and + from Router-LSAs and Network-LSAs. These two LSAs now describe the + routing domain's topology in a network-protocol-independent manner. + New LSAs have been added to distribute IPv6 address information, and + data required for next hop resolution. The names of some of IPv4's + LSAs have been changed to be more consistent with each other. + + In detail, changes in LSA format consist of the following: + + o The Options field has been removed from the LSA header, expanded + to 24 bits, and moved into the body of Router-LSAs, Network-LSAs, + Inter-Area-Router-LSAs and Link-LSAs. See Section A.2 for details. + + o The LSA Type field has been expanded (into the former Options + space) to 16 bits, with the upper three bits encoding flooding + scope and the handling of unknown LSA types (see Section 2.9). + + o Addresses in LSAs are now expressed as [prefix, prefix length] + instead of [address, mask] (see Section A.4.1). The default route + is expressed as a prefix with length 0. + + o The Router and Network LSAs now have no address information, and + are network-protocol-independent. + + o Router interface information may be spread across multiple Router + LSAs. Receivers must concatenate all the Router-LSAs originated by + a given router when running the SPF calculation. + + + + + + +Coltun, et al. Standards Track [Page 8] + +RFC 2740 OSPF for IPv6 December 1999 + + + o A new LSA called the Link-LSA has been introduced. The LSAs have + local-link flooding scope; they are never flooded beyond the link + that they are associated with. Link-LSAs have three purposes: 1) + they provide the router's link-local address to all other routers + attached to the link, 2) they inform other routers attached to the + link of a list of IPv6 prefixes to associate with the link and 3) + they allow the router to assert a collection of Options bits to + associate with the Network-LSA that will be originated for the + link. See Section A.4.8 for details. + + In IPv4, the router-LSA carries a router's IPv4 interface + addresses, the IPv4 equivalent of link-local addresses. These are + only used when calculating next hops during the OSPF routing + calculation (see Section 16.1.1 of [Ref1]), so they do not need to + be flooded past the local link; hence using link-LSAs to + distribute these addresses is more efficient. Note that link-local + addresses cannot be learned through the reception of Hellos in all + cases: on NBMA links next hop routers do not necessarily exchange + hellos, but rather learn of each other's existence by way of the + Designated Router. + + o The Options field in the Network LSA is set to the logical OR of + the Options that each router on the link advertises in its Link- + LSA. + + o Type-3 summary-LSAs have been renamed "Inter-Area-Prefix-LSAs". + Type-4 summary LSAs have been renamed "Inter-Area-Router-LSAs". + + o The Link State ID in Inter-Area-Prefix-LSAs, Inter-Area-Router- + LSAs and AS-external-LSAs has lost its addressing semantics, and + now serves solely to identify individual pieces of the Link State + Database. All addresses or Router IDs that were formerly expressed + by the Link State ID are now carried in the LSA bodies. + + o Network-LSAs and Link-LSAs are the only LSAs whose Link State ID + carries additional meaning. For these LSAs, the Link State ID is + always the Interface ID of the originating router on the link + being described. For this reason, Network-LSAs and Link-LSAs are + now the only LSAs whose size cannot be limited: a Network-LSA must + list all routers connected to the link, and a Link-LSA must list + all of a router's addresses on the link. + + o A new LSA called the Intra-Area-Prefix-LSA has been introduced. + This LSA carries all IPv6 prefix information that in IPv4 is + included in Router-LSAs and Network-LSAs. See Section A.4.9 for + details. + + + + + +Coltun, et al. Standards Track [Page 9] + +RFC 2740 OSPF for IPv6 December 1999 + + + o Inclusion of a forwarding address in AS-external-LSAs is now + optional, as is the inclusion of an external route tag (see + [Ref5]). In addition, AS-external-LSAs can now reference another + LSA, for inclusion of additional route attributes that are outside + the scope of the OSPF protocol itself. For example, this can be + used to attach BGP path attributes to external routes as proposed + in [Ref10]. + +2.9. Handling unknown LSA types + + Handling of unknown LSA types has been made more flexible so that, + based on LS type, unknown LSA types are either treated as having + link-local flooding scope, or are stored and flooded as if they were + understood (desirable for things like the proposed External- + Attributes-LSA in [Ref10]). This behavior is explicitly coded in the + LSA Handling bit of the link state header's LS type field (see + Section A.4.2.1). + + The IPv4 OSPF behavior of simply discarding unknown types is + unsupported due to the desire to mix router capabilities on a single + link. Discarding unknown types causes problems when the Designated + Router supports fewer options than the other routers on the link. + +2.10. Stub area support + + In OSPF for IPv4, stub areas were designed to minimize link-state + database and routing table sizes for the areas' internal routers. + This allows routers with minimal resources to participate in even + very large OSPF routing domains. + + In OSPF for IPv6, the concept of stub areas is retained. In IPv6, of + the mandatory LSA types, stub areas carry only router-LSAs, network- + LSAs, Inter-Area-Prefix-LSAs, Link-LSAs, and Intra-Area-Prefix-LSAs. + This is the IPv6 equivalent of the LSA types carried in IPv4 stub + areas: router-LSAs, network-LSAs and type 3 summary-LSAs. + + However, unlike in IPv4, IPv6 allows LSAs with unrecognized LS types + to be labeled "Store and flood the LSA, as if type understood" (see + the U-bit in Section A.4.2.1). Uncontrolled introduction of such LSAs + could cause a stub area's link-state database to grow larger than its + component routers' capacities. + + To guard against this, the following rule regarding stub areas has + been established: an LSA whose LS type is unrecognized may only be + flooded into/throughout a stub area if both a) the LSA has area or + link-local flooding scope and b) the LSA has U-bit set to 0. See + Section 3.5 for details. + + + + +Coltun, et al. Standards Track [Page 10] + +RFC 2740 OSPF for IPv6 December 1999 + + +2.11. Identifying neighbors by Router ID + + In OSPF for IPv6, neighboring routers on a given link are always + identified by their OSPF Router ID. This contrasts with the IPv4 + behavior where neighbors on point-to-point networks and virtual links + are identified by their Router IDs, and neighbors on broadcast, NBMA + and Point-to-MultiPoint links are identified by their IPv4 interface + addresses. + + This change affects the reception of OSPF packets (see Section 8.2 of + [Ref1]), the lookup of neighbors (Section 10 of [Ref1]) and the + reception of Hello Packets (Section 10.5 of [Ref1]). + + The Router ID of 0.0.0.0 is reserved, and should not be used. + +3. Implementation details + + When going from IPv4 to IPv6, the basic OSPF mechanisms remain + unchanged from those documented in [Ref1]. These mechanisms are + briefly outlined in Section 4 of [Ref1]. Both IPv6 and IPv4 have a + link-state database composed of LSAs and synchronized between + adjacent routers. Initial synchronization is performed through the + Database Exchange process, through the exchange of Database + Description, Link State Request and Link State Update packets. + Thereafter database synchronization is maintained via flooding, + utilizing Link State Update and Link State Acknowledgment packets. + Both IPv6 and IPv4 use OSPF Hello Packets to discover and maintain + neighbor relationships, and to elect Designated Routers and Backup + Designated Routers on broadcast and NBMA links. The decision as to + which neighbor relationships become adjacencies, along with the basic + ideas behind inter-area routing, importing external information in + AS-external-LSAs and the various routing calculations are also the + same. + + In particular, the following IPv4 OSPF functionality described in + [Ref1] remains completely unchanged for IPv6: + + o Both IPv4 and IPv6 use OSPF packet types described in Section 4.3 + of [Ref1], namely: Hello, Database Description, Link State + Request, Link State Update and Link State Acknowledgment packets. + While in some cases (e.g., Hello packets) their format has changed + somewhat, the functions of the various packet types remains the + same. + + o The system requirements for an OSPF implementation remain + unchanged, although OSPF for IPv6 requires an IPv6 protocol stack + (from the network layer on down) since it runs directly over the + IPv6 network layer. + + + +Coltun, et al. Standards Track [Page 11] + +RFC 2740 OSPF for IPv6 December 1999 + + + o The discovery and maintenance of neighbor relationships, and the + selection and establishment of adjacencies remain the same. This + includes election of the Designated Router and Backup Designated + Router on broadcast and NBMA links. These mechanisms are described + in Sections 7, 7.1, 7.2, 7.3, 7.4 and 7.5 of [Ref1]. + + o The link types (or equivalently, interface types) supported by + OSPF remain unchanged, namely: point-to-point, broadcast, NBMA, + Point-to-MultiPoint and virtual links. + + o The interface state machine, including the list of OSPF interface + states and events, and the Designated Router and Backup Designated + Router election algorithm, remain unchanged. These are described + in Sections 9.1, 9.2, 9.3 and 9.4 of [Ref1]. + + o The neighbor state machine, including the list of OSPF neighbor + states and events, remain unchanged. These are described in + Sections 10.1, 10.2, 10.3 and 10.4 of [Ref1]. + + o Aging of the link-state database, as well as flushing LSAs from + the routing domain through the premature aging process, remains + unchanged from the description in Sections 14 and 14.1 of [Ref1]. + + However, some OSPF protocol mechanisms have changed, as outlined in + Section 2 above. These changes are explained in detail in the + following subsections, making references to the appropriate sections + of [Ref1]. + + The following subsections provide a recipe for turning an IPv4 OSPF + implementation into an IPv6 OSPF implementation. + +3.1. Protocol data structures + + The major OSPF data structures are the same for both IPv4 and IPv6: + areas, interfaces, neighbors, the link-state database and the routing + table. The top-level data structures for IPv6 remain those listed in + Section 5 of [Ref1], with the following modifications: + + o All LSAs with known LS type and AS flooding scope appear in the + top-level data structure, instead of belonging to a specific area + or link. AS-external-LSAs are the only LSAs defined by this + specification which have AS flooding scope. LSAs with unknown LS + type, U-bit set to 1 (flood even when unrecognized) and AS + flooding scope also appear in the top-level data structure. + + + + + + + +Coltun, et al. Standards Track [Page 12] + +RFC 2740 OSPF for IPv6 December 1999 + + +3.1.1. The Area Data structure + + The IPv6 area data structure contains all elements defined for IPv4 + areas in Section 6 of [Ref1]. In addition, all LSAs of known type + which have area flooding scope are contained in the IPv6 area data + structure. This always includes the following LSA types: router-LSAs, + network-LSAs, inter-area-prefix-LSAs, inter-area-router-LSAs and + intra-area-prefix-LSAs. LSAs with unknown LS type, U-bit set to 1 + (flood even when unrecognized) and area scope also appear in the area + data structure. IPv6 routers implementing MOSPF add group- + membership-LSAs to the area data structure. Type-7-LSAs belong to an + NSSA area's data structure. + +3.1.2. The Interface Data structure + + In OSPF for IPv6, an interface connects a router to a link. The IPv6 + interface structure modifies the IPv4 interface structure (as defined + in Section 9 of [Ref1]) as follows: + + Interface ID + Every interface is assigned an Interface ID, which uniquely + identifies the interface with the router. For example, some + implementations may be able to use the MIB-II IfIndex ([Ref3]) as + Interface ID. The Interface ID appears in Hello packets sent out + the interface, the link-local-LSA originated by router for the + attached link, and the router-LSA originated by the router-LSA for + the associated area. It will also serve as the Link State ID for + the network-LSA that the router will originate for the link if the + router is elected Designated Router. + + Instance ID + Every interface is assigned an Instance ID. This should default to + 0, and is only necessary to assign differently on those links that + will contain multiple separate communities of OSPF Routers. For + example, suppose that there are two communities of routers on a + given ethernet segment that you wish to keep separate. + + The first community is given an Instance ID of 0, by assigning 0 + as the Instance ID of all its routers' interfaces to the ethernet. + An Instance ID of 1 is assigned to the other routers' interfaces + to the ethernet. The OSPF transmit and receive processing (see + Section 3.2) will then keep the two communities separate. + + List of LSAs with link-local scope + All LSAs with link-local scope and which were originated/flooded + on the link belong to the interface structure which connects to + the link. This includes the collection of the link's link-LSAs. + + + + +Coltun, et al. Standards Track [Page 13] + +RFC 2740 OSPF for IPv6 December 1999 + + + List of LSAs with unknown LS type + All LSAs with unknown LS type and U-bit set to 0 (if unrecognized, + treat the LSA as if it had link-local flooding scope) are kept in + the data structure for the interface that received the LSA. + + IP interface address + For IPv6, the IPv6 address appearing in the source of OSPF packets + sent out the interface is almost always a link-local address. The + one exception is for virtual links, which must use one of the + router's own site-local or global IPv6 addresses as IP interface + address. + + List of link prefixes + A list of IPv6 prefixes can be configured for the attached link. + These will be advertised by the router in link-LSAs, so that they + can be advertised by the link's Designated Router in intra-area- + prefix-LSAs. + + In OSPF for IPv6, each router interface has a single metric, + representing the cost of sending packets out the interface. In + addition, OSPF for IPv6 relies on the IP Authentication Header (see + [Ref19]) and the IP Encapsulating Security Payload (see [Ref20]) to + ensure integrity and authentication/confidentiality of routing + exchanges. For that reason, AuType and Authentication key are not + associated with IPv6 OSPF interfaces. + + Interface states, events, and the interface state machine remain + unchanged from IPv4, and are documented in Sections 9.1, 9.2 and 9.3 + of [Ref1] respectively. The Designated Router and Backup Designated + Router election algorithm also remains unchanged from the IPv4 + election in Section 9.4 of [Ref1]. + +3.1.3. The Neighbor Data Structure + + The neighbor structure performs the same function in both IPv6 and + IPv4. Namely, it collects all information required to form an + adjacency between two routers, if an adjacency becomes necessary. + Each neighbor structure is bound to a single OSPF interface. The + differences between the IPv6 neighbor structure and the neighbor + structure defined for IPv4 in Section 10 of [Ref1] are: + + Neighbor's Interface ID + The Interface ID that the neighbor advertises in its Hello Packets + must be recorded in the neighbor structure. The router will + include the neighbor's Interface ID in the router's router-LSA + when either a) advertising a point-to-point link to the neighbor + or b) advertising a link to a network where the neighbor has + become Designated Router. + + + +Coltun, et al. Standards Track [Page 14] + +RFC 2740 OSPF for IPv6 December 1999 + + + Neighbor IP address + Except on virtual links, the neighbor's IP address will be an IPv6 + link-local address. + + Neighbor's Designated Router + The neighbor's choice of Designated Router is now encoded as a + Router ID, instead of as an IP address. + + Neighbor's Backup Designated Router + The neighbor's choice of Designated Router is now encoded as a + Router ID, instead of as an IP address. + + Neighbor states, events, and the neighbor state machine remain + unchanged from IPv4, and are documented in Sections 10.1, 10.2 and + 10.3 of [Ref1] respectively. The decision as to which adjacencies to + form also remains unchanged from the IPv4 logic documented in Section + 10.4 of [Ref1]. + +3.2. Protocol Packet Processing + + OSPF for IPv6 runs directly over IPv6's network layer. As such, it is + encapsulated in one or more IPv6 headers, with the Next Header field + of the immediately encapsulating IPv6 header set to the value 89. + + As for IPv4, in IPv6 OSPF routing protocol packets are sent along + adjacencies only (with the exception of Hello packets, which are used + to discover the adjacencies). OSPF packet types and functions are the + same in both IPv4 and IPv4, encoded by the + + Type field of the standard OSPF packet header. + +3.2.1. Sending protocol packets + + When an IPv6 router sends an OSPF routing protocol packet, it fills + in the fields of the standard OSPF for IPv6 packet header (see + Section A.3.1) as follows: + + Version # + Set to 3, the version number of the protocol as documented in this + specification. + + Type + The type of OSPF packet, such as Link state Update or Hello + Packet. + + Packet length + The length of the entire OSPF packet in bytes, including the + standard OSPF packet header. + + + +Coltun, et al. Standards Track [Page 15] + +RFC 2740 OSPF for IPv6 December 1999 + + + Router ID + The identity of the router itself (who is originating the packet). + + Area ID + The OSPF area that the packet is being sent into. + + Instance ID + The OSPF Instance ID associated with the interface that the packet + is being sent out of. + + Checksum + The standard IPv6 16-bit one's complement checksum, covering the + entire OSPF packet and prepended IPv6 pseudo-header (see Section + A.3.1). + + Selection of OSPF routing protocol packets' IPv6 source and + destination addresses is performed identically to the IPv4 logic in + Section 8.1 of [Ref1]. The IPv6 destination address is chosen from + among the addresses AllSPFRouters, AllDRouters and the Neighbor IP + address associated with the other end of the adjacency (which in + IPv6, for all links except virtual links, is an IPv6 link-local + address). + + The sending of Link State Request Packets and Link State + Acknowledgment Packets remains unchanged from the IPv4 procedures + documented in Sections 10.9 and 13.5 of [Ref1] respectively. Sending + Hello Packets is documented in Section 3.2.1.1, and the sending of + Database Description Packets in Section 3.2.1.2. The sending of Link + State Update Packets is documented in Section 3.5.2. + +3.2.1.1. Sending Hello packets + + IPv6 changes the way OSPF Hello packets are sent in the following + ways (compare to Section 9.5 of [Ref1]): + + o Before the Hello Packet is sent out an interface, the interface's + Interface ID must be copied into the Hello Packet. + + o The Hello Packet no longer contains an IP network mask, as OSPF + for IPv6 runs per-link instead of per-subnet. + + o The choice of Designated Router and Backup Designated Router are + now indicated within Hellos by their Router IDs, instead of by + their IP interface addresses. Advertising the Designated + Router (or Backup Designated Router) as 0.0.0.0 indicates that the + Designated Router (or Backup Designated Router) has not yet been + chosen. + + + + +Coltun, et al. Standards Track [Page 16] + +RFC 2740 OSPF for IPv6 December 1999 + + + o The Options field within Hello packets has moved around, getting + larger in the process. More options bits are now possible. Those + that must be set correctly in Hello packets are: The E-bit is set + if and only if the interface attaches to a non-stub area, the N- + bit is set if and only if the interface attaches to an NSSA area + (see [Ref9]), and the DC- bit is set if and only if the router + wishes to suppress the sending of future Hellos over the interface + (see [Ref11]). Unrecognized bits in the Hello Packet's Options + field should be cleared. + + Sending Hello packets on NBMA networks proceeds for IPv6 in exactly + the same way as for IPv4, as documented in Section 9.5.1 of [Ref1]. + +3.2.1.2. Sending Database Description Packets + + The sending of Database Description packets differs from Section 10.8 + of [Ref1] in the following ways: + + o The Options field within Database Description packets has moved + around, getting larger in the process. More options bits are now + possible. Those that must be set correctly in Database Description + packets are: The MC-bit is set if and only if the router is + forwarding multicast datagrams according to the MOSPF + specification in [Ref7], and the DC-bit is set if and only if the + router wishes to suppress the sending of Hellos over the interface + (see [Ref11]). Unrecognized bits in the Database Description + Packet's Options field should be cleared. + +3.2.2. Receiving protocol packets + + Whenever an OSPF protocol packet is received by the router it is + marked with the interface it was received on. For routers that have + virtual links configured, it may not be immediately obvious which + interface to associate the packet with. For example, consider the + Router RT11 depicted in Figure 6 of [Ref1]. If RT11 receives an OSPF + protocol packet on its interface to Network N8, it may want to + associate the packet with the interface to Area 2, or with the + virtual link to Router RT10 (which is part of the backbone). In + the following, we assume that the packet is initially associated with + the non-virtual link. + + In order for the packet to be passed to OSPF for processing, the + following tests must be performed on the encapsulating IPv6 headers: + + o The packet's IP destination address must be one of the IPv6 + unicast addresses associated with the receiving interface (this + includes link-local addresses), or one of the IP multicast + addresses AllSPFRouters or AllDRouters. + + + +Coltun, et al. Standards Track [Page 17] + +RFC 2740 OSPF for IPv6 December 1999 + + + o The Next Header field of the immediately encapsulating IPv6 header + must specify the OSPF protocol (89). + + o Any encapsulating IP Authentication Headers (see [Ref19]) and the + IP Encapsulating Security Payloads (see [Ref20]) must be processed + and/or verified to ensure integrity and + authentication/confidentiality of OSPF routing exchanges. + + o Locally originated packets should not be passed on to OSPF. That + is, the source IPv6 address should be examined to make sure this + is not a multicast packet that the router itself generated. + + After processing the encapsulating IPv6 headers, the OSPF packet + header is processed. The fields specified in the header must match + those configured for the receiving interface. If they do not, the + packet should be discarded: + + o The version number field must specify protocol version 3. + + o The standard IPv6 16-bit one's complement checksum, covering the + entire OSPF packet and prepended IPv6 pseudo-header, must be + verified (see Section A.3.1). + + o The Area ID found in the OSPF header must be verified. If both of + the following cases fail, the packet should be discarded. The + Area ID specified in the header must either: + + (1) Match the Area ID of the receiving interface. In + this case, unlike for IPv4, the IPv6 source + address is not restricted to lie on the same IP + subnet as the receiving interface. IPv6 OSPF runs + per-link, instead of per-IP-subnet. + + (2) Indicate the backbone. In this case, the packet + has been sent over a virtual link. The receiving + router must be an area border router, and the + Router ID specified in the packet (the source + router) must be the other end of a configured + virtual link. The receiving interface must also + attach to the virtual link's configured Transit + area. If all of these checks succeed, the packet + is accepted and is from now on associated with + the virtual link (and the backbone area). + + o The Instance ID specified in the OSPF header must match the + receiving interface's Instance ID. + + + + + +Coltun, et al. Standards Track [Page 18] + +RFC 2740 OSPF for IPv6 December 1999 + + + o Packets whose IP destination is AllDRouters should only be + accepted if the state of the receiving interface is DR or Backup + (see Section 9.1). + + After header processing, the packet is further processed according to + its OSPF packet type. OSPF packet types and functions are the same + for both IPv4 and IPv6. + + If the packet type is Hello, it should then be further processed by + the Hello Protocol. All other packet types are sent/received only on + adjacencies. This means that the packet must have been sent by one + of the router's active neighbors. The neighbor is identified by the + Router ID appearing the the received packet's OSPF header. Packets + not matching any active neighbor are discarded. + + The receive processing of Database Description Packets, Link State + Request Packets and Link State Acknowledgment Packets remains + unchanged from the IPv4 procedures documented in Sections 10.6, 10.7 + and 13.7 of [Ref1] respectively. The receiving of Hello Packets is + documented in Section 3.2.2.1, and the receiving of Link State Update + Packets is documented in Section 3.5.1. + +3.2.2.1. Receiving Hello Packets + + The receive processing of Hello Packets differs from Section 10.5 of + [Ref1] in the following ways: + + o On all link types (e.g., broadcast, NBMA, point-to- point, etc), + neighbors are identified solely by their OSPF Router ID. For all + link types except virtual links, the Neighbor IP address is set to + the IPv6 source address in the IPv6 header of the received OSPF + Hello packet. + + o There is no longer a Network Mask field in the Hello Packet. + + o The neighbor's choice of Designated Router and Backup Designated + Router is now encoded as an OSPF Router ID instead of an IP + interface address. + +3.3. The Routing table Structure + + The routing table used by OSPF for IPv4 is defined in Section 11 of + [Ref1]. For IPv6 there are analogous routing table entries: there are + routing table entries for IPv6 address prefixes, and also for AS + boundary routers. The latter routing table entries are only used to + hold intermediate results during the routing table build process (see + Section 3.8). + + + + +Coltun, et al. Standards Track [Page 19] + +RFC 2740 OSPF for IPv6 December 1999 + + + Also, to hold the intermediate results during the shortest-path + calculation for each area, there is a separate routing table for each + area holding the following entries: + + o An entry for each router in the area. Routers are identified by + their OSPF router ID. These routing table entries hold the set of + shortest paths through a given area to a given router, which in + turn allows calculation of paths to the IPv6 prefixes advertised + by that router in Intra-area-prefix-LSAs. If the router is also an + area-border router, these entries are also used to calculate paths + for inter-area address prefixes. If in addition the router is the + other endpoint of a virtual link, the routing table entry + describes the cost and viability of the virtual link. + + o An entry for each transit link in the area. Transit links have + associated network-LSAs. Both the transit link and the network-LSA + are identified by a combination of the Designated Router's + Interface ID on the link and the Designated Router's OSPF Router + ID. These routing table entries allow later calculation of paths + to IP prefixes advertised for the transit link in intra-area- + prefix-LSAs. + + The fields in the IPv4 OSPF routing table (see Section 11 of [Ref1]) + remain valid for IPv6: Optional capabilities (routers only), path + type, cost, type 2 cost, link state origin, and for each of the equal + cost paths to the destination, the next hop and advertising router. + + For IPv6, the link-state origin field in the routing table entry is + the router-LSA or network-LSA that has directly or indirectly + produced the routing table entry. For example, if the routing table + entry describes a route to an IPv6 prefix, the link state origin is + the router-LSA or network-LSA that is listed in the body of the + intra-area-prefix-LSA that has produced the route (see Section + A.4.9). + +3.3.1. Routing table lookup + + Routing table lookup (i.e., determining the best matching routing + table entry during IP forwarding) is the same for IPv6 as for IPv4. + +3.4. Link State Advertisements + + For IPv6, the OSPF LSA header has changed slightly, with the LS type + field expanding and the Options field being moved into the body of + appropriate LSAs. Also, the formats of some LSAs have changed + somewhat (namely router-LSAs, network-LSAs and AS-external-LSAs), + while the names of other LSAs have been changed (type 3 and 4 + summary-LSAs are now inter-area-prefix-LSAs and inter-area-router- + + + +Coltun, et al. Standards Track [Page 20] + +RFC 2740 OSPF for IPv6 December 1999 + + + LSAs respectively) and additional LSAs have been added (Link-LSAs and + Intra-Area-Prefix-LSAs). Type of Service (TOS) has been removed from + the OSPFv2 specification [Ref1], and is not encoded within OSPF for + IPv6's LSAs. + + These changes will be described in detail in the following + subsections. + +3.4.1. The LSA Header + + In both IPv4 and IPv6, all OSPF LSAs begin with a standard 20 byte + LSA header. However, the contents of this 20 byte header have changed + in IPv6. The LS age, Advertising Router, LS Sequence Number, LS + checksum and length fields within the LSA header remain unchanged, as + documented in Sections 12.1.1, 12.1.5, 12.1.6, 12.1.7 and A.4.1 of + [Ref1] respectively. However, the following fields have changed for + IPv6: + + Options + The Options field has been removed from the standard 20 byte LSA + header, and into the body of router-LSAs, network-LSAs, inter- + area-router-LSAs and link-LSAs. The size of the Options field has + increased from 8 to 24 bits, and some of the bit definitions have + changed (see Section A.2). In addition a separate PrefixOptions + field, 8 bits in length, is attached to each prefix advertised + within the body of an LSA. + + LS type + The size of the LS type field has increased from 8 to 16 bits, + with the top two bits encoding flooding scope and the next bit + encoding the handling of unknown LS types. See Section A.4.2.1 + for the current coding of the LS type field. + + Link State ID + Link State ID remains at 32 bits in length, but except for + network-LSAs and link-LSAs, Link State ID has shed any addressing + semantics. For example, an IPv6 router originating multiple AS- + external-LSAs could start by assigning the first a Link State ID + of 0.0.0.1, the second a Link State ID of 0.0.0.2, and so on. + Instead of the IPv4 behavior of encoding the network number within + the AS-external-LSA's Link State ID, the IPv6 Link State ID simply + serves as a way to differentiate multiple LSAs originated by the + same router. + + For network-LSAs, the Link State ID is set to the Designated + Router's Interface ID on the link. When a router originates a + Link-LSA for a given link, its Link State ID is set equal to the + router's Interface ID on the link. + + + +Coltun, et al. Standards Track [Page 21] + +RFC 2740 OSPF for IPv6 December 1999 + + +3.4.2. The link-state database + + In IPv6, as in IPv4, individual LSAs are identified by a combination + of their LS type, Link State ID and Advertising Router fields. Given + two instances of an LSA, the most recent instance is determined by + examining the LSAs' LS Sequence Number, using LS checksum and LS age + as tiebreakers (see Section 13.1 of [Ref1]). + + In IPv6, the link-state database is split across three separate data + structures. LSAs with AS flooding scope are contained within the + top-level OSPF data structure (see Section 3.1) as long as either + their LS type is known or their U-bit is 1 (flood even when + unrecognized); this includes the AS-external-LSAs. LSAs with area + flooding scope are contained within the appropriate area structure + (see Section 3.1.1) as long as either their LS type is known or their + U-bit is 1 (flood even when unrecognized); this includes router-LSAs, + network-LSAs, inter-area-prefix-LSAs, inter-area-router-LSAs, and + intra-area-prefix-LSAs. LSAs with unknown LS type and U-bit set to 0 + and/or link-local flooding scope are contained within the appropriate + interface structure (see Section 3.1.2); this includes link-LSAs. + + To lookup or install an LSA in the database, you first examine the LS + type and the LSA's context (i.e., to which area or link does the LSA + belong). This information allows you to find the correct list of + LSAs, all of the same LS type, where you then search based on the + LSA's Link State ID and Advertising Router. + +3.4.3. Originating LSAs + + The process of reoriginating an LSA in IPv6 is the same as in IPv4: + the LSA's LS sequence number is incremented, its LS age is set to 0, + its LS checksum is calculated, and the LSA is added to the link state + database and flooded out the appropriate interfaces. + + To the list of events causing LSAs to be reoriginated, which for IPv4 + is given in Section 12.4 of [Ref1], the following events and/or + actions are added for IPv6: + + o The state of one of the router's interfaces changes. The router + may need to (re)originate or flush its Link-LSA and one or more + router-LSAs and/or intra-area-prefix-LSAs. + + o The identity of a link's Designated Router changes. The router may + need to (re)originate or flush the link's network-LSA and one or + more router-LSAs and/or intra-area-prefix-LSAs. + + + + + + +Coltun, et al. Standards Track [Page 22] + +RFC 2740 OSPF for IPv6 December 1999 + + + o A neighbor transitions to/from "Full" state. The router may need + to (re)originate or flush the link's network-LSA and one or more + router-LSAs and/or intra-area-prefix-LSAs. + + o The Interface ID of a neighbor changes. This may cause a new + instance of a router-LSA to be originated for the associated area, + and the reorigination of one or more intra-area-prefix-LSAs. + + o A new prefix is added to an attached link, or a prefix is deleted + (both through configuration). This causes the router to + reoriginate its link-LSA for the link, or, if it is the only + router attached to the link, causes the router to reoriginate an + intra-area-prefix-LSA. + + o A new link-LSA is received, causing the link's collection of + prefixes to change. If the router is Designated Router for the + link, it originates a new intra-area-prefix-LSA. + + Detailed construction of the seven required IPv6 LSA types is + supplied by the following subsections. In order to display example + LSAs, the network map in Figure 15 of [Ref1] has been reworked to + show IPv6 addressing, resulting in Figure 1. The OSPF cost of each + interface is has been displayed in Figure 1. The assignment of IPv6 + prefixes to network links is shown in Table 1. A single area address + range has been configured for Area 1, so that outside of Area 1 all + of its prefixes are covered by a single route to 5f00:0000:c001::/48. + The OSPF interface IDs and the link-local addresses for the router + interfaces in Figure 1 are given in Table 2. + + + + + + + + + + + + + + + + + + + + + + + +Coltun, et al. Standards Track [Page 23] + +RFC 2740 OSPF for IPv6 December 1999 + + + .......................................... + . Area 1. + . + . + . | . + . | 3+---+1 . + . N1 |--|RT1|-----+ . + . | +---+ \ . + . | \ ______ . + . + \/ \ 1+---+ + . * N3 *------|RT4|------ + . + /\_______/ +---+ + . | / | . + . | 3+---+1 / | . + . N2 |--|RT2|-----+ 1| . + . | +---+ +---+ . + . | |RT3|---------------- + . + +---+ . + . |2 . + . | . + . +------------+ . + . N4 . + .......................................... + + Figure 1: Area 1 with IP addresses shown + + + Network IPv6 prefix + ----------------------------------- + N1 5f00:0000:c001:0200::/56 + N2 5f00:0000:c001:0300::/56 + N3 5f00:0000:c001:0100::/56 + N4 5f00:0000:c001:0400::/56 + + Table 1: IPv6 link prefixes for sample network + + + Router interface Interface ID link-local address + ------------------------------------------------------- + RT1 to N1 1 fe80:0001::RT1 + to N3 2 fe80:0002::RT1 + RT2 to N2 1 fe80:0001::RT2 + to N3 2 fe80:0002::RT2 + RT3 to N3 1 fe80:0001::RT3 + to N4 2 fe80:0002::RT3 + RT4 to N3 1 fe80:0001::RT4 + + Table 2: OSPF Interface IDs and link-local addresses + + + + +Coltun, et al. Standards Track [Page 24] + +RFC 2740 OSPF for IPv6 December 1999 + + +3.4.3.1. Router-LSAs + + The LS type of a router-LSA is set to the value 0x2001. Router-LSAs + have area flooding scope. A router may originate one or more router- + LSAs for a given area. Each router-LSA contains an integral number of + interface descriptions; taken together, the collection of router-LSAs + originated by the router for an area describes the collected states + of all the router's interfaces to the area. When multiple router-LSAs + are used, they are distinguished by their Link State ID fields. + + The Options field in the router-LSA should be coded as follows. The + V6-bit should be set. The E-bit should be clear if and only if the + attached area is an OSPF stub area. The MC-bit should be set if and + only if the router is running MOSPF (see [Ref8]). The N-bit should be + set if and only if the attached area is an OSPF NSSA area. The R-bit + should be set. The DC-bit should be set if and only if the router can + correctly process the DoNotAge bit when it appears in the LS age + field of LSAs (see [Ref11]). All unrecognized bits in the Options + field should be cleared + + To the left of the Options field, the router capability bits V, E and + B should be coded according to Section 12.4.1 of [Ref1]. Bit W should + be coded according to [Ref8]. + + Each of the router's interfaces to the area are then described by + appending "link descriptions" to the router-LSA. Each link + description is 16 bytes long, consisting of 5 fields: (link) Type, + Metric, Interface ID, Neighbor Interface ID and Neighbor Router ID + (see Section A.4.3). Interfaces in state "Down" or "Loopback" are not + described (although looped back interfaces can contribute prefixes to + Intra-Area-Prefix-LSAs). Nor are interfaces without any full + adjacencies described. All other interfaces to the area add zero, one + or more link descriptions, the number and content of which depend on + the interface type. Within each link description, the Metric field is + always set the interface's output cost and the Interface ID field is + set to the interface's OSPF Interface ID. + + Point-to-point interfaces + If the neighboring router is fully adjacent, add a Type 1 link + description (point-to-point). The Neighbor Interface ID field is + set to the Interface ID advertised by the neighbor in its Hello + packets, and the Neighbor Router ID field is set to the neighbor's + Router ID. + + + + + + + + +Coltun, et al. Standards Track [Page 25] + +RFC 2740 OSPF for IPv6 December 1999 + + + Broadcast and NBMA interfaces + If the router is fully adjacent to the link's Designated Router, + or if the router itself is Designated Router and is fully adjacent + to at least one other router, add a single Type 2 link description + (transit network). The Neighbor Interface ID field is set to the + Interface ID advertised by the Designated Router in its Hello + packets, and the Neighbor Router ID field is set to the Designated + Router's Router ID. + + Virtual links + If the neighboring router is fully adjacent, add a Type 4 link + description (virtual). The Neighbor Interface ID field is set to + the Interface ID advertised by the neighbor in its Hello packets, + and the Neighbor Router ID field is set to the neighbor's Router + ID. Note that the output cost of a virtual link is calculated + during the routing table calculation (see Section 3.7). + + Point-to-MultiPoint interfaces + For each fully adjacent neighbor associated with the interface, + add a separate Type 1 link description (point-to-point) with + Neighbor Interface ID field set to the Interface ID advertised by + the neighbor in its Hello packets, and Neighbor Router ID field + set to the neighbor's Router ID. + + As an example, consider the router-LSA that router RT3 would + originate for Area 1 in Figure 1. Only a single interface must be + described, namely that which connects to the transit network N3. It + assumes that RT4 has been elected Designated Router of Network N3. + + ; RT3's router-LSA for Area 1 + + LS age = 0 ;newly (re)originated + LS type = 0x2001 ;router-LSA + Link State ID = 0 ;first fragment + Advertising Router = 192.1.1.3 ;RT3's Router ID + bit E = 0 ;not an AS boundary router + bit B = 1 ;area border router + Options = (V6-bit|E-bit|R-bit) + Type = 2 ;connects to N3 + Metric = 1 ;cost to N3 + Interface ID = 1 ;RT3's Interface ID on N3 + Neighbor Interface ID = 1 ;RT4's Interface ID on N3 + Neighbor Router ID = 192.1.1.4 ; RT4's Router ID + + If for example another router was added to Network N4, RT3 would have + to advertise a second link description for its connection to (the now + transit) network N4. This could be accomplished by reoriginating the + above router-LSA, this time with two link descriptions. Or, a + + + +Coltun, et al. Standards Track [Page 26] + +RFC 2740 OSPF for IPv6 December 1999 + + + separate router-LSA could be originated with a separate Link State ID + (e.g., using a Link State ID of 1) to describe the connection to N4. + + Host routes no longer appear in the router-LSA, but are instead + included in intra-area-prefix-LSAs. + +3.4.3.2. Network-LSAs + + The LS type of a network-LSA is set to the value 0x2002. Network- + LSAs have area flooding scope. A network-LSA is originated for every + broadcast or NBMA link having two or more attached routers, by the + link's Designated Router. The network-LSA lists all routers attached + to the link. + + The procedure for originating network-LSAs in IPv6 is the same as the + IPv4 procedure documented in Section 12.4.2 of [Ref1], with the + following exceptions: + + o An IPv6 network-LSA's Link State ID is set to the Interface ID of + the Designated Router on the link. + + o IPv6 network-LSAs do not contain a Network Mask. All addressing + information formerly contained in the IPv4 network-LSA has now + been consigned to intra-Area-Prefix-LSAs. + + o The Options field in the network-LSA is set to the logical OR of + the Options fields contained within the link's associated link- + LSAs. In this way, the network link exhibits a capability when at + least one of the link's routers requests that the capability be + asserted. + + As an example, assuming that Router RT4 has been elected Designated + Router of Network N3 in Figure 1, the following network-LSA is + originated: + + ; Network-LSA for Network N3 + + LS age = 0 ;newly (re)originated + LS type = 0x2002 ;network-LSA + Link State ID = 1 ;RT4's Interface ID on N3 + Advertising Router = 192.1.1.4 ;RT4's Router ID + Options = (V6-bit|E-bit|R-bit) + Attached Router = 192.1.1.4 ;Router ID + Attached Router = 192.1.1.1 ;Router ID + Attached Router = 192.1.1.2 ;Router ID + Attached Router = 192.1.1.3 ;Router ID + + + + + +Coltun, et al. Standards Track [Page 27] + +RFC 2740 OSPF for IPv6 December 1999 + + +3.4.3.3. Inter-Area-Prefix-LSAs + + The LS type of an inter-area-prefix-LSA is set to the value 0x2003. + Inter-area-prefix-LSAs have area flooding scope. In IPv4, inter- + area-prefix-LSAs were called type 3 summary-LSAs. Each inter-area- + prefix-LSA describes a prefix external to the area, yet internal to + the Autonomous System. + + The procedure for originating inter-area-prefix-LSAs in IPv6 is the + same as the IPv4 procedure documented in Sections 12.4.3 and 12.4.3.1 + of [Ref1], with the following exceptions: + + o The Link State ID of an inter-area-prefix-LSA has lost all of its + addressing semantics, and instead simply serves to distinguish + multiple inter-area-prefix-LSAs that are originated by the same + router. + + o The prefix is described by the PrefixLength, PrefixOptions and + Address Prefix fields embedded within the LSA body. Network Mask + is no longer specified. + + o The NU-bit in the PrefixOptions field should be clear. The coding + of the MC-bit depends upon whether, and if so how, MOSPF is + operating in the routing domain (see [Ref8]). + + o Link-local addresses must never be advertised in inter-area- + prefix-LSAs. + + As an example, the following shows the inter-area-prefix-LSA that + Router RT4 originates into the OSPF backbone area, condensing all + of Area 1's prefixes into the single prefix 5f00:0000:c001::/48. + The cost is set to 4, which is the maximum cost to all of the + prefix' individual components. The prefix is padded out to an even + number of 32-bit words, so that it consumes 64-bits of space + instead of 48 bits. + + ; Inter-area-prefix-LSA for Area 1 addresses + ; originated by Router RT4 into the backbone + + LS age = 0 ;newly (re)originated + LS type = 0x2003 ;inter-area-prefix-LSA + Advertising Router = 192.1.1.4 ;RT4's ID + Metric = 4 ;maximum to components + PrefixLength = 48 + PrefixOptions = 0 + Address Prefix = 5f00:0000:c001 ;padded to 64-bits + + + + + +Coltun, et al. Standards Track [Page 28] + +RFC 2740 OSPF for IPv6 December 1999 + + +3.4.3.4. Inter-Area-Router-LSAs + + The LS type of an inter-area-router-LSA is set to the value + 0x2004. Inter-area-router-LSAs have area flooding scope. In IPv4, + inter-area-router-LSAs were called type 4 summary-LSAs. Each + inter-area-router-LSA describes a path to a destination OSPF + router (an ASBR) that is external to the area, yet internal to the + Autonomous System. + + The procedure for originating inter-area-router-LSAs in IPv6 is + the same as the IPv4 procedure documented in Section 12.4.3 of + [Ref1], with the following exceptions: + + o The Link State ID of an inter-area-router-LSA is no longer the + destination router's OSPF Router ID, but instead simply serves to + distinguish multiple inter-area-router-LSAs that are originated by + the same router. The destination router's Router ID is now found + in the body of the LSA. + + o The Options field in an inter-area-router-LSA should be set equal + to the Options field contained in the destination router's own + router-LSA. The Options field thus describes the capabilities + supported by the destination router. + + As an example, consider the OSPF Autonomous System depicted in Figure + 6 of [Ref1]. Router RT4 would originate into Area 1 the following + inter-area-router-LSA for destination router RT7. + + ; inter-area-router-LSA for AS boundary router RT7 + ; originated by Router RT4 into Area 1 + + LS age = 0 ;newly (re)originated + LS type = 0x2004 ;inter-area-router-LSA + Advertising Router = 192.1.1.4 ;RT4's ID + Options = (V6-bit|E-bit|R-bit) ;RT7's capabilities + Metric = 14 ;cost to RT7 + Destination Router ID = Router RT7's ID + +3.4.3.5. AS-external-LSAs + + The LS type of an AS-external-LSA is set to the value 0x4005. AS- + external-LSAs have AS flooding scope. Each AS-external-LSA describes + a path to a prefix external to the Autonomous System. + + The procedure for originating AS-external-LSAs in IPv6 is the same as + the IPv4 procedure documented in Section 12.4.4 of [Ref1], with the + following exceptions: + + + + +Coltun, et al. Standards Track [Page 29] + +RFC 2740 OSPF for IPv6 December 1999 + + + o The Link State ID of an AS-external-LSA has lost all of its + addressing semantics, and instead simply serves to distinguish + multiple AS-external-LSAs that are originated by the same router. + + o The prefix is described by the PrefixLength, PrefixOptions and + Address Prefix fields embedded within the LSA body. Network Mask + is no longer specified. + + o The NU-bit in the PrefixOptions field should be clear. The coding + of the MC-bit depends upon whether, and if so how, MOSPF is + operating in the routing domain (see [Ref8]). + + o Link-local addresses can never be advertised in AS-external-LSAs. + + o The forwarding address is present in the AS-external-LSA if and + only if the AS-external-LSA's bit F is set. + + o The external route tag is present in the AS-external-LSA if and + only if the AS-external-LSA's bit T is set. + + o The capability for an AS-external-LSA to reference another LSA has + been included, by inclusion of the Referenced LS Type field and + the optional Referenced Link State ID field (the latter present if + and only if Referenced LS Type is non-zero). This capability is + for future use; for now Referenced LS Type should be set to 0 and + received non-zero values for this field should be ignored. + + As an example, consider the OSPF Autonomous System depicted in Figure + 6 of [Ref1]. Assume that RT7 has learned its route to N12 via BGP, + and that it wishes to advertise a Type 2 metric into the AS. Further + assume the the IPv6 prefix for N12 is the value 5f00:0000:0a00::/40. + RT7 would then originate the following AS-external-LSA for the + external network N12. Note that within the AS-external-LSA, N12's + prefix occupies 64 bits of space, to maintain 32-bit alignment. + + ; AS-external-LSA for Network N12, + ; originated by Router RT7 + + LS age = 0 ;newly (re)originated + LS type = 0x4005 ;AS-external-LSA + Link State ID = 123 ;or something else + Advertising Router = Router RT7's ID + bit E = 1 ;Type 2 metric + bit F = 0 ;no forwarding address + bit T = 1 ;external route tag included + Metric = 2 + PrefixLength = 40 + PrefixOptions = 0 + + + +Coltun, et al. Standards Track [Page 30] + +RFC 2740 OSPF for IPv6 December 1999 + + + Referenced LS Type = 0 ;no Referenced Link State ID + Address Prefix = 5f00:0000:0a00 ;padded to 64-bits + External Route Tag = as per BGP/OSPF interaction + +3.4.3.6. Link-LSAs + + The LS type of a Link-LSA is set to the value 0x0008. Link-LSAs have + link-local flooding scope. A router originates a separate Link-LSA + for each attached link that supports 2 or more (including the + originating router itself) routers. + + Link-LSAs have three purposes: 1) they provide the router's link- + local address to all other routers attached to the link and 2) they + inform other routers attached to the link of a list of IPv6 prefixes + to associate with the link and 3) they allow the router to assert a + collection of Options bits in the Network-LSA that will be originated + for the link. + + A Link-LSA for a given Link L is built in the following fashion: + + o The Link State ID is set to the router's Interface ID on Link L. + + o The Router Priority of the router's interface to Link L is + inserted into the Link-LSA. + + o The Link-LSA's Options field is set to those bits that the router + wishes set in Link L's Network LSA. + + o The router inserts its link-local address on Link L into the + Link-LSA. This information will be used when the other routers on + Link L do their next hop calculations (see Section 3.8.1.1). + + o Each IPv6 address prefix that has been configured into the router + for Link L is added to the Link-LSA, by specifying values for + PrefixLength, PrefixOptions, and Address Prefix fields. + + After building a Link-LSA for a given link, the router installs the + link-LSA into the associate interface data structure and floods the + Link-LSA onto the link. All other routers on the link will receive + the Link-LSA, but it will go no further. + + As an example, consider the Link-LSA that RT3 will build for N3 in + Figure 1. Suppose that the prefix 5f00:0000:c001:0100::/56 has been + configured within RT3 for N3. This will give rise to the following + Link-LSA, which RT3 will flood onto N3, but nowhere else. Note that + not all routers on N3 need be configured with the prefix; those not + configured will learn the prefix when receiving RT3's Link-LSA. + + + + +Coltun, et al. Standards Track [Page 31] + +RFC 2740 OSPF for IPv6 December 1999 + + + ; RT3's Link-LSA for N3 + + LS age = 0 ;newly (re)originated + LS type = 0x0008 ;Link-LSA + Link State ID = 1 ;RT3's Interface ID on N3 + Advertising Router = 192.1.1.3 ;RT3's Router ID + Rtr Pri = 1 ;RT3's N3 Router Priority + Options = (V6-bit|E-bit|R-bit) + Link-local Interface Address = fe80:0001::RT3 + # prefixes = 1 + PrefixLength = 56 + PrefixOptions = 0 + Address Prefix = 5f00:0000:c001:0100 ;pad to 64-bits + +3.4.3.7. Intra-Area-Prefix-LSAs + + The LS type of an intra-area-prefix-LSA is set to the value 0x2009. + Intra-area-prefix-LSAs have area flooding scope. An intra-area- + prefix-LSA has one of two functions. It associates a list of IPv6 + address prefixes with a transit network link by referencing a + network- LSA, or associates a list of IPv6 address prefixes with a + router by referencing a router-LSA. A stub link's prefixes are + associated with its attached router. + + A router may originate multiple intra-area-prefix-LSAs for a given + area, distinguished by their Link State ID fields. Each intra-area- + prefix-LSA contains an integral number of prefix descriptions. + + A link's Designated Router originates one or more intra-area-prefix- + LSAs to advertise the link's prefixes throughout the area. For a link + L, L's Designated Router builds an intra-area-prefix-LSA in the + following fashion: + + o In order to indicate that the prefixes are to be associated with + the Link L, the fields Referenced LS type, Referenced Link State + ID, and Referenced + + Advertising Router are set to the corresponding fields in Link L's + network-LSA (namely LS type, Link State ID, and Advertising Router + respectively). This means that Referenced LS Type is set to + 0x2002, Referenced Link State ID is set to the Designated Router's + Interface ID on Link L, and Referenced Advertising Router is set + to the Designated Router's Router ID. + + o Each Link-LSA associated with Link L is examined (these are in the + Designated Router's interface structure for Link L). If the Link- + LSA's Advertising Router is fully adjacent to the Designated + Router, the list of prefixes in the Link-LSA is copied into the + + + +Coltun, et al. Standards Track [Page 32] + +RFC 2740 OSPF for IPv6 December 1999 + + + intra-area-prefix-LSA that is being built. Prefixes having the + NU-bit and/or LA-bit set in their Options field should not be + copied, nor should link-local addresses be copied. Each prefix is + described by the PrefixLength, PrefixOptions, and Address Prefix + fields. Multiple prefixes having the same PrefixLength and Address + Prefix are considered to be duplicates; in this case their Prefix + Options fields should be merged by logically OR'ing the fields + together, and a single resulting prefix should be copied into the + intra-area-prefix-LSA. The Metric field for all prefixes is set to + 0. + + o The "# prefixes" field is set to the number of prefixes that the + router has copied into the LSA. If necessary, the list of prefixes + can be spread across multiple intra-area-prefix-LSAs in order to + keep the LSA size small. + + A router builds an intra-area-prefix-LSA to advertise its own + prefixes, and those of its attached stub links. A Router RTX + would build its intra-area-prefix-LSA in the following fashion: + + o In order to indicate that the prefixes are to be associated with + the Router RTX itself, RTX sets Referenced LS type to 0x2001, + Referenced Link State ID to 0, and Referenced Advertising Router + to RTX's own Router ID. + + o Router RTX examines its list of interfaces to the area. If the + interface is in state Down, its prefixes are not included. If the + interface has been reported in RTX's router-LSA as a Type 2 link + description (link to transit network), its prefixes are not + included (they will be included in the intra-area-prefix-LSA for + the link instead). If the interface type is Point-to-MultiPoint, + or the interface is in state Loopback, or the interface connects + to a point-to-point link which has not been assigned a prefix, + then the site-local and global scope IPv6 addresses associated + with the interface (if any) are copied into the intra-area- + prefix-LSA, setting the LA-bit in the PrefixOptions field, and + setting the PrefixLength to 128 and the Metric to 0. Otherwise, + the list of site-local and global prefixes configured in RTX for + the link are copied into the intra-area-prefix-LSA by specifying + the PrefixLength, PrefixOptions, and Address Prefix fields. The + Metric field for each of these prefixes is set to the interface's + output cost. + + o RTX adds the IPv6 prefixes for any directly attached hosts + belonging to the area (see Section C.7) to the intra-area-prefix- + LSA. + + + + + +Coltun, et al. Standards Track [Page 33] + +RFC 2740 OSPF for IPv6 December 1999 + + + o If RTX has one or more virtual links configured through the area, + it includes one of its site-local or global scope IPv6 interface + addresses in the LSA (if it hasn't already), setting the LA-bit in + the PrefixOptions field, and setting the PrefixLength to 128 and + the Metric to 0. This information will be used later in the + routing calculation so that the two ends of the virtual link can + discover each other's IPv6 addresses. + + o The "# prefixes" field is set to the number of prefixes that the + router has copied into the LSA. If necessary, the list of prefixes + can be spread across multiple intra-area-prefix-LSAs in order to + keep the LSA size small. + + For example, the intra-area-prefix-LSA originated by RT4 for Network + N3 (assuming that RT4 is N3's Designated Router), and the intra- + area-prefix-LSA originated into Area 1 by Router RT3 for its own + prefixes, are pictured below. + + ; Intra-area-prefix-LSA + ; for network link N3 + + LS age = 0 ;newly (re)originated + LS type = 0x2009 ;Intra-area-prefix-LSA + Link State ID = 5 ;or something + Advertising Router = 192.1.1.4 ;RT4's Router ID + # prefixes = 1 + Referenced LS type = 0x2002 ;network-LSA reference + Referenced Link State ID = 1 + Referenced Advertising Router = 192.1.1.4 + PrefixLength = 56 ;N3's prefix + PrefixOptions = 0 + Metric = 0 + Address Prefix = 5f00:0000:c001:0100 ;pad + + ; RT3's Intra-area-prefix-LSA + ; for its own prefixes + + LS age = 0 ;newly (re)originated + LS type = 0x2009 ;Intra-area-prefix-LSA + Link State ID = 177 ;or something + Advertising Router = 192.1.1.3 ;RT3's Router ID + # prefixes = 1 + Referenced LS type = 0x2001 ;router-LSA reference + Referenced Link State ID = 0 + Referenced Advertising Router = 192.1.1.3 + PrefixLength = 56 ;N4's prefix + + + + + +Coltun, et al. Standards Track [Page 34] + +RFC 2740 OSPF for IPv6 December 1999 + + + PrefixOptions = 0 + Metric = 2 ;N4 interface cost + Address Prefix = 5f00:0000:c001:0400 ;pad + + When network conditions change, it may be necessary for a router to + move prefixes from one intra-area-prefix-LSA to another. For example, + if the router is Designated Router for a link but the link has no + other attached routers, the link's prefixes are advertised in an + intra-area-prefix-LSA referring to the Designated Router's router- + LSA. When additional routers appear on the link, a network-LSA is + originated for the link and the link's prefixes are moved to an + intra-area-prefix-LSA referring to the network-LSA. + + Note that in the intra-area-prefix-LSA, the "Referenced Advertising + Router" is always equal to the router that is originating the intra- + area-prefix-LSA (i.e., the LSA's Advertising Router). The reason that + the Referenced Advertising Router field appears is that, even though + it is currently redundant, it may not be in the future. We may + sometime want to use the same LSA format to advertise address + prefixes for other protocol suites. In that event, the Designated + Router may not be running the other protocol suite, and so another of + the link's routers may need to send out the prefix-LSA. In that case, + "Referenced Advertising Router" and "Advertising Router" would be + different. + +3.5. Flooding + + Most of the flooding algorithm remains unchanged from the IPv4 + flooding mechanisms described in Section 13 of [Ref1]. In particular, + the processes for determining which LSA instance is newer (Section + 13.1 of [Ref1]), responding to updates of self-originated LSAs + (Section 13.4 of [Ref1]), sending Link State Acknowledgment packets + (Section 13.5 of [Ref1]), retransmitting LSAs (Section 13.6 of + [Ref1]) and receiving Link State Acknowledgment packets (Section 13.7 + of [Ref1]) are exactly the same for IPv6 and IPv4. + + However, the addition of flooding scope and handling options for + unrecognized LSA types (see Section A.4.2.1) has caused some changes + in the OSPF flooding algorithm: the reception of Link State Updates + (Section 13 in [Ref1]) and the sending of Link State Updates (Section + 13.3 of [Ref1]) must take into account the LSA's scope and U-bit + setting. Also, installation of LSAs into the OSPF database (Section + 13.2 of [Ref1]) causes different events in IPv6, due to the + reorganization of LSA types and contents in IPv6. These changes are + described in detail below. + + + + + + +Coltun, et al. Standards Track [Page 35] + +RFC 2740 OSPF for IPv6 December 1999 + + +3.5.1. Receiving Link State Update packets + + The encoding of flooding scope in the LS type and the need to process + unknown LS types causes modifications to the processing of received + Link State Update packets. As in IPv4, each LSA in a received Link + State Update packet is examined. In IPv4, eight steps are executed + for each LSA, as described in Section 13 of [Ref1]. For IPv6, all the + steps are the same, except that Steps 2 and 3 are modified as + follows: + + (2) Examine the LSA's LS type. If the LS type is + unknown, the area has been configured as a stub area, + and either the LSA's flooding scope is set to "AS + flooding scope" or the U-bit of the LS type is set to + 1 (flood even when unrecognized), then discard the + LSA and get the next one from the Link State Update + Packet. This generalizes the IPv4 behavior where AS- + external-LSAs are not flooded into/throughout stub + areas. + + (3) Else if the flooding scope of the LSA is set to + "reserved", discard the LSA and get the next one from + the Link State Update Packet. + + Steps 5b (sending Link State Update packets) and 5d (installing LSAs + in the link state database) in Section 13 of [Ref1] are also somewhat + different for IPv6, as described in Sections 3.5.2 and 3.5.3 below. + +3.5.2. Sending Link State Update packets + + The sending of Link State Update packets is described in Section 13.3 + of [Ref1]. For IPv4 and IPv6, the steps for sending a Link State + Update packet are the same (steps 1 through 5 of Section 13.3 in + [Ref1]). However, the list of eligible interfaces out which to flood + the LSA is different. For IPv6, the eligible interfaces are selected + based on the following factors: + + o The LSA's flooding scope. + + o For LSAs with area or link-local flooding scoping, the particular + area or interface that the LSA is associated with. + + o Whether the LSA has a recognized LS type. + + o The setting of the U-bit in the LS type. If the U-bit is set to 0, + unrecognized LS types are treated as having link-local scope. If + set to 1, unrecognized LS types are stored and flooded as if they + were recognized. + + + +Coltun, et al. Standards Track [Page 36] + +RFC 2740 OSPF for IPv6 December 1999 + + + Choosing the set of eligible interfaces then breaks into the + following cases: + + Case 1 + The LSA's LS type is recognized. In this case, the set of eligible + interfaces is set depending on the flooding scope encoded in the + LS type. If the flooding scope is "AS flooding scope", the + eligible interfaces are all router interfaces excepting virtual + links. In addition, AS-external-LSAs are not flooded out + interfaces connecting to stub areas. If the flooding scope is + "area flooding scope", the set of eligible interfaces are those + interfaces connecting to the LSA's associated area. If the + flooding scope is "link-local flooding scope", then there is a + single eligible interface, the one connecting to the LSA's + associated link (which, when the LSA is received in a Link State + Update packet, is also the interface the LSA was received on). + + Case 2 + The LS type is unrecognized, and the U-bit in the LS Type is set + to 0 (treat the LSA as if it had link-local flooding scope). In + this case there is a single eligible interface, namely, the + interface on which the LSA was received. + + Case 3 + The LS type is unrecognized, and the U-bit in the LS Type is set + to 1 (store and flood the LSA, as if type understood). In this + case, select the eligible interfaces based on the encoded flooding + scope as in Case 1 above. However, in this case interfaces + attached to stub areas are always excluded. + + A further decision must sometimes be made before adding an LSA to a + given neighbor's link-state retransmission list (Step 1d in Section + 13.3 of [Ref1]). If the LS type is recognized by the router, but not + by the neighbor (as can be determined by examining the Options field + that the neighbor advertised in its Database Description packet) and + the LSA's U-bit is set to 0, then the LSA should be added to the + neighbor's link-state retransmission list if and only if that + neighbor is the Designated Router or Backup Designated Router for the + attached link. The LS types described in detail by this memo, namely + router-LSAs (LS type 0x2001), network-LSAs (0x2002), Inter-Area- + Prefix-LSAs (0x2003), Inter-Area-Router-LSAs (0x2004), AS-External- + LSAs (0x4005), Link-LSAs (0x0008) and Intra-Area-Prefix-LSAs (0x2009) + are assumed to be understood by all routers. However, as an example + the group-membership-LSA (0x2006) is understood only by MOSPF routers + and since it has its U-bit set to 0, it should only be forwarded to a + non-MOSPF neighbor (determined by examining the MC-bit in the + neighbor's Database Description packets' Options field) when the + neighbor is Designated Router or Backup Designated Router for the + + + +Coltun, et al. Standards Track [Page 37] + +RFC 2740 OSPF for IPv6 December 1999 + + + attached link. + + The previous paragraph solves a problem in IPv4 OSPF extensions such + as MOSPF, which require that the Designated Router support the + extension in order to have the new LSA types flooded across broadcast + and NBMA networks (see Section 10.2 of [Ref8]). + +3.5.3. Installing LSAs in the database + + There are three separate places to store LSAs, depending on their + flooding scope. LSAs with AS flooding scope are stored in the global + OSPF data structure (see Section 3.1) as long as their LS type is + known or their U-bit is 1. LSAs with area flooding scope are stored + in the appropriate area data structure (see Section 3.1.1) as long as + their LS type is known or their U-bit is 1. LSAs with link-local + flooding scope, and those LSAs with unknown LS type and U-bit set to + 0 (treat the LSA as if it had link-local flooding scope) are stored + in the appropriate interface structure. + + When storing the LSA into the link-state database, a check must be + made to see whether the LSA's contents have changed. Changes in + contents are indicated exactly as in Section 13.2 of [Ref1]. When an + LSA's contents have been changed, the following parts of the routing + table must be recalculated, based on the LSA's LS type: + + Router-LSAs, Network-LSAs, Intra-Area-Prefix-LSAs and Link-LSAs + The entire routing table is recalculated, starting with the + shortest path calculation for each area (see Section 3.8). + + Inter-Area-Prefix-LSAs and Inter-Area-Router-LSAs + The best route to the destination described by the LSA must be + recalculated (see Section 16.5 in [Ref1]). If this destination is + an AS boundary router, it may also be necessary to re-examine all + the AS-external-LSAs. + + AS-external-LSAs + The best route to the destination described by the AS-external-LSA + must be recalculated (see Section 16.6 in [Ref1]). + + As in IPv4, any old instance of the LSA must be removed from the + database when the new LSA is installed. This old instance must also + be removed from all neighbors' Link state retransmission lists. + + + + + + + + + +Coltun, et al. Standards Track [Page 38] + +RFC 2740 OSPF for IPv6 December 1999 + + +3.6. Definition of self-originated LSAs + + In IPv6 the definition of a self-originated LSA has been simplified + from the IPv4 definition appearing in Sections 13.4 and 14.1 of + [Ref1]. For IPv6, self-originated LSAs are those LSAs whose + Advertising Router is equal to the router's own Router ID. + +3.7. Virtual links + + OSPF virtual links for IPv4 are described in Section 15 of [Ref1]. + Virtual links are the same in IPv6, with the following exceptions: + + o LSAs having AS flooding scope are never flooded over virtual + adjacencies, nor are LSAs with AS flooding scope summarized over + virtual adjacencies during the Database Exchange process. This is + a generalization of the IPv4 treatment of AS-external-LSAs. + + o The IPv6 interface address of a virtual link must be an IPv6 + address having site-local or global scope, instead of the link- + local addresses used by other interface types. This address is + used as the IPv6 source for OSPF protocol packets sent over the + virtual link. + + o Likewise, the virtual neighbor's IPv6 address is an IPv6 address + with site-local or global scope. To enable the discovery of a + virtual neighbor's IPv6 address during the routing calculation, + the neighbor advertises its virtual link's IPv6 interface address + in an Intra-Area-Prefix-LSA originated for the virtual link's + transit area (see Sections 3.4.3.7 and 3.8.1). + + o Like all other IPv6 OSPF interfaces, virtual links are assigned + unique (within the router) Interface IDs. These are advertised in + Hellos sent over the virtual link, and in the router's router- + LSAs. + +3.8. Routing table calculation + + The IPv6 OSPF routing calculation proceeds along the same lines as + the IPv4 OSPF routing calculation, following the five steps specified + by Section 16 of [Ref1]. High level differences between the IPv6 and + IPv4 calculations include: + + o Prefix information has been removed from router-LSAs, and now is + advertised in intra-area-prefix-LSAs. Whenever [Ref1] specifies + that stub networks within router-LSAs be examined, IPv6 will + instead examine prefixes within intra-area-prefix-LSAs. + + + + + +Coltun, et al. Standards Track [Page 39] + +RFC 2740 OSPF for IPv6 December 1999 + + + o Type 3 and 4 summary-LSAs have been renamed inter-area-prefix-LSAs + and inter-area-router-LSAs (respectively). + + o Addressing information is no longer encoded in Link State IDs, and + must instead be found within the body of LSAs. + + o In IPv6, a router can originate multiple router-LSAs within a + single area, distinguished by Link State ID. These router-LSAs + must be treated as a single aggregate by the area's shortest path + calculation (see Section 3.8.1). + + For each area, routing table entries have been created for the area's + routers and transit links, in order to store the results of the + area's shortest-path tree calculation (see Section 3.8.1). These + entries are then used when processing intra-area-prefix-LSAs, inter- + area-prefix-LSAs and inter-area-router-LSAs, as described in Section + 3.8.2. + + Events generated as a result of routing table changes (Section 16.7 + of [Ref1]), and the equal-cost multipath logic (Section 16.8 of + [Ref1]) are identical for both IPv4 and IPv6. + +3.8.1. Calculating the shortest path tree for an area + + The IPv4 shortest path calculation is contained in Section 16.1 of + [Ref1]. The graph used by the shortest-path tree calculation is + identical for both IPv4 and IPv6. The graph's vertices are routers + and transit links, represented by router-LSAs and network-LSAs + respectively. A router is identified by its OSPF Router ID, while a + transit link is identified by its Designated Router's Interface ID + and OSPF Router ID. Both routers and transit links have associated + routing table entries within the area (see Section 3.3). + + Section 16.1 of [Ref1] splits up the shortest path calculations into + two stages. First the Dijkstra calculation is performed, and then the + stub links are added onto the tree as leaves. The IPv6 calculation + maintains this split. + + The Dijkstra calculation for IPv6 is identical to that specified for + IPv4, with the following exceptions (referencing the steps from the + Dijkstra calculation as described in Section 16.1 of [Ref1]): + + o The Vertex ID for a router is the OSPF Router ID. The Vertex ID + for a transit network is a combination of the Interface ID and + OSPF Router ID of the network's Designated Router. + + + + + + +Coltun, et al. Standards Track [Page 40] + +RFC 2740 OSPF for IPv6 December 1999 + + + o In Step 2, when a router Vertex V has just been added to the + shortest path tree, there may be multiple LSAs associated with the + router. All Router-LSAs with Advertising Router set to V's OSPF + Router ID must processed as an aggregate, treating them as + fragments of a single large router-LSA. The Options field and the + router type bits (bits W, V, E and B) should always be taken from + "fragment" with the smallest Link State ID. + + o Step 2a is not needed in IPv6, as there are no longer stub network + links in router-LSAs. + + o In Step 2b, if W is a router, there may again be multiple LSAs + associated with the router. All Router-LSAs with Advertising + Router set to W's OSPF Router ID must processed as an aggregate, + treating them as fragments of a single large router-LSA. + + o In Step 4, there are now per-area routing table entries for each + of an area's routers, instead of just the area border routers. + These entries subsume all the functionality of IPv4's area border + router routing table entries, including the maintenance of virtual + links. When the router added to the area routing table in this + step is the other end of a virtual link, the virtual neighbor's IP + address is set as follows: The collection of intra-area-prefix- + LSAs originated by the virtual neighbor is examined, with the + virtual neighbor's IP address being set to the first prefix + encountered having the "LA-bit" set. + + o Routing table entries for transit networks, which are no longer + associated with IP networks, are also modified in Step 4. + + The next stage of the shortest path calculation proceeds similarly to + the two steps of the second stage of Section 16.1 in [Ref1]. However, + instead of examining the stub links within router-LSAs, the list of + the area's intra-area-prefix-LSAs is examined. A prefix advertisement + whose "NU-bit" is set should not be included in the routing + calculation. The cost of any advertised prefix is the sum of the + prefix' advertised metric plus the cost to the transit vertex (either + router or transit network) identified by intra-area-prefix-LSA's + Referenced LS type, Referenced Link State ID and Referenced + Advertising Router fields. This latter cost is stored in the transit + vertex' routing table entry for the area. + +3.8.1.1. The next hop calculation + + In IPv6, the calculation of the next hop's IPv6 address (which will + be a link-local address) proceeds along the same lines as the IPv4 + next hop calculation (see Section 16.1.1 of [Ref1]). The only + difference is in calculating the next hop IPv6 address for a router + + + +Coltun, et al. Standards Track [Page 41] + +RFC 2740 OSPF for IPv6 December 1999 + + + (call it Router X) which shares a link with the calculating router. + In this case the calculating router assigns the next hop IPv6 address + to be the link-local interface address contained in Router X's Link- + LSA (see Section A.4.8) for the link. This procedure is necessary + since on some links, such as NBMA links, the two routers need not be + neighbors, and therefore might not be exchanging OSPF Hellos. + +3.8.2. Calculating the inter-area routes + + Calculation of inter-area routes for IPv6 proceeds along the same + lines as the IPv4 calculation in Section 16.2 of [Ref1], with the + following modifications: + + o The names of the Type 3 summary-LSAs and Type 4 summary-LSAs have + been changed to inter-area-prefix-LSAs and inter-area-router-LSAs + respectively. + + o The Link State ID of the above LSA types no longer encodes the + network or router described by the LSA. Instead, an address + prefix is contained in the body of an inter-area-prefix-LSA, and a + described router's OSPF Router ID is carried in the body of an + inter-area- router-LSA. + + o Prefixes having the "NU-bit" set in their Prefix Options field + should be ignored by the inter-area route calculation. + + When a single inter-area-prefix-LSA or inter-area-router-LSA has + changed, the incremental calculations outlined in Section 16.5 of + [Ref1] can be performed instead of recalculating the entire routing + table. + +3.8.3. Examining transit areas' summary-LSAs + + Examination of transit areas' summary-LSAs in IPv6 proceeds along the + same lines as the IPv4 calculation in Section 16.3 of [Ref1], + modified in the same way as the IPv6 inter-area route calculation in + Section 3.8.2. + +3.8.4. Calculating AS external routes + + The IPv6 AS external route calculation proceeds along the same lines + as the IPv4 calculation in Section 16.4 of [Ref1], with the following + exceptions: + + o The Link State ID of the AS-external-LSA types no longer encodes + the network described by the LSA. Instead, an address prefix is + contained in the body of an AS- external-LSA. + + + + +Coltun, et al. Standards Track [Page 42] + +RFC 2740 OSPF for IPv6 December 1999 + + + o The default route is described by AS-external-LSAs which advertise + zero length prefixes. + + o Instead of comparing the AS-external-LSA's Forwarding address + field to 0.0.0.0 to see whether a forwarding address has been + used, bit F of the external-LSA is examined. A forwarding address + is in use if and only if bit F is set. + + o Prefixes having the "NU-bit" set in their Prefix Options field + should be ignored by the inter-area route calculation. + + When a single AS-external-LSA has changed, the incremental + calculations outlined in Section 16.6 of [Ref1] can be performed + instead of recalculating the entire routing table. + +3.9. Multiple interfaces to a single link + + In OSPF for IPv6, a router may have multiple interfaces to a single + link. All interfaces are involved in the reception and transmission + of data traffic, however only a single interface sends and receives + OSPF control traffic. In more detail: + + o Each of the multiple interfaces are assigned different Interface + IDs. In this way the router can automatically detect when + multiple interfaces attach to the same link, when receiving Hellos + from its own Router ID but with an Interface ID other than the + receiving interface's. + + o The router turns off the sending and receiving of OSPF packets + (that is, control traffic) on all but one of the interfaces to the + link. The choice of interface to send and receive control traffic + is implementation dependent; as one example, the interface with + the highest Interface ID could be chosen. If the router is + elected DR, it will be this interface's Interface ID that will be + used as the network-LSA's Link State ID. + + o All the multiple interfaces to the link will however appear in the + router-LSA. In addition, a Link-LSA will be generated for each of + the multiple interfaces. In this way, all interfaces will be + included in OSPF's routing calculations. + + o If the interface which is responsible for sending and receiving + control traffic fails, another will have to take over, reforming + all neighbor adjacencies from scratch. This failure can be + detected by the router itself, when the other interfaces to the + same link cease to hear the router's own Hellos. + + + + + +Coltun, et al. Standards Track [Page 43] + +RFC 2740 OSPF for IPv6 December 1999 + + +References + + [Ref1] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998. + + [Ref2] McKenzie, A., "ISO Transport Protocol specification ISO DP + 8073", RFC 905, April 1984. + + [Ref3] McCloghrie, K. and F. Kastenholz, "The Interfaces Group MIB + using SMIv2", RFC 2233, November 1997. + + [Ref4] Fuller, V., Li, T, Yu, J. and K. Varadhan, "Classless Inter- + Domain Routing (CIDR): an Address Assignment and Aggregation + Strategy", RFC 1519, September 1993. + + [Ref5] Varadhan, K., Hares, S. and Y. Rekhter, "BGP4/IDRP for IP--- + OSPF Interaction", RFC 1745, December 1994 + + [Ref6] Reynolds, J. and J. Postel, "Assigned Numbers", STD 2, RFC + 1700, October 1994. + + [Ref7] deSouza, O. and M. Rodrigues, "Guidelines for Running OSPF + Over Frame Relay Networks", RFC 1586, March 1994. + + [Ref8] Moy, J., "Multicast Extensions to OSPF", RFC 1584, March + 1994. + + [Ref9] Coltun, R. and V. Fuller, "The OSPF NSSA Option", RFC 1587, + March 1994. + + [Ref10] Ferguson, D., "The OSPF External Attributes LSA", + unpublished. + + [Ref11] Moy, J., "Extending OSPF to Support Demand Circuits", RFC + 1793, April 1995. + + [Ref12] Mogul, J. and S. Deering, "Path MTU Discovery", RFC 1191, + November 1990. + + [Ref13] Rekhter, Y. and T. Li, "A Border Gateway Protocol 4 (BGP-4)", + RFC 1771, March 1995. + + [Ref14] Deering, S. and R. Hinden, "Internet Protocol, Version 6 + (IPv6) Specification", RFC 2460, December 1998. + + [Ref15] Hinden, R. and S. Deering, "IP Version 6 Addressing + Architecture", RFC 2373, July 1998. + + + + + +Coltun, et al. Standards Track [Page 44] + +RFC 2740 OSPF for IPv6 December 1999 + + + [Ref16] Conta, A. and S. Deering, "Internet Control Message Protocol + (ICMPv6) for the Internet Protocol Version 6 (IPv6) + Specification" RFC 2463, December 1998. + + [Ref17] Narten, T., Nordmark, E. and W. Simpson, "Neighbor Discovery + for IP Version 6 (IPv6)", RFC 2461, December 1998. + + [Ref18] McCann, J., Deering, S. and J. Mogul, "Path MTU Discovery for + IP version 6", RFC 1981, August 1996. + + [Ref19] Kent, S. and R. Atkinson, "IP Authentication Header", RFC + 2402, November 1998. + + [Ref20] Kent, S. and R. Atkinson, "IP Encapsulating Security Payload + (ESP)", RFC 2406, November 1998. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Coltun, et al. Standards Track [Page 45] + +RFC 2740 OSPF for IPv6 December 1999 + + +A. OSPF data formats + + This appendix describes the format of OSPF protocol packets and OSPF + LSAs. The OSPF protocol runs directly over the IPv6 network layer. + Before any data formats are described, the details of the OSPF + encapsulation are explained. + + Next the OSPF Options field is described. This field describes + various capabilities that may or may not be supported by pieces of + the OSPF routing domain. The OSPF Options field is contained in OSPF + Hello packets, Database Description packets and in OSPF LSAs. + + OSPF packet formats are detailed in Section A.3. + + A description of OSPF LSAs appears in Section A.4. This section + describes how IPv6 address prefixes are represented within LSAs, + details the standard LSA header, and then provides formats for each + of the specific LSA types. + +A.1 Encapsulation of OSPF packets + + OSPF runs directly over the IPv6's network layer. OSPF packets are + therefore encapsulated solely by IPv6 and local data-link headers. + + OSPF does not define a way to fragment its protocol packets, and + depends on IPv6 fragmentation when transmitting packets larger than + the link MTU. If necessary, the length of OSPF packets can be up to + 65,535 bytes. The OSPF packet types that are likely to be large + (Database Description Packets, Link State Request, Link State Update, + and Link State Acknowledgment packets) can usually be split into + several separate protocol packets, without loss of functionality. + This is recommended; IPv6 fragmentation should be avoided whenever + possible. Using this reasoning, an attempt should be made to limit + the sizes of OSPF packets sent over virtual links to 1280 bytes + unless Path MTU Discovery is being performed [Ref14]. + + The other important features of OSPF's IPv6 encapsulation are: + + o Use of IPv6 multicast. Some OSPF messages are multicast, when + sent over broadcast networks. Two distinct IP multicast + addresses are used. Packets sent to these multicast addresses + should never be forwarded; they are meant to travel a single hop + only. As such, the multicast addresses have been chosen with + link-local scope, and packets sent to these addresses should have + their IPv6 Hop Limit set to 1. + + + + + + +Coltun, et al. Standards Track [Page 46] + +RFC 2740 OSPF for IPv6 December 1999 + + + AllSPFRouters + This multicast address has been assigned the value FF02::5. All + routers running OSPF should be prepared to receive packets sent to + this address. Hello packets are always sent to this destination. + Also, certain OSPF protocol packets are sent to this address + during the flooding procedure. + + AllDRouters + This multicast address has been assigned the value FF02::6. Both + the Designated Router and Backup Designated Router must be + prepared to receive packets destined to this address. Certain + OSPF protocol packets are sent to this address during the flooding + procedure. + + o OSPF is IP protocol 89. This number should be inserted in the + Next Header field of the encapsulating IPv6 header. + +A.2 The Options field + + The 24-bit OSPF Options field is present in OSPF Hello packets, + Database Description packets and certain LSAs (router-LSAs, network- + LSAs, inter-area-router-LSAs and link-LSAs). The Options field + enables OSPF routers to support (or not support) optional + capabilities, and to communicate their capability level to other OSPF + routers. Through this mechanism routers of differing capabilities + can be mixed within an OSPF routing domain. + + An option mismatch between routers can cause a variety of behaviors, + depending on the particular option. Some option mismatches prevent + neighbor relationships from forming (e.g., the E-bit below); these + mismatches are discovered through the sending and receiving of Hello + packets. Some option mismatches prevent particular LSA types from + being flooded across adjacencies (e.g., the MC-bit below); these are + discovered through the sending and receiving of Database Description + packets. Some option mismatches prevent routers from being included + in one or more of the various routing calculations because of their + reduced functionality (again the MC-bit is an example); these + mismatches are discovered by examining LSAs. + + Six bits of the OSPF Options field have been assigned. Each bit is + described briefly below. Routers should reset (i.e. clear) + unrecognized bits in the Options field when sending Hello packets or + Database Description packets and when originating LSAs. Conversely, + routers encountering unrecognized Option bits in received Hello + Packets, Database Description packets or LSAs should ignore the + capability and process the packet/LSA normally. + + + + + +Coltun, et al. Standards Track [Page 47] + +RFC 2740 OSPF for IPv6 December 1999 + + + 1 2 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 + -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+ + | | | | | | | | | | | | | | | | | |DC| R| N|MC| E|V6| + -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+ + + The Options field + + V6-bit + If this bit is clear, the router/link should be excluded from IPv6 + routing calculations. See Section 3.8 of this memo. + + E-bit + This bit describes the way AS-external-LSAs are flooded, as + described in Sections 3.6, 9.5, 10.8 and 12.1.2 of [Ref1]. + + MC-bit + This bit describes whether IP multicast datagrams are forwarded + according to the specifications in [Ref7]. + + N-bit + This bit describes the handling of Type-7 LSAs, as specified in + [Ref8]. + + R-bit + This bit (the `Router' bit) indicates whether the originator is an + active router. If the router bit is clear routes which transit the + advertising node cannot be computed. Clearing the router bit would + be appropriate for a multi-homed host that wants to participate in + routing, but does not want to forward non-locally addressed + packets. + + DC-bit + This bit describes the router's handling of demand circuits, as + specified in [Ref10]. + +A.3 OSPF Packet Formats + + There are five distinct OSPF packet types. All OSPF packet types + begin with a standard 16 byte header. This header is described + first. Each packet type is then described in a succeeding section. + In these sections each packet's division into fields is displayed, + and then the field definitions are enumerated. + + All OSPF packet types (other than the OSPF Hello packets) deal with + lists of LSAs. For example, Link State Update packets implement the + flooding of LSAs throughout the OSPF routing domain. The format of + LSAs is described in Section A.4. + + + +Coltun, et al. Standards Track [Page 48] + +RFC 2740 OSPF for IPv6 December 1999 + + + The receive processing of OSPF packets is detailed in Section 3.2.2. + The sending of OSPF packets is explained in Section 3.2.1. + +A.3.1 The OSPF packet header + + Every OSPF packet starts with a standard 16 byte header. Together + with the encapsulating IPv6 headers, the OSPF header contains all the + information necessary to determine whether the packet should be + accepted for further processing. This determination is described in + Section 3.2.2 of this memo. + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Version # | Type | Packet length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Router ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Area ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Checksum | Instance ID | 0 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Version # + The OSPF version number. This specification documents version 3 + of the OSPF protocol. + + Type + The OSPF packet types are as follows. See Sections A.3.2 through + A.3.6 for details. + + Type Description + --------------------------------- + 1 Hello + 2 Database Description + 3 Link State Request + 4 Link State Update + 5 Link State Acknowledgment + + Packet length + The length of the OSPF protocol packet in bytes. This length + includes the standard OSPF header. + + Router ID + The Router ID of the packet's source. + + + + + + +Coltun, et al. Standards Track [Page 49] + +RFC 2740 OSPF for IPv6 December 1999 + + + Area ID + A 32 bit number identifying the area that this packet belongs to. + All OSPF packets are associated with a single area. Most travel + a single hop only. Packets travelling over a virtual link are + labelled with the backbone Area ID of 0. + + Checksum + OSPF uses the standard checksum calculation for IPv6 + applications: The 16-bit one's complement of the one's complement + sum of the entire contents of the packet, starting with the OSPF + packet header, and prepending a "pseudo-header" of IPv6 header + fields, as specified in [Ref14, section 8.1]. The "Upper-Layer + Packet Length" in the pseudo-header is set to value of the OSPF + packet header's length field. The Next Header value used in the + pseudo-header is 89. If the packet's length is not an integral + number of 16-bit words, the packet is padded with a byte of zero + before checksumming. Before computing the checksum, the checksum + field in the OSPF packet header is set to 0. + + Instance ID + Enables multiple instances of OSPF to be run over a single link. + Each protocol instance would be assigned a separate Instance ID; + the Instance ID has local link significance only. Received + packets whose Instance ID is not equal to the receiving + interface's Instance ID are discarded. + + 0 These fields are reserved. They must be 0. + +A.3.2 The Hello packet + + Hello packets are OSPF packet type 1. These packets are sent + periodically on all interfaces (including virtual links) in order to + establish and maintain neighbor relationships. In addition, Hello + Packets are multicast on those links having a multicast or broadcast + capability, enabling dynamic discovery of neighboring routers. + + All routers connected to a common link must agree on certain + parameters (HelloInterval and RouterDeadInterval). These parameters + are included in Hello packets, so that differences can inhibit the + forming of neighbor relationships. The Hello packet also contains + fields used in Designated Router election (Designated Router ID and + Backup Designated Router ID), and fields used to detect bi- + directionality (the Router IDs of all neighbors whose Hellos have + been recently received). + + + + + + + +Coltun, et al. Standards Track [Page 50] + +RFC 2740 OSPF for IPv6 December 1999 + + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | 3 | 1 | Packet length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Router ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Area ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Checksum | Instance ID | 0 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Interface ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Rtr Pri | Options | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | HelloInterval | RouterDeadInterval | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Designated Router ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Backup Designated Router ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Neighbor ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ... | + + + Interface ID + 32-bit number uniquely identifying this interface among the + collection of this router's interfaces. For example, in some + implementations it may be possible to use the MIB-II IfIndex + ([Ref3]). + + Rtr Pri + This router's Router Priority. Used in (Backup) Designated + Router election. If set to 0, the router will be ineligible to + become (Backup) Designated Router. + + Options + The optional capabilities supported by the router, as documented + in Section A.2. + + HelloInterval + The number of seconds between this router's Hello packets. + + RouterDeadInterval + The number of seconds before declaring a silent router down. + + + + + +Coltun, et al. Standards Track [Page 51] + +RFC 2740 OSPF for IPv6 December 1999 + + + Designated Router ID + The identity of the Designated Router for this network, in the + view of the sending router. The Designated Router is identified + by its Router ID. Set to 0.0.0.0 if there is no Designated + Router. + + Backup Designated Router ID + The identity of the Backup Designated Router for this network, in + the view of the sending router. The Backup Designated Router is + identified by its IP Router ID. Set to 0.0.0.0 if there is no + Backup Designated Router. + + Neighbor ID + The Router IDs of each router from whom valid Hello packets have + been seen recently on the network. Recently means in the last + RouterDeadInterval seconds. + +A.3.3 The Database Description packet + + Database Description packets are OSPF packet type 2. These packets + are exchanged when an adjacency is being initialized. They describe + the contents of the link-state database. Multiple packets may be + used to describe the database. For this purpose a poll-response + procedure is used. One of the routers is designated to be the + master, the other the slave. The master sends Database Description + packets (polls) which are acknowledged by Database Description + packets sent by the slave (responses). The responses are linked to + the polls via the packets' DD sequence numbers. + + + + + + + + + + + + + + + + + + + + + + + +Coltun, et al. Standards Track [Page 52] + +RFC 2740 OSPF for IPv6 December 1999 + + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | 3 | 2 | Packet length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Router ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Area ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Checksum | Instance ID | 0 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | 0 | Options | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Interface MTU | 0 |0|0|0|0|0|I|M|MS + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | DD sequence number | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + +- -+ + | | + +- An LSA Header -+ + | | + +- -+ + | | + +- -+ + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ... | + + The format of the Database Description packet is very similar to both + the Link State Request and Link State Acknowledgment packets. The + main part of all three is a list of items, each item describing a + piece of the link-state database. The sending of Database + Description Packets is documented in Section 10.8 of [Ref1]. The + reception of Database Description packets is documented in Section + 10.6 of [Ref1]. + + Options + The optional capabilities supported by the router, as documented + in Section A.2. + + Interface MTU + The size in bytes of the largest IPv6 datagram that can be sent + out the associated interface, without fragmentation. The MTUs + of common Internet link types can be found in Table 7-1 of + [Ref12]. Interface MTU should be set to 0 in Database Description + packets sent over virtual links. + + + + +Coltun, et al. Standards Track [Page 53] + +RFC 2740 OSPF for IPv6 December 1999 + + + I-bit + The Init bit. When set to 1, this packet is the first in the + sequence of Database Description Packets. + + M-bit + The More bit. When set to 1, it indicates that more Database + Description Packets are to follow. + + MS-bit + The Master/Slave bit. When set to 1, it indicates that the router + is the master during the Database Exchange process. Otherwise, + the router is the slave. + + DD sequence number + Used to sequence the collection of Database Description Packets. + The initial value (indicated by the Init bit being set) should be + unique. The DD sequence number then increments until the complete + database description has been sent. + + The rest of the packet consists of a (possibly partial) list of the + link-state database's pieces. Each LSA in the database is described + by its LSA header. The LSA header is documented in Section + A.4.1. It contains all the information required to uniquely identify + both the LSA and the LSA's current instance. + +A.3.4 The Link State Request packet + + Link State Request packets are OSPF packet type 3. After exchanging + Database Description packets with a neighboring router, a router may + find that parts of its link-state database are out-of-date. The Link + State Request packet is used to request the pieces of the neighbor's + database that are more up-to-date. Multiple Link State Request + packets may need to be used. + + A router that sends a Link State Request packet has in mind the + precise instance of the database pieces it is requesting. Each + instance is defined by its LS sequence number, LS checksum, and LS + age, although these fields are not specified in the Link State + Request Packet itself. The router may receive even more recent + instances in response. + + The sending of Link State Request packets is documented in Section + 10.9 of [Ref1]. The reception of Link State Request packets is + documented in Section 10.7 of [Ref1]. + + + + + + + +Coltun, et al. Standards Track [Page 54] + +RFC 2740 OSPF for IPv6 December 1999 + + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | 3 | 3 | Packet length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Router ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Area ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Checksum | Instance ID | 0 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | 0 | LS type | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Link State ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Advertising Router | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ... | + + Each LSA requested is specified by its LS type, Link State ID, and + Advertising Router. This uniquely identifies the LSA, but not its + instance. Link State Request packets are understood to be requests + for the most recent instance (whatever that might be). + +A.3.5 The Link State Update packet + + Link State Update packets are OSPF packet type 4. These packets + implement the flooding of LSAs. Each Link State Update packet + carries a collection of LSAs one hop further from their origin. + Several LSAs may be included in a single packet. + + Link State Update packets are multicast on those physical networks + that support multicast/broadcast. In order to make the flooding + procedure reliable, flooded LSAs are acknowledged in Link State + Acknowledgment packets. If retransmission of certain LSAs is + necessary, the retransmitted LSAs are always carried by unicast Link + State Update packets. For more information on the reliable flooding + of LSAs, consult Section 3.5. + + + + + + + + + + + + + +Coltun, et al. Standards Track [Page 55] + +RFC 2740 OSPF for IPv6 December 1999 + + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | 3 | 4 | Packet length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Router ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Area ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Checksum | Instance ID | 0 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | # LSAs | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + +- +-+ + | LSAs | + +- +-+ + | ... | + + # LSAs + The number of LSAs included in this update. + + The body of the Link State Update packet consists of a list of LSAs. + Each LSA begins with a common 20 byte header, described in Section + A.4.2. Detailed formats of the different types of LSAs are described + in Section A.4. + +A.3.6 The Link State Acknowledgment packet + + Link State Acknowledgment Packets are OSPF packet type 5. To make + the flooding of LSAs reliable, flooded LSAs are explicitly + acknowledged. This acknowledgment is accomplished through the + sending and receiving of Link State Acknowledgment packets. The + sending of Link State Acknowledgement packets is documented in + Section 13.5 of [Ref1]. The reception of Link State Acknowledgement + packets is documented in Section 13.7 of [Ref1]. + + Multiple LSAs can be acknowledged in a single Link State + Acknowledgment packet. Depending on the state of the sending + interface and the sender of the corresponding Link State Update + packet, a Link State Acknowledgment packet is sent either to the + multicast address AllSPFRouters, to the multicast address + AllDRouters, or as a unicast (see Section 13.5 of [Ref1] for + details). + + The format of this packet is similar to that of the Data Description + packet. The body of both packets is simply a list of LSA headers. + + + + +Coltun, et al. Standards Track [Page 56] + +RFC 2740 OSPF for IPv6 December 1999 + + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | 3 | 5 | Packet length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Router ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Area ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Checksum | Instance ID | 0 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + +- -+ + | | + +- An LSA Header -+ + | | + +- -+ + | | + +- -+ + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ... | + + Each acknowledged LSA is described by its LSA header. The LSA header + is documented in Section A.4.2. It contains all the information + required to uniquely identify both the LSA and the LSA's current + instance. + +A.4 LSA formats + + This memo defines seven distinct types of LSAs. Each LSA begins with + a standard 20 byte LSA header. This header is explained in Section + A.4.2. Succeeding sections then diagram the separate LSA types. + + Each LSA describes a piece of the OSPF routing domain. Every router + originates a router-LSA. A network-LSA is advertised for each link by + its Designated Router. A router's link-local addresses are advertised + to its neighbors in link-LSAs. IPv6 prefixes are advertised in + intra-area-prefix-LSAs, inter-area-prefix-LSAs and AS-external-LSAs. + Location of specific routers can be advertised across area boundaries + in inter-area-router-LSAs. All LSAs are then flooded throughout the + OSPF routing domain. The flooding algorithm is reliable, ensuring + that all routers have the same collection of LSAs. (See Section 3.5 + for more information concerning the flooding algorithm). This + collection of LSAs is called the link-state database. + + + + + + +Coltun, et al. Standards Track [Page 57] + +RFC 2740 OSPF for IPv6 December 1999 + + + From the link state database, each router constructs a shortest path + tree with itself as root. This yields a routing table (see Section + 11 of [Ref1]). For the details of the routing table build process, + see Section 3.8. + +A.4.1 IPv6 Prefix Representation + + IPv6 addresses are bit strings of length 128. IPv6 routing + algorithms, and OSPF for IPv6 in particular, advertise IPv6 address + prefixes. IPv6 address prefixes are bit strings whose length ranges + between 0 and 128 bits (inclusive). + + Within OSPF, IPv6 address prefixes are always represented by a + combination of three fields: PrefixLength, PrefixOptions, and Address + Prefix. PrefixLength is the length in bits of the prefix. + PrefixOptions is an 8-bit field describing various capabilities + associated with the prefix (see Section A.4.2). Address Prefix is an + encoding of the prefix itself as an even multiple of 32-bit words, + padding with zero bits as necessary; this encoding consumes + (PrefixLength + 31) / 32) 32-bit words. + + The default route is represented by a prefix of length 0. + + Examples of IPv6 Prefix representation in OSPF can be found in + Sections A.4.5, A.4.7, A.4.8 and A.4.9. + +A.4.1.1 Prefix Options + + Each prefix is advertised along with an 8-bit field of capabilities. + These serve as input to the various routing calculations, allowing, + for example, certain prefixes to be ignored in some cases, or to be + marked as not readvertisable in others. + + 0 1 2 3 4 5 6 7 + +--+--+--+--+--+--+--+--+ + | | | | | P|MC|LA|NU| + +--+--+--+--+--+--+--+--+ + + The Prefix Options field + + NU-bit + The "no unicast" capability bit. If set, the prefix should be + excluded from IPv6 unicast calculations, otherwise it should be + included. + + + + + + + +Coltun, et al. Standards Track [Page 58] + +RFC 2740 OSPF for IPv6 December 1999 + + + LA-bit + The "local address" capability bit. If set, the prefix is actually + an IPv6 interface address of the advertising router. + + MC-bit + The "multicast" capability bit. If set, the prefix should be + included in IPv6 multicast routing calculations, otherwise it + should be excluded. + + P-bit + The "propagate" bit. Set on NSSA area prefixes that should be + readvertised at the NSSA area border. + +A.4.2 The LSA header + + All LSAs begin with a common 20 byte header. This header contains + enough information to uniquely identify the LSA (LS type, Link State + ID, and Advertising Router). Multiple instances of the LSA may exist + in the routing domain at the same time. It is then necessary to + determine which instance is more recent. This is accomplished by + examining the LS age, LS sequence number and LS checksum fields that + are also contained in the LSA header. + + 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 | LS type | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Link State ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Advertising Router | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | LS sequence number | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | LS checksum | length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + LS age + The time in seconds since the LSA was originated. + + LS type + The LS type field indicates the function performed by the LSA. + The high-order three bits of LS type encode generic properties of + the LSA, while the remainder (called LSA function code) indicate + the LSA's specific functionality. See Section A.4.2.1 for a + detailed description of LS type. + + + + + +Coltun, et al. Standards Track [Page 59] + +RFC 2740 OSPF for IPv6 December 1999 + + + Link State ID + Together with LS type and Advertising Router, uniquely identifies + the LSA in the link-state database. + + Advertising Router + The Router ID of the router that originated the LSA. For example, + in network-LSAs this field is equal to the Router ID of the + network's Designated Router. + + LS sequence number + Detects old or duplicate LSAs. Successive instances of an LSA are + given successive LS sequence numbers. See Section 12.1.6 in + [Ref1] for more details. + + LS checksum + The Fletcher checksum of the complete contents of the LSA, + including the LSA header but excluding the LS age field. See + Section 12.1.7 in [Ref1] for more details. + + length + The length in bytes of the LSA. This includes the 20 byte LSA + header. + +A.4.2.1 LS type + + The LS type field indicates the function performed by the LSA. The + high-order three bits of LS type encode generic properties of the + LSA, while the remainder (called LSA function code) indicate the + LSA's specific functionality. The format of the LS type is as + follows: + + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 + +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ + |U |S2|S1| LSA Function Code | + +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ + + The U bit indicates how the LSA should be handled by a router which + does not recognize the LSA's function code. Its values are: + + U-bit LSA Handling + ------------------------------------------------------------- + 0 Treat the LSA as if it had link-local flooding scope + 1 Store and flood the LSA, as if type understood + + + + + + + + +Coltun, et al. Standards Track [Page 60] + +RFC 2740 OSPF for IPv6 December 1999 + + + The S1 and S2 bits indicate the flooding scope of the LSA. The values + are: + + S2 S1 Flooding Scope + --------------------------------------------------------------------- + 0 0 Link-Local Scoping. Flooded only on link it is originated on. + 0 1 Area Scoping. Flooded to all routers in the originating area + 1 0 AS Scoping. Flooded to all routers in the AS + 1 1 Reserved + + The LSA function codes are defined as follows. The origination and + processing of these LSA function codes are defined elsewhere in this + memo, except for the group-membership-LSA (see [Ref7]) and the Type- + 7-LSA (see [Ref8]). Each LSA function code also implies a specific + setting for the U, S1 and S2 bits, as shown below. + + LSA function code LS Type Description + ---------------------------------------------------- + 1 0x2001 Router-LSA + 2 0x2002 Network-LSA + 3 0x2003 Inter-Area-Prefix-LSA + 4 0x2004 Inter-Area-Router-LSA + 5 0x4005 AS-External-LSA + 6 0x2006 Group-membership-LSA + 7 0x2007 Type-7-LSA + 8 0x0008 Link-LSA + 9 0x2009 Intra-Area-Prefix-LSA + +A.4.3 Router-LSAs + + Router-LSAs have LS type equal to 0x2001. Each router in an area + originates one or more router-LSAs. The complete collection of + router-LSAs originated by the router describe the state and cost of + the router's interfaces to the area. For details concerning the + construction of router-LSAs, see Section 3.4.3.1. Router-LSAs are + flooded throughout a single area only. + + + + + + + + + + + + + + + +Coltun, et al. Standards Track [Page 61] + +RFC 2740 OSPF for IPv6 December 1999 + + + 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 |0|0|1| 1 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Link State ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Advertising Router | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | LS sequence number | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | LS checksum | length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | 0 |W|V|E|B| Options | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Type | 0 | Metric | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Interface ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Neighbor Interface ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Neighbor Router ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Type | 0 | Metric | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Interface ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Neighbor Interface ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Neighbor Router ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ... | + + A single router may originate one or more Router LSAs, distinguished + by their Link-State IDs (which are chosen arbitrarily by the + originating router). The Options field and V, E and B bits should be + the same in all Router LSAs from a single originator. However, in + the case of a mismatch the values in the LSA with the lowest Link + State ID take precedence. When more than one Router LSA is received + from a single router, the links are processed as if concatenated into + a single LSA. + + bit V + When set, the router is an endpoint of one or more fully adjacent + virtual links having the described area as Transit area (V is for + virtual link endpoint). + + + +Coltun, et al. Standards Track [Page 62] + +RFC 2740 OSPF for IPv6 December 1999 + + + bit E + When set, the router is an AS boundary router (E is for external). + + bit B + When set, the router is an area border router (B is for border). + + bit W + When set, the router is a wild-card multicast receiver. When + running MOSPF, these routers receive all multicast datagrams, + regardless of destination. See Sections 3, 4 and A.2 of [Ref8] for + details. + + Options + The optional capabilities supported by the router, as documented + in Section A.2. + + The following fields are used to describe each router interface. The + Type field indicates the kind of interface being described. It may + be an interface to a transit network, a point-to-point connection to + another router or a virtual link. The values of all the other fields + describing a router interface depend on the interface's Type field. + + Type + The kind of interface being described. One of the following: + + Type Description + --------------------------------------------------- + 1 Point-to-point connection to another router + 2 Connection to a transit network + 3 Reserved + 4 Virtual link + + Metric + The cost of using this router interface, for outbound traffic. + + Interface ID + The Interface ID assigned to the interface being described. See + Sections 3.1.2 and C.3. + + Neighbor Interface ID + The Interface ID the neighbor router (or the attached link's + Designated Router, for Type 2 interfaces) has been advertising + in hello packets sent on the attached link. + + Neighbor Router ID + The Router ID the neighbor router (or the attached link's + Designated Router, for Type 2 interfaces). + + + + +Coltun, et al. Standards Track [Page 63] + +RFC 2740 OSPF for IPv6 December 1999 + + + For Type 2 links, the combination of Neighbor Interface ID and + Neighbor Router ID allows the network-LSA for the attached link + to be found in the link-state database. + +A.4.4 Network-LSAs + + Network-LSAs have LS type equal to 0x2002. A network-LSA is + originated for each broadcast and NBMA link in the area which + supports two or more routers. The network-LSA is originated by the + link's Designated Router. The LSA describes all routers attached to + the link, including the Designated Router itself. The LSA's Link + State ID field is set to the Interface ID that the Designated Router + has been advertising in Hello packets on the link. + + The distance from the network to all attached routers is zero. This + is why the metric fields need not be specified in the network-LSA. + For details concerning the construction of network-LSAs, see Section + 3.4.3.2. + + 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 |0|0|1| 2 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Link State ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Advertising Router | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | LS sequence number | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | LS checksum | length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | 0 | Options | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Attached Router | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ... | + + Attached Router + The Router IDs of each of the routers attached to the link. + Actually, only those routers that are fully adjacent to the + Designated Router are listed. The Designated Router includes + itself in this list. The number of routers included can be + deduced from the LSA header's length field. + + + + + + + +Coltun, et al. Standards Track [Page 64] + +RFC 2740 OSPF for IPv6 December 1999 + + +A.4.5 Inter-Area-Prefix-LSAs + + Inter-Area-Prefix-LSAs have LS type equal to 0x2003. These LSAs are + are the IPv6 equivalent of OSPF for IPv4's type 3 summary-LSAs (see + Section 12.4.3 of [Ref1]). Originated by area border routers, they + describe routes to IPv6 address prefixes that belong to other areas. + A separate Inter-Area-Prefix-LSA is originated for each IPv6 address + prefix. For details concerning the construction of Inter-Area- + Prefix-LSAs, see Section 3.4.3.3. + + For stub areas, Inter-Area-Prefix-LSAs can also be used to describe a + (per-area) default route. Default summary routes are used in stub + areas instead of flooding a complete set of external routes. When + describing a default summary route, the Inter-Area-Prefix-LSA's + PrefixLength is set to 0. + + 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 |0|0|1| 3 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Link State ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Advertising Router | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | LS sequence number | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | LS checksum | length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | 0 | Metric | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | PrefixLength | PrefixOptions | (0) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Address Prefix | + | ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Metric + The cost of this route. Expressed in the same units as the + interface costs in the router-LSAs. When the Inter-Area-Prefix-LSA + is describing a route to a range of addresses (see Section C.2) + the cost is set to the maximum cost to any reachable component of + the address range. + + PrefixLength, PrefixOptions and Address Prefix + Representation of the IPv6 address prefix, as described in Section + A.4.1. + + + + +Coltun, et al. Standards Track [Page 65] + +RFC 2740 OSPF for IPv6 December 1999 + + +A.4.6 Inter-Area-Router-LSAs + + Inter-Area-Router-LSAs have LS type equal to 0x2004. These LSAs are + are the IPv6 equivalent of OSPF for IPv4's type 4 summary-LSAs (see + Section 12.4.3 of [Ref1]). Originated by area border routers, they + describe routes to routers in other areas. (To see why it is + necessary to advertise the location of each ASBR, consult Section + 16.4 in [Ref1].) Each LSA describes a route to a single router. For + details concerning the construction of Inter-Area-Router-LSAs, see + Section 3.4.3.4. + + 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 |0|0|1| 4 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Link State ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Advertising Router | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | LS sequence number | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | LS checksum | length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | 0 | Options | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | 0 | Metric | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Destination Router ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Options + The optional capabilities supported by the router, as documented + in Section A.2. + + Metric + The cost of this route. Expressed in the same units as the + interface costs in the router-LSAs. + + Destination Router ID + The Router ID of the router being described by the LSA. + + + + + + + + + + +Coltun, et al. Standards Track [Page 66] + +RFC 2740 OSPF for IPv6 December 1999 + + +A.4.7 AS-external-LSAs + + AS-external-LSAs have LS type equal to 0x4005. These LSAs are + originated by AS boundary routers, and describe destinations external + to the AS. Each LSA describes a route to a single IPv6 address + prefix. For details concerning the construction of AS-external-LSAs, + see Section 3.4.3.5. + + AS-external-LSAs can be used to describe a default route. Default + routes are used when no specific route exists to the destination. + When describing a default route, the AS-external-LSA's PrefixLength + is set to 0. + + 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 |0|1|0| 5 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Link State ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Advertising Router | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | LS sequence number | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | LS checksum | length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | |E|F|T| Metric | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | PrefixLength | PrefixOptions | Referenced LS Type | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Address Prefix | + | ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + +- -+ + | | + +- Forwarding Address (Optional) -+ + | | + +- -+ + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | External Route Tag (Optional) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Referenced Link State ID (Optional) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + + + + + +Coltun, et al. Standards Track [Page 67] + +RFC 2740 OSPF for IPv6 December 1999 + + + bit E + The type of external metric. If bit E is set, the metric + specified is a Type 2 external metric. This means the metric is + considered larger than any intra-AS path. If bit E is zero, the + specified metric is a Type 1 external metric. This means that it + is expressed in the same units as the link state metric (i.e., the + same units as interface cost). + + bit F + If set, a Forwarding Address has been included in the LSA. + + bit T + If set, an External Route Tag has been included in the LSA. + + Metric + The cost of this route. Interpretation depends on the external + type indication (bit E above). + + PrefixLength, PrefixOptions and Address Prefix + Representation of the IPv6 address prefix, as described in Section + A.4.1. + + Referenced LS type + If non-zero, an LSA with this LS type is to be associated with + this LSA (see Referenced Link State ID below). + + Forwarding address + A fully qualified IPv6 address (128 bits). Included in the LSA if + and only if bit F has been set. If included, Data traffic for the + advertised destination will be forwarded to this address. Must not + be set to the IPv6 Unspecified Address (0:0:0:0:0:0:0:0). + + External Route Tag + A 32-bit field which may be used to communicate additional + information between AS boundary routers; see [Ref5] for example + usage. Included in the LSA if and only if bit T has been set. + + Referenced Link State ID Included if and only if Reference LS Type is + non-zero. If included, additional information concerning the + advertised external route can be found in the LSA having LS type + equal to "Referenced LS Type", Link State ID equal to "Referenced + Link State ID" and Advertising Router the same as that specified + in the AS-external-LSA's link state header. This additional + information is not used by the OSPF protocol itself. It may be + used to communicate information between AS boundary routers; the + precise nature of such information is outside the scope of this + specification. + + + + +Coltun, et al. Standards Track [Page 68] + +RFC 2740 OSPF for IPv6 December 1999 + + + All, none or some of the fields labeled Forwarding address, External + Route Tag and Referenced Link State ID may be present in the AS- + external-LSA (as indicated by the setting of bit F, bit T and + Referenced LS type respectively). However, when present Forwarding + Address always comes first, with External Route Tag always preceding + Referenced Link State ID. + +A.4.8 Link-LSAs + + Link-LSAs have LS type equal to 0x0008. A router originates a + separate Link-LSA for each link it is attached to. These LSAs have + local-link flooding scope; they are never flooded beyond the link + that they are associated with. Link-LSAs have three purposes: 1) they + provide the router's link-local address to all other routers attached + to the link and 2) they inform other routers attached to the link of + a list of IPv6 prefixes to associate with the link and 3) they allow + the router to assert a collection of Options bits to associate with + the Network-LSA that will be originated for the link. + + A link-LSA's Link State ID is set equal to the originating router's + Interface ID on the link. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Coltun, et al. Standards Track [Page 69] + +RFC 2740 OSPF for IPv6 December 1999 + + + 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 |0|0|0| 8 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Link State ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Advertising Router | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | LS sequence number | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | LS checksum | length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Rtr Pri | Options | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + +- -+ + | | + +- Link-local Interface Address -+ + | | + +- -+ + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | # prefixes | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | PrefixLength | PrefixOptions | (0) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Address Prefix | + | ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | PrefixLength | PrefixOptions | (0) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Address Prefix | + | ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Rtr Pri + The Router Priority of the interface attaching the originating + router to the link. + + Options + The set of Options bits that the router would like set in the + Network-LSA that will be originated for the link. + + + + + + +Coltun, et al. Standards Track [Page 70] + +RFC 2740 OSPF for IPv6 December 1999 + + + Link-local Interface Address + The originating router's link-local interface address on the + link. + + # prefixes + The number of IPv6 address prefixes contained in the LSA. + + The rest of the link-LSA contains a list of IPv6 prefixes to be + associated with the link. + + PrefixLength, PrefixOptions and Address Prefix + Representation of an IPv6 address prefix, as described in + Section A.4.1. + +A.4.9 Intra-Area-Prefix-LSAs + + Intra-Area-Prefix-LSAs have LS type equal to 0x2009. A router uses + Intra-Area-Prefix-LSAs to advertise one or more IPv6 address + prefixes that are associated with a) the router itself, b) an + attached stub network segment or c) an attached transit network + segment. In IPv4, a) and b) were accomplished via the router's + router-LSA, and c) via a network-LSA. However, in OSPF for IPv6 all + addressing information has been removed from router-LSAs and + network-LSAs, leading to the introduction of the Intra-Area-Prefix-LSA. + + A router can originate multiple Intra-Area-Prefix-LSAs for each + router or transit network; each such LSA is distinguished by its + Link State ID. + + + + + + + + + + + + + + + + + + + + + + + +Coltun, et al. Standards Track [Page 71] + +RFC 2740 OSPF for IPv6 December 1999 + + + 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 |0|0|1| 9 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Link State ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Advertising Router | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | LS sequence number | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | LS checksum | length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | # prefixes | Referenced LS type | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Referenced Link State ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Referenced Advertising Router | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | PrefixLength | PrefixOptions | Metric | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Address Prefix | + | ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | PrefixLength | PrefixOptions | Metric | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Address Prefix | + | ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + # prefixes + The number of IPv6 address prefixes contained in the LSA. + + Router + Referenced LS type, Referenced Link State ID and Referenced + Advertising + Identifies the router-LSA or network-LSA with which the IPv6 + address prefixes should be associated. If Referenced LS type is 1, + the prefixes are associated with a router-LSA, Referenced Link + State ID should be 0 and Referenced Advertising Router should be + the originating router's Router ID. If Referenced LS type is 2, + the prefixes are associated with a network-LSA, Referenced Link + State ID should be the Interface ID of the link's Designated + Router and Referenced Advertising Router should be the Designated + Router's Router ID. + + + + +Coltun, et al. Standards Track [Page 72] + +RFC 2740 OSPF for IPv6 December 1999 + + + The rest of the Intra-Area-Prefix-LSA contains a list of IPv6 + prefixes to be associated with the router or transit link, together + with the cost of each prefix. + + PrefixLength, PrefixOptions and Address Prefix + Representation of an IPv6 address prefix, as described in Section + A.4.1. + + Metric + The cost of this prefix. Expressed in the same units as the + interface costs in the router-LSAs. + +B. Architectural Constants + + Architectural constants for the OSPF protocol are defined in Appendix + B of [Ref1]. The only difference for OSPF for IPv6 is that + DefaultDestination is encoded as a prefix of length 0 (see Section + A.4.1). + +C. Configurable Constants + + The OSPF protocol has quite a few configurable parameters. These + parameters are listed below. They are grouped into general + functional categories (area parameters, interface parameters, etc.). + Sample values are given for some of the parameters. + + Some parameter settings need to be consistent among groups of + routers. For example, all routers in an area must agree on that + area's parameters, and all routers attached to a network must agree + on that network's HelloInterval and RouterDeadInterval. + + Some parameters may be determined by router algorithms outside of + this specification (e.g., the address of a host connected to the + router via a SLIP line). From OSPF's point of view, these items are + still configurable. + +C.1 Global parameters + + In general, a separate copy of the OSPF protocol is run for each + area. Because of this, most configuration parameters are defined on + a per-area basis. The few global configuration parameters are listed + below. + + Router ID + This is a 32-bit number that uniquely identifies the router in the + Autonomous System. If a router's OSPF Router ID is changed, the + router's OSPF software should be restarted before the new Router + ID takes effect. Before restarting in order to change its Router + + + +Coltun, et al. Standards Track [Page 73] + +RFC 2740 OSPF for IPv6 December 1999 + + + ID, the router should flush its self-originated LSAs from the + routing domain (see Section 14.1 of [Ref1]), or they will persist + for up to MaxAge minutes. + + Because the size of the Router ID is smaller than an IPv6 address, + it cannot be set to one of the router's IPv6 addresses (as is + commonly done for IPv4). Possible Router ID assignment procedures + for IPv6 include: a) assign the IPv6 Router ID as one of the + router's IPv4 addresses or b) assign IPv6 Router IDs through some + local administrative procedure (similar to procedures used by + manufacturers to assign product serial numbers). + + The Router ID of 0.0.0.0 is reserved, and should not be used. + +C.2 Area parameters + + All routers belonging to an area must agree on that area's + configuration. Disagreements between two routers will lead to an + inability for adjacencies to form between them, with a resulting + hindrance to the flow of routing protocol and data traffic. The + following items must be configured for an area: + + Area ID + This is a 32-bit number that identifies the area. The Area + ID of 0 is reserved for the backbone. + + List of address ranges + Address ranges control the advertisement of routes across + area boundaries. Each address range consists of the + following items: + + [IPv6 prefix, prefix length] + Describes the collection of IPv6 addresses contained in + the address range. + + Status Set to either Advertise or DoNotAdvertise. Routing + information is condensed at area boundaries. External to + the area, at most a single route is advertised (via a + inter-area-prefix-LSA) for each address range. The route + is advertised if and only if the address range's Status + is set to Advertise. Unadvertised ranges allow the + existence of certain networks to be intentionally hidden + from other areas. Status is set to Advertise by default. + + + + + + + + +Coltun, et al. Standards Track [Page 74] + +RFC 2740 OSPF for IPv6 December 1999 + + + ExternalRoutingCapability + Whether AS-external-LSAs will be flooded into/throughout the area. + If AS-external-LSAs are excluded from the area, the area is called + a "stub". Internal to stub areas, routing to external + destinations will be based solely on a default inter-area route. + The backbone cannot be configured as a stub area. Also, virtual + links cannot be configured through stub areas. For more + information, see Section 3.6 of [Ref1]. + + StubDefaultCost + If the area has been configured as a stub area, and the router + itself is an area border router, then the StubDefaultCost + indicates the cost of the default inter-area-prefix-LSA that the + router should advertise into the area. See Section 12.4.3.1 of + [Ref1] for more information. + +C.3 Router interface parameters + + Some of the configurable router interface parameters (such as Area + ID, HelloInterval and RouterDeadInterval) actually imply properties + of the attached links, and therefore must be consistent across all + the routers attached to that link. The parameters that must be + configured for a router interface are: + + IPv6 link-local address + The IPv6 link-local address associated with this interface. May + be learned through auto-configuration. + + Area ID + The OSPF area to which the attached link belongs. + + Instance ID + The OSPF protocol instance associated with this OSPF interface. + Defaults to 0. + + Interface ID + 32-bit number uniquely identifying this interface among the + collection of this router's interfaces. For example, in some + implementations it may be possible to use the MIB-II IfIndex + ([Ref3]). + + IPv6 prefixes + The list of IPv6 prefixes to associate with the link. These will + be advertised in intra-area-prefix-LSAs. + + + + + + + +Coltun, et al. Standards Track [Page 75] + +RFC 2740 OSPF for IPv6 December 1999 + + + Interface output cost(s) + The cost of sending a packet on the interface, expressed in the + link state metric. This is advertised as the link cost for this + interface in the router's router-LSA. The interface output cost + must always be greater than 0. + + RxmtInterval + The number of seconds between LSA retransmissions, for adjacencies + belonging to this interface. Also used when retransmitting + Database Description and Link State Request Packets. This should + be well over the expected round-trip delay between any two routers + on the attached link. The setting of this value should be + conservative or needless retransmissions will result. Sample + value for a local area network: 5 seconds. + + InfTransDelay + The estimated number of seconds it takes to transmit a Link State + Update Packet over this interface. LSAs contained in the update + packet must have their age incremented by this amount before + transmission. This value should take into account the + transmission and propagation delays of the interface. It must be + greater than 0. Sample value for a local area network: 1 second. + + Router Priority + An 8-bit unsigned integer. When two routers attached to a network + both attempt to become Designated Router, the one with the highest + Router Priority takes precedence. If there is still a tie, the + router with the highest Router ID takes precedence. A router + whose Router Priority is set to 0 is ineligible to become + Designated Router on the attached link. Router Priority is only + configured for interfaces to broadcast and NBMA networks. + + HelloInterval + The length of time, in seconds, between the Hello Packets that the + router sends on the interface. This value is advertised in the + router's Hello Packets. It must be the same for all routers + attached to a common link. The smaller the HelloInterval, the + faster topological changes will be detected; however, more OSPF + routing protocol traffic will ensue. Sample value for a X.25 PDN: + 30 seconds. Sample value for a local area network (LAN): 10 + seconds. + + RouterDeadInterval + After ceasing to hear a router's Hello Packets, the number of + seconds before its neighbors declare the router down. This is + also advertised in the router's Hello Packets in their + + + + + +Coltun, et al. Standards Track [Page 76] + +RFC 2740 OSPF for IPv6 December 1999 + + + RouterDeadInterval field. This should be some multiple of the + HelloInterval (say 4). This value again must be the same for all + routers attached to a common link. + +C.4 Virtual link parameters + + Virtual links are used to restore/increase connectivity of the + backbone. Virtual links may be configured between any pair of area + border routers having interfaces to a common (non-backbone) area. + The virtual link appears as an unnumbered point-to-point link in the + graph for the backbone. The virtual link must be configured in both + of the area border routers. + + A virtual link appears in router-LSAs (for the backbone) as if it + were a separate router interface to the backbone. As such, it has + most of the parameters associated with a router interface (see + Section C.3). Virtual links do not have link-local addresses, but + instead use one of the router's global-scope or site-local IPv6 + addresses as the IP source in OSPF protocol packets it sends along + the virtual link. Router Priority is not used on virtual links. + Interface output cost is not configured on virtual links, but is + dynamically set to be the cost of the intra-area path between the two + endpoint routers. The parameter RxmtInterval must be configured, and + should be well over the expected round-trip delay between the two + routers. This may be hard to estimate for a virtual link; it is + better to err on the side of making it too large. + + A virtual link is defined by the following two configurable + parameters: the Router ID of the virtual link's other endpoint, and + the (non-backbone) area through which the virtual link runs (referred + to as the virtual link's Transit area). Virtual links cannot be + configured through stub areas. + +C.5 NBMA network parameters + + OSPF treats an NBMA network much like it treats a broadcast network. + Since there may be many routers attached to the network, a Designated + Router is selected for the network. This Designated Router then + originates a network-LSA, which lists all routers attached to the + NBMA network. + + However, due to the lack of broadcast capabilities, it may be + necessary to use configuration parameters in the Designated Router + selection. These parameters will only need to be configured in those + routers that are themselves eligible to become Designated Router + (i.e., those router's whose Router Priority for the network is non- + zero), and then only if no automatic procedure for discovering + neighbors exists: + + + +Coltun, et al. Standards Track [Page 77] + +RFC 2740 OSPF for IPv6 December 1999 + + + List of all other attached routers + The list of all other routers attached to the NBMA network. Each + router is configured with its Router ID and IPv6 link-local + address on the network. Also, for each router listed, that + router's eligibility to become Designated Router must be defined. + When an interface to a NBMA network comes up, the router sends + Hello Packets only to those neighbors eligible to become + Designated Router, until the identity of the Designated Router is + discovered. + + PollInterval If a neighboring router has become inactive (Hello + Packets have not been seen for RouterDeadInterval seconds), it may + still be necessary to send Hello Packets to the dead neighbor. + These Hello Packets will be sent at the reduced rate PollInterval, + which should be much larger than HelloInterval. Sample value for + a PDN X.25 network: 2 minutes. + +C.6 Point-to-MultiPoint network parameters + + On Point-to-MultiPoint networks, it may be necessary to configure the + set of neighbors that are directly reachable over the Point-to- + MultiPoint network. Each neighbor is configured with its Router ID + and IPv6 link-local address on the network. Designated Routers are + not elected on Point-to-MultiPoint networks, so the Designated Router + eligibility of configured neighbors is undefined. + +C.7 Host route parameters + + Host prefixes are advertised in intra-area-prefix-LSAs. They + indicate either internal router addresses, router interfaces to + point-to-point networks, looped router interfaces, or IPv6 hosts that + are directly connected to the router (e.g., via a PPP connection). + For each host directly connected to the router, the following items + must be configured: + + Host IPv6 prefix + The IPv6 prefix belonging to the host. + + Cost of link to host + The cost of sending a packet to the host, in terms of the link + state metric. However, since the host probably has only a single + connection to the internet, the actual configured cost(s) in many + cases is unimportant (i.e., will have no effect on routing). + + Area ID + The OSPF area to which the host's prefix belongs. + + + + + +Coltun, et al. Standards Track [Page 78] + +RFC 2740 OSPF for IPv6 December 1999 + + +Security Considerations + + When running over IPv6, OSPF relies on the IP Authentication Header + (see [Ref19]) and the IP Encapsulating Security Payload (see [Ref20]) + to ensure integrity and authentication/confidentiality of routing + exchanges. + + Most OSPF implementations will be running on systems that support + multiple protocols, many of them having independent security + assumptions and domains. When IPSEC is used to protect OSPF packets, + it is important for the implementation to check the IPSEC SA, and + local SA database to make sure that the packet originates from a + source THAT IS TRUSTED FOR OSPF PURPOSES. + +Authors' Addresses + + Rob Coltun + Siara Systems + 300 Ferguson Drive + Mountain View, CA 94043 + + Phone: (650) 390-9030 + EMail: rcoltun@siara.com + + + Dennis Ferguson + Juniper Networks + 385 Ravendale Drive + Mountain View, CA 94043 + + Phone: +1 650 526 8004 + EMail: dennis@juniper.com + + + John Moy + Sycamore Networks, Inc. + 10 Elizabeth Drive + Chelmsford, MA 01824 + + Phone: (978) 367-2161 + Fax: (978) 250-3350 + EMail: jmoy@sycamorenet.com + + + + + + + + + +Coltun, et al. Standards Track [Page 79] + +RFC 2740 OSPF for IPv6 December 1999 + + +Full Copyright Statement + + Copyright (C) The Internet Society (1999). 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. + +Acknowledgement + + Funding for the RFC Editor function is currently provided by the + Internet Society. + + + + + + + + + + + + + + + + + + + +Coltun, et al. Standards Track [Page 80] + |