OSPFについて
OSPFについて
概要
各ルータ間のネットワークの状況から最適経路を計算するルーティングプロトコル
先ほど説明した通り、リンクステート型は、ルータ間でLSA(各インターフェイスの接続中のネットワークのIPアドレスや
帯域幅などの情報が含まれています)を交換することで、最適な経路を探すタイプのルーティングプロトコルです。
このリンクステート型にはOSPF(Open Shortest Path First)が代表的なプロトコルとしてあげられます。
隣接するルータの一覧をまとめたネイバーテーブルや、このLSAをまとめたリンクステートデータベース(LSDB)を元に、
SPF(Shortest Path First)アルゴリズムを使って最短パスツリーを計算し、その計算結果を最適ルートとしてルーティングテーブルに反映させます。
![](https://kanda-it-school-kensyu.com/wp-content/uploads/545e984262b7a5a5ef994d599eea666a.png)
前提知識 – OSPFパケットについて
OSPFでは、以下のパケットをやり取りすることで、ネイバーテーブル(隣接するルータの一覧表)、
リンクステートデータベースを更新することができ、結果的にルーティングテーブルを最新の状態に保つことができます。
![](https://kanda-it-school-kensyu.com/wp-content/uploads/9c3e06b20efd7ab3ecbef08b6ea231a5.png)
ルート情報を交換するまでの流れ
![](https://kanda-it-school-kensyu.com/wp-content/uploads/a24362e0c8e0e3eb7b59906f426f77f7.png)
-
Helloパケットの交換
互いに隣接ルータ(ネイバー)を検出する - ネイバーテーブルに隣接ルータ(ネイバー)の情報を登録
- LSDBを交換するためDBDパケットを交換する
- 必要なLSAを求めるためにLSRを送信する
- LSRを踏まえ、要求に応えるためLSUを返信する
- LSUを踏まえ、LSAckで応答する
ルート情報を交換後の流れ
- 受け取ったLSAを元にLSDB(リンクステートデータベース)を構築
- LSDBを元にSPFアルゴリズムで最短パスツリーを計算することで最適ルートを計算する
- ルーティングテーブルの作成
![](https://kanda-it-school-kensyu.com/wp-content/uploads/62f561e4beba9810f1c94278ea976f84.png)
最適経路の決め方 – コスト計算
コストの計算式
![](https://kanda-it-school-kensyu.com/wp-content/uploads/462f6b3284bcb91a419ddb1d6cfbb6fa.png)
最適な経路を選択するための基準(メトリック)としてコストを使用します。
先ほどのSFPアルゴリズムもこのコストを計算するためのアルゴリズムです。
コストを計算する時、宛先に到達するまでの各ルータの各インターフェイスのコストを合計し、この合計値が最も小さい経路が最適経路として判断されます。
このコストの計算式には、右上の計算式を使います。
また代表的なCiscoルータにおけるインターフェイスのデフォルトのコスト値は右下の図の通りです。
計算例
例えば以下全てのファストイーサネットだった場合、ルータAからPC2までのコストを考えます。
コストを計算する時、宛先に到達するまでの各ルータの転送元のインターフェイスのコストを計算するので
計算式は以下の通りになります。
コスト = 「ルータAのfa0/1のコスト」+「ルータBのfa0/1のコスト」
![](https://kanda-it-school-kensyu.com/wp-content/uploads/8b7ade15ef16ce20c42fb6976e5a2b92.png)
ファストイーサネットの帯域幅は100Mbpsなので、 各インターフェイスのコストは100Mbps/100Mbps = 1です。そのため
コスト = 「ルータAのfa0/1のコスト」+「ルータBのfa0/1のコスト」= 1 + 1 = 2
![](https://kanda-it-school-kensyu.com/wp-content/uploads/e2ac19ce980f91fd7d6b286639399018.png)
ルータの負荷軽減①: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の有無は変わります。主に以下の通りです。
![](https://kanda-it-school-kensyu.com/wp-content/uploads/53f90169c81b3a54b67a6cf64b44f233.png)
ルータの負荷軽減②:エリア分割(マルチエリア)について
概要
同一ネットワーク上でルータの数が増えるとそれだけルータ間でネイバー(隣接)関係を結ぶ数が多くなり、
その分、LSAを交換する数(LSUパケットのトラフィックの量)が膨大になったり、ルーティングテーブルのための
計算が多くなり、ルータに負担がかかります。
そこでOSPFでは、このような負担を軽減するため、規模の大きいネットワークでは複数のエリア(LSAを交換する範囲)に分割するマルチエリアという構成がとられます。
エリアを分割することで、LSAのフラッディング限定することができます。
マルチエリアの構成要件
- 必ずバックボーンを作成する ※バックボーンエリア:複数に接しているエリアであり、所属するエリア番号が0になります。
- 同じエリア内のLSDBを把握する
- 各エリアがバックボーンエリアに接している
マルチエリアの構成について
![](https://kanda-it-school-kensyu.com/wp-content/uploads/0bad77f2a997defbc733235a94e757b0.png)
【各ルータの役割】
- 内部ルータ:他のエリアと接しないルータ
- バックボーンルータ:1つ以上インターフェイスがバックボーンエリアに属すルータ
- ASBR:ASの境界に位置するルータ
- ABR:他のエリアの境界に位置するルータ
※ 小さなネットワークでは、エリア0 だけをを使用するシングルエリアという構成がとられます。