Analizar la respuesta del servidor NETCONF
En una sesión NETCONF con un dispositivo que ejecuta Junos OS, una aplicación cliente envía RPCs al servidor NETCONF para solicitar información y administrar la configuración en el dispositivo. El servidor NETCONF encierra su respuesta a cada solicitud de cliente en un par de etiquetas de apertura <rpc-reply>
y cierre </rpc-reply>
independientes. Cada respuesta constituye un documento XML bien formado.
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" \ xmlns:junos="http://xml.juniper.net/junos/release/junos" \ [echoed attributes]> <!-- tag elements representing a response --> </rpc-reply> ]]>]]>
El xmlns
atributo de la etiqueta de apertura <rpc-reply>
define el espacio de nombres para los elementos de etiqueta cerrados que no tienen el junos:
prefijo en sus nombres y que no están incluidos en una etiqueta contenedora secundaria que tiene el xmlns
atributo con un valor diferente.
A partir de junos OS versión 15.1, si configura la rfc-compliant
instrucción en el dispositivo, el servidor NETCONF declara explícitamente el espacio de nombres NETCONF, que está enlazado al nc
prefijo, y califica todas las etiquetas NETCONF en sus respuestas con el prefijo.
El xmlns:junos
atributo define el espacio de nombres predeterminado para los elementos de etiqueta XML de Junos adjuntos que son calificados por el junos:
prefijo. La release variable del URI representa la versión de Junos OS que se ejecuta en el dispositivo de servidor NETCONF, por ejemplo, 20.4R1.
Las aplicaciones cliente deben incluir código para analizar la secuencia de elementos de etiqueta de respuesta procedentes del servidor NETCONF, ya sea procesarlos a medida que llegan o almacenarlos hasta que se complete la respuesta. El servidor NETCONF devuelve tres clases de respuestas:
Respuestas operativas
Las respuestas operativas son respuestas a solicitudes de información sobre el estado de una plataforma de conmutación, enrutamiento o seguridad. Corresponden al resultado de los comandos operativos de cli.
La API XML de Junos define los elementos de etiqueta de respuesta para todos los elementos de etiquetas de solicitud operativa definidas. Por ejemplo, el servidor NETCONF devuelve la información solicitada por la <get-interface-information>
etiqueta en un elemento de etiqueta de respuesta llamado <interface-information>
y devuelve la información solicitada por la <get-chassis-inventory>
etiqueta en una etiqueta de respuesta denominada <chassis-inventory>
. Las respuestas operativas también se pueden devolver con formato ASCII, que se adjunta dentro de un output
elemento o en formato JSON. Para obtener más información acerca de cómo formatear respuestas operativas, consulte Especificar el formato de salida para solicitudes de información operativa en una sesión NETCONF.
La siguiente respuesta de ejemplo incluye información sobre la interfaz ge-2/3/0. El espacio de nombres indicado por el xmlns
atributo en la etiqueta de apertura <interface-information>
es para la información de interfaz de Junos OS versión 20.4. Las etiquetas de apertura aparecen en dos líneas aquí solo para la legibilidad:
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"\ xmlns:junos="http://xml.juniper.net/junos/20.4R1/junos"> <interface-information \ xmlns="http://xml.juniper.net/junos/20.4R1/junos-interface"> <physical-interface> <name>ge-2/3/0</name> <!-- other data tag elements for the ge-2/3/0 interface - -> </physical-interface> </interface-information> </rpc-reply> ]]>]]>
Para obtener más información sobre el xmlns
atributo y el contenido de los elementos de etiqueta de respuesta operativa, consulte Solicitar información operativa mediante NETCONF. Para obtener un resumen de los elementos de etiqueta de respuesta operativa, consulte la Referencia para desarrolladores operativos de la API XML de Junos.
Respuestas de información de configuración
Las respuestas de información de configuración son respuestas a solicitudes de información sobre la configuración actual del dispositivo. La API XML de Junos define un elemento de etiqueta para cada contenedor y instrucción leaf en la jerarquía de configuración.
La siguiente respuesta de ejemplo incluye la información en el [edit system login]
nivel jerárquico de la jerarquía de configuración. Para la brevedad, el ejemplo muestra solo un usuario definido en este nivel. La etiqueta de apertura <rpc-reply>
aparece en dos líneas solo para la legibilidad. Para obtener información acerca de los atributos en la etiqueta de apertura <configuration>
, consulte Especificar el origen de las solicitudes de información de configuración mediante NETCONF.
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"\ xmlns:junos="http://xml.juniper.net/junos/20.4R1/junos"> <data> <configuration attributes> <system> <login> <user> <name>admin</name> <full-name>Administrator</full-name> <!-- other data tag elements for the admin user --> </user> </login> </system> </configuration> </data> </rpc-reply> ]]>]]>
Respuestas de cambio de configuración
Las respuestas de cambio de configuración son respuestas a solicitudes que cambian el estado o el contenido de la configuración del dispositivo. El servidor NETCONF indica la ejecución correcta de una solicitud mediante la devolución de la <ok/>
etiqueta dentro del <rpc-reply>
elemento tag:
<rpc-reply xmlns="URN" xmlns:junos="URL"> <ok/> </rpc-reply> ]]>]]>
Si se produce un error en la operación, el <rpc-reply>
elemento tag en su lugar encierra un <rpc-error>
elemento que describe la causa del error. Para obtener más información sobre cómo controlar errores, consulte Controlar un error o una advertencia en una sesión NETCONF.
rfc-compliant
instrucción en el dispositivo, el servidor NETCONF declara explícitamente el espacio de nombres NETCONF, que está enlazado al
nc
prefijo, y califica todas las etiquetas NETCONF en sus respuestas con el prefijo.