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

OSPFのルータIDが重複したときの挙動

目次

ルータIDが重複すると何が起きるか

OSPFのルータIDはAS内で一意でなければなりません (RFC 2328 §1.2、Appendix C.1)。 決まり方や変わるタイミングはOSPFのルータIDで解説しています。

重複したときの壊れ方は、重複した2台が直接つながっているかどうかで変わります。 気づき方も、直し方の難しさも違います。

重複した2台の位置装置は気づくか何が起きるか
直結(隣同士)気づく。 %ROUTING-OSPF-3-DUP_RTRID がsyslogに出るそのリンクの隣接が成立しない
非隣接(間に1台以上ある)気づかない。 ログに何も出ない隣接は正常なまま、経路表から片方のプレフィックスが消える

違いの理由は、ルータIDを運ぶものが2種類あって届く範囲が違うことです。

Helloは隣まで、LSAはドメイン全体

重複はどういうときに起きるか

ルータIDは手で設定するか、装置が自動で選ぶかのどちらかです。どちらにも重複する道があります。

  • 設定の流用。 既存ルータのConfigをひな形にして新しいルータを作り、router-idを書き換え忘れる
  • ループバックの付け替え。 自動選出は多くの実装でループバックのアドレスから選ぶので、別のルータで 使っていたアドレスをループバックに付けると、そのままルータIDが重複する
  • 装置の入れ替え。 退役させたルータのループバックを新しいルータに引き継ぎ、旧機が止まっていない

どれも「片方だけを見ていると気づけない」形です。とくに非隣接の重複は、 重複している当事者のsyslogにも何も出ません。

直結なら装置が気づく

Helloには送信元のルータIDが入っています。自分と同じルータIDのHelloが届けば、相手が自分と同じIDを 名乗っていると分かります。IOS XRはこれを検出してsyslogに記録し、その相手との隣接を作りません。

ただしこの振る舞いはRFCの規定ではありません。 RFC 2328は重複を検出したときの処理を定めておらず、 実装が決めています。

非隣接だと誰も気づかない

Helloは転送されません。 届くのは同じリンクの相手までなので、間に1台でも挟まっていれば、 重複した2台はお互いのHelloを見る機会がありません。ログにも何も出ません。

壊れるのはLSDBの側です。LSAは「LSタイプ・Link State ID・Advertising Router」の組で識別され、 データベースはその組に対して1つしかインスタンスを持てません(RFC 2328 §12.1、§13)。 Router-LSAのAdvertising RouterはそのルータのルータIDなので、同じIDの2台が出したRouter-LSAは 同じLSAとして扱われ、片方で上書きされます。

上書きされた側のリンク情報はドメインから消えます。そのルータだけが広告していたプレフィックス (ループバックなど)はどこからも到達できなくなります。

RFC 2328 §13.4には「自分のルータIDを持つLSAを受け取り、それが自分の最後に出した版より新しければ、 シーケンス番号を1つ進めて出し直さなければならない」という規定があります。これが働けば両者が シーケンス番号を上げ合うことになりますが、この検証では観測できませんでした(後半で示します。 5分おいてもシーケンス番号は80000005から動かず、LS ageが1075から1676に進んだだけでした)。

経路が消えるのは、隣接が落ちるからではない

ルータIDを変えると、IOS XRは古いルータIDで出した自己生成LSAをMaxAge(3600秒)で取り消してから、 新しいIDで出し直します(RFC 2328 Appendix C.1が「フラッシュしてから変えるべき」と求めている動作)。

つまりLSDBは設定変更とほぼ同時に変わります。 一方、隣接が落ちるのはDeadインターバルの満了待ちです。 先に壊れるのはLSDBで、隣接のDOWNは後からついてきます。 この2つは別の時間なので、 切り分けて測る必要があります。

検証構成

IOS XR(XRd 26.1.1)4台を直線につなぎます。全リンクはpoint-to-point・コスト1・エリア0で、 Loopback0はルータIDと同じアドレスです。R1のルータIDは変えません。 R2を1.1.1.1にすれば直結の重複、R3を1.1.1.1にすれば非隣接の重複になります。

OSPFのルータID重複の検証構成
ルータ管理IPルータID役割
R110.19.3.661.1.1.1重複される側。IDは変えない
R210.19.3.672.2.2.2直結の重複ではここを1.1.1.1にする
R310.19.3.683.3.3.3非隣接の重複ではここを1.1.1.1にする
R410.19.3.694.4.4.4観測点。全STEPで設定を変えない

検証は6段階です。

|STEP|操作|確かめること| |0|初期状態(4台のルータIDが一意)|R4 から 1.1.1.1 まで届く。Router-LSA は4つ| |1|R3 のルータIDを 1.1.1.1 にする(非隣接の重複)|DUP_RTRID は出ない。R2 からは同じ Neighbor ID が2つ見え、R4 の経路表から 1.1.1.1/32 が消える| |2|操作なし(5分後に採り直す)|シーケンス番号が動いていない=上げ合いは起きていない| |3|R3 のルータIDを 3.3.3.3 に戻す|復旧| |4|R2 のルータIDを 1.1.1.1 にする(直結の重複)|DUP_RTRID が両側に出て、R1 の隣接が 0 本になる| |5|R2 のルータIDを 2.2.2.2 に戻す(最終状態)|復旧|

断を測るpingはR4から流します。 設定を変えるルータへ別のSSHを重ねると、 2本目が鍵交換の段階で切られて設定の投入だけが静かに失敗するため、 観測点は全STEPで触らないルータにしてあります。

非隣接の重複(STEP 1・2)

R3のルータIDを、R1と同じ1.1.1.1に変えます。R1とR3の間にはR2があるので直接はつながっていません。

STEP 1:R3のルータIDを1.1.1.1にする
RP/0/RP0/CPU0:R3#show configuration commit changes last 1
Sun Oct  4 07:35:58.317 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router ospf 1
 router-id 1.1.1.1
!
end

R3が送るHelloの送信元ルータIDは、この変更の直後から1.1.1.1になります。

STEP 1:R2 - R3 を流れたHelloの送信元ルータID(R3発、全数)
2026-10-04T16:35:49.423534000+0900	3.3.3.3
2026-10-04T16:35:57.484474000+0900	1.1.1.1
2026-10-04T16:36:07.310177000+0900	1.1.1.1
2026-10-04T16:36:17.096025000+0900	1.1.1.1
2026-10-04T16:36:26.852953000+0900	1.1.1.1
2026-10-04T16:36:36.269512000+0900	1.1.1.1
2026-10-04T16:36:45.537587000+0900	1.1.1.1
2026-10-04T16:36:55.412025000+0900	1.1.1.1
2026-10-04T16:37:05.284527000+0900	1.1.1.1
2026-10-04T16:37:14.892085000+0900	1.1.1.1
2026-10-04T16:37:24.487593000+0900	1.1.1.1
2026-10-04T16:37:33.940956000+0900	1.1.1.1
2026-10-04T16:37:43.746264000+0900	1.1.1.1
2026-10-04T16:37:52.751657000+0900	1.1.1.1
2026-10-04T16:38:02.117694000+0900	1.1.1.1
2026-10-04T16:38:12.112898000+0900	1.1.1.1
2026-10-04T16:38:22.010363000+0900	1.1.1.1
2026-10-04T16:38:32.007094000+0900	1.1.1.1
2026-10-04T16:38:41.550484000+0900	1.1.1.1
2026-10-04T16:38:51.407694000+0900	1.1.1.1
2026-10-04T16:39:01.020104000+0900	1.1.1.1
2026-10-04T16:39:10.856573000+0900	1.1.1.1
2026-10-04T16:39:20.656685000+0900	1.1.1.1
2026-10-04T16:39:30.172935000+0900	1.1.1.1
2026-10-04T16:39:39.600403000+0900	1.1.1.1
2026-10-04T16:39:48.614523000+0900	1.1.1.1
2026-10-04T16:39:58.074098000+0900	1.1.1.1
2026-10-04T16:40:07.297057000+0900	1.1.1.1
2026-10-04T16:40:16.453573000+0900	1.1.1.1
2026-10-04T16:40:25.850353000+0900	1.1.1.1
2026-10-04T16:40:35.784673000+0900	1.1.1.1
2026-10-04T16:40:45.647488000+0900	1.1.1.1
2026-10-04T16:40:55.026390000+0900	1.1.1.1
2026-10-04T16:41:04.238121000+0900	1.1.1.1
2026-10-04T16:41:13.618342000+0900	1.1.1.1
2026-10-04T16:41:22.668012000+0900	1.1.1.1
2026-10-04T16:41:31.957462000+0900	1.1.1.1
2026-10-04T16:41:41.026920000+0900	1.1.1.1
2026-10-04T16:41:50.951032000+0900	1.1.1.1
2026-10-04T16:42:00.678712000+0900	1.1.1.1
2026-10-04T16:42:10.478377000+0900	1.1.1.1
2026-10-04T16:42:19.629626000+0900	1.1.1.1
2026-10-04T16:42:28.674133000+0900	1.1.1.1
2026-10-04T16:42:37.727899000+0900	1.1.1.1
2026-10-04T16:42:47.058305000+0900	1.1.1.1
2026-10-04T16:42:56.832617000+0900	1.1.1.1
2026-10-04T16:43:05.904306000+0900	1.1.1.1
2026-10-04T16:43:15.292478000+0900	1.1.1.1
2026-10-04T16:43:24.853099000+0900	1.1.1.1
2026-10-04T16:43:34.531342000+0900	1.1.1.1
2026-10-04T16:43:44.035074000+0900	1.1.1.1
2026-10-04T16:43:53.791159000+0900	1.1.1.1
2026-10-04T16:44:03.444978000+0900	1.1.1.1
2026-10-04T16:44:12.566563000+0900	1.1.1.1
2026-10-04T16:44:22.231932000+0900	1.1.1.1
2026-10-04T16:44:31.913449000+0900	1.1.1.1
2026-10-04T16:44:41.279111000+0900	1.1.1.1
2026-10-04T16:44:51.178141000+0900	1.1.1.1
2026-10-04T16:45:00.406619000+0900	1.1.1.1
2026-10-04T16:45:10.140573000+0900	1.1.1.1
2026-10-04T16:45:19.940915000+0900	1.1.1.1
2026-10-04T16:45:29.065335000+0900	1.1.1.1
2026-10-04T16:45:39.041694000+0900	1.1.1.1
2026-10-04T16:45:48.085635000+0900	1.1.1.1
2026-10-04T16:45:58.041657000+0900	1.1.1.1
2026-10-04T16:46:07.450754000+0900	1.1.1.1
2026-10-04T16:46:16.876595000+0900	1.1.1.1
2026-10-04T16:46:26.779897000+0900	1.1.1.1
2026-10-04T16:46:36.249501000+0900	1.1.1.1
2026-10-04T16:46:45.401109000+0900	1.1.1.1
2026-10-04T16:46:54.663258000+0900	1.1.1.1
2026-10-04T16:47:04.244936000+0900	1.1.1.1
2026-10-04T16:47:13.460051000+0900	1.1.1.1
2026-10-04T16:47:23.306518000+0900	1.1.1.1
2026-10-04T16:47:32.372573000+0900	1.1.1.1
2026-10-04T16:47:42.003859000+0900	1.1.1.1
2026-10-04T16:47:51.315111000+0900	1.1.1.1
2026-10-04T16:48:00.727738000+0900	1.1.1.1
2026-10-04T16:48:10.561063000+0900	1.1.1.1
2026-10-04T16:48:19.812548000+0900	1.1.1.1
2026-10-04T16:48:28.981246000+0900	1.1.1.1
2026-10-04T16:48:38.700556000+0900	1.1.1.1
2026-10-04T16:48:48.095126000+0900	1.1.1.1
2026-10-04T16:48:57.138199000+0900	1.1.1.1
2026-10-04T16:49:06.263352000+0900	1.1.1.1
2026-10-04T16:49:15.363430000+0900	1.1.1.1
2026-10-04T16:49:25.282485000+0900	1.1.1.1
2026-10-04T16:49:34.945380000+0900	1.1.1.1
2026-10-04T16:49:44.284645000+0900	1.1.1.1
2026-10-04T16:49:53.373025000+0900	1.1.1.1
2026-10-04T16:50:02.437164000+0900	1.1.1.1
2026-10-04T16:50:11.669362000+0900	1.1.1.1
2026-10-04T16:50:21.138873000+0900	1.1.1.1
2026-10-04T16:50:30.803502000+0900	1.1.1.1
2026-10-04T16:50:40.634412000+0900	1.1.1.1
2026-10-04T16:50:50.633949000+0900	1.1.1.1
2026-10-04T16:50:59.998715000+0900	1.1.1.1
2026-10-04T16:51:09.554903000+0900	1.1.1.1
2026-10-04T16:51:19.030636000+0900	1.1.1.1
2026-10-04T16:51:28.100038000+0900	1.1.1.1
2026-10-04T16:51:37.667345000+0900	1.1.1.1
2026-10-04T16:51:47.558492000+0900	1.1.1.1
2026-10-04T16:51:56.863024000+0900	1.1.1.1
2026-10-04T16:52:06.780594000+0900	1.1.1.1
2026-10-04T16:52:16.001958000+0900	1.1.1.1
2026-10-04T16:52:25.624606000+0900	1.1.1.1
2026-10-04T16:52:35.060857000+0900	1.1.1.1
2026-10-04T16:52:44.506562000+0900	1.1.1.1
2026-10-04T16:52:54.350931000+0900	1.1.1.1
2026-10-04T16:53:03.573772000+0900	1.1.1.1
2026-10-04T16:53:12.928084000+0900	1.1.1.1
2026-10-04T16:53:22.515443000+0900	1.1.1.1
2026-10-04T16:53:32.372901000+0900	1.1.1.1
2026-10-04T16:53:41.888862000+0900	1.1.1.1
2026-10-04T16:53:51.661093000+0900	1.1.1.1
2026-10-04T16:54:01.108695000+0900	1.1.1.1
2026-10-04T16:54:10.128943000+0900	1.1.1.1
2026-10-04T16:54:19.182326000+0900	1.1.1.1
2026-10-04T16:54:28.911205000+0900	1.1.1.1

同じタイミングで、R3は古いルータIDで出したRouter-LSAをLS Age 3600(MaxAge)にして流し、取り消します。

STEP 1:R3が古いルータIDのRouter-LSAを取り消したLSU(No.101)
Open Shortest Path First
    OSPF Header
        Version: 2
        Message Type: LS Update (4)
        Packet Length: 112
        Source OSPF Router: 3.3.3.3
        Area ID: 0.0.0.0 (Backbone)
        Checksum: 0x84d9 [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 84
            .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: Router-LSA (1)
            Link State ID: 3.3.3.3
            Advertising Router: 3.3.3.3
            Sequence Number: 0x80000004
            Checksum: 0x0111
            Length: 84
            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: 5
            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: PTP      ID: 2.2.2.2         Data: 10.0.23.3       Metric: 1
                Link ID: 2.2.2.2 - Neighboring router's Router ID
                Link Data: 10.0.23.3
                Link Type: 1 - Point-to-point connection to another router
                Number of Metrics: 0 - TOS
                0 Metric: 1
            Type: Stub     ID: 10.0.23.0       Data: 255.255.255.0   Metric: 1
                Link ID: 10.0.23.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: PTP      ID: 4.4.4.4         Data: 10.0.34.3       Metric: 1
                Link ID: 4.4.4.4 - Neighboring router's Router ID
                Link Data: 10.0.34.3
                Link Type: 1 - Point-to-point connection to another router
                Number of Metrics: 0 - TOS
                0 Metric: 1
            Type: Stub     ID: 10.0.34.0       Data: 255.255.255.0   Metric: 1
                Link ID: 10.0.34.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
上のtshark出力のパケット(No.101 LSU)のpcapをダウンロード

続けて、新しいルータID 1.1.1.1 でRouter-LSAを出し直します。 R3のリンクを5本記述したLSAが、 R1と同じAdvertising Router: 1.1.1.1で流れていきます。

STEP 1:R3が新しいルータIDで出したRouter-LSA(No.116)
Open Shortest Path First
    OSPF Header
        Version: 2
        Message Type: LS Update (4)
        Packet Length: 112
        Source OSPF Router: 1.1.1.1
        Area ID: 0.0.0.0 (Backbone)
        Checksum: 0x087b [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 84
            .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: 1.1.1.1
            Advertising Router: 1.1.1.1
            Sequence Number: 0x80000005
            Checksum: 0x9789
            Length: 84
            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: 5
            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: PTP      ID: 2.2.2.2         Data: 10.0.23.3       Metric: 1
                Link ID: 2.2.2.2 - Neighboring router's Router ID
                Link Data: 10.0.23.3
                Link Type: 1 - Point-to-point connection to another router
                Number of Metrics: 0 - TOS
                0 Metric: 1
            Type: Stub     ID: 10.0.23.0       Data: 255.255.255.0   Metric: 1
                Link ID: 10.0.23.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: PTP      ID: 4.4.4.4         Data: 10.0.34.3       Metric: 1
                Link ID: 4.4.4.4 - Neighboring router's Router ID
                Link Data: 10.0.34.3
                Link Type: 1 - Point-to-point connection to another router
                Number of Metrics: 0 - TOS
                0 Metric: 1
            Type: Stub     ID: 10.0.34.0       Data: 255.255.255.0   Metric: 1
                Link ID: 10.0.34.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
上のtshark出力のパケット(No.116 LSU)のpcapをダウンロード

ここから先が、非隣接の重複の分かりにくいところです。R1とR3は、それぞれ自分が出した版を持ったままです。

STEP 1:R1 の show ospf database router self-originate
RP/0/RP0/CPU0:R1#show ospf database router self-originate
Sun Oct  4 07:52:13.297 UTC


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

		Router Link States (Area 0)

  LS age: 1506
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 1.1.1.1
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000003
  Checksum: 0x7955
  Length: 60
   Number of Links: 3

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

    Link connected to: another Router (point-to-point)
     (Link ID) Neighboring Router ID: 2.2.2.2
     (Link Data) Router Interface address: 10.0.12.1
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 10.0.12.0
     (Link Data) Network Mask: 255.255.255.0
      Number of TOS metrics: 0
       TOS 0 Metrics: 1
STEP 1:R3 の show ospf database router self-originate
RP/0/RP0/CPU0:R3#show ospf database router self-originate
Sun Oct  4 07:53:28.428 UTC


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

		Router Link States (Area 0)

  LS age: 1042
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 1.1.1.1
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000005
  Checksum: 0x9789
  Length: 84
   Number of Links: 5

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

    Link connected to: another Router (point-to-point)
     (Link ID) Neighboring Router ID: 2.2.2.2
     (Link Data) Router Interface address: 10.0.23.3
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

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

    Link connected to: another Router (point-to-point)
     (Link ID) Neighboring Router ID: 4.4.4.4
     (Link Data) Router Interface address: 10.0.34.3
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

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

周りのルータが持っているのはR3の版だけです。 R4のLSDBで1.1.1.1のRouter-LSAを見ると、 中身はR3のリンク(3.3.3.3のスタブ、R2とR4へのpoint-to-point)で、R1のリンクはどこにもありません。

STEP 1:R4 の show ospf database router(1.1.1.1 の部分)
  LS age: 1075
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 1.1.1.1
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000005
  Checksum: 0x9789
  Length: 84
   Number of Links: 5

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

    Link connected to: another Router (point-to-point)
     (Link ID) Neighboring Router ID: 2.2.2.2
     (Link Data) Router Interface address: 10.0.23.3
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

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

    Link connected to: another Router (point-to-point)
     (Link ID) Neighboring Router ID: 4.4.4.4
     (Link Data) Router Interface address: 10.0.34.3
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

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

シーケンス番号は80000005のまま動きません。 5分後のSTEP 2でも同じ80000005で、 LS ageが1075から1676に進んだだけでした。RFC 2328 §13.4の「自分の版より新しいものを受け取ったら シーケンス番号を進めて出し直す」は、この構成では働いていません。 起きているのは上げ合いではなく、片方のトポロジが単に消えた状態です。

なぜR1がR3の版を受け取らなかったのかは、この検証では特定できていません。R1のsyslogとtraceには 該当する記録がなく、R1のLSDBは自分の版(80000003)のままでした。R2が両方のインタフェースに 同じNeighbor ID 1.1.1.1を持っていることが関係している可能性はありますが、確かめていません。 ここで示せるのは「周りのルータが持つのは片方の版だけで、もう片方のリンク情報は消える」という 観測までです。

どちらが残るかは構成次第です。 LSAの新旧はシーケンス番号で比べられるので、 先に出したか後に出したかで勝つ側が変わります。この検証ではR3の版(80000005)がR1の版(80000003)より 新しかったため、R1のリンク情報が消えました。「どちらのループバックが届かなくなるか」も同じように変わる ので、症状から重複している2台を絞り込むときは、消えた側だけでなく同じIDを名乗っている2台の両方を探します。

重複に気づく手掛かりは、間にいるルータの隣接表です。R2のGi0/0/0/0とGi0/0/0/1に、 同じNeighbor ID 1.1.1.1が2行並びます。

STEP 1:R2 の show ospf neighbor
RP/0/RP0/CPU0:R2#show ospf neighbor
Sun Oct  4 07:52:43.234 UTC

* Indicates MADJ interface
# Indicates Neighbor awaiting BFD session up

Neighbors for OSPF 1

Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1         1     FULL/  -        00:00:31    10.0.12.1       GigabitEthernet0/0/0/0
    Neighbor is up for 00:25:36
1.1.1.1         1     FULL/  -        00:00:31    10.0.23.3       GigabitEthernet0/0/0/1
    Neighbor is up for 00:16:36

Total neighbor count: 2

経路表では、消えるのは上書きされた側だけです。 R4から見ると、R1のループバック1.1.1.1/32が 無くなっています。R1 - R2間のリンク10.0.12.0/24はR2のLSAにも載っているので残り、 3.3.3.3/32はR3のLSA(1.1.1.1名義)の中にスタブとして入っているので残ります。

STEP 1:R4 の show route ospf(1.1.1.1/32 が無い)
RP/0/RP0/CPU0:R4#show route ospf
Sun Oct  4 07:53:55.310 UTC

O    2.2.2.2/32 [110/3] via 10.0.34.3, 00:17:47, GigabitEthernet0/0/0/0
O    3.3.3.3/32 [110/2] via 10.0.34.3, 00:17:48, GigabitEthernet0/0/0/0
O    10.0.12.0/24 [110/3] via 10.0.34.3, 00:17:47, GigabitEthernet0/0/0/0
O    10.0.23.0/24 [110/2] via 10.0.34.3, 00:17:48, GigabitEthernet0/0/0/0

直結の重複(STEP 4)

R2のルータIDを1.1.1.1にします。R1とR2は直結なので、こちらは装置が気づきます。

STEP 4:R2のルータIDを1.1.1.1にする
RP/0/RP0/CPU0:R2#show configuration commit changes last 1
Sun Oct  4 08:12:02.713 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router ospf 1
 router-id 1.1.1.1
!
end

R1のsyslogに%ROUTING-OSPF-3-DUP_RTRIDが出ます。どのインタフェースのどのアドレスから 同じIDのパケットが来たかまで記録されます。 約20秒ごとに繰り返し出るので、見落としにくい形です。

STEP 4:R1のsyslog(重複の検出から隣接の消滅まで)
RP/0/RP0/CPU0:Oct  4 08:12:01.985 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.2 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:12:21.533 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.2 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:12:40.770 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.2 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:12:41.971 UTC: ospf[1035]: %ROUTING-OSPF-5-ADJCHG : Process 1, Nbr 2.2.2.2 on GigabitEthernet0/0/0/0 in area 0 from FULL to DOWN, Neighbor Down: dead timer expired, vrf default vrfid 0x60000000 

同じログは相手側にも出ます。R2から見れば、R1が自分と同じIDを名乗っていることになります。

STEP 4:R2のsyslog(1件目)
RP/0/RP0/CPU0:Oct  4 08:12:06.919 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:12:11.893 UTC: ospf[1035]: %ROUTING-OSPF-5-ADJCHG : Process 1, Nbr 3.3.3.3 on GigabitEthernet0/0/0/1 in area 0 from LOADING to FULL, Loading Done, vrf default vrfid 0x60000000 
RP/0/RP0/CPU0:Oct  4 08:12:25.398 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:12:44.274 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:13:03.424 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:13:22.210 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:13:41.235 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:14:00.357 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:14:20.133 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:14:39.677 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:14:58.824 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:15:17.524 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:15:37.423 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:15:56.385 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:16:15.752 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:16:34.654 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:16:54.056 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:17:12.815 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:17:32.043 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:17:50.560 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:18:09.722 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:18:29.060 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:18:48.772 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:19:07.521 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:19:26.227 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:19:45.845 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:20:05.425 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:20:24.462 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:20:42.958 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:21:01.759 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:21:21.356 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:21:39.861 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:21:59.130 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:22:17.940 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:22:36.662 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:22:56.228 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:23:15.143 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:23:34.972 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:23:53.608 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:24:12.650 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:24:30.935 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:24:50.261 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:25:09.729 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:25:28.514 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:25:41.684 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[12356]: Accepted authentication/pam for cisco from 10.20.1.1 port 46786 ssh2 
RP/0/RP0/CPU0:Oct  4 08:25:44.970 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[12361]: Received disconnect from 10.20.1.1 port 46786:11: disconnected by user 
RP/0/RP0/CPU0:Oct  4 08:25:44.970 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[12361]: Disconnected from user cisco 10.20.1.1 port 46786 
RP/0/RP0/CPU0:Oct  4 08:25:46.825 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:25:53.770 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[12421]: Accepted authentication/pam for cisco from 10.20.1.1 port 45420 ssh2 
RP/0/RP0/CPU0:Oct  4 08:25:56.095 UTC: logger[65723]: %OS-SYSLOG-6-LOG_INFO : informational STEP4-CLEAR: clear counters interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:25:56.364 UTC: statsd_manager_l[244]: %MGBL-IFSTATS-6-CLEAR_COUNTERS : Clear counters on GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:25:56.483 UTC: logger[65730]: %OS-SYSLOG-6-LOG_INFO : informational STEP4-CLEAR: clear ospf statistics 
RP/0/RP0/CPU0:Oct  4 08:25:56.789 UTC: logger[65736]: %OS-SYSLOG-6-LOG_INFO : informational STEP4-CLEAR: clear counters interface GigabitEthernet0/0/0/1 
RP/0/RP0/CPU0:Oct  4 08:25:57.060 UTC: statsd_manager_l[244]: %MGBL-IFSTATS-6-CLEAR_COUNTERS : Clear counters on GigabitEthernet0/0/0/1 
RP/0/RP0/CPU0:Oct  4 08:25:57.672 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[12426]: Received disconnect from 10.20.1.1 port 45420:11: disconnected by user 
RP/0/RP0/CPU0:Oct  4 08:25:57.672 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[12426]: Disconnected from user cisco 10.20.1.1 port 45420 
RP/0/RP0/CPU0:Oct  4 08:26:05.650 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:26:24.830 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:26:44.047 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:27:02.785 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:27:21.630 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:27:40.182 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:27:59.659 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:28:18.754 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:28:37.739 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 
RP/0/RP0/CPU0:Oct  4 08:28:39.641 UTC: ssh_syslog_proxy[1188]: %SECURITY-SSHD_SYSLOG_PRX-6-INFO_GENERAL : sshd[12688]: Accepted authentication/pam for cisco from 10.20.1.1 port 56560 ssh2 
RP/0/RP0/CPU0:Oct  4 08:28:57.475 UTC: ospf[1035]: %ROUTING-OSPF-3-DUP_RTRID : OSPF detected duplicate router-id 1.1.1.1 from 10.0.12.1 on interface GigabitEthernet0/0/0/0 

隣接は成立しません。R1の隣接表は空になり、R2にはR3との1本だけが残ります (R2 - R3は重複していないので無事です)。

STEP 4:R1 の show ospf neighbor
RP/0/RP0/CPU0:R1#show ospf neighbor
Sun Oct  4 08:28:06.212 UTC
STEP 4:R2 の show ospf neighbor
RP/0/RP0/CPU0:R2#show ospf neighbor
Sun Oct  4 08:28:46.866 UTC

* Indicates MADJ interface
# Indicates Neighbor awaiting BFD session up

Neighbors for OSPF 1

Neighbor ID     Pri   State           Dead Time   Address         Interface
3.3.3.3         1     FULL/  -        00:00:38    10.0.23.3       GigabitEthernet0/0/0/1
    Neighbor is up for 00:16:35

Total neighbor count: 1

疎通が止まるのは設定変更の4〜5秒後

断は、設定を変える前にR4から1.1.1.1へpingを始めて測りました(100ミリ秒間隔)。 収束を待ってから測ると、変更の瞬間をまたげないためです。

STEP成功した発数最初にロスした位置その後
1(非隣接の重複)49発4.9秒後戻らない
3(復旧)—先頭から2.0秒ぶんロス880発すべて成功
4(直結の重複)44発4.4秒後戻らない
5(復旧)—先頭から2.0秒ぶんロス880発すべて成功

どちらの重複でも、疎通が止まるのは設定変更の4〜5秒後です。 一方、直結の重複でR1が隣接を 失ったのはdead timer expiredの時刻、つまり疎通が止まってから40秒ほど後でした。 先に壊れるのはLSDBで、隣接のDOWNはその後という順序が、時刻の差として出ています。

復旧はrouter-idを元に戻すだけで、どちらも2秒ほどで戻りました。プロセスの再起動は要りません。

検証Configおよびshow結果

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

ファイル内容
..._show.txtshow一式(show version / show interface description / show route / show route ospf / show ospf / show ospf interface / show ospf neighbor / show ospf database / show ospf database router / show router-id / show route 1.1.1.1/32 など)
..._log.txtそのSTEPの範囲だけに絞ったshow logging。各STEPの開始時にlogmsgでマーカーを入れ、その時刻をshow logging startに指定して取得したもの
..._run.txtそのSTEP時点のshow running-config(=そのSTEPの検証Config)
..._ping.txtそのSTEPでのpingとtraceroute(収束後の状態)
..._trace.txtshow ospf trace events / errors
..._clear.txt採取前にクリアしたカウンタの記録
..._commit.cfgそのSTEPで実際にcommitされた設定だけ(show configuration commit changes last 1)。設定を変えたルータの分だけ
..._outage.txt設定変更をまたいで流したping(100ミリ秒間隔)。設定を変える前に開始している

STEP 0:初期状態(4台のルータIDが一意)

ルータshow出力syslogrunning-configpingtraceclearcommit断の測定
R1showlogrunpingtraceclear——
R2showlogrun—traceclear——
R3showlogrun—traceclear——
R4showlogrunpingtraceclear——

STEP 1:R3 のルータIDを 1.1.1.1 にする(非隣接の重複)

ルータshow出力syslogrunning-configpingtraceclearcommit断の測定
R1showlogrunpingtraceclear——
R2showlogrun—traceclear——
R3showlogrun—traceclearcommit—
R4showlogrunpingtraceclear—outage

STEP 2:操作なし(5分後に採り直す)

ルータshow出力syslogrunning-configpingtraceclearcommit断の測定
R1showlogrunpingtraceclear——
R2showlogrun—traceclear——
R3showlogrun—traceclear——
R4showlogrunpingtraceclear——

STEP 3:R3 のルータIDを 3.3.3.3 に戻す

ルータshow出力syslogrunning-configpingtraceclearcommit断の測定
R1showlogrunpingtraceclear——
R2showlogrun—traceclear——
R3showlogrun—traceclearcommit—
R4showlogrunpingtraceclear—outage

STEP 4:R2 のルータIDを 1.1.1.1 にする(直結の重複)

ルータshow出力syslogrunning-configpingtraceclearcommit断の測定
R1showlogrunpingtraceclear——
R2showlogrun—traceclearcommit—
R3showlogrun—traceclear——
R4showlogrunpingtraceclear—outage

STEP 5:R2 のルータIDを 2.2.2.2 に戻す(最終状態)(最終状態)

ルータshow出力syslogrunning-configpingtraceclearcommit断の測定
R1showlogrunpingtraceclear——
R2showlogrun—traceclearcommit—
R3showlogrun—traceclear——
R4showlogrunpingtraceclear—outage

パケットキャプチャーはSTEPごとに、3つの区間で取得しています。

STEPR1-R2間R2-R3間R3-R4間
0pcappcappcap
1pcappcappcap
2pcappcappcap
3pcappcappcap
4pcappcappcap
5pcappcappcap

設計上の注意

  • 非隣接の重複はログに出ません。 隣接も正常に見えるので、「特定のループバックだけ届かない」という形で現れます。経路が1つだけ消えているときは、間にいるルータの隣接表に同じNeighbor IDが2つ並んでいないかを見ます
  • 直結の重複はsyslogに出ます。 %ROUTING-OSPF-3-DUP_RTRIDには相手のアドレスとインタフェースまで入るので、そのまま相手を特定できます
  • ルータIDは広告されるアドレスでもあります。 ループバックのアドレスをそのままルータIDにしている構成では、重複はそのループバックの到達性を直接壊します
  • 直すときはルータIDを戻すだけで済みます(この検証では2秒ほどで復旧)。ただし古いルータIDで出したLSAをフラッシュしないまま装置を止めると、そのLSAはMaxAgeまで残ります(RFC 2328 Appendix C.1)

参考

RFCタイトル概要
RFC 2328OSPF Version 2ルータIDがAS内で一意であること(§1.2、Appendix C.1)、LSAの識別とデータベースへの格納(§12.1、§13)、自己生成LSAを受け取ったときの処理(§13.4)、ルータIDを変える前に自己生成LSAをフラッシュすべきこと(Appendix C.1)。

関連記事