Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

オフデバイス JET アプリケーションの開発

概要

JET を使用して、オフデバイスで実行されるアプリケーションを開発できます。これにより、ネットワーク上のすべてのデバイスで JET のメリットを活用できます。開発を容易にするために、オフデバイス JET アプリケーションを好みの言語で書き込むことができます。オフデバイス アプリケーションを開発するには、次の手順に従います。

  1. IDL ファイルをダウンロードしてコンパイルします。

  2. 選択した言語を使用してアプリケーションを開発します。

  3. アプリケーションをパッケージ化します。

  4. 外部サーバーにアプリケーション パッケージを展開するか、JET VM から直接アプリケーションを実行します。

図 1 は、オフデバイス アプリケーション開発ワークフローを示しています。

図 1:オフデバイス JET アプリケーション ワークフロー Off-Device JET Application Workflow

アプリケーションの開発とパッケージ化

アプリケーションを開発する前に、「 JET VM のセットアップ 」の指示に従って JET VM をセットアップし、IDL ファイルをダウンロードしていることを確認してください。

  1. 選択した言語で使用する予定の proto 定義ファイルをコンパイルします。

    この例では Pythonを使用しています管理、認証、および共通の基本タイプ API 用にファイルをコンパイルします。

    指定された API ごとに Python モジュールと gRPC モジュールをコンパイルしました。

  2. 選択した言語を使用してアプリケーションを開発します。

    C または C++ モジュールに依存するアプリケーションを開発している場合、または署名されたアプリケーションを開発している場合は、JET アプリケーション開発に JET VM を使用する必要があります。

    メモ:

    Junos OS リリース 21.1R1 および Junos OS Evolved リリース 22.3R1 以降、Python 2.7 はサポートされていません。代わりに Python 3 を使用します。

    クライアント側のスタブが生成された後、スタブを使用してアプリケーションを作成できます。gRPC クライアント側のスタブの生成、スタブを使用したアプリケーションの作成、および IDL ファイルから選択した言語でのコードの生成の詳細については、 https://www.grpc.io/docs/ を参照してください。

  3. JSON を使用してアプリケーションをパッケージ化します。詳細については、「JET アプリケーションのパッケージ化」を参照してください。

アプリケーション導入の準備

外部サーバー上または JET VM から直接、アプリケーションを実行します。外部サーバーにアプリケーションを展開する前に、JET と Junos OS の連携を設定する必要があります。

Junos OS との JET インタラクションを設定する

オフデバイス アプリケーションを実行するには、Junos OS またはJunos OS Evolvedで設定を有効にする request-response 必要があります。要求応答サービスを使用する場合、クライアント アプリケーションは要求を発行し、Junos サーバーからの応答を同期的に待機します。このセクションを使用して、SSL(Secure Sockets Layer)モードで実行する要求応答サービスの JET サービス プロセス(jsd)を設定します。これにより、セキュリティが強化され、SSL ベースの API 接続が可能になります。

メモ:

現在、JET は証明書交換用に Transport Layer Security(TLS)バージョン 1.2 をサポートし、複数の暗号化アルゴリズムをサポートしていますが、相互認証はサポートしていません。つまり、クライアントはサーバーを認証できますが、サーバーは SSL/TLS 証明書を使用してクライアントを認証できません。クライアント認証の場合は、認証サービス API から LoginCheck() 手順を使用します。

  1. 証明書名をローカルに追加して設定することで、jsdがSSLを使用できるようにします。この証明書は RSA 証明書である必要があります。ECDSA および DSA SSL 証明書はサポートされていません。

    この方法は、xnm-sslなどのJunos OSの他のSSLベースのサービスと同じです。証明書の生成中に指定した証明書名エントリーを追跡します。次のセクションの HOST_OVERRIDE Python アプリケーションの例の オプションで使用します。この例では、証明書名は router.

    メモ:

    証明書が同じ識別子で更新された場合、jsdの変更は反映されません。変更を反映するには、jsd階層で新しい識別子を持つ証明書を設定するか、jsd再起動を実行する必要があります。

  2. SSL 証明書 の .pem ファイルを Junos デバイスにコピーします。

    例えば:

  3. Junos デバイスのキーチェーンに証明書を読み込みます。例えば、SSL 証明書のローカル名が 以下の場合は、以下のようになります sslcert

  4. 読み込まれた証明書の SSL のサポートを有効にします。

    例えば:

  5. (オプション)SSL を使用する特定の IP アドレスまたはポートを指定します。SSLはそのアドレスまたはポートを安全なチャネルにします。

    アドレスを 0.0.0.0 に設定すると、デバイスはすべてのポートで SSL を使用します。例えば、すべてのポートとデフォルトのTCPポート51051で、gRPCエンドポイントでSSLのサポートを有効にするには:

  6. jsdに添付できるリクエストレスポンスの同時接続の最大数を指定します。数が多いほど、クライアントのパフォーマンスへの影響が高くなります。

    要求応答サービスが SSL モードで実行されるように jsd を設定しました。JET オフデバイス アプリケーションを導入する準備ができました。

  7. 使用するスクリプトを指定します。

    メモ:

    Junos OS リリース 21.1R1 およびリリース 22.3R1 Junos OS Evolved以降、Python 2.7 はサポートされ set system scripts language python なくなり、 ステートメントは非推奨になりました。代わりに ステートメントを set system scripts language python3 使用します。

例:Python JET アプリケーション

この例を使用して、Python で記述されたオフデバイス JET アプリケーションを開発します。gRPC でサポートされている他の言語についても同じガイダンスに従うことができます。この Python JET アプリケーションは、 コマンドを XML 形式で実行します get-system-uptime-information

この例では、 オプションは HOST_OVERRIDE 証明書生成時に指定した証明書名を使用します。 「アプリケーション導入の準備」を参照してください

メモ:

ジュニパーネットワークスは、XML の開始タグと終了タグ <xml-tag/> を表す次の形式と <xml-tag></xml-tag>. の両方をサポートしています。

Junos OS リリース 18.4R1 以降

Junos OS リリース 18.4R1 以降を使用する場合は、このセクションに示す Python アプリケーションの例をガイドとして使用します。

Python 3 を使用してアプリケーションを作成する場合は、スクリプトの例外ブロックに PASS キーワードを含めます。

Junos OS リリース 18.4R1 より前

18.4R1 より前の Junos OS リリースを使用している場合は、このセクションの Python アプリケーションの例をガイドとして使用してください。