Mental model
Single-area OSPF (covered in OSPF Single-Area) works beautifully for small networks. Every router knows about every link. SPF runs on the full topology.
For 5 routers, that’s trivial. For 500 routers, it’s painful:
- Memory: every router stores every link-state advertisement (LSA) for the whole network.
- CPU: any topology change anywhere triggers SPF recalculation everywhere.
- Convergence: a single flap somewhere causes a global re-SPF.
Multi-area OSPF fixes this by splitting the network into areas. Each area maintains its own link-state database. Routes between areas are summarized at the boundaries. A flap in Area 3 only triggers SPF inside Area 3 — Area 0 and other areas just see the summary update.
That’s the whole concept. The rest is the rules.
The rules of multi-area design
Rule 1 — Every non-backbone area must touch Area 0
Area 0 is the backbone. Every other area (1, 2, 3, …) must have at least one router (ABR) directly connected to area 0. No exceptions.
If two areas need to communicate, they do so through area 0. There’s no shortcut between Area 1 and Area 2 — packets go Area 1 → ABR → Area 0 → ABR → Area 2.
Rule 2 — Area 0 must be contiguous
You can’t split area 0 into disconnected pieces. If a router fails and disconnects part of area 0, the network has a backbone partition — a serious problem.
Virtual link is the (last-resort) workaround: a logical tunnel through a non-backbone area that lets two area-0 chunks talk. Use only to fix a temporary backbone gap; never as a design choice.
Rule 3 — Router roles
Every OSPF router has a role:
| Role | What it is |
|---|---|
| Internal | All interfaces in one area |
| ABR (Area Border Router) | Interfaces in area 0 + at least one other area |
| Backbone | Has at least one interface in area 0 |
| ASBR (Autonomous System Boundary Router) | Redistributes routes from another protocol (OSPF ↔ BGP, OSPF ↔ static, etc.) |
A single router can be both ABR and ASBR (touches area 0, touches non-area-0, and redistributes from another protocol).
LSA types — what each router sees
OSPF traffic between areas is summarized using different LSA types. For CCNA, know these:
| LSA Type | Name | Origin | Scope |
|---|---|---|---|
| 1 | Router LSA | Every router | Within its own area |
| 2 | Network LSA | DR on multi-access network | Within the area |
| 3 | Summary LSA | ABR | Floods between areas (summary of another area’s routes) |
| 4 | Summary ASBR LSA | ABR | Locates an ASBR in another area |
| 5 | External LSA | ASBR | Routes redistributed from outside OSPF |
The big-picture concept: inside an area, you see Types 1 + 2 (the actual topology). Between areas, ABRs translate that to Type 3 summaries — so internal routers in your area learn “prefix X is reachable, AD distance Y, exit via ABR Z” without seeing the actual topology of the other area.
Area types — choosing the right one
OSPF supports several special area types, each restricting which LSAs flow in. Less LSA = less memory + CPU on the area’s routers.
| Area type | Allowed LSAs |
|---|---|
| Normal area | Types 1, 2, 3, 4, 5 |
| Stub area | Types 1, 2, 3 (blocks 4, 5 — no external routes; ABR injects a default) |
| Totally Stubby | Types 1, 2 + a single default route (blocks 3, 4, 5) — Cisco-proprietary |
| NSSA (Not-So-Stubby) | Stub + allows redistribution via Type 7 LSAs inside the area |
| Totally NSSA | NSSA + blocks Type 3 (Cisco-proprietary) |
For CCNA: know Normal, Stub, Totally Stubby, and NSSA exist. Memorize the LSA types each blocks.
Commands
Add a second area
! On the ABR — interfaces in area 0 + area 1
R-ABR(config)# router ospf 1
R-ABR(config-router)# router-id 1.1.1.1
R-ABR(config-router)# network 10.0.0.0 0.0.0.255 area 0 ! backbone-side
R-ABR(config-router)# network 192.168.1.0 0.0.0.255 area 1 ! area 1 side
Configure a stub area
! On EVERY router in the stub area (including the ABR)
R-ABR(config-router)# area 1 stub
! Totally stubby — only on the ABR
R-ABR(config-router)# area 1 stub no-summary
Verify
R1# show ip ospf neighbor
R1# show ip ospf database
R1# show ip ospf database summary ! Type 3 LSAs
R1# show ip ospf border-routers ! ABRs / ASBRs in the network
R1# show ip route ospf ! routes learned via OSPF (with O, O IA, O E1, O E2 markers)
The route-table markers tell you how a route was learned:
- O — Intra-area (same area)
- O IA — Inter-area (different area, learned via Type 3)
- O E1 / O E2 — External (Type 5, redistributed)
- O N1 / O N2 — NSSA external (Type 7)
Common mistakes
-
Forgetting area 0. A two-area design where the second area is “just connected somewhere” → traffic doesn’t flow between areas because area 0 isn’t between them.
-
Disconnected area 0. Don’t design this on purpose. If you find yourself there, virtual link is the patch — but redesign.
-
Stub area with a redistributing ASBR. Stub blocks external routes (Type 5). If you need to redistribute from BGP inside that area, use NSSA instead.
-
Mismatched stub config. Every router in a stub area must agree it’s stub. If R1 thinks area 1 is stub and R2 thinks area 1 is normal, they won’t form an adjacency.
-
Treating area number = priority. Area numbers are identifiers, not priorities. Area 5 isn’t worse than Area 1. The only special area is 0.
-
Using area 0 as a non-backbone area. Area 0 must be the backbone. You can’t “rename” it. If you’ve grown beyond your original area design, restructure rather than redefining area 0.
-
Forgetting Type 7 → Type 5 conversion at the ABR. NSSA Type 7 LSAs only live inside the NSSA area. The ABR converts them to Type 5 when sending into area 0. Misunderstand this and you wonder where the routes went.
Lab to try tonight
- Three areas: area 0 (R1, R2), area 1 (R1, R3), area 2 (R2, R4).
- R1 and R2 are ABRs (each in area 0 + a non-backbone area).
- Configure OSPF, verify all routers form adjacencies and reach FULL state with their neighbors.
- From R3 (area 1), traceroute to a loopback on R4 (area 2). The path should go R3 → R1 → R2 → R4 (through area 0).
- Run
show ip ospf database summaryon R3 — see the Type 3 LSAs for area 2’s networks. - Make area 1 a stub:
area 1 stubon R1 and R3. Verify R3 now has a default route (O*IA) instead of external routes. - Bonus: redistribute a static route on R5 (in area 2) into OSPF. Verify O E2 appears in R3’s table.
Cheat strip
| Concept | Plain English |
|---|---|
| Area 0 | Backbone. Every area must touch it. |
| ABR | Router with interfaces in 2+ areas. Translates between them. |
| ASBR | Router that redistributes from another routing source |
| LSA Type 1 | Router LSA (within area) |
| LSA Type 3 | Summary LSA from ABR (between areas) |
| LSA Type 5 | External LSA from ASBR |
| Stub area | Blocks external LSAs (4, 5). Default route from ABR. |
| Totally Stubby | Stub + blocks inter-area too. Just a default. Cisco-only. |
| NSSA | Stub + allows redistribution via Type 7 inside it |
| Virtual link | Tunnel through non-backbone to fix area-0 partition. Last resort. |