Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Entendendo os serviços gRPC para gerenciar dispositivos de rede

Os aplicativos cliente gRPC podem usar os serviços de rede gRPC definidos nas interfaces de rede OpenConfig (gNMI, gNOI, gRIBI) para gerenciar dispositivos de rede compatíveis.

Benefícios dos serviços de rede gRPC

  • Forneça interfaces simples e independentes de fornecedor para o gerenciamento de dispositivos de rede.
  • Permite que você gerencie redes de vários fornecedores em grande escala com mais facilidade.
  • Use a estrutura de chamada de procedimento remoto gRPC para transporte e buffers de protocolo para definições e codificação de serviço, que fornecem transporte eficiente e processamento rápido.

Noções básicas sobre o OpenConfig

O OpenConfig é um esforço colaborativo no setor de redes para avançar em direção a um método mais dinâmico e programável para configurar e gerenciar redes de vários fornecedores. O OpenConfig oferece suporte ao uso de definições de serviço e modelos de dados independentes de fornecedor para gerenciar e configurar a rede. As definições de serviço definem operações comuns executadas em dispositivos de rede e os modelos de dados definem a configuração e o estado operacional de dispositivos de rede para protocolos ou serviços de rede comuns.

Os operadores com uma rede de vários fornecedores se beneficiam muito do uso de modelos e especificações padrão do setor. O objetivo do OpenConfig é que as operadoras possam usar um único conjunto de modelos de dados e operações para configurar e gerenciar todos os dispositivos de rede que oferecem suporte à iniciativa OpenConfig. O grupo de trabalho OpenConfig desenvolveu especificações para interfaces baseadas em gRPC para gerenciar a configuração, as operações e os fluxos de telemetria em dispositivos de rede, que oferecem vantagens em relação a outros protocolos tradicionais de gerenciamento de rede.

Visão geral dos serviços baseados em gRPC

gRPC é uma estrutura de chamada de procedimento remoto (RPC) de código aberto que foi originalmente desenvolvida pelo Google. O gRPC usa HTTP/2 para transporte e oferece suporte a mecanismos de segurança modernos e streaming bidirecional. O gRPC usa o formato de dados Protocol Buffers para definir serviços e codificar dados. O Protocol Buffers é independente de linguagem e oferece suporte a associações para muitas linguagens diferentes, o que permite que as operadoras integrem facilmente serviços baseados em gRPC em aplicativos de gerenciamento existentes.

O grupo de trabalho OpenConfig definiu especificações para protocolos de gerenciamento de rede baseados em gRPC. Os serviços de rede baseados em gRPC incluem:

  • gRPC Network Management Interface (gNMI) — Serviço único para gerenciamento de configuração e streaming de telemetria.

  • gRPC Network Operations Interface (gNOI) — Conjunto de microsserviços para gerenciamento de operações.

  • gRPC Routing Information Base Interface (gRIBI) — Serviço que permite que aplicativos externos adicionem ou removam entradas programaticamente em uma tabela de roteamento no dispositivo de destino.

A Figura 1 ilustra o escopo dos diferentes serviços.

Figura 1: Interfaces gRPC interfaces gRIBI, gNMI, and gNOI roles in network device management. gRIBI focuses on Routing Information Base access. gNMI handles configuration and operational state. gNOI manages operational commands like diagnostics and updates. de rede gRPC

Visão geral do gNMI, gNOI e gRIBI

O gNMI fornece um serviço único para gerenciamento de estado de elementos de rede. O gNMI usa modelos de dados independentes de fornecedores que definem a configuração e o estado operacional de dispositivos de rede para protocolos ou serviços de rede comuns. Os clientes gNMI podem recuperar e modificar a configuração de um dispositivo de rede, bem como transmitir dados operacionais. Os operadores monitoram a rede assinando os objetos de dados específicos de interesse. O gNMI também oferece suporte ao streaming em alteração , o que é essencial para operações sensíveis ao tempo.

Para obter mais informações sobre como usar o gNMI para gerenciamento de configuração e streaming de telemetria em dispositivos Junos, consulte:

Enquanto o gNMI lida com o gerenciamento de estado, o gNOI lida com o gerenciamento de operações. gNOI é uma coleção de microsserviços baseados em gRPC para realizar operações comuns em dispositivos de rede. Cada definição de serviço define RPCs que os aplicativos de gerenciamento podem executar em um dispositivo para executar um conjunto de operações, por exemplo, reinicializar um dispositivo ou atualizar o software. Para obter uma lista de serviços gNOI compatíveis, consulte Visão geral dos serviços gNOI.

O gRIBI fornece um serviço único para gerenciar a base de informações de roteamento (RIB, também conhecida como tabela de roteamento) e a base de informações de encaminhamento (FIB, também conhecida como tabela de encaminhamento) do dispositivo de rede. Os aplicativos de gerenciamento podem executar RPCs gRIBI em um dispositivo para recuperar, adicionar, modificar ou excluir rotas do RIB ou FIB do dispositivo. Para obter mais informações sobre RPCs gRIBI compatíveis, consulte gRIBI.

gNMI, gNOI e gRIBI usam gRPC para transporte, e a conexão entre o servidor gRPC e o cliente gRPC é feita por meio de uma sessão gRPC criptografada por SSL. Por exemplo, a Figura 2 ilustra uma conexão simples entre um cliente e um servidor gRPC. A Juniper Networks oferece suporte à autenticação somente de servidor e à autenticação mútua para a sessão gRPC, que usa certificados X.509 para autenticar o dispositivo ou aplicativo. Os certificados podem ser assinados por uma autoridade de certificação (CA) ou autoassinados.

Figura 2: Interação do servidor e do cliente gRPC gRPC Server and Client Interaction

gNMI, gNOI e gRIBI definem serviços para gerenciar dispositivos de rede. Cada definição de serviço define as operações (RPCs) e as estruturas de dados (mensagens) para esse serviço específico em arquivos de protodefinição. As estruturas de dados são definidas usando buffers de protocolo, que é um formato de dados de código aberto e neutro em linguagem para serializar dados estruturados. Você usa protoc um compilador equivalente para compilar os arquivos proto para a linguagem de sua escolha. Os aplicativos de gerenciamento podem usar o código nos arquivos compilados para realizar as operações solicitadas em dispositivos de rede. A Tabela 1 descreve os repositórios GitHub que contêm os arquivos de proto definição para cada interface de serviço.

Tabela 1: repositórios GitHub gNMI, gNOI e gRIBI
Interface Repositório GitHub

gNMI

openconfig/gnmi

gNOI

openconfig/gnoi

gRIBI

openconfig/gribi

Os serviços de rede baseados em gRPC oferecem alternativas e vantagens em relação a outros protocolos de gerenciamento de rede, como NETCONF e RESTCONF. Como é possível compilar os arquivos de protodefinição para muitas linguagens diferentes, é possível integrar facilmente os serviços com aplicativos de gerenciamento existentes para gerenciar redes de vários fornecedores. Além disso, o uso de buffers de protocolo para serialização de dados geralmente fornece transporte mais eficiente e processamento mais rápido em relação a outros formatos de serialização, como JSON e XML.