Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Desarrollar aplicaciones JET fuera del dispositivo

Visión general

Puede usar JET para desarrollar aplicaciones que se ejecutan fuera del dispositivo. Esto le permite aprovechar las ventajas de JET en todos los dispositivos de su red. Para facilitar el desarrollo, puede escribir aplicaciones JET fuera del dispositivo en el idioma de su elección. Para desarrollar una aplicación fuera del dispositivo:

  1. Descargue y compile el archivo IDL.

  2. Desarrolle la aplicación utilizando el idioma de su elección.

  3. Empaquetar la aplicación.

  4. Implemente el paquete de aplicación en un servidor externo o ejecute la aplicación directamente desde la MÁQUINA VIRTUAL JET.

La Figura 1 muestra el flujo de trabajo de desarrollo de aplicaciones fuera del dispositivo.

Figura 1: Flujo de trabajo de la aplicación JET fuera del dispositivo Off-Device JET Application Workflow

Desarrollar y empaquetar su aplicación

Antes de desvloping su aplicación, asegúrese de que ya ha seguido las instrucciones en Configurar la JET VM para configurar la JET VM y descargue el archivo IDL.

  1. Compile los archivos de definición de prototipos que planea usar en el idioma de su elección.

    En este ejemplo, usamos Python. Compilamos los archivos para las API de administración, autenticación y tipo base común.

    Ha compilado módulos python y gRPC para cada API especificada.

  2. Desarrolle la aplicación utilizando el idioma de su elección.

    Si está desarrollando una aplicación con una dependencia de módulos C o C++ o está desarrollando una aplicación firmada, debe usar la VM de JET para el desarrollo de aplicaciones JET.

    Nota:

    A partir de Junos OS versión 21.1R1 y Junos OS Evolved versión 22.3R1, Python 2.7 ya no es compatible. Utilice Python 3 en su lugar.

    Puede escribir la aplicación mediante un stub después de generar un stub del lado del cliente. Para obtener más información sobre cómo generar los stubs del lado del cliente gRPC, escribir la aplicación usando el stub y generar código a partir de un archivo IDL en el idioma de su elección, consulte https://www.grpc.io/docs/.

  3. Empaquetar la aplicación con JSON. Consulte Aplicaciones del paquete JET para obtener más información.

Prepárese para implementar su aplicación

Ejecute la aplicación en un servidor externo o directamente desde la MÁQUINA VIRTUAL JET. Antes de implementar la aplicación en un servidor externo, debe configurar la interacción de JET con Junos OS.

Configurar la interacción de JET con Junos OS

Para ejecutar una aplicación fuera del dispositivo, debe habilitar la request-response configuración en Junos OS o Junos OS Evolucionado. Cuando se utiliza el servicio de solicitud y respuesta, la aplicación cliente emite una solicitud y espera sincrónicamente la respuesta del servidor junos. Utilice esta sección para configurar el proceso de servicio JET (jsd) para que el servicio de solicitud y respuesta se ejecute en el modo de capa de sockets seguros (SSL). Esto proporciona una mayor seguridad y permite conexiones DE API basadas en SSL.

Nota:

Actualmente, JET admite la seguridad de capa de transporte (TLS) versión 1.2 para el intercambio de certificados y admite varios algoritmos de cifrado, pero no admite la autenticación mutua. Esto significa que los clientes pueden autenticar el servidor, pero el servidor no puede autenticar clientes mediante certificados SSL/TLS. Para la autenticación de cliente, utilice el procedimiento LoginCheck() de la API del servicio de autenticación.

  1. Habilite jsd para usar SSL agregando y configurando el nombre del certificado localmente. El certificado debe ser un certificado RSA. No se admiten certificados SSL ECDSA y DSA.

    Este método es igual que otros servicios basados en SSL en Junos OS como xnm-ssl. Realice un seguimiento de la entrada del nombre del certificado que especifique durante la generación del certificado. Lo utilizará para la HOST_OVERRIDE opción en el ejemplo de aplicación Python en la siguiente sección. En este ejemplo, el nombre del certificado es router.

    Nota:

    Si se actualiza un certificado con el mismo identificador, los cambios no se reflejarán para jsd. Debe configurar el certificado con un identificador nuevo en la jerarquía jsd o reiniciar jsd para reflejar los cambios realizados.

  2. Copie el archivo .pem del certificado SSL al dispositivo Junos.

    Por ejemplo:

  3. Cargue el certificado en el llavero del dispositivo Junos. Por ejemplo, si el nombre local del certificado SSL es sslcert:

  4. Habilite la compatibilidad con SSL para el certificado cargado.

    Por ejemplo:

  5. (Opcional) Especifique la dirección IP o puerto específico que utilizará SSL. SSL hace que esa dirección o puerto sea un canal seguro.

    Si establece la dirección en 0.0.0.0, el dispositivo utilizará SSL en todos los puertos. Por ejemplo, para habilitar la compatibilidad con SSL en el punto de conexión gRPC en todos los puertos y el puerto TCP predeterminado 51051:

  6. Especifique la cantidad máxima de conexiones simultáneas para la solicitud y la respuesta que se pueden adjuntar a jsd. Cuanto mayor sea el número, mayor será el impacto en el rendimiento del cliente.

    Ha configurado jsd para el servicio de solicitud y respuesta para que se ejecute en modo SSL. Está listo para implementar su aplicación JET fuera del dispositivo.

  7. Especifique los scripts que se usarán.

    Nota:

    A partir de Junos OS versión 21.1R1 y Junos OS Evolved versión 22.3R1, Python 2.7 ya no se admite y la set system scripts language python instrucción está en desuso. Utilice la set system scripts language python3 instrucción en su lugar.

Ejemplo: Aplicación Python JET

Utilice este ejemplo para desarrollar una aplicación JET fuera del dispositivo escrita en Python. Puede seguir las mismas instrucciones para otros idiomas compatibles con gRPC. Esta aplicación Python JET ejecuta el comando get-system-uptime-information en formato XML.

En este ejemplo, la HOST_OVERRIDE opción usa el nombre del certificado que especificó durante la generación del certificado. Consulte Prepárese para implementar la aplicación.

Nota:

Juniper Networks admite los dos de los siguientes formularios para denotar etiquetas de apertura y cierre XML: <xml-tag/> y <xml-tag></xml-tag>.

Junos OS versión 18.4R1 y posteriores

Utilice el ejemplo de la aplicación Python que se muestra en esta sección como guía si está utilizando Junos OS versión 18.4R1 o posterior.

Si está escribiendo su aplicación con Python 3, incluya la palabra clave PASS en el bloque Excepción de la secuencia de comandos.

Antes de la versión 18.4R1 de Junos OS

Utilice el ejemplo de la aplicación Python de esta sección como guía si utiliza versiones de Junos OS anteriores a 18.4R1.