OSPF Stateについて記載します。
- Neighbor(双方向状態)の確立
- Neighbor(双方向状態)の確立
- Down State(停止状態)
ルータは稼働可能な状態たが、まだ他のOSPFルータを識別できていない状態。
ルータはOSPFに参加しているインタフェースを介して、
マルチキャストアドレス(224.0.0.5)宛てにHelloパケットを送信。
- Init State(初期状態)
Helloパケットを送信するルータをA、受信するルータをBとするとルータAから送信された
Helloパケットの隣接ルータフィールドには、まだBがリストアップされていない状態。
OSPFを実行する全ルータはルータAからのHelloパケットを受信して自身の隣接ルータのリストにルータAを追加。
Helloパケットを受信した全ルータがユニキャストの応答HelloパケットをルータAに送信。
その際、Helloパケットの隣接ルータフィールドには、そのルータが知っている全ての隣接ルータを登録。
- 2-Way State(双方向状態)
Helloパケットを受信したルータAは、パケットの隣接ルータフィールドの中に自分自身を発見する。
この状態を双方向状態(2-Way State)と言う。
双方向状態(2-Way State)とは、自分のルータIDが相手の隣接ルータリストに相互に登録されている状態。
今回の例で言うとルータAはルータBからのHelloパケットの隣接ルータフィールドに自分のルータIDを見つけたら、
ルータBの隣接ルータリストに自分のIDが登録されているものと判断し、
ルータAとルータBの間に2-Way Stateが確立される。
- DR、BDRの選出
ブロードキャストマルチアクセスネットワークの場合、ルータはHelloパケット内のOSPFプライオリティを使用して
DR、BDRを選出する。最もOSPFプライオリティの高いルータをDRとし、2番目に高いOSPFプライオリティを持つルータを
BDRとする。プライオリティが同じ場合は、OSPFルータIDの大きなルータをDR、BDRに選出する。
Ciscoの場合、OSPFプライオリティはデフォルトで1であるため、そのままではDR、BDRは選出できない。
その場合、OSPFルータIDの最も大きいルータがDRに次に大きなルータがBDRに選出される。
OSPFルータIDは、ルータのUP状態のインタフェースのうち最も大きなIPアドレスがOSPFルータIDとなる。
ループバックインタフェースが設定されている場合、ループバックインタフェースの中で最も大きな
IPアドレスがOSPFルータIDとなる。
DRがダウンした場合は、BDRがDRになり、BDRは新たに選出される。BDRがダウンした場合も新たなBDRが選出される。
なお、OSPFのDR(BDR)はプリエンプションではないため、DR(BDR)が決定した後にOSPFプライオリティの
高いルータが後から追加されてもDR(BDR)は変更されない。仮にOSPFプライオリティが一番低いルータが一番最初に
起動された場合、DRとなり後からOSPFプライオリティの高いルータが起動されたとしても、DRは変更されない。
DRは負荷がかかるため1つのルータが複数のネットワークセグメントのDRにならないようにすることが推奨されている。
DR、BDRの選出後に追加されたルータは、DR、BDRとのみ隣接関係を確立する。
DR、BDRの選出が完了するとExstart State(起動後状態)となり、OSPFデータベースの作成を開始できる状態になる。
ポイントツーポイントネットワークの場合、DR(BDR)の選出は行わない。
そもそもOSPFはスター型トポロジーを想定して作られたものであり、ブロードキャストマルチアクセスネットワークにおいて、
DR(BDR)を選出するということは疑似的にスター型トポロジーを構成するということである。
ブロードキャストマルチアクセスネットワークでDR(BDR)を選出するのは、複数のポイントツーポイント接続を
エミュレートするための手段であるため、ポイントツーポイントネットワークではDR(およびBDR)の選出の必要はない。
- Ajacency(隣接関係)の確立
- Ajacency(隣接関係)の確立
- Exstart State(起動後状態)
DBDパケットを使用してマスターとスレーブを決定する。より大きなOSPFルータIDを持つルータがマスターになり、
マスターからスレーブへ接続し、隣接関係の構築を開始する。
なお、隣接関係の構築はブロードキャストマルチアクセスネットワークだけでなく、
ポイントツーポイントネットワークのようにDR、BDRを選出しないネットワークでも同様に行われる。
- Exchange State(交換状態)
マスターとスレーブの間でOSPFデータベースの同期を開始する。マスターがDBDパケットを送信し、これに対しスレーブでも
DBDパケットを送信する。DBDパケットとはそのルータが所持するLSAのヘッダーのリストで構成されている。
- Loading State(ロード状態)
DBDパケットの交換により自分に不足しているLSAが存在する場合、LSR(Link State Request)を送信し、
不足しているLSAを要求する。これに対してLSU(Link State Update)を送信し、相手が不足しているLSAを送信し、
受信した側は確認応答としてLSAck(Link State Acknowledgement)を送信する。
- Full State(完全状態)
すべてのLSRパケットの処理が終了すると、そのネイバーは同期してFull Stateになったとみなされる。
この時点で隣接関係が確立し、隣接関係にあるルータ同士が同一のOSPFデータベースを持つ。
Copyright (C) 2009-2021 youichi. All Rights Reserved.