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. D への新しいパスを計算した後、R は所定の時間、ループのないセグメント ルーティング パスを介して D にパケットを誘導する D のエントリをインストールします。この時間は、ネットワーク内のルーターのワーストケースの遅延よりも大きくする必要があります。

2. 構成された時間の遅延の後、R は D の収束後のルート エントリをインストールしますが、これは SID がありません。

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

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 の間の物理リンクが無効で、管理上ダウンしていることを示しています。

リンク無効後の宛先にインストールされたマイクロループ回避パスの確認

目的

inet.3テーブル内のルートおよびmpls.0テーブル内のルートラベル詳細を検証することにより、R0とR1間のリンクが無効になっている場合、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 は、マイクロループを含むパケットがないことを示します。

遅延タイマーが切れた後の、マイクロループ回避パスがポストコンバージェンスパスに変わることを検証

目的

60000msの遅延タイマーが満了した後、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 間のリンクが有効になった後のポストコンバージェンスパスが含まれます。