Everything inside one OSPF area is radical transparency: every router holds every LSA and recomputes SPF whenever anything changes. Areas exist to put walls around that transparency. Inside the walls, full detail; across them, only reachability summaries — smaller databases, contained SPF runs, and the option to summarise or filter at the boundary. The rule that holds it together: every area must touch area 0, the backbone, and inter-area traffic flows spoke → backbone → spoke. Routers spanning area 0 and another area are Area Border Routers (ABRs); routers redistributing external routes into OSPF are Autonomous System Boundary Routers (ASBRs).
The LSA types that matter
- Type 1 (Router) — one per router per area: its links, costs and neighbours. Flooded only within the area.
- Type 2 (Network) — generated by the DR of each multi-access segment, listing the routers attached to it. Intra-area only.
- Type 3 (Summary) — an ABR's representation of one area's prefixes to another area. Despite the name, no summarisation happens unless configured with area range — by default it is one Type 3 per prefix.
- Type 4 (ASBR Summary) — an ABR telling other areas how to reach an ASBR that lives outside their area; glue for resolving Type 5s.
- Type 5 (External) — redistributed routes, flooded domain-wide (everywhere except stub-family areas). E2 metrics (default) stay fixed across the domain; E1 metrics accumulate internal cost.
- Type 7 (NSSA External) — external routes originated inside a not-so-stubby area, translated to Type 5 by the NSSA ABR.
Stub areas: trading knowledge for size
A branch area with one exit gains nothing from carrying ten thousand external LSAs. Stub areas block Type 5s and substitute a default route from the ABR; totally stubby areas (a Cisco extension) also block Type 3s, leaving little beyond intra-area routes plus the default. NSSA is the pragmatic hybrid: external knowledge stays out, but a local ASBR — say, a branch router redistributing a handful of statics — can still inject routes as Type 7. The area type is part of the hello contract: every router in the area must agree it is stub or NSSA, or adjacencies simply do not form.
! all routers in area 10:R(config-router)# area 10 stub! ABR only, to make it totally stubby:ABR(config-router)# area 10 stub no-summary! summarise area 10's prefixes toward the backbone:ABR(config-router)# area 10 range 10.10.0.0 255.255.0.0
Reading the database
show ip ospf database prints the LSDB grouped exactly along these type lines — router link states, net link states, summary net link states, and so on, per area. When an inter-area route is missing, walk the chain the way the protocol resolves it: is the Type 1 present in the source area, did the ABR originate the Type 3, does a Type 4 exist for the ASBR, is the Type 5 in the database but failing its forwarding-address check? Every inter-area and external routing problem in OSPF is a broken link somewhere in that chain, and the database output shows precisely which.
Design guidance has relaxed since the 50-routers-per-area folklore of the 1990s — modern control planes comfortably run areas of hundreds of routers — but the architecture still earns its keep at boundaries: summarisation is only possible at ABRs and ASBRs, and query—er, SPF—containment still matters on flappy WAN edges. Area 0 as a stable, well-summarised core with purposeful areas at the edges remains the shape of every serious OSPF design.