【OSPF】OSPF概要
OSPFの概要
OSPFとはリンクステート型のルーティングプロトコルです。
ルータのリンク情報「LSA」を交換しあってリンク情報をひとまとめにしたデータベース「LSDB」を作ります。
そうすると、集めたリンク情報を組み合わせることでネットワーク全体の構成「トポロジマップ」を作成できます。
ルータでは最短経路を検索してルーティングテーブルに追加するために
まず、「トポロジマップ」から自ルータを頂点とした階層ツリー「SPFツリー」を作成します。
SPFツリーを作成するアルゴリズムが「SPFアルゴリズム(ダイクストラ)」と呼ばれています。
最短経路を計算するアルゴリズムです。各ネットワークへのコストの合計値を出します。
エリア
エリアはOSPFの論理グループです。グループ内のルータは共通のLSDBを持っています。
下記のメリットのためにエリアという概念でグループ分けをしています。
LSDBサイズの縮小
同一エリアでは全ルータが同じLSDBを保持するのでエリアが大きくなるにつれてLSDBのサイズも肥大化します。
エリアを分割すると異なるエリアのLSAを保持しなくなるためLSDBのサイズも小さくなり、メモリの使用率が抑えられます。
SPF計算頻度の現象
LSAを交換⇒トポロジマップ作成⇒SPFアルゴリズムによって最短経路を求める。というOSPFの動作を考えると、
トポロジ変化に応じてSPFの計算を行うことになります。別エリアのトポロジ変化の場合、LSAのフラッディングが同一エリアに抑えられるため都度SPFの再計算が不要になります。別エリアから集約した情報は通知されます。
SPFの計算が抑えられることでCPU使用率を現象できます。
ルーティングテーブルのサイズ縮小
エリアを分割することで別のエリアからの情報は集約して受け取れば良いため。ルーティングテーブルの経路数が減少し、メモリの使用率を減少できます。
【OSPF】ルータタイプ
OSPFでは構成として「シングルエリア」と「マルチエリア」があります。
シングルエリアはエリア0のみの構成でマルチエリアは複数のエリアによって構成されます。
マルチエリア構成ではルータのタイプが4種類に分けられます。
内部ルータ
全てのインタフェースを同じエリアに接続しているルータ。
バックボーンルータ
1つ以上のインタフェースをバックボーン(エリア0)に接続しているルータ。
ABR(Area Border Router)
異なるエリアを接続しているルータ。エリアごとのLSDBを保持しておりエリア間のルーティングを行う。
異なるエリアのリンクステート情報を集約して内部ルータに伝えるため、内部ルータではLSDBのサイズが縮小できる。
集約る場合はABRで設定する。
ASBR(AS Boundary Router)
外部ASと接続しているルータ。OSPFと異なるルーティングプロトコルEIGRPなどもASとみなされるため。
BGPでいうところのASとは区別が必要。ASBRに再配送することでOSPFネットワークと非OSPFネットワーク間の通信ができるようになる。
【OSPF】ステート
OSPFがネイバーを認識してコンバージェンス状態になるまでの段階について。
DOWN
Helloパケットを受信していない状態。
INIT
Helloパケットを受信して相手を認識した状態。
2WAY
Helloパケットを互いに受信してお互いを認識した状態。
DROTHER同士はここでコンバージェンスとなる。互いに経路を交換しないため。
EXSTART
DRとBDRを選出した状態。
EXCHANGE
LSDBを交換中。
LOADING
情報を確認中。
FULL
コンバージェンス状態。
【OSPF】仮想リンク
マルチエリアOSPFでは全てのエリアがバックボーンエリアに接続している必要があります。
バックボーンエリアに接続ができない場合の対処法として仮想リンクを使用します。
下記の図ではエリア2がエリア0に接続されていません。RAとRB間で仮想リンクを設定します。
仮想リンクの設定には
「エリアID」と「ルータID」を指定します。
・コマンド
Router(config-router)#area {エリアID} virtual-link {ルータID}
*通過するエリアIDとリンクを貼る先のルータIDです。
そのため、このケースではRAに下記の設定
RouterA(config-router)#area 1 virtual-link 2.2.2.2
RBに下記の設定
RouterB(config-router)#area 1 virtual-link 1.1.1.1
以上で設定は完了です。
【OSPF】ネイバー手動設定
OSPFネットワーク環境で自動的に隣接関係を構築されない場合は次の2構成です。
・NBMA
・ポイントツーマルチポイントノンブロードキャスト
これらの構成の場合は手動で双方に隣接関係を構築させる設定が必要です。
Router(config)#router ospf {プロセスID}
Router(config-router)#neighbor {ネイバーのIPアドレス}