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应用程序。

图 1 显示了设备外应用程序开发工作流程。

图 1:设备JET工作流程 Off-Device JET Application Workflow

下载和编译 IDL 文件

  1. 从应用程序下载网站 瞻博网络 IDL 文件
  2. 拆开 IDL 文件包装。

    例如,如果您使用版本Junos OS或18.4R1:

    对于Junos OS之前的不同18.4R1,过程略有不同:

  3. 编译 Python 和 gRPC 模块,验证和管理服务 proto 文件。

    例如,如果您使用版本Junos OS或18.4R1:

    对于Junos OS之前18.4R1:

有关如何使用您选择的语言从 IDL 文件生成代码的详细信息,请参阅 https://www.grpc.io/docs

开发和打包您的应用程序

  1. 设置虚拟机JET。

    如果要开发依赖于 C 或 C++ 模块的应用程序或开发已签名的应用程序,则必须使用 JET VM JET应用程序开发。有关 说明,请参阅 设置 JET VM

  2. 您已准备好使用自己选择的语言开发应用程序。

    在生成客户端存根之后,您可以使用存根编写应用程序。有关生成 gRPC 客户端存根、使用存根编写应用程序以及从 IDL 文件中用您选择的语言生成代码的信息,请参阅 https://www.grpc.io/docs/

    注意:

    Python 2.7 生命周期终止和支持终止日期为 2020 年 1 月 1 日。Python 2.7 的官方升级路径是 Python 3。随着为不同类型的设备脚本运行 Junos OS 的设备上添加了 Python 3 的支持,我们建议将受支持的脚本类型从 Python 2 迁移到 Python 3,因为将来可能会从运行 Junos OS 的设备上移除对 Python 2.7 的支持。

  3. 使用 JSON 打包应用程序。有关详细信息 ,请参阅 软件包JET 应用程序 。

准备部署应用程序

在外部服务器上运行应用程序,或直接从虚拟机JET运行。在外部服务器上部署应用程序之前,您需要配置与JET交互Junos OS。

配置JET与 Junos OS

要运行设备外应用程序,您需要在设备上启用 request-response Junos OS。使用请求响应服务时,客户端应用程序会发送请求,并同步等待来自该服务器Junos OS响应。使用本部分配置请求JET响应服务在安全套接字层 (SSL) 模式下运行的服务进程 (jsd)。这提高了安全性,支持基于 SSL 的 API 连接。

注意:

目前,JET支持传输层安全 (TLS) 版本 1.2 进行证书交换,并支持多种加密算法,但不支持相互认证。这意味着客户端可以认证服务器,但服务器无法使用 SSL/TLS 证书对客户端进行身份验证。对于客户端认证,请使用身份验证服务 API 中的 LoginCheck() 过程。

  1. 通过在本地添加和配置证书名称,让 jsd 使用 SSL。证书必须是 RSA 证书。不支持 ECDSA 和 DSA SSL 证书。

    此方法与 xnm-ssl 等标准中其他基于 SSL Junos OS相同。跟踪在证书生成期间指定的证书名称条目。您将将其用于 HOST_OVERRIDE 下一部分示例 Python 应用程序中的选项。此示例将证书名称为 router

    注意:

    如果证书使用相同标识符更新,则更改不会为 jsd 反射。您需要使用 jsd 层次结构中的新标识符配置证书,或者执行 jsd 重新启动来反映所做的更改。

  2. 将 SSL 证书 .pem 文件复制到设备。

  3. 将证书加载到设备密钥Junos OS中。例如,如果 SSL 证书的本地名称为 sslcert

  4. 在 tcp/51051 默认端口上的 gRPC 端点上启用 SSL 支持。

  5. 指定可连接到 jsd 的请求响应的最大同时连接数。数字越高,对客户端性能的影响就越高。可配置的最大最大数量为八个。

    我们已将 jsd 配置为在 SSL 模式下运行请求响应服务。您已准备好在设备JET应用程序部署您的安全服务。

示例:Python JET应用程序

使用此示例可开发使用 Python 编写的JET设备外应用程序。对于 gRPC 支持的其他语言,您可以遵循相同的指导。此 Python JET应用程序以 get-system-uptime-information XML 格式运行 命令。

此示例中, HOST_OVERRIDE 选项使用在证书生成期间指定的证书名称。请参阅 准备部署应用程序

注意:

瞻博网络表示 XML 开始标记和结束标记的两种形式: <xml-tag/><xml-tag></xml-tag>

Junos OS及18.4R1版本

如果要使用版本或更高版本,请使用本部分Junos OS示例 Python 18.4R1作为指南。

如果您使用 Python 3 编写应用程序,在脚本的例外块中包括 PASS 关键字。

在Junos OS版本之前18.4R1

如果您在使用之前的应用程序版本,请使用本部分的示例 Python Junos OS 作为18.4R1。