Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Servicio del sistema gNOI

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

Descripción general

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

  • Reiniciar un dispositivo
  • Ejecute comandos ping y traceroute para solucionar problemas de la red
  • Actualice el software
  • Realizar una conmutación del motor de enrutamiento

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

Nota:

El gnoi-system proceso se reinicia en caso de falla del sistema. Para reiniciarlo manualmente, use el restart gnoi-system comando.

Configuración de dispositivos de red

Antes de empezar:

No se requiere ninguna configuración adicional para usar las RPC del System servicio.

ping y traceroute

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

Tabla 1: RPC de system.proto compatibles para solucionar problemas de red
RPC Descripción Introducido en la versión
Ping()

Haga ping a un dispositivo. La Ping() RPC admite pings IPv4 e IPv6. Esta RPC transmite los resultados del ping después de que se completa el ping.

Número predeterminado de paquetes: 5

Junos OS evolucionado 22.2R1

Traceroute()

Ejecute el comando traceroute en el dispositivo de destino y transmita 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 de Python. La aplicación envía la Ping() RPC al dispositivo de red, que luego 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 de gNOI. Los argumentos de la aplicación se almacenan en el archivo gnoi_ping_request_args.txt . Los archivos de aplicación y argumento se presentan aquí.

gnoi_ping_request.py

gnoi_ping_request_args.txt

Ejecute la aplicación

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

Reiniciar un dispositivo

Utilice las RPC del System servicio para reiniciar un dispositivo de forma remota, comprobar el estado del reinicio y cancelarlo 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:

  • FRÍO (1): Disponible para todo tipo de reinicios.

  • APAGADO (2): Se utiliza para reinicios de FPC y del motor de enrutamiento (tarjeta controladora).

  • HALT (3): Utilícelo para reiniciar el procesador de control activo.

  • POWERUP (7): Se utiliza para reinicios de FPC y del motor de enrutamiento (tarjeta controladora).

A partir de Junos OS Evolved versión 25.2R1, puede usar las opciones POWERDOWN y POWERUP en los componentes del motor de enrutamiento. Solo puede apagar un motor de enrutamiento en un sistema de motor de enrutamiento dual y no puede apagar ambos motores de enrutamiento al mismo tiempo. Un motor de enrutamiento permanece apagado hasta el próximo reinicio.

Nota:

Para apagar el motor de enrutamiento y mantener el estado incluso después de un reinicio, puede establecer la ruta de OpenConfig /components/component/controller-card/config/power-admin-state/ en POWER_DISABLED. Este cambio de estado es efectivo inmediatamente en el motor de enrutamiento de respaldo. El estado del motor de enrutamiento principal solo cambia después de un reinicio o una conmutación.

Tabla 2: RPC system.proto compatibles para reiniciar
RPC Descripción Introducido en la versión
Reboot()

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

Si lo desea, 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)

  • APAGADO (2)

  • PARADA (3)

  • POTENCIADOR (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: Reiniciar

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

La aplicación permite al usuario establecer el retraso de reinicio en segundos. RebootRequest() Dado que interpreta 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 de gNOI. Los argumentos de la aplicación se almacenan en el archivo reboot_status_request_args.txt . Los archivos de aplicación y argumento se presentan aquí.

gnoi_reboot_status_request.py

reboot_status_request_args.txt

Ejecute la aplicación

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

actualice el software

En la tabla 3 se enumeran las RPC de servicio del sistema que admiten actualizaciones de software.

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

Instale una imagen de software en el dispositivo de destino.

Junos OS evolucionado 22.2R1

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

De forma predeterminada, SetPackage() no reinicia el dispositivo ni 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 reinicia y utiliza la imagen nueva de software. Si no activa el software, deberá reiniciar los nodos correspondientes para llevar a cabo la instalación y activar la imagen de software nueva.

Ejemplo: Instalación de un paquete de software

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

  • Copia el paquete de software del sistema de administración de red local al dispositivo de red.
  • Instala el paquete en el dispositivo de red.
  • Reinicia el dispositivo de red y, por lo tanto, activa la imagen de software nueva.

La aplicación construye el SetPackageRequest mensaje con los parámetros adecuados para definir la solicitud de las operaciones de copia e instalación. Luego, la aplicación llama a la 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.
  • Una secuencia del contenido del archivo de imagen de software en mensajes secuenciales que no superen los 64 KB.
  • 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 de gNOI. Los argumentos de la aplicación se almacenan en el args_system_set_package.txt archivo. Los archivos de aplicación y argumento son los siguientes:

gnoi_system_set_package.py

args_system_set_package.txt

Ejecute la aplicación

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

Conmutación del motor de enrutamiento

Puede utilizar RPC SwitchControlProcessor() para realizar un cambio de motor de enrutamiento.

Nota:

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

Tabla 4: RPC de system.proto compatibles para el cambio del motor de enrutamiento
RPC Descripción Introducido 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 admiten 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 un cambio de 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 de gNOI.

gnoi_system_switch_control_processor.py

Ejecute la aplicación

El cliente ejecuta la aplicación y establece el control_processor argumento en re1 para 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.

Tabla de historial de cambios

La compatibilidad de la función depende de la plataforma y la versión que utilice. Utilice el Explorador de características para determinar si una característica es compatible con su plataforma.

Lanzamiento
Descripción
25.2R1-EVO
A partir de Junos OS Evolved versión 25.2R1, puede usar la RPC del servicio Reboot() gNOI System para encender y apagar un motor de enrutamiento (tarjeta controladora) en un dispositivo de motor de enrutamiento dual.