Infra Engineer

【CCNP解説_OSPF編 5】OSPFの動作の流れと8つのステータス②
2021.03.31
Lv2

【CCNP解説_OSPF編 5】OSPFの動作の流れと8つのステータス②

OSPFの動作の流れと8つのステータス②


OSPFでは5種類のパケットを用いて情報の交換を行い、3種類のテーブルを作成します。
また、情報交換の過程において最大8種類のステータスを遷移していきます。

今回はOSPFの動作の詳細な流れとステータス遷移について、前回の続きを説明します。


OSPFの動作の流れ

OSPFではコンバージェンスするまでにいくつかのステータスを遷移していきます。
5種類のパケットをやり取りしていく中で、隣接ルータとのステータスを変化させます。
OSPFの基本的な動作は次のようになります。

  1.Helloパケットを交換してネイバーの検出を開始する
  2.ネイバーテーブルにネイバーを登録する
  3.相互を認識し、LSDBの交換の準備をする
  4.ルータ間でDBDパケットを交換する
  5.詳細なLSAの情報を交換する
  6.アジャセンシーの確立

この過程を経てコンバージェンスします。今回は4から6までの動作について見ていきましょう。


4.ルータ間でDBDパケットを交換する

相互に2-Wayステートになった後、LSDBの同期を行います。
LSDBを同期させる際には、まずDBDパケットを交換し、マスターとスレーブの役割を決定します。

先ほどDBDパケットのところで説明したように、DBDパケットはDDシーケンス番号という番号で管理されており、
DBDパケットをやり取りする際の初期値を決める必要があります。
マスターとなったルータ側の番号を初期値とするようになっています。

DBDパケットを交換しマスターとスレーブの役割を決定しているのが、Exstartステートです。
ルータIDを比較して、大きい方がマスターとなります。

マスターとスレーブの役割が決定すると、次にExchangeステートとなり、LSDBの要約情報をやり取りします。
マスターに選出されたルータからLSDBの要約情報を送信します。

複数回のDBDパケットをやり取りする必要がある場合、シーケンス番号を増やしながらDBDパケットを送信します。


5.詳細なLSAの情報を交換する

ExchangeステートでLSDBの要約情報を交換した結果、新しいLSA情報が見つかった場合や
LSA情報が更新されていた場合、そのLSAの詳細情報が必要となります。

そこでLSRパケットを送信し、LSAの詳細情報を要求します。

LSRパケットを受信したルータは、LSUパケットを送信します。LSUパケットのところで説明したように、
LSUパケットは複数のLSAを含んで送信することができます。

LSUパケットを受信したルータは、受信した情報で自身のLSDBを最新の情報に更新します。
受信したことの確認応答として、LSAckパケットを送信します。

このLSR・LSU・LSAckをやり取りしている状態がLoadingステートとなります。


6.アジャセンシーの確立

お互いのLSDBが最新の状態となり同期が完了すると、アジャセンシー(完全な隣接関係)となります。
ネイバー関係は隣接しているルータを認識しているだけの状態で、LSAを交換する関係がアジャセンシーとなります。
この状態がFullステートとなります。

Fullステートとなった後、LSDBからダイクストラのアルゴリズムを使用してSPFツリーを作成し、
最短経路をルーティングテーブルに登録します。コンバージェンスすると、
LSAの交換は行わずにHelloパケットだけを定期的に送信し、ネイバーがダウンしていないかどうか確認します。

ネットワークに変化が生じない限りLSAの交換は行われませんが、
変化が生じなくても30分ごとに定期的にLSDBの同期をとります。


今回のまとめ

今回はOSPFでネイバー関係を確立した後にどのような状態遷移を経て情報交換を行うのかを見ました。
ネイバー確立後、Exstartステート、Exchangeステート、Loadingステートと細かくステータスが遷移し、
情報交換を行います。そして最終的にFullステートとなり、LSDBの同期が完了しルーティングテーブル
の作成が行われます。

OSPFの動作の流れと8つのステータス①に記載しているネイバー関係を築くまでの
動作とあわせて覚えるようにしましょう。


 ■今回のポイント

 LSDBの同期を行うやり取りの流れを押さえておきましょう。
 ・Exstartステート…マスターとスレーブを決定している状態
 ・Exchangeステート…DBDを交換して要約情報をやり取りしている状態
 ・Loadingステート…LSR・LSU・LSAckを通して詳細なLSAを交換している状態
 ・Fullステート…完全な隣接関係を築きLSDBの同期が完了した状態


CCNP解説 連載目次リンク

CCNP解説 連載目次