Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

セグメントルーティングトラフィックエンジニアリングのためのOSPFで柔軟なアルゴリズムを設定する方法

柔軟なアルゴリズムにより、IGP単独でネットワーク上の制約ベースのパスを計算できるため、ネットワークコントローラを使用せずにシンプルなトラフィック制御を行うことができます。本格的なセグメントルーティングを備えたコントローラを実装していないが、ネットワークでセグメントルーティングのメリットを享受したいネットワーク向けの軽量ソリューションです。

今後の予定

柔軟なアルゴリズムの設定の詳細については、『OSPF User Guide』を参照してください

セグメントルーティングのためのOSPFフレキシブルアルゴリズムの理解

要件に基づいてさまざまなパラメーターとリンク制約を使用してパスを計算する柔軟なアルゴリズムを定義することで、ネットワークを薄くスライスできます。例えば、IGPメトリックを最小化するパスを計算する柔軟なアルゴリズムを定義し、ネットワークを別々のプレーンに分割するためにトラフィック制御メトリックに基づいてパスを計算する別の柔軟なアルゴリズムを定義できます。この機能により、コントローラを持たないネットワークでも、実際にネットワークコントローラを実装することなく、セグメントルーティングを使用してトラフィック制御を設定することができます。プレフィックスSIDを使用して、制約ベースのパスに沿ってパケットを誘導できます。ポリシー設定により、柔軟なアルゴリズムのプレフィックスSIDを設定することができます。

IGPプロトコルは、リンクメトリックを使用して最適なパスを計算します。ただし、特定のタイプのトラフィックに対しては、最適な IGP パスが必ずしも最適なパスであるとは限りません。そのため、最短のIGPメトリックに基づいて計算されたIGP最適なパスは、IGPメトリックに反映されないトラフィック要件のために、トラフィックエンジニアリングパスに置き換えられることが多いIGPです。通常、RSVP-TE または SR TE を使用して、この制限を克服するための追加のメトリックと制約に基づいてパスを計算します。Junosは、IGPによって計算された元のパスに加えて、またはその代わりとして、このようなパスを転送テーブルにインストールします。

フレキシブルアルゴリズムを設定するメリット

  • ネットワークのコアで使用できる、セグメントルーティングトラフィックエンジニアリングの軽量バージョンです。

  • ネットワークコントローラをインストールしなくても、セグメントルーティングによるトラフィック制御の設定が可能です。

  • BGP-LSやスタティックパスを設定せずに、スライスごとのイコールコストマルチパス(ECMP)およびTI-LFAを利用します。

  • 同じ柔軟なアルゴリズム定義と制約計算を使用して、TI-LFAバックアップパスを計算します。

  • RSVP や LDP を設定せずに、OSPFv2 のみを使用したセグメント ルーティング トラフィック エンジニアリングを活用します。

  • 単一ラベルに基づいて制約付きプライマリパスをプロビジョニングする機能。

フレキシブルアルゴリズム定義(FAD)とは?

柔軟なアルゴリズムにより、IGPは指定された制約に基づいて追加の最適パスを計算できるため、ネットワークコントローラを使用せずに簡単なトラフィック制御を行うことができます。本格的なセグメントルーティングを備えたコントローラを実装していないが、ネットワークでセグメントルーティングのメリットを享受したいネットワーク向けの軽量ソリューションです。すべての運用担当者は、要件に応じて個別の制約または色を定義できます。

柔軟なアルゴリズムを定義するには、[edit routing-options]階層レベルでflex-algorithm idステートメントを含めます。柔軟なアルゴリズム定義(FAD)には、128から255までの識別子が割り当てられます。この柔軟なアルゴリズムは、ネットワーク内の 1 つ以上のルーターで定義できます。柔軟なアルゴリズムは、以下のパラメーターに基づいて最適なパスを計算します。

  • Calculation type—SPFまたはストリクトSPFの2つの計算タイプオプションがあります。FADでこれらの計算タイプのいずれかを指定できます。トラフィックエンジニアリングのショートカットなどの特定のローカルポリシーに基づいて、デバイスのSPF計算に影響を与えたい場合は、SPF計算タイプを選択します。厳密なSPFを選択した場合、ローカルポリシーはSPFパスの選択に影響を与えることはできません。

  • Metric type- IGP メトリックまたは TE メトリックは、使用可能なメトリック タイプ オプションです。ネットワークの要件に応じて、FADでこれらのメトリックタイプのいずれかを指定できます。特定のリンクに IGP メトリックを使用したくない場合は、OSPFv2 がルートの計算に使用できる TE メトリックを設定できます。

  • Priority- 要件に応じてFADに優先度を割り当てることができ、OSPFv2は割り当てられた優先度に基づいて、特定のFADアドバタイズメントを別のFADよりも優先します。

  • Set of Link constraints- [edit protocols mpls admin-groups]階層レベルで多くのプロトコルのadmin-groupsを設定して、個々のリンクに色を付けることができます。これらのadmin-groupsは、[edit routing-options flex-algorithm definition admin-groups] 階層レベルで、include anyinclude-all、またはexcludeとして定義できます。

冗長性を確保し、競合を避けるために、少数のルーターでのみ柔軟なアルゴリズムを設定することをお勧めします。柔軟なアルゴリズムの定義は、 FAD sub-TLVsとしてIGPでアドバタイズされます。非常に大規模なネットワークでは、柔軟なアルゴリズム定義を 8 つ以上設定することはお勧めしません。柔軟なアルゴリズムはそれぞれ独自のパスを計算し、それを超えるとパフォーマンスの問題が発生する可能性があるためです。

デフォルトのFADには、以下のパラメータがあります。

  • 計算タイプ:SPF

  • メトリックタイプ:IGP-Metric

  • 優先度:0

  • リンク制約:なし

注:

ライブネットワーク内またはその場で柔軟なアルゴリズムの定義を変更すると、すべてのノードが新しいパスに収束するまでトラフィックが中断する可能性があります。

Junos OS 21.4R1以降、TEDで「柔軟なアルゴリズム定義(FAD)」と「柔軟なアルゴリズムプレフィックスメトリック(FAPM)」をサポートし、BGP-LSで2つの新しい対応するTLV「FAD TLV」と「FAPM TLV」を実装します。FAD TLVの値には、フレックスアルゴリズム、メトリックタイプ、計算タイプ、および優先度が含まれており、すべてそれぞれ1バイトです。TLVには、0個以上のサブTLVが含まれている場合があります。5つのサブtlvは、フレックスアルゴがアフィニティを除外、フレックスアルゴにアフィニティを含む、フレックスアルゴがすべてのアフィニティを含む、フレックスアルゴ定義フラグ、フレックスアルゴがSRLGを除外するのです。

FAD TLVは、対応するノードが基盤となるIGP TLVまたはサブTLVに由来する場合にのみ、ノードNLRIのBGP-LS属性に追加できます。ノードNLRIに関連付けられたBGP-LS属性には、ノードがアドバタイズしている各アルゴリズムの柔軟なアルゴリズム定義に対応する1つ以上のFAD TLVが含まれている場合があります。

FAPM TLVの値には、フレックスアルゴリズム(1バイト)、予約済み(3バイト)、メトリック(4バイト)が含まれています。FAPM TLVは、対応するノードがプレフィックスから発信された場合のみ、ノードから発信されたプレフィックスNLRIのBGP-LS属性に追加できます。

Junos OSリリース22.4R1以降、エリア間プレフィックスに最適なエンドツーエンドのパスを可能にするために、柔軟なアルゴリズムプレフィックスメトリック(FAPM)が定義されました。エリアボーダールーター(ABR)は、指定されたフレキシブルアルゴリズム(フレックスアルゴ)で到達可能なエリア間でプレフィックスをアドバタイズする場合に、FAPMを含める必要があります。プレフィックスが到達できない場合、エリア間でアドバタイズする際に、ABRはそのフレックスアルゴリズムにそのプレフィックスを含めてはなりません。定義された FAPM は、エリア間サポートを提供します。

柔軟なアルゴリズムへの参加

要件に応じて、特定のルーターを特定の柔軟なアルゴリズムに参加するように設定できます。柔軟なアルゴリズムの定義に基づいて計算されたパスは、さまざまなアプリケーションによって使用され、それぞれが独自のデータプレーンを使用して、そのようなパスを介してデータを転送する可能性があります。参加デバイスは、OSPFv2のセグメントルーティングフレキシブルアルゴリズムサブTLV内のすべてのアプリケーションに、特定のフレキシブルアルゴリズムへの参加を明示的にアドバタイズする必要があります。特定の柔軟なアルゴリズムに参加するようにノードを設定することは、その FAD で指定された制約をサポートできる場合に条件です。

柔軟なアルゴリズムへの参加を設定するには、[edit protocols isis source-packet- routing]階層レベルにflex-algorithmステートメントを含めます。同じデバイスがFADをアドバタイズし、柔軟なアルゴリズムに参加することもできます。

inetcolor.0およびmpls.0ルーティングテーブルでOSPFフレキシブルアルゴリズムルートの優先度を設定することで、パス選択を制御できます。

柔軟なアルゴリズム定義で構成されたネットワークトポロジー

図1 はサンプルトポロジーを示しており、8つのルーターR0、R1、R2、R3、R4、R5、R6、およびR7があります。4つの柔軟なアルゴリズム、128、129、130、および135は、以下の表に示すようにadminグループで定義および設定されます。

フレックスアルゴリズム定義(FAD)

128

任意の赤を含める

129

緑色を含む

130

緑と青を含める

135

赤を除外する

図1:柔軟なアルゴリズムトポロジー Flexible Algorithm Topology

図2 は、FAD 128がadminグループredで設定された任意のインターフェイスでトラフィックをどのようにルーティングするかを示しています。

図2:柔軟なアルゴリズム定義のためのトラフィックフロー 128 Traffic Flow for Flexible Algorithm Definition 128

図3 は、FAD 129がadminグループgreenで設定されたインターフェイスでトラフィックをどのようにルーティングするかを示しています。

図3:柔軟なアルゴリズム定義のためのトラフィックフロー 129 Traffic Flow for Flexible Algorithm Definition 129

図4 は、FAD 130が管理グループ緑と青で設定された任意のインターフェイスでトラフィックをルーティングする方法を示しています。

図4:柔軟なアルゴリズム定義のためのトラフィックフロー 130 Traffic flow for Flexible Algorithm Definition 130

図5 は、FAD 135がadminグループredで設定されていないインターフェイスでトラフィックをどのようにルーティングするかを示しています。

図5:柔軟なアルゴリズム定義のためのトラフィックフロー 135 Traffic Flow for Flexible Algorithm Definition 135

柔軟なアルゴリズムRIB

ルーターが対応するフレキシブル アルゴリズムに参加するすべてのフレキシブル アルゴリズムについて、ルートは、対応するフレキシブル アルゴリズム RIB グループ(ルーティング テーブルとも呼ばれます)にインストールされます。デフォルトでは、ラベル付きのOSPFv2フレキシブルアルゴリズムルートが、inet.color、 inet(6)color.0 、および mpls.0 RIBにインストールされます。

BGPコミュニティと柔軟なアルゴリズム

柔軟なアルゴリズムは、VPN サービスなどの他のサービスのルートを解決するために、BGP カラー コミュニティを関連付けることができます。デフォルトでは、関連するBGPカラーコミュニティは柔軟なアルゴリズムIDと同じです。inet(6)color.0 テーブルにインストールされている柔軟なアルゴリズムのイングレスルートは、ルート内にこのカラーコミュニティを持ちます。ただし、 [edit routing-options flex-algorithm id color desired color community value] 階層レベルで異なるBGPカラーコミュニティを設定することができます。

注:

柔軟なアルゴリズムのためにBGPカラーコミュニティを変更すると、トラフィックが中断する可能性があります。フレキシブルアルゴリズムのBGPカラーコミュニティを変更した場合、そのフレキシブルアルゴリズムに関連するすべてのルートがRIBから削除され、新しいカラーで再度追加されます。

サポートされている機能とサポートされていない機能

Junos OSは、以下のシナリオで柔軟なアルゴリズムをサポートします。

  • さまざまな柔軟なアルゴリズムのプレフィックスSIDの設定とアドバタイズのサポート。

  • インターネットドラフトdraft-ietf-lsr-flex-algo-05.txt IGP柔軟なアルゴリズムを部分的にサポート

  • OSPFv2のみがセグメントルーティングをサポートしているため、柔軟なアルゴリズムの現在の実装はOSPFv2でのみサポートされています。

Junos OS は、柔軟なアルゴリズムと組み合わせた以下の機能をサポートしていません。

  • 柔軟なアルゴリズムはデフォルトのユニキャストトポロジーにのみ適用可能で、OSPFv2マルチトポロジーはサポートされていません。

  • OSPFv2ショートカットおよびその他のOSPFv2トラフィックエンジニアリング設定オプションは、柔軟なアルゴリズム計算には適用されません。.
  • 柔軟なアルゴリズムの現在の実装は、OSPFv3ではサポートされていません。
  • フレキシブル アルゴリズム プレフィックス SID のエリア間(OSPFv2)リークはサポートされていません。

  • プレフィックスとSIDの競合解決はサポートされていません。

  • TI-LFAが優先されるFRR計算であるため、リモートループフリーの代替機能はサポートされていません。

  • 柔軟なアルゴリズムの参加がない場合の柔軟なアルゴリズム定義のアドバタイズはサポートされていません。

  • トランスポートクラスRIBはサポートされていません。

例:OSPF フレキシブル アルゴリズム

概要

この例では、OSPFv2ネットワークで柔軟なアルゴリズムを設定する方法を示します。この柔軟なアルゴリズムにより、コントローラを持たないネットワークでも、実際にネットワークコントローラを実装することなく、セグメントルーティングを使用してトラフィック制御を設定することができます。

要件に基づいてさまざまなパラメーターとリンク制約を使用してパスを計算する柔軟なアルゴリズムを定義することで、ネットワークを薄くスライスできます。計算型、メトリック型、および一連の制約で構成されるセットは、フレキシブルアルゴリズム定義(FAD)と呼ばれます。FADを定義し、OSPFv2ネットワークで同じものをアドバタイズすることができます。デバイスは、特定の FAD の制約をサポートしていれば、特定の柔軟なアルゴリズムに参加するように設定することもできます。

トポロジー

図6は、R0、R1、R2、R3、R4、およびR5の6つのデバイスが存在する柔軟なアルゴリズムトポロジーを示しています。2つの柔軟なアルゴリズム128および129は、これらの各デバイスに定義されている。管理グループred、blue、greenはデバイス上で設定されています。メトリックタイプ、計算タイプ、リンク制約などの異なるパラメーターを持つFADは、各デバイスで定義されます。

図6:柔軟なアルゴリズムトポロジー Network topology diagram for AS 65000 with routers R0, R1, R2, R3, R5. Links labeled with IPs, subnet masks, interfaces like ge-0/0/0. Color-coded paths: Red Admin-group 0, Blue Admin-group 1, Green Admin-group 2. IPs in 192.168.255.x; uses 10.10.*.* /16 subnet. For network planning or troubleshooting.

要件

この例では、以下のハードウェアおよびソフトウェアコンポーネントを使用しています。

  • 6 台の MXシリーズ ルーター。
  • すべてのデバイスで実行されている Junos OS リリース 21.1R1 以降。

設定

CLIクイックコンフィグレーション

この例をすばやく設定するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストします。

デバイスR0

デバイスR1

デバイスR2

デバイスR3

デバイスR4

デバイスR5

デバイスR0の設定

OSPFv2の柔軟なアルゴリズムを設定するには、デバイスR0で以下の手順を実行します。

  1. IPトランスポートを有効にするようにデバイスインターフェイスを設定します。

  2. OSPF セッションのルーター ID として使用するループバック インターフェイス(lo0)アドレスを設定します。

  3. ルーターIDと自律システム(AS)番号を設定して、同じASに属する一連のルーティングデバイス内でルーティング情報を伝送します。

  4. パケットの負荷分散を行うポリシーを定義し、パケットごとのポリシーを適用してトラフィックのロードバランシングを有効にします。

  5. デバイスR0が192.168.255.10/32ネットワークに到達できるようにするルーティングポリシー条件のルートフィルターを設定します。

  6. 管理インターフェイスを除くすべてのインターフェイスで MPLS を設定します。
  7. MPLSラベル範囲を設定して、リンクに静的ラベルを割り当てます。

  8. TI-LFA を設定して、リンクとノードの障害に対する保護を有効にします。TI-LFAを用いたSRでは、プライマリパスに障害が発生したり利用できなくなった場合、バックアップパスや代替パスに瞬時にトラフィックをルーティングすることで、ネットワーク接続の早期復旧を実現します。

  9. バックアップの最短パスファースト属性を保護するために、セグメントルーティングルーティングパスのラベルの最大数を設定します。

  10. OSPFプロトコルのSPRINGのセグメントルーティンググローバルブロック(SRGB)のプレフィックスセグメント属性、開始ラベル、およびインデックス範囲を設定します。

  11. コンバージェンス後のパスをたどる OSPF インターフェイスでノードリンク保護を有効にします。

  12. プロトコルがループループバック インターフェイス上で実行されないようにし、ループバック インターフェイスがネットワーク全体で正しくアドバタイズされることを確認するには、ループバック インターフェイスをパッシブとして設定します。

  13. デバイスR0で柔軟なアルゴリズムを定義します。128から255までの各FADに名前を割り当てます。

    定義のパラメーターを指定します。OSPFv2は、FADのこれらの指定されたパラメーターに基づいてパスを計算します。

    1. OSPFv2プロトコルがパスを計算する際の計算タイプを指定します。

    2. OSPFv2がパスを計算するメトリックタイプを指定します。

    3. RSVPトラフィックエンジニアリングを有効にしている場合、多くのプロトコルのadmin-groupsを設定して、個々のリンクに色を付けることができます。

    4. 設定したadmin-groupsポリシーをデバイスR0インターフェイスに割り当てます。

    5. 要件に従って管理グループを定義します。

      注:

      リンク制約のあるFADが機能するためには、関連するすべてのリンクがOSPFv2でadmin-colorをアドバタイズする必要があります。インターフェイスでRSVPを有効にするか、トラフィックエンジニアリング用にRSVPを設定していない場合は、常に [edit protocols ospf] 階層レベルでset traffic-engineering advertiseを設定する必要があります。

  14. デバイスR0で柔軟なアルゴリズム参加を設定します。同じデバイスがFADをアドバタイズし、柔軟なアルゴリズムに参加することもできます。
  15. ポリシー設定を通じてプレフィックスセグメントをアドバタイズします。

結果

設定の結果を確認します。

設定モードから、 show interfacesshow routing-optionsshow protocolsshow policy-options コマンドを入力して設定を確認します。出力に意図した設定が表示されない場合は、この例の手順を繰り返して設定を修正します。

検証

設定が正常に機能していることを確認するには、以下のタスクを実行します。

OSPFデータベースの検証

目的

柔軟なアルゴリズムシグナリングが OSPF データベースに表示されていることを確認します。

アクション

動作モードから、 show ospf database opaque-area extensive コマンドを実行します。

R0について

意味

R0のこの出力は、以下を示しています。

このデバイスは、3つのセグメントルーティングアルゴリズム(2つの柔軟なアルゴリズムを含む)をアドバタイズします。

このデバイスによって 2 つの FAD がアドバタイズされます。

フレキシブルアルゴリズムの詳細の検証

目的

柔軟なアルゴリズムの詳細が表示されていることを検証します。

アクション

動作モードから、 show ospf spring flex-algorithm <flex-algorithm-id> コマンドを実行します。

R0について

意味

R0で設定された柔軟なアルゴリズムの詳細が表示されます。

柔軟なアルゴリズム固有の OSPF 内部ルートの検証

目的

柔軟なアルゴリズム固有の OSPF 内部ルートが表示されていることを検証します。

アクション

動作モードから、 show ospf route flex-algorithm <flex-algorithm-id> コマンドを実行します。

R0について

意味

show ospf routeコマンドはflex-algorithmオプションで拡張されており、柔軟なアルゴリズム固有のOSPF内部ルートを表示します。各ルートには、flex-algo-id がプレフィックスが付いています。

フレックスカラールートの検証

目的

柔軟なアルゴリズム固有の OSPF 内部ルートが表示されていることを検証します。

アクション

動作モードから、 show route protocol ospf コマンドを実行します。

R0について

意味

出力には、junos-rti-tc-<color>.inet.0テーブルでプログラムされたすべての色付きフレックスルートが次の形式で表示されます:prefix_address-flex-algo-id<c>/64

OSPFログの検証

目的

OSPFログに柔軟なアルゴリズムキーワードが表示されていることを確認する。

アクション

動作モードから、 show ospf log コマンドを実行します。

R0について

意味

出力には、SPFログに追加されたFlexAlgoキーワードが表示されます。

変更履歴テーブル

サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がお使いのプラットフォームでサポートされているかどうかを確認します。

リリース
説明
22.2R1
Junos OSおよびJunos OS Evolvedリリース22.2R1以降、同じリンクでRSVPやフレキシブルアルゴリズム用にte-metric、delay-metric、admin-groupsなど、異なるte属性をアドバタイズできます。
22.4R1
Junos OSリリース22.4R1以降、エリア間プレフィックスに最適なエンドツーエンドのパスを可能にするために、柔軟なアルゴリズムプレフィックスメトリック(FAPM)が定義されました。
変更完了
25.4R1
Junos OSおよびJunos OS Evolvedリリース25.4R1以降、 inetcolor.0 および mpls.0 ルーティングテーブルでOSPFフレキシブルアルゴリズムルートの優先度を設定することで、パス選択を制御できるようになりました。
25.4R1
Junos OSおよびJunos OS Evolvedリリース25.4R1以降、 inetcolor.0 および mpls.0 ルーティングテーブルでOSPFフレキシブルアルゴリズムルートの優先度を設定することで、パス選択を制御できるようになりました。