OSPF

OSPFとは

OSPF(Open Shortest Path First)とは、リンクステート型のルーティングプロトコルです。リンクステート型のルーティングプロトコルはもう1つIS-ISというものがありますが、OSPFはこのIS-ISを参考に作られました。
OSPFのバージョンはIPv4対応のOSPFv2とIPv6対応のOSPFv3があります。

リンクステート型プロトコル

OSPFは上述した通りリンクステート型のルーティングプロトコルです。リンクステート型とはルータ間で接続情報を共有しあい、その接続情報に基づいてルーティングテーブルが作られる仕組みです。ルータ間で接続情報を共有するためにLSA(Link State Advertisement)を交換し合い、それぞれのルータでLSDB(Link State Database)を保持します。

エリアの概念

OSPFはエリアという概念でグループ分けを行います。エリアはLSAを交換する範囲を示すグループであり、LSDBはエリア内で共通のものを保持します。エリアによってLSAやLSDBを分割することでデータベースの収束を早めたり通信の効率化を図るなど機器の負荷を減らすことができます。
OSPFはSPF(Shortest Path First)と呼ばれる計算方法を使用して最適なパスを決めるのですが、すべての機器で経路情報を共有するため規模が大きいNWだと機器の負荷が大きくなります。SPFの計算を効率化するために適切なエリア設計が大事になってきます。

エリアのイメージ図

DR/BDR

OSPFDR(Designated Router)とBDR(Backup Designated Router)は、OSPFが動作するネットワークで使用される特別な役割を持つルーターです。これらのルーターは、OSPFプロトコルが効率的にルーティング情報を交換できるように調整する役割を果たします。

DR (Designated Router) の役割

  • DRはネットワークセグメント内で中心的なルーターとして機能します。ネットワーク上のすべてのOSPFルーターがDRとルーティング情報を交換することで、効率的にルーティングテーブルの情報が行き渡ります。
  • DRは、ネットワーク内でルータ間のリンク状態情報を収集し、それをすべての他のルーターに通知する役割を果たします。この仕組みにより、各ルーターが個別に全ルーターと通信する必要がなくなり、ネットワーク上のトラフィック量が減少します。

BDR (Backup Designated Router) の役割

  • BDRはDRのバックアップとして機能します。DRが何らかの理由で機能しなくなった場合、BDRが自動的にDRの役割を引き継ぎます。
  • BDRも他のルーターと通信してリンク状態情報を受信しますが、通常はDRの代わりにその情報を配信することはありません。DRが失敗した時にのみ、この役割を担います。

DRとBDRの選出

DRとBDRは、OSPFルーターが起動した際に以下のルールに基づいて選出されます。

  • ルーターID (Router ID): 優先度が同じ場合、ルーターIDの大きいルーターがDRおよびBDRとして選出されます。ルーターIDはOSPFプロトコル内で各ルーターを一意に識別するための32ビットの値です。
  • 優先度 (Priority): 各ルーターは「OSPFインターフェースの優先度」を設定できます。優先度が高いルーターがDRおよびBDRとして選出されやすくなります。OSPFのインターフェース優先度は0から255の値を取り、0に設定されたルーターはDRやBDRとして選出されません。

OSPFの仕組み

OSPFの処理の流れは以下のようなフローで行われます。

ネイバー関係の確立

OSPFはまず始めに隣接ルータにHelloパケットをマルチキャストで送信します。お互いにHelloパケットを送信しあうことでネイバーを認識してネイバー関係の確立を行います。OSPFルータはネイバーテーブルにネイバールータとIPアドレスを格納します。

LSDBの作成

OSPFはネイバー関係を確立したら、ネイバールータにLSAを送信し合います。受信したLSAはLSDBに格納します。また、受信したLSAを別のネイバールータに送信してエリア全体でLSAの共有を行います。
これでOPSFルータで接続情報の共有をすることができました。

SPFの計算

OSPFルータでLSDBの共有が完了するとSPFアルゴリズム(ダイクストラ)を実行してネットワーク内の最適な経路を計算します。その算出にはOSPFコストと呼ばれるものを計算して経路までの総コストが少ないものが最適な経路となります。

コストは機器に対して手動で設定することも可能ですが、設定をしない場合は以下の計算式で算出されます。

100(Mbps)/インターフェイスの帯域幅(Mbps)

つまり帯域幅が大きければ大きいほどコストは小さくなり最適経路に選ばれやすくなります。ただしこの計算式だと100Mbps以上の帯域幅のコストはすべて1となってしまうため帯域幅が本当に大きい経路を選ぶことが難しくなるかもしれません。そのためインターフェイスに対して手動でコストを設定して経路を制御することも多いです。

ネイバ維持

OSPFはLSDBの同期やSPFの計算が完了した後も定期的にHelloパケットを交換してネイバーの状態を確認しています。障害やネットワークの変更などがあった場合はすぐに通知をしてLSDBを最新の状態に同期します。