CCNPのBSCI試験では,OSPFは「マルチエリアOSPF」がメインの出題範囲となっています。まずは基本となる「シングルエリアOSPF」を学びましょう。

シングルエリアOSPF

 OSPFは「リンクステート型」に属するルーティングプロトコルです。その特徴としては,以下のものが挙げられます。

  • ルーティングループが発生しない
  • イベントトリガアップデートによる高速なコンバージェンス
  • メトリックとして帯域幅を基本としたコストを使う
  • Helloを使ったネイバーの生存確認による障害の高速な検出
  • ネイバー(隣接ルーター)を認証する機能を持つ
  • エリアを使ったルーティングの効率化

 OSPFを動作させているルーターは,リンクステート型ルーティングを実行するため,複数のテーブルやツリーを作成します。作成されるテーブルは以下です。

  • トポロジテーブル ・・・ トポロジ情報を記載したデータベース。個々のルータから集める。「リンクステートデータベース」とも呼ぶ。
  • ネイバーテーブル ・・・ 隣接関係を結んだOSPFルータの一覧表。この表にあるルータと情報を交換する
  • SPFツリー ・・・ トポロジテーブルの情報から生成されるツリー。このツリーをもとにルーティングテーブルが生成される
  • ルーティングテーブル ・・・ SPFツリーから生成される

 OSPFでは,自分と同じサブネット上にいるルーターを「ネイバー(Neighbor)」と呼びます。このネイバーの中で,実際にLSAをやりとりするルータとは「隣接関係(アジェイセンシ:adjacency)」を結びます。

 OSPFでは,ネイバーとの情報の交換に次のパケットを使います。

名前内容
Helloネイバールータの検出,生存確認
DBD(DataBese Discription)トポロジテーブルの内容の同期
LSR(Link State Request)不足しているLSAの問い合わせ
LSU(Link State Update)ルート情報。LSAをまとめて送る
LSAck(Link State Ack)LSUの受信応答

 LSA(Link State Advertisement)は,実際の経路情報になります。通常は,複数のLSAをまとめてLSU(Link State Update)として送受信します。

 ネイバーと隣接関係を結ぶ際の流れは,次のようになります。(図1)。

 図1 ネイバーと隣接関係を結ぶ

 OSPFではルータを識別するために,ルータIDと呼ばれる番号を使用します。ルータIDは32ビットでIPアドレスと同様の表記をします。ルータIDは次の順序で決定されます。

  1. router-idコマンドで入力された値
  2. ループバックインタフェースの中で最も大きなIPアドレス
  3. 起動しているインタフェースの中で最も大きなIPアドレス

 ルータIDは,ルータの識別,隣接関係を結ぶ際のDBDの送信順序,DR/DBRの選択などで使われる重要な値です。よってルーターIDは一般的に,インタフェースのアップ/ダウンによってIPアドレスが変更しないループバックインタフェースに設定したアドレスの値を利用します。明示的にIDを設定したい場合は,router-idコマンドを利用します。

マルチアクセスネットワークでのOSPF

 イーサネットやフレームリレーのようなマルチアクセスネットワーク環境でのOSPFでは,同じサブネット内に複数のルータが存在します。そのため,それぞれのルータ同士が隣接関係を結ぶことになります。しかし,隣接関係が多くなりすぎると,LSAのやりとりが多くなってルーターの処理負荷が高まるという問題があります。

 そこでOSPFでは,イーサネットのようなマルチアクセスネットワーク環境で,代表ルータ(Designated Router:DRと略す)とバックアップ代表ルータ(バックアップDR:BDRと略す)を設定し,DRとBDRの2台とだけ隣接関係を結びます。DRはサブネット内のルータからLSAを受け取り,集めたLSAを他のルータへ送るという役割を担います(図2)。

 図2 マルチアクセスネットワークとDR/BDR

 DRとBDRはプライオリティで決定されます。プライオリティは次のコマンドで設定されます。デフォルトは1が設定されています。

  • (config)# ip ospf priority [プライオリティ] ・・・ プライオリティの設定

 プライオリティが最も大きいルータがDRに,2番目に大きいルータがBDRになります。プライオリティ値が同じ場合は,ルータIDが大きいルータがDR/BDRに選出されます。一度DR/BDRが選出された後,よりプライオリティが高いルータが接続された時点では,まだDR/BDRは変更されません。現在のDR/BDRがダウンし,新しいDR/BDRの選出が行われたときに,プライオリティの高いルーターがDR/BDRになります。また,プライオリティを0に設定したルータは,DR/BDRに選出されません。

OSPFの動作モード

 OSPFが運用されるネットワーク環境は,RFCの標準で2種類,Cisco社独自の拡張で3種類のネットワークの種類が設定されています(図3)。

  • RFC
    • NBMA(Non-Broadcast Multiple Access) ・・・ フレームリレーやX.25など
    • ポイントツーマルチポイント ・・・ スター型やパーシャルメッシュ型のネットワーク
  • Cisco
    • ブロードキャストネットワーク ・・・ イーサネットなど
    • ポイントツーマルチポイント非ブロードキャスト ・・・ スター型やパーシャルメッシュ型でブロードキャストが使えないネットワーク
    • ポイントツーポイント ・・・ 1対1接続のネットワーク

 図3 ネットワークの種類
ネットワークの種類

 これらのネットワークの種類(「モード」と呼ぶ)によって,隣接関係の結び方,DR/BDR,IPアドレスの設定方法などの違いが存在します。

モードIPアドレスネイバーの検出DR/BDR
NBMA全ネイバーは同一サブネット手動設定あり
ブロードキャスト全ネイバーは同一サブネット自動あり
ポイントツーマルチポイント全ネイバーは同一サブネット自動なし
ポイントツーマルチポイント 非ブロードキャスト全ネイバーは同一サブネット手動設定なし
ポイントツーポイントネイバーごとに異なるサブネット自動なし

 ブロードキャストやマルチキャストが使用可能なネットワークでは,ネイバーは自動的に検出されますが,使えない場合は,手動でネイバーを設定することになります。また,マルチアクセスネットワークの場合は,DR/BDRが必要になります。

 モードの設定は,OSPFネットワークに接しているインタフェースの設定モードで,ip ospf networkコマンドを使います。

  • (config-if)# ip ospf network [モード] ・・・ モードの設定
    • [モード]
      • boradcast,non-broadcast,point-to-multipoint,point-to-multipoint non-broadcast,point-to-point のキーワードを入れる。デフォルトはNBMA(non-broadcast)

 ネイバーを手動設定する場合は,OSPF設定モードで行います。

  • (config-router)# neighbor [ネイバーのIPアドレス] ・・・ ネイバーの手動設定