Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

OSPF の概要

OSPF の概要

OSPFは、単一の自律システム(AS)内でパケットをルーティングする内部ゲートウェイプロトコル(IGP)です。OSPF は、リンクステート情報を使用してルーティングを決定し、最短パス優先(SPF)アルゴリズム(ダイクストラ アルゴリズムとも呼ばれる)を使用してルート計算を行います。OSPFを実行している各ルーターは、そのルーターの接続インターフェイスとルーティングメトリックに関する情報を含む、ASまたはエリア全体にリンク状態アドバタイズメントをフラッディングします。各ルーターは、これらのリンク状態アドバタイズ情報を使用して、各ネットワークへの最小コスト パスを計算し、プロトコルのルーティングテーブルを作成します。

Junos OSは、仮想リンク、スタブエリア、OSPFv2の場合は認証を含めたOSPFバージョン2(OSPFv2)とOSPFバージョン3(OSPFv3)をサポートしています。Junos OSは、サービスタイプ(ToS)ルーティングをサポートしていません。

OSPF は、TCP/IP(伝送制御プロトコル/インターネット プロトコル)環境向けに設計されているため、IP サブネット化と外部から派生したルーティング情報のタグ付けを明示的にサポートしています。OSPF は、ルーティング アップデートの認証も提供します。

OSPF は、IP パケット ヘッダーに含まれるIP アドレスのみに基づいて IP パケットをルーティングします。OSPFは、ルーターインターフェイスが利用できなくなった場合などのトポロジーの変化を迅速に検出し、ルーティングのオーバーヘッドトラフィックを最小限に抑えながら、新しいループフリールートを迅速に計算します。

手記:

SRXシリーズファイアウォールでは、OSPFインターフェイスの下にリンク保護が1つだけ設定されている場合、デバイスは転送テーブルに代替ルートをインストールしません。回避策としてパケット単位のロードバランシングが有効になっている場合、デバイスはOSPFメトリックと両方のインターフェイスを介したトラフィックの送信の両方を監視しません。

OSPF ASは、1つのエリアで構成することも、複数のエリアに分割することもできます。単一エリアOSPFネットワークトポロジーでは、各ルーターはASのトポロジーを記述するデータベースを保持します。各ルーターのリンク状態情報は、AS全体にフラッディングされます。マルチエリアOSPFトポロジーでは、各ルーターがそのエリアのトポロジーを記述するデータベースを保持し、各ルーターのリンクステート情報がそのエリア全体にフラッディングされます。すべてのルーターは、AS内の他のエリアの集約されたトポロジーを維持します。各エリア内では、OSPFルーターは同一のトポロジーデータベースを持っています。ASまたはエリアトポロジーが変更された場合、OSPFはすべてのルーターのトポロジーデータベースの内容が迅速に収束することを保証します。

すべてのOSPFv2プロトコル交換を認証できます。OSPFv3 は、IPsec に依存してこの機能を提供します。つまり、信頼できるルーターのみがASのルーティングに参加できます。さまざまな認証スキームを使用できます。各エリアに単一の認証スキームが設定されるため、一部のエリアでは他のエリアよりも厳しい認証を使用できます。

外部から派生したルーティングデータ(たとえば、BGPから学習したルート)は、AS全体に透過的に渡されます。この外部から派生したデータは、OSPF リンク状態データから分離されます。各外部ルートは、アドバタイズルーターによってタグ付けされ、ASの境界上のルーター間で追加情報の受け渡しが可能になります。

手記:

デフォルトでは、Junos OSはRFC 1583、 OSPFバージョン2と互換性があります。Junos OS リリース 8.5以降では、 no-rfc-1583 ステートメントを含めることで、RFC 1583との互換性を無効にすることができます。詳細については、 例:RFC 1583 との OSPFv2 互換性の無効化を参照してください。

このトピックでは、次の情報について説明します。

OSPFデフォルトルート優先度値

Junos OSルーティングプロトコルプロセスでは、ルーティングテーブルが受信する各ルートにデフォルトの優先値が割り当てられます。デフォルト値は、ルートのソースによって異なります。優先度は 0 から 4,294,967,295 (232 – 1) で、値が小さいほど優先ルートであることを示します。 表 1 は、OSPF のデフォルトのプリファレンス値を示しています。

表 1: OSPF のデフォルト ルート プリファレンス値

ルートの学習方法

デフォルトの設定

デフォルト設定を変更するステートメント

OSPF 内部ルート

10

OSPF 優先

OSPF AS外部ルート

150

OSPF 外部優先

OSPF ルーティング アルゴリズム

OSPF は、ダイクストラ アルゴリズムとも呼ばれる最短パス優先(SPF)アルゴリズムを使用して、各宛先へのルートを決定します。エリア内のすべてのルーティングデバイスは、このアルゴリズムを並行して実行し、結果を個々のトポロジーデータベースに保存します。複数のエリアへのインターフェイスを持つルーティングデバイスは、アルゴリズムの複数のコピーを実行します。このセクションでは、SPFアルゴリズムがどのように機能するかについて簡単に説明します。

ルーティング デバイスが起動すると、OSPF を初期化し、下位プロトコルからルーター インターフェイスが機能していることを示す通知を待ちます。次に、ルーティング デバイスは、OSPF Hello プロトコルを使用してネイバーを獲得します。ネイバーに hello パケットを送信し、その hello パケットを受信します。

ブロードキャストまたは非ブロードキャスト マルチアクセス ネットワーク(2 つ以上のルーティング デバイスの接続をサポートする物理ネットワーク)では、OSPF Hello プロトコルがネットワークの指定ルーターを選択します。このルーティングデバイスは、ネットワークを記述する リンク状態アドバタイズ( LSA)を送信する役割を担い、ネットワークトラフィックの量とルーティングデバイスのトポロジーデータベースのサイズを削減します。

次に、ルーティングデバイスは、新たに獲得したネイバーの一部と 隣接関係 を形成しようとします。(マルチアクセス ネットワークでは、指定ルーターとバックアップ指定ルーターのみが他のルーティング デバイスと隣接関係を形成します。隣接関係によって、ルーティングプロトコルパケットの分配が決まります。ルーティングプロトコルパケットは隣接関係でのみ送受信され、トポロジーデータベースの更新は隣接関係に沿ってのみ送信されます。隣接関係が確立されると、隣接するルーターのペアがトポロジーデータベースを同期します。

ルーティングデバイスは、LSAパケットを送信して、定期的に、および状態が変化したときに、その状態をアドバタイズします。これらのパケットには、ルーティング デバイスの隣接関係に関する情報が含まれており、非動作ルーティング デバイスの検出を可能にします。

信頼性の高いアルゴリズムを使用して、ルーティングデバイスはエリア全体にLSAをフラッディングし、エリア内のすべてのルーティングデバイスがまったく同じトポロジーデータベースを持つようにします。各ルーティングデバイスは、トポロジーデータベースの情報を使用して、自身をルートとする最短パスツリーを計算します。次に、ルーティング デバイスはこのツリーを使用してネットワーク トラフィックをルーティングします。

ここまでのSPFアルゴリズムの説明では、このアルゴリズムが単一のエリア内(エリア内ルーティング)でどのように機能するかを説明しました。内部ルーターがエリア外の宛先にルーティングできるようにするには(エリア間ルーティング)、エリア境界ルーターは追加のルーティング情報をエリアに挿入する必要があります。エリア境界ルーターはバックボーンに接続されているため、バックボーンに関する完全なトポロジー データにアクセスできます。エリア境界ルーターは、この情報を使用して、エリア外のすべての宛先へのパスを計算し、これらのパスをエリアの内部ルーターにアドバタイズします。

自律システム(AS)境界ルーターは、外部自律システムに関する情報を、スタブエリアを除くAS全体にフラッディングします。エリア境界ルーターは、すべてのAS境界ルーターへのパスをアドバタイズする役割を担います。

OSPF スリーウェイ ハンドシェイク

OSPFは、OSPF対応リンクにLSAをフラッディングすることで、トポロジーマップを作成します。LSA は、隣接する OSPF インターフェイスに OSPF 対応インターフェイスが存在することを通知します。LSA の交換により、 図 1 に示すように、3 ウェイ ハンドシェイクを使用して、隣接するすべての OSPF インターフェイス(ネイバー)間で双方向接続が確立されます。

図 1:OSPF スリーウェイ ハンドシェイク OSPF Three-Way Handshake

図 1 では、ルーター A がオンラインになると、すべての OSPF 対応インターフェイスから Hello パケットを送信します。ルーターBはパケットを受信し、ルーターBがルーターAからのトラフィックを受信できることを確立します。ルーターBはルーターAにhelloパケットの受信を確認する応答を生成します。ルーターAが応答を受信すると、ルーターBがルーターAからのトラフィックを受信できることを確立します。次に、ルーターAは最終応答パケットを生成して、ルーターAがルーターBからのトラフィックを受信できることをルーターBに通知します。この3ウェイハンドシェイクにより、双方向接続が保証されます。

新しいネイバーがネットワークに追加されるか、既存のネイバーが接続を失うと、LSA の交換(または不在)によって、トポロジ マップ内の隣接関係が適宜変更されます。これらのLSAは、ネットワーク内の増分変更のみをアドバタイズするため、ネットワーク上のOSPFトラフィック量を最小限に抑えることができます。隣接関係は共有され、トポロジーデータベースにネットワークトポロジーを作成するために使用されます。

OSPF バージョン 3

OSPFv3 は、IPv6(IP バージョン 6)アドレッシングをサポートする OSPF の修正バージョンです。OSPFv3 と OSPFv2 は、以下の点で異なります。

  • すべてのネイバーID情報は、32ビットルーターIDに基づいています。

  • プロトコルは、サブネットごとではなく、リンクごとに実行されます。

  • ルーターとネットワークのリンク状態アドバタイズメント(LSA)は、プレフィックス情報を伝送しません。

  • link-LSA と intra-area-prefix-LSA の 2 つの新しい LSA タイプが含まれています。

  • フラッディングのスコープは次のとおりです。

    • リンクローカル

    • 面積

    • として

  • リンクローカル アドレスは、仮想リンクを除くすべてのネイバー交換に使用されます。

  • 認証が削除されます。IPv6 認証ヘッダーは、IP レイヤーに依存しています。

  • パケット形式は次のように変更されました。

    • バージョン番号 2 はバージョン番号 3 になりました。

    • db オプションフィールドが 24 ビットに拡張されました。

    • 認証情報が削除されました。

    • Hello メッセージにはアドレス情報がありません。

    • RV6 の 2 つの新しいオプション ビットが含まれています。

  • タイプ 3 サマリー LSA は、 inter-area-prefix-LSA に名前が変更されました。

  • タイプ4サマリーLSAは、 inter-area-router-LSAsに名前が変更されました。

OSPF パケットの概要

Link-state advertisement(LSA)パケットにはいくつかのタイプがあります。

このトピックでは、次の情報について説明します。

OSPF パケット ヘッダー

すべての OSPFv2 パケットには共通の 24 バイト ヘッダーがあり、OSPFv3 パケットには共通の 16 バイト ヘッダーがあります。このヘッダーには、OSPF がパケットを受け入れるかどうかを判断するために必要なすべての情報が含まれています。ヘッダーは、次のフィールドで構成されています。

  • バージョン番号—現在のOSPFバージョン番号。これは 2 または 3 のいずれかです。

  • Type:OSPFパケットのタイプ。

  • パケット長—ヘッダーを含むパケットの長さ(バイト単位)。

  • ルーターID—パケットの発信元のルーターのIPアドレス。

  • エリアID—パケットが移動しているエリアの識別子。各 OSPF パケットは 1 つのエリアに関連付けられています。仮想リンク上を移動するパケットには、バックボーン エリア ID 0.0.0.0 のラベルが付けられます。.

  • チェックサム—フレッチャーチェックサム。

  • 認証—(OSPFv2のみ)認証方式と認証情報。

  • インスタンスID—(OSPFv3のみ)リンクに複数のOSPFv3レルムが設定されている場合に使用される識別子。

Hello パケット

ルーターは、仮想リンクを含むすべてのインターフェイスで定期的に hello パケットを送信し、ネイバー関係を確立および維持します。Helloパケットは、マルチキャストまたはブロードキャスト機能を持つ物理ネットワーク上でマルチキャストされ、隣接するルーターの動的な検出を可能にします。(非ブロードキャスト ネットワークでは、動的なネイバー探索は不可能なため、 例:非ブロードキャスト マルチアクセス ネットワークでの OSPFv2 インターフェイスの設定の説明に従って、すべてのネイバーを静的に設定する必要があります)。

Helloパケットは、OSPFヘッダーに加えて、以下のフィールドで構成されています。

  • ネットワーク マスク—(OSPFv2 のみ)インターフェイスに関連付けられたネットワーク マスク。

  • Hello 間隔—ルーターが Hello パケットを送信する頻度。共有ネットワーク上のすべてのルーターは、同じ hello 間隔を使用する必要があります。

  • オプション—ルーターのオプション機能。

  • ルーター優先度—指定ルーターになるためのルーターの優先度。

  • Router dead interval—ルーターがダウンしたと宣言する前に、ルーターからOSPFパケットを受信せずに待機するルーター時間。共有ネットワーク上のすべてのルーターは、同じルーターのデッドインターバルを使用する必要があります。

  • [指定ルーター(Designated router)]:指定ルーターの IP アドレス。

  • バックアップ指定ルーター—バックアップ指定ルーターの IP アドレス。

  • ネイバー—ルーターのデッド間隔で指定された時間内に有効な hello パケットが受信されたルーターの IP アドレス。

データベース記述パケット

隣接関係を初期化する場合、OSPFはトポロジーデータベースの内容を記述するデータベース記述パケットを交換します。これらのパケットは、OSPF ヘッダー、パケット シーケンス番号、およびリンク状態アドバタイズメントのヘッダーで構成されます。

リンクステート リクエスト パケット

ルーターは、トポロジーデータベースの一部が古くなっていることを検出すると、データベースの正確なインスタンスを要求するネイバーにリンクステート リクエスト パケットを送信します。これらのパケットは、OSPF ヘッダーに加えて、ルーターが探しているデータベース情報を一意に識別するフィールドで構成されています。

リンク状態更新パケット

リンク状態更新パケットは、送信元から 1 ホップ離れた 1 つ以上のリンク状態アドバタイズメントを伝送します。ルーターは、マルチキャストまたはブロードキャストモードをサポートする物理ネットワーク上で、これらのパケットをマルチキャスト(フラッディング)します。ルーターは、すべてのリンク状態更新パケットを確認し、再送信が必要な場合は、再送信されたアドバタイズメントをユニキャストで送信します。

リンク状態更新パケットは、OSPF ヘッダーに加えて、以下のフィールドで構成されています。

  • アドバタイズメント数—このパケットに含まれるリンク状態アドバタイズメントの数。

  • リンク状態アドバタイズメント—リンク状態アドバタイズメントそのもの。

リンク状態確認パケット

ルーターは、リンク状態更新パケットに応答して、リンク状態確認パケットを送信し、更新パケットが正常に受信されたことを確認します。1 つの承認パケットに、複数の更新パケットに対する応答を含めることができます。

リンク状態確認パケットは、OSPF ヘッダーとリンク状態アドバタイズメント ヘッダーで構成されています。

リンク状態アドバタイズメント パケットタイプ

リンク状態リクエスト、リンク状態更新、およびリンク状態確認パケットは、リンク状態アドバタイズパケットを確実にフラッディングするために使用されます。OSPF は、以下のタイプのリンク状態アドバタイズメントを送信します。

  • ルーターリンクアドバタイズメント—エリアへのルーターのリンクの状態とコストを説明するために、すべてのルーターから送信されます。このようなリンク状態アドバタイズメントは、1 つのエリアにあふれています。

  • ネットワークリンクアドバタイズメント—指定されたルーターによって送信され、ネットワークに接続されているすべてのルーターを記述します。このようなリンク状態アドバタイズメントは、1 つのエリアにあふれています。

  • サマリー リンク アドバタイズメント - エリア境界ルーターが送信し、他のエリアで認識しているルートを記述します。サマリーリンクのアドバタイズメントには、宛先がIPネットワークの場合と、宛先がAS境界ルーターの場合の2種類があります。サマリーリンクアドバタイズメントは、エリア間ルート、つまり、エリア外だがAS内の宛先へのルートを記述します。これらのリンク状態アドバタイズメントは、アドバタイズの関連エリア全体にあふれています。

  • AS外部リンクアドバタイズメント - AS境界ルーターが、認識している外部ルートを記述するために送信します。これらのリンク状態アドバタイズメントは、(スタブエリアを除いて)AS全体にあふれています。

各リンク状態アドバタイズタイプは、OSPFルーティングドメインの一部を記述します。すべてのリンク状態アドバタイズメントがAS全体にあふれています。

各リンク状態アドバタイズパケットは、共通の20バイトヘッダーで始まります。

OSPF外部メトリックについて

OSPFが外部自律システム(AS)からルート情報をエクスポートする場合、ルートにコストまたは 外部メトリックが含まれます。OSPFは、タイプ1とタイプ2の2種類の外部メトリックをサポートしています。この2つのメトリックの違いは、OSPFがルートのコストを計算する方法です。

  • タイプ 1 の外部メトリックは、リンク状態メトリックに相当し、コストは内部コストと外部コストの合計に等しくなります。つまり、タイプ1外部メトリックには、宛先への外部コストと、AS境界ルーターに到達するためのコスト(メトリック)が含まれます。

  • タイプ2の外部メトリックは、ASの内部にあるパスのコストよりも大きくなります。タイプ2の外部メトリックは、宛先への外部コストのみを使用し、AS境界ルーターに到達するためのコスト(メトリック)を無視します。

デフォルトでは、OSPFはタイプ2の外部メトリックを使用します。

タイプ1とタイプ2の両方の外部メトリックをASに同時に存在できます。その場合、タイプ 1 の外部メトリックが常に優先されます。

タイプ1の外部パスは、常にタイプ2の外部パスよりも優先されます。すべてのパスがタイプ2外部パスである場合、アドバタイズされたタイプ2メトリックが最小のパスが常に優先されます。

サポートされている OSPF および OSPFv3 標準

Junos OS は、OSPF および OSPF バージョン 3(OSPFv3)の標準を定義する以下の RFC とインターネット ドラフトを実質的にサポートしています。

  • RFC 1583、 OSPFバージョン2

  • RFC 1765、 OSPFデータベースオーバーフロー

  • RFC 1793、 デマンド回線をサポートするためのOSPFの拡張

  • RFC 1850、 OSPFバージョン2管理情報ベース

  • RFC 2154、 デジタル署名付きOSPF

  • RFC 2328、 OSPFバージョン2

  • RFC 2370、 OSPF不透明LSAオプション

    サポートは、[edit protocols rsvp interface interface-name ]階層レベルのupdate-threshold設定ステートメントによって提供されます。

  • RFC 3101、 OSPF Not-So-Stubby Area(NSSA)オプション

  • RFC 3623、 グレースフルOSPF再起動

  • RFC 3630、 OSPFバージョン2のトラフィックエンジニアリング(TE)拡張

  • RFC 4136、 安定したトポロジーにおけるOSPFの更新とフラッディングの削減

  • RFC 4203、 GMPLS(汎用マルチプロトコルラベルスイッチング)をサポートするOSPF拡張

    インターフェイススイッチングのみがサポートされます。

  • RFC 4552、 OSPFv3の認証/機密性

  • RFC 4576、BGP/MPLS IP仮想プライベートネットワーク(VPN)のループを防止するためのリンク状態広告(LSA)オプションビットを使用

  • RFC 4577、 BGP/MPLS IP仮想プライベートネットワーク(VPN)のプロバイダー/カスタマーエッジプロトコルとしてのOSPF

  • RFC 4811、 OSPFアウトオブバンドリンクステートデータベース(LSDB)再同期

  • RFC 4812、 OSPF再起動シグナリング

  • RFC 4813、 OSPFリンクローカルシグナリング

  • RFC 4915、 OSPFのマルチトポロジ(MT)ルーティング

  • RFC 5185、 OSPFマルチエリア隣接関係

  • RFC 5187、 OSPFv3グレースフルリスタート

  • RFC 5250、 OSPF不透明LSAオプション

    手記:

    RFC 4750は、このRFCで「should」要件として言及されていますが、サポートされていません。ただし、RFC 4750 の前身である RFC 1850 はサポートされています。

  • RFC 5286、 IP Fast Rerouteの基本仕様:ループフリーの代替

  • RFC 5340、 IPv6のOSPF (RFC 2740はRFC 5340に置き換えられました)

  • RFC 5709、 OSPFv2 HMAC-SHA暗号化認証

  • RFC 5838、 OSPFv3 におけるアドレス ファミリーのサポート

  • インターネット ドラフト draft-ietf-ospf-af-alt-10.txt、 OSPFv3 におけるアドレス ファミリーのサポート

  • インターネットドラフトdraft-katz-ward-bfd-02.txt、 双方向フォワーディング検知

    エコーパケットの送信はサポートされていません。

  • RFC 6549、 OSPFv2マルチインスタンス拡張

  • RFC 8665、 セグメントルーティングのOSPF拡張

  • インターネットドラフトdraft-ietf-lsr-flex-algo-07.txt、 IGPフレキシブルアルゴリズム

以下の RFC では、標準は定義されていませんが、OSPF および関連技術に関する情報が提供されています。IETFは、これらを「情報」として分類しています。

  • RFC 3137、 OSPFスタブルーターアドバタイズメント

  • RFC 3509、 OSPFエリア境界ルーターの代替実装

  • RFC 5309、 リンクステートルーティングプロトコルにおけるLAN上のポイントツーポイント操作

  • RFC 8920、 OSPFアプリケーション固有のリンク属性

  • RFC 8920、 OSPFv2プレフィックス/リンク属性アドバタイズメント