searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Netconf协议介绍-XML规范分析

2023-06-20 08:06:39
95
0

消息类型

NETCONF定义了三种消息类型,hello、rpc和rpc-reply、notification。

 


RPC消息分类

1、<get>

       查询的是设备当前运行的状态数据。所以,不需要使用source参数指定配置数据库。如果server支持能力:urn:ietf:params:netconf:capability:xpath:1.0则还可以使用filter进行条件查询。

<rpc message-id="101"xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <get-config>
        <source>
            <running/>
        </source>
        <filter type="subtree">
            <top xmlns="http://example.com/schema/1.2/config">
                <users/>
            </top>
        </filter>
    </get-config>
</rpc>

2、<get-config>

      查询的是设备当前配置数据,即只能从配置数据库中获取数据。需要使用source参数指定配置数据库。如果server支持能力:urn:ietf:params:netconf:capability:xpath:1.0则还可以使用filter进行条件查询。

<rpc message-id="101"  xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <get-config>
       <source>
          <running/>
       </source>
       <filter type="subtree">
          <ifm xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
             <interfaces>
                <interface/>
             </interfaces>
          </ifm>
        </filter>
     </get-config>

3、<edit-config>

      用来把全部或部分配置数据加载到指定的目标配置数据库。

      NETCONF服务器支持URL能力,可以使用标识本地配置文件的参数替代参数。一组由数据模型定义的层次化的配置数据中可能包含可选的“operation”属性,用来给配置数据指定操作类型。如果未携带“operation”属性,则默认为merge操作。

<edit-config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <target>
        <running/>
    </target>
    <default-operation>merge</default-operation>
    <error-option>rollback-on-error</error-option>
    <config>
    </config>
</edit-config>


4、<copy-config>

      源配置数据库替换目标配置数据库。如果目标配置数据库没有创建,则直接创建配置数据库,否则用源配置数据库直接覆盖目标配置数据库。

<rpc message-id="101"
    xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <copy-config>
        <target>
            <running/>
        </target>
        <source>
            <candidate/>
        </source>
    </copy-config>
</rpc>

5、<delete-config>

      用来删除一个配置数据库,但不能删除配置数据库。

<rpc message-id="101"
    xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <delete-config>
        <target>
            <startup/>
        </target>
    </delete-config>
</rpc>

6、<lock>

用来锁定设备的配置数据库,独占配置数据库的修改权。

<rpc message-id="101"
    xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <lock>
        <target>
            <running/>
        </target>
    </lock>
</rpc>

7、<unlock>

取消锁定数据库操作,只能取消自己的锁定操作。

<rpc message-id="101"
    xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <unlock>
        <target>
            <running/>
        </target>
    </unlock>
</rpc>

8、<close-session>

用来正常关闭当前NETCONF会话。当NETCONF Server收到请求时,它将关闭当前的NETCONF会话。服务器将释放与该会话相关的所有锁和资源。在收到请求后,NETCONF Server将忽略这个会话的所有请求消息。

9、<kill-session>

用来强制关闭另一个NETCONF会话,只有管理员用户才有权限执行操作。当NETCONF Server收到请求时,它将中止该会话正在进行的所有操作,释放与该会话相关联的任何锁和资源,并关闭该会话。如果NETCONF服务器在处理操作时收到请求,它必须将配置恢复到发出确认提交之前的状态。

 

0条评论
作者已关闭评论
c****n
1文章数
0粉丝数
c****n
1 文章 | 0 粉丝
c****n
1文章数
0粉丝数
c****n
1 文章 | 0 粉丝
原创

Netconf协议介绍-XML规范分析

2023-06-20 08:06:39
95
0

消息类型

NETCONF定义了三种消息类型,hello、rpc和rpc-reply、notification。

 


RPC消息分类

1、<get>

       查询的是设备当前运行的状态数据。所以,不需要使用source参数指定配置数据库。如果server支持能力:urn:ietf:params:netconf:capability:xpath:1.0则还可以使用filter进行条件查询。

<rpc message-id="101"xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <get-config>
        <source>
            <running/>
        </source>
        <filter type="subtree">
            <top xmlns="http://example.com/schema/1.2/config">
                <users/>
            </top>
        </filter>
    </get-config>
</rpc>

2、<get-config>

      查询的是设备当前配置数据,即只能从配置数据库中获取数据。需要使用source参数指定配置数据库。如果server支持能力:urn:ietf:params:netconf:capability:xpath:1.0则还可以使用filter进行条件查询。

<rpc message-id="101"  xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <get-config>
       <source>
          <running/>
       </source>
       <filter type="subtree">
          <ifm xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
             <interfaces>
                <interface/>
             </interfaces>
          </ifm>
        </filter>
     </get-config>

3、<edit-config>

      用来把全部或部分配置数据加载到指定的目标配置数据库。

      NETCONF服务器支持URL能力,可以使用标识本地配置文件的参数替代参数。一组由数据模型定义的层次化的配置数据中可能包含可选的“operation”属性,用来给配置数据指定操作类型。如果未携带“operation”属性,则默认为merge操作。

<edit-config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <target>
        <running/>
    </target>
    <default-operation>merge</default-operation>
    <error-option>rollback-on-error</error-option>
    <config>
    </config>
</edit-config>


4、<copy-config>

      源配置数据库替换目标配置数据库。如果目标配置数据库没有创建,则直接创建配置数据库,否则用源配置数据库直接覆盖目标配置数据库。

<rpc message-id="101"
    xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <copy-config>
        <target>
            <running/>
        </target>
        <source>
            <candidate/>
        </source>
    </copy-config>
</rpc>

5、<delete-config>

      用来删除一个配置数据库,但不能删除配置数据库。

<rpc message-id="101"
    xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <delete-config>
        <target>
            <startup/>
        </target>
    </delete-config>
</rpc>

6、<lock>

用来锁定设备的配置数据库,独占配置数据库的修改权。

<rpc message-id="101"
    xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <lock>
        <target>
            <running/>
        </target>
    </lock>
</rpc>

7、<unlock>

取消锁定数据库操作,只能取消自己的锁定操作。

<rpc message-id="101"
    xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <unlock>
        <target>
            <running/>
        </target>
    </unlock>
</rpc>

8、<close-session>

用来正常关闭当前NETCONF会话。当NETCONF Server收到请求时,它将关闭当前的NETCONF会话。服务器将释放与该会话相关的所有锁和资源。在收到请求后,NETCONF Server将忽略这个会话的所有请求消息。

9、<kill-session>

用来强制关闭另一个NETCONF会话,只有管理员用户才有权限执行操作。当NETCONF Server收到请求时,它将中止该会话正在进行的所有操作,释放与该会话相关联的任何锁和资源,并关闭该会话。如果NETCONF服务器在处理操作时收到请求,它必须将配置恢复到发出确认提交之前的状态。

 

文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0