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

OSPFのNetwork-LSA(Type 2)

目次

Network-LSAとは

Network-LSA(Type 2)は、ブロードキャストのセグメントそのものを表すLSAです。Router-LSA(Type 1)がルータ1台の足元を書くのに対して、こちらは「この1本のイーサネットに誰と誰が乗っているか」を書きます。生成するのはそのセグメントのDRだけです。

項目内容
生成するルータDRだけ。BDRもDROTHERも生成しない
いくつ作るかセグメント1本につき1つ。DRが2つのセグメントを持てば2つ作る
届く範囲そのエリアの中だけ
Link State IDDRのインタフェースアドレス。ルータIDではない
Advertising RouterDRのルータID

Link State IDとAdvertising Routerが「同じルータの別々の値」を指しているのがこのLSAの特徴です。

なぜセグメントを1つの頂点にするのか

point-to-pointのリンクなら、両端のRouter-LSAが互いを指すだけで「2点を結ぶ線」を表現できます。ところがブロードキャストのセグメントは何台でも乗れる面なので、線の集まりで表そうとすると数が爆発します。

4台なら辺は6本(向きを数えれば12)、10台なら45本です。台数の2乗で増えていきます。そこでOSPFは、セグメント自体をグラフの頂点として1つ立て、各ルータからその頂点へ辺を1本ずつ引く形にしました。これなら辺は台数と同じ数で済みます。

その「頂点」の実体がNetwork-LSAです。Type 2が無ければ、SPFはブロードキャストのセグメントを扱えません。

パケットフォーマット

20バイトの共通ヘッダーのあとは、4バイトのNetwork Maskと、4バイトのAttached Routerが並ぶだけです。

フィールドサイズ内容
Network Mask4バイトそのセグメントのサブネットマスク
Attached Router4バイト × Nセグメントで完全隣接になっている全ルータのルータID。DR自身も含む

メトリックのフィールドがありません。 ネットワークからルータへ向かう辺のコストは常に0と決まっているためです(RFC 2328のSection 16.1)。ルータからネットワークへ向かうコストは、Router-LSAのTransitエントリのほうが持っています。

宛先のプレフィックスがどこにも書かれていない点にも注意が必要です。Link State ID(=DRのアドレス)とNetwork Maskの論理積で復元します。10.0.0.1/24なら10.0.0.0/24です。

検証トポロジ

ルータLo0Gi0/0/0/0プライオリティ起動時の役割
R11.1.1.1/3210.0.0.1/24100DR
R22.2.2.2/3210.0.0.2/2450BDR
R33.3.3.3/3210.0.0.3/240DROTHER
R44.4.4.4/3210.0.0.4/24既定(1)DROTHER

4台とも単一エリア(エリア0)で、Lo0はpassive enableです。R3だけプライオリティ0にしてあり、DRにもBDRにもなれません。それでもセグメントには乗っているので、Attached Routerには載るはずです。

DR/BDRの選出そのものはDRとBDRで扱っています。この記事は選出の結果がNetwork-LSAにどう表れるかに絞ります。

セグメントとLSAの対応

起動直後のNetwork-LSAです。show ospf database network self-originate自分がDRとして出したものだけを表示するので、DRのR1でしか中身が出ません。

R1(DR) show ospf database network self-originate(STEP 0)
RP/0/RP0/CPU0:R1#show ospf database network self-originate
Tue Sep  8 10:11:32.960 UTC


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

		Net Link States (Area 0)

  Routing Bit Set on this LSA
  LS age: 68
  Options: (No TOS-capability, DC)
  LS Type: Network Links
  Link State ID: 10.0.0.1 (address of Designated Router)
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000002
  Checksum: 0x9960
  Length: 40
  Network Mask: /24
	Attached Router: 1.1.1.1
	Attached Router: 2.2.2.2
	Attached Router: 3.3.3.3
	Attached Router: 4.4.4.4
フィールドどこから来たか
Link State ID10.0.0.1DRであるR1のインタフェースアドレス。ルータIDの1.1.1.1ではない
Advertising Router1.1.1.1R1のルータID
Network Mask/24セグメントのマスク。宛先10.0.0.0/24はLink State IDとの論理積
Attached Router1.1.1.1 / 2.2.2.2 / 3.3.3.3 / 4.4.4.44台すべて。プライオリティ0のR3もDR自身のR1も入る

プライオリティ0のR3が載っているのがポイントです。「DRになれない」ことと「そのセグメントにいる」ことは別の話で、Attached Routerは後者だけを表します。

4台のRouter-LSAが同じ値を指す

Network-LSAが頂点だとして、そこへ向かう辺はどこにあるかというと、各ルータのRouter-LSAのTransitエントリです。4台とも、Link IDにDRのアドレスを書いています。

ルータTransitエントリの Link IDLink Data
R110.0.0.110.0.0.1
R210.0.0.110.0.0.2
R310.0.0.110.0.0.3
R410.0.0.110.0.0.4

Link IDは4台とも同じ10.0.0.1で、Link Dataだけが各自のアドレスです。この共通のLink IDが、Router-LSAとNetwork-LSAを結ぶ鍵になります。SPFはTransitエントリのLink IDと同じLink State IDを持つNetwork-LSAを探して、そこへ辺を張ります。

LSDBを1行ずつ見ると、Router-LSAが4つとNetwork-LSAが1つという構成がそのまま見えます。

R2 show ospf database(STEP 0)
RP/0/RP0/CPU0:R2#show ospf database
Tue Sep  8 10:11:51.818 UTC


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

		Router Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum Link count
1.1.1.1         1.1.1.1         95          0x80000003 0x0015e8 2
2.2.2.2         2.2.2.2         94          0x80000003 0x0005eb 2
3.3.3.3         3.3.3.3         88          0x80000003 0x00f4ee 2
4.4.4.4         4.4.4.4         88          0x80000003 0x00e4f1 2

		Net Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum
10.0.0.1        1.1.1.1         88          0x80000002 0x009960

ルータ4台に対してRouter-LSAが4つ、ブロードキャストのセグメント1本に対してNetwork-LSAが1つです。この数が合わなければ、隣接が張れていないかネットワークタイプの設定が違います。

パケットで見ると、Network Maskの位置とAttached Routerの並びがそのまま確認できます。キャプチャーのNo.142です。

No.142 R1が出したNetwork-LSA(tshark -V)
Open Shortest Path First
    OSPF Header
        Version: 2
        Message Type: LS Update (4)
        Packet Length: 68
        Source OSPF Router: 1.1.1.1
        Area ID: 0.0.0.0 (Backbone)
        Checksum: 0xa50a [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 2 (Network-LSA), len 40
            .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: Network-LSA (2)
            Link State ID: 10.0.0.1
            Advertising Router: 1.1.1.1
            Sequence Number: 0x80000004
            Checksum: 0x9562
            Length: 40
            Netmask: 255.255.255.0
            Attached Router: 1.1.1.1
            Attached Router: 2.2.2.2
            Attached Router: 3.3.3.3
            Attached Router: 4.4.4.4
上のtshark出力のパケット(No.142 R1のNetwork-LSA)のpcapをダウンロード

設定を変えるとどう変わるか

4台の構成を1つずつ崩して、Network-LSAがどう追従するかを見ました。7STEPぶんをまとめます。

STEP操作生成者Link State IDSeqAttached Router
0起動直後R110.0.0.1800000024台
1R3(プライオリティ0)をshutdownR110.0.0.1800000033台(R3が消える)
2R3を復旧R110.0.0.1800000044台
3DRのR1をshutdownR210.0.0.2800000013台
4R1を復旧R210.0.0.2800000024台(R1が再登場)
5R1・R3・R4をshutdownNetwork-LSAが消滅
6全復旧(最終状態)R210.0.0.2800000054台

同じ期間のR2のRouter-LSAは、セグメントの表現がこう変わりました。

STEPR2のRouter-LSAでのセグメント
0〜2Transit → 10.0.0.1
3〜4Transit → 10.0.0.2(DR交代に追従)
5Stub 10.0.0.0
6Transit → 10.0.0.2

DROTHERが1台抜ける — 減るのはAttached Routerだけ

プライオリティ0のR3を落とすと、Attached Routerから3.3.3.3が消えます。

R1 STEP 1:R3を落とした直後
RP/0/RP0/CPU0:R1#show ospf database network self-originate
Tue Sep  8 10:14:43.582 UTC


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

		Net Link States (Area 0)

  Routing Bit Set on this LSA
  LS age: 56
  Options: (No TOS-capability, DC)
  LS Type: Network Links
  Link State ID: 10.0.0.1 (address of Designated Router)
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000003
  Checksum: 0x8880
  Length: 36
  Network Mask: /24
	Attached Router: 1.1.1.1
	Attached Router: 2.2.2.2
	Attached Router: 4.4.4.4

Link State IDもAdvertising Routerも変わりません。DRが替わっていないので、LSAの「識別子」は同じままで、中身のリストだけが更新されます。シーケンス番号が80000002から80000003へ1つ増えました。

DRが落ちる — 別のLink State IDで作り直される

ここからが本題です。DRのR1を落とすと、BDRだったR2がDRに昇格します。そしてR2は、自分のアドレスをLink State IDにした別のNetwork-LSAを新規に作ります

R2 STEP 3:DRに昇格した直後
RP/0/RP0/CPU0:R2#show ospf database network self-originate
Tue Sep  8 10:22:28.507 UTC


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

		Net Link States (Area 0)

  Routing Bit Set on this LSA
  LS age: 142
  Options: (No TOS-capability, DC)
  LS Type: Network Links
  Link State ID: 10.0.0.2 (address of Designated Router)
  Advertising Router: 2.2.2.2
  LS Seq Number: 80000001
  Checksum: 0xb845
  Length: 36
  Network Mask: /24
	Attached Router: 2.2.2.2
	Attached Router: 3.3.3.3
	Attached Router: 4.4.4.4

Link State IDが10.0.0.1から10.0.0.2へ変わり、シーケンス番号は80000001から始まっています。同じセグメントを表すLSAなのに、別のLSAとして作り直されるのがType 2の特徴です。LSAは「LS Type・Link State ID・Advertising Router」の3つ組で識別されるので、DRが替われば3つ組のうち2つが変わり、まったく別のLSAになります。

パケットでも、R2が出した最初のNetwork-LSAが確認できます。

No.251 新DRのR2が出した最初のNetwork-LSA(tshark -V)
Open Shortest Path First
    OSPF Header
        Version: 2
        Message Type: LS Update (4)
        Packet Length: 64
        Source OSPF Router: 2.2.2.2
        Area ID: 0.0.0.0 (Backbone)
        Checksum: 0x802f [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 2 (Network-LSA), len 36
            .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: Network-LSA (2)
            Link State ID: 10.0.0.2
            Advertising Router: 2.2.2.2
            Sequence Number: 0x80000001
            Checksum: 0xb845
            Length: 36
            Netmask: 255.255.255.0
            Attached Router: 2.2.2.2
            Attached Router: 3.3.3.3
            Attached Router: 4.4.4.4
上のtshark出力のパケット(No.251 新DRの最初のNetwork-LSA)のpcapをダウンロード

古いNetwork-LSAはすぐには消えない

では、R1が出していた10.0.0.1のLSAはどうなったでしょうか。取り消されずにLSDBに残っていました。

R2 STEP 3:LSDBには古いLSAも残っている
RP/0/RP0/CPU0:R2#show ospf database network
Tue Sep  8 10:22:27.255 UTC


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

		Net Link States (Area 0)

  LS age: 360
  Options: (No TOS-capability, DC)
  LS Type: Network Links
  Link State ID: 10.0.0.1 (address of Designated Router)
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000004
  Checksum: 0x9562
  Length: 40
  Network Mask: /24
	Attached Router: 1.1.1.1
	Attached Router: 2.2.2.2
	Attached Router: 3.3.3.3
	Attached Router: 4.4.4.4

  Routing Bit Set on this LSA
  LS age: 140
  Options: (No TOS-capability, DC)
  LS Type: Network Links
  Link State ID: 10.0.0.2 (address of Designated Router)
  Advertising Router: 2.2.2.2
  LS Seq Number: 80000001
  Checksum: 0xb845
  Length: 36
  Network Mask: /24
	Attached Router: 2.2.2.2
	Attached Router: 3.3.3.3
	Attached Router: 4.4.4.4

10.0.0.1(Advertising Router 1.1.1.1)と10.0.0.2(同2.2.2.2)の2つが並んでいます。前者のLS ageは加齢を続けています。

R1自身はどうかというと、自分のLSDBからは削除済みです。

R1 STEP 3:R1自身はもう持っていない
RP/0/RP0/CPU0:R1#show ospf database network
Tue Sep  8 10:22:04.305 UTC


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

出力が見出しだけで終わっています。つまりR1は「自分はもうDRではない」と判断してLSAを取り下げたのに、インタフェースが落ちているのでセグメントへ伝える手段が無いという状態です。

これで困らないのは、SPFがこのLSAを使わないからです。R2・R3・R4のTransitエントリはすでに10.0.0.2を指しているので、10.0.0.1のNetwork-LSAはどのRouter-LSAからも参照されない孤立した頂点になります。RFC 2328のSection 16.1が定める双方向の確認で落とされ、経路計算には影響しません。あとはMaxAge(3600秒)まで加齢して自然に消えるのを待つだけです。

つまり、LSAの取り消しは、取り消しを届けられる経路があって初めて成立します。障害でルータが孤立したとき、そのルータが出していたLSAがしばらく残って見えるのはこのためです。

復旧した瞬間に取り消しが飛ぶ

R1のインタフェースを戻すと、R1は隣接を張り直し、その場で古いLSAをMaxAgeにして取り消します。キャプチャーのNo.334がその瞬間です。

No.334 R1が古いNetwork-LSAを取り消すLSU(tshark -V)
Open Shortest Path First
    OSPF Header
        Version: 2
        Message Type: LS Update (4)
        Packet Length: 68
        Source OSPF Router: 1.1.1.1
        Area ID: 0.0.0.0 (Backbone)
        Checksum: 0x98f9 [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 2 (Network-LSA), len 40
            .000 1110 0001 0000 = LS Age (seconds): 3600
            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: Network-LSA (2)
            Link State ID: 10.0.0.1
            Advertising Router: 1.1.1.1
            Sequence Number: 0x80000005
            Checksum: 0x9363
            Length: 40
            Netmask: 255.255.255.0
            Attached Router: 1.1.1.1
            Attached Router: 2.2.2.2
            Attached Router: 3.3.3.3
            Attached Router: 4.4.4.4
上のtshark出力のパケット(No.334 古いNetwork-LSAの取り消し)のpcapをダウンロード

LS Age (seconds): 3600が入っています。これはプリマチュアエイジングと呼ばれる取り消しの手順で、生成したルータが自分のLSAを消したいときにMaxAgeを入れて流し直します(RFC 2328のSection 14.1)。シーケンス番号も80000005へ1つ進めてあり、受け取った側は「これが最新版で、しかも寿命切れ」と判断してLSDBから外します。

このLSUの送信元が1.1.1.1である点も重要です。取り消せるのは、そのLSAを作った本人だけです。

復旧後のR2のNetwork-LSAは、Link State IDが10.0.0.2のまま、Attached Routerに1.1.1.1が戻ります。

R2 STEP 4:R1が戻ったあと
RP/0/RP0/CPU0:R2#show ospf database network self-originate
Tue Sep  8 10:26:08.989 UTC


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

		Net Link States (Area 0)

  Routing Bit Set on this LSA
  LS age: 136
  Options: (No TOS-capability, DC)
  LS Type: Network Links
  Link State ID: 10.0.0.2 (address of Designated Router)
  Advertising Router: 2.2.2.2
  LS Seq Number: 80000002
  Checksum: 0x7183
  Length: 40
  Network Mask: /24
	Attached Router: 1.1.1.1
	Attached Router: 2.2.2.2
	Attached Router: 3.3.3.3
	Attached Router: 4.4.4.4

Link State IDは10.0.0.1には戻りません。 DR/BDRの選出は非プリエンプティブで、プライオリティ100のR1が戻ってきてもDRはR2のままだからです。R1はDROTHERとして復帰し、Attached Routerの一員に戻るだけです。

セグメントに1台だけになる — Network-LSAが消える

最後に、DRのR2だけを残して他の3台を落とします。

R2 STEP 5:Network-LSAが1つも無い
RP/0/RP0/CPU0:R2#show ospf database network
Tue Sep  8 10:30:00.923 UTC


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

Network-LSAが完全に消えました。 R2はshow ospf interface briefではまだDRのままですが、完全隣接が1つも無いDRはNetwork-LSAを生成しません(RFC 2328のSection 12.4.2)。1台しかいないブロードキャストのセグメントは、面として扱う意味が無いからです。

このときR2のRouter-LSAでは、セグメントがTransitではなくStubになります。

R2 STEP 5:セグメントがStubに変わる
RP/0/RP0/CPU0:R2#show ospf database router self-originate
Tue Sep  8 10:30:03.461 UTC


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

		Router Link States (Area 0)

  LS age: 96
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 2.2.2.2
  Advertising Router: 2.2.2.2
  LS Seq Number: 80000005
  Checksum: 0xea10
  Length: 48
   Number of Links: 2

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 2.2.2.2
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 10.0.0.0
     (Link Data) Network Mask: 255.255.255.0
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

10.0.0.0 / 255.255.255.0のStubエントリです。Network-LSAという頂点が無くなったので、Router-LSAが直接プレフィックスを広告する形に切り替わります。 同じ物理セグメントでも、乗っている台数によってグラフでの表し方が変わるわけです。

SPFでの扱い

Network-LSAは頂点であって、コストを持ちません。R2から見た経路のコストを確認します。

R2 show ospf routes(STEP 0)
RP/0/RP0/CPU0:R2#show ospf routes
Tue Sep  8 10:11:55.997 UTC

Topology Table for ospf 1 with ID 2.2.2.2

Codes: O - Intra area, O IA - Inter area
       O E1 - External type 1, O E2 - External type 2
       O N1 - NSSA external type 1, O N2 - NSSA external type 2

O    1.1.1.1/32, metric 2
       10.0.0.1, from 1.1.1.1, via GigabitEthernet0/0/0/0, ifIndex 3, path-id 1
O    2.2.2.2/32, metric 1
       2.2.2.2, directly connected, via Loopback0, ifIndex 7
O    3.3.3.3/32, metric 2
       10.0.0.3, from 3.3.3.3, via GigabitEthernet0/0/0/0, ifIndex 3, path-id 1
O    4.4.4.4/32, metric 2
       10.0.0.4, from 4.4.4.4, via GigabitEthernet0/0/0/0, ifIndex 3, path-id 1
O    10.0.0.0/24, metric 1
       10.0.0.2, directly connected, via GigabitEthernet0/0/0/0, ifIndex 3
宛先コストの内訳show ospf routes
10.0.0.0/24R2 → セグメント 1metric 1
1.1.1.1/32R2 → セグメント 1 + セグメント → R1 0 + R1のStub 1metric 2
3.3.3.3/32同上(R3のStub)metric 2
4.4.4.4/32同上(R4のStub)metric 2

セグメントを1本渡るコストは、入る側の1だけです。ネットワークからルータへ出ていく辺は0コストなので、4台のうちどの相手へ行ってもmetric 2で揃います。これはブロードキャストのセグメントが「1ホップで全員に届く」という実態と一致しています。

もしType 2が無くて完全メッシュで表していたら、辺のコストを両方向ぶん持つことになり、同じ結果を得るのに6本ぶんの情報が必要でした。Network-LSAは、表現をコンパクトにすると同時にコストの計算も単純にしています。

まとめ

見たいものどこを見るか
そのセグメントのDRは誰かNetwork-LSAのAdvertising Router(ルータID)
DRのインタフェースアドレスLink State ID
セグメントに誰がいるかAttached Router。プライオリティ0のルータも載る
セグメントのプレフィックスLink State ID と Network Mask の論理積
DRが交代したかLink State IDが変わっていれば交代している
セグメントが1台になっていないかNetwork-LSAが消え、Router-LSAでStubになっていれば1台

Network-LSAは短いLSAですが、「DRが誰か」と「誰が乗っているか」という運用で一番知りたい2つが、そのまま1つのLSAに入っていますshow ospf neighborを全台で叩いて回るより、DRのNetwork-LSAを1つ見るほうが早いことも多いはずです。

参考

文書内容
RFC 2328Section 12.4.2Network-LSAの生成規則。DRが生成し、完全隣接が無ければ生成しない
RFC 2328Section 13.4自分が出したLSAをMaxAgeで取り消す手順(プリマチュアエイジング)
RFC 2328Section 14.1プリマチュアエイジングの規定。取り消せるのは生成したルータだけ
RFC 2328Appendix A.4.3Network-LSAのパケットフォーマット(メトリックのフィールドが無い)
RFC 2328Section 16.1SPF計算。ネットワーク頂点、ネットワークからルータへの辺は0コスト、双方向の確認
RFC 2328Section 9.4DR選出が非プリエンプティブであること

検証構成

CMLに4台のXRd(IOS XR 26.1.1)を1つのイーサネットセグメント(10.0.0.0/24)で接続したラボです。変更したのはインタフェースのshutdownだけで、OSPFの設定は起動時のまま動かしていません。キャプチャーはR2とスイッチの間の1か所で、24分間を通しで取っています(R2は全STEPを通してダウンしないので、DR交代も取り消しもこの1本に収まります)。

R2 - スイッチ間の24分間のキャプチャーをダウンロード

検証Configおよびshow結果

各STEPで4台すべてから、次の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 network self-originate / show ospf database router self-originate / show ospf border-routers / show ospf routes / show ospf database database-summary
..._log.txtそのSTEPの範囲だけに絞ったshow logging
..._run.txtそのSTEP時点のshow running-config(=そのSTEPの検証Config)

show ospf database network self-originateを足したのがこの記事の要です。自分がDRとして出したNetwork-LSAだけが出るので、どのルータの出力に中身があるかを見るだけでDRが判別できます。

STEP 0:起動直後(R1がDR)

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

STEP 1:R3(プライオリティ0)をshutdown

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

STEP 2:R3を復旧

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

STEP 3:DRのR1をshutdown(R2がDRに昇格)

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

STEP 4:R1を復旧(DRはR2のまま)

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

STEP 5:R1・R3・R4をshutdown(DRのR2だけ)

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

STEP 6:全復旧(最終状態)

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

関連記事