Comprendre les modules Junos YANG
Juniper Networks publie le schéma pour les équipements Junos à l’aide des modèles YANG pour les données de configuration et d’état opérationnel, les commandes opérationnelles et les extensions Junos. Les sections suivantes traitent des modules Junos YANG natifs.
Présentation des modules YANG Junos
Juniper Networks fournit des modules YANG qui définissent les hiérarchies de configuration, les commandes opérationnelles et les données d’état, ainsi que les extensions et les types YANG, pour les équipements exécutant Junos OS et les équipements exécutant Junos OS Evolved. À partir de Junos OS version 17.2, les modules YANG sont spécifiques à une famille de périphériques. Le tableau 1 présente les identificateurs des différentes familles d’appareils et indique les plates-formes incluses dans chaque famille. À partir de Junos OS Evolved version 23.4R2, toutes les plates-formes Junos OS Evolved utilisent l’identificateur de famille de junos
périphériques.
Identificateur de la famille d’appareils |
Plates-formes Junos OS |
Plates-formes Junos OS Evolved |
---|---|---|
Junos |
ACX Series |
ACX Series |
junos-es |
Série J |
– |
junos-ex |
EX Series (certaines plates-formes) |
– |
Junos-QFX |
QFX Series |
QFX Series (23.2 et versions antérieures) |
Différentes plates-formes au sein d’une même série peuvent être classées dans différentes familles d’appareils. Sur les équipements exécutant Junos OS Evolved version 23.4R1 et antérieure et les équipements exécutant Junos OS, vous pouvez vérifier la famille d’un périphérique spécifique en exécutant la show system information
commande du mode opérationnel ou le <get-system-information/>
RPC sur le périphérique. La valeur du champ dans la sortie de la commande ou de l’élément <os-name>
dans la réponse RPC indique la famille de Family
périphériques.
À partir de Junos OS version 17.4R1, le module YANG de configuration est scindé en un module racine auquel s’ajoutent plusieurs modules plus petits. De plus, les modules Junos YANG natifs utilisent une nouvelle convention de nommage pour le nom, le nom de fichier et l'espace de noms du module. Le nom du module et le nom de fichier incluent la famille de périphériques et la zone de la hiérarchie de configuration ou de commande à laquelle appartient le schéma du module. Le nom de fichier du module inclut également une date de révision. Le Tableau 2 récapitule les modules YANG natifs des équipements Junos et identifie la version dans laquelle les différents noms de modules sont utilisés.
Les modules qui ne nécessitent pas de schémas spécifiques à la famille et qui sont communs à toutes les plates-formes utilisent la junos
famille de périphériques pour le nom, le nom de fichier et l'espace de noms du module.
Junos YANG Module |
Description |
Nom du module |
Versions |
---|---|---|---|
Modules de configuration |
Définissez le schéma de la hiérarchie de configuration Junos. À partir de Junos OS version 17.4R1, le module YANG de configuration est scindé en un module racine (family-conf-root) complété par plusieurs modules plus petits. |
|
14.2 à 17.3 |
|
17.4R1 et versions ultérieures |
||
Modules de commande opérationnelle |
Représente la hiérarchie des commandes opérationnelles et le groupe collectif de modules qui définissent les appels de procédure à distance (RPC) pour les commandes en mode opérationnel. Il existe des modules séparés pour les différentes zones de la hiérarchie des commandes. |
|
16.1 à 17.3 |
|
17.4R1 et versions ultérieures |
||
junos-state Modules d’état |
Ensemble organisé de modules YANG pour les données d’état opérationnel. | junos-state-area |
22.2R1 et versions ultérieures |
|
Définissez les modèles de données YANG pour l’état opérationnel. Les modèles exposent un sous-ensemble de données de commande show via le RPC gNMI |
|
24.2R1 et versions ultérieures (Junos OS Evolved) |
Module d’extensions DDL |
Contient des instructions DDL (Data Definition Language) pour les équipements Junos. Ce module inclut les |
|
15.1 à 17.3 |
|
17.4R1 et versions ultérieures |
||
Module d’extensions ODL |
Contient des instructions ODL (Output Definition Language) qui peuvent être utilisées pour créer et personnaliser une sortie ASCII formatée pour les RPC exécutés sur les équipements Junos. |
|
16.1 à 17.3 |
|
17.4R1 et versions ultérieures |
||
Module d’extensions d’annotations de métadonnées |
Définit les annotations de métadonnées pour les opérations de configuration. Les annotations sont définies dans la RFC 7952, Définition et utilisation des métadonnées avec YANG. |
junos-configuration-metadata |
22.2R1 et versions ultérieures (Junos OS Evolved) |
Module Types |
Contient des définitions pour les types YANG. |
|
17.4R1 et versions ultérieures |
Pour prendre en charge les modules YANG pour différentes familles de périphériques dans différentes versions, les modules téléchargés sont organisés par famille de périphériques, et le nom, le nom de fichier et l’espace de noms de chaque module reflètent la famille de périphériques à laquelle appartient le schéma du module.
Pour plus d’informations sur l’obtention des modules, reportez-vous à la section Téléchargement et génération de modules Junos YANG.
Pour plus d’informations sur les espaces de noms de module, reportez-vous à la section Présentation des espaces de noms et des préfixes des modules Junos YANG.
Télécharger et générer des modules Junos YANG
Vous pouvez récupérer les modules Junos OS et Junos OS Evolved YANG en :
-
Téléchargement des modules sur le site Juniper Networks à l’adresse https://www.juniper.net/support/downloads
-
Téléchargement des modules depuis le dépôt GitHub Juniper/yang
-
Génération des modules sur un équipement Juniper Networks
À partir de la version 23.4R1 de Junos OS Evolved, nous publions les modules Yang natifs de Junos OS Evolved sur le site de téléchargement de Juniper Networks et sur GitHub. Dans les versions antérieures, vous devez générer les modules sur l’appareil.
Dans Junos OS version 17.1 et antérieure, les modules YANG pour la configuration de Junos OS et les hiérarchies de commandes qui sont publiés sur le site Web de Juniper Networks et dans GitHub définissent le schéma pour tous les périphériques exécutant cette version de Junos OS. En revanche, les modules YANG générés sur l’appareil local définissent le schéma spécifique à cet appareil. Le schéma spécifique à l’appareil inclut les nœuds à la fois des modules natifs et de tous les modules standard ou personnalisés qui ont été ajoutés à l’appareil.
À partir de Junos OS version 17.2, les modules Junos YANG sont spécifiques à une famille de périphériques et l’espace de noms de chaque module reflète la famille de périphériques à laquelle appartient le schéma du module. Par conséquent, le package de téléchargement et le référentiel GitHub incluent un répertoire distinct pour les modules de chaque famille d’appareils et un répertoire commun pour les modules communs à toutes les familles d’appareils. Chaque répertoire spécifique à une famille utilise son identificateur de famille de périphériques comme nom de répertoire et contient les modules de configuration et de commande opérationnelle qui sont pris en charge sur les plates-formes de cette famille. Les identificateurs de la famille d’appareils sont définis dans le Tableau 1. Les modules YANG générés sur un équipement local exécutant Junos OS version 17.2 définissent toujours le schéma spécifique à cet équipement.
À partir de Junos OS version 17.4R1, les modules YANG générés sur un périphérique local contiennent par défaut des schémas spécifiques à la famille, identiques sur tous les périphériques de la famille de périphériques donnée. Pour générer des modules spécifiques à l’appareil, configurez l’instruction de device-specific
configuration au niveau de la [edit system services netconf yang-modules]
hiérarchie.
Le Tableau 3 récapitule l’étendue du schéma dans les modules YANG téléchargés et générés pour différentes versions de Junos OS.
Version de Junos OS |
Portée du schéma dans les modules téléchargés |
Portée du schéma dans les modules générés |
---|---|---|
17.1 et versions antérieures |
Tous les appareils |
Appareil |
17.2 à 17.3 |
Famille d’appareils |
Appareil |
17.4R1 et versions ultérieures |
Famille d’appareils |
Famille d’appareils |
À partir de Junos OS Evolved version 23.4R1, nous publions les modules YANG de Junos OS Evolved sur le site de téléchargement Juniper Networks et sur GitHub. Dans les versions antérieures, vous devez générer les modules sur l’appareil.
En outre, à partir de Junos OS version 23.4R1 et Junos OS evolved version 23.4R1, nous fournissons tous les modèles de données YANG pour un système d’exploitation et une version donnés dans un package de téléchargement unique et un dossier de référentiel GitHub. Le dossier du package et du référentiel comprend :
-
Modèles de données de configuration, d’état et RPC natifs
-
Configuration OpenConfig et modèles d’état pris en charge par le système d’exploitation
-
Modèles IETF pris en charge par ce système d’exploitation
Pour plus d’informations sur le téléchargement ou la génération des modules YANG de Junos OS, consultez Utiliser les modules YANG de Juniper Networks.
Présentation des espaces de noms et des préfixes des modules Junos YANG
Dans Junos OS version 17.1 et antérieure, les modules Junos YANG utilisent un identificateur unique pour différencier l’espace de noms de chaque module.
namespace "http://yang.juniper.net/yang/1.1/module-id;
À partir de Junos OS version 17.2R1, les modules Junos YANG sont spécifiques à une famille de périphériques. Pour prendre en charge des modules YANG distincts pour différentes familles de périphériques dans une version donnée, les modules YANG utilisent un espace de noms qui inclut le nom du module, la famille de périphériques et la chaîne de version Junos OS, en plus de l’identifiant. Par exemple:
namespace "http://yang.juniper.net/yang/1.1/module-id/module-name/device-family/release";
À partir de Junos OS version 17.4R1, l’espace de noms est simplifié pour inclure la famille de périphériques, le type de module et un identificateur unique à chaque module qui différencie l’espace de noms du module de celui des autres modules.
namespace "http://yang.juniper.net/device-family/type/identifier";
Les définitions suivantes s’appliquent à toutes les versions de l’espace de noms dans lequel cette variable apparaît :
device-family |
Identificateur de la famille d’appareils à laquelle appartient le schéma du module, par exemple, Les modules avec des schémas spécifiques à l’appareil et les modules avec des schémas spécifiques à la famille utilisent tous deux le même identificateur de famille d’appareils dans l’espace de noms.
Note:
Les modules communs utilisent l’identificateur de famille de |
identifier |
Chaîne qui différencie l’espace de noms du module de celui des autres modules. Les modules de configuration et de commande Junos incluent un identificateur qui indique la zone de la hiérarchie de configuration ou de commande à laquelle appartient le schéma du module. |
module-id |
Identificateur unique spécifique au module, par exemple, |
module-name |
Nom du module YANG inclus dans ce fichier, par exemple, |
release |
Version de Junos OS ou Junos OS Evolved dans laquelle le schéma de ce module est pris en charge. |
type |
Type du module. Les valeurs possibles sont les suivantes :
|
Le Tableau 4 présente l’URI et le préfixe de l’espace de noms de chaque module (tels que définis par l’instruction du prefix
module) dans les différentes versions. À partir de Junos OS version 17.2, le préfixe de chaque module de commande opérationnelle reflète la zone hiérarchique des commandes RPC incluses dans ce module. De même, à partir de Junos OS version 17.4R1, le préfixe de chaque module YANG de configuration reflète la hiérarchie des instructions de configuration incluse dans ce module. Les modules d’extension et de type Junos YANG utilisent l’identificateur de famille de junos
périphériques dans l’espace de noms, mais les modules sont communs à toutes les familles de périphériques.
YANG Module |
Libérer |
URI de l’espace de noms |
Préfixe |
---|---|---|---|
Modules de configuration |
17.1 et versions antérieures |
http://yang.juniper.net/yang/1.1/jc |
|
17.2 à 17.3 |
http://yang.juniper.net/yang/1.1/jc/configuration/device-family/release |
|
|
17.4R1 et versions ultérieures |
http://yang.juniper.net/device-family/conf/hierarchy |
|
|
Modules de commande opérationnelle |
17.1 et versions antérieures |
http://yang.juniper.net/yang/1.1/jrpc |
|
17.2 à 17.3 |
http://yang.juniper.net/yang/1.1/jrpc/module-name/device-family/release |
hierarchy |
|
17.4R1 et versions ultérieures |
http://yang.juniper.net/device-family/rpc/hierarchy |
hierarchy |
|
junos-state Modules d’état |
22.2R1 et versions ultérieures | http://yang.juniper.net/junos/state/state-area |
js-area |
|
24.2R1 et versions ultérieures |
|
|
Module d’extensions DDL |
17.1 et versions antérieures |
http://yang.juniper.net/yang/1.1/je/ |
|
17.2 et versions ultérieures |
http://yang.juniper.net/yang/1.1/je/junos-extension/junos/release |
|
|
17.4R1 et versions ultérieures |
http://yang.juniper.net/junos/common/ddl-extensions |
|
|
Module d’extensions ODL |
17.1 et versions antérieures |
http://yang.juniper.net/yang/1.1/jodl |
|
17.2 à 17.3 |
http://yang.juniper.net/yang/1.1/jodl/junos-extension-odl/junos/release |
|
|
17.4R1 et versions ultérieures |
http://yang.juniper.net/junos/common/odl-extensions |
|
|
Module d’extensions d’annotations de métadonnées |
22.2R1 et versions ultérieures |
http://yang.juniper.net/junos/jcmd |
jcmd |
Module Types |
17.4R1 et versions ultérieures |
http://yang.juniper.net/junos/common/types |
|
À partir de Junos OS version 17.2, lorsque vous configurez l’instruction rfc-compliant
au niveau de la [edit system services netconf]
hiérarchie et demandez des données de configuration dans une session NETCONF, le serveur définit l’espace de noms par défaut de l’élément <configuration>
sur le même espace de noms que dans le modèle YANG correspondant. Par exemple:
<rpc> <get-config> <source> <running/> </source> </get-config> </rpc> ]]>]]> <nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/17.2R1/junos"> <nc:data> <configuration xmlns="http://yang.juniper.net/yang/1.1/jc/configuration/junos/17.2R1.13" junos:commit-seconds="1493761452" junos:commit-localtime="2017-05-02 14:44:12 PDT" junos:commit-user="user"> ... </configuration> </nc:data> </nc:rpc-reply> ]]>]]>
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.
junos
famille de périphériques au lieu de
junos-qfx
.
junos:command
dans les schémas émis avec des extensions.