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 アーキテクチャ RPD on Linux Architecture上の RPD

rpd アプリケーションは、以下の場合に使用できます。

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

  • 管理用 mgd プロセス、設定用 CLI、リンクのライブ性検出用 BFD、PPMD(定期パケット管理プロセス)、プロトコル セッションの更新と対話します。

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

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

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

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

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

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

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

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 の概要と機能 cRPD Overview and Functionality

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

ルートリフレクタ

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

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

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

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

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

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

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

ホストLinuxカーネルは、すべてのルートとネクストホップ情報がパケット転送のために保存されるFIBを格納します。

rpd は Linux 上でネイティブに動作し、Netlink を使用して Linux カーネルとプログラム ルート情報を共有します。Netlinkは、カーネルとユーザースペースのプロセス間、および異なるユーザースペースプロセス間の通信に使用されるLinuxカーネルインターフェイスです。cRPDは、ユーザー空間プロセスの一例です。

Netlinkメッセージを使用すると、次のことができます。

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

  • mgd および CLI を使用して構成と管理を行います。

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

  • BFDを使用してライブ性を検出します。

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

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

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

  • BGP add-path、マルチパス、グレースフルリスタートヘルパーモード

  • 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ライセンスの管理を参照してください。