Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Utilisation de la numérotation sortante gRPC pour la collecte sécurisée de la télémétrie

Comprendre la numérotation sortante gRPC

À partir de Junos OS version 22.4R1, JTI prend en charge la prise en charge de la numérotation sortante gRPC à distance sur les routeurs ACX Series, les routeurs MX Series, les routeurs PTX Series et les commutateurs QFX Series. Avec la numérotation gRPC, l’équipement cible (serveur) initie une session gRPC avec le collecteur (client). Lorsque la session est établie, la cible transmet au collecteur les données de télémétrie spécifiées par l’abonnement du groupe de capteurs. Cette méthode contraste avec la méthode d’appel à distance de l’interface de gestion de réseau gRPC (gNMI), dans laquelle le collecteur établit une connexion à l’équipement cible.

La numérotation sortante gRPC simplifie les statistiques de télémétrie en continu. La configuration de l’équipement cible pour qu’il diffuse les statistiques et les exporte vers une adresse IP de collecteur supprime la charge d’accès imposée au collecteur (client). (voir Figure 1).

Figure 1 : numérotation sortante gRPC Dial-Out gRPC

La numérotation sortante gRPC offre plusieurs avantages par rapport à la numérotation entrante gRPC :

  • Réduit l’exposition de l’équipement cible aux menaces en dehors de sa topologie.

  • Simplifie l’accès à un équipement cible. La méthode d’appel entrant gRPC nécessite qu’un collecteur surmonte une série de configurations complexes de pare-feu pour accéder à l’équipement cible. Ce n’est pas le cas de la numérotation sortante gRPC.

  • Les collecteurs peuvent être sans état ; Sans avoir besoin de lancer une session, il leur suffit d’écouter, de s’abonner et de stocker les données collectées.

  • Prise en charge du chiffrement mutuel pour une sécurité renforcée.

Pour activer l’exportation des statistiques, incluez les export-profile instructions et sensor au niveau de la hiérarchie [edit services analytics]. Le profil d’exportation doit inclure le taux de rapport, le service de transport (par exemple, gRPC) et le format (par exemple, gbp-gnmi). La configuration du capteur doit inclure le nom du collecteur (nom du serveur), le nom du profil d’exportation et le chemin d’accès à la ressource. Un exemple de chemin d'accès aux ressources est /interfaces/interface[name='fxp0'.

Configuration d’une adresse IP source pour les connexions sortantes gRPC héritées

À partir de Junos OS Evolved version 24.2R1, JTI prend en charge la configuration d’une adresse IP source pour les connexions sortantes du service gRPC héritées sur les routeurs ACX Series, les routeurs PTX Series et les commutateurs QFX Series. Dans les versions antérieures qui prennent en charge la numérotation sortante gRPC héritée, l’adresse IP de l’interface sortante est utilisée comme adresse source sans possibilité de configuration d’une adresse IP source. Cette fonctionnalité prend en charge les déploiements FLEX, offrant la possibilité d'envoyer un appel sortant à partir de l'adresse IP ou de l'adresse d'interface spécifiée par le routeur (telle qu'une adresse loopback0).

Si vous ne configurez pas d’adresse locale, c’est l’adresse locale par défaut qui est utilisée.

Pour configurer une adresse locale :

  1. En mode configuration, allez au niveau de la [edit services analytics export-profile] hiérarchie et ajoutez le nom de votre profil d’export (ici ep1).
  2. Incluez l’instruction (ici, avec l’adresse local-address 2000:200::20IPv6 ).

    Vous ne pouvez utiliser une adresse IPv6 que pour les connexions sortantes gRPC héritées (type grpcde transport . Les adresses IPv6 ne sont pas prises en charge par le transport UDP. Si le transport UDP est configuré, une erreur s’affiche lorsque vous validez la configuration.

  3. Utilisez la commande de mode opérationnel suivante pour confirmer la configuration de l’adresse locale.

    Le fichier ep1 d’exportation indique l’adresse 2000:200::20 IPv6 comme adresse locale.

Configurer une instance de routage pour les connexions sortantes gRPC héritées

À partir de Junos OS Evolved version 24.2R1, JTI prend en charge la configuration d’une instance de routage pour les connexions sortantes du service gRPC héritées sur les routeurs ACX Series, les routeurs PTX Series et les commutateurs QFX Series.

Si vous ne configurez pas d’instance de routage, c’est l’instance de routage par défaut qui est utilisée.

Pour configurer une instance de routage :

  1. En mode configuration, allez au niveau de la [edit services analytics export-profile] hiérarchie et ajoutez le nom de votre profil d’export (ici ep1).
  2. Incluez l’instruction (ici, avec l’instance routing-instance mgmt-1de routage ).

    Vous ne pouvez configurer une instance de routage que pour les connexions sortantes gRPC héritées (type grpcde transport . Si le transport UDP est configuré, une erreur s’affiche lorsque vous validez la configuration.

  3. Utilisez la commande de mode opérationnel suivante pour confirmer la configuration de l’instance de routage.

    Le fichier ep1 d’exportation affiche l’instance de routage sous la forme mgmt-1.

Présentation des tunnels gRPC

Un tunnel gRPC agit comme un protocole client-serveur qui compose une session de la cible au client TCP via l’instance de routage par défaut ou l’instance de routage configurée. Si vous ne choisissez pas de configurer une instance de routage, le tunnel gRPC utilise l’instance de routage par défaut.

Vous pouvez configurer l’adresse source de chaque session de tunnel gRPC afin d’établir une connexion au serveur de tunnel. Si vous ne configurez pas l’adresse source, le noyau choisit l’adresse source qui peut atteindre le serveur de tunnel.

Pour plus d’informations sur les tunnels gRPC, reportez-vous à https://github.com/openconfig/grpctunnel.

Un tunnel gRPC comporte trois entités principales :

  • Cible : représente le périphérique réseau. La cible est un client gRPC.

  • Serveur de tunnel : entité logicielle qui est une application hors boîtier qui gère l’abonnement et les inscriptions cibles. Le serveur de tunnel est un serveur gRPC.

  • Client de tunnel : entité logicielle qui exécute les tâches client. Le client de tunnel peut être autonome au sein du serveur de tunnel. Le client de tunnel est également un client gRPC.

Avantages de l’utilisation d’une session de tunnel gRPC :

  • Résout une série de configurations de pare-feu complexes lorsque la connexion est établie côté serveur.

  • Accédez à diverses applications serveur TCP telles que gNMI-gNOI, SSH ou NETCONF-SSH sans aucune configuration opérationnelle.

Architecture de tunnel gRPC

Un tunnel gRPC est une infrastructure générique permettant aux applications basées sur TCP de communiquer dans les messages gRPC.

En général, le client TCP établit une connexion au serveur ou à la cible TCP. Les équipements Junos agissent en tant que cible et exécutent des applications serveur TCP telles que gNMI-gNOI, SSH et NETCONF-SSH. Si un client ne parvient pas à atteindre le serveur, les raisons courantes peuvent être les suivantes :

  • Le serveur se heurte à des configurations de pare-feu complexes qui empêchent les connexions entrantes.

  • Le serveur se heurte à un routeur implémentant la traduction d’adresses réseau (NAT).

  • Le serveur répond à toutes les autres exigences opérationnelles, ce qui empêche les connexions extérieures.

Lorsqu’un client TCP n’est pas en mesure d’atteindre une cible, vous pouvez configurer une session de tunnel gRPC afin d’établir une connexion entre le client TCP et la cible. Une session de tunnel gRPC établit une connexion dans le sens inverse de l’appel d’une cible à un client TCP.

Pour utiliser une session de tunnel gRPC, un client de tunnel est ajouté au côté cible où le processus grpc-tunnel s’exécute et toutes les configurations liées au tunnel gRPC sont effectuées. Côté client TCP, un serveur de tunnel est ajouté.

Vous devez inclure l’instruction grpc-tunnel de configuration dans la hiérarchie [edit system services] pour configurer une session de tunnel gRPC.

Sécurité des tunnels gRPC

Le tunnel gRPC est un modèle d’appel sortant dans lequel un périphérique établit une connexion en fonction de la configuration. Le tunnel gRPC se trouve sur un canal gRPC sécurisé qui utilise des certificats TLS.

Exemple : Configuration d’un tunnel gRPC

Aperçu

Cette section couvre les étapes nécessaires à la configuration de la cible pour cet exemple. L’accent est mis sur la cible, car il s’agit du périphérique Junos sur lequel le tunnel gRPC est configuré.

Exigences

Cet exemple utilise les composants logiciels et matériels suivants :

  • Junos OS ou Junos Evolved version 22.4 ou ultérieure pour les équipements de routage et de commutation

  • Un équipement hôte en tant que client de tunnel

  • Un équipement hôte en tant que serveur de tunnel

Topologie

La figure 1 illustre la topologie utilisée dans cet exemple.

Figure 2 : configuration du gRPC tunnel setup tunnel gRPC

En fonction de la configuration Junos de l’équipement cible, il compose un tunnel grpc vers le serveur de tunnel. L’équipement cible s’enregistre auprès du serveur de tunnel via le RPC de flux d’enregistrement.

Lorsqu’un client demande une session TCP à une cible spécifique, le serveur de tunnel agit en tant qu’intermédiaire et se connecte à la session cible enregistrée ci-dessus sur le serveur de tunnel.

Si la cible prend en charge le type de cible demandé, l’appareil compose un nouveau tunnel appelé RPC de flux de tunnel. Cela permet d’établir un tunnel gRPC entre le client et la cible via le serveur de tunnel. Le client de tunnel peut maintenant accéder aux applications TCP prévues sur la cible.

Note:

Il ne peut y avoir qu’un seul flux d’enregistrement entre un serveur de tunnel et le périphérique réseau, mais plusieurs flux de tunnel pour la même paire.

Configurer un tunnel gRPC

Configuration rapide de l’interface de ligne de commande

Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à la configuration de votre réseau, puis copiez et collez les commandes dans l’interface de ligne de commande au niveau de la hiérarchie [modifier].

Procédure étape par étape

Procédez comme suit pour configurer le tunnel gRPC sur l’équipement cible.

  1. Configurez les serveurs sous gRPC-tunnel.

    1. Configurez l’adresse ou le nom d’hôte IPv4 ou IPv6 du serveur de tunnel.

    2. Configurez le numéro de port par lequel le serveur de tunnel écoute.

    3. Configurez les informations d’identification à l’aide de l’instruction tls .

    4. Spécifiez les applications cibles auxquelles vous souhaitez accéder. Les options disponibles sont ssh, netconf-ssh et gnmi-gnoi.

  2. (Facultatif) Définissez l’intervalle de nouvelle tentative (en secondes). Si le serveur de tunnel est inaccessible, l’équipement cible tente à nouveau de se connecter après l’intervalle de nouvelle tentative.

  3. (Facultatif)

    Définissez l’instance de routage. Si vous ne définissez pas l’instance de routage, le tunnel gRPC utilise l’instance de routage par défaut.
  4. (Facultatif)

    Définissez l’adresse source. Si vous ne définissez pas l’adresse source, le noyau choisit l’adresse source qui peut atteindre le serveur de tunnel.
  5. (Facultatif) Configurez l’option target-string-option sous grpc-tunnel.

    1. Utilisez l’instruction pattern pour créer une liste ordonnée d’options prises en charge.

    2. Utilisez l’instruction custom-string pour définir une chaîne personnalisée qui est envoyée lorsque le modèle d’instruction contient custom comme l’une des options.

    3. Utilisez l’instruction de délimiteur lorsque plusieurs options sont sélectionnées dans le modèle. Par défaut, le (symbole de | la barre verticale) est utilisé.

Note:

Un maximum de 10 serveurs de tunnel peuvent être configurés.

Résultats

Affichez les résultats de la configuration sur l’équipement cible. La sortie reflète uniquement la configuration fonctionnelle ajoutée dans cet exemple.

Tableau de l’historique des modifications

La prise en charge des fonctionnalités est déterminée par la plate-forme et la version que vous utilisez. Utilisez l’Explorateur de fonctionnalités pour déterminer si une fonctionnalité est prise en charge sur votre plateforme.

Libérer
Description
22.4R1
À partir de la version Junos OS et de la version 22.4R1 de Junos OS Evolved, JTI prend en charge la numérotation sortante gRPC à distance sur les routeurs ACX Series, les routeurs MX Series, les routeurs PTX Series et les commutateurs QFX Series.