Solicitar informações operacionais usando o NETCONF
Em uma sessão da NETCONF, um aplicativo do cliente pode solicitar informações sobre o status atual de um dispositivo Junos. Para solicitar informações operacionais, um aplicativo do cliente emite o elemento de tag de solicitação específico da API Junos XML que devolve as informações desejadas.
A Tabela 1 fornece exemplos de tags de solicitação, que solicitam as mesmas informações que o comando CLI equivalente.
Solicite | o comando tag CLI |
---|---|
<get-interface-information> |
show interfaces |
<get-chassis-inventory> |
show chassis hardware |
<get-system-inventory> |
show software information |
Você pode determinar a tag de solicitação de Junos XML apropriada usando vários métodos, incluindo:
-
Anexando
| display xml rpc
a um comando operacional na CLI. -
Usando o aplicativo Junos XML API Explorer — Marcas operacionais para procurar uma tag de comando ou solicitação em uma determinada versão.
Por exemplo, o comando a seguir exibe a tag de solicitação correspondente ao 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 executar um RPC, o aplicativo do cliente inclui uma tag de solicitação em um <rpc>
elemento. A sintaxe depende se o comando CLI correspondente tem alguma opção incluída.
<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> ]]>]]>
O aplicativo do cliente pode especificar a formatação das informações devolvidas pelo servidor NETCONF. Ao definir o atributo opcional format
na tag de solicitação operacional de abertura, um aplicativo do cliente pode especificar o formato da resposta como formato XML-tagged, que é o texto ASCII padrão, formatado ou Notação de objetos JavaScript (JSON). Para obter mais informações sobre como especificar o formato, consulte Especifique o formato de saída para solicitações de informações operacionais em uma sessão netconf.
Ao exibir dados operacionais ou de configuração que contêm caracteres fora do conjunto de caracteres ASCII de 7 bits, o Junos OS escapa e codifica esses caracteres usando a referência de caracteres decimais UTF-8 equivalente. Para obter mais informações , veja como a codificação de caracteres funciona nos dispositivos da Juniper Networks.
Se o aplicativo do cliente solicitar a saída XML, o servidor NETCONF apresentará sua resposta no elemento de tag de resposta específico que corresponde ao elemento de tag de solicitação, que é então fechado em um <rpc-reply>
elemento de tag.
<rpc-reply xmlns="URN" xmlns:junos="URL"> <operational-response xmlns="URL-for-DTD"> <!-- tag elements for the requested information --> </operational-response> </rpc-reply> ]]>]]>
Por exemplo, se o aplicativo cliente enviar o <get-interface-information>
RPC, o servidor NETCONF retorna a tag de <interface-information>
resposta.
<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 o formato XML, a tag de abertura para cada resposta operacional inclui o xmlns
atributo. O atributo define o namespace XML para os elementos de tag fechados que não têm um prefixo namespace (como junos:
). O namespace indica qual definição do tipo de documento (DTD) do Junos XML define o conjunto de elementos de tag na resposta.
A API Junos XML define DTDs separados para respostas operacionais de diferentes módulos de software. Por exemplo, o DTD para informações de interface é chamado junos-interface.dtd e o DTD para informações do chassi é chamado junos-chassis.dtd. A divisão em DTDs separados e namespaces XML significa que um elemento de tag com o mesmo nome pode ter funções distintas dependendo em que DTD ele é definido.
O namespace é uma URL do seguinte formulário:
http://xml.juniper.net/junos/release-code/junos-category
Onde:
-
release-code é a cadeia padrão que representa a versão do Junos OS que está sendo executada no dispositivo do servidor NETCONF.
-
category especifica o DTD.
Se o aplicativo cliente solicitar a saída em texto ASCII formatado, o servidor NETCONF inclui sua resposta em um <output>
elemento de tag, que é fechado em uma <rpc-reply>
tag.
<rpc-reply xmlns="URN" xmlns:junos="URL"> <output> operational-response </output> </rpc-reply> ]]>]]>
Se o aplicativo cliente solicitar a saída no formato JSON, o servidor NETCONF inclui os dados do JSON no <rpc-reply>
elemento tag.
<rpc-reply xmlns="URN" xmlns:junos="URL"> operational-response </rpc-reply> ]]>]]>