Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Usando dial-out gRPC para coleta segura de telemetria

Entenda o dial-out do gRPC

A partir do Junos OS Release 22.4R1, o JTI oferece suporte remoto para dial-out gRPC em roteadores da Série ACX, roteadores da Série MX, roteadores da Série PTX e switches da Série QFX. Com o dialout do gRPC, o dispositivo-alvo (servidor) inicia uma sessão de gRPC com o coletor (cliente). Quando a sessão é estabelecida, o alvo transmite os dados de telemetria especificados pela assinatura do grupo de sensores ao coletor. Isso contrasta com o método de discagem de interface de gerenciamento de rede (gNMI) gRPC, no qual o coletor inicia uma conexão com o dispositivo alvo.

O dial-out do gRPC simplifica as estatísticas de telemetria de streaming. Configurar o dispositivo-alvo para transmitir estatísticas e exportá-las para um endereço IP de coletor elimina a carga do acesso que está sendo colocado no coletor (cliente). (ver Figura 1).

Figura 1: disque-saída gRPC Dial-Out gRPC

O dial-out do gRPC oferece vários benefícios em comparação com o dial-in gRPC:

  • Reduz a exposição de dispositivos-alvo a ameaças fora de sua topologia.

  • Simplifica o acesso a um dispositivo alvo. O método gRPC Dial-In requer que um coletor supere uma série de configurações complexas de firewall para obter acesso ao dispositivo alvo. O gRPC Dial-Out não.

  • Os coletores podem ser apátridos; sem a necessidade de iniciar uma sessão, eles simplesmente ouvem, se inscrevem e armazenam dados coletados.

  • Suporte à criptografia mútua para aumentar a segurança.

Para permitir a exportação de estatísticas, inclua o e sensor as export-profile declarações no nível [edit services analytics] de hierarquia. O perfil de exportação deve incluir a taxa de relatórios, o serviço de transporte (por exemplo, gRPC) e o formato (por exemplo, gbp-gnmi). A configuração do sensor deve incluir o nome do coletor (nome do servidor), o nome do perfil de exportação e o caminho dos recursos. Um exemplo de um caminho de recursos é /interfaces/interface[name='fxp0'.

Visão geral dos túneis gRPC

Um túnel gRPC funciona como um protocolo cliente-servidor que disca uma sessão do alvo para o cliente TCP através da instância de roteamento padrão ou instância de roteamento configurada. Se você não optar por configurar uma instância de roteamento, o túnel gRPC usa a instância de roteamento padrão.

Você pode configurar o endereço fonte para cada sessão de túnel gRPC para discar uma conexão com o servidor do túnel. Se você não configurar o endereço de origem, o kernel escolhe o endereço de origem que pode chegar ao servidor do túnel.

Para obter mais informações sobre túneis gRPC, consulte https://github.com/openconfig/grpctunnel.

Um túnel gRPC tem três entidades principais:

  • Target — representa o dispositivo de rede. O alvo é um cliente gRPC.

  • Tunnel Server — uma entidade de software que é um aplicativo off-box que gerencia a assinatura e os registros direcionados. O servidor de túnel é um servidor gRPC.

  • Tunnel Client — uma entidade de software que executa tarefas do cliente. O cliente do túnel pode ser autônomo dentro do servidor do túnel. O cliente do túnel também é um cliente gRPC.

Benefícios do uso de uma sessão de túnel gRPC:

  • Supera uma série de configurações complexas de firewall à medida que a conexão é estabelecida do lado do servidor.

  • Acesse vários aplicativos de servidor TCP, como gNMI-gNOI, SSH ou NETCONF-SSH sem quaisquer requisitos operacionais.

Arquitetura de túnel gRPC

Um túnel gRPC é uma infraestrutura genérica para aplicativos baseados em TCP se comunicarem dentro de mensagens gRPC.

Em geral, o cliente TCP inicia uma conexão com o servidor ou o alvo do TCP. Os dispositivos Junos atuam como alvo que executa aplicativos de servidor TCP, como gNMI-gNOI, SSH e NETCONF-SSH. Se um cliente não conseguir entrar em contato com o servidor, os motivos comuns podem ser:

  • O servidor é executado em configurações complexas de firewall com firewalls que impedem conexões de entrada.

  • O servidor é executado em um roteador que implementa a tradução de endereços de rede (NAT).

  • O servidor se depara com quaisquer outros requisitos operacionais, o que impede conexões externas.

Quando um cliente TCP não é capaz de atingir um alvo, você pode configurar uma sessão de túnel gRPC para estabelecer uma conexão entre o cliente TCP e o alvo. Uma sessão de túnel gRPC estabelece uma conexão na direção inversa onde um alvo disca para um cliente TCP.

Para usar uma sessão de túnel gRPC, um cliente de túnel é adicionado ao lado alvo onde o processo de túnel grpc é executado e todas as configurações relacionadas ao túnel gRPC são realizadas. No lado cliente do TCP, um servidor de túnel é adicionado.

Você deve incluir a grpc-tunnel declaração de configuração na [edit system services] hierarquia para configurar uma sessão de túnel gRPC.

Segurança de túnel gRPC

O túnel gRPC é um modelo de discagem onde um dispositivo inicia uma conexão com base na configuração. O túnel gRPC está em um canal de gRPC seguro que usa certificados TLS.

Exemplo: configure um túnel gRPC

Visão geral

Esta seção abrange as etapas necessárias para configurar o alvo para este exemplo. O foco está no alvo, pois esse é o dispositivo Junos onde o túnel gRPC está configurado.

Requisitos

Este exemplo usa os seguintes componentes de software e hardware:

  • Junos OS ou Junos Evolved Release 22.4 ou posterior para dispositivos de roteamento e comutação

  • Um dispositivo host como cliente do túnel

  • Um dispositivo host como servidor de túnel

Topologia

A Figura 1 mostra a topologia usada neste exemplo.

Figura 2: configuração gRPC tunnel setup de túnel gRPC

Com base na configuração Junos do dispositivo alvo, ele disca um túnel grpc para o servidor do túnel. O dispositivo alvo se registra com o servidor de túnel por meio do RPC de fluxo de registro.

Quando um cliente solicita uma sessão de TCP a um alvo específico, o servidor de túnel atua como um intermediário e se conecta à sessão alvo registrada acima no servidor do túnel.

Se o alvo suportar o tipo de alvo solicitado, o dispositivo discará um novo túnel chamado RPC de fluxo de túnel. Isso estabelece um túnel gRPC entre o cliente e o alvo através do servidor do túnel. O cliente do túnel agora pode acessar os aplicativos TCP pretendidos no alvo.

Nota:

Só pode haver um fluxo de registro entre um servidor de túnel e o dispositivo de rede, mas vários fluxos de túnel para o mesmo par.

Configure um túnel gRPC

Configuração rápida da CLI

Para configurar rapidamente este exemplo, copie os seguintes comandos, cole-os em um arquivo de texto, remova qualquer quebra de linha, altere os detalhes necessários para combinar com a configuração da sua rede e, em seguida, copie e cole os comandos no CLI no nível de hierarquia [editar].

Procedimento passo a passo

Siga essas etapas para configurar o túnel gRPC no dispositivo alvo.

  1. Configure os servidores sob o túnel gRPC.

    1. Configure o endereço ou nome de host IPv4 ou IPv6 do servidor do túnel.

    2. Configure o número de porta pelo qual o servidor do túnel ouve.

    3. Configure as credenciais usando a declaração tls .

    4. Especifique os aplicativos-alvo que você deseja acessar. As opções disponíveis são sshnetconf-ssh e gnmi-gnoi.

  2. (Opcionalmente) Definir o intervalo de refinação (em segundos). Se o servidor de túnel for inalcançável, o dispositivo-alvo se retrie para se conectar após o intervalo de retítidão.

  3. (Opcionalmente)

    Definir a instância de roteamento. Se você não definir a instância de roteamento, o túnel gRPC usa a instância de roteamento padrão.
  4. (Opcionalmente)

    Definir o endereço de origem. Se você não definir o endereço de origem, o kernel escolhe o endereço de origem que pode chegar ao servidor do túnel.
  5. (Opcionalmente) Configure a opção de string-alvo sob o túnel grpc.

    1. Use a declaração de padrão para criar uma lista ordenada de opções suportadas.

    2. Use a declaração de string personalizada para definir uma string personalizada que é enviada quando o padrão de declaração contém custom como uma das opções.

    3. Use a declaração do delimiter quando mais de uma opção for selecionada no padrão. Por padrão, o (símbolo de | tubo) é usado.

Nota:

Um máximo de 10 servidores de túnel pode ser configurado.

Resultados

Exibir os resultados da configuração no dispositivo alvo. A saída reflete apenas a configuração funcional adicionada neste exemplo.

Tabela de histórico de mudanças

O suporte de recursos é determinado pela plataforma e versão que você está usando. Use o Feature Explorer para determinar se um recurso é suportado em sua plataforma.

Lançamento
Descrição
22.4R1
Começando com o Junos OS Release e o Junos OS Evolved Release 22.4R1, o JTI oferece suporte remoto para dial-out gRPC em roteadores da Série ACX, roteadores da Série MX, roteadores da Série PTX e switches da Série QFX.