KENスクールブログ | パソコン教室・パソコン講座なら個別指導のKENスクール

BLOGKENスクールブログ

  1. KENスクール TOP >
  2. KENスクールブログ > ネットワーク > CCNA資格対策!ネットワーク技術〜OSPF編〜

ネットワーク

CCNA資格対策!ネットワーク技術〜OSPF編〜

network-197300_640p

Cisco Systems社認定資格であるCCNA(Cisco Certified Network Associate)出題範囲における技術について、定期的にご紹介します。
CCNA資格は【ICND1】【ICND2】の2つの試験に合格することで取得できます。

今回はICND1の出題範囲であるOSPFについて説明します。

OSPFとは?

ダイナミックルーティングの際に使用されるルーティングプロトコルのうちの1つです。以下のような特徴を持っています。

1. リンクステート方式を採用

各ルータがリンク情報のデータベースを作成し、そのデータベースを基に宛先への最短経路を計算する方式です。

2. クラスレスルーティングプロトコルを使用
アップデート内にサブネットマスク情報を含むルーティングを行います。
そのため、複雑なサブネット環境にも対応しています。

3. ルータ検出にマルチキャストを使用
ブロードキャストを使用しないため、OSPFを有効にしていないルータに負担をかけません。

4. トリガーアップデート
障害発生、ネットワークの追加等のイベント発生時にのみアップデートを行います。

5. エリアの概念を採用
これによりネットワークを論理的に分割し、ルータにかかる負担を軽くすることができます。

6. 最大ホップ数の制限がない
RIPの場合、経由できるルータの数(ホップ数)が15までと制限があり、16以上経由するものに関しては到達不可となってしまいますが、OSPFにはそのような制限がありません。

7. コスト値を用いて最適経路を算出する
後述のメトリックで説明します。

8. LSAの交換によって情報交換を行う
RIPでは経路情報そのものを交換しますが、OSPFではLSAと呼ばれるリンクステート情報を交換します。

メトリック

OSPFでは各インターフェースにOSPFコストが設定されます。
コストは【100Mbps(108bps)÷リンクの帯域幅】で計算され、自動的に設定されます。
また、管理者が手動でコストを設定することや、計算式の100Mbpsの部分を変更することも可能です。

負荷分散

同一宛先ネットワークまでのメトリックが同じ複数の経路があった場合、複数の経路を使用してデータを転送することができます。

図1

OSPFルーティングテーブル作成までのシーケンス

ステップ1:HelloパケットによりOSPFルータを自動検出

Helloパケットをマルチキャスト(224.0.0.5:全OSPFルータ宛)で送信することによって他のOSPFルータを自動検出します。
このHelloパケットは隣接ルータが動作しているかどうか確認するためのキープアライブの役割も果たしています。送信間隔はデフォルトで10秒になっていて、隣接ルータからのHelloパケットが10秒×4=40秒間確認できない場合、隣接ルータはダウンしたと判断します。この間隔をDead Intervalと呼びます。

ステップ2:ネイバー関係の形成

Helloパケットを送受信し合ったルータは、隣接ルータの情報をネイバーテーブルに保存します。各ルータがお互いを認識した状態を「ネイバー関係」と呼びます。

ルータID

OSPFを有効にしたルータはOSPF用のルータIDがセットされます。ルータIDは32bitで表現され、ネイバーテーブルにはこのルータIDが登録されています。
ルータIDは以下の条件に当てはまるものから選ばれます。
① router-idコマンドを使用して設定した値
② アクティブなloopbackインターフェースに設定されているIPアドレス中で最も大きいもの
③ アクティブな物理インターフェースに設定されているIPアドレスの中で最も大きいもの
①の優先順位が最も高く、①が設定されていない場合は②、②が設定されていない場合は③から選ばれます。

ステップ3:DR、BDRの決定

隣接ルータをネイバーテーブルへと登録後、各ネットワーク単位でDR(指定ルータ)、BDR(バックアップ指定ルータ)が1台ずつ選ばれます。
選出方法は
① OSPFプライオリティ値が最大のルータがDR、次がBDR
② OSPFプライオリティ値が同じ場合、ルータIDが最大のルータがDR、次がBDR
となっており、一度選出されるとそのルータがダウンするまで再選出はしません。
また、専用線のようなポイントツーポイントトポロジーでは選出されません。

図2

ステップ4:隣接関係の形成

DRとBDRが決定後、他のルータはDR、BDRと隣接関係と呼ばれる関係になります。隣接関係とはリンクステート情報を交換し合う関係のことを指します。

図3

リンクステート情報…ルータに接続されているネットワーク情報、ルータ情報などが含まれている

ステップ5:LSAの交換

隣接関係が形成されるとDRとBDRにリンクステート情報が集められます。
リンクステート情報はLSA(Link State Advertisement)と呼ばれるパケットにセットされ送信されます。

ステップ6:LSDBの作成

各ルータは他のルータから入手したLSAからリンクステートデータベース(LSDB:Link State Data Base)を作成します。
このLSDBはネットワークの地図の役割を持っています。全ルータがすべてのLSAを受信すると、全ルータが同じLSDBを持つことになります。

ステップ7:SPFアルゴリズムによりルーティングテーブル作成

全ルータが同じLSDBを保持すると、ルータはSPFアルゴリズムを使用し、コストの概念を基に自身のルーティングテーブルを作成します。

LSDBの同期

LSDBに変更があった場合はLSU(Link State Update)で変更分のLSAを通知します。LSUを受け取ったルータはその内容に合わせてLSDBの変更を行い、DR(BDR)へLSUを送信します。最終的に全ルータがLSUを受け取ると、LSDBが同期されたことになります。

OSPFエリア

OSPFは規模の大きいネットワークに対応したルーティングプロトコルですが、ネットワーク全体の規模が大きくなると、ルータにかかる負担が大きくなってしまいます。
また、ネットワークの規模が大きくなればそれだけ障害の発生頻度も増え、LSDBの変更が頻発するようになるため、ルータへの負担が増大します。
これらの問題の解決策として、OSPFではエリアという概念を導入しています。
エリアは複数のサブネットからなる論理的な単位で、エリア内のネットワークについてのLSAだけをやりとりするようになります。
エリア外のネットワークの情報はデフォルトルートや集約した経路情報として扱うことにより、エリア外の情報をなるべく少なくすることができます。
エリア番号0のエリアはバックボーンエリアと呼ばれ、OSPFを使用する上で必須のエリアとなります。

図4

OSPFの設定

Ciscoルータ上でOSPFを有効にする際は以下の設定が必要になります。
ステップ1:OSPFの有効化
ステップ2:OSPFを有効にするネットワークの指定

図5

上記のトポロジーを例に設定すると

ステップ1

「1」はプロセスIDと呼ばれ、ルータ内でOSPFプロセスを識別するための値です。任意の数字(1~65,535)を入力します。
この数値はあくまでもルータ内で使用される値なので、他のルータのOSPFプロセスIDと一致していなくても構いません。

ステップ2

IPアドレスとワイルドカードマスクの組み合わせでインターフェース(ネットワーク)を指定します。
また、エリアIDは所属するエリアの番号を指定します。

ルータID設定

管理上の目的でルータIDを手動で設定する場合は①のrouter-idコマンドを使用します。指定したIDを有効にするためにはルータの再起動、またはOSPFプロセスの再起動が必要になります。プロセスの再起動には②のコマンドを使用します。

① RT-A(config-router)#router-id ルータID
② RT-A#clear ip ospf process プロセスID

DR、BDRを選出する際の優先度を設定する場合は、該当するインターフェース設定モードで③を使用します。
RT-A(config)#interface インターフェースID(f0/0等)
③ RT-A(config-if)#ip ospf priority プライオリティ値

OSPFにおける確認コマンド

● show ip protocols
有効化されているルーティングプロトコルの状態を表示するコマンド

図6

① 使用しているルーティングプロトコルの表示
② ルータID
③ 負荷分散をする際に登録可能な最大経路数
④ networkコマンドで設定したルーティング対象となるネットワークとエリア
⑤ 現在、経路情報をやり取りしているルータと、そのルータに設定した管理距離(アドミニストレーティブディスタンス値)
 ※IOSのバージョンによっては異なる場合があります。
⑥ デフォルトで使用する管理距離

● show ip ospf interface
OSPFを動作させているインターフェースの状態を表示するコマンド

図7

① エリアID、プロセスID、ルータID、OSPFプライオリティの表示
② DRとBDRの情報
③ Hello間隔とDead間隔(この値が異なっているルータとはネイバーになれない)

● show ip ospf neighbor
ネイバー関係にあるルータの情報を表示するコマンド

図8

① ネイバールータのルータID
② 現在の状態とDR/BDRに選出されているネイバーの情報
③ ネイバーのIPアドレス
④ ネイバーに接続している自身のインターフェース

● show ip ospf database
ルータが保持しているLSDBの表示をするコマンド

図9

いかがでしたでしょうか。
OSPFに関連する問題はICND1に出題される問題の中でも難しいとされる「シナリオ問題」形式での出題が確認されています。
内容を理解するだけでなく、コマンドもしっかり覚えて合格を目指しましょう!

この記事に関連する講座

エンジニアとして少しでも早く現場へ!業界必須のCCNA・Linuxを最短1.5ヶ月で習得

詳しくはこちら