Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

OSPFv2 セグメントルーティング ネットワークにおけるマイクロループ回避の設定方法

マイクロループはリンクの利用可能な帯域幅を消費する可能性があり、有用なパケットの効率的な伝送に影響を与えます。マイクロループ回避により、ループするパケットの転送を防ぐことができます。

OSPFマイクロループ回避の理解

セグメントルーティングでOSPFv2ネットワークのマイクロループを回避するメリット

  • マイクロループフリーパスにより、遅延とトラフィック損失を回避します。

  • マイクロループ回避により、ループするパケットの転送を防止し、無駄な帯域幅消費を回避できます。
  • マイクロループ回避パスは、複数のリンク障害が発生した場合に、影響を受けるリンクに対してのみ計算されます。2 回目のリンク障害が計算されたマイクロループ回避パスに影響を与えない場合、OSPFv2 は同じマイクロループ回避パスを引き続き使用します。

Junos OSでは、マイクロループを回避するために、OSPFv2リンクに障害が発生した場合、デバイスがOSPFv2ルートのダウンロードを遅らせることができます。ローカル リンクがダウンすると、OSPFv2 プロトコルによってエリア全体がデータベースであふれます。障害が発生したローカル インターフェイスに接続されたノードが、隣接するノードよりも速く収束した場合、接続されたノードはトラフィックを集中パスにリダイレクトします。このリダイレクトにより、隣接ノードが収束するまで、トラフィックのマイクロループが発生する可能性があります。保護されたノードのプライマリ パスに障害が発生した場合、設定されたバックアップ パスに影響がなければ、接続されたノードを迅速に収束させる必要はありません。この場合、コンバージド パスへのトラフィック フローは、設定された遅延時間まで延期されます。この時間遅延は、すべてのルーターがコンバージェンス後の転送状態に同時に到着するわけではないため、マイクロループを回避するのに役立ちます。

図 1: OSPFv2 ネットワークMicroloop Avoidance in OSPFv2 Networksにおけるマイクロループ回避

図 1 では、送信元から宛先へのプライマリ パスは SR0R1R2R3D です。R2 と R3 間のリンクに障害が発生すると、ルーターが宛先 D の転送状態を更新する間、S から D に送信されたトラフィックは一時的な転送ループの影響を受けます。

- R0 が R5 より前に転送状態を更新すると、パケットは R0 と R5 の間でループします。

• R0 と R5 の両方が転送状態を更新し、R4 が更新していない場合、パケットは R4 と R5 の間でループします。

• R0 は R2 と R3 間のリンク障害を検出し、SR パス[NodeSID(R4), AdjSID(R4->R3), D]を介して宛先宛てのトラフィックを一時的に誘導します。

• 設定されたタイムアウトが経過すると、R0 はノード SID から D のみを使用して宛先に到達します。

セグメントルーティングを使用したOSPFv2ネットワークにおけるマイクロループ回避

Junos OS リリース 22.1R1 以降では、OSPFv2 セグメント ルーティング ネットワークでリンクまたはメトリックの変更が発生した場合に、マイクロループを回避するために、デバイスでコンバージェンス後のパス計算を有効にすることができます。リンクダウン、リンクアップ、メトリック変更などのローカルとリモートの両方のネットワークイベントに対して、OSPFv2セグメントルーティングネットワークでマイクロループ回避を設定するには、[edit protocols ospf spf-options microloop avoidance post-convergence-path]階層レベルでmaximum-labelsdelay millisecondsステートメントを含めます。マイクロループを効果的に回避するには、ネットワーク内のすべてのノードでこの機能を設定します。

手記:

マイクロループ回避は、局所的な障害を非常に高速に検出し、事前に計算されたループフリーの代替パスをアクティブにするTI-LFAのような局所的な修復メカニズムに代わるものではありません。

マイクロループ回避を実装しているルーターは、イベントのリンク状態の更新を受信した後にのみ、マイクロループ回避パスを計算します。そのため、マイクロループ回避メカニズムは、局所的な障害を非常に高速に検出し、PFEレベルで事前に計算されたループフリーの代替パスをアクティブにするTI-LFAのような局所的な修復メカニズムに代わるものではありません。上記の例では、R2R3の障害に対してローカル修復メカニズムが存在しない場合、R0が(グローバルコンバージェンスを通じて)障害を検出し、マイクロループ回避パスをプログラムする前に、多くのトラフィック損失が発生します。マイクロループ回避では、障害の検出が遅れるため、トラフィックの損失を回避できません。マイクロループ回避は、マイクロループのみに起因するトラフィック損失を回避します。トラフィックの損失をミリ秒単位に抑えるためには、TI-LFAやマイクロループ回避などのローカル修復メカニズムをネットワーク内のすべてのノードで有効にする必要があります。

マイクロループを回避するために、次のプロセスが使用されます。

1. R は、所定の時間、D への新しいパスを計算した後、ループフリー セグメント ルーティング パスを介して D にパケットを誘導する D のエントリをインストールします。この時間は、ネットワーク内のどのルータの最悪の場合の遅延よりも大きくする必要があります。

2. 設定された遅延時間が経過すると、R は SID のない D のコンバージェンス後のルート エントリをインストールします。

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

Junos OSは、以下のシナリオでマイクロループ回避をサポートしています。

  • マイクロループ回避は、OSPFルーティングプロトコルをサポートするすべてのJunos OSプラットフォームでサポートされています。

  • マイクロループ回避は、IPv4 ネットワークでのみサポートされます。

  • マイクロループ回避は、柔軟なアルゴリズムトポロジーでサポートされています。

Junos OSは、マイクロループ回避と組み合わせた以下の機能をサポートしていません。

  • 8つ以上のラベルを必要とするマイクロループ回避パスはサポートされていません。マイクロループ回避パスにインストールされるラベルの最大数は8です。マイクロループ回避ECMPパスを使用するには、ラベル数が最大ラベル数以下である必要があります。
  • コントロールプレーンのコンバージェンスが遅いため、トラフィックの損失を防ぐことができない。
  • OSPFv2 マルチトポロジーは、マイクロループ回避ではサポートされていません。
  • 隣接SIDは、マイクロループ回避ではサポートされません。
  • ショートカットが利用可能な場合、OSPFv2 はマイクロループ回避パスを提供しません。

OSPFv2ネットワークにおけるセグメントルーティングマイクロループ回避の設定

概要

マイクロループとは、リンクダウン、リンクアップ、メトリック変更などのネットワーク変更イベントの後にネットワークで発生するパケット転送ループのことです。ネットワーク変更イベントが発生すると、ルーターごとに更新される転送状態が異なります。これにより、アップストリームルーターとダウンストリームルーター間でパケットが一時的にループし、その結果、パケットロス、ジッター、および順序の乱れたパケットが発生する可能性があります。マイクロループはリンクの利用可能な帯域幅を消費する可能性があり、有用なパケットの効率的な伝送に影響を与えます。

マイクロループ回避により、ループするパケットの転送を防ぐことができます。セグメントルーティングマイクロループ回避は、トポロジー変更後にマイクロループが可能かどうかを検出します。ネットワーク変更イベントが検出されると、ノードと隣接 SID の組み合わせを使用して、コンバージェンス後のパスを通るようにルートがプログラムされます。これにより、まだ収束していない可能性のあるルーターが、マイクロループの原因となるパケットをループしないようにすることができます。この動作は、構成可能な遅延の間続きます。遅延タイマーが終了すると、宛先のノード SID を使用してルートが正常にプログラムされます。

必要条件

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

  • MXシリーズルーター8台。

  • Junos OS リリース 22.1R1 以降

位相幾何学

図2では、デバイスR0とデバイスR7は、デバイスCE1とCE2をサポートするイングレスおよびエグレスルーターです。デバイス R1、R2、R3、R4、R5、および R6 は、IPv4 のみのプロバイダ コア ネットワークを構成します。すべてのデバイスは同じ自律システムに属しています。OSPFv2 は、マイクロループ回避をサポートするように設定されたコアの内部ゲートウェイ プロトコルです。この例では、デバイスR2は、R0とR7の両方にIBGPピアリングセッションを持つIPv4ルートリフレクタとして設定されています。この例では、他のルーターはBGPを話しません。デバイスR6には、リンクダウンイベントに続くマイクロループのあるパケットがあればそれを検出するようにファイアウォールフィルターが設定されています。

図2:マイクロループ回避トポロジー Microloop Avoidance Topology

構成

CLIクイック構成

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

デバイスR0

デバイスR1

デバイスR2

デバイスR3

デバイス R4

デバイス R5

デバイス R6

デバイス R7

デバイス R0 の設定

手順

OSPFv2ネットワークでセグメントルーティングマイクロループ回避パスを設定するには、R0デバイスで以下のステップを実行します。

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

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

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

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

  5. ループバックアドレスをアドバタイズするようにR0を設定します。 prefix-segment index オプションは、各ルーターのループバックのベースラベルを設定します。この例では、基本インデックスは reflect|ルーター番号。その結果、R0 は 1000 を使用します。

  6. 管理インターフェイスを除くすべてのインターフェイスでMPLSを設定します。トラフィック制御も有効にします。

  7. MPLSラベル範囲を設定して、リンクに静的ラベルを割り当てます。

  8. R0とルートリフレクタR2の間でBGPピアリングを設定します。ユニキャストネットワーク層到達可能性情報(NRLI)を設定して、デバイス上の各プレフィックスに一意のラベルを割り当てます。

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

  10. OSPFv2 プロトコルの TI-LFA では、ECMP(最大等価コスト マルチパス)を 8、ラベルの最大数を 5 とするなど、バックアップの SPF(最短パス ファースト)属性を設定します。

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

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

  13. デバイスR0のポイントツーポイントインターフェイスでOSPFエリア0を設定します。

  14. OSPFv2 プロトコルの所定のエリアとインターフェイスで、コンバージェンス後のパスに続くバックアップ パスの計算とインストールを設定します。また、コンバージェンス後のパスに続くこれらのインターフェイスでノードリンク保護を有効にします。

  15. マイクロループの影響を受ける可能性のあるルートのコンバージェンス後のパスを一時的にインストールするマイクロループ回避を設定し、OSPFv2プロトコルの遅延時間を60000ミリ秒に指定します。遅延タイマーが終了すると、一時パスは宛先のノードSIDに戻ります。

業績

構成の結果を確認します。

検証

設定が正常に機能していることを確認します。

次のセクションでは、リンクダウンイベントのマイクロループ回避について説明します。

R0とR1の間のリンクを無効にする前に、R0とR7の間の接続を確認します

目的

デバイス R0 がデバイス R7 の宛先に到達できることを確認します。

アクション

運用モードから、デバイスR0で ping コマンドを実行します。

意味

これらの結果から、デバイス R0 が OSPFv2 ネットワーク内のデバイス R7 に到達できることが確認されます。

検証 R0 と R1 の間のリンクの無効化

目的

デバイスR0でR0とR1の間のリンクを無効にしていることを確認するには

アクション

設定モードから、デバイス R0 で disable interface コマンドを実行します

リンクが無効になっていることを確認するには、動作モードからデバイス R0 で show interfaces コマンドを実行します

意味

この出力は、R0とR1の間の物理リンクが無効であり、管理上ダウンしていることを示しています。

リンクを無効にした後、宛先にインストールされているマイクロループ回避パスを確認します

目的

R0とR1の間でリンクが無効になっている場合、inet.3テーブル内のルートとmpls.0テーブル内のルートラベルの詳細を確認することで、R0からR7の宛先ルートにマイクロループ回避パスがインストールされていることを確認します。

アクション

運用モードから、デバイスR0で show route table inet.3 コマンドを実行します。

運用モードから、デバイス R0 で show route label label value protocol ospf extensive コマンドを実行します。

意味

この出力は、R0とR1の間のリンクがダウンすると、遅延タイマーが切れるまでR0からR4までのR7のマイクロループ回避パスがインストールされることを示しています。

マイクロループでパケットを検証する

目的

ファイアウォールカウンター情報を使用して、マイクロループを含むパケットを検証する

アクション

動作モードから、デバイスR6で show firewall コマンドを実行します。

意味

出力には、デバイスR6に設定されたmplsfilterが表示され、マイクロループがある場合はそれが表示されます。値 0 は、マイクロループを含むパケットがないことを示します。

マイクロループ回避パスの検証 遅延タイマー終了後のコンバージェンス後のパス変更

目的

遅延タイマー 60000 ミリ秒が経過した後、R0 から宛先ルート R7 にインストールされているマイクロループ回避パスがコンバージェンス後のパスに変更されることを確認します。

アクション

運用モードから、デバイスR0で show route table inet.3 コマンドを実行します。

運用モードから、デバイス R0 で show route label label value protocol ospf extensive コマンドを実行します。

意味

この出力は、遅延タイマーが終了した後、マイクロループ回避パスがポストコンバージェンスパスに変更されたことを示しています。

R0 と R7 間の接続の確認

目的

デバイス R0 がデバイス R7 の宛先に到達できることを確認します。

アクション

運用モードから、デバイスR0で ping コマンドを実行します。

意味

これらの結果から、デバイス R0 が OSPFv2 ネットワークのデバイス R7 に到達できること、また、マイクロループ回避パスが設定されているため、リンク ダウン時にトラフィックが 0% のパケット ロスで流れることが確認できます。

リンクが有効化された後、パスがマイクロループ回避パスに変わることを確認します。

目的

R0 と R1 の間でリンクが有効になっている場合、パスが宛先のマイクロループ回避パスに変わることを確認します。

アクション

運用モードから、デバイスR0で show route table inet.3 コマンドを実行します。

運用モードから、デバイス R0 で show route label label value protocol ospf extensive コマンドを実行します。

意味

出力には、R0 から宛先 R7 へのルートが表示されます。これには、マイクロループ回避パスと、R0 と R7 の間でリンクが有効になった後のコンバージェンス後のパスが含まれます。