SUR CETTE PAGE
Exemple : Configurer la base de données de configuration éphémère à l’aide de NETCONF
La base de données éphémère est une base de données de configuration alternative qui permet aux applications clientes de charger et de valider simultanément les modifications de configuration sur les équipements Junos, et ce, avec un débit nettement supérieur à celui de la validation des données dans la base de données de configuration candidate. Cet exemple montre comment activer une instance de la base de données de configuration éphémère et effectuer des mises à jour sur cette instance dans une session NETCONF.
Exigences
Cet exemple utilise les composants logiciels suivants :
Périphérique prenant en charge la configuration de la base de données éphémère et exécutant Junos OS version 16.2R2 ou ultérieure ou Junos OS Evolved version 22.1R1 ou ultérieure.
Avant de commencer :
Activez le service NETCONF-over-SSH sur le périphérique Junos.
Aperçu
Plusieurs applications clientes de protocole NETCONF et Junos XML peuvent charger et valider simultanément les modifications de configuration sur un équipement Junos à l’aide d’instances de base de données éphémères. Cet exemple active l’instance de base de données éphémère, puis configure l’instance eph1
par le biais d’une session NETCONF.
Une application cliente doit ouvrir une instance de la base de données de configuration éphémère afin de la visualiser ou de la modifier. Après avoir établi une session NETCONF, le client ouvre l’instance éphémère à l’aide de l’opération de protocole <open-configuration>
XML Junos, qui inclut la <ephemeral-instance>
balise enfant et le nom de l’instance. L’ouverture de l’instance éphémère acquiert automatiquement un verrou exclusif sur celle-ci.
Le client charge ensuite les données de configuration au format texte dans l’instance eph1
éphémère. Étant donné que les données de configuration sont au format texte, l’opération doit inclure l’attribut et les données de configuration doivent être incluses dans l’élément <load-configuration>
format="text"
<configuration-text>
.
Cet exemple valide les modifications de configuration dans l’instance éphémère en émettant l’opération de protocole <commit-configuration>
XML Junos. L’attribut <load-configuration>
action="merge"
détermine uniquement la façon dont les données de configuration sont fusionnées dans cette instance de la base de données éphémère. Une fois que vous avez validé les modifications dans l’instance éphémère, l’appareil fusionne les données de configuration dans la configuration active selon les règles de hiérarchisation. S’il existe des données contradictoires dans les différentes bases de données de configuration, les instructions de l’instance ont une priorité plus élevée que celles de l’instance eph1
éphémère par défaut ou de la base de données de configuration statique. S’il existe d’autres instances éphémères définies par l’utilisateur, la priorité est déterminée par l’ordre dans lequel les instances sont répertoriées dans la configuration au niveau de la [edit system configuration-database ephemeral]
hiérarchie.
L’opération <close-configuration/>
ferme l’instance éphémère ouverte et libère le verrou exclusif. Les données éphémères validées sont conservées jusqu’au redémarrage de l’appareil, auquel cas l’appareil supprime les données de configuration de l’instance eph1
éphémère ainsi que les données de toutes les autres instances éphémères.
Configuration
- Activer l’instance de base de données éphémère
- Configurer l’instance de base de données éphémère
- Résultats
Activer l’instance de base de données éphémère
Procédure étape par étape
Pour activer l’instance de base de données éphémère :
Configurez le nom de l’instance.
[edit] user@host# set system configuration-database ephemeral instance eph1
Validez la configuration.
[edit] user@host# commit
Résultats
À partir du mode configuration, confirmez votre configuration en entrant la show system configuration-database
commande. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.
[edit] user@host# show system configuration-database ephemeral { instance eph1; }
Configurer l’instance de base de données éphémère
Procédure étape par étape
Pour configurer l’instance de base de données éphémère et valider les modifications à partir d’une session NETCONF, les applications clientes effectuent les opérations suivantes :
Ouvrez l’instance de base de données éphémère.
<rpc> <open-configuration> <ephemeral-instance>eph1</ephemeral-instance> </open-configuration> </rpc> ]]>]]>
Chargez les données de configuration dans l’instance éphémère ouverte et incluez les balises et attributs appropriés pour ces données.
<rpc> <load-configuration action="merge" format="text"> <configuration-text> protocols { mpls { label-switched-path to-hastings { to 192.0.2.1; } } } </configuration-text> </load-configuration> </rpc> ]]>]]>
Si l’opération
<load-configuration>
ne génère aucune erreur, validez la configuration.<rpc> <commit-configuration/> </rpc> ]]>]]>
Fermez l’instance de base de données éphémère.
<rpc> <close-configuration/> </rpc> ]]>]]>
Résultats
S’il n’y a pas d’erreur lors de l’ouverture ou de la fermeture de la base de données, le serveur NETCONF renvoie un élément vide <rpc-reply>
en réponse aux requêtes. Le serveur NETCONF indique une opération réussie <load-configuration>
en renvoyant une balise vide <ok/>
contenue dans les <load-configuration-results>
éléments and <rpc-reply>
. De même, le serveur NETCONF indique une opération réussie <commit-configuration>
en renvoyant une balise vide <ok/>
enfermée dans un <rpc-reply>
élément.
Vérification
- Vérifier le commit
- Vérifier les données de configuration dans l’instance de base de données éphémère
Vérifier le commit
But
La réponse du serveur NETCONF à l’opération de validation doit indiquer la réussite ou l’échec de la validation. Vous pouvez également vérifier la réussite de la validation en examinant les événements de validation de la base de données éphémère dans le fichier journal système.
Action
Examinez le fichier journal système et affichez les événements qui correspondent à UI_EPHEMERAL
.
user@host> show log messages | match UI_EPHEMERAL Feb 10 13:20:32 host mgd[5172]: UI_EPHEMERAL_COMMIT: User 'user' has requested commit on 'eph1' ephemeral database Feb 10 13:20:32 host mgd[5172]: UI_EPHEMERAL_COMMIT_COMPLETED: commit complete on 'eph1' ephemeral database
Sens
La UI_EPHEMERAL_COMMIT_COMPLETED
balise de message indique que l’opération de validation sur l’instance eph1
a réussi.
Vérifier les données de configuration dans l’instance de base de données éphémère
But
Vérifiez que les données de configuration correctes ont été ajoutées à l’instance éphémère.
Action
Dans la session NETCONF, ouvrez l’instance de base de données éphémère et récupérez la configuration.
<rpc> <open-configuration> <ephemeral-instance>eph1</ephemeral-instance> </open-configuration> </rpc> ]]>]]> <rpc> <get-configuration format="text"/> </rpc> ]]>]]>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/16.2R2/junos"> <configuration-text xmlns="http://xml.juniper.net/xnm/1.1/xnm"> ## Last changed: 2017-02-10 13:20:32 PDT protocols { mpls { label-switched-path to-hastings { to 192.0.2.1; } } } </configuration-text> </rpc-reply> ]]>]]>
<rpc> <close-configuration/> </rpc> ]]>]]>
Vous pouvez afficher les données de configuration validées sur une instance de base de données éphémère à partir de l’interface de ligne de commande en exécutant la commande opérationnelle dans Junos OS version 18.2R1 et versions ultérieures ou en émettant la show ephemeral-configuration instance instance-name
show ephemeral-configuration instance-name
commande opérationnelle dans les versions antérieures.
Dépannage
- Résoudre les problèmes lors de l’ouverture de l’instance éphémère
- Résoudre les problèmes opérationnels
Résoudre les problèmes lors de l’ouverture de l’instance éphémère
Problème
Vous tentez d’ouvrir une instance de la base de données éphémère et le serveur ne renvoie qu’une balise d’ouverture <rpc-reply>
. Par exemple :
<rpc> <open-configuration> <ephemeral-instance>eph1</ephemeral-instance> </open-configuration> </rpc> ]]>]]> <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/16.2R2/junos">
Ce problème peut se produire lorsqu’un autre client a le verrou exclusif sur cette instance.
Solution
Si un autre utilisateur dispose d’un verrou exclusif sur l’instance éphémère, une application cliente peut émettre des appels de procédure à distance (RPC) pour mettre à jour l’instance éphémère, mais les opérations sur cette instance éphémère ne sont pas traitées tant que le verrou n’est pas libéré. Lorsque le verrou est relâché, le serveur doit émettre la balise de fermeture </rpc-reply>
et traiter tous les RPC émis pendant que l’instance éphémère était verrouillée.
Une application cliente peut également choisir de mettre à jour une autre instance éphémère, mais avec la mise en garde que différentes instances éphémères ont des niveaux de priorité différents lorsqu’elles résolvent des instructions de configuration conflictuelles.
Résoudre les problèmes opérationnels
Problème
L’appareil n’exécute pas les modifications opérationnelles qui devraient se produire à la suite de la validation de certaines données de configuration dans l’instance de base de données éphémère, même si vous avez vérifié que la validation a réussi et que les données de configuration sont présentes dans la configuration de cette instance éphémère.
Les modifications opérationnelles peuvent ne pas se produire s’il existe une autre instance éphémère définie par l’utilisateur qui a des données de configuration conflictuelles et une priorité plus élevée. S’il existe des données contradictoires dans les instances éphémères, les instructions d’une instance avec une priorité plus élevée remplacent les instructions dans une instance avec une priorité inférieure. Une instance définie par l’utilisateur de la base de données de configuration éphémère a une priorité plus élevée que l’instance de base de données éphémère par défaut, qui a une priorité plus élevée que la base de données de configuration statique. S’il existe plusieurs instances éphémères définies par l’utilisateur, la priorité est déterminée par l’ordre dans lequel les instances sont répertoriées dans la configuration.
Solution
Vous pouvez vérifier les instances éphémères configurées et leur ordre de priorité en émettant la show configuration system configuration-database ephemeral commande opérationnelle sur l’appareil. Les instances sont répertoriées dans l’ordre, de la priorité la plus élevée à la plus faible. S’il existe d’autres instances qui ont une priorité plus élevée, examinez les données de configuration de ces instances pour déterminer s’il existe des instructions contradictoires. Vous pouvez également afficher la vue fusionnée des bases de données de configuration statique et éphémère en exécutant la commande dans Junos OS version 18.2R1 et versions ultérieures ou en exécutant la show ephemeral-configuration merge
commande dans les show ephemeral-configuration | display merge
versions antérieures.
Si votre instance éphémère a des données de configuration conflictuelles et une priorité inférieure à celle d’une autre instance éphémère définie par l’utilisateur, et que la configuration à ce niveau hiérarchique doit entrer en vigueur sur l’appareil, vous devez soit supprimer les données conflictuelles dans l’autre instance éphémère, soit placer vos données de configuration dans une instance de priorité supérieure.