2

我正在尝试在 IOS XE 16.04.01 中使用 NETONF RPC 执行 CLI 命令。我从设备 CLI“显示 netconf 架构”中获得了 NETCONF RPC 的架构。下面是特定于编辑配置的架构,

<edit-config> [0, 1] required
<target> 1 required
<candidate> [0, 1] required
<running> [0, 1] required
<startup> [0, 1] required
<url> [0, 1] required
<default-operation> [0, 1] required
<test-option> [0, 1] required
<error-option> [0, 1] required
<config> 1 required
<cli-config-data> [0, 1] required
<cmd> 1+ required
<cli-config-data-block> [0, 1] required

在架构中可以看到。我尝试执行以下 RPC,但它作为 cli-config-data 引发错误。如何使用 NETCONF for IOS XE 执行 CLI 命令?

RPC 请求

<rpc message-id="2323" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<edit-config>
<target>
<running/>
</target>
<config>
<cli-config-data>
<cmd>hostname CSR1000V</cmd>
</cli-config-data>
</config>
</edit-config>
</rpc>

RPC 回复

<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="2323">
<rpc-error>
<error-type>protocol</error-type>
<error-tag>unknown-element</error-tag>
<error-severity>error</error-severity>
<error-path>
/rpc/edit-config/config
</error-path>
<error-info>
<bad-element>cli-config-data</bad-element>
</error-info>
</rpc-error>
</rpc-reply>
4

1 回答 1

1

在 IOS-XE 中,您可以选择启用netconf sshnetconf-yang在配置中 - 我犯了启用的错误,netconf-yang然后尝试使用cli-config-data-block,因为我认为它是有效的,正如我在show netconf schema.

如果您启用netconf-yang,则它需要一个有效的 YANG 模型,但netconf ssh启用使用模式作为输出的旧版 NETCONF 支持show netconf schema。启用netconf ssh后,可以将以下内容发送到设备以更新配置:

<?xml version='1.0' encoding='UTF-8'?>
<rpc xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="100">
  <edit-config>
    <target>
      <running/>
    </target>
    <config>
      <cli-config-data-block>
        hostname test
      </cli-config-data-block>
    </config>
  </edit-config>
</rpc>

我现在需要弄清楚如何发送多行字符串,因为以下内容不起作用,并且在 IOS-XE 下没有有效的 YANG 模型:

menu test title $
this is a title
$
于 2020-11-12T23:54:09.547 回答