Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

JETの概要

Juniper Juniper Extension Toolkit(JET)は、Junosデバイス上でサードパーティアプリケーションを開発する開発者に、最新のプログラムインターフェイスを提供します。ジュニパーネットワークスのJunosオペレーティングシステム(Junos OS)とJunos OS Evolvedにスタンダードベースのインターフェイスを提供し、管理およびコントロールプレーン機能をカスタマイズすることに重点を置いています。

JETには、ライブラリやその他のツールとともにツールチェーンも含まれており、開発者はデバイス上でJETアプリケーションを作成できます。

JETのメリット

  • 任意のJunosデバイスと対話するためのAPIを提供します。

  • 多言語でのAPI開発をサポートします。

  • Junos デバイス上で動作するアプリケーションを開発するためのツールを提供します。

  • JET アプリケーションが選択したシステムイベントに応答できるようにするイベント通知方法を使用します。

JETアーキテクチャ

JET は、開発者が Junos OS および Junos OS Evolved の機能を拡張するアプリケーションを作成できるようにするフレームワークです。例えば、JETアプリケーションでは、アプリケーション固有の状態を表示する新しい運用コマンドを追加することで、Junos CLIを拡張することができます。JETアプリケーションは、Junosデバイスまたは動作環境内の別のデバイスで実行し、ネットワーク経由でJunosデバイスに接続できます。

JET アプリケーションは、標準ベースのトランスポート チャネルを介して、リクエスト/応答および通知サービスを通じて Junos OS および Junos OS Evolved と対話します。 図 1 は、要求/応答サービスと通知サービスを示しています。

図 1: JET の要求-応答および通知サービス Diagram of Junos Extensible Toolkit architecture showing communication flow among JET apps, Junos kernel, and processes like RPD, DFWD, DCD, MGD using gRPC and MQTT protocols.

表 1 では、要求/応答サービスと通知サービスについて説明します。

表1:JETアプリケーションはサービスを通じてJunos OSと対話します

サービス

形容

リクエスト - レスポンス—アプリケーションはリクエストを発行し、Junos OS からの応答を待つことができます。

Junos OSで実行されるJETサービスプロセス(jsd)は、リクエスト-レスポンスサービスを提供します。jsd が要求を受信すると (デフォルトでは TCPポート 32767)、JET アプリケーションにサービスを提供する新しいセッションが作成されます。クライアントとサーバーの両方が稼働し、相互に通信している限り、セッションは有効です。セッションの存続期間中、jsd は任意の数の API を実行できます。jsd は、最大 8 つのアクティブなクライアントセッションをサポートし、これらのセッションから API を並行して実行できます。

手記:

jsd との安全な通信には、RSA 証明書、特に TLSv1.2 (最小) を使用します。

通知—アプリケーションは、Junos OSで発生するイベントの非同期通知を受信できます。

JET は、パブリッシュ/サブスクライブ ベースのメッセージング プロトコルと通知ブローカーを提供します。JET アプリケーションは、通知ブローカーに登録し、メッセージを受信するために関心のあるトピックについてブローカーに通知することができます。ブローカーは、メッセージのトピックに基づいて、関心のあるクライアントにメッセージを配布する責任があります。Junos OS プロセスは、イベント(eventd など)を公開し、パブリッシャとしてブローカーに接続し、イベントを公開します。

JET は、Message Queue Telemetry Transport (MQTT) プロトコル ( https://mqtt.org/ を参照) メソッドを使用して通知サービスを実装します。

JET および gRPC

JETは、リモートプロシージャーコール(RPC)用のgRPCフレームワークをサポートしています。JET では、要求/応答サービスを有効にするメカニズムとして、言語間サービスに gRPC を使用します。gRPC には、プログラミング言語に依存しない API を定義するメカニズムも用意されています。詳細については、「 https://www.grpc.io/」を参照してください。