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は次の順序で決定されます。
- router-idコマンドで入力された値
- ループバックインタフェースの中で最も大きなIPアドレス
- 起動しているインタフェースの中で最も大きな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アドレス] ・・・ ネイバーの手動設定