Sessions NETCONF sur HTTPS sortant
RÉSUMÉ Les applications clientes peuvent établir des sessions NETCONF (Network Configuration Protocol) à l’aide de HTTPS sortant sur les équipements pris en charge exécutant Junos OS version 20.2.
Cette rubrique explique comment établir des sessions NETCONF à l’aide de HTTPS sortant sur les équipements exécutant Junos OS version 20.2. Pour plus d’informations sur l’établissement de sessions NETCONF et shell à l’aide d’un HTTPS sortant amélioré, consultez les sessions NETCONF et Shell sur HTTPS sortant amélioré.
Comprendre les sessions NETCONF sur https sortant
- Avantages des sessions NETCONF par rapport au HTTPS sortant
- Présentation des sessions NETCONF sur HTTPS sortant
- Flux de travail de connexion pour les sessions sur HTTPS sortant
Avantages des sessions NETCONF par rapport au HTTPS sortant
-
Activez les applications clientes NETCONF pour gérer les équipements qui ne sont pas accessibles via d’autres protocoles.
-
Activez la gestion à distance des équipements à l’aide de l’authentification basée sur des certificats pour le client HTTPS sortant.
Présentation des sessions NETCONF sur HTTPS sortant
Vous pouvez établir des sessions NETCONF sur https sortant entre les équipements Junos pris en charge et un système de gestion du réseau. Une session NETCONF sur HTTPS sortant vous permet de gérer à distance des équipements qui pourraient ne pas être accessibles via d’autres protocoles tels que SSH. Cela peut se produire, par exemple, si l’équipement se trouve derrière un pare-feu et que le pare-feu ou un autre outil de sécurité bloque ces protocoles. Https, d’autre part, utilise un port standard, qui est généralement autorisé en sortie dans la plupart des environnements.
Sur les équipements pris en charge, Junos OS inclut une application Juniper Extension Toolkit (JET) qui prend en charge l’établissement d’une session NETCONF à l’aide de HTTPS sortant. L’application JET utilise l’infrastructure gRPC pour se connecter au client HTTPS sortant, qui se compose d’un serveur gRPC s’exécutant sur le système de gestion du réseau. gRPC est une infrastructure RPC (Remote Procedure Call) indépendante du langage et open source. La figure 1 illustre la configuration HTTPS sortante dans sa forme la plus simple.

Dans ce scénario, le serveur gRPC agit comme le client NETCONF, et l’application JET est le client gRPC et le serveur NETCONF. Le serveur gRPC écoute les demandes de connexion sur le port spécifié, qui est par défaut le port 443. Vous configurez l’application JET en tant que service d’extension. Les informations de connexion et d’authentification pertinentes sont transmises au script. Pendant l’exécution du script, il tente automatiquement de se connecter au serveur gRPC sur l’hôte et le port configurés.
L’application JET et le serveur gRPC établissent une connexion HTTPS persistante sur une session gRPC chiffrée TLS. L’application JET authentifie le serveur gRPC à l’aide d’un certificat numérique X.509, et si l’authentification est réussie, la session NETCONF demandée est établie sur cette connexion. Les opérations NETCONF s’exécutent sous les privilèges de compte de l’utilisateur configuré pour l’application de service d’extension.
La connexion HTTPS sortante utilise un certificat numérique X.509 pour authentifier le serveur gRPC. Un certificat numérique est un moyen électronique de vérifier votre identité par l’intermédiaire d’un tiers de confiance, connu sous le nom d’autorité de certification ou d’autorité de certification (CA). Une autorité de certification émet des certificats numériques, qui peuvent être utilisés pour établir une connexion sécurisée entre deux points de terminaison par le biais de la validation de certificat. La norme X.509 définit le format du certificat. Pour établir une session NETCONF sur https sortant sur les équipements Junos pris en charge, le serveur gRPC doit disposer d’un certificat X.509 valide.
La fonctionnalité HTTPS sortante de base permet de se connecter à un seul client HTTPS sortant et de configurer un serveur gRPC pour ce client. L’authentification du serveur doit utiliser un certificat X.509 autosigné. Vous pouvez établir une session NETCONF unique sur la connexion.
Flux de travail de connexion pour les sessions sur HTTPS sortant
Dans une session NETCONF sur HTTPS sortant, le serveur gRPC s’exécutant sur le système de gestion du réseau agit comme le client NETCONF, et l’application JET sur l’équipement Junos est le client gRPC et le serveur NETCONF.
Le client et le serveur gRPC effectuent les actions suivantes pour établir une session NETCONF sur https sortant :
-
Le serveur gRPC écoute les connexions entrantes sur le port spécifié ou, si aucun port n’est spécifié, sur le port 443 par défaut.
-
Le client gRPC initie une connexion TCP/IP avec le serveur et le port gRPC configurés.
-
Le client gRPC envoie un message TLS
ClientHello
pour lancer la négociation TLS. -
Le serveur gRPC envoie un
ServerHello
message et son certificat. -
Le client gRPC vérifie l’identité du serveur gRPC.
-
La session NETCONF est établie.
-
Le serveur et le client échangent des messages NETCONF
<hello>
. -
L’application cliente NETCONF effectue des opérations selon les besoins.
Comment établir une session NETCONF sur https sortant
Vous pouvez utiliser l’application JET incluse dans l’image du logiciel Junos pour établir une session NETCONF sur https sortant entre un système de gestion du réseau (NMS) et les équipements Junos pris en charge. L’application JET, configurée en tant que service d’extension, lance une connexion à un serveur gRPC s’exécutant sur un NMS et établit une connexion HTTPS persistante sur une session gRPC chiffrée TLS. La session NETCONF s’exécute sur cette connexion HTTPS. Dans ce scénario, le serveur gRPC est le client NETCONF, et l’application JET est le client gRPC et le serveur NETCONF.
Les matériels et logiciels suivants sont nécessaires pour établir une session NETCONF sur https sortant :
-
Système de gestion du réseau exécutant Python 3.5 ou version ultérieure
-
Équipement exécutant Junos OS avec la version 20.2 de FreeBSD mise à niveau qui prend également en charge l’exécution des applications JET
Note:Pour les équipements pris en charge, consultez les sessions NETCONF de l’Explorateur de fonctionnalités sur HTTPS sortant.
La figure 2 illustre la configuration référencée dans les tâches suivantes.

Avant que le client et le serveur puissent établir une session NETCONF sur https sortant, vous devez satisfaire aux exigences décrites dans les sections suivantes :
- Obtenir un certificat X.509 pour le serveur gRPC
- Configurer le serveur gRPC
- Configurer le compte utilisateur pour l’utilisateur NETCONF
- Configurer le client HTTPS sortant
- Configurer le service d’extension HTTPS sortant sur les équipements Junos
- Démarrer la session NETCONF
Obtenir un certificat X.509 pour le serveur gRPC
La connexion HTTPS sortante utilise un certificat de clé publique X.509 pour authentifier l’identité du serveur gRPC s’exécutant sur le système de gestion du réseau. La pile gRPC prend en charge le format de certificat X.509 v3.
Les exigences du certificat du serveur gRPC sont les suivants :
-
Le certificat doit être auto-signé.
-
Le certificat doit définir soit le nom d’hôte du serveur gRPC dans le champ Nom commun (CN), soit l’adresse IP du serveur gRPC dans le champ SubjectAltName (SAN) ADRESSE IP. L’équipement Junos doit utiliser la même valeur pour établir la connexion au serveur. Si le certificat définit le champ SubjectAltName IP Address (Adresse IP SubjectAltName), l’équipement ignore le champ Common Name (Nom commun) lors de l’authentification.
-
Le certificat doit être encodé PEM et utiliser une extension .crt .
-
Le certificat et sa clé doivent être nommés serveur.crt et server.key, respectivement.
Pour utiliser OpenSSL pour obtenir un certificat :
Configurer le serveur gRPC
Le système de gestion du réseau nécessite les logiciels suivants :
-
Python 3.5 ou version ultérieure
Le système de gestion du réseau et l’application JET sur l’équipement Junos utilisent l’infrastructure gRPC pour établir une connexion HTTPS persistante sur une session gRPC chiffrée par TLS. La pile gRPC doit être installée dans le système de gestion du réseau et exécuter un serveur gRPC qui écoute la demande de connexion sur le port spécifié. Juniper Networks fournit les fichiers de définition proto nécessaires et des exemples de fichiers d’application serveur gRPC dans le référentiel Juniper Networks netconf-https-outbound
sur GitHub.
Cette section configure le serveur gRPC sur un système de gestion du réseau exécutant Ubuntu 18.04. Si vous exécutez un autre système d’exploitation, utilisez les commandes adaptées à votre système d’exploitation.
Pour configurer le serveur gRPC sur un système de gestion du réseau exécutant Ubuntu 18.04 :
Le serveur gRPC écoute indéfiniment le port spécifié pour les connexions entrantes. Une fois que vous avez configuré l’équipement Junos pour qu’il se connecte au serveur gRPC et qu’une connexion et une session sont établies, vous pouvez effectuer des opérations NETCONF selon le cas.
Configurer le compte utilisateur pour l’utilisateur NETCONF
Pour établir une session NETCONF sur https sortant, vous devez créer un compte utilisateur localement sur l’équipement Junos. Vous utilisez ce compte pour effectuer les opérations NETCONF sur l’équipement pour cette session. L’application JET s’exécute à l’aide des autorisations configurées pour ce compte.
Pour créer un compte utilisateur sur un équipement Junos :
Configurer le client HTTPS sortant
L’application JET ne peut se connecter qu’à un seul client HTTPS sortant. Vous configurez les informations de connexion et d’authentification du client en tant qu’arguments de ligne de commande pour le script JET. Le tableau 1 présente les arguments.
Argument |
Valeur |
---|---|
|
Nom d’hôte ou adresse IPv4 du serveur gRPC auquel l’application JET se connecte. La valeur de l’argument doit correspondre au nom de l’hôte dans le champ Nom commun (CN) ou à l’adresse IP du champ SubjectAltName dans le certificat du serveur gRPC. |
|
(Facultatif) Port sur lequel l’application JET tente de se connecter au serveur gRPC. Omettez cet argument pour utiliser le port 443 par défaut. |
|
(Facultatif) Le contenu du certificat du serveur gRPC entre les lignes et Vous pouvez omettre cet argument si vous copiez le certificat dans le répertoire /var/db/scripts/jet sur l’équipement. Vous devez copier le certificat sur l’équipement pour les tailles de clé supérieures à 4096 bits. |
Avant de commencer, vous aurez besoin des valeurs pour les arguments de script, notamment :
-
Port sur lequel le serveur gRPC écoute les connexions.
-
Le contenu du champ SubjectAltName IP Address ou, s’il n’y a pas de tel champ, le contenu du champ Common Name (CN) dans le certificat du serveur gRPC.
-
Le contenu du certificat du serveur gRPC entre
-----BEGIN CERTIFICATE-----
et-----END CERTIFICATE-----
, en omettant toute nouvelle ligne. Ces informations sont uniquement requises lorsque vous configurez le contenu du certificat en tant qu’argument de script au lieu de copier le certificat sur l’équipement exécutant Junos OS.
Pour configurer le client HTTPS sortant :
Configurer le service d’extension HTTPS sortant sur les équipements Junos
Les versions Junos qui prennent en charge les sessions NETCONF sur https sortant comprennent une application JET et des fichiers de support dans l’image du logiciel. Le tableau 2 présente les fichiers situés dans le répertoire /var/db/scripts/jet sur l’équipement.
Fichiers |
Description |
---|---|
nc_grpc_app.py |
Application JET qui utilise l’infrastructure gRPC pour établir une connexion HTTPS persistante avec un serveur gRPC s’exécutant sur le système de gestion du réseau. |
nc_grpc_pb2.py nc_grpc_pb2_grpc.py |
Bibliothèques requises |
Pour configurer l’équipement Junos pour les sessions sur HTTPS sortant :
Une fois l’application lancée, elle enregistre les messages dans le fichier outbound_https.log .
Si l’application ne démarre pas automatiquement après la validation de la configuration, consultez les messages de journal liés à cette application pour résoudre le problème. Dans Junos OS, émettez la show log jet.log
commande.
Démarrer la session NETCONF
Le serveur gRPC s’exécutant sur le système de gestion du réseau agit comme le client NETCONF, tandis que l’application JET sur l’équipement Junos agit comme le client gRPC et le serveur NETCONF. Après avoir démarré le serveur gRPC et l’application JET, l’application JET tente de se connecter au serveur gRPC sur le port spécifié. Si la connexion est réussie, le client gRPC authentifie le serveur gRPC. Si l’authentification du serveur est réussie, la session NETCONF démarre automatiquement.
Pour établir une session NETCONF sur https sortant :