NETCONF — IOS XE — 16.04.01 cli-config-data выдает ошибку

Я пытаюсь выполнить команды CLI, используя NETONF RPC в IOS XE 16.04.01. Я получил схему для RPC NETCONF из интерфейса командной строки устройства «показать схему netconf». Ниже приведена схема, специфичная для edit-config,

<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. Как выполнять команды CLI с помощью NETCONF для IOS XE?

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>

person vishnukumar    schedule 16.04.2017    source источник
comment
Я почти уверен, что элементы cli-config-data и cmd принадлежат пространству имен, отличному от urn:ietf:params:xml:ns:netconf:base:1.0, которое зарезервировано для уровня сообщений NETCONF.   -  person predi    schedule 19.04.2017
comment
какое пространство имен использовать для ‹cli-config-data›?   -  person vishnukumar    schedule 25.04.2017


Ответы (1)


В IOS-XE у вас есть возможность включить netconf ssh или netconf-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>

Мне только сейчас нужно решить, как отправлять многострочные строки, поскольку следующее не работает, и для этого не существует допустимой модели YANG в IOS-XE:

menu test title $
this is a title
$
person chrixm    schedule 12.11.2020