What an NSSA is for
A stub area cannot hold an ASBR (stub areas themselves are covered in OSPF Stub and Totally Stubby Areas). The restriction shows up in an awkward way: the redistribution command is accepted, yet not a single AS External-LSA (type 5) is generated.
In practice you often want an area that keeps external routes out but still has one router in it connected to something external. NSSA (Not-So-Stubby Area) resolves that contradiction: a dedicated LSA, type 7, carries the external route inside the area, and an ABR converts it to a type 5 on the way out.
| Term | Description |
|---|---|
| NSSA | An area that keeps type 5 out (the stub property) yet can carry an external route from an ASBR inside it as a type 7 |
| NSSA External-LSA (type 7) | The LSA an ASBR inside an NSSA originates for an external route. It flows only within that area |
| P bit (Propagate) | A bit in the type 7 Options. When set, an ABR may convert the LSA to a type 5 |
| Translator ABR | The ABR that converts type 7 into type 5. With more than one candidate, the highest router ID wins |
| Totally NSSA | An NSSA with type 3 blocked as well. Cisco’s name for it |
This article makes area 2 of a seven-router, three-area lab an NSSA and then a totally NSSA, to see on real devices where a type 7 turns into a type 5, what happens when the translator ABR goes away, and how an NSSA’s default route differs from a stub area’s.
Type 7 versus type 5
| Item | Type 5 (AS External) | Type 7 (NSSA External) |
|---|---|---|
| Where it flows | The whole AS (except stub areas and NSSAs) | Only inside that NSSA |
| Originator | The ASBR that brought the external route in | An ASBR inside the NSSA |
| Forwarding address | May be 0.0.0.0 | Must be non-zero when the P bit is set |
| P bit | None | Present. Says whether an ABR may convert it |
show route code | O E1 / O E2 | O N1 / O N2 |
Inside an NSSA the external route an ASBR originates travels as a type 7 and stops at the ABR. Other areas cannot see it that way, so the ABR rebuilds it as a type 5 and floods that into the backbone. That is the translation.
Which ABR converts type 7 into type 5
If both ABRs of an NSSA translated, the same external route would exist twice as a type 5. Section 3.1 of RFC 3101 has the translator (NSSATranslatorState = elected) be the one with the highest router ID among the NSSA border routers reachable both inside the NSSA and as ASBRs across the backbone.
Besides the election there is NSSATranslatorRole = Always. An ABR set to Always translates regardless of the other ABRs and announces it by setting the Nt bit in its router-LSA; when an ABR with the Nt bit is present, the other ABRs step down even with a higher router ID. On IOS XR this is nssa translate type7 always.
The handover has a timer of its own. A deposed translator may keep translating for TranslatorStabilityInterval (40 seconds by default), which stops type 5 LSAs from being flushed over and over when the role changes frequently.
The verification below confirms that the election follows the router ID, that the election itself has no wait, and that neither always nor TranslatorStabilityInterval could be observed on XRd 26.1.1.
Lab topology
Three areas, with R13 (an internal router of area 2) redistributing a static route as well. R1 in area 1 and R13 in area 2 are both ASBRs, so “a type 5 coming in from outside” and “a type 7 going out from inside” can be watched side by side.
| Item | Content |
|---|---|
| Area 1 | R1’s Loopback0 and R1 - R2. R1 is an ASBR redistributing 192.168.1.0/24 |
| Area 0 | Loopback0 of R2, R3 and R4, plus R2 - R3 and R2 - R4 |
| Area 2 | Loopback0 of R11, R12 and R13, plus R3 - R11, R4 - R12, R11 - R13 and R12 - R13. This becomes the NSSA |
| ABR | R2 (area 1 to 0), R3 and R4 (area 0 to 2). R3 and R4 are the translator candidates |
| ASBR inside the NSSA | R13. It redistributes 192.168.13.0/24 and holds 192.168.13.1/32 on Loopback1 |
| Observation points | R13 (from inside the NSSA) and R1 / R2 (from outside) |
| Link costs | Default cost 1 everywhere, except cost 10 on both ends of R4 - R12 |
| Network type | network point-to-point on every link, which removes DR/BDR election and the need for Network-LSAs (type 2) |
Nine STEPs run back to back. STEP 2 to 5 are about the translator, STEP 6 to 8 about the default route.
| STEP | Change | What it confirms |
|---|---|---|
| 0 | Still a normal area | R13’s redistributed route reaches the whole AS as a type 5 |
| 1 | nssa on the five routers of area 2 | R13’s route becomes a type 7 and R1’s type 5 no longer enters. The translator R4 rebuilds it as a type 5. No default route appears |
| 2 | no area 2 on R4 | How long R3 takes to take over as translator |
| 3 | R4’s area 2 configuration restored | R4 comes back; how long R3 takes to withdraw, and whether TranslatorStabilityInterval (40 s) applies |
| 4 | nssa translate type7 always on R3 | Whether R3, with the lower router ID, can take the role with the Nt bit |
| 5 | translate type7 always removed | Still R4 (the setting is put back) |
| 6 | nssa default-information-originate on both ABRs | A type 7 default (O*N2, P bit clear) appears |
| 7 | nssa no-summary on both ABRs | Type 3 stops too and the default becomes a type 3 (O*IA) |
| 8 | no-summary removed | Recovery (NSSA plus default route) |
STEP 2 removes the translator with no area 2 rather than shutdown because XRd in CML does not signal a one-sided shutdown to the far end, so the far end’s dead interval (40 seconds) would be added to the measurement. Removing the configuration re-originates the router-LSA immediately, which leaves only the election time.
router ospf 1
router-id 13.13.13.13
redistribute static
area 2
interface Loopback0
passive enable
!
interface GigabitEthernet0/0/0/0
network point-to-point
!
interface GigabitEthernet0/0/0/1
network point-to-point
!
!
!The normal-area starting point (STEP 0)
Before the area becomes an NSSA, the route R13 redistributes flows through the whole AS as an ordinary type 5. From R1 in area 1, 192.168.13.0/24 arrives as type extern 2 and ping succeeds.
RP/0/RP0/CPU0:R1#show route 192.168.13.0/24
Thu Sep 10 04:09:44.332 UTC
Routing entry for 192.168.13.0/24
Known via "ospf 1", distance 110, metric 20, type extern 2
Installed Sep 10 04:03:00.619 for 00:06:43
Routing Descriptor Blocks
10.0.12.2, from 13.13.13.13, via GigabitEthernet0/0/0/0
Route metric is 20
No advertising protos.
RP/0/RP0/CPU0:R1#ping 192.168.13.1 source 1.1.1.1
Thu Sep 10 04:09:44.634 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.13.1 timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/14/17 ms
RP/0/RP0/CPU0:R1#traceroute 192.168.13.1 source 1.1.1.1
Thu Sep 10 04:09:45.489 UTC
Type escape sequence to abort.
Tracing the route to 192.168.13.1
1 10.0.12.2 5 msec 4 msec 4 msec
2 10.0.23.3 10 msec 6 msec 7 msec
3 172.16.3.11 10 msec 9 msec 9 msec
4 10.1.11.13 24 msec * 17 msec R13 likewise has 192.168.1.0/24 from R1 as a type 5.
RP/0/RP0/CPU0:R13#show route ospf
Thu Sep 10 04:09:13.831 UTC
O IA 1.1.1.1/32 [110/5] via 10.1.11.11, 00:06:13, GigabitEthernet0/0/0/0
O IA 2.2.2.2/32 [110/4] via 10.1.11.11, 00:06:26, GigabitEthernet0/0/0/0
O IA 3.3.3.3/32 [110/3] via 10.1.11.11, 00:06:26, GigabitEthernet0/0/0/0
O IA 4.4.4.4/32 [110/5] via 10.1.11.11, 00:06:26, GigabitEthernet0/0/0/0
O IA 10.0.12.0/24 [110/4] via 10.1.11.11, 00:06:26, GigabitEthernet0/0/0/0
O IA 10.0.23.0/24 [110/3] via 10.1.11.11, 00:06:26, GigabitEthernet0/0/0/0
O IA 10.0.24.0/24 [110/4] via 10.1.11.11, 00:06:26, GigabitEthernet0/0/0/0
O 11.11.11.11/32 [110/2] via 10.1.11.11, 00:06:26, GigabitEthernet0/0/0/0
O 12.12.12.12/32 [110/2] via 10.1.12.12, 00:06:32, GigabitEthernet0/0/0/1
O 172.16.3.0/24 [110/2] via 10.1.11.11, 00:06:26, GigabitEthernet0/0/0/0
O 172.16.4.0/24 [110/11] via 10.1.12.12, 00:06:32, GigabitEthernet0/0/0/1
O E2 192.168.1.0/24 [110/20] via 10.1.11.11, 00:06:13, GigabitEthernet0/0/0/0Making area 2 an NSSA (STEP 1)
Like a stub area, the NSSA setting goes on every router attached to that area.
(applied to all five: R3, R4, R11, R12 and R13)
router ospf 1
area 2
nssaThe external route R13 originated disappears from show ospf database external (type 5) and shows up in show ospf database nssa-external (type 7). Type 7/5 translation in the Options is the P bit, and the Forward Address holding R13’s own address 13.13.13.13 is characteristic of a type 7.
RP/0/RP0/CPU0:R13#show ospf database nssa-external
Thu Sep 10 04:14:03.478 UTC
OSPF Router with ID (13.13.13.13) (Process ID 1)
Type-7 AS External Link States (Area 2)
LS age: 198
Options: (No TOS-capability, Type 7/5 translation, DC)
LS Type: AS External Link
Link State ID: 192.168.13.0 (External Network Number)
Advertising Router: 13.13.13.13
LS Seq Number: 80000001
Checksum: 0x17a0
Length: 36
Network Mask: /24
Metric Type: 2 (Larger than any link state path)
TOS: 0
Metric: 20
Forward Address: 13.13.13.13
External Route Tag: 0
RP/0/RP0/CPU0:R13#show route 192.168.1.0/24
Thu Sep 10 04:14:04.184 UTC
% Network not in table
RP/0/RP0/CPU0:R13#show ospf neighbor detail | include Options
Thu Sep 10 04:14:04.324 UTC
Options is 0x58
LLS Options is 0x1 (LR)
Options is 0x58
LLS Options is 0x1 (LR)The same output shows that 192.168.1.0/24 (the type 5 from R1) no longer enters the NSSA. More importantly, IOS XR puts no default route into an NSSA by default. A stub area gets 0.0.0.0/0 from its ABR automatically; an NSSA does not unless you ask for it. Section 2.4 of RFC 3101 says an NSSA border router must originate a default LSA into every NSSA it attaches to, but Cisco’s implementation makes that a configuration option. As a result R13 cannot reach anything outside the area at this point.
RP/0/RP0/CPU0:R13#show route 0.0.0.0/0
Thu Sep 10 04:14:08.006 UTC
% Network not in table
RP/0/RP0/CPU0:R13#show route 192.168.1.0/24
Thu Sep 10 04:14:08.181 UTC
% Network not in table
RP/0/RP0/CPU0:R13#ping 192.168.1.1 source 13.13.13.13
Thu Sep 10 04:14:08.354 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1 timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)From outside the NSSA, 192.168.13.0/24 does arrive. In R2’s LSDB the advertising router of the type 5 is no longer R13 but R4 (4.4.4.4), because R4 translated the type 7. The Forward Address carries the type 7’s value (13.13.13.13) through unchanged.
RP/0/RP0/CPU0:R2#show ospf database external 192.168.13.0
Thu Sep 10 04:14:22.414 UTC
OSPF Router with ID (2.2.2.2) (Process ID 1)
Type-5 AS External Link States
Routing Bit Set on this LSA
LS age: 199
Options: (No TOS-capability, DC)
LS Type: AS External Link
Link State ID: 192.168.13.0 (External Network Number)
Advertising Router: 4.4.4.4
LS Seq Number: 80000001
Checksum: 0xba2b
Length: 36
Network Mask: /24
Metric Type: 2 (Larger than any link state path)
TOS: 0
Metric: 20
Forward Address: 13.13.13.13
External Route Tag: 0
RP/0/RP0/CPU0:R2#show route 192.168.13.0/24
Thu Sep 10 04:14:23.071 UTC
Routing entry for 192.168.13.0/24
Known via "ospf 1", distance 110, metric 20, type extern 2
Installed Sep 10 04:11:04.722 for 00:03:18
Routing Descriptor Blocks
10.0.23.3, from 4.4.4.4, via GigabitEthernet0/0/0/1
Route metric is 20
No advertising protos. The route says from 4.4.4.4, yet its next hop is 10.0.23.3 (R3). Packets are sent toward the forwarding address 13.13.13.13, and the shortest path there runs through R3. Traffic does not have to pass through the ABR that translated — that is what the forwarding address buys you.
No.69 of the area 2 capture is the LS Update in which R13 sends its own router-LSA together with the type 7. The type 7’s Options carry (P) Propagate, and R13’s router-LSA says (N) NSSA translation: No — R13 is not a translator.
Open Shortest Path First
OSPF Header
Version: 2
Message Type: LS Update (4)
Packet Length: 124
Source OSPF Router: 13.13.13.13
Area ID: 0.0.0.2
Checksum: 0x1222 [correct]
Instance ID: Base IPv4 Unicast Instance (0)
Auth Type: Null (0)
Auth Data (none): 0000000000000000
LS Update Packet
Number of LSAs: 2
LSA-type 1 (Router-LSA), len 60
.000 0000 0000 1001 = LS Age (seconds): 9
0... .... .... .... = Do Not Age Flag: 0
Options: 0x28, (DC) Demand Circuits, (N) NSSA
0... .... = DN: Not set
.0.. .... = (O) Opaque: Not set
..1. .... = (DC) Demand Circuits: Supported
...0 .... = (L) LLS Data block: Not Present
.... 1... = (N) NSSA: Supported
.... .0.. = (MC) Multicast: Not capable
.... ..0. = (E) External Routing: Not capable
.... ...0 = (MT) Multi-Topology Routing: No
LS Type: Router-LSA (1)
Link State ID: 13.13.13.13
Advertising Router: 13.13.13.13
Sequence Number: 0x80000005
Checksum: 0x65d4
Length: 60
Flags: 0x02, (E) AS boundary router
0... .... = (H) Host: No
..0. .... = (S) Shortcut-capable ABR: No
...0 .... = (N) NSSA translation: No
.... 0... = (W) Wild-card multicast receiver: No
.... .0.. = (V) Virtual link endpoint: No
.... ..1. = (E) AS boundary router: Yes
.... ...0 = (B) Area border router: No
Number of Links: 3
Type: Stub ID: 13.13.13.13 Data: 255.255.255.255 Metric: 1
Link ID: 13.13.13.13 - IP network/subnet number
Link Data: 255.255.255.255
Link Type: 3 - Connection to a stub network
Number of Metrics: 0 - TOS
0 Metric: 1
Type: Stub ID: 10.1.11.0 Data: 255.255.255.0 Metric: 1
Link ID: 10.1.11.0 - IP network/subnet number
Link Data: 255.255.255.0
Link Type: 3 - Connection to a stub network
Number of Metrics: 0 - TOS
0 Metric: 1
Type: Stub ID: 10.1.12.0 Data: 255.255.255.0 Metric: 1
Link ID: 10.1.12.0 - IP network/subnet number
Link Data: 255.255.255.0
Link Type: 3 - Connection to a stub network
Number of Metrics: 0 - TOS
0 Metric: 1
LSA-type 7 (NSSA AS-External-LSA), len 36
.000 0000 0000 1000 = LS Age (seconds): 8
0... .... .... .... = Do Not Age Flag: 0
Options: 0x28, (DC) Demand Circuits, (P) Propagate
0... .... = DN: Not set
.0.. .... = (O) Opaque: Not set
..1. .... = (DC) Demand Circuits: Supported
...0 .... = (L) LLS Data block: Not Present
.... 1... = (P) Propagate: Set
.... .0.. = (MC) Multicast: Not capable
.... ..0. = (E) External Routing: Not capable
.... ...0 = (MT) Multi-Topology Routing: No
LS Type: NSSA AS-External-LSA (7)
Link State ID: 192.168.13.0
Advertising Router: 13.13.13.13
Sequence Number: 0x80000001
Checksum: 0x17a0
Length: 36
Netmask: 255.255.255.0
1... .... = External Type: Type 2 (metric is larger than any other link state path)
.000 0000 = TOS: 0
Metric: 20
Forwarding Address: 13.13.13.13
External Route Tag: 0No.84 on the backbone side is the type 5 R4 sent after translating. The Options went from 0x28 (DC plus P) on the type 7 to 0x20 (DC only), so the P bit is gone. Netmask, metric, forwarding address and tag all carry through; only the advertising router changes to the ABR that translated.
Open Shortest Path First
OSPF Header
Version: 2
Message Type: LS Update (4)
Packet Length: 64
Source OSPF Router: 4.4.4.4
Area ID: 0.0.0.0 (Backbone)
Checksum: 0x2c7b [correct]
Instance ID: Base IPv4 Unicast Instance (0)
Auth Type: Null (0)
Auth Data (none): 0000000000000000
LS Update Packet
Number of LSAs: 1
LSA-type 5 (AS-External-LSA (ASBR)), len 36
.000 0000 0000 0001 = LS Age (seconds): 1
0... .... .... .... = Do Not Age Flag: 0
Options: 0x20, (DC) Demand Circuits
0... .... = DN: Not set
.0.. .... = (O) Opaque: Not set
..1. .... = (DC) Demand Circuits: Supported
...0 .... = (L) LLS Data block: Not Present
.... 0... = (N) NSSA: Not supported
.... .0.. = (MC) Multicast: Not capable
.... ..0. = (E) External Routing: Not capable
.... ...0 = (MT) Multi-Topology Routing: No
LS Type: AS-External-LSA (ASBR) (5)
Link State ID: 192.168.13.0
Advertising Router: 4.4.4.4
Sequence Number: 0x80000001
Checksum: 0xba2b
Length: 36
Netmask: 255.255.255.0
1... .... = External Type: Type 2 (metric is larger than any other link state path)
.000 0000 = TOS: 0
Metric: 20
Forwarding Address: 13.13.13.13
External Route Tag: 0The nssa command went onto the five routers one at a time, so for a few tens of seconds — until R4 had it — R3 was the translator (No.75 on the backbone side is R3’s type 5 and No.83 withdraws it). Once R4 had the command the role moved to R4, which has the higher router ID, and stayed there.
When the translator goes away (STEP 2)
Removing R4’s area 2 configuration takes the translator out of the NSSA.
(R4)
router ospf 1
no area 2R3, the one that is left, takes over, and the advertising router of the type 5 becomes 3.3.3.3.
RP/0/RP0/CPU0:R2#show ospf database external 192.168.13.0
Thu Sep 10 04:18:04.074 UTC
OSPF Router with ID (2.2.2.2) (Process ID 1)
Type-5 AS External Link States
Routing Bit Set on this LSA
LS age: 210
Options: (No TOS-capability, DC)
LS Type: AS External Link
Link State ID: 192.168.13.0 (External Network Number)
Advertising Router: 3.3.3.3
LS Seq Number: 80000001
Checksum: 0xd811
Length: 36
Network Mask: /24
Metric Type: 2 (Larger than any link state path)
TOS: 0
Metric: 20
Forward Address: 13.13.13.13
External Route Tag: 0
RP/0/RP0/CPU0:R2#show route 192.168.13.0/24
Thu Sep 10 04:18:04.691 UTC
Routing entry for 192.168.13.0/24
Known via "ospf 1", distance 110, metric 20, type extern 2
Installed Sep 10 04:14:34.913 for 00:03:29
Routing Descriptor Blocks
10.0.23.3, from 3.3.3.3, via GigabitEthernet0/0/0/1
Route metric is 20
No advertising protos. Following the handover through the backbone capture gives this sequence. The commit was at 13:14:34.556.
| Time | Where | Packet | Content |
|---|---|---|---|
| 13:14:34.800 | backbone | No.131 | R4 flushes seven type 3s and the type 5 at LS age 3600 |
| 13:14:34.849 | area 2 | No.133 | R12’s router-LSA is updated (the link to R4 is gone) |
| 13:14:34.850 | backbone | No.132 | R4’s area 0 router-LSA is re-originated |
| 13:14:34.917 | backbone | No.133 | R3’s type 5 (3.3.3.3, LS age 2) |
117 milliseconds from R4’s flush to R3’s advertisement, and 0.36 seconds from the commit. The election itself has no wait.
131 2026-09-10 13:14:34.799597 10.0.24.4 → 224.0.0.5 OSPF 294 LS Update
132 2026-09-10 13:14:34.849737 10.0.24.4 → 224.0.0.5 OSPF 122 LS Update
133 2026-09-10 13:14:34.916503 10.0.24.2 → 224.0.0.5 OSPF 98 LS Update
134 2026-09-10 13:14:34.993444 10.0.24.4 → 224.0.0.5 OSPF 258 LS UpdateWhen it comes back (STEP 3)
Restoring R4’s area 2 configuration gives the role back to R4, which has the higher router ID.
(R4)
router ospf 1
area 2
nssa
interface GigabitEthernet0/0/0/1
cost 10
network point-to-pointRP/0/RP0/CPU0:R2#show ospf database external 192.168.13.0
Thu Sep 10 04:22:19.323 UTC
OSPF Router with ID (2.2.2.2) (Process ID 1)
Type-5 AS External Link States
Routing Bit Set on this LSA
LS age: 232
Options: (No TOS-capability, DC)
LS Type: AS External Link
Link State ID: 192.168.13.0 (External Network Number)
Advertising Router: 4.4.4.4
LS Seq Number: 80000001
Checksum: 0xba2b
Length: 36
Network Mask: /24
Metric Type: 2 (Larger than any link state path)
TOS: 0
Metric: 20
Forward Address: 13.13.13.13
External Route Tag: 0
RP/0/RP0/CPU0:R2#show route 192.168.13.0/24
Thu Sep 10 04:22:19.875 UTC
Routing entry for 192.168.13.0/24
Known via "ospf 1", distance 110, metric 20, type extern 2
Installed Sep 10 04:18:28.336 for 00:03:51
Routing Descriptor Blocks
10.0.23.3, from 4.4.4.4, via GigabitEthernet0/0/0/1
Route metric is 20
No advertising protos. The commit was at 13:18:16.702.
| Time | Where | Packet | Content |
|---|---|---|---|
| 13:18:17.085 | backbone | No.184 | R4’s area 0 router-LSA is re-originated |
| 13:18:23.603 | area 2 | No.184 | R4’s area 2 router-LSA appears in area 2 |
| 13:18:28.329 | backbone | No.193 | R3 withdraws its type 5 (LS age 3600) |
| 13:18:28.335 | backbone | No.194 | R4 rebuilds the type 5 (LS age 1) |
4.7 seconds from R4 becoming visible in area 2 to R3’s withdrawal, 6 ms apart from R4’s re-origination. The wait matching TranslatorStabilityInterval (40 seconds by default) could not be observed on XRd 26.1.1.
184 2026-09-10 13:18:17.084675 10.0.24.4 → 224.0.0.5 OSPF 122 LS Update
185 2026-09-10 13:18:17.119971 10.0.24.4 → 224.0.0.5 OSPF 90 LS Update
186 2026-09-10 13:18:17.392864 10.0.24.4 → 224.0.0.5 OSPF 90 LS Update
190 2026-09-10 13:18:23.796171 10.0.24.4 → 224.0.0.5 OSPF 230 LS Update
193 2026-09-10 13:18:28.328734 10.0.24.2 → 224.0.0.5 OSPF 98 LS Update
194 2026-09-10 13:18:28.334724 10.0.24.4 → 224.0.0.5 OSPF 98 LS UpdateSetting translate type7 always (STEP 4 and 5)
nssa translate type7 always goes on R3, the lower router ID, to see whether it can take the role from R4.
(R3)
router ospf 1
area 2
nssa translate type7 alwaysR3’s show ospf shows always. R4’s output, however, does not change.
Area 2
Number of interfaces in this area is 1
It is a NSSA area
Perform type-7/type-5 LSA translation always Area 2
Number of interfaces in this area is 1
It is a NSSA area
Perform type-7/type-5 LSA translationThe advertising router of the type 5 also stays 4.4.4.4, with nothing but its LS age climbing (held for about two minutes). Whether R3 set the Nt bit shows in its router-LSA: R3’s router-LSA in R13’s LSDB stays at LS Seq Number: 80000004, and the area 2 capture holds not a single LS Update carrying R3’s router-LSA after the commit at 13:22:31. R3 never re-originated its router-LSA, so the Nt bit was never set.
RP/0/RP0/CPU0:R13#show ospf database router 3.3.3.3
Thu Sep 10 04:26:17.860 UTC
OSPF Router with ID (13.13.13.13) (Process ID 1)
Router Link States (Area 2)
Routing Bit Set on this LSA
LS age: 946
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 3.3.3.3
Advertising Router: 3.3.3.3
LS Seq Number: 80000004
Checksum: 0x74db
Length: 48
Area Border Router
AS Boundary Router
Number of Links: 2
Link connected to: another Router (point-to-point)
(Link ID) Neighboring Router ID: 11.11.11.11
(Link Data) Router Interface address: 172.16.3.3
Number of TOS metrics: 0
TOS 0 Metrics: 1
Link connected to: a Stub Network
(Link ID) Network/subnet number: 172.16.3.0
(Link Data) Network Mask: 255.255.255.0
Number of TOS metrics: 0
TOS 0 Metrics: 1
RP/0/RP0/CPU0:R13#show ospf database external
Thu Sep 10 04:26:18.489 UTC
OSPF Router with ID (13.13.13.13) (Process ID 1)That differs from Always in RFC 3101, where the Nt bit deposes the other ABRs. On XRd 26.1.1 the command is accepted and appears in show ospf, but it did not make R3 the translator while R4, with the higher router ID, was elected. The reason was not traced, so only the observation is recorded here. Removing the setting in STEP 5 changes nothing either.
(R3)
router ospf 1
area 2
no nssa translate type7 always
nssaAdding a default route to the NSSA (STEP 6)
As STEP 1 showed, IOS XR puts no default route into an NSSA by default. Getting one takes an explicit setting on the ABRs.
(the two ABRs, R3 and R4)
router ospf 1
area 2
nssa default-information-originate0.0.0.0/0 appears on R13. A stub area gave O*IA (an inter-area route via type 3); an NSSA gives O*N2 (an NSSA external route, type 2). The default is carried by a type 7 as well. Note that its Options read No Type 7/5 translation (P bit clear): a default originated by an ABR is not translated or propagated into the backbone.
RP/0/RP0/CPU0:R13#show route 0.0.0.0/0
Thu Sep 10 04:36:59.774 UTC
Routing entry for 0.0.0.0/0
Known via "ospf 1", distance 110, metric 1, candidate default path, type NSSA extern 2
Installed Sep 10 04:35:46.254 for 00:01:13
Routing Descriptor Blocks
10.1.11.11, from 3.3.3.3, via GigabitEthernet0/0/0/0
Route metric is 1
No advertising protos.
RP/0/RP0/CPU0:R13#show ospf database nssa-external 0.0.0.0
Thu Sep 10 04:36:59.959 UTC
OSPF Router with ID (13.13.13.13) (Process ID 1)
Type-7 AS External Link States (Area 2)
Routing Bit Set on this LSA
LS age: 76
Options: (No TOS-capability, No Type 7/5 translation, DC)
LS Type: AS External Link
Link State ID: 0.0.0.0 (External Network Number)
Advertising Router: 3.3.3.3
LS Seq Number: 80000001
Checksum: 0xb2f2
Length: 36
Network Mask: /0
Metric Type: 2 (Larger than any link state path)
TOS: 0
Metric: 1
Forward Address: 0.0.0.0
External Route Tag: 0
LS age: 64
Options: (No TOS-capability, No Type 7/5 translation, DC)
LS Type: AS External Link
Link State ID: 0.0.0.0 (External Network Number)
Advertising Router: 4.4.4.4
LS Seq Number: 80000001
Checksum: 0x940d
Length: 36
Network Mask: /0
Metric Type: 2 (Larger than any link state path)
TOS: 0
Metric: 1
Forward Address: 0.0.0.0
External Route Tag: 0
RP/0/RP0/CPU0:R13#ping 192.168.1.1 source 13.13.13.13
Thu Sep 10 04:37:00.546 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1 timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 13/15/18 ms
RP/0/RP0/CPU0:R13#traceroute 192.168.1.1 source 13.13.13.13
Thu Sep 10 04:37:01.408 UTC
Type escape sequence to abort.
Tracing the route to 192.168.1.1
1 10.1.11.11 6 msec 4 msec 5 msec
2 172.16.3.3 9 msec 7 msec 7 msec
3 10.0.23.2 12 msec 9 msec 9 msec
4 10.0.12.1 14 msec * 13 msec No.406 of the area 2 capture is the type 7 default R3 originated. The Options are 0x20, and the breakdown reads (DC) with (P) Propagate: Not set — the P bit is clear.
Open Shortest Path First
OSPF Header
Version: 2
Message Type: LS Update (4)
Packet Length: 64
Source OSPF Router: 11.11.11.11
Area ID: 0.0.0.2
Checksum: 0x0e7a [correct]
Instance ID: Base IPv4 Unicast Instance (0)
Auth Type: Null (0)
Auth Data (none): 0000000000000000
LS Update Packet
Number of LSAs: 1
LSA-type 7 (NSSA AS-External-LSA), len 36
.000 0000 0000 0010 = LS Age (seconds): 2
0... .... .... .... = Do Not Age Flag: 0
Options: 0x20, (DC) Demand Circuits
0... .... = DN: Not set
.0.. .... = (O) Opaque: Not set
..1. .... = (DC) Demand Circuits: Supported
...0 .... = (L) LLS Data block: Not Present
.... 0... = (P) Propagate: Not set
.... .0.. = (MC) Multicast: Not capable
.... ..0. = (E) External Routing: Not capable
.... ...0 = (MT) Multi-Topology Routing: No
LS Type: NSSA AS-External-LSA (7)
Link State ID: 0.0.0.0
Advertising Router: 3.3.3.3
Sequence Number: 0x80000001
Checksum: 0xb2f2
Length: 36
Netmask: 0.0.0.0
1... .... = External Type: Type 2 (metric is larger than any other link state path)
.000 0000 = TOS: 0
Metric: 1
Forwarding Address: 0.0.0.0
External Route Tag: 0Making it a totally NSSA (STEP 7)
Adding no-summary on the ABRs stops type 3 as well.
(the two ABRs, R3 and R4)
router ospf 1
area 2
nssa no-summaryThe inter-area routes disappear and the default route becomes an O*IA carried by a type 3, the same shape as a totally stubby area. The difference from a totally stubby area is that R13’s own type 7 stays.
RP/0/RP0/CPU0:R13#show route ospf
Thu Sep 10 04:41:10.610 UTC
O*IA 0.0.0.0/0 [110/3] via 10.1.11.11, 00:01:07, GigabitEthernet0/0/0/0
O 11.11.11.11/32 [110/2] via 10.1.11.11, 00:30:17, GigabitEthernet0/0/0/0
O 12.12.12.12/32 [110/2] via 10.1.12.12, 00:30:16, GigabitEthernet0/0/0/1
O 172.16.3.0/24 [110/2] via 10.1.11.11, 00:30:17, GigabitEthernet0/0/0/0
O 172.16.4.0/24 [110/11] via 10.1.12.12, 00:30:16, GigabitEthernet0/0/0/1
RP/0/RP0/CPU0:R13#show ospf database
Thu Sep 10 04:41:10.948 UTC
OSPF Router with ID (13.13.13.13) (Process ID 1)
Router Link States (Area 2)
Link ID ADV Router Age Seq# Checksum Link count
3.3.3.3 3.3.3.3 1839 0x80000004 0x0074db 2
4.4.4.4 4.4.4.4 1369 0x80000005 0x002a04 2
11.11.11.11 11.11.11.11 1819 0x80000007 0x006af4 5
12.12.12.12 12.12.12.12 1368 0x80000009 0x000a2b 5
13.13.13.13 13.13.13.13 1817 0x80000007 0x00373f 5
Summary Net Link States (Area 2)
Link ID ADV Router Age Seq# Checksum
0.0.0.0 3.3.3.3 70 0x80000001 0x00de4b
0.0.0.0 4.4.4.4 60 0x80000001 0x00c065
Type-7 AS External Link States (Area 2)
Link ID ADV Router Age Seq# Checksum Tag
192.168.13.0 13.13.13.13 1825 0x80000001 0x0017a0 0
RP/0/RP0/CPU0:R13#show route 0.0.0.0/0
Thu Sep 10 04:41:11.611 UTC
Routing entry for 0.0.0.0/0
Known via "ospf 1", distance 110, metric 3, candidate default path, type inter area
Installed Sep 10 04:40:03.077 for 00:01:08
Routing Descriptor Blocks
10.1.11.11, from 3.3.3.3, via GigabitEthernet0/0/0/0
Route metric is 3
No advertising protos.
RP/0/RP0/CPU0:R13#ping 192.168.1.1 source 13.13.13.13
Thu Sep 10 04:41:11.753 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1 timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/13/15 msRestoring (STEP 8)
Removing no-summary returns the area to an NSSA with a default route. On IOS XR the keyword after nssa overwrites the previous one, so applying nssa default-information-originate removes no-summary.
(the two ABRs, R3 and R4)
router ospf 1
area 2
nssa default-information-originateRP/0/RP0/CPU0:R13#show route ospf
Thu Sep 10 04:45:12.151 UTC
O*N2 0.0.0.0/0 [110/1] via 10.1.11.11, 00:00:58, GigabitEthernet0/0/0/0
O IA 1.1.1.1/32 [110/5] via 10.1.11.11, 00:01:08, GigabitEthernet0/0/0/0
O IA 2.2.2.2/32 [110/4] via 10.1.11.11, 00:01:08, GigabitEthernet0/0/0/0
O IA 3.3.3.3/32 [110/3] via 10.1.11.11, 00:01:08, GigabitEthernet0/0/0/0
O IA 4.4.4.4/32 [110/5] via 10.1.11.11, 00:01:08, GigabitEthernet0/0/0/0
O IA 10.0.12.0/24 [110/4] via 10.1.11.11, 00:01:08, GigabitEthernet0/0/0/0
O IA 10.0.23.0/24 [110/3] via 10.1.11.11, 00:01:08, GigabitEthernet0/0/0/0
O IA 10.0.24.0/24 [110/4] via 10.1.11.11, 00:01:08, GigabitEthernet0/0/0/0
O 11.11.11.11/32 [110/2] via 10.1.11.11, 00:34:18, GigabitEthernet0/0/0/0
O 12.12.12.12/32 [110/2] via 10.1.12.12, 00:34:18, GigabitEthernet0/0/0/1
O 172.16.3.0/24 [110/2] via 10.1.11.11, 00:34:18, GigabitEthernet0/0/0/0
O 172.16.4.0/24 [110/11] via 10.1.12.12, 00:34:18, GigabitEthernet0/0/0/1
RP/0/RP0/CPU0:R13#show route 0.0.0.0/0
Thu Sep 10 04:45:12.348 UTC
Routing entry for 0.0.0.0/0
Known via "ospf 1", distance 110, metric 1, candidate default path, type NSSA extern 2
Installed Sep 10 04:44:13.334 for 00:00:59
Routing Descriptor Blocks
10.1.11.11, from 3.3.3.3, via GigabitEthernet0/0/0/0
Route metric is 1
No advertising protos.
RP/0/RP0/CPU0:R13#ping 192.168.1.1 source 13.13.13.13
Thu Sep 10 04:45:12.511 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1 timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/14/17 ms
RP/0/RP0/CPU0:R13#traceroute 192.168.1.1 source 13.13.13.13
Thu Sep 10 04:45:13.309 UTC
Type escape sequence to abort.
Tracing the route to 192.168.1.1
1 10.1.11.11 6 msec 5 msec 5 msec
2 172.16.3.3 11 msec 7 msec 7 msec
3 10.0.23.2 10 msec 9 msec 11 msec
4 10.0.12.1 13 msec * 19 msec How the LSDB changed
Counting area 2’s LSDB as R13 sees it, in each state:
| State | Router (type 1) | Summary (type 3) | ASBR Summary (type 4) | External (type 5) | NSSA External (type 7) | Total | OSPF routes |
|---|---|---|---|---|---|---|---|
| Normal area (STEP 0) | 5 | 14 | 2 | 2 | 0 | 23 | 12 |
| NSSA (STEP 1) | 5 | 14 | 0 | 0 | 1 | 20 | 11 |
| NSSA plus default (STEP 6) | 5 | 14 | 0 | 0 | 3 | 22 | 12 |
| Totally NSSA (STEP 7) | 5 | 2 (default) | 0 | 0 | 1 | 8 | 5 |
Making the area an NSSA barely changes the count: type 4 and type 5 go away while type 7 arrives. The big reduction comes with a totally NSSA, where 23 LSAs become 8.
How it differs from a stub area
| Item | Stub area | NSSA |
|---|---|---|
| Can it hold an ASBR | No | Yes (carried as type 7) |
| Taking external routes out | Not possible | The ABR converts type 7 to type 5 |
| Default route | The ABR inserts it automatically (type 3) | Needs an explicit setting (type 7; type 3 with no-summary) |
show route code | O*IA 0.0.0.0/0 | O*N2 0.0.0.0/0 |
| E bit in Options | 0 | 0 |
| N bit in Options | 0 | 1 |
The default route not appearing on its own is the difference that bites in production. Turn an area into an NSSA expecting stub behaviour and nothing in it can reach the outside, exactly as STEP 1 reproduced.
The IOS XR commands
| Command | Where it goes | Meaning |
|---|---|---|
nssa under area <ID> | Every router attached to that area | Makes the area an NSSA. Miss one router and the N bit mismatch stops the adjacency from forming |
nssa default-information-originate | ABRs only | Injects a default route as a type 7 |
nssa no-summary | ABRs only | Stops type 3 as well (totally NSSA). The default arrives as a type 3 |
nssa translate type7 always | ABRs only | NSSATranslatorRole = Always in RFC 3101. On XRd 26.1.1 no change beyond the display could be observed |
router ospf 1
area 2
nssa default-information-originate
interface GigabitEthernet0/0/0/1
network point-to-point
!
!
!On IOS XR the keyword after nssa overwrites the previous one: nssa no-summary removes nssa default-information-originate and vice versa, which show running-config confirms. IOS XE writes them together as area <ID> nssa [no-summary] [default-information-originate]. For configuration examples, see IOS XR OSPF NSSA Configuration (nssa / totally nssa).
Verification config and show output
Every STEP captures these three files per router from all seven routers. The verification config is the ..._run.txt (the final state is the STEP 8 one).
| File | Content |
|---|---|
..._show.txt | show version / show interface description / show route / show route ospf / show ospf / show ospf interface / show ospf interface brief / show ospf neighbor / show ospf neighbor detail / show ospf database / show ospf database router / show ospf database network / show ospf statistics interface / show ospf database nssa-external / show ospf database external / show ospf database summary / show ospf database asbr-summary / show ospf border-routers / show ospf routes / show route 0.0.0.0/0 / show route 192.168.1.0/24 / show route 192.168.13.0/24 / show ospf trace events |
..._log.txt | show logging narrowed to that STEP. A logmsg marker goes in at the start of each STEP and its timestamp is passed to show logging start |
..._run.txt | show running-config at that STEP (that is, the verification config for the STEP) |
The final state has area 2 as an NSSA, with nssa default-information-originate on the ABRs and nssa on the internal routers.
STEP 0: normal area (before the NSSA) — R13’s external route flows through the whole AS as a type 5
| Router | show output | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R11 | show | log | run |
| R12 | show | log | run |
| R13 | show | log | run |
This STEP also has show route, ping and traceroute on R13, show route, ping and traceroute on R1.
STEP 1: nssa on the five routers of area 2 — the type 5 becomes a type 7 and no external route (nor a default) enters the area
| Router | show output | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R11 | show | log | run |
| R12 | show | log | run |
| R13 | show | log | run |
This STEP also has show ospf database nssa-external and more on R13, show route and ping on R13, show ospf database external 192.168.13.0 on R2.
STEP 2: no area 2 on R4 — the translator role moves to R3
| Router | show output | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R11 | show | log | run |
| R12 | show | log | run |
| R13 | show | log | run |
This STEP also has show ospf database external 192.168.13.0 on R2.
STEP 3: R4’s area 2 configuration restored — the translator role returns to R4
| Router | show output | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R11 | show | log | run |
| R12 | show | log | run |
| R13 | show | log | run |
This STEP also has show ospf database external 192.168.13.0 on R2.
STEP 4: nssa translate type7 always on R3 — the translator stays R4
| Router | show output | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R11 | show | log | run |
| R12 | show | log | run |
| R13 | show | log | run |
This STEP also has show ospf database router 3.3.3.3 and more on R13.
STEP 5: translate type7 always removed — no change
| Router | show output | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R11 | show | log | run |
| R12 | show | log | run |
| R13 | show | log | run |
STEP 6: nssa default-information-originate on the two ABRs — O*N2 0.0.0.0/0 arrives and the area can reach outside again
| Router | show output | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R11 | show | log | run |
| R12 | show | log | run |
| R13 | show | log | run |
This STEP also has show route 0.0.0.0/0 and more on R13.
STEP 7: nssa no-summary on the two ABRs (totally NSSA) — type 3 disappears and the default becomes an O*IA
| Router | show output | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R11 | show | log | run |
| R12 | show | log | run |
| R13 | show | log | run |
This STEP also has show route ospf and show ospf database on R13.
STEP 8: no-summary removed (final state) — an NSSA with a default route
| Router | show output | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R11 | show | log | run |
| R12 | show | log | run |
| R13 | show | log | run |
This STEP also has show route ospf and ping on R13, show route 192.168.13.0/24 and ping on R1.
The captures were taken inside area 2 (between R11 and R13) and on the backbone side (between R2 and R4), running across all STEPs and filtered with ip proto 89.
Download the capture from inside area 2 (R11 - R13)
Download the capture from the backbone side (R2 - R4)
References
| RFC | Title | Summary |
|---|---|---|
| RFC 3101 | The OSPF Not-So-Stubby Area (NSSA) Option | The NSSA specification: the N bit (section 2.1), type 7 LSAs and the forwarding address (section 2.3), the P bit (section 2.4), the translator election, NSSATranslatorRole and TranslatorStabilityInterval (section 3.1) and the translation itself (section 3.2). |
| RFC 2328 | OSPF Version 2 | The definition of a stub area (section 3.6) and the Options field (appendix A.2). |
Related articles
- What is OSPF
- OSPF Router ID
- OSPF Behavior When Router IDs Collide
- OSPF Packet Types and Header Format
- OSPF Authentication
- OSPF Neighbor States
- OSPF Options Field
- OSPF DR and BDR
- OSPF Network Types
- OSPF Cost (Metric)
- OSPF Equal-Cost Multi-Path (ECMP)
- OSPF External Routes (Redistributing Static Routes)
- OSPF RFC1583 Compatibility (External Route Selection Rules)
- OSPF Forwarding Address of AS External Routes
- OSPF Multiple Areas and the ABR
- OSPF Virtual Links
- OSPF Stub and Totally Stubby Areas
- OSPF NSSA and Totally NSSA
- OSPF Default Route
- OSPF Route Summarization
- OSPF LSAs and the LSA Header
- OSPF Hello and Dead Intervals
- OSPF Convergence Timers (SPF / LSA Throttling)
- OSPF LSA Refresh and Pacing
- OSPF router-LSA (type 1)
- OSPF network-LSA (type 2)
- OSPF summary-LSA (type 3)
- OSPF ASBR summary-LSA (type 4)
- OSPF AS external-LSA (type 5)
- OSPF NSSA External-LSA (Type 7)