Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Servicio del sistema gNOI

RESUMEN Utilice el servicio gNOI System para realizar operaciones del sistema en el dispositivo de red de destino, incluyendo el reinicio del dispositivo, la actualización del software y la solución de problemas de la red.

Visión general

El servicio gNOI System ofrece RPCs para realizar varias operaciones de sistema diferentes en un dispositivo de red, incluidas las siguientes operaciones:

  • Reiniciar un dispositivo
  • Ejecute ping y traceroute comandos para solucionar problemas de la red
  • Actualizar software
  • Realizar un cambio de motor de enrutamiento

El archivo de definición de prototipos se encuentra en https://github.com/openconfig/gnoi/blob/master/system/system.proto.

Nota:

El gnoi-system proceso se reinicia en caso de que se produzca un error en el sistema. Para reiniciarlo manualmente, utilice el restart gnoi-system comando.

Configuración del dispositivo de red

Antes de empezar:

No se requiere ninguna configuración adicional para usar las RPCs de System servicio.

Ping y Traceroute

Puede ejecutar comandos de ping y traceroute en el dispositivo de red para solucionar problemas en su red.

Tabla 1: RpCs system.proto compatibles para la resolución de problemas de la red
Descripción de LAR presentada en la versión
Ping()

Hacer ping a un dispositivo. El Ping() RPC admite pings IPv4 e IPv6. Esta RPC devuelve los resultados del ping después de completar el ping.

Número predeterminado de paquetes: 5

Junos OS evolucionado 22.2R1

Traceroute()

Ejecute el comando traceroute en el dispositivo de destino y reenvíe los resultados.

Recuento de saltos predeterminado: 30

Junos OS evolucionado 22.2R1

Ejemplo: Ping

En este ejemplo, el cliente ejecuta la gnoi_ping_request.py aplicación Python. La aplicación envía el Ping() RPC al dispositivo de red, que, a continuación, hace ping al dispositivo especificado en la red.

La gnoi_ping_request.py aplicación importa el grpc_channel módulo para establecer el canal. El grpc_channel módulo se describe en Configurar servicios gNOI. Los argumentos de la aplicación se almacenan en el archivo gnoi_ping_request_args.txt . Aquí se presentan los archivos de la aplicación y los argumentos.

gnoi_ping_request.py

gnoi_ping_request_args.txt

Ejecutar la aplicación

En el cliente, ejecute la aplicación, que solicita la contraseña del servidor para las credenciales de llamada de RPC. El PingResponse indica que el dispositivo envió cinco pings. La respuesta final incluye las estadísticas resumidas de la solicitud de ping, que muestra que el dispositivo envió cinco ping y recibió cinco respuestas.

Reiniciar un dispositivo

Utilice las System RPC de servicio para reiniciar un dispositivo de forma remota, comprobar el estado del reinicio y cancelar el reinicio si es necesario. Puede ejecutar estas RPC en el dispositivo o en subcomponentes específicos. Los dispositivos Junos admiten los siguientes métodos de reinicio:

  • COLD (1): Disponible para todo tipo de reinicios.

  • POWERDOWN (2): Úselo para reinicios de FPC.

  • HALT (3): Úselo para reinicios activos del procesador de control.

  • POWERUP (7): Úselo para reinicios de FPC.

Tabla 2: System.proto RPCs compatibles para reiniciar
Descripción de LAR presentada en la versión
Reboot()

Reinicie el destino. Solo puede ejecutar una solicitud de reinicio en un destino a la vez.

Opcionalmente, puede configurar un retraso para reiniciar en el futuro, reiniciar los subcomponentes individualmente y agregar un mensaje cuando se inicie el reinicio. El retraso se configura en nanosegundos.

Los dispositivos Junos admiten los siguientes métodos de reinicio:

  • FRÍO (1)

  • POTENCIACIÓN (2)

  • PARADA (3)

  • POTENCIACIÓN (7)

Junos OS evolucionado 22.2R1

RebootStatus() Devuelva el estado del reinicio.

Junos OS evolucionado 22.2R1

CancelReboot() Cancelar una solicitud de reinicio pendiente.

Junos OS evolucionado 22.2R1

Ejemplo: Reinicio

En este ejemplo, el cliente ejecuta la gnoi_reboot_request.py aplicación Python. La aplicación envía la solicitud de reinicio y, luego, comprueba el estado del reinicio.

La aplicación permite que el usuario establezca el retraso de reinicio en segundos. Dado que interpreta RebootRequest() el retraso en nanosegundos, la aplicación convierte la entrada del usuario en nanosegundos para la solicitud. En este ejemplo, el cliente especifica un retraso de 60 segundos para la operación de reinicio.

La gnoi_reboot_request.py aplicación importa el grpc_channel módulo para establecer el canal. El grpc_channel módulo se describe en Configurar servicios gNOI. Los argumentos de la aplicación se almacenan en el archivo reboot_status_request_args.txt . Aquí se presentan los archivos de la aplicación y los argumentos.

gnoi_reboot_status_request.py

reboot_status_request_args.txt

Ejecutar la aplicación

Cuando el cliente ejecuta la aplicación, la aplicación solicita la contraseña del servidor para las credenciales de llamada de RPC. Luego, la aplicación reinicia el servidor después de un retraso de 60 segundos y devuelve los mensajes de estado de reinicio correspondientes. El mensaje establecido en reason también aparece en el servidor inmediatamente antes de que se reinicie el servidor. En este ejemplo, cualquier usuario que haya iniciado sesión en el servidor ve "Pruebas de reinicio de gNOI" inmediatamente antes de que se reinicie.

Actualizar software

En la tabla 3 se enumera el system.proto RPC que admite actualizaciones de software.

Tabla 3: RpCs system.proto compatibles para actualizaciones de software
Descripción de LAR presentada en la versión
SetPackage()

Instale una imagen de software en el dispositivo de destino.

Junos OS evolucionado 22.2R1

Puede usar el SetPackage() RPC para copiar una imagen de software en el dispositivo de destino e instalarlo. La imagen de software de origen debe residir en el sistema de administración de red local. Si la operación de copia del archivo se realiza correctamente y ya existe un archivo del mismo nombre en la ubicación de destino, el archivo se sobrescribe. El RPC devuelve un error si no existe la ubicación de destino o si hay un error al escribir los datos.

De forma predeterminada, SetPackage() no reinicia el dispositivo y activa el software. Debe establecer explícitamente la activate opción en 1 en el SetPackageRequest mensaje para activar el nuevo software. Si activa el software, el dispositivo se reiniciará y utilizará la nueva imagen de software. Si no activa el software, debe reiniciar los nodos pertinentes para completar la instalación y activar la nueva imagen de software.

Ejemplo: Instalar un paquete de software

En este ejemplo, el cliente ejecuta la gnoi_system_set_package.py aplicación Python, que realiza las siguientes operaciones:

  • Copia el paquete de software desde el sistema de administración de red local al dispositivo de red.
  • Instala el paquete en el dispositivo de red.
  • Reinicia el dispositivo de red, activando así la nueva imagen de software.

La aplicación construye el SetPackageRequest mensaje con los parámetros adecuados para definir la solicitud para las operaciones de copia e instalación. Luego, la aplicación llama al SetPackage() RPC para enviar la solicitud al dispositivo de red. El SetPackageRequest mensaje contiene los siguientes componentes:

  • Un mensaje inicial Package que contiene la ruta de acceso y la información del archivo de la imagen de software. El activate argumento se establece en 1 (True) para reiniciar el dispositivo y activar el software.
  • Un flujo del contenido del archivo de imagen de software en mensajes secuenciales que no superan los 64KB.
  • Un mensaje final con la suma de comprobación del archivo para comprobar la integridad del contenido del archivo.

La gnoi_system_set_package.py aplicación importa el grpc_channel módulo para establecer el canal. El grpc_channel módulo se describe en Configurar servicios gNOI. Los argumentos de la aplicación se almacenan en el args_system_set_package.txt archivo. Los archivos de la aplicación y de los argumentos son los siguientes:

gnoi_system_set_package.py

args_system_set_package.txt

Ejecutar la aplicación

Cuando el cliente ejecuta la aplicación, la aplicación copia el paquete desde el dispositivo local al dispositivo de red, lo instala y, luego, reinicia el dispositivo para completar la instalación.

Conmutación del motor de enrutamiento

Puede usar el SwitchControlProcessor() RPC para realizar una conmutación del motor de enrutamiento.

Nota:

Los eventos de conmutación sucesivos del motor de enrutamiento deben estar separados por un mínimo de 400 segundos después de que ambos motores de enrutamiento hayan llegado.

Tabla 4: System.proto RPCs compatibles para la conmutación del motor de enrutamiento
Descripción de LAR presentada en la versión
SwitchControlProcessor()

Cambie del motor de enrutamiento actual al motor de enrutamiento especificado. Si los motores de enrutamiento actuales y especificados son los mismos, es un NOOP. Si el destino no existe, la RPC devuelve un error.

Nota:

Los dispositivos Junos no son compatibles con control_processor SwitchControlProcessorResponse.

Junos OS evolucionado 22.2R1

Ejemplo: conmutación del motor de enrutamiento

En este ejemplo, el cliente gNOI ejecuta la gnoi_system_switch_control_processor.py aplicación para realizar una conmutación del motor de enrutamiento. El cliente especifica qué procesador de control de conmutador o motor de enrutamiento debe ser el motor de enrutamiento principal mediante la inclusión del control_processor argumento. Si el motor de enrutamiento de destino no existe, la RPC devuelve un INVALID_ARGUMENT error.

La aplicación importa el grpc_channel módulo para establecer el canal. El grpc_channel módulo se describe en Configurar servicios gNOI.

gnoi_system_switch_control_processor.py

Ejecutar la aplicación

El cliente ejecuta la aplicación y establece el control_processor argumento para re1 que re1 se convierta en el motor de enrutamiento principal.

Después de ejecutar la operación, re1 es el motor de enrutamiento principal en el dispositivo de destino.