Spécification du format de sortie des groupes de configuration et des plages d’interfaces à l’aide du protocole XML Junos
L’élément <groups>
tag correspond à la hiérarchie de [edit groups]
configuration. Il contient des éléments de balise représentant des groupes de configuration, chacun contenant un ensemble d’instructions de configuration appropriées à plusieurs emplacements dans la hiérarchie. L’instruction de configuration ou <apply-groups>
l’élément tag permet d’insérer un groupe de configuration à l’emplacement approprié, ce qui produit le même effet que l’insertion apply-groups
directe des instructions définies dans le groupe. La section de la hiérarchie de configuration à laquelle un groupe de configuration est appliqué est censée hériter des instructions du groupe.
Outre les groupes définis au niveau hiérarchique, Junos [edit groups]
OS prédéfinit un groupe appelé junos-defaults
. Ce groupe comprend les instructions de configuration jugées appropriées pour les opérations de base sur toute plate-forme de routage, de commutation ou de sécurité. Par défaut, les instructions de ce groupe n’apparaissent pas dans la sortie des commandes CLI qui affichent la configuration, ni dans la sortie renvoyée par le serveur de protocole XML Junos pour l’élément <get-configuration>
tag. Pour plus d’informations sur les groupes de configuration définis par l’utilisateur et le groupe, reportez-vous au Guide de l’utilisateur de l’interfacejunos-defaults
de ligne de commande.
L’élément <interface-range>
tag correspond à la hiérarchie de [edit interfaces interface-range]
configuration. Une plage d’interfaces est un ensemble d’interfaces auquel vous pouvez appliquer un profil de configuration commun. Si une interface est membre d’une plage d’interfaces, elle hérite des instructions de configuration définies pour cette plage.
Les sections suivantes expliquent comment afficher des groupes et des configurations de plages d’interfaces au sein de leurs éléments hérités dans les données de configuration demandées via une session de protocole XML Junos. Les sections expliquent également comment afficher le groupe source ou la plage d’interfaces pour les éléments de configuration hérités d’un groupe ou d’une plage d’interfaces.
Spécification si les groupes de configuration et les plages d’interfaces sont hérités ou affichés séparément
Par défaut, le serveur de protocole XML Junos affiche l’élément tag pour chaque groupe de configuration défini par l’utilisateur en tant qu’enfant de l’élément tag, au lieu de l’afficher <groups>
en tant qu’enfants des éléments auxquels il est appliqué. De même, le serveur affiche les éléments de balise pour chaque plage d’interface définie par l’utilisateur en tant qu’enfant de l’élément <interface-range>
de balise, au lieu de les afficher en tant qu’enfants des éléments membres de la plage d’interface. Ce mode d’affichage correspond au comportement par défaut de la commande du mode show
de configuration CLI, qui s’affiche [edit groups]
et [edit interfaces interface-range]
sous forme de hiérarchies distinctes dans la configuration.
Pour demander au serveur de protocole XML Junos de ne pas afficher les éléments , ou séparément, mais d’inclure des éléments de balise hérités de groupes ou <interface-range>
de plages d’interface définis par l’utilisateur dans les <groups>
éléments de balise héritiers, <apply-groups>
une application cliente inclut l’attribut inherit="inherit"
dans la <get-configuration>
balise. Il entoure la demande dans un <rpc>
élément de balise :
<rpc> <get-configuration inherit="inherit"/> <!-- OR --> <get-configuration inherit="inherit"> <!-- tag elements for the configuration elements to return --> </get-configuration> </rpc>
Pour demander au serveur de protocole XML Junos d’inclure des éléments de balise hérités du groupe, ainsi que des groupes de configuration et des plages d’interfaces définis par l’utilisateur, l’application cliente inclut l’attribut junos-defaults
inherit="defaults"
dans la <get-configuration>
balise.
<rpc> <get-configuration inherit="defaults"/> <!-- OR --> <get-configuration inherit="defaults"> <!-- tag elements for the configuration elements to return --> </get-configuration> </rpc>
Pour plus d’informations sur les éléments de balise à inclure dans l’élément tag, reportez-vous à la section Spécification de l’étendue des données de configuration à renvoyer dans une session de protocole XML Junos.<get-configuration>
Lorsque le client inclut l’attribut inherit="inherit"
, la sortie inclut les mêmes informations que la sortie de la commande de mode de configuration CLI suivante. La sortie n’inclut pas les éléments de configuration hérités junos-defaults
du groupe.
user@host# show | display inheritance | except ##
Lorsque le client inclut l’attribut inherit="defaults"
, la sortie inclut les mêmes informations que la sortie de la commande de mode de configuration CLI suivante :
user@host# show | display inheritance defaults | except ##
Dans les deux cas, le serveur de protocole XML Junos entoure sa sortie dans l’élément tag et dans l’un des éléments de balise suivants en fonction du format demandé : l’élément tag (pour la sortie balisée XML Junos), l’élément tag (pour la sortie ASCII formatée), l’élément tag (pour les commandes définies en mode de configuration) ou l’élément <rpc-reply>
<configuration-set>
<configuration>
<configuration-text>
tag (pour les <configuration-json>
données au format JSON). Pour plus d’informations sur les attributs de la balise d’ouverture, voir Spécification de la source des demandes d’informations de configuration dans une session Junos XML Protocol.<configuration>
<rpc-reply xmlns:junos="URL"> <configuration attributes> <!-- Junos XML tag elements representing configuration elements --> </configuration> <!-- OR --> <configuration-text> <!-- formatted ASCII configuration statements --> </configuration-text> <!-- OR --> <configuration-set> <!-- configuration mode commands --> </configuration-set> <!-- OR --> <configuration-json> <!-- JSON-formatted configuration data --> </configuration-json> </rpc-reply>
L’attribut inherit
peut être combiné avec un ou plusieurs des attributs suivants dans la balise ou la <get-configuration/>
balise d’ouverture <get-configuration>
:
changed
, décrit dans Demande d’indicateurs de modification pour des éléments de configuration à l’aide du protocole XML Junosdatabase
, décrite dans Spécification de la source des demandes d’informations de configuration dans une session Junos XML Protocolformat
, décrit dans Spécification du format de sortie des données de configuration d’une session Junos XML Protocolgroups
, décrite dans Spécification du format de sortie pour les groupes de configuration et les plages d’interfaces à l’aide du protocole XML Junosinterface-ranges
, décrite dans Spécification du format de sortie pour les groupes de configuration et les plages d’interfaces à l’aide du protocole XML Junosjunos:key
, décrit dans Demande d’indicateurs d’identificateurs pour les éléments de configuration utilisant le protocole XML Junos.
L’application peut également inclure l’attribut inherit
après avoir demandé un indicateur d’identificateurs (comme décrit dans Demande d’indicateurs d’identificateurs pour des éléments de configuration à l’aide du protocole XML Junos).
Affichage du groupe source pour les éléments de groupe de configuration hérités
Pour demander au serveur de protocole XML Junos d’indiquer le groupe de configuration dont chaque élément de configuration est hérité, une application cliente combine l’attribut avec l’attribut inherit
de la groups="groups"
<get-configuration>
balise. Il entoure la demande dans un <rpc>
élément de balise :
<rpc> <get-configuration inherit="(defaults | inherit)" groups="groups"/> <!-- OR --> <get-configuration inherit="(defaults | inherit)" groups="groups"> <!-- tag elements indicating the configuration elements to return --> </get-configuration> </rpc>
Pour plus d’informations sur les éléments de balise à inclure dans l’élément tag, reportez-vous à la section Spécification de l’étendue des données de configuration à renvoyer dans une session de protocole XML Junos.<get-configuration>
Lorsque vous incluez à la fois les inherit
attributs et dans la demande, le serveur de protocole XML Junos affiche chaque élément du groupe de configuration dans son élément héritier, et groups="groups"
l’élément hérité inclut ensuite les informations qui indiquent le groupe source. Le format de la sortie détermine la façon dont les informations du groupe source sont affichées dans la configuration résultante.
Si la sortie est balisée avec des éléments de balise XML Junos (l’attribut est inclus ou l’attribut est omis), le serveur de protocole XML Junos inclut l’attribut dans les balises d’ouverture format="xml"
format
junos:group="source-group"
des éléments de configuration hérités des groupes de configuration. La réponse est placée dans <configuration>
des éléments de balise <rpc-reply>
.
<rpc-reply xmlns:junos="URL"> <configuration attributes> <!-- For each inherited element --> <!-- opening-tags-for-parents-of-the-element --> <inherited-element junos:group="source-group"> <inherited-child-of-inherited-element junos:group="source-group"> <!-- inherited-children-of-child junos:group="source-group" --> </inherited-child-of-inherited-element> </inherited-element> <!-- closing-tags-for-parents-of-the-element --> </configuration> </rpc-reply>
Si la sortie est du texte ASCII au format (l’attribut format="text"
est inclus), le serveur de protocole XML Junos insère trois lignes commentées avec les informations sur le groupe source immédiatement au-dessus de chaque élément hérité. La réponse est placée dans <configuration-text>
des éléments de balise <rpc-reply>
.
<rpc-reply xmlns:junos="URL"> <configuration-text> */ For each inherited element */ /* parent levels for the element */ ## ## 'inherited-element' was inherited from group 'source-group' ## inherited-element { ## ## 'inherited-child' was inherited from group 'source-group' ## inherited-child { ... child statements of inherited-child ... } } /* closing braces for parent levels of the element */ </configuration-text> </rpc-reply>
Si la sortie est au format JSON (l’attribut est inclus), le serveur de protocole XML Junos inclut l’attribut dans la liste d’attributs de l’élément format="json"
"junos:group" : "source-group"
hérité. La réponse est placée dans <configuration-json>
des éléments de balise <rpc-reply>
.
<rpc-reply xmlns:junos="URL"> <configuration-json> { "configuration" : { /* JSON objects for parent levels of the element */ "inherited-child" : { "@" : { "junos:group" : "source-group" }, "inherited-object" : [ { "@" : { "junos:group" : "source-group" }, "name" : "identifier" } ], "@inherited-statement" : { "junos:group" : "source-group" } } /* closing braces for parent levels of the element */ } } </configuration-json> </rpc-reply>
À partir de Junos OS version 16.1, les équipements exécutant Junos OS émettent des données de configuration au format JSON à l’aide d’une nouvelle implémentation par défaut pour la sérialisation. La nouvelle valeur par défaut utilise le symbole « @ » au lieu du nom de champ « attribut » pour indiquer un attribut.
Lorsque l’attribut est combiné à l’attribut groups="groups"
inherit="inherit"
, la sortie XML inclut les mêmes informations que la sortie de la commande de mode de configuration CLI suivante. La sortie n’inclut pas les éléments de configuration hérités junos-defaults
du groupe :
user@host# show | display inheritance | display xml groups
Lorsque l’attribut est combiné avec l’attribut groups="groups"
inherit="defaults"
, la sortie XML inclut les mêmes informations que la sortie de la commande de mode de configuration CLI suivante :
user@host# show | display inheritance defaults | display xml groups
Les inherit
attributs et groups
peuvent être combinés à un ou plusieurs des autres attributs suivants dans la balise ou la balise d’ouverture <get-configuration/>
<get-configuration>
:
changed
, décrit dans Demande d’indicateurs de modification pour des éléments de configuration à l’aide du protocole XML Junos.database
, décrit dans Spécification de la source des demandes d’informations de configuration dans une session Junos XML Protocol.format
, décrit dans Spécification du format de sortie des données de configuration dans une session Junos XML Protocol. L’application peut demander une sortie Junos XML, ASCII formatée ou JSON.interface-ranges
, décrit dans Spécification du format de sortie pour les groupes de configuration et les plages d’interfaces à l’aide du protocole XML Junos.junos:key
, décrit dans Demande d’indicateurs d’identificateurs pour les éléments de configuration utilisant le protocole XML Junos.
L’application peut également inclure les attributs et groups
après avoir demandé un indicateur d’identificateurs (comme décrit dans Demande d’indicateurs d’identificateurs pour des éléments de configuration à l’aideinherit
du protocole XML Junos).
Affichage de la plage d’interface source pour les éléments de configuration hérités
Pour demander au serveur de protocole XML Junos d’indiquer la plage d’interfaces dont chaque élément de configuration est hérité, une application cliente combine l’attribut avec l’attribut inherit
de la interface-ranges="interface-ranges"
<get-configuration>
balise. Il entoure la demande dans un <rpc>
élément de balise :
<rpc> <get-configuration inherit="inherit" interface-ranges="interface-ranges"/> <!-- OR --> <get-configuration inherit="inherit" interface-ranges="interface-ranges"> <!-- tag elements for the configuration elements to return --> </get-configuration> </rpc>
Pour plus d’informations sur les éléments de balise à inclure dans l’élément tag, reportez-vous à la section Spécification de l’étendue des données de configuration à renvoyer dans une session de protocole XML Junos.<get-configuration>
Lorsque vous incluez à la fois les inherit
attributs et dans la demande, le serveur de protocole XML Junos affiche chaque élément de configuration de plage d’interfaces dans son élément héritier, et interface-ranges="interface-ranges"
l’élément hérité inclut ensuite des informations qui indiquent la plage d’interfaces source. Le format de la sortie détermine la façon dont les informations de plage d’interface source sont affichées dans la configuration résultante.
Si la sortie est balisée avec des éléments de balise XML Junos (l’attribut est inclus ou l’attribut est omis), le serveur de protocole XML Junos inclut l’attribut dans les balises d’ouverture des éléments de configuration hérités d’une format="xml"
format
junos:interface-range="source-interface-range"
plage d’interface. La réponse est placée dans <configuration>
des éléments de balise <rpc-reply>
.
<rpc-reply xmlns:junos="URL"> <configuration attributes> <interfaces> <!-- For each inherited element --> <interface junos:interface-range="source-interface-range"> <inherited-element junos:interface-range="source-interface-range"> <inherited-child-of-inherited-element junos:interface-range="source-interface-range"> <!-- inherited-children-of-child junos:interface-range="source-interface-range" --> </inherited-child-of-inherited-element> </inherited-element> </interface> </interfaces> </configuration> </rpc-reply>
Si la sortie est du texte ASCII au format (l’attribut est inclus), le serveur de protocole XML Junos insère trois lignes commentées avec les informations sur la plage d’interface format="text"
source immédiatement au-dessus de chaque élément hérité. La réponse est placée dans <configuration-text>
des éléments de balise <rpc-reply>
.
<rpc-reply xmlns:junos="URL"> <configuration-text> interfaces { <!-- For each inherited element --> ## ## 'interface-name' was expanded from interface-range 'source-interface-range' ## interface-name { ## ## 'inherited-element' was expanded from interface-range 'source-interface-range' ## inherited-element { inherited-child { ... child statements of inherited-child ... } } } } </configuration-text> </rpc-reply>
Si la sortie est au format JSON (l’attribut est inclus), le serveur de protocole XML Junos inclut l’attribut dans la liste d’attributs de l’élément format="json"
"junos:interface-range" : "source-interface-range"
hérité. La réponse est placée dans <configuration-json>
des éléments de balise <rpc-reply>
.
<rpc-reply xmlns:junos="URL"> <configuration-json> { "configuration" : { /* JSON objects for parent levels of the element */ "inherited-child" : { "@" : { "junos:interface-range" : "source-interface-range" }, "inherited-object" : [ { "@" : { "junos:interface-range" : "source-interface-range" }, "name" : "identifier" } ], "@inherited-statement" : { "junos:interface-range" : "source-interface-range" } } /* closing braces for parent levels of the element */ } } </configuration-json> </rpc-reply>
À partir de Junos OS version 16.1, les équipements exécutant Junos OS émettent des données de configuration au format JSON à l’aide d’une nouvelle implémentation par défaut pour la sérialisation. La nouvelle valeur par défaut utilise le symbole « @ » au lieu du nom de champ « attribut » pour indiquer un attribut.
Lorsque l’attribut est combiné avec l’attribut interface-ranges="interface-ranges"
inherit="inherit"
, la sortie XML inclut les mêmes informations que la sortie de la commande de mode de configuration CLI suivante :
user@host# show | display inheritance | display xml interface-ranges
Les inherit
attributs et interface-ranges
peuvent être combinés à un ou plusieurs des autres attributs suivants dans la balise ou la balise d’ouverture <get-configuration/>
<get-configuration>
:
changed
, décrit dans Demande d’indicateurs de modification pour des éléments de configuration à l’aide du protocole XML Junos.database
, décrit dans Spécification de la source des demandes d’informations de configuration dans une session Junos XML Protocol.format
, décrit dans Spécification du format de sortie des données de configuration dans une session Junos XML Protocol. L’application peut demander une sortie Junos XML, ASCII formatée ou JSON.groups
, décrit dans Spécification du format de sortie pour les groupes de configuration et les plages d’interfaces à l’aide du protocole XML Junos.junos:key
, décrit dans Demande d’indicateurs d’identificateurs pour les éléments de configuration utilisant le protocole XML Junos.
L’application peut également inclure les attributs et interface-ranges
après avoir demandé un indicateur d’identificateurs (comme décrit dans Demande d’indicateurs d’identificateurs pour des éléments de configuration à l’aideinherit
du protocole XML Junos).
Exemples : spécification du format de sortie pour les groupes de configuration
L’exemple de hiérarchie de configuration suivant définit un groupe de configuration appelé interface-group
. L’instruction apply-groups
applique les instructions du groupe au niveau hiérarchique [edit interfaces]
:
[edit] groups { interface-group { interfaces { so-1/1/1 { encapsulation ppp; } } } } apply-groups interface-group; interfaces { fxp0 { unit 0 { family inet { address 192.168.4.207/24; } } } }
Lorsque l’attribut n’est pas inclus dans la balise, la <get-configuration/>
sortie inclut les éléments et <apply-groups>
tag <groups>
en tant qu’éléments inherit
distincts. L’élément <groups>
tag renferme les éléments tag définis dans le groupe de interface-group
configuration. Le placement de l’élément tag directement au-dessus de l’élément <apply-groups>
<interfaces>
tag indique que la [edit interfaces]
hiérarchie hérite des instructions définies dans le groupe de interface-group
configuration.

Lorsque l’attribut est inclus dans la <get-configuration/>
balise, l’élément inherit
<interfaces>
de balise renferme les éléments de balise définis dans le groupe de interface-group
configuration. Les <groups>
éléments de balise et <apply-groups>
ne sont pas affichés.

Lorsque l’attribut est combiné avec l’attribut de la <get-configuration/>
balise, l’élément de balise entoure les éléments de balise définis dans le groupe de interface-group
configuration, qui sont marqués avec l’attribut junos:group="interface-group"
groups="groups"
inherit
<interfaces>
.
