Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Configurar serviços gNOI

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

A interface de operações de rede gRPC (gNOI) usa a estrutura de chamada de procedimento remoto gRPC (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 de protodefinição para serviços gNOI . Os arquivos de protodefinição definem as operações (RPCs) e as estruturas de dados (mensagens) para um determinado serviço. As definições são independentes de linguagem. O gRPC é compatível com o uso de muitas linguagens diferentes para executar operações de serviço. Você deve compilar os arquivos de protodefinição para o idioma de sua 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 como usar o gRPC com as diferentes linguagens compatíveis, consulte a documentação do gRPC. As seções a seguir fornecem comandos de exemplo para configurar um cliente gRPC e baixar e compilar os arquivos de definição de proto gNOI para Python. Você deve usar os comandos apropriados para o sistema operacional, o ambiente e a linguagem gRPC de sua escolha.

Antes de começar:

Configurar o cliente gRPC

O gNOI usa a estrutura gRPC para realizar operações em um dispositivo de rede. O gRPC é compatível com o uso de muitas linguagens diferentes. Antes de realizar operações gNOI usando a linguagem de sua 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 é compatível com o uso de vários idiomas. Para realizar operações gRPC em dispositivos de rede, você deve compilar os respectivos arquivos de proto definição e quaisquer arquivos dependentes para a linguagem de sua escolha. O OpenConfig fornece os arquivos de protodefinição necessários no repositório GitHub do OpenConfig. 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 e dependentes .proto em um diretório, atualiza os arquivos para usar instruções de importação relativas e, em seguida, compila os arquivos.

Para baixar e compilar os arquivos de proto definition gNOI para Python:

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

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

    • Cria o diretório src/proto .
    • Copia os arquivos protográficos desejados para o novo diretório.
    • Atualiza as instruções de importação em cada arquivo proto para usar caminhos relativos.
    • Compila cada arquivo proto na lista especificada para uso com Python.

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

    Observação:

    O script compila apenas o subconjunto de arquivos proto gNOI (conforme definido em gnoi_files) que têm serviços suportados em dispositivos Junos, bem como quaisquer arquivos protos dependentes. Para compilar outros serviços à medida que eles se tornam disponíveis, você pode atualizar as variáveis para incluir esses serviços.

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

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

Criar aplicativos gNOI

Depois de compilar os arquivos de protodefiniçã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 exemplo, que são descritos em suas respectivas seções.

grpc_channel.py

O grpc_channel.py módulo Python fornece funções de exemplo que criam um canal gRPC usando os argumentos fornecidos para o método de autenticação selecionado, somente 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 fornecido e executa uma operação de serviço gNOI System simples. 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 êxito um canal gRPC, ele executará um RPC de serviço do sistema simples para recuperar a hora do dispositivo de rede.

Executar o aplicativo

Depois de criar aplicativos para executar operações de serviço gNOI, você executa os aplicativos e fornece todos os 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 a hora. O servidor gRPC é configurado para exigir e verificar o certificado do cliente.

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