KENスクールブログ | パソコン教室・パソコン講座なら個別指導のKENスクール

BLOGKENスクールブログ

ネットワーク

OSPF概要

当記事は、OSPFの概要とルーティングテーブル作成までの流れについてご紹介します。

OSPFの概要

OSPFは、RIPの後継として開発された小規模から大規模のネットワーク向けのリンクステート型ルーティングプロトコルです。リンクステートの名前の通り、インタフェース(リンク)の状態(ステート)を経路情報として考慮します。

RIPにおける制約を解消するためにIETFにおいて提唱され、マルチベンダープロトコルとして最も多く使用されているプロトコルです。

OSPFでは、宛先までのコスト値(主にインタフェースの帯域幅により決定)が最小の経路を最適経路と見なします。また、同一のコスト値を持つ複数のパスが存在する場合、これらのパスを使用して負荷分散(ロードバランシング)を行うことができます。

ディスタンスベクタ型が経路情報そのものを交換するのに対し、OSPFではLSA(Link-State Advertisement)と呼ばれるリンクステート情報を交換します。
LSAには、そのルータに接続されたネットワークの情報や、インタフェースのコストなどの情報が含まれており、各ルータはこのLSAを通知/収集し、そこから各自がリンクステートデータベース(LSDB)を作成します。

さらに、各ルータはこのLSDBに基づいて最短パスツリーを作成し、各自でルーティングテーブルを作成します。また、このLSAは定期的に通知するのではなく、更新があった場合のみ、その差分情報を通知します。

そしてOSPFでは、エリアの概念を導入することで、ネットワークを論理的に分割することができ、最大ホップ数の制限もないため、より大規模ネットワークに適したルーティングプロトコルであるといえます。

OSPFルーティングテーブル作成までの流れ

RIPのようなディスタンスベクタ型のルーティングプロトコルは、ルーティングテーブルの経路情報を交換し、ルーティングテーブルを作成しますが、OSPFでは、各インタフェース上のリンクステート情報を交換し、LSDBと呼ばれるデータベースを作成します。その後、LSDBより目的のネットワークへの最適経路を計算し、ルーティングテーブルを作成するという手順を踏みます。
次からその流れを確認していきます。

ネイバーの確立

OSPFでは、Helloパケットをマルチキャスト(224.0.0.5)で送信し、他のOSPFルータを自動検出します。このパケットにより、隣接ルータが動作しているかどうかを確認するためのキープアライブの役割も果たします。デフォルトでは、10秒間隔でHelloパケットが送信され(Hello Interval)、40秒間受信ができないと、隣接ルータはダウンしたと判断(Dead Interval)します。

自動検出され、上記の条件を満たす間、隣接ルータの情報はネイバーテーブルに保存されます。また、各ルータがお互いを認識した状態を、ネイバー関係といいます。

DR、BDRの決定

ネイバー確立後、ルータは各ネットワーク単位でDR(指定ルータ)、BDR(バックアップ指定ルータ)を1台ずつ選出します。DRおよびBDRの選出方法は、以下の通りです。

  1. OSPFプライオリティ値が最大のルータがDR、次がBDR
  2. OSPFプライオリティ値が同じ場合、ルータIDが最大のルータがDR、次がBDR

※OSPFプライオリティ値とは、0~255の値で設定できる値で、デフォルトでは1に設定されています。
※ルータIDとは、IPアドレスと同じ32ビットの構成で、OSPFルータを一意に識別するための値です。

router-idコマンドによって設定した値→設定したloopbackアドレスの最大のもの→物理インタフェースに設定したアドレスの最大のものの順に優先してルータIDとして使用されます。

DR、BDRはネットワーク内でLSDBの同期に重要な役割を果たし、また負荷も大きい為信頼性が高く、障害を起こしにくいルータを選出するように設定します。
また、DRとBDRは、Ethernetなどのブロードキャストマルチアクセストポロジー、フレームリレーなどのノンブロードキャストマルチアクセストポロジーでは選出されますが、専用線などのポイントツーポイントトポロジーでは選出されません。

隣接関係とLSAアドバタイズ

DR、BDRが決定すると、他のルータはDRおよびBDRとの間で、隣接関係と呼ばれる関係を作ります。OSPFでは、全ルータがお互いにリンクステート情報を交換し合うのではなく、DR、BDRに情報を集め、DR、BDRが他のルータへ配信するというアップデート方式をとります。これにより、ネットワーク内に流れるアップデートパケットの削減が行えます。

LSDBの作成

OSPFでは、LSAを一度LSDB (リンクステートデータベース)に保存します。各ルータは、DR、BDRにより配布されたLSAをもとにLSDBを作成します。全ルータが全てのLSAを受信すると、全ルータが同じLSDBを持つことになります。

作成後は、データベース保持の為、10秒間隔でHelloパケットを送信しあい、隣接ルータの状態を確認します。また、ネットワークに変更があった際には、LSU(リンクステートアップデート)という変更の差分の情報を通知し、ネットワーク情報の更新を行います。

ルーティングテーブルの作成

全ルータが同じLSDBを保持すると、各ルータはSPFアルゴリズムと呼ばれるコストの概念をもとに、自身のルーティングテーブルを作成します。

いかがでしたでしょうか。
ぜひお勉強の際にお役立て下さい。

この記事に関連する講座

CCNP講師監修による基礎から実践までを網羅したカリキュラム!

詳しくはこちら