"Wrong document: namespaces not specified" 网络配置错误
"Wrong document: namespaces not specified" NETCONF error
我对 OS 版本 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>
...
我该如何解决这个错误?
我可以让 get-config RPC 在 this way 中工作。 "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-结构化的。所以我以 this.
的形式向 Cisco 询问了这件事
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>
我对 OS 版本 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>
...
我该如何解决这个错误?
我可以让 get-config RPC 在 this way 中工作。 "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-结构化的。所以我以 this.
的形式向 Cisco 询问了这件事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>