第5編
レイヤー3

OSPFの機能説明

OSPFは、ダイナミックルーティングを実現するルーティングプロトコルです。RIP/RIPngのように最大メトリック値「15」という制限がないため、大規模ネットワークに適しています。OSPFには、IPv4用のOSPFv2およびIPv6用のOSPFv3の2つのバージョンがあります。

注 意

セカンダリーIPアドレスのサブネットでは、OSPFv2を有効にできません。

注 意

OSPFv3は、ループバックインターフェースでは使用できません。

注 意

OSPFv3では、イコールコストマルチパス(ECMP)をサポートしていません。

ルーティングテーブルの作成

OSPFのルーティングテーブルは、下図に示した流れで作成されます。

ルーティングテーブル作成の流れ

  • ネイバー関係の確立
    OSPFのルーティングテーブルの作成は、隣接ルーターとネイバー関係を確立することから始まります。隣接ルーターとHelloパケットをやりとりしてネイバー関係を確立し、ネイバーテーブルを作成します。
  • Adjacencyの確立とLSAの交換
    ネイバー関係を確立した装置同士は、ネットワーク情報やインターフェースのパスコストなどの情報を格納したLSA(Link-State Advertisement)を交換するために、Adjacencyを確立します。Adjacencyを確立した装置間では、LSAの交換が行われます。
  • LSDBの作成
    装置は、収集したLSAに基づいてLSDB(Link-State Database)を作成します。Adjacencyを確立した装置同士は、同じLSDBを保持します。
  • ネットワークツリーの作成
    作成したLSDBに基づいて、装置自身をルートとするネットワークツリーを作成します。
  • ルーティングテーブルの作成
    作成したネットワークツリーに基づいて、ルーティングテーブルを作成します。
ルーティングテーブルの更新

OSPFでは、30分ごとにLSAを生成し、ルーティングテーブルを更新します。また、経路上のルーターに障害が発生するなどによってネットワークの状態が変化し、経路情報に変更があった場合、トリガードアップデートによって最新のLSAを含んだLSU(Link State Update)をネットワーク内のすべてのルーターにアドバタイズします。これにより、ルーティングテーブルは最新情報に更新されます。

最短経路の決定

ネットワークツリーが作成される際、インターフェースに設定されたパスコストによって宛先ネットワークへの最短経路が計算されます。パスコストはインターフェースの帯域幅で決定される値で、10Mbpsのパスコストは「10」、100Mbps以上の帯域幅のパスコストは「1」です。パスコストが最小の経路が最適経路になり、ルーティングテーブルに登録されます。

下図のように、ルーターAからネットワークまでの2つの経路がある場合、ルーターB経由のパスコストの合計が「12」で、ルーターDとルーターE経由のパスコストの合計が「4」のため、ルーターDとルーターEを経由する経路が最適経路になります。

最短経路の決定

ルーター設定モード

OSPFv2関連の設定を実施する場合は、router ospfコマンドでルーター設定モードに遷移します。

OSPFv3関連の設定を実施する場合は、ipv6 router ospfコマンドでルーター設定モードに遷移します。

ルーターIDの手動設定

OSPFを構成する装置は、ルーターIDで管理されます。ルーターIDはOSPFネットワーク内で一意の値である必要があります。デフォルト設定では、自動で装置のIPv4アドレスがルーターIDに設定されます。なお、装置に複数のIPv4アドレスが設定されている場合、アクティブなループバックインターフェースのうち、最も大きな値のIPv4アドレスがルーターIDに設定されます。アクティブなループバックインターフェースがない場合は、装置に設定されているインターフェースのうち、最も大きな値のIPv4アドレスがルーターIDに設定されます。

ルーターIDを手動で設定するには、OSPFv2およびOSPFv3のどちらの場合もrouter-idコマンドを使用します。

注 意

router-idコマンドでルーターIDを設定または変更した場合、ルーターIDは即時反映されます。ただし、ネイバー関係およびAdjacencyもリセットされ、経路の再学習が行われます。

補 足

router-idコマンドの設定を省略してルーターIDが自動的に選択されている場合、さらに優先度の高いIPアドレスが設定されても、ルーターIDは変更されません。同様に、clear ip ospf processコマンドおよびclear ipv6 ospf processコマンドを実行した場合も、ルーターIDは変更されません。ただし、装置の再起動などでOSPFv2およびOSPFv3が再起動する場合に、さらに優先度の高いIPアドレスが設定されているときは、ルーターIDが変更されます。

OSPFのネットワークの種類

装置に実装されているOSPFv2には、Point-to-Pointブロードキャストという2つのネットワークの種類が存在します。OSPFv2でネットワークの種類を設定するには、ip ospf networkコマンドを使用します。

また、装置に実装されているOSPFv3は、ブロードキャストのみ対応しています。

Point-to-Point

Point-to-Pointは、通信可能な2台のルーターだけが隣接するネットワークです。OSPFを構成する各ルーターは並行関係にあり、隣接ルーター同士でネイバー関係とAdjacencyを確立してLSAを交換します。

Point-to-PointのLSA交換

ブロードキャスト

ブロードキャストでは、すべてのルーターとAdjacencyを確立するのではなく、代表ルーター(以後、DR)とバックアップ代表ルーター(以後、BDR)の選出を行い、DRおよびBDRとのみAdjacencyを確立してLSAの交換を行います。DRとBDR以外のルーターは、DROTHERと呼びます。DROTHER同士はネイバー関係を確立します。これによってAdjacencyが減少するため、ネットワーク負荷が軽くなります。

DRとBDRは、経路情報が更新されると各DROTHERにLSAを送信します。DROTHERは、DRとBDRから受け取ったLSAに基づいて、ルーティングテーブルを更新します。

DRとBDRは優先度で決定します。最も優先度が高いルーターがDR、2番目に優先度が高いルーターがBDRとして選出されます。なお、優先度値に「0」を指定したルーターは、DRおよびBDRになりません。

優先度を設定するには、OSPFv2の場合はip ospf priorityコマンド、OSPFv3の場合はipv6 ospf priorityコマンドを使用します。

ブロードキャストのLSA交換

OSPFパケットの種類

OSPFでは、以下の5種類のパケットが送受信されます。OSPFヘッダーのTypeフィールドに対応したコードが入ります。

タイプ1 Helloパケット

Helloパケットは、隣接ルーターとネイバー関係を確立する際に使用され、ネイバー関係を確立した後のルーターの生存確認でも使用されます。また、Helloパケットには優先度値が格納されており、DRおよびBDRの選出の際にも使用されます。

Helloパケットは定期的(デフォルト設定で10秒ごと)に送信されます。ネイバー関係を確立したルーターからHelloパケットが一定期間(デフォルト設定で40秒間)受信できなかった場合、ルーターに障害が発生したとみなされ、ネイバー関係が解消されます。

タイプ2 Database Descriptionパケット

Database Descriptionパケットは、Adjacencyを確立する際に使用されます。また、他のルーターとLSDBを交換する際にも使用されます。

タイプ3 Link State Requestパケット

Link State Requestパケットは、Adjacencyを確立する際、相手ルーターにLSAを要求するときに使用されます。

タイプ4 Link State Updateパケット

Link State Updateパケットは、Adjacencyを確立したルーターからネットワークやルーター情報の送信を要求されたときに、LSAを含んだLink State Updateパケットを要求元のルーターに通知する際に使用されます。

タイプ5 Link State Acknowledgmentパケット

Link State Acknowledgmentパケットは、Link State Updateパケットを受信したことを送信元ルーターに知らせるために使用されます。

LSAの種類

OSPFv2およびOSPFv3のLSUに含まれるLSAには、以下の種類があります。

OSPFv2のLSA
LSタイプ1 ルーターLSA

LSタイプ1 ルーターLSAは、エリアに所属する内部ルーターが生成するLSAです。エリア内だけで送受信されます。LSタイプ1 ルーターLSAには、エリアへのルーターのリンク情報やインターフェースのパスコストなどの情報が格納されています。

LSタイプ2 ネットワークLSA

LSタイプ2 ネットワークLSAは、DRが生成するLSAです。DRが所属するエリアにのみ通知されます。LSタイプ2 ネットワークLSAには、DRが所属するネットワークセグメントに接続されているルーターIDの一覧やネットワークマスクの情報などが格納されています。

LSタイプ3 サマリーLSA

LSタイプ3 サマリーLSAは、ABRが生成するLSAです。LSタイプ3 サマリーLSAには、エリア間のネットワーク情報が格納されています。

LSタイプ4 ASBRサマリーLSA

LSタイプ4 ASBRサマリーLSAは、ABRが生成するLSAです。ASBRまでの経路情報が格納されています。

LSタイプ5 AS外部LSA

LSタイプ5 AS外部LSAは、ASBRが生成するLSAです。AS内のスタブエリアとNSSA以外のエリアに通知されます。LSタイプ5 AS外部LSAには、AS外部のネットワークへの経路情報が格納されています。

LSタイプ5 AS外部LSAにはタイプ1とタイプ2の2つの種類があり、パスコストが異なります。タイプ1のパスコストは、外部パスコストにASBRまでのパスコストが加算されます。タイプ2のパスコストは、外部パスコストのみです。

LSタイプ7 NSSA外部LSA

LSタイプ7 NSSA外部LSAは、NSSA内でASBRが生成するLSAです。外部ASの宛先へのパスコストの情報が格納されています。

OSPFv3のLSA
LSタイプ1 ルーターLSA

LSタイプ1 ルーターLSAは、エリアに所属する内部ルーターが生成するLSAです。エリア内だけで送受信されます。LSタイプ1 ルーターLSAには、エリアへのルーターのリンク情報やインターフェースのパスコストなどの情報が格納されています。

LSタイプ2 ネットワークLSA

LSタイプ2 ネットワークLSAは、DRが生成するLSAです。DRが所属するエリアにのみ通知されます。LSタイプ2 ネットワークLSAには、DRが所属するネットワークセグメントに接続されているルーターIDの一覧やネットワークマスクの情報などが格納されています。

LSタイプ3 エリア間プレフィックスLSA

LSタイプ3 エリア間プレフィックスLSAは、ローカルエリア内の宛先ごとにABRが外部エリアに送信するLSAです。LSタイプ3 エリア間プレフィックスLSAには、ABRからローカルエリア内の宛先へのパスコストの情報が格納されています。

LSタイプ4 エリア間ルーターLSA

LSタイプ4 エリア間ルーターLSAは、ABRが外部エリアに送信するLSAです。LSタイプ4 エリア間ルーターLSAに含まれるパスコストは、ASBRにアドバタイズされます。

LSタイプ5 AS外部LSA

LSタイプ5 AS外部LSAは、ASBRが生成するLSAです。AS内のスタブエリアとNSSA以外のエリアに通知されます。LSタイプ5 AS外部LSAには、AS外部のネットワークへの経路情報が格納されています。

LSタイプ5 AS外部LSAにはタイプ1とタイプ2の2つの種類があり、パスコストが異なります。タイプ1のパスコストは、外部パスコストにASBRまでのパスコストが加算されます。タイプ2のパスコストは、外部パスコストのみです。

LSタイプ8 リンクLSA

LSタイプ8 リンクLSAは、ローカルリンクにだけフラッディングされるLSAです。すべてのルーターがフラッディングスコープを使用してLSタイプ8 リンクLSAを送信します。LSタイプ8 リンクLSAには、リンクローカルアドレスとIPv6アドレスが格納されています。

LSタイプ9 エリア内プレフィックスLSA

LSタイプ9 エリア内プレフィックスLSAは、ローカルのOSPFv3のエリアにフラッディングされます。すべてのルーターがLSタイプ9 エリア内プレフィックスLSAを送信します。LSタイプ9 エリア内プレフィックスLSAには、プレフィックスまたはリンク状態へのすべての変更情報が格納されています。

LSタイプ11 猶予LSA

LSタイプ11 猶予LSAは、ルーターが再起動されるときに、リンクローカルのフラッディングスコープを使用して送信するLSAです。グレースフルリスタートに使用されます。

エリアの作成

OSPFでは、エリアという論理的なグループを作成できます。LSAは同一エリア内だけで交換可能で、エリア内の装置は同じLSDBを保持します。大規模なネットワークでは、エリアを作成することでLSAの交換範囲を制限し、装置が保持するLSDBのサイズを抑制できます。これにより、装置の負荷を軽減できます。

エリアには、バックボーンエリアノーマルエリアスタブエリア、およびNSSAの4つの種類があります。また、これらのエリアで構成されたOSPFネットワーク全体のことを自律システム(以後、AS)と呼びます。

エリアは複数の役割をもったルーターで構成されます。すべてのインターフェースが同エリアに所属しているルーターを内部ルーターと呼びます。また、バックボーンエリアに接続するルーターのことをバックボーンルーターと呼びます。

各エリアはABR(Area Border Router:エリア境界ルーター)によって接続します。また、ASBR(AS Boundary Router:AS境界ルーター)を介して外部のAS(たとえばRIPを稼働しているAS)と接続することもできます。

エリアの例

エリアの種類

OSPFのエリアには、以下の種類があります。

補 足

OSPFv2の場合、以下のエリアを作成する際に指定するエリアIDは、0 ~ 4,294,967,295 の範囲またはIP アドレス形式のいずれでも設定できますが、構成情報にはIP アドレス形式で表示されます。

バックボーンエリア

OSPFの中心となるエリアです。OSPFを構成する際、バックボーンエリア以外のすべてのエリアは、必ずバックボーンエリアに接続します。バックボーンエリアのエリアIDには必ず「0.0.0.0」を指定します。

バックボーンエリアを作成するには、OSPFv2の場合はnetwork areaコマンド、OSPFv3の場合はipv6 ospf areaコマンドを使用します。

ノーマルエリア

すべての種類のLSAが流通するエリアです。ASBRを設置して外部ASと接続できます。

ノーマルエリアを作成するには、OSPFv2の場合はnetwork areaコマンド、OSPFv3の場合はipv6 ospf areaコマンドを使用します。

スタブエリア

スタブエリアは、エリア内を流れる一部のLSAを減らし、エリア内に所属するルーターの負荷を低減するために考えられたエリアです。スタブエリアには、外部経路情報のLSA(AS-external LSA)を送信できません。そのため、スタブエリアにはASBRを設置できません。

また、AS-external-LSAが伝わらないため、スタブエリア内の内部ルーターに対してABRがデフォルトルートを通知する必要があります。

スタブエリアを作成するには、OSPFv2およびOSPFv3のどちらの場合もarea stubコマンドを使用します。

NSSA

スタブエリアと同じく、NSSAには外部経路情報であるAS-external LSAを送信できません。NSSAでは、専用の外部経路情報のLSA(LSタイプ7 NSSA外部LSA)によって外部経路を認識します。これにより、NSSAにはASBRが設置可能です。

OSPFv2でNSSAを作成するには、area nssaコマンドを使用します。

エリアの削除

エリアを削除するには、OSPFv2およびOSPFv3のどちらの場合もno areaコマンドを使用します。

OSPFを構成するルーターの役割

OSPFを構成するルーターには、以下の役割があります。

内部ルーター

すべてのインターフェースが同一エリアに接続されたルーターです。バックボーンエリア内では、バックボーンルーターを兼ねることができます。

バックボーンルーター

1つ以上のインターフェースがバックボーンエリアに接続されたルーターです。ABRまたはASBRを兼ねることができます。

ABR(Area Border Router)

エリアの境界に存在し、複数のエリアに接続されているルーターです。

接続されているエリアのLSAを収集し、各エリア内の内部ルーターに通知します。これにより、各エリアの内部ルーターは、エリア外部の情報を収集できます。

また、エリアごとのLSDBを保持し、エリア間のルーティングを行います。

ASBR(AS Boundary Router)

外部ASとの境界に存在し、1つ以上のインターフェースが外部ASのルーターに接続されているルーターです。

OSPF以外のプロトコルの経路情報をOSPF内に再配布することで、外部ASとの通信が可能になります。

スタブエリア/NSSAに通知するデフォルトルートのコスト

OSPFv2の場合は、スタブエリア/NSSAに接続されたABRでarea default-costコマンドを使用して、スタブエリア/NSSAに通知するデフォルトルートのコストを変更できます。デフォルト設定ではコストは「1」です。

OSPFv3の場合は、スタブエリアに接続されたABRでarea default-costコマンドを使用して、スタブエリアに通知するデフォルトルートのコストを変更できます。デフォルト設定ではコストは「1」です。

再配布される経路情報のデフォルトメトリック値

OSPFに再配布される経路情報のデフォルトメトリック値を変更できます。デフォルト設定では「20」です。

再配布される経路情報のデフォルトメトリック値を変更するには、OSPFv2およびOSPFv3のどちらの場合もdefault-metricコマンドを使用します。

バーチャルリンクの設定

OSPFでは、すべてのエリアはバックボーンエリアに隣接している必要がありますが、物理的な制約などによりバックボーンエリアに直接接続できないエリアを設定する場合は、バーチャルリンクを設定します。

バーチャルリンクを設定するには、OSPFv2およびOSPFv3のどちらの場合もarea virtual-linkコマンドを使用します。

ホスト経路の設定

OSPFv2では、ホスト経路(プレフィックス長が/32の経路)を設定できます。

OSPFv2のホスト経路を設定するには、host areaコマンドを使用します。なお、OSPFv3では設定できません。

ABRでのOSPFルートの経路集約

ABRではOSPFルートの経路集約が設定できます。

OSPFルートの経路集約を設定するには、OSPFv2およびOSPFv3のどちらの場合も、ABRでarea rangeコマンドを使用します。

補 足

集約経路に対応するnull経路は自動生成されません。

default-information originate

OSPFv2では、他のルーティングプロトコルで学習したデフォルトルートが存在する場合に、自装置(ASBR)宛てのデフォルトルートを生成して通知する機能を使用できます。

OSPFv2でこの機能を有効にするには、default-information originateコマンドを使用します。なお、OSPFv3では設定できません。

OSPFv2 ECMP経路の最大マルチパス数

NP7000、NP5000、およびNP3000のOSPFv2では、イコールコストマルチパス(ECMP)をサポートしています。

注 意

NP7000、NP5000、およびNP3000のOSPv3は、イコールコストマルチパス(ECMP)をサポートしていません。

OSPFv2 ECMP経路の最大マルチパス数は、デフォルト設定では1です。最大マルチパス数を変更するには、maximum-pathsコマンドを使用します。

OSPFのAD値

OSPFのアドミニストレーティブディスタンス値(以後、AD値)を変更できます。OSPFv2のデフォルト設定は、inter-areaが「90」、intra-areaが「80」、external-1が「110」、external-2が「115」です。OSPFv3のデフォルト設定は、すべてのルートが「110」です。

OSPFのAD値を変更するには、OSPFv2およびOSPFv3のどちらの場合もdistance ospfコマンドを使用します。

補 足

ApresiaNPシリーズでは、AD値を255に設定した場合でも、通常の経路としてルーティングテーブルに取り込む対象として動作します。

OSPFv2のディストリビュートリスト

OSPFv2では、ルーティングテーブルに登録する経路情報をフィルタリングするためのディストリビュートリストを設定できます。

OSPFv2でディストリビュートリストを設定するには、distribute-list inコマンドを使用します。

OSPFv2認証の有効化

OSPFv2では、認証を有効にできます。デフォルト設定では無効です。

OSPFv2の認証を有効にするには、ip ospf authenticationコマンドを使用します。平文パスワードによる認証の場合は、ip ospf authentication-keyコマンドでパスワードを設定します。MD5認証の場合は、ip ospf message-digest-keyコマンドでキーIDとメッセージダイジェストキーを設定します。

インターフェースのパスコスト

インターフェースのパスコストは、デフォルト設定ではOSPFv2が「1」、OSPFv3が「10」です。

インターフェースのパスコストを変更するには、OSPFv2の場合はip ospf costコマンド、OSPFv3の場合はipv6 ospf costコマンドを使用します。

Helloパケットの送信間隔

Helloパケットの送信間隔を変更できます。デフォルト設定では10秒です。

Helloパケットの送信間隔を変更するには、OSPFv2の場合はip ospf hello-intervalコマンド、OSPFv3の場合はipv6 ospf hello-intervalコマンドを使用します。

隣接ルーターがダウンしたとみなすまでの待機時間

隣接ルーターからのHelloパケットが受信されず、隣接ルーターがダウンしたとみなすまでの待機時間を変更できます。デフォルト設定では40秒です。

隣接ルーターがダウンしたとみなすまでの待機時間を変更するには、OSPFv2の場合はip ospf dead-intervalコマンド、OSPFv3の場合はipv6 ospf dead-intervalコマンドを使用します。

パッシブインターフェースの設定

インターフェースをパッシブインターフェースに設定することで、OSPFパケットの送受信を無効化し、ネイバー関係が解消されます。パッシブインターフェースは、インターフェースごとに設定できます。デフォルト設定では、インターフェースはパッシブインターフェースに設定されていません(OSPFパケットがインターフェースで送受信されます)。

インターフェースをパッシブインターフェースに設定するには、OSPFv2およびOSPFv3のどちらの場合もpassive-interfaceコマンドを使用します。

OSPFへの経路情報の再配布

他のルーティングプロトコルで学習した経路情報をOSPF経路として再配布できます。デフォルト設定では無効です。

OSPFへの経路情報の再配布を有効にするには、OSPFv2およびOSPFv3のどちらの場合もredistributeコマンドを使用します。

OSPFv3の基準帯域

OSPFv3では、インターフェースのパスコストを算出するための基準帯域を変更できます。デフォルト設定では100Mbpsです。

OSPFv3の基準帯域を変更するには、auto-cost reference-bandwidthコマンドを使用します。

OSPFv3パケットの再送間隔

OSPFv3パケットの再送間隔を変更できます。デフォルト設定では5秒です。

OSPFv3パケットの再送間隔を変更するには、ipv6 ospf retransmit-intervalコマンドを使用します。

Link State UpdateパケットのTransmit Delay

対象インターフェースから隣接ルーターにLink State Updateパケットを送信する際の、推定される遅延時間(Transmit Delay)を変更できます。デフォルト設定は1秒です。

Transmit Delayを変更するには、OSPFv2の場合はip ospf transmit-delayコマンド、OSPFv3の場合はipv6 ospf transmit-delayコマンドを使用します。

補 足

OSPFv2のip ospf transmit-delayコマンドは、NP5000の1.11.01以降でサポートしています。

OSPFプロセスのクリア

OSPFプロセスをクリアし、ルーティングデータベースを再作成します。

OSPFプロセスをクリアするには、OSPFv2の場合はclear ip ospfコマンド、OSPFv3の場合はclear ipv6 ospfコマンドを使用します。

補 足

OSPFv2の場合、match ip route-sourceコマンドを使用した再配布などの設定は即時適用されません。match ip route-sourceコマンドによる設定内容を適用するには、clear ip ospfコマンドを使用してください。

ページトップへ