OSPFについて
OSPFについて
概要
各ルータ間のネットワークの状況から最適経路を計算するルーティングプロトコル
先ほど説明した通り、リンクステート型は、ルータ間でLSA(各インターフェイスの接続中のネットワークのIPアドレスや
帯域幅などの情報が含まれています)を交換することで、最適な経路を探すタイプのルーティングプロトコルです。
このリンクステート型にはOSPF(Open Shortest Path First)が代表的なプロトコルとしてあげられます。
隣接するルータの一覧をまとめたネイバーテーブルや、このLSAをまとめたリンクステートデータベース(LSDB)を元に、
SPF(Shortest Path First)アルゴリズムを使って最短パスツリーを計算し、その計算結果を最適ルートとしてルーティングテーブルに反映させます。
前提知識 – OSPFパケットについて
OSPFでは、以下のパケットをやり取りすることで、ネイバーテーブル(隣接するルータの一覧表)、
リンクステートデータベースを更新することができ、結果的にルーティングテーブルを最新の状態に保つことができます。
ルート情報を交換するまでの流れ
-
Helloパケットの交換
互いに隣接ルータ(ネイバー)を検出する - ネイバーテーブルに隣接ルータ(ネイバー)の情報を登録
- LSDBを交換するためDBDパケットを交換する
- 必要なLSAを求めるためにLSRを送信する
- LSRを踏まえ、要求に応えるためLSUを返信する
- LSUを踏まえ、LSAckで応答する
ルート情報を交換後の流れ
- 受け取ったLSAを元にLSDB(リンクステートデータベース)を構築
- LSDBを元にSPFアルゴリズムで最短パスツリーを計算することで最適ルートを計算する
- ルーティングテーブルの作成
最適経路の決め方 – コスト計算
コストの計算式
最適な経路を選択するための基準(メトリック)としてコストを使用します。
先ほどの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について以下の選出順によって決まります。
- 「router-id」コマンドにより設定されたアドレス ※手動で設定した場合はそれがルータIDとして最優先されます。
- 有効なループバックインターフェイス(管理者が任意で設定する仮想的インターフェイス)の中で最も大きいIPアドレス
- 有効な物理インターフェイス内で最も大きいIPアドレス
ネットワークの種類におけるDR、BDRの選出の有無
ネットワーク(トポロジー)の種類によってDR、BDRの有無は変わります。主に以下の通りです。
ルータの負荷軽減②:エリア分割(マルチエリア)について
概要
同一ネットワーク上でルータの数が増えるとそれだけルータ間でネイバー(隣接)関係を結ぶ数が多くなり、
その分、LSAを交換する数(LSUパケットのトラフィックの量)が膨大になったり、ルーティングテーブルのための
計算が多くなり、ルータに負担がかかります。
そこでOSPFでは、このような負担を軽減するため、規模の大きいネットワークでは複数のエリア(LSAを交換する範囲)に分割するマルチエリアという構成がとられます。
エリアを分割することで、LSAのフラッディング限定することができます。
マルチエリアの構成要件
- 必ずバックボーンを作成する ※バックボーンエリア:複数に接しているエリアであり、所属するエリア番号が0になります。
- 同じエリア内のLSDBを把握する
- 各エリアがバックボーンエリアに接している
マルチエリアの構成について
【各ルータの役割】
- 内部ルータ:他のエリアと接しないルータ
- バックボーンルータ:1つ以上インターフェイスがバックボーンエリアに属すルータ
- ASBR:ASの境界に位置するルータ
- ABR:他のエリアの境界に位置するルータ
※ 小さなネットワークでは、エリア0 だけをを使用するシングルエリアという構成がとられます。