Solicitar información operativa mediante NETCONF
Dentro de una sesión de NETCONF, una aplicación cliente puede solicitar información sobre el estado actual de un dispositivo Junos. Para solicitar información operativa, una aplicación cliente emite el elemento de etiqueta de solicitud específico de la API XML de Junos que devuelve la información deseada.
En la tabla 1 se proporcionan ejemplos de etiquetas de solicitud que solicitan la misma información que el comando de CLI equivalente.
Comando de CLI de etiqueta de solicitud | |
---|---|
<get-interface-information> |
show interfaces |
<get-chassis-inventory> |
show chassis hardware |
<get-system-inventory> |
show software information |
Puede determinar la etiqueta de solicitud XML de Junos adecuada mediante varios métodos, entre los que se incluyen:
-
Anexar
| display xml rpc
a un comando operativo en la CLI. -
Uso de la aplicación Explorador de API XML de Junos - Etiquetas operativas para buscar una etiqueta de comando o solicitud en una versión determinada.
Por ejemplo, el comando siguiente muestra la etiqueta de solicitud correspondiente al show interfaces
comando:
user@router> show interfaces | display xml rpc <rpc-reply xmlns:junos="http://xml.juniper.net/junos/23.4R1.9/junos"> <rpc> <get-interface-information> </get-interface-information> </rpc> </rpc-reply>
Para ejecutar una RPC, la aplicación cliente encierra una etiqueta de solicitud en un <rpc>
elemento. La sintaxis depende de si el comando de CLI correspondiente tiene alguna opción incluida.
<rpc> <!-- If the command does not have options --> <operational-request/> <!-- If the command has options --> <operational-request> <!-- tag elements representing the options --> </operational-request> </rpc> ]]>]]>
La aplicación cliente puede especificar el formato de la información devuelta por el servidor NETCONF. Al establecer el atributo opcional format
en la etiqueta de solicitud operativa de apertura, una aplicación cliente puede especificar el formato de la respuesta como formato con etiqueta XML, que es el texto ASCII con formato predeterminado, o notación de objetos JavaScript (JSON). Para obtener más información acerca de cómo especificar el formato, vea Especificar el formato de salida para solicitudes de información operativa en una sesión de NETCONF.
Cuando se muestran datos operativos o de configuración que contienen caracteres fuera del juego de caracteres ASCII de 7 bits, Junos OS escapa y codifica estos caracteres mediante la referencia de caracteres decimales UTF-8 equivalente. Para obtener más información, consulte Cómo funciona la codificación de caracteres en dispositivos de Juniper Networks.
Si la aplicación cliente solicita salida XML, el servidor NETCONF encierra su respuesta en el elemento de etiqueta de respuesta específico que corresponde al elemento de etiqueta de solicitud, que luego se incluye en un elemento de <rpc-reply>
etiqueta.
<rpc-reply xmlns="URN" xmlns:junos="URL"> <operational-response xmlns="URL-for-DTD"> <!-- tag elements for the requested information --> </operational-response> </rpc-reply> ]]>]]>
Por ejemplo, si la aplicación cliente envía el RPC, el <get-interface-information>
servidor NETCONF devuelve la etiqueta de <interface-information>
respuesta.
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/23.4R1.9/junos"> <interface-information xmlns="http://xml.juniper.net/junos/23.4R1.9/junos-interface" junos:style="normal"> <physical-interface> <name> ge-0/0/0 </name> <admin-status junos:format="Enabled"> up </admin-status> ...
Para el formato XML, la etiqueta de apertura de cada respuesta operativa incluye el xmlns
atributo. El atributo define el espacio de nombres XML para los elementos de etiqueta adjuntos que no tienen un prefijo de espacio de nombres (como junos:
). El espacio de nombres indica qué definición de tipo de documento (DTD) XML de Junos define el conjunto de elementos de etiqueta de la respuesta.
La API XML de Junos define DTD independientes para las respuestas operativas de diferentes módulos de software. Por ejemplo, la DTD para información de interfaz se denomina junos-interface.dtd y la DTD para información de chasis se denomina junos-chassis.dtd. La división en DTD y espacios de nombres XML independientes significa que un elemento de etiqueta con el mismo nombre puede tener funciones distintas dependiendo de la DTD en la que esté definido.
El espacio de nombres es una dirección URL con el siguiente formato:
http://xml.juniper.net/junos/release-code/junos-category
Dónde:
-
release-code es la cadena estándar que representa la versión de Junos OS que se ejecuta en el dispositivo servidor NETCONF.
-
category especifica la DTD.
Si la aplicación cliente solicita el resultado en texto ASCII con formato, el servidor NETCONF encierra su respuesta en un elemento de <output>
etiqueta, que se incluye en una <rpc-reply>
etiqueta.
<rpc-reply xmlns="URN" xmlns:junos="URL"> <output> operational-response </output> </rpc-reply> ]]>]]>
Si la aplicación cliente solicita el resultado en formato JSON, el servidor NETCONF encierra los datos JSON en el <rpc-reply>
elemento tag.
<rpc-reply xmlns="URN" xmlns:junos="URL"> operational-response </rpc-reply> ]]>]]>