Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

コンテナ化されたRPDとは?

Junos®コンテナ化ルーティングプロトコルプロセス(cRPD)は、Linuxコンテナ化環境内でインスタンス化されたJunos OSルーティング機能のインスタンスです。

cRPDは、ネットワークにクラウドネイティブなルーティングを提供します。cRPDソフトウェアをDockerコンテナイメージとしてパッケージ化します。cRPDは、 図3に示すように、デバイス上でIS-IS、OSPF、BGPを使用してルーター機能をサポートします。

cRPDのメリット

  • デプロイ時間の短縮 - コンテナーを使用してサービスの起動時間を数分から数秒に短縮することで、デプロイを高速化します。

  • シームレスなアップグレード:サービスの中断を最小限に抑えてソフトウェアをアップグレードします。

  • 柔軟性—ターゲット規模をサポートするために、最小限のリソース要件で複数のcRPDインスタンスを起動します。

  • 安定性 - Linux 上で安定したルーティング ソフトウェアを提供します。

Linuxでのrpdの概要

Junos ルーティング プロトコル プロセス(rpd)は、ルーティングエンジン ソフトウェア内のソフトウェア プロセスです。rpd は、デバイス上で実行されるルーティングプロトコルを制御します。

ソフトウェアプロセスとして、rpdは以下を実行します。

  • Linuxベースのルーティングプロトコルスタックの中心から動作します。

  • すべてのルーティング プロトコルから学習したルーティング情報を統合する 1 つ以上のルーティング テーブルを維持します。

  • すべてのプロトコルメッセージを管理し、ルーティングテーブルを更新し、ルーティングポリシーを実装します。

図1:LinuxアーキテクチャNetwork software architecture diagram: CLI for user interaction; MGD manages configuration; CFGDB stores config data; RPD handles routing protocols; external apps use gRPC; FIB Agent links RPD to kernel; BFD ensures link health; PPMD manages processes; kernel interaction via netdev and netlink.でのRPD

rpd アプリケーションを使用すると、次のことができます。

  • ソフトウェアコンテナ上で実行します。cRPDアプリケーションは、コンテナ化されたルートリフレクタ(cRR)などのルーティングソリューションを可能にします。cRR サービスは独立して動作する必要があります。

  • 管理のためのmgdプロセス、設定のためのCLI、リンクの活性を検出するためのBFD、定期的なパケット管理プロセス(PPMD)、およびプロトコルセッションの更新と対話します。

  • さまざまなルーティングプロトコルを使用してルートの状態を学習します。

  • ルーティング情報の完全なセットは、ルーティング情報ベース(RIB、ルーティングテーブルとも呼ばれる)に保管します。

  • 設定されたすべてのルーティングプロトコルを開始し、すべてのルーティングメッセージを処理します。rpd は 1 つ以上のルーティングテーブルを維持しますが、これはルーターがすべてのルーティングプロトコルから学習したルーティング情報を統合します。

  • ルーティングプロトコルとルーティングテーブルの間を移動するルーティング情報を制御するルーティングポリシーを実装します。ルーティングポリシーを使用すると、情報の転送をフィルタリングおよび制限したり、特定のルートに関連するプロパティを設定したりできます。

  • ローカル選択基準を満たすルートを、転送テーブルとも呼ばれる転送情報ベース(FIB)にダウンロードします。

  • ルーティング情報からネットワーク宛先のアクティブなルートを決定し、これらのルートをルーティングエンジンの転送テーブルにプログラムします。

  • Netlinkメッセージを通じて、名前、アドレス、最大送信単位(MTU)設定、リンクステータスなどのインターフェイス属性を学習します。

Docker の概要

cRPDは、DockerをサポートするすべてのLinuxディストリビューションシステムで実行されます。

Dockerは、任意のLinuxサーバーで実行できる仮想コンテナーを作成、管理、および逆アセンブルするために使用できるオープンソースのソフトウェアプラットフォームです。Dockerは、アプリケーションをコンテナにパッケージ化します。これらのコンテナーは、任意の Linux OS に移植して使用できます。コンテナは、アプリケーションのOSレベルの仮想化を提供します。

コンテナーは仮想マシン (VM) ではありません。専用CPU、メモリ、I/O、ネットワークで環境を分離します。

コンテナの利点

  • 分離による効率の向上—コンテナは、グループや名前空間の分離などのホストOS Linuxカーネル機能を使用して、複数のコンテナを同じLinuxホストOS上で分離して実行できるようにします。コンテナ内のアプリケーションは、LinuxホストのOSのカーネルを共有するため、メモリが少なくなります。

  • スピンアップ(起動)速度の向上—コンテナの起動時間は、VMに比べて短くなります。したがって、コンテナーを使用して、アプリケーションを迅速かつ効率的にインストール、実行、およびアップグレードできます。

図 2 は、一般的な Docker コンテナー環境の概要を示しています。

図2:Dockerコンテナ環境 Docker Container Environment

cRPDの仕組み

Docker を起動すると、既定のブリッジ ネットワーク ( ブリッジとも呼ばれます) が自動的に作成され、特に指定がない限りコンテナーが接続します。このブリッジ ネットワークを使用すると、動的ポートを割り当てることなく、同じホスト上で複数のコンテナーを実行できます。

ブリッジを使用すると、同じブリッジ ネットワークに接続されたコンテナが通信できると同時に、ブリッジ ネットワークに接続されていないコンテナから分離されます。

ブリッジ モードの場合:

  • コンテナは、ブリッジを介してホストネットワークスタックに接続します。

  • 複数のコンテナが同じブリッジに接続し、相互に通信します。

  • ブリッジは、ホストOSのネットワークインターフェイスに接続することで、外部との通信を可能にします。

図3:cRPDの概要と機能 Layered architecture diagram showing software stack with DevOps tools and customer apps at the top, networking protocols in the middle, Docker and customer agents below, Linux as the core, and deployment environments at the bottom.

コンテナを使用してRPDアプリケーションをデプロイすると、FIBは、基盤となるOSカーネルによって学習されたネットワークインターフェイスがLinuxコンテナ内のRPDに送信されることを公開します。RPD は、すべてのネットワーク インターフェイスについて学習し、すべてのネットワーク インターフェイスのルート状態を追加します。追加のDockerコンテナがシステムで実行されている場合、ホスト上で直接実行されているすべてのコンテナとアプリケーションは、同じネットワークインターフェイスと状態のセットにアクセスできます。cRPDは、ローカルルート選択基準を満たすルートをFIBに転送します。

ルートリフレクタ

cRPDを導入して、BGPルートリフレクションなどのコントロールプレーンのみのサービスを提供することができます。

cRRは、ネットワーク上の別のサーバーハードウェアでホストされています。アプリケーションは、ルート リフレクション サービスを使用して学習した到達可能性情報を使用します。ルートリフレクションネットワークサービスは、アプリケーションをホストする同じハードウェアやコントローラに依存することなく、独立して動作する必要があります。

ルーティングエンジン カーネル

ルーティングエンジン ソフトウェアは、ルーターの機能を制御する複数のソフトウェア プロセスと、すべてのプロセス間の通信を可能にするカーネルで構成されています。

ルーティングエンジンカーネルは、以下を提供します。

  • ルーティング テーブルとルーティングエンジンの転送テーブル間のリンク。

  • パケット転送エンジンとの通信。カーネルは、パケット転送エンジンの転送テーブルのコピーを、ルーティングエンジンのプライマリコピーと同期させます。

ホスト Linux カーネルは FIB を保存します。パケット転送に関するすべてのルートとネクストホップ情報が含まれています。

rpd は Linux 上でネイティブに動作し、Netlink を使用してプログラムのルート情報を Linux カーネルと共有します。Netlinkは、カーネルとcRPDなどのユーザー空間プロセス間の通信を容易にします。

Netlink メッセージは、次の目的で使用できます。

  • rpd によって生成された FIB 状態を Linux カーネルにプログラムまたはインストールします。

  • 設定と管理のためにmgdおよびCLIと対話します。

  • ppmd を使用してプロトコルセッションを維持します。

  • BFD を使用して生体状態を検出します。

cRPDでサポートされている機能

cRPDは、以下の機能をサポートしています。

  • Linuxコンテナ(LXC)のBGPルートリフレクタ

  • BGP 追加パス、マルチパス、グレースルリスタートヘルパーモード

  • BGP、OSPF、OSPFv3、IS-IS、および静的プロトコル

  • BMP、BFD、および Linux FIB

  • 等価コストマルチパス(ECMP)

  • プログラム可能なRPD(PRPD)向けJuniper Extension Toolkit(JET)

  • Junos OS CLI

  • オープンインターフェイスNETCONFとSSHによる管理

  • IPv4 および IPv6 ルーティング

  • MPLS ルーティング

ライセンス

cRPDソフトウェア機能をアクティブ化するには、ライセンスが必要です。cRPDライセンスの詳細については、 cRPDでサポートされている機能cRPDのフレックスライセンス、および cRPDライセンスの管理を参照してください。