diff options
Diffstat (limited to 'doc/rfc/rfc5340.txt')
-rw-r--r-- | doc/rfc/rfc5340.txt | 5267 |
1 files changed, 5267 insertions, 0 deletions
diff --git a/doc/rfc/rfc5340.txt b/doc/rfc/rfc5340.txt new file mode 100644 index 0000000..87ad681 --- /dev/null +++ b/doc/rfc/rfc5340.txt @@ -0,0 +1,5267 @@ + + + + + + +Network Working Group R. Coltun +Request for Comments: 5340 Acoustra Productions +Obsoletes: 2740 D. Ferguson +Category: Standards Track Juniper Networks + J. Moy + Sycamore Networks, Inc + A. Lindem, Ed. + Redback Networks + July 2008 + + + 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. + +Abstract + + This document describes the modifications to OSPF to support version + 6 of the Internet Protocol (IPv6). The fundamental mechanisms of + OSPF (flooding, Designated Router (DR) election, area support, Short + Path First (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. These modifications will necessitate + incrementing the protocol version from version 2 to version 3. OSPF + for IPv6 is also referred to as OSPF version 3 (OSPFv3). + + Changes between OSPF for IPv4, OSPF Version 2, and OSPF for IPv6 as + described herein include the following. Addressing semantics have + been removed from OSPF packets and the basic Link State + Advertisements (LSAs). New LSAs have been created to carry IPv6 + addresses and prefixes. OSPF now runs on a per-link basis rather + than on a per-IP-subnet basis. Flooding scope for LSAs has been + generalized. Authentication has been removed from the OSPF protocol + and instead relies on IPv6's Authentication Header and Encapsulating + Security Payload (ESP). + + Even with larger IPv6 addresses, most packets in OSPF for IPv6 are + almost as compact as those in OSPF for IPv4. Most fields and 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 5340 OSPF for IPv6 July 2008 + + + All of OSPF for IPv4's optional capabilities, including demand + circuit support and Not-So-Stubby Areas (NSSAs), are also supported + in OSPF for IPv6. + +Table of Contents + + 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 + 1.1. Requirements Notation . . . . . . . . . . . . . . . . . . 4 + 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 + 2. Differences from OSPF for IPv4 . . . . . . . . . . . . . . . . 5 + 2.1. Protocol Processing Per-Link, Not Per-Subnet . . . . . . . 5 + 2.2. Removal of Addressing Semantics . . . . . . . . . . . . . 5 + 2.3. Addition of Flooding Scope . . . . . . . . . . . . . . . . 6 + 2.4. Explicit Support for Multiple Instances per Link . . . . . 6 + 2.5. Use of Link-Local Addresses . . . . . . . . . . . . . . . 7 + 2.6. Authentication Changes . . . . . . . . . . . . . . . . . . 7 + 2.7. Packet Format Changes . . . . . . . . . . . . . . . . . . 8 + 2.8. LSA Format Changes . . . . . . . . . . . . . . . . . . . . 9 + 2.9. Handling Unknown LSA Types . . . . . . . . . . . . . . . . 10 + 2.10. Stub/NSSA Area Support . . . . . . . . . . . . . . . . . . 11 + 2.11. Identifying Neighbors by Router ID . . . . . . . . . . . . 11 + 3. Differences with RFC 2740 . . . . . . . . . . . . . . . . . . 11 + 3.1. Support for Multiple Interfaces on the Same Link . . . . . 11 + 3.2. Deprecation of MOSPF for IPv6 . . . . . . . . . . . . . . 12 + 3.3. NSSA Specification . . . . . . . . . . . . . . . . . . . . 12 + 3.4. Stub Area Unknown LSA Flooding Restriction Deprecated . . 12 + 3.5. Link LSA Suppression . . . . . . . . . . . . . . . . . . . 12 + 3.6. LSA Options and Prefix Options Updates . . . . . . . . . . 13 + 3.7. IPv6 Site-Local Addresses . . . . . . . . . . . . . . . . 13 + 4. Implementation Details . . . . . . . . . . . . . . . . . . . . 13 + 4.1. Protocol Data Structures . . . . . . . . . . . . . . . . . 14 + 4.1.1. The Area Data Structure . . . . . . . . . . . . . . . 15 + 4.1.2. The Interface Data Structure . . . . . . . . . . . . . 15 + 4.1.3. The Neighbor Data Structure . . . . . . . . . . . . . 16 + 4.2. Protocol Packet Processing . . . . . . . . . . . . . . . . 17 + 4.2.1. Sending Protocol Packets . . . . . . . . . . . . . . . 17 + 4.2.1.1. Sending Hello Packets . . . . . . . . . . . . . . 18 + 4.2.1.2. Sending Database Description Packets . . . . . . . 19 + 4.2.2. Receiving Protocol Packets . . . . . . . . . . . . . . 19 + 4.2.2.1. Receiving Hello Packets . . . . . . . . . . . . . 21 + 4.3. The Routing table Structure . . . . . . . . . . . . . . . 22 + 4.3.1. Routing Table Lookup . . . . . . . . . . . . . . . . . 23 + 4.4. Link State Advertisements . . . . . . . . . . . . . . . . 23 + 4.4.1. The LSA Header . . . . . . . . . . . . . . . . . . . . 23 + 4.4.2. The Link-State Database . . . . . . . . . . . . . . . 24 + 4.4.3. Originating LSAs . . . . . . . . . . . . . . . . . . . 25 + 4.4.3.1. LSA Options . . . . . . . . . . . . . . . . . . . 27 + 4.4.3.2. Router-LSAs . . . . . . . . . . . . . . . . . . . 27 + + + +Coltun, et al. Standards Track [Page 2] + +RFC 5340 OSPF for IPv6 July 2008 + + + 4.4.3.3. Network-LSAs . . . . . . . . . . . . . . . . . . . 29 + 4.4.3.4. Inter-Area-Prefix-LSAs . . . . . . . . . . . . . . 30 + 4.4.3.5. Inter-Area-Router-LSAs . . . . . . . . . . . . . . 31 + 4.4.3.6. AS-External-LSAs . . . . . . . . . . . . . . . . . 32 + 4.4.3.7. NSSA-LSAs . . . . . . . . . . . . . . . . . . . . 33 + 4.4.3.8. Link-LSAs . . . . . . . . . . . . . . . . . . . . 34 + 4.4.3.9. Intra-Area-Prefix-LSAs . . . . . . . . . . . . . . 36 + 4.4.4. Future LSA Validation . . . . . . . . . . . . . . . . 40 + 4.5. Flooding . . . . . . . . . . . . . . . . . . . . . . . . . 40 + 4.5.1. Receiving Link State Update Packets . . . . . . . . . 40 + 4.5.2. Sending Link State Update Packets . . . . . . . . . . 41 + 4.5.3. Installing LSAs in the Database . . . . . . . . . . . 43 + 4.6. Definition of Self-Originated LSAs . . . . . . . . . . . . 43 + 4.7. Virtual Links . . . . . . . . . . . . . . . . . . . . . . 44 + 4.8. Routing Table Calculation . . . . . . . . . . . . . . . . 44 + 4.8.1. Calculating the Shortest-Path Tree for an Area . . . . 45 + 4.8.2. The Next-Hop Calculation . . . . . . . . . . . . . . . 44 + 4.8.3. Calculating the Inter-Area Routes . . . . . . . . . . 47 + 4.8.4. Examining Transit Areas' Summary-LSAs . . . . . . . . 48 + 4.8.5. Calculating AS External and NSSA Routes . . . . . . . 48 + 4.9. Multiple Interfaces to a Single Link . . . . . . . . . . . 48 + 4.9.1. Standby Interface State . . . . . . . . . . . . . . . 50 + 5. Security Considerations . . . . . . . . . . . . . . . . . . . 52 + 6. Manageability Considerations . . . . . . . . . . . . . . . . . 52 + 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 52 + 7.1. MOSPF for OSPFv3 Deprecation IANA Considerations . . . . . 53 + 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 53 + 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 55 + 9.1. Normative References . . . . . . . . . . . . . . . . . . . 55 + 9.2. Informative References . . . . . . . . . . . . . . . . . . 56 + Appendix A. OSPF Data Formats . . . . . . . . . . . . . . . . . . 57 + A.1. Encapsulation of OSPF Packets . . . . . . . . . . . . . . 57 + A.2. The Options Field . . . . . . . . . . . . . . . . . . . . 58 + A.3. OSPF Packet Formats . . . . . . . . . . . . . . . . . . . 60 + A.3.1. The OSPF Packet Header . . . . . . . . . . . . . . . . 60 + A.3.2. The Hello Packet . . . . . . . . . . . . . . . . . . . 62 + A.3.3. The Database Description Packet . . . . . . . . . . . 63 + A.3.4. The Link State Request Packet . . . . . . . . . . . . 65 + A.3.5. The Link State Update Packet . . . . . . . . . . . . . 66 + A.3.6. The Link State Acknowledgment Packet . . . . . . . . . 67 + A.4. LSA Formats . . . . . . . . . . . . . . . . . . . . . . . 68 + A.4.1. IPv6 Prefix Representation . . . . . . . . . . . . . . 69 + A.4.1.1. Prefix Options . . . . . . . . . . . . . . . . . . 69 + A.4.2. The LSA Header . . . . . . . . . . . . . . . . . . . . 70 + A.4.2.1. LSA Type . . . . . . . . . . . . . . . . . . . . . 72 + A.4.3. Router-LSAs . . . . . . . . . . . . . . . . . . . . . 73 + A.4.4. Network-LSAs . . . . . . . . . . . . . . . . . . . . . 76 + A.4.5. Inter-Area-Prefix-LSAs . . . . . . . . . . . . . . . . 77 + + + +Coltun, et al. Standards Track [Page 3] + +RFC 5340 OSPF for IPv6 July 2008 + + + A.4.6. Inter-Area-Router-LSAs . . . . . . . . . . . . . . . . 78 + A.4.7. AS-External-LSAs . . . . . . . . . . . . . . . . . . . 79 + A.4.8. NSSA-LSAs . . . . . . . . . . . . . . . . . . . . . . 82 + A.4.9. Link-LSAs . . . . . . . . . . . . . . . . . . . . . . 82 + A.4.10. Intra-Area-Prefix-LSAs . . . . . . . . . . . . . . . . 84 + Appendix B. Architectural Constants . . . . . . . . . . . . . . . 86 + Appendix C. Configurable Constants . . . . . . . . . . . . . . . 86 + C.1. Global Parameters . . . . . . . . . . . . . . . . . . . . 86 + C.2. Area Parameters . . . . . . . . . . . . . . . . . . . . . 87 + C.3. Router Interface Parameters . . . . . . . . . . . . . . . 88 + C.4. Virtual Link Parameters . . . . . . . . . . . . . . . . . 90 + C.5. NBMA Network Parameters . . . . . . . . . . . . . . . . . 91 + C.6. Point-to-Multipoint Network Parameters . . . . . . . . . . 92 + C.7. Host Route Parameters . . . . . . . . . . . . . . . . . . 92 + +1. Introduction + + This document describes the modifications to OSPF to support version + 6 of the Internet Protocol (IPv6). The fundamental mechanisms of + OSPF (flooding, Designated Router (DR) election, area support, + (Shortest Path First) 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. These modifications will necessitate + incrementing the protocol version from version 2 to version 3. OSPF + for IPv6 is also referred to as OSPF version 3 (OSPFv3). + + This document is organized as follows. Section 2 describes the + differences between OSPF for IPv4 (OSPF version 2) and OSPF for IPv6 + (OSPF version 3) in detail. Section 3 describes the difference + between RFC 2740 and this document. Section 4 provides + implementation details for the changes. Appendix A gives the OSPF + for IPv6 packet and Link State Advertisement (LSA) formats. Appendix + B lists the OSPF architectural constants. Appendix C describes + configuration parameters. + +1.1. Requirements Notation + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in [RFC-KEYWORDS]. + +1.2. Terminology + + This document attempts to use terms from both the OSPF for IPv4 + specification ([OSPFV2]) and the IPv6 protocol specifications + ([IPV6]). This has produced a mixed result. Most of the terms used + both by OSPF and IPv6 have roughly the same meaning (e.g., + + + +Coltun, et al. Standards Track [Page 4] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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. + + In the context of this document, an OSPF instance is a separate + protocol instance complete with its own protocol data structures + (e.g., areas, interfaces, neighbors), link-state database, protocol + state machines, and protocol processing (e.g., SPF calculation). + +2. Differences from OSPF for IPv4 + + Most of the algorithms from OSPF for IPv4 [OSPFV2] have been + 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 [OSPFV2]. + +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" ([IPV6]). + "Interfaces" connect to links. Multiple IPv6 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 IPv6 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 ([OSPFV2]) should generally be replaced + by link. Likewise, an OSPF interface now connects to a link instead + of an IP subnet. + + This change affects the receiving of OSPF protocol packets, the + contents of Hello packets, and the contents of 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: + + + + +Coltun, et al. Standards Track [Page 5] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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. + Previously, they had been identified by an IPv4 address on + broadcast, NBMA (Non-Broadcast Multi-Access), and point-to- + multipoint links. + +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: + + o Link-local scope. LSA is only flooded on the local link and no + further. Used for the new link-LSA. See Section 4.4.3.8 for + details. + + o Area scope. LSA is only flooded throughout a single OSPF area. + 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. A router that originates AS scoped LSAs is + considered an AS Boundary Router (ASBR) and will set its E-bit in + router-LSAs for regular areas. + +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 supporting + separate OSPF routing domains that wish 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. + + + + + + +Coltun, et al. Standards Track [Page 6] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 data structures. Instance ID solely affects the reception + of OSPF packets and applies to normal OSPF interfaces and virtual + links. + +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 [IP6ADDR]. + Link-local unicast addresses are assigned from the IPv6 address range + FE80/10. + + OSPF for IPv6 assumes that each router has been assigned link-local + unicast addresses on each of the router's attached physical links + [IP6ADDR]. On all OSPF interfaces except virtual links, OSPF packets + are sent using the interface's associated link-local unicast address + as the source address. 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, a global scope IPv6 address MUST be used as the + source address for OSPF protocol packets. + + Link-local addresses appear in OSPF link-LSAs (see Section 4.4.3.8). + 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 4.4.3.4), AS-external-LSAs + (Section 4.4.3.6), NSSA-LSAs (Section 4.4.3.7), or intra-area-prefix- + LSAs (Section 4.4.3.9). + +2.6. Authentication Changes + + In OSPF for IPv6, authentication has been removed from the OSPF + protocol. 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 data structures. + + When running over IPv6, OSPF relies on the IP Authentication Header + (see [IPAUTH]) and the IP Encapsulating Security Payload (see + [IPESP]) as described in [OSPFV3-AUTH] to ensure integrity and + authentication/confidentiality of routing exchanges. + + + + +Coltun, et al. Standards Track [Page 7] + +RFC 5340 OSPF for IPv6 July 2008 + + + Protection of OSPF packet exchanges against accidental data + corruption is provided by the standard IPv6 Upper-Layer checksum (as + described in Section 8.1 of [IPV6]), covering the entire OSPF packet + and prepended IPv6 pseudo-header (see Appendix 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 incremented from 2 to 3. + + o The Options field in Hello packets and Database Description + packets 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. + Rather, it now includes an Interface ID that the originating + router has assigned to uniquely identify (among its own + interfaces) its interface to the link. This Interface ID will be + used as the network-LSA's Link State ID if the router becomes the + Designated Router on the link. + + o Two Options bits, the "R-bit" and the "V6-bit", have been added to + the Options field for processing router-LSAs during the SPF + calculation (see Appendix 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 datagrams + belonging to another protocol family may be forwarded. + + o The OSPF packet header now includes an "Instance ID" that allows + multiple OSPF protocol instances to be run on a single link (see + Section 2.4). + + + + + + + +Coltun, et al. Standards Track [Page 8] + +RFC 5340 OSPF for IPv6 July 2008 + + +2.8. LSA Format Changes + + All addressing semantics have been removed from the LSA header, + 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 Appendix 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 Appendix A.4.1). The default + route is expressed as a prefix with length 0. + + o Router-LSAs 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. + + o A new LSA called the link-LSA has been introduced. Link-LSAs have + link-local flooding scope; they are never flooded beyond the link + with which they are associated. 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 advertise a collection of Options bits to + associate with the network-LSA that will be originated for the + link. See Section 4.4.3.8 for details. + + o 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 [OSPFV2]), 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 + + + +Coltun, et al. Standards Track [Page 9] + +RFC 5340 OSPF for IPv6 July 2008 + + + in all cases. On NBMA links, next-hop routers do not necessarily + exchange Hellos. Rather, these routers learn of each other's + existence by way of the Designated Router (DR). + + 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, NSSA-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 4.4.3.9 for + details. + + o Inclusion of a forwarding address or external route tag in AS- + external-LSAs is now optional. 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. For + example, this reference could be used to attach BGP path + attributes to external routes. + +2.9. Handling Unknown LSA Types + + Handling of unknown LSA types has been made more flexible so that, + based on the LS type, unknown LSA types are either treated as having + link-local flooding scope, or are stored and flooded as if they were + understood. This behavior is explicitly coded in the LSA Handling + bit of the link state header's LS type field (see the U-bit in + Appendix A.4.2.1). + + + + + +Coltun, et al. Standards Track [Page 10] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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/NSSA Area Support + + In OSPF for IPv4, stub and NSSA 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 and NSSA 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. NSSA areas are restricted to these types and, of + course, NSSA-LSAs. This is the IPv6 equivalent of the LSA types + carried in IPv4 stub areas: router-LSAs, network-LSAs, type 3 + summary-LSAs and for NSSA areas: stub area types and NSSA-LSAs. + +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 while 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 + [OSPFV2]), the lookup of neighbors (Section 10 of [OSPFV2]), and the + reception of Hello packets (Section 10.5 of [OSPFV2]). + + The Router ID of 0.0.0.0 is reserved and SHOULD NOT be used. + +3. Differences with RFC 2740 + + OSPFv3 implementations based on RFC 2740 will fully interoperate with + implementations based on this specification. There are, however, + some protocol additions and changes (all of which are backward + compatible). + +3.1. Support for Multiple Interfaces on the Same Link + + This protocol feature was only partially specified in the RFC 2740. + The level of specification was insufficient to implement the feature. + Section 4.9 specifies the additions and clarifications necessary for + implementation. They are fully compatible with RFC 2740. + + + +Coltun, et al. Standards Track [Page 11] + +RFC 5340 OSPF for IPv6 July 2008 + + +3.2. Deprecation of MOSPF for IPv6 + + This protocol feature was only partially specified in RFC 2740. The + level of specification was insufficient to implement the feature. + There are no known implementations. Multicast Extensions to OSPF + (MOSPF) support and its attendant protocol fields have been + deprecated from OSPFv3. Refer to Section 4.4.3.2, Section 4.4.3.4, + Section 4.4.3.6, Section 4.4.3.7, Appendix A.2, Appendix A.4.2.1, + Appendix A.4.3, Appendix A.4.1.1, and Section 7.1. + +3.3. NSSA Specification + + This protocol feature was only partially specified in RFC 2740. The + level of specification was insufficient to implement the function. + This document includes an NSSA specification unique to OSPFv3. This + specification coupled with [NSSA] provide sufficient specification + for implementation. Refer to Section 4.8.5, Appendix A.4.3, + Appendix A.4.8, and [NSSA]. + +3.4. Stub Area Unknown LSA Flooding Restriction Deprecated + + In RFC 2740 [OSPFV3], flooding of unknown LSA was restricted within + stub and NSSA areas. The text describing this restriction is + included below. + + 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 Appendix 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 can + 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. + + This restriction has been deprecated. OSPFv3 routers will flood link + and area scope LSAs whose LS type is unrecognized and whose U-bit is + set to 1 throughout stub and NSSA areas. There are no backward- + compatibility issues other than OSPFv3 routers still supporting the + restriction may not propagate newly defined LSA types. + +3.5. Link LSA Suppression + + The LinkLSASuppression interface configuration parameter has been + added. If LinkLSASuppression is configured for an interface and the + interface type is not broadcast or NBMA, origination of the link-LSA + + + +Coltun, et al. Standards Track [Page 12] + +RFC 5340 OSPF for IPv6 July 2008 + + + may be suppressed. The LinkLSASuppression interface configuration + parameter is described in Appendix C.3. Section 4.8.2 and + Section 4.4.3.8 were updated to reflect the parameter's usage. + +3.6. LSA Options and Prefix Options Updates + + The LSA Options and Prefix Options fields have been updated to + reflect recent protocol additions. Specifically, bits related to + MOSPF have been deprecated, Options field bits common with OSPFv2 + have been reserved, and the DN-bit has been added to the prefix- + options. Refer to Appendix A.2 and Appendix A.4.1.1. + +3.7. IPv6 Site-Local Addresses + + All references to IPv6 site-local addresses have been removed. + +4. Implementation Details + + When going from IPv4 to IPv6, the basic OSPF mechanisms remain + unchanged from those documented in [OSPFV2]. These mechanisms are + briefly outlined in Section 4 of [OSPFV2]. 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, which includes 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, as well as to elect Designated Routers and + Backup Designated Routers on broadcast and NBMA links. The decision + as to which neighbor relationships become adjacencies, and 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 + [OSPFV2] remains completely unchanged for IPv6: + + o Both IPv4 and IPv6 use OSPF packet types described in Section 4.3 + of [OSPFV2], 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 remain the + same. + + + + + + + +Coltun, et al. Standards Track [Page 13] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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. + + 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 [OSPFV2]. + + 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 [OSPFV2]. + + o The neighbor state machine, including the list of OSPF neighbor + states and events, remains unchanged. The neighbor state machine + is described in Sections 10.1, 10.2, 10.3, and 10.4 of [OSPFV2]. + + 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 + [OSPFV2]. + + However, some OSPF protocol mechanisms have changed as previously + described in Section 2 herein. These changes are explained in detail + in the following subsections, making references to the appropriate + sections of [OSPFV2]. + + The following subsections provide a recipe for turning an IPv4 OSPF + implementation into an IPv6 OSPF implementation. + +4.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 [OSPFV2], 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 that have AS flooding scope. LSAs with unknown LS + + + +Coltun, et al. Standards Track [Page 14] + +RFC 5340 OSPF for IPv6 July 2008 + + + type, U-bit set to 1 (flood even when unrecognized), and AS + flooding scope also appear in the top-level data structure. + +4.1.1. The Area Data Structure + + The IPv6 area data structure contains all elements defined for IPv4 + areas in Section 6 of [OSPFV2]. In addition, all LSAs of known type + that 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. NSSA-LSAs are also included in an NSSA area's + data structure. + +4.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 [OSPFV2]) 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 ([INTFMIB]) + as the Interface ID. The Interface ID appears in Hello packets + sent out the interface, the link-local-LSA originated by the + 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. + The Interface ID for a virtual link is independent of the + Interface ID of the outgoing interface it traverses in the transit + area. + + Instance ID + Every interface is assigned an Instance ID. This should default + to 0. It is only necessary to assign a value other than 0 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 assigned an Instance ID of 0 and all the + routers in the first community will be assigned 0 as the Instance + ID for interfaces connected to the ethernet segment. An Instance + ID of 1 is assigned to the other routers' interfaces connected to + the ethernet segment. The OSPF transmit and receive processing + (see Section 4.2) will then keep the two communities separate. + + + +Coltun, et al. Standards Track [Page 15] + +RFC 5340 OSPF for IPv6 July 2008 + + + List of LSAs with link-local scope + All LSAs with link-local scope and that were originated/flooded on + the link belong to the interface structure that connects to the + link. This includes the collection of the link's link-LSAs. + + IP interface address + For IPv6, the IPv6 address appearing in the source of OSPF packets + sent on the interface is almost always a link-local address. The + one exception is for virtual links that MUST use one of the + router's own 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 on the interface. In + addition, OSPF for IPv6 relies on the IP Authentication Header (see + [IPAUTH]) and the IP Encapsulating Security Payload (see [IPESP]) as + described in [OSPFV3-AUTH] to ensure integrity and authentication/ + confidentiality of routing exchanges. For this reason, AuType and + Authentication key are not associated with IPv6 OSPF interfaces. + + Interface states, events, and the interface state machine remain + unchanged from IPv4 as documented in Sections 9.1, 9.2, and 9.3 of + [OSPFV2] respectively. The Designated Router and Backup Designated + Router election algorithm also remains unchanged from the IPv4 + election in Section 9.4 of [OSPFV2]. + +4.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 when such 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 [OSPFV2] + 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 or point-to-multipoint + link to the neighbor or b) advertising a link to a network where + the neighbor has become the Designated Router. + + + +Coltun, et al. Standards Track [Page 16] + +RFC 5340 OSPF for IPv6 July 2008 + + + Neighbor IP address + The neighbor's IPv6 address contained as the source address in + OSPF for IPv6 packets. This will be an IPv6 link-local address + for all link types except virtual links. + + 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 Backup 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 as documented in Sections 10.1, 10.2, and 10.3 of + [OSPFV2] respectively. The decision as to which adjacencies to form + also remains unchanged from the IPv4 logic documented in Section 10.4 + of [OSPFV2]. + +4.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 OSPF for IPv4, OSPF for 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 IPv6, encoded by the Type + field of the standard OSPF packet header. + +4.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 + Appendix 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. + + + + + + +Coltun, et al. Standards Track [Page 17] + +RFC 5340 OSPF for IPv6 July 2008 + + + Packet length + The length of the entire OSPF packet in bytes, including the + standard OSPF packet header. + + Router ID + The identity of the router itself (who is originating the packet). + + Area ID + The OSPF area for the interface on which the packet is being sent. + + Instance ID + The OSPF Instance ID associated with the interface out of which + the packet is being sent. + + Checksum + The standard IPv6 Upper-Layer checksum (as described in Section + 8.1 of [IPV6]) covering the entire OSPF packet and prepended IPv6 + pseudo-header (see Appendix 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 [OSPFV2]. 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 [OSPFV2] respectively. + Sending Hello packets is documented in Section 4.2.1.1, and the + sending of Database Description packets in Section 4.2.1.2. The + sending of Link State Update packets is documented in Section 4.5.2. + +4.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 [OSPFV2]): + + o Before the Hello packet is sent on 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 since OSPF + for IPv6 runs per-link instead of per-subnet. + + o The choice of Designated Router and Backup Designated Router is + now indicated within Hellos by their Router IDs instead of by + their IP interface addresses. Advertising the Designated Router + + + +Coltun, et al. Standards Track [Page 18] + +RFC 5340 OSPF for IPv6 July 2008 + + + (or Backup Designated Router) as 0.0.0.0 indicates that the + Designated Router (or Backup Designated Router) has not yet been + chosen. + + 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 as follows. The + E-bit is set if and only if the interface attaches to a regular + area, i.e., not a stub or NSSA area. Similarly, the N-bit is set + if and only if the interface attaches to an NSSA area (see + [NSSA]). Finally, the DC-bit is set if and only if the router + wishes to suppress the sending of future Hellos over the interface + (see [DEMAND]). 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 [OSPFV2]. + +4.2.1.2. Sending Database Description Packets + + The sending of Database Description packets differs from Section 10.8 + of [OSPFV2] 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 as follows. The DC-bit is set if and only + if the router wishes to suppress the sending of Hellos over the + interface (see [DEMAND]). Unrecognized bits in the Database + Description packet's Options field should be cleared. + +4.2.2. Receiving Protocol Packets + + Whenever a router receives an OSPF protocol packet, it is marked with + the interface on which it was received. For routers that have + virtual links configured, it may not be immediately obvious with + which interface to associate the packet. For example, consider the + Router RT11 depicted in Figure 6 of [OSPFV2]. 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: + + + + + +Coltun, et al. Standards Track [Page 19] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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), one of the IPv6 multicast + addresses AllSPFRouters or AllDRouters, or an IPv6 global address + (for virtual links). + + o The Next Header field of the immediately encapsulating IPv6 header + MUST specify the OSPF protocol (89). + + o Any encapsulating IP Authentication Headers (see [IPAUTH]) and the + IP Encapsulating Security Payloads (see [IPESP]) MUST be processed + and/or verified to ensure integrity and authentication/ + confidentiality of OSPF routing exchanges. This is described in + [OSPFV3-AUTH]. + + 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 OSPFv3 interface. If they do not, + the packet SHOULD be discarded: + + o The version number field MUST specify protocol version 3. + + o The IPv6 Upper-Layer checksum (as described in Section 8.1 of + [IPV6]), covering the entire OSPF packet and prepended IPv6 + pseudo-header, must be verified (see Appendix A.3.1). + + o The Area ID and Instance ID found in the OSPF header must be + verified. If both of the following cases fail, the packet should + be discarded. The Area ID and Instance ID specified in the header + must either: + + 1. Match one of the Area ID(s) and Interface Instance ID(s) for + the receiving link. Unlike IPv4, the IPv6 source address is + not restricted to lie within the same IPv6 subnet as the + receiving link. IPv6 OSPF runs per-link instead of per-IP- + subnet. + + 2. Match the backbone area and other criteria for a configured + virtual link. The receiving router must be an ABR (Area + Border Router) and the Router ID specified in the packet (the + source router) must be the other end of a configured virtual + link. Additionally, the receiving link must have an OSPFv3 + interface that attaches to the virtual link's configured + transit area and the Instance ID must match the virtual link's + Instance ID. If all of these checks succeed, the packet is + accepted and is associated with the virtual link (and the + backbone area). + + + + +Coltun, et al. Standards Track [Page 20] + +RFC 5340 OSPF for IPv6 July 2008 + + + o Locally originated packets SHOULD NOT be processed by OSPF except + for support of multiple interfaces attached to the same link as + described in Section 4.9. Locally originated packets have a + source address equal to one of the router's local addresses. + + o Packets whose IPv6 destination is AllDRouters should only be + accepted if the state of the receiving OSPFv3 interface is DR or + Backup (see Section 9.1 [OSPFV2]). + + 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 packet processing as described in Section 4.2.2.1. 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 in + 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 is almost + identical to the IPv4 procedures documented in Sections 10.6, 10.7, + and 13.7 of [OSPFV2] respectively with the exceptions noted below. + + o LSAs with unknown LS types in Database Description packets that + have an acceptable flooding scope are processed the same as LSAs + with known LS types. In OSPFv2 [OSPFV2], these would result in + the adjacency being brought down with a SequenceMismatch event. + + The receiving of Hello packets is documented in Section 4.2.2.1 and + the receiving of Link State Update packets is documented in + Section 4.5.1. + +4.2.2.1. Receiving Hello Packets + + The receive processing of Hello packets differs from Section 10.5 of + [OSPFV2] 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. + + + + +Coltun, et al. Standards Track [Page 21] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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. + +4.3. The Routing table Structure + + The routing table used by OSPF for IPv4 is defined in Section 11 of + [OSPFV2]. 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 4.8). + + 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 + [OSPFV2]) 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 routers. + + 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 + Appendix A.4.10). + + + +Coltun, et al. Standards Track [Page 22] + +RFC 5340 OSPF for IPv6 July 2008 + + +4.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. + +4.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, AS-external-LSAs, and + NSSA-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-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 [OSPFV2] and is not encoded + within OSPF for IPv6's LSAs. + + These changes will be described in detail in the following + subsections. + +4.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 [OSPFV2], respectively. However, the following fields + have changed for IPv6: + + Options + The Options field has been removed from the standard 20-byte LSA + header and moved 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 Appendix A.2). Additionally, 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 high-order bit encoding the handling of unknown types and the + next two bits encoding flooding scope. See Appendix A.4.2.1 for + the current coding of the LS type field. + + + + + + +Coltun, et al. Standards Track [Page 23] + +RFC 5340 OSPF for IPv6 July 2008 + + + Link State ID + The Link State ID remains at 32 bits in length. However, except + for network-LSAs and link-LSAs, the 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. + +4.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 [OSPFV2]). + + 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 4.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 4.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, NSSA- + LSAs, and intra-area-prefix-LSAs. LSAs with an unknown LS type, the + U-bit set to 0, and/or link-local flooding scope are contained within + the appropriate interface structure (see Section 4.1.2); this + includes link-LSAs. + + To look up or install an LSA in the database, you first examine the + LS type and the LSA's context (i.e., the area or link to which the + LSA belongs). This information allows you to find the correct + database of LSAs where you then search based on the LSA's type, Link + State ID, and Advertising Router. + + + + + + + + + +Coltun, et al. Standards Track [Page 24] + +RFC 5340 OSPF for IPv6 July 2008 + + +4.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 on the appropriate interfaces. + + The list of events causing LSAs to be reoriginated for IPv4 is given + in Section 12.4 of [OSPFV2]. The following events and/or actions are + added for IPv6: + + o The state or interface ID 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. If + the router is the Designated Router, the router may also need to + (re)originate and/or flush the network-LSA corresponding to the + interface. + + 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. + + 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. + + 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 the Designated Router for + the link, it originates a new intra-area-prefix-LSA. + + o A new link-LSA is received, causing the logical OR of LSA options + advertised by adjacent routers on the link to change. If the + router is the Designated Router for the link, it originates a new + network-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 [OSPFV2] has been reworked to + show IPv6 addressing, resulting in Figure 1. The OSPF cost of each + + + +Coltun, et al. Standards Track [Page 25] + +RFC 5340 OSPF for IPv6 July 2008 + + + interface is 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 2001:0db8:c001::/48. The + OSPF interface IDs and the link-local addresses for the router + interfaces in Figure 1 are given in Table 2. + + .......................................... + . 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 2001:0db8:c001:0200::/56 + N2 2001:0db8:c001:0300::/56 + N3 2001:0db8:c001:0100::/56 + N4 2001:0db8:c001:0400::/56 + + Table 1: IPv6 Link Prefixes for Sample Network + + + + + + + + + + +Coltun, et al. Standards Track [Page 26] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 + + Figure 1 + +4.4.3.1. LSA Options + + The Options field in LSAs should be coded as follows. The V6-bit + should be set unless the router will not participate in transit IPv6 + routing. The E-bit should be clear if and only if the attached area + is an OSPF stub or OSPF NSSA area. The E-bit should always be set in + AS scoped LSAs. The N-bit should be set if and only if the attached + area is an OSPF NSSA area. The R-bit should be set unless the router + will not participate in any transit routing. 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 [DEMAND]). All + unrecognized bits in the Options field should be cleared. + + The V6-bit and R-bit are only examined in Router-LSAs during the SPF + computation. In other LSA types containing options, they are set for + informational purposes only. + +4.4.3.2. 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 attached to the area. When + multiple router-LSAs are used, they are distinguished by their Link + State ID fields. + + To the left of the Options field, the router capability bits V, E, + and B should be set according to Section 12.4.1 of [OSPFV2]. + + Each of the router's interfaces to the area is then described by + appending "link descriptions" to the router-LSA. Each link + description is 16 bytes long, consisting of five fields: (link) Type, + + + +Coltun, et al. Standards Track [Page 27] + +RFC 5340 OSPF for IPv6 July 2008 + + + Metric, Interface ID, Neighbor Interface ID, and Neighbor Router ID + (see Appendix A.4.3). Interfaces in the 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 (except in the case of multiple Standby + Interfaces as described in Section 4.9). All other interfaces to the + area add zero, one, or more link descriptions. The number and + content of these depend on the interface type. Within each link + description, the Metric field is always set to 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. + + Broadcast and NBMA interfaces + If the router is fully adjacent to the link's Designated Router or + if the router itself is the 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 4.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 the + Neighbor Interface ID field set to the Interface ID advertised by + the neighbor in its Hello packets and the 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 the Designated Router of Network + N3. + + + +Coltun, et al. Standards Track [Page 28] + +RFC 5340 OSPF for IPv6 July 2008 + + + ; 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.0.2.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.0.2.4 ; RT4's Router ID + + RT3's router-LSA for Area 1 + + For example, if 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 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 for stub networks no longer appear in the router-LSA. + Rather, they are included in intra-area-prefix-LSAs. + +4.4.3.3. 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 with an elected Designated Router that is + fully adjacent with at least one other router on the link. The + network-LSA is originated by the link's Designated Router and lists + all routers on the link with which it is fully adjacent. + + The procedure for originating network-LSAs in IPv6 is the same as the + IPv4 procedure documented in Section 12.4.2 of [OSPFV2], 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 originated by the link's + Designated Router. + + + +Coltun, et al. Standards Track [Page 29] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 corresponding to fully adjacent neighbors. In this way, the + network link exhibits a capability when at least one fully + adjacent neighbor on the link requests that the capability be + advertised. + + As an example, assuming that Router RT4 has been elected the + 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.0.2.4 ;RT4's Router ID + Options = (V6-bit|E-bit|R-bit) + Attached Router = 192.0.2.4 ;Router ID + Attached Router = 192.0.2.1 ;Router ID + Attached Router = 192.0.2.2 ;Router ID + Attached Router = 192.0.2.3 ;Router ID + + Network-LSA for Network N3 + +4.4.3.4. 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 [OSPFV2], with the following exceptions: + + o The Link State ID of an inter-area-prefix-LSA has lost all of its + addressing semantics and 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. + + + + + +Coltun, et al. Standards Track [Page 30] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 2001:0db8:c001::/48. The + cost is set to 4, which is the maximum cost of all of the individual + component prefixes. 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.0.2.4 ;RT4's ID + Metric = 4 ;maximum to components + PrefixLength = 48 + PrefixOptions = 0 + Address Prefix = 2001:0db8:c001 ;padded to 64-bits + + Inter-area-prefix-LSA for Area 1 addresses originated + by Router + RT4 into the backbone + +4.4.3.5. 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 (i.e., an AS + Boundary Router (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 [OSPFV2], + 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 and now 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. + + + + + + + +Coltun, et al. Standards Track [Page 31] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 [OSPFV2]. 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.0.2.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 + + Inter-area-router-LSA for AS boundary router RT7 originated by Router + RT4 into Area 1 + +4.4.3.6. 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 [OSPFV2], with the + following exceptions: + + o The Link State ID of an AS-external-LSA has lost all of its + addressing semantics and 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. + + 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. + + + + + +Coltun, et al. Standards Track [Page 32] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 supported through the inclusion of the Referenced LS Type + field and the optional Referenced Link State ID field (the latter + present if and only if the Referenced LS Type is non-zero). This + capability is for future use; the Referenced LS Type should be set + to 0, and received non-zero values for this field should be + ignored until its use is defined. + + As an example, consider the OSPF Autonomous System depicted in Figure + 6 of [OSPFV2]. Assume that RT7 has learned its route to N12 via BGP + and that it wishes to advertise a Type 2 metric into the AS. Also + assume that the IPv6 prefix for N12 is the value 2001:0db8: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 in order 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 ;LSA type/scope unique identifier + 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 + Referenced LS Type = 0 ;no Referenced Link State ID + Address Prefix = 2001:0db8:0a00 ;padded to 64-bits + External Route Tag = as per BGP/OSPF interaction + + AS-external-LSA for Network N12, originated by Router RT7 + +4.4.3.7. NSSA-LSAs + + The LS type of an NSSA-LSA is set to the value 0x2007. NSSA-LSAs + have area flooding scope. Each NSSA-LSA describes a path to a prefix + external to the Autonomous System whose flooding scope is restricted + to a single NSSA area. + + The procedure for originating NSSA-LSAs in IPv6 is the same as the + IPv4 procedure documented in [NSSA], with the following exceptions: + + + +Coltun, et al. Standards Track [Page 33] + +RFC 5340 OSPF for IPv6 July 2008 + + + o The Link State ID of an NSSA-LSA has lost all of its addressing + semantics and simply serves to distinguish multiple NSSA-LSAs that + are originated by the same router in the same area. + + 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. + + o Link-local addresses can never be advertised in NSSA-LSAs. + + o The forwarding address is present in the NSSA-LSA if and only if + the NSSA-LSA's bit F is set. + + o The external route tag is present in the NSSA-LSA if and only if + the NSSA-LSA's bit T is set. + + o The capability for an NSSA-LSA to reference another LSA has been + supported through the inclusion of the Referenced LS Type field + and the optional Referenced Link State ID field (the latter + present if and only if the Referenced LS Type is non-zero). This + capability is for future use; the Referenced LS Type should be set + to 0, and received non-zero values for this field should be + ignored until its use is defined. + + An example of an NSSA-LSA would only differ from an AS-external-LSA + in that the LS type would be 0x2007 rather than 0x4005. + +4.4.3.8. 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 two or more (including the + originating router itself) routers. Link-LSAs SHOULD NOT be + originated for virtual links. + + 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. + + 3. They allow the router to advertise a collection of Options bits + in the network-LSA originated by the Designated Router on a + broadcast or NBMA link. + + + +Coltun, et al. Standards Track [Page 34] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 reflect the router's + capabilities. On multi-access links, the Designated Router will + logically OR the link-LSA Options fields for all fully adjacent + neighbors 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 4.8.2). + + o Each IPv6 address prefix that has been configured on Link L is + added to the link-LSA by specifying values for the PrefixLength, + PrefixOptions, and Address Prefix fields. + + After building a link-LSA for a given link, the router installs the + link-LSA into the associated interface data structure and floods the + link-LSA on the link. All other routers on the link will receive the + link-LSA, but they will not flood the link-LSA on other links. + + If LinkLSASuppression is configured for the interface and the + interface type is not broadcast or NBMA, origination of the link-LSA + may be suppressed. This implies that other routers on the link will + ascertain the router's next-hop address using a mechanism other than + the link-LSA (see Section 4.8.2). Refer to Appendix C.3 for a + description of the LinkLSASuppression interface configuration + parameter. + + As an example, consider the link-LSA that RT3 will build for N3 in + Figure 1. Suppose that the prefix 2001:0db8:c001:0100::/56 has been + configured within RT3 for N3. This will result in the following + link-LSA that RT3 will flood only on N3. 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 35] + +RFC 5340 OSPF for IPv6 July 2008 + + + ; 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.0.2.3 ;RT3's Router ID + Rtr Priority = 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 = 2001:0db8:c001:0100 ;pad to 64-bits + + RT3's link-LSA for N3 + +4.4.3.9. 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 either 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. Each intra-area-prefix-LSA has a unique Link State ID and + 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 the + Referenced LS Type is set to 0x2002, the Referenced Link State ID + is set to the Designated Router's Interface ID on Link L, and the + 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 + + + +Coltun, et al. Standards Track [Page 36] + +RFC 5340 OSPF for IPv6 July 2008 + + + Router and the Link State ID matches the neighbor's interface ID, + the list of prefixes in the link-LSA is copied into the 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 + PrefixOptions fields should be logically OR'ed together, and a + single instance of the duplicate prefix should be included in 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 prefixes for + its attached stub links, looped-back interfaces, and hosts. 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 the Referenced LS Type to 0x2001, + the Referenced Link State ID to 0, and the 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 the 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), prefixes that will be + included in the intra-area-prefix-LSA for the link are skipped. + However, any prefixes that would normally have the LA-bit set + SHOULD be advertised independent of whether or not the interface + is advertised as a transit link. If the interface type is point- + to-multipoint or the interface is in the state Loopback, the + global scope IPv6 addresses associated with the interface (if any) + are copied into the intra-area-prefix-LSA with the PrefixOptions + LA-bit set, the PrefixLength set to 128, and the metric set to 0. + Otherwise, the list of 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 Appendix C.7) to the intra-area-prefix- + LSA. + + + +Coltun, et al. Standards Track [Page 37] + +RFC 5340 OSPF for IPv6 July 2008 + + + o If RTX has one or more virtual links configured through the area, + it includes one of its global scope IPv6 interface addresses in + the LSA (if it hasn't already), setting the LA-bit in the + PrefixOptions field, 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. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Coltun, et al. Standards Track [Page 38] + +RFC 5340 OSPF for IPv6 July 2008 + + + ; RT4's 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 ;LSA type/scope unique identifier + Advertising Router = 192.0.2.4 ;RT4's Router ID + # prefixes = 1 + Referenced LS Type = 0x2002 ;network-LSA reference + Referenced Link State ID = 1 + Referenced Advertising Router = 192.0.2.4 + PrefixLength = 56 ;N3's prefix + PrefixOptions = 0 + Metric = 0 + Address Prefix = 2001:0db8: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 ;LSA type/scope unique identifier + Advertising Router = 192.0.2.3 ;RT3's Router ID + # prefixes = 1 + Referenced LS Type = 0x2001 ;router-LSA reference + Referenced Link State ID = 0 + Referenced Advertising Router = 192.0.2.3 + PrefixLength = 56 ;N4's prefix + PrefixOptions = 0 + Metric = 2 ;N4 interface cost + Address Prefix = 2001:0db8:c001:0400 ;pad + + Intra-area-prefix-LSA for Network Link N3 + + 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 the 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 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 this case, the Designated Router may not + + + +Coltun, et al. Standards Track [Page 39] + +RFC 5340 OSPF for IPv6 July 2008 + + + be running the other protocol suite, and so another of the link's + routers may need to originate the intra-area-prefix-LSA. In that + case, the Referenced Advertising Router and Advertising Router would + be different. + +4.4.4. Future LSA Validation + + It is expected that new LSAs will be defined that will not be + processed during the Shortest Path First (SPF) calculation as + described in Section 4.8, for example, OSPFv3 LSAs corresponding to + information advertised in OSPFv2 using opaque LSAs [OPAQUE]. In + general, the new information advertised in future LSAs should not be + used unless the OSPFv3 router originating the LSA is reachable. + However, depending on the application and the data advertised, this + reachability validation MAY be done less frequently than every SPF + calculation. + + To facilitate inter-area reachability validation, any OSPFv3 router + originating AS scoped LSAs is considered an AS Boundary Router + (ASBR). + +4.5. Flooding + + Most of the flooding algorithm remains unchanged from the IPv4 + flooding mechanisms described in Section 13 of [OSPFV2]. In + particular, the protocol processes for determining which LSA instance + is newer (Section 13.1 of [OSPFV2]), responding to updates of self- + originated LSAs (Section 13.4 of [OSPFV2]), sending Link State + Acknowledgment packets (Section 13.5 of [OSPFV2]), retransmitting + LSAs (Section 13.6 of [OSPFV2]), and receiving Link State + Acknowledgment packets (Section 13.7 of [OSPFV2]), are exactly the + same for IPv6 and IPv4. + + However, the addition of flooding scope and unknown LSA type handling + (see Appendix A.4.2.1) has caused some changes in the OSPF flooding + algorithm: the reception of Link State Updates (Section 13 in + [OSPFV2]) and the sending of Link State Updates (Section 13.3 of + [OSPFV2]) must take into account the LSA's scope and U-bit setting. + Also, installation of LSAs into the OSPF database (Section 13.2 of + [OSPFV2]) causes different events in IPv6, due to the reorganization + of LSA types and the IPv6 LSA contents. These changes are described + in detail below. + +4.5.1. Receiving Link State Update Packets + + The encoding of flooding scope in the LS type and the need to process + unknown LS types cause modifications to the processing of received + Link State Update packets. As in IPv4, each LSA in a received Link + + + +Coltun, et al. Standards Track [Page 40] + +RFC 5340 OSPF for IPv6 July 2008 + + + State Update packet is examined. In IPv4, eight steps are executed + for each LSA, as described in Section 13 of [OSPFV2]. 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. Discard the LSA and get + the next one from the Link State Update packet if the + interface area has been configured as a stub or + NSSA area and the LS type indicates "AS flooding scope". + + This generalizes the IPv4 behavior where AS-external-LSAs + and AS-scoped opaque LSAs [OPAQUE] are not flooded + throughout stub or NSSA areas. + + (3) Else if the flooding scope in the LSA's LS type 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 [OSPFV2] are also + somewhat different for IPv6, as described in Sections 4.5.2 and 4.5.3 + below. + +4.5.2. Sending Link State Update Packets + + The sending of Link State Update packets is described in Section 13.3 + of [OSPFV2]. 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 + [OSPFV2]). However, the list of eligible interfaces on 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 scope, the particular + area or interface with which the LSA is associated. + + 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 41] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 on + interfaces connecting to stub or NSSA areas. If the flooding + scope is "area flooding scope", the 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 is also the interface on which the LSA was + received in a Link State Update packet). + + 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 the type is understood). In + this case, select the eligible interfaces based on the encoded + flooding scope the same as in Case 1 above. + + 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 [OSPFV2]). 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 document, + namely, router-LSAs (LS type 0x2001), network-LSAs (0x2002), inter- + area-prefix-LSAs (0x2003), inter-area-router-LSAs (0x2004), NSSA-LSAs + (0x2007), AS-external-LSAs (0x4005), link-LSAs (0x0008), and Intra- + Area-Prefix-LSAs (0x2009), are assumed to be understood by all + routers. However, all LS types MAY not be understood by all routers. + For example, a new LSA type with its U-bit set to 0 MAY only be + understood by a subset of routers. This new LS type should only be + flooded to an OSPF neighbor that understands the LS type or when the + neighbor is the Designated Router or Backup Designated Router for the + attached link. + + + +Coltun, et al. Standards Track [Page 42] + +RFC 5340 OSPF for IPv6 July 2008 + + + The previous paragraph solves a problem for IPv4 OSPF extensions, + which require that the Designated Router support the extension in + order to have the new LSA types flooded across broadcast and NBMA + networks. + +4.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 4.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 4.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 data 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 [OSPFV2]. 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 4.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 [OSPFV2]). If this destination + is an AS boundary router, it may also be necessary to re-examine + all the AS-external-LSAs. + + AS-external-LSAs and NSSA-LSAs + The best route to the destination described by the AS-external-LSA + or NSSA-LSA must be recalculated (see Section 16.6 in [OSPFV2] and + Section 2.0 in [NSSA]). + + 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. + +4.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 + [OSPFV2]. For IPv6, self-originated LSAs are those LSAs whose + Advertising Router is equal to the router's own Router ID. + + + +Coltun, et al. Standards Track [Page 43] + +RFC 5340 OSPF for IPv6 July 2008 + + +4.7. Virtual Links + + OSPF virtual links for IPv4 are described in Section 15 of [OSPFV2]. + 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 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. + Hence, a link-LSA SHOULD NOT be originated for a virtual link + since the virtual link has no link-local address or associated + prefixes. + + o Likewise, the virtual neighbor's IPv6 address is an IPv6 address + with 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 Section 4.4.3.9 and Section 4.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. + +4.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 [OSPFV2]. High-level differences between the IPv6 + and IPv4 calculations include: + + o Prefix information has been removed from router-LSAs and network- + LSAs and is now advertised in intra-area-prefix-LSAs. Whenever + [OSPFV2] specifies that stub networks within router-LSAs be + examined, IPv6 will instead examine prefixes within intra-area- + prefix-LSAs. + + o Type 3 and 4 summary-LSAs have been renamed inter-area-prefix-LSAs + and inter-area-router-LSAs respectively. + + + + + + + +Coltun, et al. Standards Track [Page 44] + +RFC 5340 OSPF for IPv6 July 2008 + + + o Addressing information is no longer encoded in Link State IDs and + is now only found within the body of LSAs. + + o In IPv6, a router can originate multiple router-LSAs, + distinguished by Link State ID, within a single area. These + router-LSAs MUST be treated as a single aggregate by the area's + shortest-path calculation (see Section 4.8.1). + + For each area, the shortest-path tree calculation creates routing + table entries for the area's routers and transit links (see + Section 4.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 4.8.3. + + Events generated as a result of routing table changes (Section 16.7 + of [OSPFV2]) and the equal-cost multipath logic (Section 16.8 of + [OSPFV2]) are identical for both IPv4 and IPv6. + +4.8.1. Calculating the Shortest-Path Tree for an Area + + The IPv4 shortest-path calculation is contained in Section 16.1 of + [OSPFV2]. 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 4.3). + + Section 16.1 of [OSPFV2] 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 [OSPFV2]): + + 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. + + 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 the Advertising Router set to V's + OSPF Router ID MUST be processed as an aggregate, treating them as + fragments of a single large router-LSA. The Options field and the + + + + +Coltun, et al. Standards Track [Page 45] + +RFC 5340 OSPF for IPv6 July 2008 + + + router type bits (bits Nt, V, E, and B) should always be taken + from the router-LSA 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 and the router-LSA V6-bit or R-bit is + not set in the LSA options, the transit link W is ignored and V's + next link is examined. + + o In Step 2b, if W is a router, there may again be multiple LSAs + associated with the router. All router-LSAs with the Advertising + Router set to W's OSPF Router ID MUST be 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 rather than 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 with the LA-bit set. + + o Routing table entries for transit networks, which are no longer + associated with IP networks, are also calculated in Step 4 and + added to the per-area routing table. + + The next stage of the shortest-path calculation proceeds similarly to + the two steps of the second stage of Section 16.1 in [OSPFV2]. + 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's 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's routing table entry for the area. + + This specification does not require that the above algorithm be used + to calculate the intra-area shortest-path tree. However, if another + algorithm or optimization is used, an identical shortest-path tree + must be produced. It is also important that any alternate algorithm + or optimization maintain the requirement that transit vertices must + + + +Coltun, et al. Standards Track [Page 46] + +RFC 5340 OSPF for IPv6 July 2008 + + + be bidirectional for inclusion in the tree. Alternate algorithms and + optimizations are beyond the scope of this specification. + +4.8.2. 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 [OSPFV2]). However, + there are some differences. When calculating the next-hop IPv6 + address for a router (call it Router X) that shares a link with the + calculating router, the calculating router assigns the next-hop IPv6 + address to be the link-local interface address contained in Router + X's link-LSA (see Appendix A.4.9) for the link. This procedure is + necessary for some link types, for example NBMA, where the two + routers need not be neighbors and might not be exchanging OSPF Hello + packets. For other link types, the next-hop address may be + determined via the IPv6 source address in the neighbor's Hello + packet. + + Additionally, when calculating routes for the area's intra-area- + prefix-LSAs, the parent vertex can be either a router-LSA or network- + LSA. This is in contrast to the second stage of the OSPFv2 intra- + area SPF (Section 16.1 in [OSPFV2]) where the parent vertex is always + a router-LSA. In the case where the intra-area-prefix-LSA's + referenced LSA is a directly connected network-LSA, the prefixes are + also considered to be directly connected. In this case, the next hop + is solely the outgoing link and no IPv6 next-hop address is selected. + +4.8.3. 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 [OSPFV2], 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 an + advertised AS boundary 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 PrefixOptions field should + be ignored by the inter-area route calculation. + + + + + +Coltun, et al. Standards Track [Page 47] + +RFC 5340 OSPF for IPv6 July 2008 + + + When a single inter-area-prefix-LSA or inter-area-router-LSA has + changed, the incremental calculations outlined in Section 16.5 of + [OSPFV2] can be performed instead of recalculating the entire routing + table. + +4.8.4. 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 [OSPFV2], + modified in the same way as the IPv6 inter-area route calculation in + Section 4.8.3. + +4.8.5. Calculating AS External and NSSA Routes + + The IPv6 AS external route calculation proceeds along the same lines + as the IPv4 calculation in Section 16.4 of [OSPFV2] and Section 2.5 + of [NSSA], with the following exceptions: + + o The Link State ID of the AS-external-LSA and NSSA-LSA types no + longer encodes the network described by the LSA. Instead, an + address prefix is contained in the body of the LSA. + + o The default route in AS-external-LSAs or NSSA-LSAs is advertised + by a zero-length prefix. + + o Instead of comparing the AS-external-LSA's or NSSA-LSA's + Forwarding Address field to 0.0.0.0 to see whether a forwarding + address has been used, the bit F in the respective 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 PrefixOptions field should + be ignored by the inter-area route calculation. + + o AS Boundary Router (ASBR) and forwarding address selection will + proceed the same as if RFC1583Compatibility is disabled. + Furthermore, RFC1583Compatibility is not an OSPF for IPv6 + configuration parameter. Refer to Appendix C.1. + + When a single AS-external-LSA or NSSA-LSA has changed, the + incremental calculations outlined in Section 16.6 of [OSPFV2] can be + performed instead of recalculating the entire routing table. + +4.9. Multiple Interfaces to a Single Link + + In OSPF for IPv6, a router may have multiple interfaces to a single + link associated with the same OSPF instance and area. All interfaces + + + + +Coltun, et al. Standards Track [Page 48] + +RFC 5340 OSPF for IPv6 July 2008 + + + will be used for the reception and transmission of data traffic while + only a single interface sends and receives OSPF control traffic. In + more detail: + + o Each of the multiple interfaces is assigned a different Interface + ID. A router will automatically detect that multiple interfaces + are attached to the same link when a Hello packet is received with + one of the router's link-local addresses as the source address and + an Interface ID other than the Interface ID of the receiving + interface. + + o Each of the multiple interfaces MUST be configured with the same + Interface Instance ID to be considered on the same link. If an + interface has multiple Instance IDs, it will be grouped with other + interfaces based on matching Instance IDs. Each Instance ID will + be treated uniquely with respect to groupings of multiple + interfaces on the same link. For example, if interface A is + configured with Instance IDs 1 and 35, and interface B is + configured with Instance ID 35, interface B may be the Active + Interface for Instance ID 35 but interface A will be active for + Instance ID 1. + + o The router will ignore OSPF packets other than Hello packets on + all but one of the interfaces attached to the link. It will only + send its OSPF control packets (including Hello packets) on a + single interface. This interface is designated the Active + Interface and other interfaces attached to the same link will be + designated Standby Interfaces. The choice of the Active Interface + is implementation dependent. For example, the interface with the + highest Interface ID could be chosen. If the router is elected + Designated Router, it will be the Active Interface's Interface ID + that will be used as the network-LSA's Link State ID. + + o All of the interfaces to the link (Active and Standby) will appear + in the router-LSA. In addition, a link-LSA will be generated for + each of the interfaces. In this way, all interfaces will be + included in OSPF's routing calculations. + + o Any link-local scope LSAs that are originated for a Standby + Interface will be flooded over the Active Interface. + If a Standby Interface goes down, then the link-local scope LSAs + originated for the Standby Interfaces MUST be flushed on the + Active Interface. + + o Prefixes on Standby Interfaces will be processed the same way as + prefixes on the Active Interface. For example, if the router is + the DR for the link, the Active Interface's prefixes are included + + + + +Coltun, et al. Standards Track [Page 49] + +RFC 5340 OSPF for IPv6 July 2008 + + + in an intra-area-prefix-LSA which is associated with the Active + Interface's network-LSA; prefixes from Standby Interfaces on the + link will also be included in that intra-area-prefix LSA. + Similarly, if the link is a stub link, then the prefixes for the + Active and Standby Interfaces will all be included in the same + intra-area-prefix-LSA that is associated with the router-LSA. + + o If the Active Interface fails, a new Active Interface will have to + take over. The new Active Interface SHOULD form all new neighbor + adjacencies with routers on the link. This failure can be + detected when the router's other interfaces to the Active + Interface's link cease to hear the router's Hellos or through + internal mechanisms, e.g., monitoring the Active Interface's + status. + + o If the network becomes partitioned with different local interfaces + attaching to different network partitions, multiple interfaces + will become Active Interfaces and function independently. + + o During the SPF calculation when a network-LSA for a network that + is directly connected to the root vertex is being examined, all of + the multiple interfaces to the link of adjacent router-LSAs must + be used in the next-hop calculation. + This can be accomplished during the back link check (see Section + 16.1, Step 2 (B), in [OSPFV2]) by examining each link of the + router-LSA and making a list of the links that point to the + network-LSA. The Interface IDs for links in this list are then + used to find the corresponding link-LSAs and the link-local + addresses used as next hops when installing equal-cost paths in + the routing table. + + o The interface state machine is modified to add the state Standby. + See Section 4.9.1 for a description of the Standby state. + +4.9.1. Standby Interface State + + In this state, the interface is one of multiple interfaces to a link + and this interface is designated Standby and is not sending or + receiving control packets. The interface will continue to receive + the Hello packets sent by the Active Interface. The interface will + maintain a timer, the Active Interface Timer, with the same interval + as the RouterDeadInterval. This timer will be reset whenever an OSPF + Hello packet is received from the Active Interface to the link. + + Two new events are added to the list of events that cause interface + state changes: MultipleInterfacesToLink and ActiveInterfaceDead. The + descriptions of these events are as follows: + + + + +Coltun, et al. Standards Track [Page 50] + +RFC 5340 OSPF for IPv6 July 2008 + + + MultipleInterfacesToLink + An interfaces on the router has received a Hello packet from + another interface on the same router. One of the interfaces is + designated as the Active Interface and the other interface is + designated as a Standby Interface. The Standby Interface + transitions to the Standby state. + + ActiveInterfaceDead + There has been an indication that a Standby Interface is no longer + on a link with an Active Interface. The firing of the Active + Interface Timer is one indication of this event, as it indicates + that the Standby Interface has not received an OSPF Hello packet + from the Active Interface for the RouterDeadInterval. Other + indications may come from internal notifications, such as the + Active Interface being disabled through a configuration change. + Any indication internal to the router, such that the router knows + the Active Interface is no longer active on the link, can trigger + the ActiveInterfaceDead event for a Standby Interface. + + Interface state machine additions include: + + State(s): Waiting, DR Other, Backup, or DR + + Event: MultipleInterfacesToLink + + New state: Standby + + Action: All interface variables are reset and interface + timers disabled. Also, all neighbor connections + associated with the interface are destroyed. This + is done by generating the event KillNbr on all + associated neighbors. The Active Interface Timer is + started and the interface will listen for OSPF Hello + packets from the link's Active Interface. + + State(s): Standby + + Event: ActiveInterfaceDead + + New state: Down + + Action: The Active Interface Timer is first disabled. Then + the InterfaceUp event is invoked. + + Standby Interface State Machine Additions + + + + + + +Coltun, et al. Standards Track [Page 51] + +RFC 5340 OSPF for IPv6 July 2008 + + +5. Security Considerations + + When running over IPv6, OSPFv3 relies on the IP Authentication Header + (see [IPAUTH]) and the IP Encapsulating Security Payload (see + [IPESP]) to ensure integrity and authentication/confidentiality of + protocol packets. This is described in [OSPFV3-AUTH]. + + Most OSPFv3 implementations will be running on systems that support + multiple protocols with their own independent security assumptions + and domains. When IPsec is used to protect OSPFv3 packets, it is + important for the implementation to check the IPsec Security + Association (SA) and local SA database to ensure the OSPF packet + originated from a source that is trusted for OSPFv3. This is + required to eliminate the possibility that the packet was + authenticated using an SA defined for another protocol running on the + same system. + + The mechanisms in [OSPFV3-AUTH] do not provide protection against + compromised, malfunctioning, or misconfigured routers. Such routers + can, either accidentally or deliberately, cause malfunctions + affecting the whole routing domain. The reader is encouraged to + consult [GENERIC-THREATS] for a more comprehensive description of + threats to routing protocols. + +6. Manageability Considerations + + The Management Information Base (MIB) for OSPFv3 is defined in + [OSPFV3-MIB]. + +7. IANA Considerations + + Most OSPF for IPv6 IANA considerations are documented in [OSPF-IANA]. + IANA has updated the reference for RFC 2740 to this document. + + Additionally, this document introduces the following IANA + requirements that were not present in [OSPFV3]: + + o Reserves the options with the values 0x000040 and 0x000080 for + migrated OSPFv2 options in the OSPFv3 Options registry defined in + [OSPF-IANA]. For information on the OSPFv3 Options field, refer + to Appendix A.2. + + o Adds the prefix option P-bit with value 0x08 to the OSPFv3 Prefix + Options registry defined in [OSPF-IANA]. For information on + OSPFv3 Prefix Options, refer to Appendix A.4.1.1. + + + + + + +Coltun, et al. Standards Track [Page 52] + +RFC 5340 OSPF for IPv6 July 2008 + + + o Adds the prefix option DN-bit with value 0x10 to the OSPFv3 Prefix + Options registry defined in [OSPF-IANA]. For information on + OSPFv3 Prefix Options, refer to Appendix A.4.1.1. + +7.1. MOSPF for OSPFv3 Deprecation IANA Considerations + + With the deprecation of MOSPF for OSPFv3, the following code points + are available for reassignment. Refer to [OSPF-IANA] for information + on the respective registries. This document: + + o Deprecates the MC-bit with value 0x000004 in the OSPFv3 Options + registry. + + o Deprecates Group-membership-LSA with value 6 in OSPFv3 LSA + Function Code registry. + + o Deprecates MC-bit with value 0x04 in the OSPFv3 Prefix Options + registry. + + The W-bit in the OSPFv3 Router Properties has also been deprecated. + This requires a new registry for OSPFv3 router properties since it + will diverge from the OSPFv2 Router Properties. + + Registry Name: OSPFv3 Router Properties Registry + Reference: RFC 5340 + Registration Procedures: Standards Action + + Registry: + Value Description Reference + ------ ------------- --------- + 0x01 B-bit RFC 5340 + 0x02 E-bit RFC 5340 + 0x04 V-bit RFC 5340 + 0x08 Deprecated RFC 5340 + 0x10 Nt-bit RFC 5340 + + OSPFv3 Router Properties Registry + +8. Acknowledgments + + The RFC text was produced using Marshall Rose's xml2rfc tool. + + The following individuals contributed comments that were incorporated + into this document: + + o Harold Rabbie for his description of protocol details that needed + to be clarified for OSPFv3 NSSA support. + + + + +Coltun, et al. Standards Track [Page 53] + +RFC 5340 OSPF for IPv6 July 2008 + + + o Nic Neate for his pointing out that there needed to be changes for + unknown LSA types handling in the processing of Database + Description packets. + + o Jacek Kwiatkowski for being the first to point out that the V6- + and R-bits are not taken into account in the OSPFv3 intra-area SPF + calculation. + + o Michael Barnes recognized that the support for multiple interfaces + to a single link was broken (see Section 4.9) and provided the + description of the current protocol mechanisms. Abhay Roy + reviewed and suggested improvements to the mechanisms. + + o Alan Davey reviewed and commented on document revisions. + + o Vivek Dubey reviewed and commented on document revisions. + + o Manoj Goyal and Vivek Dubey complained enough about link-LSAs + being unnecessary to compel introduction of the LinkLSASuppression + interface configuration parameter. + + o Manoj Goyal for pointing out that the next-hop calculation for + intra-area-prefix-LSAs corresponding to network vertices was + unclear. + + o Ramana Koppula reviewed and commented on document revisions. + + o Paul Wells reviewed and commented on document revisions. + + o Amir Khan reviewed and commented on document revisions. + + o Dow Street and Wayne Wheeler commented on the addition of the DN- + bit to OSPFv3. + + o Mitchell Erblichs provided numerous editorial comments. + + o Russ White provided numerous editorial comments. + + o Kashima Hiroaki provided editorial comments. + + o Sina Mirtorabi suggested that OSPFv3 should be aligned with OSPFv2 + with respect to precedence and should map it to IPv6 traffic class + as specified in RFC 2474. Steve Blake helped with the text. + + o Faraz Shamin reviewed a late version of the document and provided + editorial comments. + + + + + +Coltun, et al. Standards Track [Page 54] + +RFC 5340 OSPF for IPv6 July 2008 + + + o Christian Vogt performed the General Area Review Team (Gen-ART) + review and provided comments. + + o Dave Ward, Dan Romascanu, Tim Polk, Ron Bonica, Pasi Eronen, and + Lars Eggert provided comments during the IESG review. Also, + thanks to Pasi for the text in Section 5 relating to routing + threats. + +9. References + +9.1. Normative References + + [DEMAND] Moy, J., "Extending OSPF to Support Demand + Circuits", RFC 1793, April 1995. + + [DIFF-SERV] Nichols, K., Blake, S., Baker, F., and D. Black, + "Definition of the Differentiated Services Field + (DS Field) in the IPv4 and IPv6 Headers", + RFC 2474, December 1998. + + [DN-BIT] Rosen, E., Peter, P., and P. Pillay-Esnault, + "Using a Link State Advertisement (LSA) Options + Bit to Prevent Looping in BGP/MPLS IP Virtual + Private Networks (VPNs)", RFC 4576, June 2006. + + [INTFMIB] McCloghrie, K. and F. Kastenholz, "The Interfaces + Group MIB", RFC 2863, June 2000. + + [IP6ADDR] Hinden, R. and S. Deering, "IP Version 6 + Addressing Architecture", RFC 4291, February 2006. + + [IPAUTH] Kent, S., "IP Authentication Header", RFC 4302, + December 2005. + + [IPESP] Kent, S., "IP Encapsulating Security Payload + (ESP)", RFC 4303, December 2005. + + [IPV4] Postal, J., "Internet Protocol", STD 5, RFC 791, + September 1981. + + [IPV6] Deering, S. and R. Hinden, "Internet Protocol, + Version 6 (IPv6) Specification", RFC 2460, + December 1998. + + [NSSA] Murphy, P., "The OSPF Not-So-Stubby Area (NSSA) + Option", RFC 3101, January 2003. + + + + + +Coltun, et al. Standards Track [Page 55] + +RFC 5340 OSPF for IPv6 July 2008 + + + [OSPF-IANA] Kompella, K. and B. Fenner, "IANA Considerations + for OSPF", BCP 130, RFC 4940, July 2007. + + [OSPFV2] Moy, J., "OSPF Version 2", STD 54, RFC 2328, + April 1998. + + [OSPFV3-AUTH] Gupta, M. and N. Melam, "Authentication/ + Confidentiality for OSPFv3", RFC 4552, June 2006. + + [RFC-KEYWORDS] Bradner, S., "Key words for use in RFCs to + Indicate Requirement Levels", BCP 14, RFC 2119, + March 1997. + +9.2. Informative References + + [GENERIC-THREATS] Barbir, A., Murphy, S., and Y. Yang, "Generic + Threats to Routing Protocols", RFC 4593, + October 2006. + + [MOSPF] Moy, J., "Multicast Extensions to OSPF", RFC 1584, + March 1994. + + [MTUDISC] Mogul, J. and S. Deering, "Path MTU discovery", + RFC 1191, November 1990. + + [OPAQUE] Coltun, R., "The OSPF Opaque LSA Option", + RFC 2370, July 1998. + + [OSPFV3] Coltun, R., Ferguson, D., and J. Moy, "OSPF for + IPv6", RFC 2740, December 1999. + + [OSPFV3-MIB] Joyal, D. and V. Manral, "Management Information + Base for OSPFv3", Work in Progress, + September 2007. + + [SERV-CLASS] Babiarz, J., Chan, K., and F. Baker, + "Configuration Guidelines for DiffServ Service + Classes", RFC 4594, August 2006. + + + + + + + + + + + + + +Coltun, et al. Standards Track [Page 56] + +RFC 5340 OSPF for IPv6 July 2008 + + +Appendix 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 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, Link State Request, Link State Update, and + Link State Acknowledgment packets) can usually be split into multiple + 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 size of OSPF + packets sent over virtual links to 1280 bytes unless Path MTU + Discovery is being performed [MTUDISC]. + + 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. b + + + + + + +Coltun, et al. Standards Track [Page 57] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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. + + o The OSPFv2 specification (Appendix A.1 in [OSPFV2]) indicates that + OSPF protocol packets are sent with IP precedence set to + Internetwork Control (B'110') [IPV4]. If routers in the OSPF + routing domain map their IPv6 Traffic Class octet to the + Differentiated Services Code Point (DSCP) as specified in + [DIFF-SERV], then OSPFv3 packets SHOULD be sent with their DSCP + set to CS6 (B'110000'), as specified in [SERV-CLASS]. In networks + supporting this mapping, OSPF packets will be given precedence + over IPv6 data traffic. + +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; 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; + these mismatches are discovered by examining LSAs. + + + + +Coltun, et al. Standards Track [Page 58] + +RFC 5340 OSPF for IPv6 July 2008 + + + Seven 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 Options bits in received Hello + packets, Database Description packets, or LSAs should ignore the + unrecognized bits and process the packet or LSA normally. + + 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|x| E|V6| + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+-+--+--+ + + The Options field + + The Options field + + V6-bit + If this bit is clear, the router/link should be excluded from IPv6 + routing calculations. See Section 4.8 for details. + + 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 [OSPFV2]. + + x-Bit + This bit was previously used by MOSPF (see [MOSPF]), which has + been deprecated for OSPFv3. The bit should be set to 0 and + ignored when received. It may be reassigned in the future. + + N-bit + This bit indicates whether or not the router is attached to an + NSSA as specified in [NSSA]. + + R-bit + This bit (the `Router' bit) indicates whether the originator is an + active router. If the router bit is clear, then routes that + 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 [DEMAND]. + + + + + +Coltun, et al. Standards Track [Page 59] + +RFC 5340 OSPF for IPv6 July 2008 + + + *-bit + These bits are reserved for migration of OSPFv2 protocol + extensions. + +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 format is displayed and the packet's + component fields are defined. + + 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. + + The receive processing of OSPF packets is detailed in Section 4.2.2. + The sending of OSPF packets is explained in Section 4.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 4.2.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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Version # | Type | Packet length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Router ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Area ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Checksum | Instance ID | 0 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + The OSPF Packet Header + + Version # + The OSPF version number. This specification documents version 3 + of the OSPF protocol. + + + + + + +Coltun, et al. Standards Track [Page 60] + +RFC 5340 OSPF for IPv6 July 2008 + + + Type + The OSPF packet types are as follows. See Appendix A.3.2 through + Appendix 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. + + Area ID + A 32-bit number identifying the area to which this packet belongs. + All OSPF packets are associated with a single area. Most travel a + single hop only. Packets traversing a virtual link are labeled + 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 Section 8.1 of [IPV6]. The "Upper-Layer Packet + Length" in the pseudo-header is set to the 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 link-local significance only. Received + packets whose Instance ID is not equal to the receiving + interface's Instance ID are discarded. + + + + + + + +Coltun, et al. Standards Track [Page 61] + +RFC 5340 OSPF for IPv6 July 2008 + + + 0 + These fields are reserved. They SHOULD be set to 0 when sending + protocol packets and MUST be ignored when receiving protocol + packets. + +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 allowing differences to 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 bidirectional + communication (the Router IDs of all neighbors whose Hellos have been + recently received). + + 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 Priority | Options | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | HelloInterval | RouterDeadInterval | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Designated Router ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Backup Designated Router ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Neighbor ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ... | + + The OSPF Hello Packet + + + +Coltun, et al. Standards Track [Page 62] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 + ([INTFMIB]). + + Rtr Priority + 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. + + Designated Router ID + The sending router's view of the identity of the Designated Router + for this network. The Designated Router is identified by its + Router ID. It is set to 0.0.0.0 if there is no Designated Router. + + Backup Designated Router ID + The sending router's view of the identity of the Backup Designated + Router for this network. The Backup Designated Router is + identified by its IP Router ID. It is set to 0.0.0.0 if there is + no Backup Designated Router. + + Neighbor ID + The Router IDs of each router on the network with neighbor state + 1-Way or greater. + +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 + and the other is the slave. The master sends Database Description + packets (polls) that 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 63] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 OSPF Database Description Packet + + The format of the Database Description packet is very similar to both + the Link State Request packet and the Link State Acknowledgment + packet. 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 + [OSPFV2]. The reception of Database Description packets is + documented in Section 10.6 of [OSPFV2]. + + 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 [MTUDISC]. + + + + +Coltun, et al. Standards Track [Page 64] + +RFC 5340 OSPF for IPv6 July 2008 + + + Interface MTU should be set to 0 in Database Description packets + sent over virtual links. + + 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 for both the master and slave routers have been + exchanged. + + 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 Appendix A.4.2. + 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 LSA + instances in response. + + The sending of Link State Request packets is documented in Section + 10.9 of [OSPFV2]. The reception of Link State Request packets is + documented in Section 10.7 of [OSPFV2]. + + + +Coltun, et al. Standards Track [Page 65] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ... | + + The OSPF Link State Request Packet + + Each LSA requested is specified by its LS type, Link State ID, and + Advertising Router. This uniquely identifies the LSA without + specifying its instance. Link State Request packets are understood + to be requests for the most recent instance of the specified LSAs. + +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 4.5. + + + + + + + + + + + +Coltun, et al. Standards Track [Page 66] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 | + +- +-+ + | ... | + + + The OSPF Link State Update Packet + + # 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 + Appendix A.4.2. Detailed formats of the different types of LSAs are + described Appendix 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 or + implicitly acknowledged. Explicit acknowledgment is accomplished + through the sending and receiving of Link State Acknowledgment + packets. The sending of Link State Acknowledgment packets is + documented in Section 13.5 of [OSPFV2]. The reception of Link State + Acknowledgment packets is documented in Section 13.7 of [OSPFV2]. + + Multiple LSAs MAY 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 to the multicast + address AllSPFRouters, the multicast address AllDRouters, or to a + neighbor's unicast address (see Section 13.5 of [OSPFV2] for + details). + + + + +Coltun, et al. Standards Track [Page 67] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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. + + 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 -+ + | | + +- -+ + | | + +- -+ + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ... | + + The OSPF Link State Acknowledgment Packet + + Each acknowledged LSA is described by its LSA header. The LSA header + is documented in Appendix 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 document defines eight distinct types of LSAs. Each LSA begins + with a standard 20-byte LSA header. This header is explained in + Appendix A.4.2. Succeeding sections describe each LSA type + individually. + + 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, AS- + external-LSAs, and NSSA-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 + + + +Coltun, et al. Standards Track [Page 68] + +RFC 5340 OSPF for IPv6 July 2008 + + + flooding algorithm is reliable, ensuring that all routers common to a + flooding scope have the same collection of LSAs associated with that + flooding scope. (See Section 4.5 for more information concerning the + flooding algorithm.) This collection of LSAs is called the link- + state database. + + 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 [OSPFV2]). For details on the routing table build process, see + Section 4.8. + +A.4.1. IPv6 Prefix Representation + + IPv6 addresses are bit strings of length 128. IPv6 routing + protocols, 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 Appendix A.4.1.1). 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 + Appendix A.4.5, Appendix A.4.7, Appendix A.4.8, Appendix A.4.9, and + Appendix A.4.10. + +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. For + example, they can indicate that prefixes are to be ignored in some + cases or are to be marked as not readvertisable in others. + + 0 1 2 3 4 5 6 7 + +--+--+--+--+--+-+--+--+ + | | | |DN| P|x|LA|NU| + +--+--+--+--+--+-+--+--+ + + The PrefixOptions Field + + + + + +Coltun, et al. Standards Track [Page 69] + +RFC 5340 OSPF for IPv6 July 2008 + + + NU-bit + The "no unicast" capability bit. If set, the prefix should be + excluded from IPv6 unicast calculations. If not set, it should be + included. + + LA-bit + The "local address" capability bit. If set, the prefix is + actually an IPv6 interface address of the Advertising Router. + Advertisement of local interface addresses is described in + Section 4.4.3.9. An implementation MAY also set the LA-bit for + prefixes advertised with a host PrefixLength (128). + + x-bit + This bit was previously defined as a "multicast" capability bit. + However, the use was never adequately specified and has been + deprecated for OSPFv3. The bit should be set to 0 and ignored + when received. It may be reassigned in the future. + + P-bit + The "propagate" bit. Set on NSSA area prefixes that should be + readvertised by the translating NSSA area border [NSSA]. + + DN-bit + This bit controls an inter-area-prefix-LSAs or AS-external-LSAs + re-advertisement in a VPN environment as specified in [DN-BIT]. + +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. + + + + + + + + + + + + + + + + +Coltun, et al. Standards Track [Page 70] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + The LSA Header + + 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 Appendix A.4.2.1 for a + detailed description of LS type. + + Link State ID + The originating router's identifier for the LSA. The combination + of the Link State ID, LS type, and Advertising Router uniquely + identify 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 + Successive instances of an LSA are given successive LS sequence + numbers. The sequence number can be used to detect old or + duplicate LSA instances. See Section 12.1.6 in [OSPFV2] 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 [OSPFV2] for more details. + + + + + +Coltun, et al. Standards Track [Page 71] + +RFC 5340 OSPF for IPv6 July 2008 + + + length + The length in bytes of the LSA. This includes the 20-byte LSA + header. + +A.4.2.1. LSA 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 | + +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ + + LSA Type + + The U-bit indicates how the LSA should be handled by a router that + 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 the type is understood + + U-Bit + + 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 originating link + 0 1 Area Scoping - Flooded only in originating area + 1 0 AS Scoping - Flooded throughout AS + 1 1 Reserved + + Flooding Scope + + The LSA function codes are defined as follows. The origination and + processing of these LSA function codes are defined elsewhere in this + document, except for the NSSA-LSA (see [NSSA]) and 0x2006, which was + previously used by MOSPF (see [MOSPF]). MOSPF has been deprecated + for OSPFv3. As shown below, each LSA function b code also implies a + specific setting for the U, S1, and S2 bits. + + + + +Coltun, et al. Standards Track [Page 72] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 Deprecated (may be reassigned) + 7 0x2007 NSSA-LSA + 8 0x0008 Link-LSA + 9 0x2009 Intra-Area-Prefix-LSA + + LSA Function Code + +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 4.4.3.2. Router-LSAs are + only flooded throughout a single area. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Coltun, et al. Standards Track [Page 73] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 |Nt|x|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 | + +-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ... | + + Router-LSA Format + + 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. + + + + + + +Coltun, et al. Standards Track [Page 74] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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). + + 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 x + This bit was previously used by MOSPF (see [MOSPF]) and has been + deprecated for OSPFv3. The bit should be set to 0 and ignored + when received. It may be reassigned in the future. + + Bit Nt + When set, the router is an NSSA border router that is + unconditionally translating NSSA-LSAs into AS-external-LSAs (Nt + stands for NSSA translation). Note that such routers have their + NSSATranslatorRole area configuration parameter set to Always. + (See [NSSA].) + + Options + The optional capabilities supported by the router, as documented + in Appendix 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 + + Router Link Types + + + + + + +Coltun, et al. Standards Track [Page 75] + +RFC 5340 OSPF for IPv6 July 2008 + + + Metric + The cost of using this router interface for outbound traffic. + + Interface ID + The Interface ID assigned to the interface being described. See + Section 4.1.2 and Appendix C.3. + + Neighbor Interface ID + The Interface ID the neighbor router has associated with the link, + as advertised in the neighbor's Hello packets. For transit (type + 2) links, the link's Designated Router is the neighbor described. + For other link types, the sole adjacent neighbor is described. + + Neighbor Router ID + The Router ID the of the neighbor router. For transit (type 2) + links, the link's Designated Router is the neighbor described. + For other link types, the sole adjacent neighbor is described. + + For transit (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 that includes + two or more adjacent 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 4.4.3.3. + + + + + + + + + + + + + + + +Coltun, et al. Standards Track [Page 76] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ... | + + Network-LSA Format + + 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. + +A.4.5. Inter-Area-Prefix-LSAs + + Inter-area-prefix-LSAs have LS type equal to 0x2003. These LSAs are + the IPv6 equivalent of OSPF for IPv4's type 3 summary-LSAs (see + Section 12.4.3 of [OSPFV2]). 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 4.4.3.4. + + 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. + + + + + + + + +Coltun, et al. Standards Track [Page 77] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 | + | ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Inter-Area-Prefix-LSA Format + + Metric + The cost of this route. Expressed in the same units as the + interface costs in router-LSAs. When the inter-area-prefix-LSA is + describing a route to a range of addresses (see Appendix 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 + Appendix A.4.1. + +A.4.6. Inter-Area-Router-LSAs + + Inter-area-router-LSAs have LS type equal to 0x2004. These LSAs are + the IPv6 equivalent of OSPF for IPv4's type 4 summary-LSAs (see + Section 12.4.3 of [OSPFV2]). Originated by area border routers, they + describe routes to AS boundary routers in other areas. To see why it + is necessary to advertise the location of each ASBR, consult Section + 16.4 in [OSPFV2]. Each LSA describes a route to a single router. + For details concerning the construction of inter-area-router-LSAs, + see Section 4.4.3.5. + + + + + + + +Coltun, et al. Standards Track [Page 78] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Inter-Area-Router-LSA Format + + Options + The optional capabilities supported by the router, as documented + in Appendix A.2. + + Metric + The cost of this route. Expressed in the same units as the + interface costs in router-LSAs. + + Destination Router ID + The Router ID of the router being described by the LSA. + +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 4.4.3.6. + + 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. + + + + + + +Coltun, et al. Standards Track [Page 79] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + AS-external-LSA Format + + 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 other LSAs (i.e., the same units + as the interface costs in router-LSAs). + + 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. + + + +Coltun, et al. Standards Track [Page 80] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 + Appendix 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. It MUST + NOT be set to the IPv6 Unspecified Address (0:0:0:0:0:0:0:0) or an + IPv6 Link-Local Address (Prefix FE80/10). While OSPFv3 routes are + normally installed with link-local addresses, an OSPFv3 + implementation advertising a forwarding address MUST advertise a + global IPv6 address. This global IPv6 address may be the next-hop + gateway for an external prefix or may be obtained through some + other method (e.g., configuration). + + External Route Tag + A 32-bit field that MAY be used to communicate additional + information between AS boundary routers. 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. + + 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). When present, Forwarding Address + always comes first, External Route Tag next, and the Referenced Link + State ID last. + + + + +Coltun, et al. Standards Track [Page 81] + +RFC 5340 OSPF for IPv6 July 2008 + + +A.4.8. NSSA-LSAs + + NSSA-LSAs have LS type equal to 0x2007. These LSAs are originated by + AS boundary routers within an NSSA and describe destinations external + to the AS that may or may not be propagated outside the NSSA (refer + to [NSSA]). Other than the LS type, their format is exactly the same + as AS-external LSAs as described in Appendix A.4.7. + + A global IPv6 address MUST be selected as forwarding address for + NSSA-LSAs that are to be propagated by NSSA area border routers. The + selection should proceed the same as OSPFv2 NSSA support [NSSA] with + additional checking to ensure IPv6 link-local address are not + selected. + +A.4.9. Link-LSAs + + Link-LSAs have LS type equal to 0x0008. A router originates a + separate link-LSA for each attached physical link. These LSAs have + link-local flooding scope; they are never flooded beyond the + associated link. 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. + + 3. They allow the router to advertise a collection of Options bits + in the network-LSA originated by the Designated Router on a + broadcast or NBMA link. + + For details concerning the construction of links-LSAs, see + Section 4.4.3.8. + + 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 82] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 Priority | Options | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + +- -+ + | | + +- Link-local Interface Address -+ + | | + +- -+ + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | # prefixes | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | PrefixLength | PrefixOptions | 0 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Address Prefix | + | ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | PrefixLength | PrefixOptions | 0 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Address Prefix | + | ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Link-LSA Format + + Rtr Priority + 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 by the Designated Router on + broadcast or NBMA links. + + + +Coltun, et al. Standards Track [Page 83] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 + Appendix A.4.1. + +A.4.10. 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 local router address, an attached stub + network segment, or an attached transit network segment. In IPv4, + the first two were accomplished via the router's router-LSA and the + last via a network-LSA. In OSPF for IPv6, all addressing information + that was advertised in router-LSAs and network-LSAs has been removed + and is now advertised in intra-area-prefix-LSAs. For details + concerning the construction of intra-area-prefix-LSA, see + Section 4.4.3.9. + + A router can originate multiple intra-area-prefix-LSAs for each + router or transit network. Each such LSA is distinguished by its + unique Link State ID. + + + + + + + + + + + + + + + + + + + + + + +Coltun, et al. Standards Track [Page 84] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 | + | ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Intra-Area-Prefix LSA Format + + # prefixes + The number of IPv6 address prefixes contained in the LSA. + + Referenced LS Type, Referenced Link State ID, and Referenced + Advertising Router + Identifies the router-LSA or network-LSA with which the IPv6 + address prefixes should be associated. If Referenced LS Type is + 0x2001, 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 0x2002, 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 85] + +RFC 5340 OSPF for IPv6 July 2008 + + + The rest of the intra-area-prefix-LSA contains a list of IPv6 + prefixes to be associated with the router or transit link, as well as + their associated costs. + + PrefixLength, PrefixOptions, and Address Prefix + Representation of an IPv6 address prefix, as described in + Appendix A.4.1. + + Metric + The cost of this prefix. Expressed in the same units as the + interface costs in router-LSAs. + +Appendix B. Architectural Constants + + Architectural constants for the OSPF protocol are defined in Appendix + B of [OSPFV2]. The only difference for OSPF for IPv6 is that + DefaultDestination is encoded as a prefix with length 0 (see + Appendix A.4.1). + +Appendix 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. Similarly, 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. + + + + + + + + + +Coltun, et al. Standards Track [Page 86] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 due to a Router ID change, the + router should flush its self-originated LSAs from the routing + domain (see Section 14.1 of [OSPFV2]). Otherwise, they will + persist for up to MaxAge seconds. + + 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 both routing protocol information 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 87] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 area or NSSA. 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 or NSSA area. Also, + virtual links cannot be configured through stub or NSSA areas. + For more information, see Section 3.6 of [OSPFV2] and [NSSA]. + + 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 + [OSPFV2] for more information. + + NSSATranslatorRole and TranslatorStabilityInterval + These area parameters are described in Appendix D of [NSSA]. + Additionally, an NSSA Area Border Router (ABR) is also required to + allow configuration of whether or not an NSSA default route is + advertised in an NSSA-LSA. If advertised, its metric and metric + type are configurable. These requirements are also described in + Appendix D of [NSSA]. + + ImportSummaries + When set to enabled, prefixes external to the area are imported + into the area via the advertisement of inter-area-prefix-LSAs. + When set to disabled, inter-area routes are not imported into the + area. The default setting is enabled. This parameter is only + valid for stub or NSSA areas. + +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. Therefore, these parameters 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. + + + + + + + + + +Coltun, et al. Standards Track [Page 88] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 + ([INTFMIB]). + + IPv6 prefixes + The list of IPv6 prefixes to associate with the link. These will + be advertised in intra-area-prefix-LSAs. + + 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 the 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 + the Designated Router on the attached link. Router Priority is + only configured for interfaces to broadcast and NBMA networks. + + + +Coltun, et al. Standards Track [Page 89] + +RFC 5340 OSPF for IPv6 July 2008 + + + HelloInterval + The length of time, in seconds, between 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 + RouterDeadInterval field. This should be some multiple of the + HelloInterval (e.g., 4). This value again MUST be the same for + all routers attached to a common link. + + LinkLSASuppression + Indicates whether or not origination of a link-LSA is suppressed. + If set to "enabled" and the interface type is not broadcast or + NBMA, the router will not originate a link-LSA for the link. This + implies that other routers on the link will ascertain the router's + next-hop address using a mechanism other than the link-LSA (see + Section 4.8.2). The default value is "disabled" for interface + types described in this specification. It is implicitly + "disabled" if the interface type is broadcast or NBMA. Future + interface types MAY specify a different default. + +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 a point-to-point link with no global IPv6 + addresses 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 + Appendix C.3). Virtual links do not have link-local addresses, but + instead use one of the router's global-scope IPv6 addresses as the IP + source in OSPF protocol packets it sends on 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 transit area intra-area path between the two endpoint routers. + The parameter RxmtInterval may be configured and should be well over + + + +Coltun, et al. Standards Track [Page 90] + +RFC 5340 OSPF for IPv6 July 2008 + + + 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 long. + + 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 that the virtual link traverses (referred to + as the virtual link's transit area). Virtual links cannot be + configured through stub or NSSA areas. Additionally, an Instance ID + may be configured for virtual links from different protocol instances + in order to utilize the same transit area (without requiring + different Router IDs for demultiplexing). + +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 listing 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 the Designated Router + (i.e., those routers whose Router Priority for the network is non- + zero), and then only if no automatic procedure for discovering + neighbors exists: + + 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 the Designated Router must be + defined. When an interface to an NBMA network first comes up, the + router only sends Hello packets to those neighbors eligible to + become the Designated Router until such time that a Designated + Router is elected. + + 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. + + + + + +Coltun, et al. Standards Track [Page 91] + +RFC 5340 OSPF for IPv6 July 2008 + + +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 not defined. + +C.7. Host Route Parameters + + Host prefixes are advertised in intra-area-prefix-LSAs. They + indicate either local 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 + An IPv6 prefix belonging to the directly connected host. This + must not be a valid IPv6 global prefix. + + 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 92] + +RFC 5340 OSPF for IPv6 July 2008 + + +Authors' Addresses + + Rob Coltun + Acoustra Productions + 3204 Brooklawn Terrace + Chevy Chase, MD 20815 + USA + + + Dennis Ferguson + Juniper Networks + 1194 N. Mathilda Avenue + Sunnyvale, CA 94089 + USA + + EMail: dennis@juniper.net + + + John Moy + Sycamore Networks, Inc + 10 Elizabeth Drive + Chelmsford, MA 01824 + USA + + EMail: jmoy@sycamorenet.com + + + Acee Lindem (editor) + Redback Networks + 102 Carric Bend Court + Cary, NC 27519 + USA + + EMail: acee@redback.com + + + + + + + + + + + + + + + + + +Coltun, et al. Standards Track [Page 93] + +RFC 5340 OSPF for IPv6 July 2008 + + +Full Copyright Statement + + Copyright (C) The IETF Trust (2008). + + This document is subject to the rights, licenses and restrictions + contained in BCP 78, and except as set forth therein, the authors + retain all their rights. + + This document and the information contained herein are provided on an + "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS + OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND + THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF + THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Intellectual Property + + The IETF takes no position regarding the validity or scope of any + Intellectual Property Rights or other rights that might be claimed to + pertain to the implementation or use of the technology described in + this document or the extent to which any license under such rights + might or might not be available; nor does it represent that it has + made any independent effort to identify any such rights. Information + on the procedures with respect to rights in RFC documents can be + found in BCP 78 and BCP 79. + + Copies of IPR disclosures made to the IETF Secretariat and any + assurances of licenses to be made available, or the result of an + attempt made to obtain a general license or permission for the use of + such proprietary rights by implementers or users of this + specification can be obtained from the IETF on-line IPR repository at + http://www.ietf.org/ipr. + + The IETF invites any interested party to bring to its attention any + copyrights, patents or patent applications, or other proprietary + rights that may cover technology that may be required to implement + this standard. Please address the information to the IETF at + ietf-ipr@ietf.org. + + + + + + + + + + + + +Coltun, et al. Standards Track [Page 94] + |