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ファブリックに複数のメリットをもたらします。

Junosのファットツリーにおけるルーティング(RIFT)プロトコルの実装について

RIFTプロトコルのメリット

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

  • 必要な設定はほぼ不要で、IPファブリックの管理が容易です。

  • 広範なトレースおよびロギング機能により、IPファブリックの拡張性を向上できます。

  • ループせずにパスを最大限に利用し、IPファブリックの耐障害性を高めます。

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

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

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

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

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

RIFTプロトコルの概要

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

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

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

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

  • IPファブリックのリンクのケーブルミスを自動的に検出します。

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

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

  • リンクやノードの障害時にプレフィックスを自動的にディスアグリゲーションし、ブラックホーリングやサブオプティマル・ルーティングを防止します。

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

  • 使用可能な帯域幅に基づいて、スパインへのトラフィックを自動的にリバランスします。

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

詳細については、インターネットドラフトdraft-ietf-rift-rift-09(有効期限:2020年5月7日) RIFT:ファットツリーでのルーティングをご覧ください。

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

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

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

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

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

  • 論理システム

  • SNMP

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

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

  • テレメトリ

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

    • Key-Valueストア

    • 水平リンク

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

    • 負のディスアグリゲーション

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

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

RIFTプロトコルの有効化

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

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

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

始める前に

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

RIFTプロトコルをインストールするには:

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

    注:
    • 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

request rift package activateコマンドを使用してRIFTソフトウェアパッケージをアクティブにするには、次の手順に従います。

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

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

Enabling RIFT Using Load Command

RIFT設定を手動で読み込むには:

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

    ここで、 platform はホストデバイスであり、mxqfxvmxのいずれかの値となります。

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

Enabling RIFT in CLOS-based Topology (ZTP Mode)

注:

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

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

  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]

また、 junos-rift パッケージから適用されたデフォルトを表示することで、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隣接関係が上下にフラッピングし、 Multiple Neighbors エラーまたは Remote Uses Our Own SystemID エラーを伴う拒否を表示します。

    Solution

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

  • Undefined Level

    Problem

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

    Solution

    トップオブファブリックレベルの設定がない可能性があります。ZTPのアンカーとなるには、すべてのトップオブファブリックデバイスにtop-of-fabricレベルで設定する必要があります。

  • Loopback Address

    Problem

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

    Solution

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

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

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

    注:

    トップオブファブリックアドレスをすべてのリーフノードに伝送できるようにするには、[edit protocols rift export southbound]階層レベルでallow-rift-routesオプションを設定します。

  • System Log Error Messages

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

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

    • RIFT_PROXYD_CONNECT_RIFT—ローカルRIFTプロセスに接続しようとしました。

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