Advancing from last week’s discussion on OSPF network types, today’s topic is a source of considerable confusion for many people new to OSPF: area types. Recall that a large OSPF domain is typically broken into separate areas to restrict the propagation of routes and reduce the amount of resources required by each router to maintain its link state database. Each area is connected to a central backbone, area zero.
OSPF relies on several types of Link State Advertisements (LSAs) to communicate link state information between neighbors. A brief review of the most applicable LSA types:
- Type 1 – Represents a router
- Type 2 – Represents the pseudonode (designated router) for a multiaccess link
- Type 3 – A network link summary (internal route)
- Type 4 – Represents an ASBR
- Type 5 – A route external to the OSPF domain
- Type 7 – Used in stub areas in place of a type 5 LSA
LSA types 1 and 2 are found in all areas, and are never flooded outside of an area. Whether the other types of LSAs are advertised within an area depends on the area type, and there are many:
- Backbone area (area 0)
- Standard area
- Stub area
- Totally stubby area
- Not-so-stubby area (NSSA)
Let’s begin by examining a standard area. Note that the backbone area is essentially a standard area which has been designated as the central point to which all other areas connect, so a discussion of standard area behavior largely applies to the backbone area as well.
In the example above, router 2 acts as the area border router (ABR) between a standard area and the backbone. R3 is redistributing routes from an external domain, and is therefore designated as an autonomous system boundary router (ASBR).
As mentioned, type 1 and 2 LSAs are being flooded between routers sharing a common area. This applies to all area types, as these LSAs are used to build an area’s shortest-path tree, and consequently only relevant to a single area. Type 3 and 5 LSAs, which describe internal and external IP routes, respectively, are flooded throughout the backbone and all standard areas. External routes are generated by an ASBR, while internal routes can be generated by any OSPF router.
Note the peculiar case of type 4 LSAs. These LSAs are injected into the backbone by the ABR of an area which contains an ASBR. This is to ensure all other routers in the OSPF domain can reach the ASBR.
Standard areas work fine and ensure optimal routing since all routers know about all routes. However, there are often situations when an area has limited access to the rest of the network, and maintaining a full link state database is unnecessary. Additionally, an area may contain low-end routers incapable of maintaining a full database for a large OSPF network. Such areas can be configured to block certain LSA types and become lightweight stub areas.
In this next example, R2 and R3 share a common stub area. Instead of propagating external routes (type 5 LSAs) into the area, the ABR injects a type 3 LSA containing a default route into the stub area. This ensures that routers in the stub area will be able to route traffic to external destinations without having to maintain all of the individual external routes. Because external routes are not received by the stub area, ABRs also do not forward type 4 LSAs from other areas into the stub.
For an area to become a stub, all routers belonging to it must be configured to operate as such. Stub routers and non-stub routers will not form adjacencies.
Router(config-router)# area 10 stub
This idea of substituting a single default route for many specific routes can be applied to internal routes as well, which is the case of totally stubby areas.
Totally Stubby Areas
Like stub areas, totally stubby areas do not receive type 4 or 5 LSAs from their ABRs. However, they also do not receive type 3 LSAs; all routing out of the area relies on the single default route injected by the ABR.
A stub area is extended to a totally stubby area by configuring all of its ABRs with the
Router(config-router)# area 10 stub no-summary
Stub and totally stubby areas can certainly be convenient to reduce the resource utilization of routers in portions of the network not requiring full routing knowledge. However, neither type can contain an ASBR, as type 4 and 5 LSAs are not permitted inside the area. To solve this problem, and in what is arguably the worst naming decision ever made, Cisco introduced the concept of a not-so-stubby area (NSSA).
An NSSA makes use of type 7 LSAs, which are essentially type 5 LSAs in disguise. This allows an ASBR to advertise external links to an ABR, which converts the type 7 LSAs into type 5 before flooding them to the rest of the OSPF domain.
An NSSA can function as either a stub or totally stubby area. To designate a normal (stub) NSSA, all routers in the area must be so configured:
Router(config-router)# area 10 nssa
Type 3 LSAs will pass into and out of the area. Unlike a normal stub area, the ABR will not inject a default route into an NSSA unless explicitly configured to do so. As traffic cannot be routed to external destinations without a default route, you’ll probably want to include one by appending
default-information-originate (thanks to Adam for pointing this out).
Router(config-router)# area 10 nssa default-information-originate
To expand an NSSA to function as a totally stubby area, eliminating type 3 LSAs, all of its ABRs must be configured with the
Router(config-router)# area 10 nssa no-summary
The ABR of a totally stubby NSSA (or not-so-totally-stubby area, if you prefer) injects a default route without any further configuration.
- Standard areas can contain LSAs of type 1, 2, 3, 4, and 5, and may contain an ASBR. The backbone is considered a standard area.
- Stub areas can contain type 1, 2, and 3 LSAs. A default route is substituted for external routes.
- Totally stubby areas can only contain type 1 and 2 LSAs, and a single type 3 LSA. The type 3 LSA describes a default route, substituted for all external and inter-area routes.
- Not-so-stubby areas implement stub or totally stubby functionality yet contain an ASBR. Type 7 LSAs generated by the ASBR are converted to type 5 by ABRs to be flooded to the rest of the OSPF domain.