Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

RIFTの概要とセットアップ

概要 ファット・ツリーでのルーティング(RIFT)は、CLOSベースおよびファット・ツリー・ネットワーク・トポロジーのバリエーションでパケットをルーティングするために使用できるゼロOpExルーティングプロトコルです。これはリンクステート技術とディスタンスベクトル技術の両方のハイブリッドであり、管理の容易さやネットワークへの耐障害性の向上など、IPファブリックにはいくつかのメリットがあります。

Fat Tree(RIFT)プロトコルでのルーティングの Junos 実装について

RIFTプロトコルのメリット

RIFTプロトコルは、以下を可能にするゼロOpExルーティングプロトコルです。

  • IPファブリックの管理を簡素化するために必要な設定はほぼゼロです。

  • 豊富なトレース機能とロギング機能により、IPファブリックの拡張性の利点を実現します。

  • ループせずにパスを最大限に使用することで、IPファブリックに耐障害性が追加されます。

RIFTプロトコルは、距離ベクトルとリンクステートプロトコルのハイブリッドとして、両方のプロトコルタイプの利点を継承し、次のような追加のメリットを提供します。

  • 可能な限り最速のコンバージェンス。

  • トポロジーの自動検出。

  • トップオブラック デバイスでの最小ルート数。

  • 高度な等価コスト マルチパス(ECMP)。

RIFTプロトコルの概要

CLOSおよびファットツリーアーキテクチャ(スパインおよびリーフモデルとも呼ばれる)にIP転送ベースのデータセンターを導入する増加に伴い、IGP(内部ゲートウェイプロトコル)とBGPは現在、必要なルーティング決定を処理するために使用されています。これらのプロトコルで使用されるアプローチは、このようなIPファブリックの要件を満たしていない、複雑で高コストな運用拡張に依存しています。これは、IGPおよびBGPプロトコルはもともと、一般的なネットワークトポロジとスパースネットワークトポロジー用に構築されたからです。FAT Trees(RIFT)でのルーティングは、これらの問題を克服し、進化するIPファブリックのニーズを満たします。

RIFTプロトコルは、オープンスタンダードプロトコルです。これは、リーフに向かって拡散した計算を使用する距離ベクトルプロトコルのハイブリッドバージョンであり、スパインに向かって分散計算とフラッディングを使用するリンクステートプロトコルです。言い換えると、RIFTプロトコルが有効になっていると、デバイスは北方向のリンク状態情報をフラッディングし、リーフを除くすべてのスイッチは(正常な条件下で)デフォルトルートを生成し、南方向にフラッディングします。

RIFTプロトコルの主な機能:

  • ファット・ツリー・トポロジーの自動構築

  • IP ファブリックの誤ったリンクの自動検出。

  • データセンターネットワークの各レベルで保持されるルーティング状態情報の量を最小限に抑えます。

  • フラッディングの量を自動的に最小限に抑えます。

  • リンク障害およびノード障害時のプレフィックスの自動分離により、ブラックホーリングと最適でないルーティングを防止します。

  • 非 ECMP 転送を許可します。

  • 利用可能な帯域幅に基づいて、スパインに向けてトラフィックを自動的に再調整します。

  • プロトコルコンバージェンス後に使用できる限定されたキー値データストアを同期します。例えば、より高いレベルの機能をノードにブートストラップします。

詳細については、インターネットドラフトdraft-ietf-rift-rift-09(2020年5月7日終了) RIFT:ファット・ツリーでのルーティングを参照してください。

Junos 実装の RIFT プロトコルがネットワーク パフォーマンスに与える影響

RIFTプロトコルとJunos OSの統合は、一般的なデータセンターアーキテクチャのルート負荷とメモリ使用率に何らかの影響を与えます。これは、RIFTプロトコルが利用可能なすべてのコアを消費してプロトコルのパフォーマンスを向上させる機能を有しているためです。

RIFTの動的構成は完全にはサポートされていません。Junos OS CLIの設定変更により、RIFTプロトコルが再起動され、プロトコルが再コンバージェンスされ、その結果、トラフィックロスが発生する可能性があります。

RIFTプロトコルでサポートされていない機能

RIFTのJunos OS実装は、 https://datatracker.ietf.org/doc/draft-ietf-rift-rift/ のRIFTインターネットドラフトに記載されている標準に準拠していますが、以下の機能はサポートしていません。

  • 論理システム

  • Snmp

  • ISSU(インサービス ソフトウェア アップグレード)とノンストップ ソフトウェア アップグレード

  • グレースフル ルーティング エンジン スイッチオーバー(GRES)

  • テレメトリ

  • RIFTのJunos OS実装には、以下の機能は実装されていません。

    • キーバリューストア

    • 水平リンク

    • リーフ-2リーフのサポート

    • ネガティブなディスアグリゲーション

    • プレフィックスのモビリティ属性

    • インターフェイスでのラベル バインディング

RIFTプロトコルの有効化

RIFTソフトウェアパッケージはスタンドアロンパッケージであり、ジュニパーによるプロトコルの実装は、マルチコアプロセッサーアーキテクチャを最適に活用するように設計された最新のメモリおよびスレッドセーフのプログラミング言語で実行されます。

RIFTプロトコルは関連する RIFT プロセスを初期化し、ゼロタッチ設定のデフォルト値が設定を通じて適用されます。また、すべてのイーサネット インターフェイスで RIFT が自動的に有効になります。 system-id は、システムMACアドレスから自動的に導出され level 、 はプロトコル動作の検出部分を通じて自動的に決定されます。

概要 RIFTプロトコルは、必要な設定がゼロに近い必要があります。RIFTプロトコルを有効にすると、必要な設定がパッケージのデフォルトから junos-rift 自動的に継承され、IPファブリックの管理が容易になります。

始める前に

プロトコルを有効にする前に、デバイスに RIFT ソフトウェア パッケージをダウンロードしてインストールする必要があります。

RIFTプロトコルをインストールするには、次の手順にしたがっています。

  1. ベースライン Junos OS ソフトウェアとともに実行する必要があるソフトウェア パッケージから、特別な junos-rift パッケージをダウンロードします。

    メモ:
    • パッケージが展開される junos-rift ベースラインの Junos OS ソフトウェアは、64 ビット バージョンのみであり、Junos OS リリース 19.4R1 以降である必要があります。

    • パッケージをインストールする junos-rift 間、デバイスはCLOSアーキテクチャでケーブル接続する必要があります。

    • 個別のパッケージであるため junos-rift 、Junos OS ベースライン パッケージから個別にライセンスを取得できます。

      パッケージの junos-rift ライセンスは、セクション 15、16、および 17 に特に重点を置いて、 エンド ユーザー ライセンス契約 に基づいて付与されます。

  2. ソフトウェア パッケージから、パッケージを junos-rift 抽出し、ホスト デバイス上の /var/tmp ディレクトリにダウンロードします。

  3. ソフトウェア パッケージを正常にダウンロードした後、次のコマンドを実行します。

    例えば:

RIFTプロトコルを有効にするには、デバイスでRIFTソフトウェアパッケージをアクティブにする必要があります。RIFTを有効にするには、 コマンドを request rift package activate 使用するか、指定されたファイルからRIFT設定をCLIの現在の設定に手動で読み込んで組み合わせることができます。

Enabling RIFT Using Activate Command

コマンドを使用して RIFT ソフトウェア パッケージを request rift package activate アクティブにするには:

パッケージを正常にインストールしたjunos-rift後、次のコマンドを実行します。

activateコマンドは、RIFT設定を自動的にコミットします。

Enabling RIFT Using Load Command

RIFT設定を手動で読み込むには、次の手順にしたがっています。

  1. パッケージを正常にインストール junos-rift した後、次のコマンドを実行して、指定されたファイルから RIFT 設定を CLI の現在の設定に読み込んで結合します。

    ここでは、platformホストデバイスであり、次の値のいずれか、mxqfxまたは vmxを指定できます。

  2. 設定をコミットします。

Enabling RIFT in CLOS-based Topology (ZTP Mode)

メモ:

CLOS トポロジーで RIFT ソフトウェア パッケージをアクティブにするには、追加の設定が必要です。トポロジー内のファブリックの最上位ノードを識別し、すべてのファブリック上のデバイスがデフォルト設定のレベルを上書き auto するように設定する必要があります。

RIFTソフトウェアパッケージをCLOSベースのトポロジーでアクティブにするには:

  1. デフォルト設定で自動レベルを上書きし、必要に応じて手動でレベルを指定します。

  2. 追加の設定をコミットします。

Traceoptions for RIFT

RIFTプロトコルを有効にすると、必要な設定が自動的に継承されますが、最小限のトレースをオプションの設定として追加設定できます。

RIFT の traceoptions を設定するには:

  1. rift ステートメントで traceoptions および proxy-process パラメーターを指定します。

    例えば:

Verifying RIFT Configuration

RIFTプロトコルの設定は、以下の階層レベルから検証できます。

  • [groups rift-defaults]

  • [interfaces interface-range rift-interfaces]

  • [protocols rift]

パッケージから適用されたデフォルトを表示することで、RIFT設定を junos-rift 検証することもできます。これを行うには、 コマンドを show configuration protocols rift | display inherited 実行します。

例えば:

表 1 は、RIFT プロトコルの設定とステータスの検証に使用できるコマンドを示しています。

表 1:RIFT プロトコル設定を検証するためのコマンド

コマンド

説明

show rift

RIFTプロトコルのランタイム状態を検査します。

show route protocol rift

RIFTプロトコルは、他のプロトコルが受け入れられるポリシーやコマンドで使用できます。

show route protocol rift extensive display-client-data

RIFTがインストールされたルートの詳細を表示します。

clear rift database content

RIFT データベースをクリアします。

restart rift-proxyd

RIFTプロトコルを再起動します。

詳細については、ソフトウェア パッケージ配布の FAQ ファイルを参照してください。

Troubleshooting the RIFT Protocol

RIFTプロトコルは、極端な場合を除き、コアファイルを生成しません。広範なログ記録によってすべての障害が報告され、場合によっては出口でバックトレースが発生します。RIFT プロセスは、traceoptions 設定を使用して収集できる設定可能なトレース イベントを提供します。

RIFTの実装をトラブルシューティングするには、以下を参照してください。

  • Forming Adjacency

    Problem

    RIFT の隣接関係はフラッピング アップ/ダウンし、またはRemote Uses Our Own SystemIDエラーの有無をMultiple Neighbors示しています。

    Solution

    RIFTプロトコルは、ポイントツーポイント隣接関係を形成するイーサネットリンク、またはノードの独自のインターフェイスがループバックするイーサネットリンクで、2つ以上のネイバーをサポートしていません。ケーブルを確認して修正します。

  • Undefined Level

    Problem

    すべてのスイッチは未定義のレベルを示し、3方向の隣接関係を形成しませんが、LIE(リンク情報要素)が送受信されています。

    Solution

    ファブリックトップレベルの設定がない可能性があります。ZTPにアンカーを提供するには、すべてのファブリック最上位デバイスにファブリック最上位レベルを設定する必要があります。

  • Loopback Address

    Problem

    RIFTのノードにループバックアドレスを取得できません。

    Solution

    すべてのループバックアドレスをファブリック上に設定するには、必要な各ノードでループバックアドレスを設定し、それを北方向にRIFTに再分配することが最も簡単な方法です。これを行うためには、以下の設定が必要です。

    この設定により、すべてのリーフが、ファブリック上のデバイスを除く他のすべてのノードのループバックアドレスに ping を実行できます。

    ファブリック上のデバイスにもリーフデバイスから到達可能にする必要がある場合、またはその逆の場合は、ファブリック上のループバックアドレスを1レベル以下(つまりサウスバウンド)に公開する必要があります。これを行うためには、以下の設定が必要です。

    メモ:

    ファブリック上のアドレスをすべてのリーフノードに伝播させるために、 階層レベルで allow-rift-routes オプションを [edit protocols rift export southbound] 設定します。

  • System Log Error Messages

    RIFTプロセスは、RIFTプロトコルのJunos OSへの統合に関連するエラーを記録するシステムログメッセージを生成します。システム ログ メッセージを解釈するには、以下を参照してください。

    • RIFT_PROXYD_ALREADY_RUNNINGRIFTプロセスの別のインスタンスがすでに実行されています。

    • RIFT_PROXYD_CONNECT_RIFTローカル RIFT プロセスへの接続試行に失敗しました。

    システム ログ エラー メッセージの詳細については、 システム ログ エクスプローラーを参照してください。