↓ Skip to main content
  1. Network Articles/
  2. OSPF Articles/

OSPF NSSA and Totally NSSA

Table of Contents

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.

TermDescription
NSSAAn 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 ABRThe ABR that converts type 7 into type 5. With more than one candidate, the highest router ID wins
Totally NSSAAn 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

ItemType 5 (AS External)Type 7 (NSSA External)
Where it flowsThe whole AS (except stub areas and NSSAs)Only inside that NSSA
OriginatorThe ASBR that brought the external route inAn ASBR inside the NSSA
Forwarding addressMay be 0.0.0.0Must be non-zero when the P bit is set
P bitNonePresent. Says whether an ABR may convert it
show route codeO E1 / O E2O 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.

ItemContent
Area 1R1’s Loopback0 and R1 - R2. R1 is an ASBR redistributing 192.168.1.0/24
Area 0Loopback0 of R2, R3 and R4, plus R2 - R3 and R2 - R4
Area 2Loopback0 of R11, R12 and R13, plus R3 - R11, R4 - R12, R11 - R13 and R12 - R13. This becomes the NSSA
ABRR2 (area 1 to 0), R3 and R4 (area 0 to 2). R3 and R4 are the translator candidates
ASBR inside the NSSAR13. It redistributes 192.168.13.0/24 and holds 192.168.13.1/32 on Loopback1
Observation pointsR13 (from inside the NSSA) and R1 / R2 (from outside)
Link costsDefault cost 1 everywhere, except cost 10 on both ends of R4 - R12
Network typenetwork 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.

STEPChangeWhat it confirms
0Still a normal areaR13’s redistributed route reaches the whole AS as a type 5
1nssa on the five routers of area 2R13’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
2no area 2 on R4How long R3 takes to take over as translator
3R4’s area 2 configuration restoredR4 comes back; how long R3 takes to withdraw, and whether TranslatorStabilityInterval (40 s) applies
4nssa translate type7 always on R3Whether R3, with the lower router ID, can take the role with the Nt bit
5translate type7 always removedStill R4 (the setting is put back)
6nssa default-information-originate on both ABRsA type 7 default (O*N2, P bit clear) appears
7nssa no-summary on both ABRsType 3 stops too and the default becomes a type 3 (O*IA)
8no-summary removedRecovery (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.

R13 show running-config (the router ospf 1 part, at boot)
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.

STEP 0 R1 show route / ping / traceroute (before the NSSA)
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.

STEP 0 R13 show route ospf (normal area)
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/0

Making area 2 an NSSA (STEP 1)

Like a stub area, the NSSA setting goes on every router attached to that area.

The configuration applied in STEP 1
(applied to all five: R3, R4, R11, R12 and R13)
router ospf 1
 area 2
  nssa

The 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.

STEP 1 R13 show ospf database nssa-external and more
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.

STEP 1 R13 show route / ping (no way out)
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.

STEP 1 R2 show ospf database external 192.168.13.0
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.

No.69 LS Update (R13's router-LSA and the type 7) tshark -V
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: 0
Download the pcap of the packet in the tshark output above (No.69, a type 7 LSU)

No.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.

No.84 LS Update (the type 5 R4 translated) tshark -V
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: 0
Download the pcap of the packet in the tshark output above (No.84, the translated type 5)

The 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.

The configuration applied in STEP 2
(R4)
router ospf 1
 no area 2

R3, the one that is left, takes over, and the advertising router of the type 5 becomes 3.3.3.3.

STEP 2 R2 show ospf database external 192.168.13.0 (R3 has taken over)
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.

TimeWherePacketContent
13:14:34.800backboneNo.131R4 flushes seven type 3s and the type 5 at LS age 3600
13:14:34.849area 2No.133R12’s router-LSA is updated (the link to R4 is gone)
13:14:34.850backboneNo.132R4’s area 0 router-LSA is re-originated
13:14:34.917backboneNo.133R3’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.

STEP 2, LS Updates on the backbone side (tshark -t ad, ospf.msg == 4)
  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 Update
Download the pcap of the packet in the tshark output above (No.133, R3's type 5)

When it comes back (STEP 3)

Restoring R4’s area 2 configuration gives the role back to R4, which has the higher router ID.

The configuration applied in STEP 3
(R4)
router ospf 1
 area 2
  nssa
  interface GigabitEthernet0/0/0/1
   cost 10
   network point-to-point
STEP 3 R2 show ospf database external 192.168.13.0 (back on R4)
RP/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.

TimeWherePacketContent
13:18:17.085backboneNo.184R4’s area 0 router-LSA is re-originated
13:18:23.603area 2No.184R4’s area 2 router-LSA appears in area 2
13:18:28.329backboneNo.193R3 withdraws its type 5 (LS age 3600)
13:18:28.335backboneNo.194R4 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.

STEP 3, LS Updates on the backbone side (tshark -t ad, ospf.msg == 4)
  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 Update
Download the pcap of the packet in the tshark output above (No.193, R3's withdrawal)

Setting 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.

The configuration applied in STEP 4
(R3)
router ospf 1
 area 2
  nssa translate type7 always

R3’s show ospf shows always. R4’s output, however, does not change.

STEP 4 R3 show ospf (the Area 2 part)
    Area 2
	Number of interfaces in this area is 1
	It is a NSSA area
        Perform type-7/type-5 LSA translation always
STEP 4 R4 show ospf (the Area 2 part)
    Area 2
	Number of interfaces in this area is 1
	It is a NSSA area
        Perform type-7/type-5 LSA translation

The 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.

STEP 4 R13 show ospf database router 3.3.3.3 / show ospf database external
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.

The configuration applied in STEP 5
(R3)
router ospf 1
 area 2
  no nssa translate type7 always
  nssa

Adding 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 configuration applied in STEP 6
(the two ABRs, R3 and R4)
router ospf 1
 area 2
  nssa default-information-originate

0.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.

STEP 6 R13 show route 0.0.0.0/0 / show ospf database nssa-external 0.0.0.0 / ping
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.

No.406 LS Update (the type 7 default from R3) tshark -V
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: 0
Download the pcap of the packet in the tshark output above (No.406, the type 7 default)

Making it a totally NSSA (STEP 7)

Adding no-summary on the ABRs stops type 3 as well.

The configuration applied in STEP 7
(the two ABRs, R3 and R4)
router ospf 1
 area 2
  nssa no-summary

The 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.

STEP 7 R13 show route ospf / show ospf database (totally NSSA)
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 ms

Restoring (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 configuration applied in STEP 8 (final state)
(the two ABRs, R3 and R4)
router ospf 1
 area 2
  nssa default-information-originate
STEP 8 R13 show route ospf / show route 0.0.0.0/0 / ping (after recovery)
RP/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:

StateRouter (type 1)Summary (type 3)ASBR Summary (type 4)External (type 5)NSSA External (type 7)TotalOSPF routes
Normal area (STEP 0)5142202312
NSSA (STEP 1)5140012011
NSSA plus default (STEP 6)5140032212
Totally NSSA (STEP 7)52 (default)00185

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

ItemStub areaNSSA
Can it hold an ASBRNoYes (carried as type 7)
Taking external routes outNot possibleThe ABR converts type 7 to type 5
Default routeThe ABR inserts it automatically (type 3)Needs an explicit setting (type 7; type 3 with no-summary)
show route codeO*IA 0.0.0.0/0O*N2 0.0.0.0/0
E bit in Options00
N bit in Options01

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

CommandWhere it goesMeaning
nssa under area <ID>Every router attached to that areaMakes the area an NSSA. Miss one router and the N bit mismatch stops the adjacency from forming
nssa default-information-originateABRs onlyInjects a default route as a type 7
nssa no-summaryABRs onlyStops type 3 as well (totally NSSA). The default arrives as a type 3
nssa translate type7 alwaysABRs onlyNSSATranslatorRole = Always in RFC 3101. On XRd 26.1.1 no change beyond the display could be observed
Example (R3, an ABR: NSSA plus a default route)
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).

FileContent
..._show.txtshow 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.txtshow 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.txtshow 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

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R11showlogrun
R12showlogrun
R13showlogrun

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

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R11showlogrun
R12showlogrun
R13showlogrun

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

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R11showlogrun
R12showlogrun
R13showlogrun

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

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R11showlogrun
R12showlogrun
R13showlogrun

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

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R11showlogrun
R12showlogrun
R13showlogrun

This STEP also has show ospf database router 3.3.3.3 and more on R13.

STEP 5: translate type7 always removed — no change

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R11showlogrun
R12showlogrun
R13showlogrun

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

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R11showlogrun
R12showlogrun
R13showlogrun

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

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R11showlogrun
R12showlogrun
R13showlogrun

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

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R11showlogrun
R12showlogrun
R13showlogrun

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

RFCTitleSummary
RFC 3101The OSPF Not-So-Stubby Area (NSSA) OptionThe 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 2328OSPF Version 2The definition of a stub area (section 3.6) and the Options field (appendix A.2).

Related articles