OSPFについて

OSPFについて

概要

各ルータ間のネットワークの状況から最適経路を計算するルーティングプロトコル

先ほど説明した通り、リンクステート型は、ルータ間でLSA(各インターフェイスの接続中のネットワークのIPアドレスや
帯域幅などの情報が含まれています)を交換することで、最適な経路を探すタイプのルーティングプロトコルです。

このリンクステート型にはOSPF(Open Shortest Path First)が代表的なプロトコルとしてあげられます。

隣接するルータの一覧をまとめたネイバーテーブルや、このLSAをまとめたリンクステートデータベース(LSDB)を元に、
SPF(Shortest Path First)アルゴリズムを使って最短パスツリーを計算し、その計算結果を最適ルートとしてルーティングテーブルに反映させます。

前提知識 – OSPFパケットについて

OSPFでは、以下のパケットをやり取りすることで、ネイバーテーブル(隣接するルータの一覧表)、
リンクステートデータベースを更新することができ、結果的にルーティングテーブルを最新の状態に保つことができます。

ルート情報を交換するまでの流れ

  1. Helloパケットの交換
    互いに隣接ルータ(ネイバー)を検出する
  2. ネイバーテーブルに隣接ルータ(ネイバー)の情報を登録
  3. LSDBを交換するためDBDパケットを交換する
  4. 必要なLSAを求めるためにLSRを送信する
  5. LSRを踏まえ、要求に応えるためLSUを返信する
  6. LSUを踏まえ、LSAckで応答する

ルート情報を交換後の流れ

  1. 受け取ったLSAを元にLSDB(リンクステートデータベース)を構築
  2. LSDBを元にSPFアルゴリズムで最短パスツリーを計算することで最適ルートを計算する
  3. ルーティングテーブルの作成

最適経路の決め方 – コスト計算

コストの計算式

最適な経路を選択するための基準(メトリック)としてコストを使用します。

先ほどのSFPアルゴリズムもこのコストを計算するためのアルゴリズムです。

コストを計算する時、宛先に到達するまでの各ルータの各インターフェイスのコストを合計し、この合計値が最も小さい経路が最適経路として判断されます。

このコストの計算式には、右上の計算式を使います。

また代表的なCiscoルータにおけるインターフェイスのデフォルトのコスト値は右下の図の通りです。

計算例

例えば以下全てのファストイーサネットだった場合、ルータAからPC2までのコストを考えます。

コストを計算する時、宛先に到達するまでの各ルータの転送元のインターフェイスのコストを計算するので
計算式は以下の通りになります。

コスト = 「ルータAのfa0/1のコスト」+「ルータBのfa0/1のコスト」

ファストイーサネットの帯域幅は100Mbpsなので、 各インターフェイスのコストは100Mbps/100Mbps = 1です。そのため

コスト = 「ルータAのfa0/1のコスト」+「ルータBのfa0/1のコスト」= 1 + 1 = 2

ルータの負荷軽減①:DR、BDRについて

同一ネットワーク上でルータの数が増えるとそれだけルータ間でネイバー(隣接)関係を結ぶ数が多くなり、
その分、LSAを交換する数(LSUパケットのトラフィックの量)が膨大になったり、ルーティングテーブルのための計算が多くなり、ルータに負担がかかります。

そこでそういったトラフィックの量を減らすために、同一ネットワーク内から代表ルータのDR(Designated Router)、バックアップ用のルータのBDR(Backup Designated Router) を指定するのが一般的です。

※どちらにも指定されないルータをDROTHERと呼びます。

DR、BDR間だけでLSAパケットを交換し合うようにすることで、こういったトラフィックの量を削減できます。

DR、BDRの役割

ネットワーク内の各ルータは、マルチキャストアドレス(224.0.0.6)を使って、DRとBDRにだけLSAを送り、
そしてDRはマルチキャストアドレス(224.0.0.5)を使ってネットワーク内の各ルータへ集めたLSAを送ります。

そしてBDRは、万が一障害が発生した際に、DRの代わりを務めます。

DR、BDRの選出方法

ではDR、BDRはどうやって決まるのでしょうか?以下の通りです。

①ルータプライオリティの最も高いルータがDR、その次に高いルータがBDRに選出されます。

ルータプライオリティはインターフェイスに設定する値であり、Helloパケットに含まれています。
デフォルトでは1となっています。プライオリティが0のルータはDR、BDRに選ばれることはありません。

②ルータプライオリティが同一の場合、ルータIDが最大値のルータがDR、その次に高いルータがBDRに選出されます。
ルータIDの決定方法

ルータIDについて以下の選出順によって決まります。

  1. 「router-id」コマンドにより設定されたアドレス ※手動で設定した場合はそれがルータIDとして最優先されます。
  2. 有効なループバックインターフェイス(管理者が任意で設定する仮想的インターフェイス)の中で最も大きいIPアドレス
  3. 有効な物理インターフェイス内で最も大きいIPアドレス

ネットワークの種類におけるDR、BDRの選出の有無

ネットワーク(トポロジー)の種類によってDR、BDRの有無は変わります。主に以下の通りです。

ルータの負荷軽減②:エリア分割(マルチエリア)について

概要

同一ネットワーク上でルータの数が増えるとそれだけルータ間でネイバー(隣接)関係を結ぶ数が多くなり、
その分、LSAを交換する数(LSUパケットのトラフィックの量)が膨大になったり、ルーティングテーブルのための
計算が多くなり、ルータに負担がかかります。

そこでOSPFでは、このような負担を軽減するため、規模の大きいネットワークでは複数のエリア(LSAを交換する範囲)に分割するマルチエリアという構成がとられます。

エリアを分割することで、LSAのフラッディング限定することができます。

マルチエリアの構成要件

  • 必ずバックボーンを作成する ※バックボーンエリア:複数に接しているエリアであり、所属するエリア番号が0になります。
  • 同じエリア内のLSDBを把握する
  • 各エリアがバックボーンエリアに接している

マルチエリアの構成について

【各ルータの役割】
  • 内部ルータ:他のエリアと接しないルータ
  • バックボーンルータ:1つ以上インターフェイスがバックボーンエリアに属すルータ
  • ASBR:ASの境界に位置するルータ
  • ABR:他のエリアの境界に位置するルータ

※ 小さなネットワークでは、エリア0 だけをを使用するシングルエリアという構成がとられます。


NEXT>> 2章 ACLでフィルタリング(通信制御)