OSPF

July 21, 2018

OSPF とは

OSPF (Open Shortest Path First) は AS 内を接続するルーティングプロトコルであり、リンクステート方式が採用されている。
OSPF の概要をは以下の通り。

EGP / IGP の種別 IGP
経路制御の方式 リンクステート方式
下位プロトコル IP
通信形態 マルチキャスト。224.0.0.5: Hello の交換、224.0.0.6: DR/BDR 宛てのリンク状態情報の送信

経路制御の特徴と仕組み

OSPF は比較的大規模な AS 内で使用されている。その主な特徴と仕組みは以下の通りである。

  1. 最小のコストで到達できる経路を選択する
  2. エリアを単位とする経路制御を行う
  3. ルータが広告するのは LSA (Link State Advertisement) と呼ばれるリンク状態の情報である。各ルータのルーティングテーブルは LSA に基づいて構成される
  4. Hello パケットを交換して死活監視を行う
  5. 可変長サブネットマスクに対応している

経路選択

OSPF はリンクごとにコストを設定することができる。なお、コストを明示的に設定しなかった場合、物理ポートの帯域幅に基づいて、帯域幅が大きいほどコストが小さくなるように自動的に割り当てられる。
OSPF の経路選択は、宛先ネットワークとそのサブネットマスクが等しい経路情報が複数存在する場合、コストが最小の経路を選択する。
コストが最小の経路が複数ある場合は、それら経路間でトラフィックを分散する (イコールコストマルチパス機能) 。なお、パケットを各経路に振り分けるアルゴリズムには様々なものがあり、ベンダや機器に依存する。

コストに基づく経路選択の例として、以下の構成を示す。
ここで○印はルータを表、リンクに割り当てられた数値はコストを表している。

f:id:shiro_kochi:2018××××××××:plain:w100:left

拠点 1 から拠点 3 に至る消えろは次に示す通り 4 通りが考えられる。
このうち、最小コストをもつ経路は (2) であるため、この経路が選択される。

経路 コスト
(1) 拠点 1 -> a -> b -> e -> f -> i -> 拠点 3 30 + 100 + 40 + 10 = 180
(2) 拠点 1 -> a -> b -> e -> h -> i -> 拠点 3 30 + 100 + 30 + 10 = 170
(3) 拠点 1 -> a -> d -> g -> f -> i -> 拠点 3 40 + 100 + 30 + 10 = 180
(4) 拠点 1 -> a -> d -> g -> h -> i -> 拠点 3 40 + 100 + 30 + 10 = 180

また、拠点 2 から拠点 3 に至る経路は以下の 4 通りである。
このうち最小コストをもつ経路は (3) および (4) である。よってイコールコストマルチパスにより、これらの経路がともに選択され、トラフィックが分散される。

経路 コスト
(1) 拠点 2 -> c -> b -> e -> f -> i -> 拠点 3 50 + 100 + 40 + 10 = 200
(2) 拠点 2 -> c -> b -> e -> h -> i -> 拠点 3 50 + 100 + 30 + 10 = 190
(3) 拠点 2 -> c -> d -> g -> f -> i -> 拠点 3 40 + 100 + 30 + 10 = 180
(4) 拠点 2 -> c -> d -> g -> h -> i -> 拠点 3 40 + 100 + 30 + 10 = 180

エリア

OSPF はネットワークを複数のエリアに分割することができる。分割しない場合はエリアは一つとなる。
どのようにエリアを構成するにせよ、バックボーンエリアと呼ばれるエリアは必ず存在しなければならず、バックボーンエリアの番号は 0 番となる。
基本的にバックボーンエリアを除く全てのエリアは、バックボーンエリアに隣接させる。

エリア内での経路広告とリンク状態情報の同期

イーサネットの場合、同一エリアの同一サブネットの中で DR (Designate Router, 代表ルータ)、BDR (Backup Designate Route, バックアップ代表ルータ) が選出される。
エリア内のルータは DR との間および BDR との間でのみ、Adjacency (隣接関係) を確立する。二つ以上のサブネットに接続しているルータはそれぞれのサブネットにおいて、DR / BDR の間で Adjacency を確立する。

全てのルータは、Adjacency を確立した後、自分のリンク状態情報を DR ルータに向けてマルチキャスト (224.0.0.6) で広告する。これを受けて DR ルータは、このリンク状態情報を全てのルータに向けてマルチキャスト (224.0.0.5) で広告する。この結果、同一エリアの中でリンク状態情報の同期が取られる。

各ルータは、自分のリンク状態情報と受信したリンク状態情報に基づき、ルーティングテーブルを生成する。
障害発生等でネットワークの構成が変化したのであれば、リンク状態の変化したルータが DR ルータに向けてマルチキャスト (224.0.0.6) で広告し、DR ルータが全てのルータにマルチキャスト (224.0.0.5) で広告することになる。

なお、ネットワーク構成が変化しなくても、30 分間隔でリンク状態の情報を交換する仕様になっている。

エリア外での経路広告と経路情報の集約

バックボーンエリアとその他のエリア間は、エリア境界ルータ (ABR: Area Border Router) を介して接続され、リンク状態情報が交換される。
ABR は、エリア内の経路情報を収集して、他のエリアに送信することができる。ABR の経路集約は自動的に行われるわけではないため、どのように行うかは明示的に設定する。

OSPF ネットワークは、OSPF 以外のダイナミックルーティングプロトコルで経路制御されたネットワークとの間で、経路情報を交換することができ、両者の間は、AS 境界ルータ (ASBR: Autonomous System Border Router) で接続される。
このとき、ASBR は、一方のルーティングプロトコルの経路情報を他方のものに変換してから送信する必要がある (再配布) 。
ASBR は、再配布する際に、経路情報を集約し、他のエリアに送信することができる。ASBR の再配布と経路集約は自動的に行われるわけではないため、どのように行うかはこれも明示的に設定する。

LSA

LSA (Link State Advertisement) とは、ルータ間で交換されるリンク状態の情報である。LSA パケットには、ルータがもつインターフェースやルータに接続されたネットワークの情報などが格納されている。
LSA は複数の Type が存在し、作成するルータ、役割、交換される範囲などが、Type により異なる。
以下に主なものを示す。

Type 名称 作成ルータ 役割 範囲
1 Router-LSA 全 OSPF ルータ 自ルータのリンク情報を通知する エリア内部
2 Network-LSA 代表ルータ (DR) 自エリアのネットワーク情報を通知する エリア内部
4 ASBR-Summary-LSA エリア境界ルータ (ABR) 非 OSPF ネットワークへ接続する ASBR の情報を通知する エリア内部
5 AS-External-LSA AS 境界ルータ (ASBR) 非 OSPF ネットワークの経路情報を OSPF ドメインに通知する OSPF ドメイン全体 (スタブエリア以外)

死活監視

OSPF は Hello パケットを交換しあって死活監視を行う。この Hello の間隔は 10 秒、経路障害が発生したと判断する時間の長さは 40 秒である (いずれもイーサネットの場合) 。


 © 2022, Dealing with Ambiguity