OSPFネイバーが確立するまで|DownからFullまでの状態遷移とパケット交換を図解

ネットワーク中級編 17/全50記事

この記事は、 「ネットワーク中級編|構築・検証・障害切り分けを身につける」 の第17回です。

前回学んだOSPFの基本を土台に、2台のルーターがHelloパケットで相手を発見し、 リンクステートデータベースを同期してFull状態になるまでを確認します。

OSPFネイバーが確立するまで|DownからFullまでの状態遷移とパケット交換を図解

OSPFを設定しても、隣接ルーターとネイバー関係が成立しなければ経路情報は交換されません。 この記事では、Down、Init、2-Way、ExStart、Exchange、Loading、Fullの状態遷移、 Hello・DBD・LSR・LSU・LSAckの役割、DR・BDR、確認コマンド、確立しないときの切り分け方を解説します。

対象レベル Level 2・中級
想定読了時間 約30分
身につく成果 状態から障害箇所を絞り込める
前提知識 OSPF・ルーティングの基本
演習環境 ブラウザ/Packet Tracer任意

OSPF障害では、「ネイバーが上がらない」という言葉だけで原因を判断することはできません。 どの状態で止まっているかによって、確認すべき場所が変わるからです。

たとえばInitで止まる場合はHelloの一方向受信、ExStartで止まる場合はMTUやDBD交換、 Fullなのに経路がない場合はLSAや経路選択を疑います。 状態遷移を理解すると、闇雲に設定を見比べるのではなく、原因候補を段階的に絞り込めます。

この記事を読み終えるとできること

  • OSPFネイバーと隣接関係の役割を説明できる
  • DownからFullまでの状態遷移を順番に説明できる
  • 5種類のOSPFパケットの役割を区別できる
  • 2-Wayが正常な場合と異常な場合を判断できる
  • show ip ospf neighborの出力を読み取れる
  • 停止している状態から原因候補を絞り込める

OSPFネイバーとは何か

最初に覚える定義

OSPFネイバーとは、同じリンク上でHelloパケットを交換し、 OSPFの隣接ルーターとして認識された相手です。

OSPFルーターは、直接接続されたすべてのルーターと無条件に経路情報を交換するわけではありません。 まずHelloパケットを使って相手を発見し、設定条件が一致しているかを確認します。

その後、必要な相手とはリンクステートデータベースを同期します。 データベース同期まで完了した状態が、一般にFullです。

2台のOSPFルーターが隣接する基本構成

R1 Router ID:1.1.1.1 192.168.12.1/30
R2 Router ID:2.2.2.2 192.168.12.2/30

ネイバーとアジャセンシーの違い

用語 意味 代表的な状態
ネイバー Helloを通じて隣接ルーターとして認識している相手 Init、2-Wayなどを含む
アジャセンシー データベース同期を行うために形成された隣接関係 ExStart以降、最終的にFull

実務では「ネイバーが確立した」という表現をFull到達の意味で使うことが多いですが、 厳密にはHelloで相手を認識した段階と、データベース同期が完了した段階は分けて考えます。

OSPFネイバー確立に必要な主な条件

Helloパケットが届くだけでは、必ずFullになるとは限りません。 両ルーター間で複数の条件が一致、または互換性のある状態になっている必要があります。

1.インターフェースが通信可能

  • 物理リンクがupしている
  • インターフェースがshutdownされていない
  • 同じリンク上でIP通信できる
  • Ethernetでは通常、同一サブネットに所属する

2.Area IDが一致

同じリンク上のOSPFインターフェースは、同じエリアへ所属させます。 R1がArea 0、R2がArea 1では、通常ネイバーを形成できません。

3.Hello・Dead Intervalが一致

Hello送信間隔と、相手をダウンと判断するDead Intervalは両端で一致させます。 片側だけタイマーを変更すると、Helloを受信しても隣接関係を形成できません。

4.認証条件が一致

OSPF認証を使用している場合は、認証方式や鍵などを両端で一致させます。 片側だけ認証を有効にした場合も確立しません。

5.エリア種別の条件が一致

Stubなどのエリアオプションが不一致の場合、Helloの条件が合わずネイバーを形成できません。

6.Router IDが重複していない

Router IDはOSPFルーターを識別する32ビットの値です。 同一OSPFドメイン内で重複させないよう、明示的に管理します。

7.ネットワークタイプが適切

Broadcast、Point-to-Point、Non-Broadcastなどの動作がリンク構成に合っている必要があります。 不一致でも一部状態まで進む場合があるため、設定値と想定動作を両端で確認します。

8.MTUが整合している

MTU不一致はHello交換では発見されず、ExStartやExchangeで停止する代表的な原因です。 「相手は見えるがFullにならない」ときに確認します。

OSPFプロセスIDは両端で一致しなくても構いません。

Cisco IOSのrouter ospf 10にある「10」は、そのルーター内部でOSPFプロセスを識別するための値です。 R1が10、R2が20でも、その他の条件が合っていればネイバーを確立できます。

DownからFullまでの状態遷移

OSPFネイバーの状態は、相手をまだ認識していないDownから始まり、 Helloによる双方向確認、データベース概要の交換、必要なLSAの同期を経てFullへ進みます。

Down 有効なHelloをまだ受信していない
Init 相手のHelloを受信したが、自分のRouter IDが相手のNeighbor欄にない
2-Way 双方向でHelloを認識した。リンク種別によりここが正常な場合もある
ExStart DBD交換のMaster/Slaveとシーケンス番号を決定する
Exchange DBDでLSDBの概要情報を交換する
Loading 不足しているLSAをLSRで要求し、LSUで受信する
Full 必要なリンクステートデータベースの同期が完了した

各状態を一つずつ確認する

状態 ルーター内部の状況 主な確認ポイント
Down 相手から有効なHelloを受信していない 物理・IP・OSPF有効化・ACL・マルチキャスト
Attempt 主にNBMAで、設定済みネイバーへHelloを送っているが応答がない neighbor設定・到達性・NBMA固有設定
Init 相手のHelloは受信したが、相手は自分を認識していない 片方向通信・戻り側ACL・マルチキャスト・受信設定
2-Way Helloの双方向確認が完了した DR/BDRとの関係、ネットワークタイプ
ExStart DBD交換を始めるための役割とシーケンス番号を調整中 MTU・Router ID重複・DBD再送
Exchange DBDでLSAヘッダーの一覧を交換中 MTU・リンク品質・DBDシーケンス
Loading 不足LSAを要求・受信している LSR・LSU・LSAck、特定LSAの応答
Full 必要なLSDB同期が完了している 次に経路表と実通信を確認する

Fullは「通信が必ず成功する」という意味ではありません。 FullはOSPFの隣接関係とLSDB同期が成立した状態です。 経路がルーティングテーブルへ採用されているか、ACLや戻り経路に問題がないかは別途確認します。

ネイバー確立で使う5種類のOSPFパケット

OSPFはIPプロトコル番号89を使用し、目的に応じて5種類のパケットを使い分けます。

1

Hello

Neighbor discovery

隣接ルーターの発見、条件確認、ネイバー維持、DR・BDR選出に使います。

2

DBD

Database Description

LSDB全体を送るのではなく、保有するLSAの概要を一覧として交換します。

3

LSR

Link State Request

DBDを比較し、自分に不足しているLSAを相手へ要求します。

4

LSU

Link State Update

要求されたLSAや新しいLSAを相手へ通知します。複数のLSAを含められます。

5

LSAck

Link State Acknowledgment

LSAを受信したことを確認応答し、信頼性のある同期を実現します。

状態 主に関係するパケット 行っていること
Down~2-Way Hello 相手の発見、双方向確認、条件比較
ExStart~Exchange DBD Master/Slave決定、LSDB概要の交換
Loading LSR、LSU、LSAck 不足LSAの要求、送信、受信確認
Full Hello、必要に応じてLSU・LSAck 隣接関係維持、変更されたLSAの同期

OSPFネイバーが確立するまでの通信

R1とR2がEthernetで直結され、両方のインターフェースでOSPFが有効になった場合を考えます。

  1. 両ルーターがHelloを送信する R1とR2は、OSPFが有効なインターフェースからHelloパケットを送信します。 Broadcastネットワークでは、通常224.0.0.5宛てのマルチキャストが使われます。
  2. 相手のHelloを受信してInitになる R1がR2のHelloを初めて受信すると、R2をネイバーとして登録します。 ただし、受信したHelloのNeighbor欄にR1自身のRouter IDがなければInitです。
  3. 自分のRouter IDが相手のHelloへ掲載され、2-Wayになる R2がR1を認識すると、R2のHelloにR1のRouter IDが含まれます。 R1がそれを確認すると、Helloが双方向に届いていると判断します。
  4. 隣接関係をFullまで進める相手を決める Point-to-Pointでは通常、相手と隣接関係を進めます。 BroadcastではDR・BDRとの関係に応じて、2-Wayのまま維持する相手とFullへ進む相手が分かれます。
  5. ExStartでDBD交換の準備をする Router IDなどを基にMaster/Slaveを決め、DBDのシーケンス番号を調整します。 ここではLSDBの内容そのものではなく、交換手順を確立します。
  6. ExchangeでDBDを交換する 両ルーターは、自分が保有するLSAのヘッダー情報をDBDで通知します。 相手の一覧を見て、自分に不足しているLSAを判断します。
  7. Loadingで不足LSAを同期する 不足しているLSAをLSRで要求し、相手がLSUで送信します。 受信側はLSAckを返し、必要な情報がそろうまで同期します。
  8. 同期完了後にFullになる 必要なLSAを受信し、LSDBの同期が完了するとFull状態になります。 以後はHelloで生存確認し、トポロジー変更時にLSAを更新します。

パケット交換と状態遷移の対応

R1                                                    R2
 |                                                     |
 |---------------- Hello ----------------------------->|  Down → Init
 |<--------------- Hello(Neighbor: R1)---------------|  Init → 2-Way
 |                                                     |
 |<============== DBD / DBD ==========================>|  ExStart → Exchange
 |---------------- LSR ------------------------------->|  不足LSAを要求
 |<--------------- LSU -------------------------------|  LSAを受信
 |---------------- LSAck ----------------------------->|  受信確認
 |                                                     |
 |======================== Full ========================|

実際にはパケット再送、複数DBD、複数LSR・LSUなどが発生します。 まずは「Helloで相手確認 → DBDで概要比較 → LSR/LSU/LSAckで不足情報を同期」と覚えると整理しやすくなります。

DR・BDRと2-Wayの関係

複数ルーターが同じEthernetセグメントへ接続されるBroadcastネットワークでは、 すべてのルーター同士がFullになると隣接関係が増え、LSA交換も複雑になります。

そこでOSPFは、代表ルーターとしてDR、待機系としてBDRを選出します。 DROTHERルーターはDR・BDRとはFullになりますが、DROTHER同士は通常2-Wayのままです。

Broadcastネットワークでの隣接関係

                         ┌─────────────┐
                         │ R1:DR      │
                         └──────┬──────┘
                                │ Full
              Full              │              Full
        ┌───────────────────────┼───────────────────────┐
        │                       │                       │
┌───────┴───────┐      ┌────────┴───────┐      ┌────────┴───────┐
│ R2:BDR       │      │ R3:DROTHER    │      │ R4:DROTHER    │
└───────────────┘      └────────┬───────┘      └────────┬───────┘
                                └────── 2-Way ──────────┘
自ルーターと相手 一般的な最終状態 判断
DR ↔ BDR Full 正常
DR ↔ DROTHER Full 正常
BDR ↔ DROTHER Full 正常
DROTHER ↔ DROTHER 2-Way Broadcast環境では正常
Point-to-Pointの隣接ルーター Full 2-Wayのままなら要調査

2WAY/DROTHERを見つけても、直ちに障害とは判断しません。 インターフェースのネットワークタイプ、DR・BDRの役割、接続構成を確認してから判断します。

基本構成とCisco IOSの設定例

R1とR2を/30のネットワークで接続し、Area 0でOSPFネイバーを確立する例です。 OSPFプロセスIDは、意図的にR1とR2で異なる値にしています。

検証構成

R1 G0/0:192.168.12.1/30 Router ID:1.1.1.1
R2 G0/0:192.168.12.2/30 Router ID:2.2.2.2

R1の設定例

R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip address 192.168.12.1 255.255.255.252
R1(config-if)# no shutdown
R1(config-if)# exit

R1(config)# router ospf 10
R1(config-router)# router-id 1.1.1.1
R1(config-router)# network 192.168.12.0 0.0.0.3 area 0

R2の設定例

R2(config)# interface GigabitEthernet0/0
R2(config-if)# ip address 192.168.12.2 255.255.255.252
R2(config-if)# no shutdown
R2(config-if)# exit

R2(config)# router ospf 20
R2(config-router)# router-id 2.2.2.2
R2(config-router)# network 192.168.12.0 0.0.0.3 area 0

Router IDを変更した場合、OSPFプロセスの再起動や機器再起動が必要になることがあります。 稼働環境でclear ip ospf processを実行するとネイバーと経路が一時的に再形成されるため、影響を確認してから実施してください。

show ip ospf neighborの読み方

OSPFネイバーの確認で最初に使用する代表的なコマンドがshow ip ospf neighborです。

出力例

R1# show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           1   FULL/DR         00:00:34    192.168.12.2    GigabitEthernet0/0
Neighbor ID 相手ルーターのRouter IDです。インターフェースIPアドレスとは限りません。
Pri OSPF Priorityです。BroadcastネットワークでDR・BDR選出に使われます。
State ネイバー状態と相手の役割です。FULL/DRはFullで相手がDRを表します。
Dead Time 次のHelloを受信しない場合に、相手をダウンと判断するまでの残り時間です。
Address ネイバー側インターフェースのIPアドレスです。
Interface 自ルーターでネイバーを認識しているインターフェースです。

State欄の代表例

表示 意味 基本判断
FULL/DR 相手がDRで、LSDB同期が完了 正常
FULL/BDR 相手がBDRで、LSDB同期が完了 正常
FULL/DROTHER 相手がDROTHERで、LSDB同期が完了 DR・BDR側から見れば正常
2WAY/DROTHER DROTHER同士で双方向Hello確認済み Broadcast環境では正常な場合がある
INIT/- 相手のHelloは受信したが双方向確認できていない 片方向通信などを調査
EXSTART/- DBD交換開始処理で停止 MTUやRouter IDを調査

関連して確認するコマンド

show ip ospf interface brief
show ip ospf interface GigabitEthernet0/0
show ip ospf
show ip protocols
show ip ospf database
show ip route ospf
show interfaces GigabitEthernet0/0

show ip ospf neighborだけで原因を断定せず、 インターフェースのArea、Network Type、Hello/Dead Interval、MTU、IPアドレス、エラー情報と照合します。

Helloパケットで確認する項目

WiresharkやパケットキャプチャーでHelloを見ると、ネイバー条件の不一致を直接確認できます。 OSPFv2ではIPプロトコル番号89が使われます。

Hello内の項目 意味 切り分けでの見方
Router ID 送信元OSPFルーターの識別子 重複していないか、想定ルーターか
Area ID インターフェースが所属するエリア 両端で一致しているか
Network Mask 接続ネットワークのマスク情報 Ethernetなどで不一致がないか
Hello Interval Hello送信間隔 両端で一致しているか
Router Dead Interval 相手をダウンと判断する時間 両端で一致しているか
Options エリア機能などの対応条件 Stub関連などの不一致がないか
Router Priority DR・BDR選出で使う優先度 想定したDR選出になっているか
Designated Router 現在認識しているDR DR選出状態を確認
Backup Designated Router 現在認識しているBDR BDR選出状態を確認
Active Neighbor 送信元が認識しているネイバーのRouter ID 自分のRouter IDが含まれると2-Wayへ進む

Initで止まっている場合、相手から受信したHelloのNeighbor一覧に自分のRouter IDが含まれているかを確認すると、 双方向通信が成立しているかを直接判断できます。

状態別に見るOSPFネイバー障害の切り分け

障害切り分けでは、設定を上からすべて見直すよりも、現在の状態を起点に確認範囲を絞る方が効率的です。

停止状態 考え方 主な原因候補 優先確認
表示なし/Down Helloを受信できていない可能性が高い リンクダウン、IP不一致、OSPF未有効、passive-interface、ACL、プロトコル89遮断、マルチキャスト不達 IF状態、IP疎通、OSPF対象IF、パケットキャプチャー
Init 相手のHelloは届くが、相手が自分を認識していない 片方向通信、戻り側ACL、マルチキャストの片方向障害、相手側OSPF未受信 相手側neighbor表示、HelloのNeighbor欄、両方向キャプチャー
2-Way 正常な場合と異常な場合がある DROTHER同士なら正常、Point-to-Pointならネットワークタイプや隣接形成条件を確認 DR/BDR、Network Type、接続形態
ExStart DBD交換開始時の調整に失敗 MTU不一致、Router ID重複、DBDシーケンス問題、リンク不安定 MTU、Router ID、ログ、DBD再送
Exchange DBDの交換途中で進まない MTU、パケットロス、CPU高負荷、DBD再送、実装・ソフトウェア問題 IFエラー、キャプチャー、ログ、CPU
Loading 不足LSAの取得が完了しない 特定LSRへの応答なし、LSU損失、LSA処理問題、リソース不足 LSR/LSU/LSAck、OSPF database、ログ
Fullだが経路なし ネイバーではなくLSA生成・伝播・経路選択を確認 対象ネットワーク未広告、LSAなし、エリア設計、経路フィルタ、より優先される経路、ルート種別 OSPF database、show ip route、広告元設定

基本的な確認順序

  1. 物理・インターフェース状態を確認する 両端のインターフェースがup/upか、エラーやフラップがないかを確認します。
  2. IPアドレスと直接疎通を確認する 同一リンクの相手IPへpingし、サブネットマスクやVLANも確認します。
  3. OSPFが対象インターフェースで有効か確認する network文、インターフェース直接設定、passive-interfaceを確認します。
  4. 現在のネイバー状態を確認する show ip ospf neighborで停止状態と相手Router IDを確認します。
  5. 両端のOSPFインターフェース条件を比較する Area、Hello/Dead、Network Type、認証、MTU、Priorityを照合します。
  6. ログとパケットを確認する 状態遷移、認証エラー、MTU問題、HelloやDBDの送受信を確認します。
  7. Full後はLSDB・経路表・実通信へ進む ネイバーが正常なら、LSAの有無、経路選択、戻り経路、ACLなどを確認します。

ExStartで止まるMTU不一致の例

R1# show interfaces GigabitEthernet0/0 | include MTU
  MTU 1500 bytes, BW 1000000 Kbit/sec

R2# show interfaces GigabitEthernet0/0 | include MTU
  MTU 1400 bytes, BW 1000000 Kbit/sec

Helloは交換できるため2-Wayまでは進みますが、DBD交換時にMTU情報が問題となり、 ExStartやExchangeを繰り返すことがあります。原則として両端のMTUを正しく統一します。

一部機器にはMTUチェックを無視する設定がありますが、根本原因を残したまま隣接関係だけを成立させる可能性があります。 まず実際のパスMTUと設計値を確認し、安易に回避設定へ進まないことが重要です。

デバッグコマンドの利用

debug ip ospf hello
debug ip ospf adj
undebug all

デバッグは大量の出力やCPU負荷を発生させる場合があります。 本番環境では影響、実行時間、ログ出力先を確認し、必要最小限の時間だけ使用してください。

設計・運用で押さえる注意点

Router IDは明示的に管理する

自動選出へ任せると、インターフェース追加や再起動によって意図しない値になる可能性があります。 構成図・パラメータシートと対応させ、重複しない値を割り当てます。

タイマー変更は両端同時に行う

Hello/Deadを高速化すると障害検知は早くなりますが、CPU負荷や一時的なパケットロスへの感度も上がります。 設計根拠を持ち、両端で同じ値を設定します。

ネットワークタイプを設計に合わせる

Ethernetだから常にBroadcastでよいとは限りません。 2台直結、L2サービス、NBMAなど、実際の隣接関係とDR選出の必要性を考えて決めます。

MTUを経路全体で統一する

OSPFネイバーだけでなく、実データ通信にも影響します。 物理IF、サブインターフェース、トンネル、L2サービスのMTUを含めて確認します。

ネイバー変化を監視する

Fullになったことだけでなく、短時間にDown/Fullを繰り返していないかを監視します。 インターフェースフラップ、パケットロス、CPU高負荷などの予兆になることがあります。

Fullの後まで確認する

LSDBにLSAがあるか、ルーティングテーブルへ採用されたか、実際に双方向通信できるかまで確認して、 OSPF全体が正常と判断します。

顧客・上司へ伝える調査結果の例

「OSPFが上がりません」だけでは、確認状況や影響が伝わりません。 現在の状態、確認済み項目、原因候補、次の対応を分けて報告します。

報告例:ExStartで停止している場合

確認結果:
R1とR2のOSPFネイバーはExStart状態を繰り返しており、Fullへ遷移していません。 両インターフェースはup/upで、相互pingとHelloパケットの双方向受信は確認できています。

原因候補:
R1側のMTUは1500バイト、R2側は1400バイトであり、DBD交換時のMTU不一致が原因と判断しています。

影響:
R1・R2間でOSPF経路情報を同期できず、当該隣接関係を経由する動的経路が利用できません。

対応案:
設計値を確認した上で両端のMTUを統一し、ネイバーがFullへ遷移すること、経路がルーティングテーブルへ反映されること、 対象通信が双方向で成功することを確認します。

英語ログ・資料でよく使う表現

英語表現 意味 実務での読み方
neighbor adjacency ネイバー隣接関係 Fullまで進む関係を指すことが多い
two-way communication 双方向通信 Helloで互いを認識できている状態
database synchronization データベース同期 LSDBを一致させる処理
stuck in EXSTART ExStartで停止している MTUやDBD交換を疑う表現
mismatched hello/dead timers Hello/Deadタイマー不一致 ネイバー確立条件の不一致
adjacency flapping 隣接関係の不安定化 FullとDownを繰り返す状態

OSPFネイバーに関するよくある勘違い

OSPFプロセスIDは隣接ルーターと同じにする必要がある

Cisco IOSのプロセスIDはローカル機器内で使う識別子です。 両端で異なっていても、Areaやタイマーなどの条件が合えばネイバーを形成できます。

2-Wayは必ず障害である

BroadcastネットワークのDROTHER同士は、通常2-Wayのままです。 DR・BDRとの関係とネットワークタイプを確認して判断します。

Helloが届けば必ずFullになる

Helloで相手を認識しても、MTU不一致やDBD交換の問題によりExStart・Exchangeで止まることがあります。

Fullなら対象通信も必ず成功する

FullはLSDB同期が完了したことを示します。 経路表への採用、戻り経路、ACL、NAT、接続先の状態などは別途確認が必要です。

Router IDは必ずルータ上の実IPアドレスでなければならない

Router IDは32ビットの識別子であり、ルーティング可能な実アドレスである必要はありません。 ただし、運用上識別しやすく重複しない値を設計します。

停止状態から確認範囲を絞り込む

DownならHello以前、Initなら双方向性、ExStartならDBD開始条件、LoadingならLSA取得というように、 状態遷移を基準に調査すると効率的です。

理解度チェック

次の6問に答えてください。単に状態名を暗記するのではなく、 その状態でどのパケットを使い、何を確認しているかを意識しましょう。

問題1.OSPFで相手ルーターを発見し、ネイバーを維持するために使うパケットはどれですか。

  1. DBD
  2. Hello
  3. LSR
  4. LSAck
解答を見る
正解:B.Hello

Helloはネイバー発見、条件確認、生存確認、DR・BDR選出などに使われます。

問題2.相手のHelloは受信したものの、そのHelloのNeighbor一覧に自分のRouter IDがありません。どの状態ですか。

  1. Down
  2. Init
  3. Exchange
  4. Full
解答を見る
正解:B.Init

相手のHelloは届いていますが、相手が自分を認識していないため双方向確認が完了していません。

問題3.BroadcastネットワークでDROTHER同士が2WAY/DROTHERです。直ちに障害と判断すべきですか。

解答を見る
正解:直ちに障害とは判断しません。

DROTHER同士は通常Fullにならず、2-Wayのまま維持されます。DR・BDRとはFullになることを確認します。

問題4.ネイバーがExStartを繰り返しています。最初に確認したい代表的な項目を2つ挙げてください。

解答例を見る

解答例:MTU不一致、Router ID重複

加えて、リンク不安定、DBDシーケンス問題、機器ログやソフトウェア不具合も確認します。

問題5.R1のOSPFプロセスIDが10、R2が20です。この違いだけでネイバー確立に失敗しますか。

解答を見る
正解:失敗しません。

プロセスIDは各ルーター内部で使用する値です。Area、Hello/Dead、認証などの条件を確認します。

問題6.ネイバーがFullですが、対向ルーター配下のネットワークがルーティングテーブルにありません。次に確認する項目を3つ挙げてください。

解答例を見る
  • 対向ルーターが対象ネットワークをOSPFへ広告しているか
  • show ip ospf databaseに対象LSAが存在するか
  • より優先される別経路がルーティングテーブルに存在しないか
  • エリア構成や経路フィルタの影響がないか

実践演習:ネイバー状態から原因を切り分ける

次の3ケースについて、正常か異常か、異常ならどこを確認するかを考えてください。

ケース1:3台のルーターが同じVLANに接続

R3# show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1           1   FULL/DR         00:00:33    192.168.10.1    GigabitEthernet0/0
2.2.2.2           1   2WAY/DROTHER    00:00:37    192.168.10.2    GigabitEthernet0/0
判断:正常/異常
理由:
ケース1の解答を見る

正常と判断できる可能性が高いです。

R1はDRなのでFull、R2はR3と同じDROTHERのため2-Wayです。 同一BroadcastセグメントでDR・BDR選出が意図どおりなら、DROTHER同士の2-Wayは正常です。

ケース2:直結ルーターがInitで停止

R1# show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           0   INIT/-          00:00:34    192.168.12.2    GigabitEthernet0/0
最初に確認することを3つ書いてください。
ケース2の解答例を見る
  • R2側でR1のHelloを受信しているか
  • R2のshow ip ospf neighborにR1が表示されるか
  • R1からR2だけでなく、R2からR1への戻り通信が可能か
  • ACLやセキュリティ機能がOSPFプロトコル89またはマルチキャストを片方向だけ遮断していないか
  • パケットキャプチャーでR2のHelloのNeighbor欄にR1のRouter IDがあるか

ケース3:ExStartを繰り返す

R1# show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           0   EXSTART/-       00:00:31    192.168.12.2    GigabitEthernet0/0

R1# show interfaces GigabitEthernet0/0 | include MTU
  MTU 1500 bytes, BW 1000000 Kbit/sec

R2# show interfaces GigabitEthernet0/0 | include MTU
  MTU 1400 bytes, BW 1000000 Kbit/sec
原因:
対応:
確認試験:
ケース3の解答例を見る

原因:R1とR2のMTU不一致により、DBD交換が進まない可能性が高いです。

対応:設計値と経路全体のMTUを確認し、両端を正しい値へ統一します。

確認試験:

  • ネイバーがFullになること
  • OSPF databaseへ必要なLSAが登録されること
  • ルーティングテーブルへOSPF経路が反映されること
  • 対象通信が双方向で成功すること
  • ネイバーフラップやインターフェースエラーが再発しないこと

自分の言葉で説明する課題

「OSPFの設定を入れてからFullになるまで、ルーター同士は何をしていますか?」と聞かれました。 1分程度で説明してください。

Helloで________________________________。
DBDで________________________________。
LSR・LSU・LSAckで__________________________。
説明例を見る

OSPFルーターは、最初にHelloパケットで隣接ルーターを発見し、Areaやタイマーなどの条件を確認します。 Helloに互いのRouter IDが掲載されると双方向通信が確認でき、必要な相手とはDBDを交換してLSDBの概要を比較します。 自分に不足するLSAがあればLSRで要求し、相手がLSUで送信し、受信側がLSAckを返します。 必要なリンクステート情報の同期が完了するとFull状態になります。

「Helloで相手確認」「DBDで概要比較」「LSR・LSU・LSAckで不足LSAを同期」「完了するとFull」 の4点を説明できれば、基本動作を理解できています。

まとめ

  • OSPFはHelloで隣接ルーターを発見し、双方向通信と設定条件を確認する
  • 状態はDown、Init、2-Way、ExStart、Exchange、Loading、Fullの順に進む
  • Attemptは主にNBMAネットワークで見られる状態
  • DBDでLSDBの概要を比較し、LSR・LSU・LSAckで不足LSAを同期する
  • Broadcastネットワークでは、DROTHER同士の2-Wayは正常な場合がある
  • ExStart・Exchangeで止まる場合はMTU不一致やRouter ID重複などを確認する
  • OSPFプロセスIDは隣接ルーターと一致させる必要がない
  • FullはLSDB同期完了を示すが、実通信の正常性までは保証しない
  • 障害切り分けでは、停止している状態から確認範囲を絞り込む

OSPFネイバー障害では、「上がらない」ではなく「どの状態で止まっているか」を確認することが、 最短で原因へ近づくための出発点です。

次の記事:OSPFのコストと経路選択

今回は、OSPFルーターがネイバーを形成し、リンクステートデータベースを同期するまでを学びました。

次の記事では、複数の経路が存在するときにOSPFがどのルートを選ぶのか、 コストの計算、参照帯域幅、等コスト経路、設計・変更時の注意点を解説します。

ネットワーク中級編 17/全50記事

中級編では、スイッチング、ルーティング、ネットワークサービス、セキュリティ、 パケット解析、障害切り分け、実務ドキュメントまでを順番に学びます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次