バーチャルリンクとは
OSPFのバーチャルリンクは、エリア0(バックボーン)を論理的に延長する仕組みです。物理的にはエリア0に届かない場所へ、別のエリアを通り抜けてエリア0を伸ばします。
RFC 2328 Section 3.1は「バックボーンは常にすべてのエリア境界ルータ(ABR)を含み、連続していなければならない」と定めています。この前提が崩れる状況が2つあり、バーチャルリンクはその両方に効きます。
| 状況 | 何が起きるか |
|---|---|
| バックボーンに接しないエリアがある | そのエリアのABRはエリア0に足を持たないため、経路が出入りしない |
| バックボーンが分断された | エリア0が2つ以上の断片に割れ、断片どうしが経路を交換できない |
この記事では両方を実機で再現します。同じコマンドで設定しますが、結果として現れる経路の種別が違います。 そこがバーチャルリンクの性質をよく表しています。
設定と3つの制約
設定はトランジットエリアの配下に書き、引数には相手のルータIDを指定します。
router ospf <プロセス>
area <トランジットエリア>
virtual-link <相手のルータID>制約が3つあります。いずれもRFC 2328に根拠があり、この記事で実機の挙動を確かめます。
- 両端のABRに設定が要ります。 片側だけでは張られません
- トランジットエリアはスタブにできません(Section 3.6)。スタブエリアは完全な経路情報を持たないためです
- トランジットエリアを経由する経路のコストが、そのままバーチャルリンクのコストになります。 直接指定はしません
検証構成
R1 - R2 - R3 - R4の直線で、2つのラボを同じ4台で行います。ラボごとにエリアの割り当てだけを変えます。
| 項目 | ラボA | ラボB |
|---|---|---|
| R1 - R2 | エリア0 | エリア0 |
| R2 - R3 | エリア1(トランジット) | エリア1(トランジット) |
| R3 - R4 | エリア2 | エリア0 |
| 再現する状況 | バックボーンに接しないエリア | 分断されたバックボーン |
ルータIDはR1が1.1.1.1、R2が2.2.2.2、R3が3.3.3.3、R4が4.4.4.4です。ソフトウェアはXRd 26.1.1です。
9つのSTEPで進めます。
| STEP | 操作 | 確かめること |
|---|---|---|
| 0 | ラボAの初期状態 | R3がABRとして扱われない。R4に経路が1本も入らない |
| 1 | R2側だけに設定 | 張られない。コストは65535 |
| 2 | R3側にも設定 | 確立して経路が通る。R3がABRになる |
| 3 | トランジットエリアをスタブにする | commitが拒否される |
| 4 | トランジット区間のコストを50に | バーチャルリンクのコストが追随する |
| 5 | コストとバーチャルリンクを削除 | エリア2が再び孤立する |
| 6 | R3 - R4をエリア0へ移す | バックボーンが分断される |
| 7 | バーチャルリンクを設定 | 分断が修復され、経路がエリア内経路になる |
| 8 | 初期構成へ戻す | STEP 0と同じ状態(最終状態) |
ラボA:バックボーンに接しないエリアを救う
STEP 0:ABRに見えてABRではない
R3はエリア1とエリア2の2つに足を持っています。定義だけ見ればABRですが、show ospfにABRの行が出ません。
Routing Process "ospf 1" with ID 2.2.2.2
Role: Primary Active
NSR (Non-stop routing) is Enabled
Supports only single TOS(TOS0) routes
Supports opaque LSA
It is an area border router
Maximum number of non self-generated LSA allowed 500000
Current number of non self-generated LSA 3同じ位置をR3で見ると、その行がありません。
Routing Process "ospf 1" with ID 3.3.3.3
Role: Primary Active
NSR (Non-stop routing) is Enabled
Supports only single TOS(TOS0) routes
Supports opaque LSA
Maximum number of non self-generated LSA allowed 500000
Current number of non self-generated LSA 6
Threshold for warning message 75%エリア0に足が無いルータは、2つのエリアに属していてもABRとして扱われません。 RFC 2328がバックボーンにすべてのABRが含まれると定めているとおりの動きです。
結果はR4に現れます。R3との隣接はFULLなのに、OSPFの経路が1本もありません。
RP/0/RP0/CPU0:R4#show route ospf
Fri Sep 11 23:47:49.499 UTC
% No matching routes foundSTEP 1:片側だけでは張られない
R2にだけバーチャルリンクを設定します。
(R2)
router ospf 1
area 1
virtual-link 3.3.3.3インタフェースは作られますがis downのままです。コストには使えないことを示す 65535 が入ります。
Virtual Links for OSPF 1
Virtual Link OSPF_VL1 to router 3.3.3.3 is down
Run as demand circuit
DoNotAge LSA allowed.
Transit area 1, Cost of using 65535
Transmit Delay is 1 sec, State DOWN,
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5この状態はsyslogに何も残りません。設定漏れに気づくにはshow ospf virtual-linksを見る必要があります。
STEP 2:両端に設定して確立する
R3にも設定します。
(R3)
router ospf 1
area 1
virtual-link 2.2.2.2is upに変わり、コストが1になりました。この1は設定値ではなく、R2からR3へエリア1の中を通る経路のコストです。
Virtual Links for OSPF 1
Virtual Link OSPF_VL1 to router 3.3.3.3 is up
Run as demand circuit
DoNotAge LSA allowed.
Transit area 1, via interface GigabitEthernet0/0/0/1, Cost of using 1
Transmit Delay is 1 sec, State POINT_TO_POINT,
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
Hello due in 00:00:03:282
Adjacency State FULL (Hello suppressed)
Number of DBD retrans during last exchange 0Run as demand circuitとAdjacency State FULL (Hello suppressed)にも注目してください。バーチャルリンクはデマンドサーキットとして動き、隣接が安定するとHelloを抑止します。そこを流れるLSAには(DNA)(DoNotAge)が付き、通常の1800秒のリフレッシュから外れます。
バーチャルリンクはエリア0のインタフェースとして数えられます。 show ospf interface briefにIPアドレスを持たないOSPF_VL1が、エリア0のP2Pとして並びます。
RP/0/RP0/CPU0:R2#show ospf interface brief
Fri Sep 11 23:53:52.018 UTC
* Indicates MADJ interface, (P) Indicates fast detect hold down state
Interfaces for OSPF 1
Interface PID Area IP Address/Mask Cost State Nbrs F/C
Lo0 1 0 2.2.2.2/32 1 LOOP 0/0
OSPF_VL1 1 0 - 1 P2P 1/1
Gi0/0/0/0 1 0 10.1.2.2/24 1 BDR 1/1
Gi0/0/0/1 1 1 10.2.3.2/24 1 DR 1/1隣接も2つになります。同じR3が、バーチャルリンク経由と物理リンク経由の両方で現れます。
Neighbor ID Pri State Dead Time Address Interface
3.3.3.3 1 FULL/ - - 10.2.3.3 OSPF_VL1
Neighbor is up for 00:01:27
1.1.1.1 1 FULL/DR 00:00:33 10.1.2.1 GigabitEthernet0/0/0/0
Neighbor is up for 00:10:18
3.3.3.3 1 FULL/BDR 00:00:32 10.2.3.3 GigabitEthernet0/0/0/1
Neighbor is up for 00:09:11R3側ではエリア数が2から3に増え、ABRの行が現れます。
Routing Process "ospf 1" with ID 3.3.3.3
Role: Primary Active
NSR (Non-stop routing) is Enabled
Supports only single TOS(TOS0) routes
Supports opaque LSA
It is an area border router
Maximum number of non self-generated LSA allowed 500000
Current number of non self-generated LSA 13経路も通ります。R1はエリア2の4.4.4.4/32をO IA(エリア間経路)として学びました。
RP/0/RP0/CPU0:R1#show route ospf
Fri Sep 11 23:53:25.084 UTC
O 2.2.2.2/32 [110/2] via 10.1.2.2, 00:09:49, GigabitEthernet0/0/0/0
O IA 3.3.3.3/32 [110/3] via 10.1.2.2, 00:08:43, GigabitEthernet0/0/0/0
O IA 4.4.4.4/32 [110/4] via 10.1.2.2, 00:00:54, GigabitEthernet0/0/0/0
O IA 10.2.3.0/24 [110/2] via 10.1.2.2, 00:09:49, GigabitEthernet0/0/0/0
O IA 10.3.4.0/24 [110/3] via 10.1.2.2, 00:00:54, GigabitEthernet0/0/0/0パケットで見ると、バーチャルリンクのHelloはユニキャストで、エリアIDは0.0.0.0です。同じ物理リンクをエリア1のHelloが224.0.0.5宛で流れているので、2種類が混在します。
Open Shortest Path First
OSPF Header
Version: 2
Message Type: Hello Packet (1)
Packet Length: 48
Source OSPF Router: 3.3.3.3
Area ID: 0.0.0.0 (Backbone)
Checksum: 0xc191 [correct]
Instance ID: Base IPv4 Unicast Instance (0)
Auth Type: Null (0)
Auth Data (none): 0000000000000000
OSPF Hello Packet
Network Mask: 0.0.0.0
Hello Interval [sec]: 10
Options: 0x32, (DC) Demand Circuits, (L) LLS Data block, (E) External Routing
0... .... = DN: Not set
.0.. .... = (O) Opaque: Not set
..1. .... = (DC) Demand Circuits: Supported
...1 .... = (L) LLS Data block: Present
.... 0... = (N) NSSA: Not supported
.... .0.. = (MC) Multicast: Not capable
.... ..1. = (E) External Routing: Capable
.... ...0 = (MT) Multi-Topology Routing: No
Router Priority: 1
Router Dead Interval [sec]: 40
Designated Router: 0.0.0.0
Backup Designated Router: 0.0.0.0
Active Neighbor: 2.2.2.2
OSPF LLS Data Block
Checksum: 0xfff6
LLS Data Length: 12 bytes
Extended options TLV
TLV Type: 1
TLV Length: 4
Options: 0x00000001, (LR) LSDB Resynchronization
.... .... .... .... .... .... .... ..0. = (RS) Restart Signal: Not set
.... .... .... .... .... .... .... ...1 = (LR) LSDB Resynchronization: Setエリア0側のリンクでは、R3が出したLSAがまとめて流れ込みます。Summary-LSAが4本で、エリア2の4.4.4.4と10.3.4.0が含まれています。
6 2026-09-12 08:52:25.502271 10.1.2.2 → 224.0.0.5 OSPF 198 LS Update
7 2026-09-12 08:52:25.552975 10.1.2.2 → 224.0.0.5 OSPF 122 LS Update
8 2026-09-12 08:52:25.588217 10.1.2.2 → 224.0.0.5 OSPF 98 LS Update
10 2026-09-12 08:52:30.395777 10.1.2.2 → 10.1.2.1 OSPF 98 LS UpdateNo.6 の中身を見ると、R3が出したLSAが5つ入っています。先頭はR3自身のRouter-LSAで、Number of Links: 0
です。バーチャルリンクしか持たないエリア0のLSAなので、この時点ではリンクが数えられていません。
残り4つがSummary-LSAで、エリア2の4.4.4.4と10.3.4.0が含まれます。
Auth Data (none): 0000000000000000
LS Update Packet
Number of LSAs: 5
LSA-type 1 (Router-LSA), len 24
.000 0000 0000 1011 = LS Age (seconds): 11
1... .... .... .... = Do Not Age Flag: 1
Options: 0x22, (DC) Demand Circuits, (E) External Routing
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
.... ..1. = (E) External Routing: Capable
.... ...0 = (MT) Multi-Topology Routing: No
LS Type: Router-LSA (1)
Link State ID: 3.3.3.3
Advertising Router: 3.3.3.3
Sequence Number: 0x80000001
Checksum: 0xbb6e
Length: 24
Flags: 0x01, (B) Area border 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
.... ..0. = (E) AS boundary router: No
.... ...1 = (B) Area border router: Yes
Number of Links: 0
LSA-type 3 (Summary-LSA (IP network)), len 28STEP 3:トランジットエリアはスタブにできない
エリア1をスタブにしようとすると、commitの時点で拒否されます。
(R2)
router ospf 1
area 1
stubcommitが通りません。理由がそのまま返ります。
RP/0/RP0/CPU0:R2(config-ospf-ar)#commit
Sat Sep 12 00:28:37.001 UTC
% Failed to commit one or more configuration items during a pseudo-atomic operation. All changes made have been reverted. Please issue 'show configuration failed [inheritance]' from this session to view the errors
RP/0/RP0/CPU0:R2(config-ospf-ar)#show configuration failed
Sat Sep 12 00:28:44.920 UTC
!! SEMANTIC ERRORS: This configuration was rejected by
!! the system due to semantic errors. The individual
!! errors with each failed configuration command can be
!! found below.
router ospf 1
area 1
stub
!!% 'OSPF' detected the 'warning' condition 'Error: The specified area cannot be a stub or nssa as it contains a virtual link'
!
!
end理由がそのまま返ります。設定は巻き戻され、running-configには残りません。RFC 2328 Section 3.6の制約が、投入時点で弾かれる形で実装されています。
STEP 4:コストはトランジットエリアが決める
両端のトランジット側インタフェースにコスト50を入れます。
(R2)
router ospf 1
area 1
interface GigabitEthernet0/0/0/1
cost 50
(R3)
router ospf 1
area 1
interface GigabitEthernet0/0/0/0
cost 50バーチャルリンクのコストが1から50に変わりました。バーチャルリンクにコストを直接設定することはできません。 区間のエリア内コストがそのまま入ります。
Virtual Links for OSPF 1
Virtual Link OSPF_VL1 to router 3.3.3.3 is up
Run as demand circuit
DoNotAge LSA allowed.
Transit area 1, via interface GigabitEthernet0/0/0/1, Cost of using 50
Transmit Delay is 1 sec, State POINT_TO_POINT,STEP 5:外すと元に戻る
コストとバーチャルリンクを削除すると、R4は再び経路を失います。ラボAはここで終わりです。
ラボB:分断されたバックボーンを修復する
STEP 6:バックボーンを分断する
R3 - R4をエリア2からエリア0へ移します。エリア0が左右2つの断片に割れ、間にエリア1が挟まる形になります。
(R3)
router ospf 1
no area 2
area 0
interface GigabitEthernet0/0/0/1
(R4)
router ospf 1
no area 2
area 0
interface Loopback0
passive enable
!
interface GigabitEthernet0/0/0/0R1とR4は互いのループバックを学べません。 どちらも隣のABRまでは見えているのに、反対側の断片が欠けています。
RP/0/RP0/CPU0:R1#show route ospf
Sat Sep 12 00:37:50.651 UTC
O 2.2.2.2/32 [110/2] via 10.1.2.2, 00:54:15, GigabitEthernet0/0/0/0
O IA 3.3.3.3/32 [110/3] via 10.1.2.2, 00:03:23, GigabitEthernet0/0/0/0
O IA 10.2.3.0/24 [110/2] via 10.1.2.2, 00:03:23, GigabitEthernet0/0/0/0RP/0/RP0/CPU0:R4#show route ospf
Sat Sep 12 00:39:06.002 UTC
O IA 3.3.3.3/32 [110/2] via 10.3.4.3, 00:01:43, GigabitEthernet0/0/0/0
O IA 10.2.3.0/24 [110/2] via 10.3.4.3, 00:01:43, GigabitEthernet0/0/0/0ラボAとは症状が違います。 ラボAではR4の経路が0本でしたが、ここでは2本あります。隣のABRとエリア1の情報は届くのに、その先のバックボーン断片だけが欠ける形です。切り分けの手がかりになります。
STEP 7:バーチャルリンクで再結合する
設定はラボAとまったく同じです。
(R2)
router ospf 1
area 1
virtual-link 3.3.3.3
(R3)
router ospf 1
area 1
virtual-link 2.2.2.2経路が戻ります。注目すべきは種別です。 4.4.4.4/32 は O IA ではなく、エリア内経路の O になりました。
RP/0/RP0/CPU0:R1#show route ospf
Sat Sep 12 00:41:18.055 UTC
O 2.2.2.2/32 [110/2] via 10.1.2.2, 00:57:42, GigabitEthernet0/0/0/0
O IA 3.3.3.3/32 [110/3] via 10.1.2.2, 00:06:50, GigabitEthernet0/0/0/0
O 4.4.4.4/32 [110/4] via 10.1.2.2, 00:01:12, GigabitEthernet0/0/0/0
O IA 10.2.3.0/24 [110/2] via 10.1.2.2, 00:06:50, GigabitEthernet0/0/0/0
O 10.3.4.0/24 [110/3] via 10.1.2.2, 00:01:12, GigabitEthernet0/0/0/0RP/0/RP0/CPU0:R4#show route ospf
Sat Sep 12 00:42:32.032 UTC
O 1.1.1.1/32 [110/4] via 10.3.4.3, 00:02:21, GigabitEthernet0/0/0/0
O 2.2.2.2/32 [110/3] via 10.3.4.3, 00:02:21, GigabitEthernet0/0/0/0
O IA 3.3.3.3/32 [110/2] via 10.3.4.3, 00:05:09, GigabitEthernet0/0/0/0
O 10.1.2.0/24 [110/3] via 10.3.4.3, 00:02:21, GigabitEthernet0/0/0/0
O IA 10.2.3.0/24 [110/2] via 10.3.4.3, 00:05:09, GigabitEthernet0/0/0/0ラボAでは同じ宛先がO IAでした。メトリックはどちらも4で同じなのに種別だけが違います。
| 宛先 | ラボA | ラボB |
|---|---|---|
R1から見た4.4.4.4/32 | O IA メトリック4 | O メトリック4 |
バーチャルリンクがエリア0の一部として働き、2つの断片が1つのエリア0に戻ったためです。 エリア1経由の3.3.3.3/32と10.2.3.0/24は、エリア間経路なのでO IAのままです。
理由はパケットに出ます。エリア0側のリンクに流れるLSAが、ラボAとは違います。
Auth Data (none): 0000000000000000
LS Update Packet
Number of LSAs: 2
LSA-type 1 (Router-LSA), len 48
.000 0000 1010 0110 = LS Age (seconds): 166
1... .... .... .... = Do Not Age Flag: 1
Options: 0x22, (DC) Demand Circuits, (E) External Routing
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
.... ..1. = (E) External Routing: Capable
.... ...0 = (MT) Multi-Topology Routing: No
LS Type: Router-LSA (1)
Link State ID: 4.4.4.4
Advertising Router: 4.4.4.4
Sequence Number: 0x80000002
Checksum: 0x6660
Length: 48
Flags: 0x00
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
.... ..0. = (E) AS boundary router: No
.... ...0 = (B) Area border router: No
Number of Links: 2ラボAで届いたのはR3が作ったSummary-LSA(Type 3)だけでした。ラボBでは、R4自身が出したRouter-LSA(Type 1)とNetwork-LSA(Type 2)がR1まで届きます。フラグは 0x00 で、ABRですらない普通のルータのLSAです。2つの断片のリンクステートデータベースが統合されたことを意味します。エリア内経路になるのはこのためです。
STEP 8:初期構成へ戻す
エリアの割り当てとバーチャルリンクを元に戻すと、STEP 0と同じ状態になります。
設計上の注意
- バーチャルリンクは応急処置です。 RFC 2328 Section 15も恒久的な設計ではなく、バックボーンの連続性を保てない場合の手段として位置づけています。物理的にエリア0へ接続できるなら、そちらを直すほうが確実です
- トランジットエリアをスタブやNSSAにできません。 将来そのエリアをスタブにしたくなったとき、バーチャルリンクが邪魔になります
- コストを直接指定できません。 経路を調整したいときは、トランジットエリア内のコストを変えることになり、そのエリアの通常の経路にも影響します
- 片側だけの設定は気づきにくいです。 syslogに何も出ないので、
show ospf virtual-linksで明示的に確認します
実機の挙動とRFCの差
RFC 2328 Section 12.4.1は、Router-LSAのVビットについて「そのエリアをトランジットエリアとするバーチャルリンクの終端であるとき、かつそのときに限り立てる」と定めています。Section 16.1で、このビットからエリアのTransitCapabilityを判定します。
XRd 26.1.1では、このビットが立ちませんでした。 バーチャルリンクがis upかつAdjacency State FULLの状態で、両端ルータのトランジットエリア側Router-LSAは次のとおりです。
Open Shortest Path First
OSPF Header
Version: 2
Message Type: LS Update (4)
Packet Length: 76
Source OSPF Router: 3.3.3.3
Area ID: 0.0.0.1
Checksum: 0x346a [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 1 (Router-LSA), len 48
.000 0000 0000 0001 = LS Age (seconds): 1
0... .... .... .... = Do Not Age Flag: 0
Options: 0x22, (DC) Demand Circuits, (E) External Routing
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
.... ..1. = (E) External Routing: Capable
.... ...0 = (MT) Multi-Topology Routing: No
LS Type: Router-LSA (1)
Link State ID: 3.3.3.3
Advertising Router: 3.3.3.3
Sequence Number: 0x80000004
Checksum: 0xeee7
Length: 48
Flags: 0x01, (B) Area border 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
.... ..0. = (E) AS boundary router: No
.... ...1 = (B) Area border router: Yes
Number of Links: 2
Type: Stub ID: 3.3.3.3 Data: 255.255.255.255 Metric: 1
Link ID: 3.3.3.3 - 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: Transit ID: 10.2.3.2 Data: 10.2.3.3 Metric: 1
Link ID: 10.2.3.2 - IP address of Designated Router
Link Data: 10.2.3.3
Link Type: 2 - Connection to a transit network
Number of Metrics: 0 - TOS
0 Metric: 1パケットの生バイトでもフラグは0x01(Bビットのみ)で、Vビットの0x04は含まれていません。ラボBのようにトランジットエリアがバックボーンの通過経路になる構成でも、経路計算は正常に動きました。 このビットが立たないことによる実害は観測していません。理由は追っていません。
検証Configおよびshow結果
各STEPで4台すべてから取得しています。検証Configはこの..._run.txtです(最終状態はSTEP 8のもの)。
| ファイル | 内容 |
|---|---|
..._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 virtual-links / show ospf border-routers / show ospf database router self-originate / show ospf trace events |
..._log.txt | そのSTEPの範囲だけに絞ったshow logging |
..._run.txt | そのSTEP時点のshow running-config(=そのSTEPの検証Config) |
..._cfg.txt | そのSTEPで投入した設定。 configureからcommitまでの記録に、装置が返すshow configuration commit changes last 1の差分を付けたもの。設定を入れたルータの分だけあります |
STEP 0:ラボAの初期状態 — R3がABRとして扱われず、R4に経路が1本も入らない
| ルータ | show出力 | syslog | running-config | 投入した設定 |
|---|---|---|---|---|
| R1 | show | log | run | — |
| R2 | show | log | run | — |
| R3 | show | log | run | — |
| R4 | show | log | run | — |
STEP 1:R2側だけに設定 — 張られない。コストは65535
| ルータ | show出力 | syslog | running-config | 投入した設定 |
|---|---|---|---|---|
| R1 | show | log | run | — |
| R2 | show | log | run | cfg |
| R3 | show | log | run | — |
| R4 | show | log | run | — |
STEP 2:R3側にも設定 — 確立して経路が通る。R3がABRになる
| ルータ | show出力 | syslog | running-config | 投入した設定 |
|---|---|---|---|---|
| R1 | show | log | run | — |
| R2 | show | log | run | — |
| R3 | show | log | run | cfg |
| R4 | show | log | run | — |
STEP 3:トランジットエリアをスタブにする — commitが拒否される
| ルータ | show出力 | syslog | running-config | 投入した設定 |
|---|---|---|---|---|
| R1 | show | log | run | — |
| R2 | show | log | run | cfg |
| R3 | show | log | run | — |
| R4 | show | log | run | — |
STEP 4:トランジット区間のコストを50に — バーチャルリンクのコストが追随する
| ルータ | show出力 | syslog | running-config | 投入した設定 |
|---|---|---|---|---|
| R1 | show | log | run | — |
| R2 | show | log | run | cfg |
| R3 | show | log | run | cfg |
| R4 | show | log | run | — |
STEP 5:コストとバーチャルリンクを削除 — エリア2が再び孤立する
| ルータ | show出力 | syslog | running-config | 投入した設定 |
|---|---|---|---|---|
| R1 | show | log | run | — |
| R2 | show | log | run | cfg |
| R3 | show | log | run | cfg |
| R4 | show | log | run | — |
STEP 6:R3 - R4をエリア0へ移す — バックボーンが分断される
| ルータ | show出力 | syslog | running-config | 投入した設定 |
|---|---|---|---|---|
| R1 | show | log | run | — |
| R2 | show | log | run | — |
| R3 | show | log | run | cfg |
| R4 | show | log | run | cfg |
STEP 7:バーチャルリンクを設定 — 分断が修復され、経路がエリア内経路になる
| ルータ | show出力 | syslog | running-config | 投入した設定 |
|---|---|---|---|---|
| R1 | show | log | run | — |
| R2 | show | log | run | cfg |
| R3 | show | log | run | cfg |
| R4 | show | log | run | — |
STEP 8:すべて初期構成へ戻す(最終状態) — STEP 0と同じ状態
| ルータ | show出力 | syslog | running-config | 投入した設定 |
|---|---|---|---|---|
| R1 | show | log | run | — |
| R2 | show | log | run | cfg |
| R3 | show | log | run | cfg |
| R4 | show | log | run | cfg |
キャプチャーはラボAの確立時とラボBの修復時に、トランジット側(R2 - R3)とエリア0側(R1 - R2)の両方で取りました。
ラボA 確立時のトランジット側(STEP 2)
ラボA 確立時のエリア0側(STEP 2)
ラボB 修復時のトランジット側(STEP 7)
ラボB 修復時のエリア0側(STEP 7)
参考
| RFC | タイトル | 概要 |
|---|---|---|
| RFC 2328 | OSPF Version 2 | バックボーンが連続していること(Section 3.1)、スタブエリアにバーチャルリンクを通せないこと(Section 3.6)、バーチャルリンクの定義とコストの決まり方(Section 15)、Router-LSAのVビット(Section 12.4.1)。 |
関連記事
- OSPFとは
- OSPFのルータID
- OSPFパケットの種類とヘッダーフォーマット
- OSPFの認証
- OSPFの状態遷移
- OSPF Optionsフィールド
- OSPFのDRとBDR
- OSPF ネットワークタイプ
- OSPFのコスト(メトリック)
- OSPFの外部経路(スタティックの再配布)
- OSPFのマルチエリアとABR
- OSPFのバーチャルリンク
- 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)
- OSPFのNSSA External-LSA(Type 7)