Geben Sie das Ausgabeformat für Anforderungen an Betriebsinformationen in einer NETCONF-Sitzung an
Um Informationen zu einem Junos-Gerät anzufordern, sendet eine Clientanwendung in einer NETCONF-Sitzung ein <rpc>
Element aus, das ein Junos XML-Request-Tag-Element umschließt. Um anzufordern, dass der NETCONF-Server die Ausgabe in einem bestimmten Format zurückgibt, enthält die Clientanwendung das optionale format
Attribut im öffnenden operativen Anforderungs-Tag. Die Anwendung kann Die Ausgabe im XML-Tagged-Format (Extensible Markup Language), JavaScript Object Notation (JSON) oder formatiertem ASCII-Text anfordern. Die Syntax lautet wie folgt:
<rpc> <operational-request format="(ascii | json | json-minified | text | xml | xml-minified)"> <!-- tag elements for options --> </operational-request> </rpc>
Tabelle 1 beschreibt die verfügbaren Formate. Minified-Formate entfernen Zeichen, die für die Computerverarbeitung nicht erforderlich sind, z. B. Leerzeichen, Registerkarten und Newlines. Minifizierte Formate reduzieren die Größe der Daten und können dadurch Transportkosten sowie Datenbereitstellungs- und Verarbeitungszeiten reduzieren.
format Beschreibung des Attributwerts |
|
---|---|
ascii |
Formatierter ASCII-Text |
json |
JavaScript Object Notation (JSON) |
json-minified |
JSON-Format mit unnötigen Leerzeichen, Tabs und entfernten Newlines |
text |
Formatierter ASCII-Text |
xml |
Junos XML-tagged-Format |
xml-minified |
Junos XML-tagged-Format mit unnötigen Leerzeichen, Registerkarten und Neueninführungen entfernt |
XML-Format
Standardmäßig gibt der NETCONF-Server Betriebsinformationen im XML-Format zurück. Wenn das format
Attribut auf xml
festgelegt ist oder wenn das format
Attribut weggelassen wird, gibt der Server die Antwort in XML zurück. Das folgende Beispiel fordert Informationen für die ge-0/3/0-Schnittstelle an und gibt das format
Attribut aus.
<rpc> <get-interface-information> <brief/> <interface-name>ge-0/3/0</interface-name> </get-interface-information> </rpc> ]]>]]>
Der NETCONF-Server gibt die Informationen im XML-Format zurück, die mit der in der BEFEHLSZEILE angezeigten Ausgabe identisch ist, wenn Sie den Filter an den Befehl für den | display xml
Betriebsmodus anfügen.
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/11.4R1/junos"> <interface-information xmlns="http://xml.juniper.net/junos/11.4R1/junos-interface" junos:style="brief"> <physical-interface> <name>ge-0/3/0</name> <admin-status junos:format="Enabled">up</admin-status> <oper-status>down</oper-status> <link-level-type>Ethernet</link-level-type> <mtu>1514</mtu> <source-filtering>disabled</source-filtering> <speed>1000mbps</speed> <bpdu-error>none</bpdu-error> <l2pt-error>none</l2pt-error> <loopback>disabled</loopback> <if-flow-control>enabled</if-flow-control> <if-auto-negotiation>enabled</if-auto-negotiation> <if-remote-fault>online</if-remote-fault> <if-device-flags> <ifdf-present/> <ifdf-running/> <ifdf-down/> </if-device-flags> <if-config-flags> <iff-hardware-down/> <iff-snmp-traps/> <internal-flags>0x4000</internal-flags> </if-config-flags> <if-media-flags> <ifmf-none/> </if-media-flags> </physical-interface> </interface-information> </rpc-reply> ]]>]]>
Operative Befehls-RPCs unterstützen auch die Rückgabe von XML-Ausgabe im minifizierten Format, wodurch unnötige Leerzeichen, Registerkarten und Newlines weggelassen werden. Um eine minifizierte XML-Ausgabe in unterstützten Versionen anzufordern, fügen Sie das format="xml-minified"
Attribut in das öffnende Request-Tag ein. Zum Beispiel:
<rpc> <get-interface-information format="xml-minified"> <brief/> <interface-name>ge-0/3/0</interface-name> </get-interface-information> </rpc> ]]>]]>
Der NETCONF-Server gibt die Informationen im minifizierten XML-Format zurück.
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/21.1R1/junos"> <interface-information xmlns="http://xml.juniper.net/junos/21.1R1/junos-interface" junos:style="brief"><physical-interface><name>ge-0/3/0</name><admin-status junos:format="Enabled">up</admin-status><oper-status>down</oper-status><link-level-type>Ethernet</link-level-type><mtu>1514</mtu><source-filtering>disabled</source-filtering><speed>1000mbps</speed><bpdu-error>none</bpdu-error><l2pt-error>none</l2pt-error><loopback>disabled</loopback><if-flow-control>enabled</if-flow-control><if-auto-negotiation>enabled</if-auto-negotiation><if-remote-fault>online</if-remote-fault><if-device-flags><ifdf-present/><ifdf-running/><ifdf-down/></if-device-flags><if-config-flags><iff-hardware-down/><iff-snmp-traps/><internal-flags>0x4000</internal-flags></if-config-flags><if-media-flags><ifmf-none/></if-media-flags></physical-interface></interface-information></rpc-reply>]]>]]>
JSON-Format
Ab Junos OS Version 14.2 können Betriebs- und Konfigurationsdaten im JSON-Format angezeigt werden. Um anzufordern, dass der NETCONF-Server Betriebsinformationen im JSON-Format zurückgibt, enthält die Clientanwendung das format="json"
Attribut im öffnenden Operational Request-Tag.
<rpc> <get-interface-information format="json"> <brief/> <interface-name>cbp0</interface-name> </get-interface-information> </rpc> ]]>]]>
Wenn die Clientanwendung das format="json"
Attribut im Request-Tag enthält, formatiert der NETCONF-Server die Antwort mit JSON.
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/16.1R1/junos"> { "interface-information" : [ { "attributes" : {"xmlns" : "http://xml.juniper.net/junos/16.1R1/junos-interface", "junos:style" : "brief" }, "physical-interface" : [ { "name" : [ { "data" : "cbp0" } ], "admin-status" : [ { "data" : "up", "attributes" : {"junos:format" : "Enabled"} } ], "oper-status" : [ { "data" : "up" } ], "if-type" : [ { "data" : "Ethernet" } ], "link-level-type" : [ { "data" : "Ethernet" } ], "mtu" : [ { "data" : "1514" } ], "speed" : [ { "data" : "Unspecified" } ], "clocking" : [ { "data" : "Unspecified" } ], "if-device-flags" : [ { "ifdf-present" : [ { "data" : [null] } ], "ifdf-running" : [ { "data" : [null] } ] } ], "ifd-specific-config-flags" : [ { "internal-flags" : [ { "data" : "0x0" } ] } ], "if-config-flags" : [ { "iff-snmp-traps" : [ { "data" : [null] } ] } ] } ] } ] } </rpc-reply> ]]>]]>
Geräte mit Junos OS Version 17.3R1 unterstützen ab Junos OS die Ausgabe des Betriebszustands des Geräts im kompakten JSON-Format, bei dem nur Objekte mit mehreren Werten als JSON-Arrays emittiert werden. Konfigurieren Sie die Anweisung auf [edit system export-format state-data json]
Hierarchieebene, um das Gerät so zu konfigurieren, dass es das compact
kompakte JSON-Format ausgibt.
Operative Befehls-RPCs unterstützen auch die Rückgabe von JSON-Ausgabe im minifizierten Format, wodurch unnötige Leerzeichen, Registerkarten und Newlines weggelassen werden. Um eine minifizierte JSON-Ausgabe in unterstützten Versionen anzufordern, fügen Sie das format="json-minified"
Attribut in das öffnende Request-Tag ein. Zum Beispiel:
<rpc> <get-interface-information format="json-minified"> <brief/> <interface-name>cbp0</interface-name> </get-interface-information> </rpc> ]]>]]>
Der NETCONF-Server gibt die Informationen im minifizierten JSON-Format zurück.
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/21.1R1/junos"> {"interface-information":[{"physical-interface":[{"name":[{"data":"cbp0"}],"admin-status":[{"data":"up","attributes":{"junos:format":"Enabled"}}],"oper-status":[{"data":"up"}],"if-type":[{"data":"Ethernet"}],"link-level-type":[{"data":"Ethernet"}],"mtu":[{"data":"9192"}],"speed":[{"data":"Unspecified"}],"clocking":[{"data":"Unspecified"}],"if-device-flags":[{"ifdf-present":[{"data":[null]}],"ifdf-running":[{"data":[null]}]}],"ifd-specific-config-flags":[{}],"if-config-flags":[{"iff-snmp-traps":[{"data":[null]}]}]}]}]}</rpc-reply> ]]>]]>
ASCII-Format
Um anzufordern, dass der NETCONF-Server Betriebsinformationen als formatierter ASCII-Text zurücksenden, anstatt ihn mit Junos XML-Tag-Elementen zu kennzeichnen, enthält die Clientanwendung das format="text"
Oder-Attribut format="ascii"
im öffnenden Request-Tag.
<rpc> <get-interface-information format="(text | ascii)"> <brief/> <interface-name>ge-0/3/0</interface-name> </get-interface-information> </rpc> ]]>]]>
Wenn die Clientanwendung das Attribut oder format="ascii"
das format="text"
Attribut im Request-Tag enthält, formatiert der NETCONF-Server die Antwort als ASCII-Text und umschließt sie in einem <output>
Tag-Element. Die format="text"
und format="ascii"
Attribute erzeugen identische Ausgabe.
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/11.4R1/junos"> <output> Physical interface: ge-0/3/0, Enabled, Physical link is Down Link-level type: Ethernet, MTU: 1514, Speed: 1000mbps, Loopback: Disabled, Source filtering: Disabled, Flow control: Enabled, Auto-negotiation: Enabled, Remote fault: Online Device flags : Present Running Down Interface flags: Hardware-Down SNMP-Traps Internal: 0x4000 Link flags : None </output> </rpc-reply> ]]>]]>
Das folgende Beispiel zeigt den entsprechenden Befehl im Betriebsmodus, der in der CLI ausgeführt wird:
user@host> show interfaces ge-0/3/0 brief Physical interface: ge-0/3/0, Enabled, Physical link is Down Link-level type: Ethernet, MTU: 1514, Speed: 1000mbps, Loopback: Disabled, Source filtering: Disabled, Flow control: Enabled, Auto-negotiation: Enabled, Remote fault: Online Device flags : Present Running Down Interface flags: Hardware-Down SNMP-Traps Internal: 0x4000 Link flags : None
Der formatierte ASCII-Text, der vom NETCONF-Server zurückgegeben wird, ist identisch mit der CLI-Ausgabe, außer in Fällen, in denen die Ausgabe nicht zulässige Zeichen wie "<" (weniger als vorzeichen), ">" (größer als Zeichen) und "&" (ampersand) enthält. Der NETCONF-Server ersetzt diese Zeichen durch die entsprechende vordefinierte Entitätsreferenz von '<', '>' bzw. '&'.
Wenn die Junos XML API kein Antwort-Tag-Element für den von einer Clientanwendung angeforderten Ausgabetyp definiert, gibt der NETCONF-Server die Antwort als formatierter ASCII-Text zurück, der in einem <output>
Tag-Element eingeschlossen ist, selbst wenn eine Ausgabe mit XML-Tags angefordert wird.
Der Inhalt und die Formatierung von Daten innerhalb eines <output>
Tag-Elements können geändert werden, sodass Clientanwendungen nicht von ihnen abhängen dürfen.