EN ESTA PÁGINA
Ejemplo: Configure la base de datos de configuración efímera mediante NETCONF
La base de datos efímera es una base de datos de configuración alternativa que permite a las aplicaciones cliente cargar y confirmar simultáneamente cambios de configuración en dispositivos Junos y con una transferencia de datos significativamente mayor que cuando se confirman datos en la base de datos de configuración candidata. En este ejemplo, se muestra cómo habilitar una instancia de la base de datos de configuración efímera y realizar actualizaciones a esa instancia en una sesión NETCONF.
Requisitos
En este ejemplo, se utilizan los siguientes componentes de software:
Un dispositivo que admite la configuración de la base de datos efímera y ejecuta Junos OS versión 16.2R2 o posterior o Junos OS Evolved versión 22.1R1 o posterior.
Antes de comenzar:
Habilite el servicio NETCONF sobre SSH en el dispositivo Junos.
Visión general
Varias aplicaciones cliente de protocolos NETCONF y Junos XML pueden cargar y confirmar simultáneamente cambios de configuración en un dispositivo Junos mediante el uso de instancias de base de datos efímeras. En este ejemplo, se habilita la instancia eph1
de base de datos efímera y, a continuación, se configura la instancia mediante una sesión NETCONF.
Una aplicación cliente debe abrir una instancia de la base de datos de configuración efímera para poder verla o modificarla. Después de establecer una sesión NETCONF, el cliente abre la instancia efímera mediante la operación de protocolo <open-configuration>
XML de Junos, que encierra la <ephemeral-instance>
etiqueta secundaria y el nombre de la instancia. Abrir la instancia efímera adquiere automáticamente un bloqueo exclusivo.
A continuación, el cliente carga los datos de configuración en formato de texto en la eph1
instancia efímera. Dado que los datos de configuración tienen formato de texto, la <load-configuration>
operación debe incluir el format="text"
atributo y los datos de configuración deben estar incluidos en el <configuration-text>
elemento.
En estos ejemplos, se confirman los cambios de configuración en la instancia efímera mediante la emisión de la operación del protocolo <commit-configuration>
XML de Junos. El <load-configuration>
action="merge"
atributo solo determina cómo se combinan los datos de configuración en esa instancia de la base de datos efímera. Después de confirmar los cambios en la instancia efímera, el dispositivo fusiona los datos de configuración en la configuración activa según las reglas de priorización. Si hay datos en conflicto en las diferentes bases de datos de configuración, las instrucciones de la eph1
instancia tienen una prioridad más alta que las de la instancia efímera predeterminada o la base de datos de configuración estática. Si hay otras instancias efímeras definidas por el usuario, la prioridad se determina por el orden en que se enumeran las instancias en la configuración en el [edit system configuration-database ephemeral]
nivel de jerarquía.
La <close-configuration/>
operación cierra la instancia efímera abierta y libera el bloqueo exclusivo. Los datos efímeros comprometidos se conservan hasta que se reinicia el dispositivo, momento en el que el dispositivo elimina los datos de configuración en la eph1
instancia efímera, así como los datos en todas las demás instancias efímeras.
Configuración
- Habilite la instancia de base de datos efímera
- Configure la instancia de base de datos efímera
- Resultados
Habilite la instancia de base de datos efímera
Procedimiento paso a paso
Para habilitar la instancia de base de datos efímera:
Configure el nombre de la instancia.
[edit] user@host# set system configuration-database ephemeral instance eph1
Confirme la configuración.
[edit] user@host# commit
Resultados
Desde el modo de configuración, escriba el comando para confirmar la show system configuration-database
configuración. Si el resultado no muestra la configuración deseada, repita las instrucciones de este ejemplo para corregir la configuración.
[edit] user@host# show system configuration-database ephemeral { instance eph1; }
Configure la instancia de base de datos efímera
Procedimiento paso a paso
Para configurar la instancia de base de datos efímera y confirmar los cambios desde una sesión NETCONF, las aplicaciones cliente realizan los pasos siguientes:
Abra la instancia de base de datos efímera.
<rpc> <open-configuration> <ephemeral-instance>eph1</ephemeral-instance> </open-configuration> </rpc> ]]>]]>
Cargue los datos de configuración en la instancia efímera abierta e incluya las etiquetas y atributos adecuados para esos datos.
<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 la
<load-configuration>
operación no genera errores, confirme la configuración.<rpc> <commit-configuration/> </rpc> ]]>]]>
Cierre la instancia de base de datos efímera.
<rpc> <close-configuration/> </rpc> ]]>]]>
Resultados
Si no hay errores al abrir o cerrar la base de datos, el servidor NETCONF devuelve un elemento vacío <rpc-reply>
en respuesta a las solicitudes. El servidor NETCONF indica una operación correcta <load-configuration>
mediante la devolución de una etiqueta vacía <ok/>
entre los <load-configuration-results>
elementos y <rpc-reply>
. De forma similar, el servidor NETCONF indica una operación correcta <commit-configuration>
mediante la devolución de una etiqueta vacía <ok/>
incluida en un <rpc-reply>
elemento.
Verificación
- Verifique la confirmación
- Compruebe los datos de configuración en la instancia de base de datos Efímera
Verifique la confirmación
Propósito
La respuesta del servidor NETCONF a la operación de confirmación debe indicar el éxito o el error de la confirmación. También puede comprobar el éxito de la confirmación revisando los eventos de confirmación de la base de datos efímera en el archivo de registro del sistema.
Acción
Revise el archivo de registro del sistema y muestre los eventos que coincidan 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
Significado
La UI_EPHEMERAL_COMMIT_COMPLETED
etiqueta de mensaje indica que la operación de confirmación en la eph1
instancia se realizó correctamente.
Compruebe los datos de configuración en la instancia de base de datos Efímera
Propósito
Compruebe que se agregaron los datos de configuración correctos a la instancia efímera.
Acción
En la sesión NETCONF, abra la instancia de base de datos efímera y recupere la configuración.
<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> ]]>]]>
Puede ver los datos de configuración comprometidos con una instancia de base de datos efímera desde la CLI emitiendo el comando operativo en la show ephemeral-configuration instance instance-name
versión 18.2R1 y posteriores de Junos OS o emitiendo el show ephemeral-configuration instance-name
comando operativo en versiones anteriores.
Solución de problemas
Solucionar problemas al abrir la instancia efímera
Problema
Intenta abrir una instancia de la base de datos efímera y el servidor solo devuelve una etiqueta de apertura <rpc-reply>
. Por ejemplo:
<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">
Este problema puede producirse cuando otro cliente tiene el bloqueo exclusivo en esa instancia.
Solución
Si otro usuario tiene un bloqueo exclusivo en la instancia efímera, una aplicación cliente puede emitir llamadas de procedimiento remoto (RPC) para actualizar la instancia efímera, pero las operaciones en esa instancia efímera no se procesan hasta que se libera el bloqueo. Cuando se libera el bloqueo, el servidor debe emitir la etiqueta de cierre </rpc-reply>
y procesar las RPCs emitidas mientras se bloqueó la instancia efímera.
Como alternativa, una aplicación cliente puede elegir actualizar una instancia efímera diferente, pero con la advertencia de que diferentes instancias efímeras tienen distintos niveles de prioridad a la hora de resolver instrucciones de configuración en conflicto.
Solucionar problemas operativos
Problema
El dispositivo no ejecuta cambios operativos que deberían producirse como resultado de confirmar ciertos datos de configuración en la instancia de base de datos efímera, aunque haya comprobado que la confirmación se realizó correctamente y que los datos de configuración están presentes en la configuración de esa instancia efímera.
Es posible que los cambios operativos no se produzcan si hay otra instancia efímera definida por el usuario que tiene datos de configuración en conflicto y una prioridad más alta. Si hay datos en conflicto en las instancias efímeras, las instrucciones de una instancia con una prioridad más alta anulan instrucciones en una instancia con una prioridad más baja. Una instancia definida por el usuario de la base de datos de configuración efímera tiene mayor prioridad que la instancia predeterminada de base de datos efímera, que tiene mayor prioridad que la base de datos de configuración estática. Si hay varias instancias efímeras definidas por el usuario, la prioridad se determina según el orden en que se enumeran las instancias en la configuración.
Solución
Puede comprobar las instancias efímeras configuradas y su orden de prioridad mediante la emisión del show configuration system configuration-database ephemeral comando operativo en el dispositivo. Las instancias se enumeran en orden de mayor a menor prioridad. Si hay otras instancias que tienen una prioridad más alta, revise los datos de configuración en esos casos para determinar si hay instrucciones en conflicto. También puede mostrar la vista combinada de las bases de datos de configuración estáticas y efímeras emitiendo el comando en la show ephemeral-configuration merge
versión 18.2R1 y posteriores de Junos OS o emitiendo el show ephemeral-configuration | display merge
comando en versiones anteriores.
Si la instancia efímera tiene datos de configuración en conflicto y una prioridad menor que otra instancia efímera definida por el usuario, y la configuración en ese nivel jerárquico debe entrar en vigor en el dispositivo, debe eliminar los datos en conflicto en la otra instancia efímera o colocar los datos de configuración en una instancia de mayor prioridad.