Configurer les sessions NETCONF conformes À la RFC
Lorsque vous utilisez NETCONF pour gérer les équipements Junos, vous pouvez exiger que le serveur NETCONF applique certains comportements conformes à la RFC 4741, le protocole de configuration NETCONF pendant la session NETCONF. Pour appliquer la conformité RFC, configurez l’instruction rfc-compliant
au niveau de la [edit system services netconf]
hiérarchie. La configuration de l’instruction rfc-compliant
affecte les aspects suivants de la session NETCONF :
-
Espaces de noms émis dans les réponses du serveur NETCONF
-
Éléments renvoyés dans les réponses RPC et
<get>
<get-config>
opérations dans les cas où il n’y a pas de données de configuration à renvoyer -
Le serveur NETCONF répond qui renvoie à la fois un
<ok/>
élément et un<rpc-error>
élément avec un niveau d’avertissement de gravité - Le serveur NETCONF répond pour et
<validate>
opérations<commit>
.
Les différences sont décrites en détail dans les sections suivantes.
Namespaces
Par défaut, le serveur NETCONF définit l’espace de noms netconf par défaut dans l’espace de noms NETCONF dans la balise d’ouverture de la réponse du serveur, et les noms des balises NETCONF ne sont pas qualifiés. Par exemple :
<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <capabilities> <capability>urn:ietf:params:netconf:base:1.0</capability> ... </capabilities> <session-id>27700</session-id> <hello> <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/15.1R1/junos">
Lorsque vous configurez l’instruction rfc-compliant
, le serveur NETCONF ne définit pas d’espace de noms par défaut dans ses réponses. Au lieu de cela, le serveur inclut une déclaration d’espace de noms pour l’espace de noms NETCONF, qui est lié au nc
préfixe, et qualifie toutes les balises NETCONF dans ses réponses par le préfixe. Si vous définissez l’espace de noms par défaut sur l’espace de noms NETCONF dans une demande RPC, le serveur rejette l’espace de noms par défaut et émet sa réponse à l’aide uniquement de l’espace de noms déclaré lié au nc
préfixe.
L’exemple de sortie suivant illustre l’échange de messages et de fonctionnalités du serveur NETCONF lors de <hello>
la configuration de l’instruction rfc-compliant
. La <hello>
balise contient la xmlns:nc
déclaration, et toutes les balises NETCONF incluent le nc
préfixe.
<nc:hello xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> <nc:capabilities> <nc:capability>urn:ietf:params:netconf:base:1.0</nc:capability> ... </nc:capabilities> <nc:session-id>27703</nc:session-id> </nc:hello>
Le résultat suivant affiche un exemple de réponse RPC lorsque l’instruction rfc-compliant
est configurée :
<nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/15.1R1/junos"> <nc:data> <configuration xmlns="http://xml.juniper.net/xnm/1.1/xnm" junos:changed-seconds="1417554471" junos:changed-localtime="2014-12-02 13:07:51 PST"> <!--configuration data--> </configuration> <database-status-information> <database-status> <user>root</user> <terminal></terminal> <pid>47868</pid> <start-time junos:seconds="1417560303">2014-12-02 14:45:03 PST</start-time> <edit-path></edit-path> </database-status> </database-status-information> </nc:data> </nc:rpc-reply>
À partir de la version 17.2R1 de Junos OS, lorsque vous configurez l’instruction rfc-compliant
et demandez des données de configuration dans une session NETCONF, le serveur définit l’espace de noms par défaut pour l’élément <configuration>
sur le même espace de noms que dans le modèle YANG correspondant.
<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> ]]>]]>
Modifications apportées aux opérations <get> et <get-config>
L’instruction rfc-compliant
affecte les réponses et <get-config>
le <get>
serveur dans les cas où il n’y a pas de données de configuration à retourner. Cela peut se produire, par exemple, lorsque vous appliquez un filtre pour renvoyer un sous-ensemble de la configuration et que cette partie de la configuration est vide.
Si vous exécutez l’opération <get>
ou <get-config>
, et qu’il n’y a pas de données de configuration dans la hiérarchie demandée, alors si l’instruction rfc-compliant
n’est pas configurée, la réponse RPC contient un élément vide <configuration>
à l’intérieur de l’élément <data>
.
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/15.1D0/junos"> <data> <configuration> </configuration> </data> </rpc-reply>
Si vous exécutez l’opération <get>
ou <get-config>
et qu’il n’y a pas de données de configuration dans la hiérarchie demandée, alors si l’instruction rfc-compliant
est configurée, la réponse RPC renvoie un élément vide <data>
et omet l’élément <configuration>
.
<nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/15.1R1/junos"> <nc:data> </nc:data> </nc:rpc-reply>
<rpc-erreur> Éléments avec un niveau de gravité d’avertissement dans les réponses RPC
À partir des versions 17.4R3, 18.2R2, 18.3R2 et 18.4R1 de Junos OS, lorsque vous configurez l’instruction, le rfc-compliant
serveur NETCONF ne peut pas renvoyer une réponse RPC comprenant à la fois un <rpc-error>
élément et un <ok/>
élément. Si l’opération est réussie, mais que la réponse du serveur comprend un ou plusieurs <rpc-error>
éléments avec un niveau d’avertissement de gravité en plus de l’élément <ok/>
, les avertissements sont alors omis. En outre, à partir de la version 21.2R1 de Junos OS, tous les avertissements omis lors d’une <commit>
opération sont redirigés vers le fichier journal du système pour le suivi.
Dans les versions antérieures, ou lorsque l’instruction rfc-compliant
n’est pas configurée, le serveur NETCONF peut émettre une réponse RPC comprenant à la fois un <rpc-error>
élément avec un niveau d’avertissement de gravité et un <ok/>
élément. Par exemple, une opération de validation peut réussir, mais renvoyer un avertissement comme dans la réponse du serveur NETCONF suivante :
<nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/17.4R1/junos"> <nc:rpc-error> <nc:error-severity>warning</nc:error-severity> <nc:error-message> uid changed for jadmin (2001->2014) </nc:error-message> </nc:rpc-error> <nc:ok/> </nc:rpc-reply> ]]>]]>
Si vous configurez l’instruction rfc-compliant
, l’avertissement est omis.
<nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/18.4R1/junos"> <nc:ok/> </nc:rpc-reply> ]]>]]>
Réponse du serveur NETCONF aux opérations <> et < validation>
À partir de la version 21.2R1 de Junos OS, lorsque vous configurez l rfc-compliant
'instruction, la réponse du serveur NETCONF aux <commit>
opérations inclut les modifications suivantes :
-
Si une opération réussie
<commit>
renvoie une réponse avec un ou plusieurs avertissements, les avertissements sont redirigés vers le fichier journal système, en plus d’être omis de la réponse. -
La réponse du serveur NETCONF émet l’élément
<source-daemon>
en tant qu’enfant de l’élément<error-info>
au lieu de l’élément<rpc-error>
. -
Si vous configurez également l’instruction
flatten-commit-results
au niveau de la[edit system services netconf]
hiérarchie, le serveur NETCONF n’émet qu’un ou<rpc-error>
un<ok/>
élément dans sa réponse et supprime toute<commit-results>
sous-arborescence XML.
À partir de la version 23.2R1 de Junos OS, lorsque vous configurez l’instructionrfc-compliant
, le serveur NETCONF n’émet qu’un ou <rpc-error>
un <ok/>
élément en réponse aux <validate>
opérations. Dans les versions précédentes, la réponse RPC inclut également l’élément<commit-results>
.
rfc-compliant
, le serveur NETCONF n’émet qu’un ou
<rpc-error>
un
<ok/>
élément en réponse aux
<validate>
opérations. Dans les versions précédentes, la réponse RPC inclut également l’élément
<commit-results>
.
rfc-compliant
'instruction, la réponse du serveur NETCONF aux
<commit>
opérations est modifiée.
rfc-compliant
serveur NETCONF ne peut pas renvoyer une réponse RPC comprenant à la fois un
<rpc-error>
élément et un
<ok/>
élément.