Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Configure serviços gNOI

RESUMO Configure o sistema de gerenciamento de rede remoto como um cliente gRPC que pode executar operações de gNOI em dispositivos de rede.

A interface de operações de rede (gNOI) gRPC usa a estrutura de chamada de procedimento remoto (gRPC) para realizar operações em um dispositivo de rede. O sistema de gerenciamento de rede deve ter a pilha gRPC instalada.

O OpenConfig define arquivos proto-definição para serviços gNOI . Os arquivos proto-definição definem as operações (RPCs) e as estruturas de dados (mensagens) para um determinado serviço. As definições são agnósticas da linguagem. O gRPC oferece suporte usando muitos idiomas diferentes para executar operações de serviço. Você deve compilar os arquivos proto-definição para o seu idioma de escolha. Em seguida, você cria aplicativos que usam os objetos (classes, funções, métodos etc) nos arquivos compilados para se conectar ao servidor gRPC no dispositivo de rede e executar as operações desejadas.

Para obter informações sobre o uso do gRPC com os diferentes idiomas compatíveis, consulte a documentação do gRPC. As seções a seguir fornecem comandos de amostra para configurar um cliente gRPC e baixar e compilar os arquivos de proto definição de gNOI para Python. Você deve usar os comandos apropriados para o seu sistema operacional, ambiente e linguagem de escolha gRPC.

Antes de configurar o cliente gRPC, configure o servidor gRPC conforme definido em Configurar serviços gRPC.

Configure o cliente gRPC

A gNOI usa a estrutura gRPC para realizar operações em um dispositivo de rede. o gRPC oferece suporte a vários idiomas diferentes. Antes de realizar operações de gNOI usando seu idioma de escolha, você deve instalar a pilha gRPC no sistema de gerenciamento de rede.

Por exemplo, para instalar a pilha gRPC para Python em um sistema de gerenciamento de rede que executa o Ubuntu 20.04 LTS (use sudo quando apropriado):

  1. Instale pip para Python 3.
  2. Instale o grpcio pacote para Python.
  3. Instale o grpcio-tools pacote para Python.

Compilar os arquivos Proto Definiton

o gRPC oferece suporte a muitos idiomas. Para realizar operações de gRPC em dispositivos de rede, você deve compilar os respectivos arquivos proto-definição para o seu idioma de escolha. O OpenConfig fornece os arquivos protode definição necessários no repositório OpenConfig GitHub. Você usa o compilador de buffer de protocolo (protoc ou aplicativo equivalente) para compilar os .proto arquivos.

Para essa configuração, executamos um script que copia todos os arquivos desejados .proto em um diretório, atualiza os arquivos para usar declarações relativas de importação e, em seguida, compila os arquivos.

Para baixar e compilar os arquivos de protode definição de gNOI para Python:

  1. Crie o diretório temporário para os arquivos originais de origem.
  2. Clone o repositório gNOI GitHub para o dispositivo local.
  3. Compile os arquivos para o .proto seu idioma, que neste exemplo é Python.

    O script de shell de amostra executa as seguintes operações:

    • Cria o src/proto directory.
    • Copia os arquivos proto desejados no novo diretório.
    • Atualiza a declaração de importação em cada arquivo proto para usar um caminho relativo.
    • Compila cada arquivo proto na lista especificada para uso com Python.

    Para compilar os arquivos usando o script, execute o script do diretório-mãe que contém o src diretório.

    Nota:

    O script compila apenas o subconjunto de arquivos proto (conforme definido em gnoiFileList) que têm serviços suportados em dispositivos Junos. Para compilar outros serviços conforme eles ficam disponíveis, você pode atualizar as variáveis para incluir esses serviços.

  4. Verifique se os arquivos proto são compilados visualizando os arquivos de saída no diretório alvo.

    A lista de arquivos deve incluir os arquivos compilados, que para Python têm _pb2 e pb2_grpc nos nomes de arquivo de saída.

Criar aplicativos gNOI

Depois de compilar os arquivos proto-definição, você cria aplicativos que usam os objetos nos arquivos compilados. Os aplicativos se conectam ao servidor gRPC no dispositivo de rede e executam as operações desejadas. Esta seção fornece dois módulos Python de amostra, que são descritos em suas respectivas seções.

grpc_channel.py

O grpc_channel.py módulo Python oferece funções de amostra que criam um canal gRPC usando os argumentos fornecidos para o método selecionado de autenticação, somente de servidor ou mútuo.

gnoi_connect_cert_auth_mutual.py

O gnoi_connect_cert_auth_mutual.py aplicativo Python estabelece um canal gRPC com o servidor gRPC e executa uma simples operação de serviço gNOI System . O usuário fornece as informações necessárias de conexão e autenticação mútua como entrada para o aplicativo. O aplicativo invoca a função apropriada no grpc_channel.py módulo para estabelecer o canal gRPC entre o cliente e o servidor. Se o aplicativo estabelecer com sucesso um canal gRPC, ele executará um RPC de serviço de sistema simples para recuperar o tempo do dispositivo de rede.

Execute o aplicativo

Depois de criar aplicativos para executar operações de serviço gNOI, você executa os aplicativos e fornece quaisquer argumentos necessários. O exemplo a seguir usa os scripts fornecidos na seção anterior para se conectar ao servidor gRPC no dispositivo de rede e solicitar o tempo. O servidor gRPC está configurado para exigir e verificar o certificado do cliente.

  • Para autenticação mútua, o cliente oferece sua própria chave e certificado de chave pública X.509 no formato PEM, além do endereço IP do servidor, porta gRPC e certificado de CA raiz. O cliente também fornece as credenciais para chamadas de RPC: o user_id argumento fornece o nome de usuário, e o aplicativo solicita a senha do usuário.