1

我对操作系统版本为 7.3(1)D1(1) 的 Nexus 7000 的 NETCONF get-config 操作有问题。

发送的消息在 rpc 标签中具有 xmlns 属性。

<?xml version="1.0" encoding="utf-8"?>
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="5">
  <get-config>
    <source>
      <running/>
    </source>
  </get-config>
</rpc>

但是,结果表明 rpc 是缺少命名空间属性的错误元素。

<?xml version="1.0" encoding="utf-8"?>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="5">
  <rpc-error>
    <error-type>rpc</error-type>
    <error-tag>missing-attribute</error-tag>
    <error-severity>error</error-severity>
    <error-message>Wrong document: namespaces not specified</error-message>
    <error-info>
      <bad-element>rpc</bad-element>
    </error-info>
  </rpc-error>
</rpc-reply>

相比之下,我的 get-config 查询对 ASR 9000、IOS XR 6.1.4 没有问题。

<?xml version="1.0" encoding="utf-8"?>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="5">
  <data>
...

我怎样才能绕过这个错误?

4

1 回答 1

1

我可以让 get-config RPC 以这种方式工作。“urib”可以被任何其他定义的子树替换。

<nf:get-config
    xmlns:nf="urn:ietf:params:xml:ns:netconf:base:1.0"
    xmlns="http://www.cisco.com/nxos:7.3.1.D1.1.:urib">
  <nf:source>
    <nf:running/>
  </nf:source>
</nf:get-config>

然而,它给我带来了另一个问题,即结果是 CLI 命令的形式,而不是 XML 结构的。所以我向思科询问了这个问题

NX-OS 的结果:

<?xml version="1.0" encoding="utf-8"?>
<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
    xmlns:pfx1="http://www.cisco.com/nxos:7.3.1.D1.1.:urib"
    xmlns:nf="urn:ietf:params:xml:ns:netconf:base:1.0">!Command: show running-config
!Time: Tue Jan 16 18:00:27 2018

version 7.3(1)D1(1)
hostname MASKED_FOR_ANONYMITY

feature telnet
feature ospf
......
xml server max-session 6
xml server validate all</data>

IOS-XR 的结果:

<?xml version="1.0" encoding="utf-8"?>
<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
  <aaa xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-aaa-locald-admin-cfg">
    <usernames>
      <username>
......
</data>
于 2018-01-22T07:19:56.953 回答