OSPFのルーティングとABR
OSPFは、LSAと呼ばれるネットワーク情報を隣接ルータ (Adjacency) 間で交換し合い、それを元にエリア内詳細地図作成 (LSA Type1,2 によるSPF計算)、および、エリア外ルートコスト計算 (LSA Type3,4,5,7 によるメトリック足し算) を行い、ルーティングテーブルを作成します。
同一エリア内のルータは、同じ内容の LSA Database を保持することになります。
なので、エリアの境界ルータ = ABR:Area Border Router は、その接するエリアの数だけ LSA Database を保有し、SPF 計算をするため、メモリや CPU 等のスペックには注意が必要です。
OSPF のシーケンス概要
OSPF の基本的なプロセスは以下の通りです。
- Hello パケットを送受信し合うことにより neighbor 状態 (2way 状態) になる
- 2way から Exstart ⇒ Exchange という状態遷移で DBD パケットによりお互いが持っている LSA 情報を交換する
- 自分が持っていない LSA 情報があったら LSR パケットにより LSA を要求し、LSU パケットにより LSA 情報をもらう
- 必要な情報をもらったら LSAck パケット (Explicit Ack) もしくは LSU パケットで全く同じ LSA 情報を返すこと (Implicit Ack) でその旨通知し、Adjacency 状態 (FULL 状態) となる
- 以降は Hello パケットにより死活監視を行い、相手が Down となった場合は再計算を行う
OSPF パケットの種類は上記の 5 種類 (Hello, DBD, LSR, LSU, LSAck) です。
なお、LSA はパケットの名称ではなく、データ形式の名称です。上記 OSPF パケットを使って運ばれます。
LSA はヘッダとボディに分かれており、DBD パケットや LSR パケット、LSAck パケットでは LSAのヘッダのみが扱われ、LSU パケットではヘッダとボディの両方を含んだ完全な LSA が扱われます。
OSPF の切り替わり時間
ルータ間の OSPF が有効なインタフェースが直結している場合は、一方のインタフェースがリンクダウンすれば、もう片方のインタフェースも必ずリンクダウンしますので、お互いに速やかにルートの切り替わりがなされます。
ですが、OSPF ルータ同士の間に L2 スイッチ等が挟まっている場合、片方がリンクダウンしても、もう片方はリンクアップしたままになります。
その場合は、Hello を受信しなくなってから dead-interval (デフォルトで hello-interval の 4 倍 = 40 秒 or 120 秒。ネットワークタイプにより異なる) が経過したタイミングで、ルート再計算による切り替わりが為されます。
つまり、OSPF の切り替わり時間は
- リンクダウン時 ⇒ すぐに再計算が行われ、速やかにルート切り替わり
- リンクダウンせず OSPF ネイバーとの到達性が無くなる場合 ⇒ デフォルトでは30秒 or 120秒(インタフェースのネットワークタイプに依る)
となります。
ただし、リンクダウンしない場合でもすぐに切り替わるケースも多いです。
例えば以下のような構成で OSPF による WAN 切り替えをする場合、4 つのルータのうちの 1 つでもリンクダウンが発生すれば切り替わりは速やかに行われます。
なぜなら、リンクダウンの情報がもう片方の WAN を通してエリア全体に共有されるからです。
コメント