【问题标题】:Regarding netconf tags关于 netconf 标签
【发布时间】:2017-02-13 23:19:03
【问题描述】:

从其中一个文档中,我有以下内容:

<?xml version="1.0" encoding="utf-8"?>
<rpc message-id="${TIMESTAMP}" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <get-config>
    <source>
    <running></running>
    </source>
    <filter>
    <interface-configurations xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ifmgr-cfg"/>

    </filter>
    </get-config>
</rpc>

这实际上是从运行配置中检索接口配置 并且工作正常

Q1:我如何编辑它来检索接口统计信息?需要使用哪些标签?我是怎么知道的?

Q2:我将包含命名空间的行更改为一些随机行,例如“http://a.b.c.d/check”,但它失败了。为什么?

【问题讨论】:

    标签: cisco ietf-netconf


    【解决方案1】:

    如何编辑它以检索接口统计信息?需要使用哪些标签?我是怎么知道的?

    您的示例使用&lt;get-config&gt; 标准操作,它只检索配置,而不是操作状态。如果您想检索后者,您需要使用&lt;get/&gt;,它会同时检索配置和状态数据。

    <?xml version="1.0" encoding="utf-8"?>
    <rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="${TIMESTAMP}">
      <get>
        <filter>
          <interface-configurations xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ifmgr-cfg"/>
        </filter>
      </get>
    </rpc>
    

    这个没有&lt;source&gt; 参数,因为它总是检索运行配置和运行状态。熟悉 NETCONF 的最简单方法是阅读其specification

    我将包含命名空间的行更改为一些随机行,例如“http://a.b.c.d/check”,但它失败了。为什么?

    如果您所说的“失败”意味着您收到了&lt;rpc-error&gt;,那将是非标准行为。您应该得到一个空的&lt;data/&gt; 响应,因为没有与您的过滤器匹配的节点。过滤器需要完全匹配。

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

    NETCONF 数据存储严重依赖命名空间,因为它解决了最常见的命名问题。例如,如果您有两个模块并且它们包含名为“my-config”的顶级元素,则不会有问题,因为它们由模块命名空间唯一标识:{uri:a}my-config{uri:b}my-config

    在您的示例中,您要求{http://a.b.c.d/check}interface-configurations,它根本不存在。 interface-configuration 部分匹配(本地名称)无关紧要,因为您从特定命名空间请求了特定的 interface-configuration

    命名空间(有点)类似于住宅地址。可能存在许多 John Smiths,但您可以通过说明其完整地址来解决特定的一个。如果您要求您当地的邮局仅将包裹寄给“John Smith”这个名字,而没有地址,那么邮局将不知道您指的是哪一个。

    注意:如果您的意思是更改了urn:ietf:params:xml:ns:netconf:base:1.0 行,那么问题是一样的。您试图执行一些服务器未知的操作。但是,这种情况会因错误响应而失败。

    【讨论】:

    • 感谢您的详细回复...还需要确认我们编写的任何netconf标签(如上图xml形式),是否有相应的底层yang模型?这个 yang 模型用于验证 netconf xml 文件。这是正确的理解吗?如果是这样,我如何检索上述 xml 的对应 yang 模型?
    • YANG 用于对在服务器和客户端之间发送的内容进行建模。你可以把它想象成对等点之间的契约,确保在通信过程中不会发生“意外”——例如未知元素、文本值等。它只处理协议的fourth layer,即内容层。您需要咨询相关设备的制造商以获得合适的 YANG 型号。部分设备支持可选的&lt;get-schema&gt; 操作(ietf-netconf-monitoring 模块),允许您检索 YANG。
    • *第四层和第三层,不只是前者。
    • 尝试了 操作,但是,我仍然只收到配置数据...没有像状态数据这样的数据(我认为这将是排序接口统计信息、输入/输出队列等)
    • 这可能只是意味着您选择的特定分支没有定义状态节点。尝试完全删除过滤器 - 这将使您在设备上获得所有内容。
    猜你喜欢
    • 2017-02-14
    • 2011-03-25
    • 1970-01-01
    • 1970-01-01
    • 2021-08-19
    • 1970-01-01
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多