この記事は、 「ネットワーク中級編|構築・検証・障害切り分けを身につける」 の第17回です。
前回学んだOSPFの基本を土台に、2台のルーターがHelloパケットで相手を発見し、 リンクステートデータベースを同期してFull状態になるまでを確認します。
OSPFネイバーが確立するまで|DownからFullまでの状態遷移とパケット交換を図解
OSPFを設定しても、隣接ルーターとネイバー関係が成立しなければ経路情報は交換されません。 この記事では、Down、Init、2-Way、ExStart、Exchange、Loading、Fullの状態遷移、 Hello・DBD・LSR・LSU・LSAckの役割、DR・BDR、確認コマンド、確立しないときの切り分け方を解説します。
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ルーターが隣接する基本構成
ネイバーとアジャセンシーの違い
| 用語 | 意味 | 代表的な状態 |
|---|---|---|
| ネイバー | 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を受信していない | 物理・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種類のパケットを使い分けます。
Hello
Neighbor discovery隣接ルーターの発見、条件確認、ネイバー維持、DR・BDR選出に使います。
DBD
Database DescriptionLSDB全体を送るのではなく、保有するLSAの概要を一覧として交換します。
LSR
Link State RequestDBDを比較し、自分に不足しているLSAを相手へ要求します。
LSU
Link State Update要求されたLSAや新しいLSAを相手へ通知します。複数のLSAを含められます。
LSAck
Link State AcknowledgmentLSAを受信したことを確認応答し、信頼性のある同期を実現します。
| 状態 | 主に関係するパケット | 行っていること |
|---|---|---|
| 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が有効になった場合を考えます。
-
両ルーターがHelloを送信する
R1とR2は、OSPFが有効なインターフェースからHelloパケットを送信します。
Broadcastネットワークでは、通常
224.0.0.5宛てのマルチキャストが使われます。 - 相手のHelloを受信してInitになる R1がR2のHelloを初めて受信すると、R2をネイバーとして登録します。 ただし、受信したHelloのNeighbor欄にR1自身のRouter IDがなければInitです。
- 自分のRouter IDが相手のHelloへ掲載され、2-Wayになる R2がR1を認識すると、R2のHelloにR1のRouter IDが含まれます。 R1がそれを確認すると、Helloが双方向に届いていると判断します。
- 隣接関係をFullまで進める相手を決める Point-to-Pointでは通常、相手と隣接関係を進めます。 BroadcastではDR・BDRとの関係に応じて、2-Wayのまま維持する相手とFullへ進む相手が分かれます。
- ExStartでDBD交換の準備をする Router IDなどを基にMaster/Slaveを決め、DBDのシーケンス番号を調整します。 ここではLSDBの内容そのものではなく、交換手順を確立します。
- ExchangeでDBDを交換する 両ルーターは、自分が保有するLSAのヘッダー情報をDBDで通知します。 相手の一覧を見て、自分に不足しているLSAを判断します。
- Loadingで不足LSAを同期する 不足しているLSAをLSRで要求し、相手がLSUで送信します。 受信側はLSAckを返し、必要な情報がそろうまで同期します。
- 同期完了後に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の設定例
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
FULL/DRはFullで相手がDRを表します。
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、広告元設定 |
基本的な確認順序
- 物理・インターフェース状態を確認する 両端のインターフェースがup/upか、エラーやフラップがないかを確認します。
- IPアドレスと直接疎通を確認する 同一リンクの相手IPへpingし、サブネットマスクやVLANも確認します。
- OSPFが対象インターフェースで有効か確認する network文、インターフェース直接設定、passive-interfaceを確認します。
-
現在のネイバー状態を確認する
show ip ospf neighborで停止状態と相手Router IDを確認します。 - 両端のOSPFインターフェース条件を比較する Area、Hello/Dead、Network Type、認証、MTU、Priorityを照合します。
- ログとパケットを確認する 状態遷移、認証エラー、MTU問題、HelloやDBDの送受信を確認します。
- 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ネイバーに関するよくある勘違い
Cisco IOSのプロセスIDはローカル機器内で使う識別子です。 両端で異なっていても、Areaやタイマーなどの条件が合えばネイバーを形成できます。
BroadcastネットワークのDROTHER同士は、通常2-Wayのままです。 DR・BDRとの関係とネットワークタイプを確認して判断します。
Helloで相手を認識しても、MTU不一致やDBD交換の問題によりExStart・Exchangeで止まることがあります。
FullはLSDB同期が完了したことを示します。 経路表への採用、戻り経路、ACL、NAT、接続先の状態などは別途確認が必要です。
Router IDは32ビットの識別子であり、ルーティング可能な実アドレスである必要はありません。 ただし、運用上識別しやすく重複しない値を設計します。
DownならHello以前、Initなら双方向性、ExStartならDBD開始条件、LoadingならLSA取得というように、 状態遷移を基準に調査すると効率的です。
理解度チェック
次の6問に答えてください。単に状態名を暗記するのではなく、 その状態でどのパケットを使い、何を確認しているかを意識しましょう。
問題1.OSPFで相手ルーターを発見し、ネイバーを維持するために使うパケットはどれですか。
- DBD
- Hello
- LSR
- LSAck
解答を見る
Helloはネイバー発見、条件確認、生存確認、DR・BDR選出などに使われます。
問題2.相手のHelloは受信したものの、そのHelloのNeighbor一覧に自分のRouter IDがありません。どの状態ですか。
- Down
- Init
- Exchange
- Full
解答を見る
相手の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
ケース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分程度で説明してください。
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ネイバー障害では、「上がらない」ではなく「どの状態で止まっているか」を確認することが、 最短で原因へ近づくための出発点です。

コメント