メインコンテンツへスキップ
  1. ネットワーク 記事一覧/
  2. OSPF記事一覧/

OSPFのNSSAとトータリーNSSA

目次

NSSAとは

スタブエリアとトータリースタブエリアでは、スタブエリアの制約として「スタブエリアにASBRは置けない」ことを実機で確認しました。再配布の設定自体は通るのに、AS External-LSA(Type 5)が1つも生成されないという形で効く制約です。

現場では「外部経路は入れたくないが、そのエリアの中に外部と繋がるルータが1台だけある」という構成がよくあります。この矛盾を解くのがNSSA(Not-So-Stubby Area、あまりスタブでないエリア)です。Type 7という専用のLSAで外部経路をエリア内に持ち込み、ABRがそれをType 5へ変換して外へ出します

用語説明
NSSAType 5を入れない(スタブの性質)まま、エリア内のASBRが出す外部経路をType 7として運べるエリア
NSSA External-LSA(Type 7)NSSA内のASBRが出す外部経路のLSA。そのエリアの中だけを流れる
Pビット(Propagate)Type 7のOptionsにあるビット。立っているとABRがType 5へ変換してよいという印
変換役のABRType 7をType 5へ変換するABR。複数いる場合はルータIDが最大の1台が選ばれる
トータリーNSSANSSAからさらにType 3も止めたもの。Ciscoの呼び名

この記事では、7台の3エリア構成のうちarea 2をNSSA・トータリーNSSAにして、Type 7がどこでType 5に変わるのか変換役のABRが落ちるとどうなるのかNSSAのデフォルト経路がスタブとどう違うのかを実機で確認します。

Type 7とType 5の違い

項目Type 5(AS External)Type 7(NSSA External)
流れる範囲AS全体(スタブとNSSAを除く)そのNSSAの中だけ
広告元外部経路を持ち込んだASBRNSSA内のASBR
Forwarding Address0.0.0.0のこともあるPビットが立つときは非0が必須
Pビットなしあり。ABRが変換してよいかどうかを示す
show routeの表示O E1 / O E2O N1 / O N2

NSSAの中では、ASBRが出した外部経路がType 7として流れ、ABRの手前で止まります。そのままでは他のエリアから見えないので、ABRがType 7をType 5に作り直してバックボーンへ流します。これが「変換(translation)」です。

検証構成

スタブエリアの記事と同じ3エリア構成に、R13(area 2の内部ルータ)でもスタティックルートを再配布する設定を加えました。これでエリア1のR1エリア2のR13の2台がASBRになり、「外から入ってくるType 5」と「中から出ていくType 7」を1つの構成で並べて観測できます。

項目内容
エリア1R1のLoopback0とR1 - R2間。R1はASBR192.168.1.0/24を再配布
エリア0R2・R3・R4のLoopback0と、R2 - R3間、R2 - R4間
エリア2R11・R12・R13のLoopback0と、R3 - R11間、R4 - R12間、R11 - R13間、R12 - R13間。ここをNSSAにする
ABRR2(エリア1 ↔ 0)、R3・R4(エリア0 ↔ 2)。R3とR4が変換役の候補
NSSA内のASBRR13192.168.13.0/24を再配布し、Loopback1に192.168.13.1/32を持つ
観測点R13(NSSAの中から見る)とR1・R2(NSSAの外から見る)
リンクのコストすべて既定のコスト1。R4 - R12間だけ両端cost 10
ネットワークタイプ全リンクnetwork point-to-point。DR/BDRの選出がなくなり、Network-LSA(Type 2)を生成する必要もなくなる
R13 show running-config(router ospf 1の部分、起動時)
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
  !
 !
!

通常エリアの状態(STEP 0)

NSSAにする前は、R13の再配布した経路はふつうのType 5としてAS全体に流れます。エリア1のR1から見ると、192.168.13.0/24type extern 2・広告元13.13.13.13(R13自身)で届いています。

STEP 0 R1 show route / ping / traceroute(NSSAにする前)
RP/0/RP0/CPU0:R1#show route 192.168.13.0/24
Mon Sep  7 14:41:31.645 UTC

Routing entry for 192.168.13.0/24
  Known via "ospf 1", distance 110, metric 20, type extern 2
  Installed Sep  7 14:39:16.133 for 00:02:15
  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
Mon Sep  7 14:41:31.804 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 = 14/14/17 ms
RP/0/RP0/CPU0:R1#traceroute 192.168.13.1 source 1.1.1.1
Mon Sep  7 14:41:32.943 UTC

Type escape sequence to abort.
Tracing the route to 192.168.13.1

 1  10.0.12.2 6 msec  5 msec  5 msec 
 2  10.0.23.3 8 msec  7 msec  7 msec 
 3  172.16.3.11 11 msec  12 msec  10 msec 
 4  10.1.11.13 21 msec  *  16 msec 

R13側にも、R1が出した192.168.1.0/24がType 5として届いています。

STEP 0 R13 show route ospf(通常エリア)
RP/0/RP0/CPU0:R13#show route ospf
Mon Sep  7 14:44:15.136 UTC

O IA 1.1.1.1/32 [110/5] via 10.1.11.11, 00:04:59, GigabitEthernet0/0/0/0
O IA 2.2.2.2/32 [110/4] via 10.1.11.11, 00:05:09, GigabitEthernet0/0/0/0
O IA 3.3.3.3/32 [110/3] via 10.1.11.11, 00:05:09, GigabitEthernet0/0/0/0
O IA 4.4.4.4/32 [110/5] via 10.1.11.11, 00:05:03, GigabitEthernet0/0/0/0
O IA 10.0.12.0/24 [110/4] via 10.1.11.11, 00:05:09, GigabitEthernet0/0/0/0
O IA 10.0.23.0/24 [110/3] via 10.1.11.11, 00:05:09, GigabitEthernet0/0/0/0
O IA 10.0.24.0/24 [110/4] via 10.1.11.11, 00:05:09, GigabitEthernet0/0/0/0
O    11.11.11.11/32 [110/2] via 10.1.11.11, 00:05:15, GigabitEthernet0/0/0/0
O    12.12.12.12/32 [110/2] via 10.1.12.12, 00:05:01, GigabitEthernet0/0/0/1
O    172.16.3.0/24 [110/2] via 10.1.11.11, 00:05:15, GigabitEthernet0/0/0/0
O    172.16.4.0/24 [110/11] via 10.1.12.12, 00:05:01, GigabitEthernet0/0/0/1
O E2 192.168.1.0/24 [110/20] via 10.1.11.11, 00:04:59, GigabitEthernet0/0/0/0

area 2をNSSAにする(STEP 1)

NSSAの設定も、スタブと同じくそのエリアに接続する全ルータに入れます。

STEP 1で投入した設定
(R3・R4・R11・R12・R13の5台すべてに投入する)
router ospf 1
 area 2
  nssa

R13が出していた外部経路は、show ospf database external(Type 5)からは消え、show ospf database nssa-external(Type 7)に現れます。OptionsにType 7/5 translationとあるのがPビットForward Addressに自分のアドレス13.13.13.13が入っているのがType 7の特徴です。

STEP 1 R13 show ospf database nssa-external ほか
RP/0/RP0/CPU0:R13#show ospf database nssa-external
Mon Sep  7 14:47:45.728 UTC


            OSPF Router with ID (13.13.13.13) (Process ID 1)

		Type-7 AS External Link States (Area 2)

  LS age: 16
  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
Mon Sep  7 14:47:46.368 UTC

% Network not in table

RP/0/RP0/CPU0:R13#show ospf neighbor detail | include Options
Mon Sep  7 14:47:46.659 UTC
    Options is 0x58  
    LLS Options is 0x1 (LR)
    Options is 0x58  
    LLS Options is 0x1 (LR)

同じ出力の後半にあるとおり、192.168.1.0/24(R1が出したType 5)はNSSAに入らなくなります。そして重要なのは、NSSAには既定でデフォルト経路が入らないことです。スタブエリアならABRが自動で0.0.0.0/0を入れてくれますが、NSSAにはその規定がありません。結果として、この時点でR13からエリア外への通信はできなくなります。

STEP 1 R13 show route / ping / traceroute(外へ出られない)
RP/0/RP0/CPU0:R13#show route 192.168.1.0/24
Mon Sep  7 14:48:25.373 UTC

% Network not in table

RP/0/RP0/CPU0:R13#ping 192.168.1.1 source 13.13.13.13
Mon Sep  7 14:48:25.523 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)
RP/0/RP0/CPU0:R13#traceroute 192.168.1.1 source 13.13.13.13
Mon Sep  7 14:48:36.361 UTC

Type escape sequence to abort.
Tracing the route to 192.168.1.1

 1  13.13.13.13 !N  *  !N 

一方、NSSAの外から見ると192.168.13.0/24はちゃんと届いています。R2のLSDBを見ると、Type 5の広告元がR13ではなくR4(4.4.4.4)に変わっています。R4がType 7をType 5に変換したためです。Forward AddressはType 7の値(13.13.13.13)がそのまま引き継がれています。

STEP 1 R2 show ospf database external 192.168.13.0
RP/0/RP0/CPU0:R2#show ospf database external 192.168.13.0
Mon Sep  7 14:47:59.254 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: 19
  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
Mon Sep  7 14:47:59.818 UTC

Routing entry for 192.168.13.0/24
  Known via "ospf 1", distance 110, metric 20, type extern 2
  Installed Sep  7 14:47:40.739 for 00:00:19
  Routing Descriptor Blocks
    10.0.23.3, from 4.4.4.4, via GigabitEthernet0/0/0/1
      Route metric is 20
  No advertising protos. 

経路のfrom4.4.4.4ですが、ネクストホップは10.0.23.3(R3)です。パケットの宛先はForwarding Addressの13.13.13.13で、そこへの最短経路がR3経由だからです。変換したABRを必ず通るわけではないという点が、Forwarding Addressの効いているところです。

エリア2でキャプチャーしたLS Updateの中身も見ておきます。添付のキャプチャーのNo.31が、R13が自分のRouter-LSAとType 7を送ったものです。Type 7のOptionsに(P) Propagateが立っていること、R13のRouter-LSAには(N) NSSA translation: No(自分は変換役ではない)と出ていることが分かります。

No.31 LS Update(R13のRouter-LSAと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: 0x1231 [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 0001 = LS Age (seconds): 1
            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 0001 = LS Age (seconds): 1
            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
上のtshark出力のパケット(No.31 Type 7のLSU)のpcapをダウンロード

バックボーン側(R2 - R4間)のキャプチャーには、R4が変換して送り出したType 5が残っています。

No.40 LS Update(R4が変換して出したType 5)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
上のtshark出力のパケット(No.40 変換後のType 5)のpcapをダウンロード

誰がType 7をType 5に変換するのか

NSSAにABRが2台あるとき、両方が変換すると同じ外部経路のType 5が2つできてしまいます。RFC 3101のSection 3.1は、到達可能なNSSAのABRのうちルータIDが最大の1台が変換役(NSSATranslatorState = elected)になると定めています。今回はR3(3.3.3.3)とR4(4.4.4.4)が候補で、R4が選ばれました

変換役のABRが落ちたら(STEP 2)

R4のarea 2側のリンクを落として、変換役がいなくなった状況を作ります。

STEP 2で投入した設定
(R4)
interface GigabitEthernet0/0/0/1
 shutdown

残ったR3が変換役を引き継ぎ、Type 5の広告元が3.3.3.3に変わります。

STEP 2 R2 show ospf database external 192.168.13.0(R3が引き継いだ)
RP/0/RP0/CPU0:R2#show ospf database external 192.168.13.0
Mon Sep  7 14:56:39.933 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: 67
  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
Mon Sep  7 14:56:40.828 UTC

Routing entry for 192.168.13.0/24
  Known via "ospf 1", distance 110, metric 20, type extern 2
  Installed Sep  7 14:55:34.333 for 00:01:06
  Routing Descriptor Blocks
    10.0.23.3, from 3.3.3.3, via GigabitEthernet0/0/0/1
      Route metric is 20
  No advertising protos. 

変換役が戻る(STEP 3)

R4のリンクを戻すと、ルータIDの大きいR4が変換役に復帰します。

STEP 3で投入した設定
(R4)
interface GigabitEthernet0/0/0/1
 no shutdown
STEP 3 R2 show ospf database external 192.168.13.0(R4に戻った)
RP/0/RP0/CPU0:R2#show ospf database external 192.168.13.0
Mon Sep  7 15:01:35.330 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: 98
  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

この交代の様子は、バックボーン側のキャプチャーに時刻付きで残っています。tsharkでLS Updateだけを抜き出すと、次の順序で並んでいます。

パケット相対時刻内容
No.35.2秒R4が自分の変換したType 5を取り消す(LS Age 3600)
No.1543.4秒R3が変換役を引き継ぐ(約38秒後)
No.78307.9秒R3が変換を降りる(メトリック16777215=LSInfinityで取り消し)
No.79307.9秒R4が変換役に復帰(No.78との差は7ミリ秒)

引き継ぎに約38秒かかっているのは、RFC 3101が定めるTranslatorStabilityInterval(既定40秒)によるものです。変換役が頻繁に入れ替わってType 5がフラッピングするのを防ぐための待ち時間です。逆に、ルータIDの大きいR4が戻ってきたときは待ち時間なしで即座に交代しています。

変換役の交代(tshark の ospf.msg == 4 フィルタ)
    3   5.184670    10.0.24.4 → 224.0.0.5    OSPF 294 LS Update
    4   5.234330    10.0.24.4 → 224.0.0.5    OSPF 122 LS Update
    5   5.481905    10.0.24.4 → 224.0.0.5    OSPF 258 LS Update
   15  43.396324    10.0.24.2 → 224.0.0.5    OSPF 98 LS Update
   71 296.678527    10.0.24.4 → 224.0.0.5    OSPF 122 LS Update
   72 296.839300    10.0.24.4 → 224.0.0.5    OSPF 90 LS Update
   74 300.576839    10.0.24.4 → 224.0.0.5    OSPF 230 LS Update
   78 307.853064    10.0.24.2 → 224.0.0.5    OSPF 98 LS Update
   79 307.859918    10.0.24.4 → 224.0.0.5    OSPF 98 LS Update
変換役の交代(STEP 2・3)のキャプチャーをダウンロード

NSSAにデフォルト経路を入れる(STEP 4)

STEP 1で見たとおり、NSSAには既定でデフォルト経路が入りません。入れるにはABRで明示的に設定します。

STEP 4で投入した設定
(R3・R4のABR 2台)
router ospf 1
 area 2
  nssa default-information-originate

R13に0.0.0.0/0が現れます。スタブエリアのときはO*IA(Type 3のエリア間経路)でしたが、NSSAではO*N2(NSSA外部経路のタイプ2)になります。デフォルト経路もType 7で運ばれます。広告元のOptionsがNo Type 7/5 translation(Pビットなし)になっているのもポイントで、ABRが出したデフォルトはバックボーンへ変換・伝播されません

STEP 4 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
Mon Sep  7 15:05:32.019 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  7 15:05:07.378 for 00:00:24
  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
Mon Sep  7 15:05:32.297 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: 27
  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: 13
  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
Mon Sep  7 15:05:32.871 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/20/45 ms
RP/0/RP0/CPU0:R13#traceroute 192.168.1.1 source 13.13.13.13
Mon Sep  7 15:05:33.758 UTC

Type escape sequence to abort.
Tracing the route to 192.168.1.1

 1  10.1.11.11 6 msec  6 msec  4 msec 
 2  172.16.3.3 8 msec  7 msec  7 msec 
 3  10.0.23.2 10 msec  9 msec  10 msec 
 4  10.0.12.1 14 msec  *  15 msec 

トータリーNSSAにする(STEP 5)

ABRにno-summaryを足すと、Type 3も止まります。

STEP 5で投入した設定
(R3・R4のABR 2台)
router ospf 1
 area 2
  nssa no-summary

エリア間経路が消え、デフォルト経路はType 3のO*IAに変わります(トータリースタブと同じ形です)。R13自身が出しているType 7はそのまま残る点が、トータリースタブとの違いです。

STEP 5 R13 show route ospf / show ospf database(トータリーNSSA)
RP/0/RP0/CPU0:R13#show route ospf
Mon Sep  7 15:09:29.716 UTC

O*IA 0.0.0.0/0 [110/3] via 10.1.11.11, 00:00:28, GigabitEthernet0/0/0/0
O    11.11.11.11/32 [110/2] via 10.1.11.11, 00:21:56, GigabitEthernet0/0/0/0
O    12.12.12.12/32 [110/2] via 10.1.12.12, 00:21:51, GigabitEthernet0/0/0/1
O    172.16.3.0/24 [110/2] via 10.1.11.11, 00:21:56, GigabitEthernet0/0/0/0
O    172.16.4.0/24 [110/11] via 10.1.12.12, 00:21:51, GigabitEthernet0/0/0/1
RP/0/RP0/CPU0:R13#show ospf database
Mon Sep  7 15:09:29.908 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         1343        0x80000005 0x0072dc 2
4.4.4.4         4.4.4.4         580         0x80000008 0x002407 2
11.11.11.11     11.11.11.11     1321        0x80000007 0x006af4 5
12.12.12.12     12.12.12.12     580         0x80000009 0x000a2b 5
13.13.13.13     13.13.13.13     1316        0x80000007 0x00373f 5

		Summary Net Link States (Area 2)

Link ID         ADV Router      Age         Seq#       Checksum
0.0.0.0         3.3.3.3         31          0x80000001 0x00de4b
0.0.0.0         4.4.4.4         15          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     1320        0x80000001 0x0017a0 0
RP/0/RP0/CPU0:R13#show route 0.0.0.0/0
Mon Sep  7 15:09:30.497 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  7 15:09:01.372 for 00:00:29
  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
Mon Sep  7 15:09:30.699 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/18 ms

復旧(STEP 6)

no-summaryを外して、NSSA+デフォルト経路の状態に戻します。IOS XRではnssaの後ろに書くキーワードが上書きになるため、nssa default-information-originateを投入するとno-summaryが外れます。

STEP 6で投入した設定(最終状態)
(R3・R4のABR 2台)
router ospf 1
 area 2
  nssa default-information-originate
STEP 6 R13 show route ospf / show route 0.0.0.0/0 / ping(復旧後)
RP/0/RP0/CPU0:R13#show route ospf
Mon Sep  7 15:13:29.317 UTC

O*N2 0.0.0.0/0 [110/1] via 10.1.11.11, 00:00:19, GigabitEthernet0/0/0/0
O IA 1.1.1.1/32 [110/5] via 10.1.11.11, 00:00:32, GigabitEthernet0/0/0/0
O IA 2.2.2.2/32 [110/4] via 10.1.11.11, 00:00:32, GigabitEthernet0/0/0/0
O IA 3.3.3.3/32 [110/3] via 10.1.11.11, 00:00:32, GigabitEthernet0/0/0/0
O IA 4.4.4.4/32 [110/5] via 10.1.11.11, 00:00:32, GigabitEthernet0/0/0/0
O IA 10.0.12.0/24 [110/4] via 10.1.11.11, 00:00:32, GigabitEthernet0/0/0/0
O IA 10.0.23.0/24 [110/3] via 10.1.11.11, 00:00:32, GigabitEthernet0/0/0/0
O IA 10.0.24.0/24 [110/4] via 10.1.11.11, 00:00:32, GigabitEthernet0/0/0/0
O    11.11.11.11/32 [110/2] via 10.1.11.11, 00:25:55, GigabitEthernet0/0/0/0
O    12.12.12.12/32 [110/2] via 10.1.12.12, 00:25:50, GigabitEthernet0/0/0/1
O    172.16.3.0/24 [110/2] via 10.1.11.11, 00:25:55, GigabitEthernet0/0/0/0
O    172.16.4.0/24 [110/11] via 10.1.12.12, 00:25:50, GigabitEthernet0/0/0/1
RP/0/RP0/CPU0:R13#show route 0.0.0.0/0
Mon Sep  7 15:13:29.476 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  7 15:13:10.336 for 00:00:19
  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
Mon Sep  7 15:13:29.640 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 = 11/12/17 ms

LSDBはどう変わったか

R13から見たarea 2のLSDBを、各状態で数えると次のようになります。

状態Router(Type 1)Summary(Type 3)ASBR Summary(Type 4)External(Type 5)NSSA External(Type 7)合計OSPF経路
通常エリア(STEP 0)5142202312
NSSA(STEP 1)5140012011
NSSA+デフォルト(STEP 4)5140032212
トータリーNSSA(STEP 5)52(デフォルト)00185

NSSAにしただけでは、Type 4とType 5が消える一方でType 7が残るため、LSAの数はあまり変わりません。大きく減るのはトータリーNSSAで、23件が8件になります。

スタブエリアとの違い

項目スタブエリアNSSA
エリア内にASBRを置けるか置けない置ける(Type 7で運ぶ)
外部経路の持ち出し不可ABRがType 7 → Type 5へ変換して持ち出す
デフォルト経路ABRが自動で入れる(Type 3)明示設定が必要(Type 7。no-summaryのときはType 3)
show routeの表示O*IA 0.0.0.0/0O*N2 0.0.0.0/0
OptionsのEビット00
OptionsのNビット01

デフォルト経路が自動で入らないという違いが実運用では一番効きます。スタブと同じつもりでNSSAにすると、そのエリアから外部へ出られなくなります(STEP 1で再現したとおりです)。

IOS XRの設定コマンド

コマンド入れる場所意味
area <ID> 配下のnssaそのエリアに接続する全ルータエリアをNSSAにする。1台でも漏れるとNビット不一致で隣接が確立しない
nssa default-information-originateABRだけデフォルト経路をType 7で注入する
nssa no-summaryABRだけType 3も止める(トータリーNSSA)。デフォルトはType 3で入る
設定例(ABRのR3。NSSA+デフォルト経路)
router ospf 1
 area 2
  nssa default-information-originate
  interface GigabitEthernet0/0/0/1
   network point-to-point
  !
 !
!

IOS XRではnssaの後ろのキーワードが上書きになります。nssa no-summaryを入れるとnssa default-information-originateは消え、逆も同様です(show running-configで確認できます)。IOS XEではarea <ID> nssa [no-summary] [default-information-originate]のように併記します。設定例は別記事で解説します。

検証Configおよびshow結果

各STEPで7台すべてから、次の3種類をルータごとに分けて取得しています。検証Configはこの..._run.txtです(最終状態はSTEP 6のもの)。

ファイル内容
..._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 summary / show ospf database asbr-summary / show ospf database external / 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そのSTEPの範囲だけに絞ったshow logging。各STEPの開始時にlogmsgでマーカーを入れ、その時刻をshow logging startに指定して取得したもの
..._run.txtそのSTEP時点のshow running-config(=そのSTEPの検証Config)

最終状態はarea 2がNSSA(ABRにnssa default-information-originate、内部ルータにnssa)です。

STEP 0:通常エリア(NSSAにする前) — R13の外部経路がType 5でAS全体に流れている

ルータshow出力syslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R11showlogrun
R12showlogrun
R13showlogrun

このSTEPではR13からpingとtraceroute、R1からpingとtracerouteも取得しています。

STEP 1:area 2の5台にnssa — Type 5がType 7に変わり、外部経路が入らなくなる(デフォルトも無い)

ルータshow出力syslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R11showlogrun
R12showlogrun
R13showlogrun

このSTEPではR13 の show ospf database nssa-external ほかR13 の show route / ping / tracerouteR2 の show ospf database external 192.168.13.0も取得しています。

STEP 2:R4のarea 2側リンクをshutdown — 変換役がR3へ移る(約38秒後)

ルータshow出力syslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R11showlogrun
R12showlogrun
R13showlogrun

このSTEPではR2 の show ospf database external 192.168.13.0も取得しています。

STEP 3:R4のリンクを復旧 — 変換役がR4へ戻る

ルータshow出力syslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R11showlogrun
R12showlogrun
R13showlogrun

このSTEPではR2 の show ospf database external 192.168.13.0も取得しています。

STEP 4:ABR 2台にnssa default-information-originateO*N2 0.0.0.0/0が入り外部へ出られる

ルータshow出力syslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R11showlogrun
R12showlogrun
R13showlogrun

このSTEPではR13 の show route 0.0.0.0/0 ほかも取得しています。

STEP 5:ABR 2台にnssa no-summary(トータリーNSSA) — Type 3が消え、デフォルトはO*IA

ルータshow出力syslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R11showlogrun
R12showlogrun
R13showlogrun

このSTEPではR13 の show route ospf / show ospf databaseも取得しています。

STEP 6:ABR 2台をnssa default-information-originateに戻す(最終状態) — NSSA+デフォルト経路

ルータshow出力syslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R11showlogrun
R12showlogrun
R13showlogrun

このSTEPではR13 の show route ospf / pingR1 の show route 192.168.13.0/24 / pingも取得しています。

キャプチャーはarea 2内(R11 - R13間)とバックボーン側(R2 - R4間)で取得しました(フィルタはip proto 89)。

エリア2側(NSSA化、STEP 1)のキャプチャーをダウンロード

バックボーン側(変換後のType 5、STEP 1)のキャプチャーをダウンロード

参考

RFCタイトル概要
RFC 3101The OSPF Not-So-Stubby Area (NSSA) OptionNSSAの仕様。Nビット(Section 2.1)、Type 7とForwarding Address(Section 2.3)、Pビット(Section 2.4)、変換役の選出とTranslatorStabilityInterval(Section 3.1)、変換の手順(Section 3.2)。
RFC 2328OSPF Version 2スタブエリアの定義(Section 3.6)とOptionsフィールド(Appendix A.2)。

関連記事