解析 NETCONF 服务器响应
在运行 Junos OS 的 NETCONF 会话中,客户端应用程序将 RPC 发送到 NETCONF 服务器,向设备请求信息并管理配置。NETCONF 服务器将对于每个客户端请求的响应括在一对单独的开始标记 <rpc-reply> 和结束 </rpc-reply> 标记中。每个响应都构成一个格式良好的 XML 文档。
<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>
]]>]]>
开放标记中的属性定义了包含标记元素的名称中没有前缀且未包含在具有不同值属性的子容器标记 xmlns <rpc-reply> junos: xmlns 中的名称空间。
从 Junos OS 版本 15.1 开始,如果您在设备上配置语句,NETCONF 服务器将显式声明与前缀绑定的 NETCONF 命名空间,并在其对前缀的回复中确认 rfc-compliant nc 所有 NETCONF 标记。
属性定义了由前缀限定的包含Junos xmlns:junos XML 标记元素的默认命名空间 junos: 。 release URI 中的变量表示Junos OS NETCONF 服务器设备上运行的版本,例如20.4R1。
客户端应用程序必须包含用于解析来自 NETCONF 服务器的响应标记元素流的代码,既可以在到达时处理这些元素,要么在响应完成之前存储它们。NETCONF 服务器返回三类响应:
运营响应
操作响应 是响应有关交换、路由或安全平台状态的信息请求。它们与来自以下操作命令CLI对应。
该Junos XML API 定义了所有已定义操作请求标记元素的响应标记元素。例如,NETCONF 服务器将返回响应标记元素中标记请求的信息,并返回响应标记中标记 <get-interface-information> <interface-information> <get-chassis-inventory> 请求的信息,称为 <chassis-inventory> 。操作响应也可以格式的 ASCII(包含于元素内)或 output JSON 格式返回。有关对操作响应进行格式化的信息,请参阅 指定 NETCONF会话中操作信息请求的输出格式 。
以下示例响应包括有关接口 ge-2/3/0 的信息。开放标记中的属性指示的名称空间 xmlns <interface-information> 用于获取版本 20.4 Junos OS接口信息。此处出现两行开始标记,但仅出于易读性:
<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> ]]>]]>
有关操作响应 xmlns 标记元素属性和内容的信息,请参阅 使用 NETCONF 请求操作信息。有关操作响应标记元素的摘要,请参阅 Junos XML API 操作开发人员参考。
配置信息响应
配置信息 响应是响应有关设备当前配置的信息请求。Junos XML API 为配置层次结构中每个容器和叶语句定义标记元素。
以下示例响应包括配置层次结构 [edit system login] 中层级的信息。为简洁起见,示例仅显示在此级别定义的一个用户。开口 <rpc-reply> 标记仅以两行显示,但仅表示清晰性。有关开放标记中的属性的信息,请参阅 <configuration> 使用 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>
]]>]]>
配置更改响应
配置更改 响应是响应更改设备配置状态或内容的请求。NETCONF 服务器表示在标记元素内返回标记,以 <ok/> 成功 <rpc-reply> 执行请求:
<rpc-reply xmlns="URN" xmlns:junos="URL">
<ok/>
</rpc-reply>
]]>]]>
如果操作失败, <rpc-reply> 标记元素将包含 <rpc-error> 一个描述故障原因的元素。有关处理错误的信息,请参阅 处理 NETCONF会话中的错误或警告 。