NSSAとは
スタブエリアとトータリースタブエリアでは、スタブエリアの制約として「スタブエリアにASBRは置けない」ことを実機で確認しました。再配布の設定自体は通るのに、AS External-LSA(Type 5)が1つも生成されないという形で効く制約です。
現場では「外部経路は入れたくないが、そのエリアの中に外部と繋がるルータが1台だけある」という構成がよくあります。この矛盾を解くのがNSSA(Not-So-Stubby Area、あまりスタブでないエリア)です。Type 7という専用のLSAで外部経路をエリア内に持ち込み、ABRがそれをType 5へ変換して外へ出します。
| 用語 | 説明 |
|---|---|
| NSSA | Type 5を入れない(スタブの性質)まま、エリア内のASBRが出す外部経路をType 7として運べるエリア |
| NSSA External-LSA(Type 7) | NSSA内のASBRが出す外部経路のLSA。そのエリアの中だけを流れる |
| Pビット(Propagate) | Type 7のOptionsにあるビット。立っているとABRがType 5へ変換してよいという印 |
| 変換役のABR | Type 7をType 5へ変換するABR。複数いる場合はルータIDが最大の1台が選ばれる |
| トータリーNSSA | NSSAからさらに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の中だけ |
| 広告元 | 外部経路を持ち込んだASBR | NSSA内のASBR |
| Forwarding Address | 0.0.0.0のこともある | Pビットが立つときは非0が必須 |
| Pビット | なし | あり。ABRが変換してよいかどうかを示す |
show routeの表示 | O E1 / O E2 | O 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つの構成で並べて観測できます。
| 項目 | 内容 |
|---|---|
| エリア1 | R1のLoopback0とR1 - R2間。R1はASBRで192.168.1.0/24を再配布 |
| エリア0 | R2・R3・R4のLoopback0と、R2 - R3間、R2 - R4間 |
| エリア2 | R11・R12・R13のLoopback0と、R3 - R11間、R4 - R12間、R11 - R13間、R12 - R13間。ここをNSSAにする |
| ABR | R2(エリア1 ↔ 0)、R3・R4(エリア0 ↔ 2)。R3とR4が変換役の候補 |
| NSSA内のASBR | R13。192.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)を生成する必要もなくなる |
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/24がtype extern 2・広告元13.13.13.13(R13自身)で届いています。
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として届いています。
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/0area 2をNSSAにする(STEP 1)
NSSAの設定も、スタブと同じくそのエリアに接続する全ルータに入れます。
(R3・R4・R11・R12・R13の5台すべてに投入する)
router ospf 1
area 2
nssaR13が出していた外部経路は、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の特徴です。
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からエリア外への通信はできなくなります。
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)がそのまま引き継がれています。
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. 経路のfromは4.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(自分は変換役ではない)と出ていることが分かります。
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バックボーン側(R2 - R4間)のキャプチャーには、R4が変換して送り出したType 5が残っています。
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誰が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側のリンクを落として、変換役がいなくなった状況を作ります。
(R4)
interface GigabitEthernet0/0/0/1
shutdown残ったR3が変換役を引き継ぎ、Type 5の広告元が3.3.3.3に変わります。
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が変換役に復帰します。
(R4)
interface GigabitEthernet0/0/0/1
no shutdownRP/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.3 | 5.2秒 | R4が自分の変換したType 5を取り消す(LS Age 3600) |
| No.15 | 43.4秒 | R3が変換役を引き継ぐ(約38秒後) |
| No.78 | 307.9秒 | R3が変換を降りる(メトリック16777215=LSInfinityで取り消し) |
| No.79 | 307.9秒 | R4が変換役に復帰(No.78との差は7ミリ秒) |
引き継ぎに約38秒かかっているのは、RFC 3101が定めるTranslatorStabilityInterval(既定40秒)によるものです。変換役が頻繁に入れ替わってType 5がフラッピングするのを防ぐための待ち時間です。逆に、ルータIDの大きいR4が戻ってきたときは待ち時間なしで即座に交代しています。
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 UpdateNSSAにデフォルト経路を入れる(STEP 4)
STEP 1で見たとおり、NSSAには既定でデフォルト経路が入りません。入れるにはABRで明示的に設定します。
(R3・R4のABR 2台)
router ospf 1
area 2
nssa default-information-originateR13に0.0.0.0/0が現れます。スタブエリアのときはO*IA(Type 3のエリア間経路)でしたが、NSSAではO*N2(NSSA外部経路のタイプ2)になります。デフォルト経路もType 7で運ばれます。広告元のOptionsがNo Type 7/5 translation(Pビットなし)になっているのもポイントで、ABRが出したデフォルトはバックボーンへ変換・伝播されません。
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も止まります。
(R3・R4のABR 2台)
router ospf 1
area 2
nssa no-summaryエリア間経路が消え、デフォルト経路はType 3のO*IAに変わります(トータリースタブと同じ形です)。R13自身が出しているType 7はそのまま残る点が、トータリースタブとの違いです。
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が外れます。
(R3・R4のABR 2台)
router ospf 1
area 2
nssa default-information-originateRP/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 msLSDBはどう変わったか
R13から見たarea 2のLSDBを、各状態で数えると次のようになります。
| 状態 | Router(Type 1) | Summary(Type 3) | ASBR Summary(Type 4) | External(Type 5) | NSSA External(Type 7) | 合計 | OSPF経路 |
|---|---|---|---|---|---|---|---|
| 通常エリア(STEP 0) | 5 | 14 | 2 | 2 | 0 | 23 | 12 |
| NSSA(STEP 1) | 5 | 14 | 0 | 0 | 1 | 20 | 11 |
| NSSA+デフォルト(STEP 4) | 5 | 14 | 0 | 0 | 3 | 22 | 12 |
| トータリーNSSA(STEP 5) | 5 | 2(デフォルト) | 0 | 0 | 1 | 8 | 5 |
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/0 | O*N2 0.0.0.0/0 |
| OptionsのEビット | 0 | 0 |
| OptionsのNビット | 0 | 1 |
デフォルト経路が自動で入らないという違いが実運用では一番効きます。スタブと同じつもりでNSSAにすると、そのエリアから外部へ出られなくなります(STEP 1で再現したとおりです)。
IOS XRの設定コマンド
| コマンド | 入れる場所 | 意味 |
|---|---|---|
area <ID> 配下のnssa | そのエリアに接続する全ルータ | エリアをNSSAにする。1台でも漏れるとNビット不一致で隣接が確立しない |
nssa default-information-originate | ABRだけ | デフォルト経路をType 7で注入する |
nssa no-summary | ABRだけ | Type 3も止める(トータリーNSSA)。デフォルトはType 3で入る |
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.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 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出力 | 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ではR13からpingとtraceroute、R1からpingとtracerouteも取得しています。
STEP 1:area 2の5台にnssa — Type 5がType 7に変わり、外部経路が入らなくなる(デフォルトも無い)
| ルータ | show出力 | 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ではR13 の show ospf database nssa-external ほか、R13 の show route / ping / traceroute、R2 の show ospf database external 192.168.13.0も取得しています。
STEP 2:R4のarea 2側リンクをshutdown — 変換役がR3へ移る(約38秒後)
| ルータ | show出力 | 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ではR2 の show ospf database external 192.168.13.0も取得しています。
STEP 3:R4のリンクを復旧 — 変換役がR4へ戻る
| ルータ | show出力 | 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ではR2 の show ospf database external 192.168.13.0も取得しています。
STEP 4:ABR 2台にnssa default-information-originate — O*N2 0.0.0.0/0が入り外部へ出られる
| ルータ | show出力 | 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ではR13 の show route 0.0.0.0/0 ほかも取得しています。
STEP 5:ABR 2台にnssa no-summary(トータリーNSSA) — Type 3が消え、デフォルトはO*IAに
| ルータ | show出力 | 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ではR13 の show route ospf / show ospf databaseも取得しています。
STEP 6:ABR 2台をnssa default-information-originateに戻す(最終状態) — NSSA+デフォルト経路
| ルータ | show出力 | 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ではR13 の show route ospf / ping、R1 の 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 3101 | The OSPF Not-So-Stubby Area (NSSA) Option | NSSAの仕様。Nビット(Section 2.1)、Type 7とForwarding Address(Section 2.3)、Pビット(Section 2.4)、変換役の選出とTranslatorStabilityInterval(Section 3.1)、変換の手順(Section 3.2)。 |
| RFC 2328 | OSPF Version 2 | スタブエリアの定義(Section 3.6)とOptionsフィールド(Appendix A.2)。 |
関連記事
- OSPFとは
- OSPF ルータID
- OSPFパケットの種類とヘッダーフォーマット
- OSPFの状態遷移
- OSPF Optionsフィールド
- DRとBDR
- OSPF ネットワークタイプ
- OSPFの外部経路(スタティックの再配布)
- OSPFのマルチエリアとABR
- OSPFのスタブエリアとトータリースタブエリア
- OSPFのNSSAとトータリーNSSA
- OSPFの経路集約
- OSPFのLSAとLSAヘッダー
- 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)