• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

11-网络管理和监控配置指导

目录

07-NETCONF配置

本章节下载 07-NETCONF配置  (487.98 KB)

07-NETCONF配置

目 

1 NETCONF

1.1 NETCONF简介

1.1.1 NETCONF协议结构

1.1.2 NETCONF报文格式

1.1.3 如何使用NETCONF

1.1.4 协议规范

1.2 FIPS相关说明

1.3 NETCONF配置任务简介

1.4 建立NETCONF会话

1.4.1 配置限制和指导

1.4.2 配置NETCONF会话公共属性

1.4.3 建立NETCONF over SOAP会话

1.4.4 建立NETCONF over SSH会话

1.4.5 建立NETCONF over Telnet或NETCONF over Console会话

1.4.6 交换能力集

1.5 获取设备配置信息

1.5.1 配置限制和指导

1.5.2 获取运行配置和运行状态

1.5.3 获取可配置的功能的变量值

1.5.4 获取NETCONF信息

1.5.5 获取YANG文件的内容

1.5.6 获取NETCONF会话信息

1.5.7 获取运行配置举例

1.5.8 获取可配置的功能的变量值配置举例

1.5.9 获取Syslog功能的变量值配置举例

1.5.10 获取NETCONF会话信息配置举例

1.6 过滤表和列的信息

1.6.1 功能简介

1.6.2 配置限制和指导

1.6.3 基于表的过滤

1.6.4 基于列的过滤

1.6.5 正则表达式过滤配置举例

1.6.6 条件匹配过滤配置举例

1.7 配置加锁和解锁

1.7.1 功能简介

1.7.2 配置限制和指导

1.7.3 配置加锁

1.7.4 配置解锁

1.7.5 加锁配置举例

1.8 下发配置

1.8.1 功能简介

1.8.2 配置步骤

1.8.3 下发配置举例

1.9 保存配置

1.9.1 功能简介

1.9.2 配置限制和指导

1.9.3 配置步骤

1.9.4 保存配置举例

1.10 加载配置文件

1.10.1 功能简介

1.10.2 配置限制和指导

1.10.3 配置步骤

1.11 回滚配置

1.11.1 配置限制和指导

1.11.2 回滚配置文件

1.11.3 回滚运行配置

1.12 开启预配置

1.13 下发命令行

1.13.1 功能简介

1.13.2 配置限制和指导

1.13.3 命令行操作

1.13.4 命令行操作配置举例

1.14 订阅事件

1.14.1 功能简介

1.14.2 配置限制和指导

1.14.3 订阅Syslog事件

1.14.4 订阅监控事件

1.14.5 订阅模块上报事件

1.14.6 订阅事件配置举例

1.15 关闭NETCONF会话

1.15.1 功能简介

1.15.2 Kill-session操作

1.15.3 Kill-session操作配置举例

1.16 退出XML视图

2 Comware V7支持的NETCONF操作

2.1.1 action

2.1.2 CLI

2.1.3 close-session

2.1.4 edit-config: create

2.1.5 edit-config: delete

2.1.6 edit-config: merge

2.1.7 edit-config: remove

2.1.8 edit-config: replace

2.1.9 edit-config测试处理选项

2.1.10 edit-config缺省操作选项

2.1.11 edit-config缺省错误处理选项

2.1.12 edit-config增量下发

2.1.13 get

2.1.14 get-bulk

2.1.15 get-bulk-config

2.1.16 get-config

2.1.17 get-sessions

2.1.18 kill-session

2.1.19 load

2.1.20 lock

2.1.21 rollback

2.1.22 save

2.1.23 unlock

 


1 NETCONF

1.1  NETCONF简介

NETCONF(Network Configuration Protocol,网络配置协议)是一种基于XML的网络管理协议,他提供了一种可编程的、对网络设备进行配置和管理的方法。用户可以通过该协议设置属性、获取属性值、获取统计信息等。这使得他在第三方软件的开发上非常便利,很容易开发出在混合不同厂商、不同设备的环境下的特殊定制的网管软件。

1.1.1  NETCONF协议结构

NETCONF协议采用分层结构,分为内容层(Content)、操作层(Operations)、RPC(Remote Procedure Call,远程调用)层和通信协议层(Transport Protocol)等。

表1-1 XML分层与NETCONF分层模型对应关系

NETCONF分层

XML分层

说明

内容层

配置数据、状态数据、统计信息等

被管理对象的集合,可以是配置数据、状态数据、统计信息等

NETCONF协议具体可读写的数据请参见《NETCONF XML API 手册》

操作层

<get>,<get-config>,<edit-config>…

在RPC中应用的基本的原语操作集,这些操作组成NETCONF的基本能力

NETCONF全面地定义了对被管理设备的各种基础操作,设备支持的操作请参见“2 Comware V7支持的NETCONF操作

RPC层

<rpc>,<rpc-reply>

为RPC模块的编码提供了简单的、传输协议无关的机制。通过使用<rpc>和<rpc-reply>元素分别对NETCONF请求和响应数据(即操作层和内容层的内容)进行封装

通信协议层

非FIPS模式下:Console/Telnet/SSH/HTTP/HTTPS/TLS

FIPS模式下:

Console/SSH/HTTPS/TLS

为NETCONF提供面向连接的、可靠的、顺序的数据链路。

非FIPS模式下:

·     NETCONF支持Telnet、SSH和Console等CLI登录方式/协议,即NETCONF over SSH、NETCONF over Telnet和NETCONF over Console

·     NETCONF支持封装成SOAP(Simple Object Access Protocol,简单对象访问协议)报文后通过HTTP或HTTPS协议传输,即NETCONF over SOAP over HTTP和NETCONF over SOAP over HTTPS

FIPS模式下:

·     NETCONF支持SSH和Console等CLI方式/协议,即NETCONF over SSH和NETCONF over Console

·     NETCONF支持封装成SOAP报文后通过HTTPS协议传输,即NETCONF over SOAP over HTTPS

 

1.1.2  NETCONF报文格式

1. NETCONF

NETCONF命令必须符合XML语言的基本格式,格式遵循RFC 4741。

NETCONF操作以及可操作的数据项,请参见《NETCONF XML API手册》。NETCONF报文的数据合法性都将经过校验才会下发,如果校验失败则会向客户端报错。其中,数据合法性校验通过XML Schema的方式完成。

如下为一个NETCONF报文示例,用于获取设备上所有接口的所有参数:

<?xml version="1.0" encoding="utf-8"?>

<rpc message-id="100" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

  <get-bulk>

    <filter type="subtree">

      <top xmlns="//m.natachou.com/netconf/data:1.0">

        <Ifmgr>

          <Interfaces>

                 <Interface/>

          </Interfaces>

        </Ifmgr>

      </top>

    </filter>

  </get-bulk>

</rpc>

2. NETCONF over SOAP

NETCONF over SOAP之后,NETCONF报文会放在SOAP报文的BODY元素里,这些报文除了需要遵循纯NETCONF报文的规则外,还需要遵循以下规则:

·     SOAP消息必须用XML来编码。

·     SOAP消息必须使用SOAP Envelope命名空间。

·     SOAP消息必须使用SOAP Encoding命名空间。

·     SOAP消息不能包含DTD(Document Type Definition,文件类型定义)引用。

·     SOAP消息不能包含XML处理指令。

如下为一个NETCONF over SOAP报文示例,用于获取设备上所有接口的所有参数:

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">

  <env:Header>

    <auth:Authentication env:mustUnderstand="1" xmlns:auth="//m.natachou.com/netconf/base:1.0">

      <auth:AuthInfo>800207F0120020C</auth:AuthInfo>

    </auth:Authentication>

  </env:Header>

  <env:Body>

    <rpc message-id="100" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

      <get-bulk>

        <filter type="subtree">

          <top xmlns="//m.natachou.com/netconf/data:1.0">

            <Ifmgr>

              <Interfaces>

                <Interface/>

              </Interfaces>

            </Ifmgr>

          </top>

        </filter>

      </get-bulk>

    </rpc>

  </env:Body>

</env:Envelope>

1.1.3  如何使用NETCONF

用户可通过以下方式来使用NETCONF配置和管理设备:

·     通过Telnet、SSH和Console登录到设备并进入XML视图,将合法的NETCONF报文直接拷贝、粘贴到命令行提示符处执行,即可实现对设备的配置和管理。

·     使用配置工具给设备下发NETCONF指令来实现对设备的配置和管理。该方式需要将NETCONF指令用SOAP封装成通用的格式,以便设备能够正常转换。因此,使用该方式前必须开启NETCONF over SOAP功能。

1.1.4  协议规范

与NETCONF、SOAP协议相关的协议规范有:

·     RFC 3339:Date and Time on the Internet: Timestamps

·     RFC 4741:NETCONF Configuration Protocol

·     RFC 4742:Using the NETCONF Configuration Protocol over Secure SHell (SSH)

·     RFC 4743:Using NETCONF over the Simple Object Access Protocol (SOAP)

·     RFC 5277:NETCONF Event Notifications

·     RFC 5381:Experience of Implementing NETCONF over SOAP

·     RFC 5539:NETCONF over Transport Layer Security (TLS)

·     RFC 6241:Network Configuration Protocol

1.2  FIPS相关说明

设备运行于FIPS模式时,本特性部分配置相对于非FIPS模式有所变化,具体差异请见本文相关描述。有关FIPS模式的详细介绍请参见“安全配置指导”中的“FIPS”。

1.3  NETCONF配置任务简介

NETCONF配置任务如下:

(1)     建立NETCONF会话

a.     (可选)配置NETCONF会话公共属性

b.     建立NETCONF over SOAP会话

c.     建立NETCONF over SSH会话

d.     建立NETCONF over Telnet或NETCONF over Console会话

e.     交换能力集

(2)     (可选)获取设备配置信息

¡     获取运行配置和运行状态

¡     获取可配置的功能的变量值

¡     获取NETCONF信息

¡     获取YANG文件的内容

¡     获取NETCONF会话信息

(3)     (可选)过滤表和列的信息

¡     基于表的过滤

¡     基于列的过滤

(4)     (可选)配置加锁和解锁

a.     配置加锁

b.     配置解锁

(5)     (可选)下发配置

(6)     (可选)配置文件管理

¡     保存配置

¡     加载配置文件

¡     回滚配置

(7)     (可选)开启预配置

(8)     (可选)下发命令行

(9)     (可选)订阅事件

¡     订阅Syslog事件

¡     订阅监控事件

¡     订阅模块上报事件

(10)     (可选)关闭NETCONF会话

(11)     (可选)退出XML视图

1.4  建立NETCONF会话

1.4.1  配置限制和指导

建立NETCONF会话后,客户端先与设备进行能力集交互,完成能力集的交互后,设备才会处理客户端发送的其他请求。

多个用户同时配置设备时,可能会导致用户配置与配置结果不一致,因此,请避免多个用户同时配置设备。

设备同一时间内允许建立的最大会话数可以通过aaa session-limit命令配置,关于该命令的详细描述,请参见“安全配置指导”中的“AAA”。用户数超过上限后,新登录的用户将登录失败。

1.4.2  配置NETCONF会话公共属性

1. 功能简介

NETCONF支持共用命名空间和专用命名空间,两种类型的命名空间互不兼容。客户端与设备必须使用相同的命名空间才能建立会话。如果客户端不支持共用命名空间,则需要配置本功能,使设备和客户端建立会话时使用专用命名空间。

·     共用命名空间:各模块共用一个命名空间。缺省情况下,设备使用共用命名空间。使用共用命名空间的报文中,命名空间位于<top>元素中,模块位于<top>元素下,报文示例如下:

<rpc message-id="100" xmlns="urn:ietf:Params:xml:ns:netconf:base:1.0">

   <get-bulk>

      <filter type="subtree">

         <top xmlns="//m.natachou.com/netconf/data:1.0">

            <Ifmgr>

               <Interfaces>

               </Interfaces>

            </Ifmgr>

         </top>

      </filter>

   </get-bulk>

</rpc>

·     专用命名空间:每个模块单独使用一个命名空间。使用专用命名空间的报文中无<top>元素,命名空间位于模块名后,报文示例如下:

<rpc message-id="100" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

   <get-bulk>

      <filter type="subtree">

            <Ifmgr xmlns="//m.natachou.com/netconf/data:1.0-Ifmgr">

               <Interfaces>

               </Interfaces>

            </Ifmgr>

      </filter>

   </get-bulk>

</rpc>

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置NETCONF会话超时时间。

netconf { agent | soap } idle-timeout minute

属性

说明

agent

agent表示如下NETCONF会话类型:

·     NETCONF over SSH

·     NETCONF over Telnet

·     NETCONF over Console

缺省超时时间为0(不超时)

soap

soap表示如下NETCONF会话类型:

·     NETCONF over SOAP over HTTP

·     NETCONF over SOAP over HTTPS

缺省超时时间为10分钟

 

(3)     开启NETCONF日志功能。

netconf log source { all | { agent | soap } * } { protocol-operation { all | { action | config | get | set | session | syntax | others } * } | row-operation | verbose }

缺省情况下,NETCONF日志功能处于关闭状态。

(4)     配置设备使用专用命名空间。

netconf capability specific-namespace

缺省情况下,设备使用共用命名空间。

配置NETCONF使用专用命名空间后,需要重新建立NETCONF会话,使客户端和设备使用相同的命名空间。

1.4.3  建立NETCONF over SOAP会话

1. 功能简介

NETCONF支持封装成SOAP报文后通过HTTP或HTTPS协议传输,即NETCONF over SOAP over HTTP和NETCONF over SOAP over HTTPS,使用该功能后,用户可以通过配置工具给设备下发NETCONF指令来实现对设备的访问。

2. 配置限制和指导

用户可以配置在SOAP请求的<UserName>中携带认证域信息,该信息仅对当前请求生效。通过netconf soap domain命令配置强制认证域后,SOAP请求中携带的认证域不生效。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     (可选)配置基于HTTPS的NETCONF over SOAP功能与SSL服务器端策略关联。

netconf soap https ssl-server-policy policy-name

缺省情况下,基于HTTPS的NETCONF over SOAP功能未与SSL服务器端策略关联。

配置该功能后,设备将使用SSL服务器端策略指定的加密套件等SSL参数建立NETCONF连接,以加强基于HTTPS的NETCONF over SOAP功能的安全性。有关SSL服务器端策略的配置,请参见“安全配置指导”中的“SSL”。

(3)     开启NETCONF over SOAP功能。

(非FIPS模式)

netconf soap { http | https } enable

(FIPS模式)

netconf soap https enable

缺省情况下,NETCONF over SOAP处于关闭状态。

(4)     配置设备发送的SOAP报文的DSCP优先级。

(非FIPS模式)

netconf soap { http | https } dscp dscp-value

(FIPS模式)

netconf soap https dscp dscp-value

缺省情况下,设备发送的SOAP报文的DSCP优先级为0。

(5)     配置NETCONF over SOAP关联IPv4 ACL,只有IPv4 ACL允许通过的客户端可以与设备建立NETCONF over SOAP会话。

(非FIPS模式)

netconf soap { http | https } acl { ipv4-acl-number | name ipv4-acl-name }

(FIPS模式)

netconf soap https acl { ipv4-acl-number | name ipv4-acl-name }

缺省情况下,未配置NETCONF over SOAP关联IPv4 ACL。

(6)     配置NETCONF用户的强制认证域。

netconf soap domain domain-name

缺省情况下,未配置NETCONF用户的强制认证域。

配置该功能后,所有用户都会使用强制认证域进行认证。关于认证域的详细介绍请参见“安全配置指导”中的“AAA”。

(7)     通过配置工具与设备建立NETCONF over SOAP会话。关于配置工具的使用方法,具体参见配置工具的配置指导。

1.4.4  建立NETCONF over SSH会话

1. 配置限制和指导

进入XML视图后,用户需要严格按照NETCONF报文格式将报文拷贝、粘贴到XML视图中,请勿手工输入NETCONF报文。

在一次NETCONF操作完成前,请勿进行其他任何操作(例如粘贴NETCONF报文或输入回车),否则可能导致NETCONF配置失败。

在XML视图下进行NETCONF配置时,NETCONF报文最后需要添加“]]>]]>”结束符,否则设备无法识别。本手册举例中,为方便识别XML格式,均未添加该结束符,实际操作中请自行添加。

2. 配置准备

通过命令行建立NETCONF over SSH会话前,请先通过SSH登录到设备。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启NETCONF over SSH。

netconf ssh server enable

缺省情况下,NETCONF over SSH处于关闭状态。

(3)     配置NETCONF over SSH的监听端口。

netconf ssh server port port-number

缺省情况下,NETCONF over SSH的监听端口为830。

(4)     建立NETCONF over SSH会话。请选择其中一项进行配置。

¡     通过配置工具与设备建立NETCONF over SSH会话。关于配置工具的使用方法,具体参见配置工具的配置指导。

¡     请依次执行以下命令建立NETCONF over SSH会话。

quit

xml

进入XML视图,即表示成功建立NETCONF over SSH会话。

1.4.5  建立NETCONF over Telnet或NETCONF over Console会话

1. 配置限制和指导

进入XML视图后,用户需要严格按照NETCONF报文格式将报文拷贝、粘贴到XML视图中,请勿手工输入NETCONF报文。

在一次NETCONF操作完成前,请勿进行其他任何操作(例如粘贴NETCONF报文或输入回车),否则可能导致NETCONF配置失败。

在XML视图下进行NETCONF配置时,NETCONF报文最后需要添加“]]>]]>”结束符,否则设备无法识别。本手册举例中,为方便识别XML格式,均未添加该结束符,实际操作中请自行添加。

2. 配置准备

建立NETCONF over Telnet或NETCONF over Console会话前,请先通过Telnet或Console口登录到设备。

3. 配置步骤

请在用户视图下执行本命令,进入XML视图。

xml

进入XML视图,即表示成功建立NETCONF over Telnet或NETCONF over Console会话。

1.4.6  交换能力集

1. 功能简介

建立NETCONF会话后,客户端和设备必须交换各自支持的能力集,双方收到对方的能力集后才可以进行下一步操作。

2. 设备发送给客户端的报文

建立NETCONF会话后,设备会发送如下报文自动告知客户端支持的NETCONF能力集:

<?xml version="1.0" encoding="UTF-8"?><hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"><capabilities><capability>urn:ietf:params:netconf:base:1.1</capability><capability>urn:ietf:params:netconf:writable-running</capability><capability>urn:ietf:params:netconf:capability:notification:1.0</capability><capability>urn:ietf:params:netconf:capability:validate:1.1</capability><capability>urn:ietf:params:netconf:capability:interleave:1.0</capability><capability>urn:h3c:params:netconf:capability:h3c-netconf-ext:1.0</capability></capabilities><session-id>1</session-id></hello>]]>]]>

<capabilities>和</capabilities>之间的内容表示设备支持的能力集,以具体设备实际情况为准。

<session-id>和</session-id>之间的内容表示为本次会话分配的会话ID,用来唯一标识本次会话。

3. 客户端发送给设备的报文

客户端收到设备发送的能力集协商报文后,需要给设备发送如下格式的报文,告知设备客户端支持哪些NETCONF能力集。

Hello协商报文格式如下:

<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

  <capabilities>

    <capability>

     capability-set

   </capability>

 </capabilities>

</hello>

属性

说明

capability-set

客户端支持的能力集,由用户定义

一个<capability>和</capability>选项对中只能填写一个能力集,可以使用多个选项对,配置多个能力集

 

1.5  获取设备配置信息

1.5.1  配置限制和指导

用户执行<get>、<get-bulk>、<get-config>或<get-bulk-config>操作获取设备数据时,如果所获取数据中包含NETCONF不能识别的字符,则NETCONF将该字符转换为“?”输出到客户端。

<get><netconf-state/></get>操作不支持数据过滤。

关于获取设备配置信息操作的详细规则,请参见《NETCONF XML API手册》。

1.5.2  获取运行配置和运行状态

设备支持通过<get>操作获取设备运行状态和运行配置。

设备支持通过<get-bulk>操作从指定索引的下一条开始获取N条运行状态和运行配置(索引行数据不返回)。

<get>操作会返回所有符合条件的数据,在某些情况下,会导致获取数据效率不高。<get-bulk>允许用户从固定数据项开始,向后获取指定条目的数据记录。

<get>和<get-bulk>报文的通用格式如下:

<?xml version="1.0" encoding="UTF-8"?>

<rpc message-id="100" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

  <getoperation>

    <filter>

      <top xmlns="//m.natachou.com/netconf/data:1.0">

          指定模块,子模块,表名,列名

      </top>

    </filter>

  </getoperation>

</rpc>

属性

说明

getoperation

可以为get或者get-bulk

filter

用于过滤信息,<filter>中可包括模块名、子模块名、表名和列名:

·     如果不指定模块(子模块),则表示全部模块(子模块)。指定模块(子模块)时,则返回数据只包含指定模块(子模块)。

·     如果模块下不指定表,则表示全部表。指定表时,则返回数据只包含指定表

·     如果只指定索引列,则返回的数据包括全部的列。如果同时指定索引列之外的其他列,则返回的数据仅包含索引列和指定的列

 

·     <get-bulk>操作报文中可以携带count和index属性。

属性

说明

index

指定索引。如未指定索引,则以第一条操作为索引

count

获取指定数量的运行状态和运行配置信息。count属性遵循如下约定:

·     count属性的位置在可以从top下的节点开始,到表节点为止,即:模块节点,表节点这几个位置都能放置count属性,其他位置的count将不被解释

·     如果count放在模块节点上,则报文中指定的子孙节点(表)中没有count的都默认count属性的值和模块一致

·     如果不指定count,或者数据表中符合条件的数据记录小于count,则获取从指定索引开始的所有数据

 

如下为一个携带了count和index属性的<get-bulk>操作报文示例:

<?xml version="1.0" encoding="UTF-8"?>

<rpc message-id="100" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:xc="//m.natachou.com/netconf/base:1.0">

  <get-bulk>

    <filter type="subtree">

      <top xmlns="//m.natachou.com/netconf/data:1.0" xmlns:base="//m.natachou.com/netconf/base:1.0">

        <Syslog>

          <Logs xc:count="5">

            <Log>

              <Index>10</Index>

           </Log>

             </Logs>

        </Syslog>

      </top>

    </filter>

  </get-bulk>

</rpc>

·     获取接口数据时,如果IfIndex和vrfindex元素的值为数字,设备无法识别该值为名称类型还是索引类型。此时,用户可以使用valuetype指定该值的类型。valuetype取值为:

属性

说明

name

值为名称类型

index

值为索引类型

auto

设备先按名称类型进行匹配,如果没有匹配到任何信息,再按照索引类型进行匹配

如果不指定valuetype的属性,缺省使用auto

 

下面以IfIndex元素值为index类型,值为1为例:

<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

  <getoperation>

    <filter>

      <top xmlns="//m.natachou.com/netconf/config:1.0" xmlns:base="//m.natachou.com/netconf/base:1.0">

       <VLAN>

        <TrunkInterfaces>

          <Interface>

            <IfIndex base:valuetype="index">1</IfIndex>

          </Interface>

        </TrunkInterfaces>

       </VLAN>

      </top>

    </filter >

  </getoperation>

</rpc>

设备收到配置获取请求报文后会将相应属性的值通过如下报文反馈给客户端:

<?xml version="1.0"?>

<rpc-reply message-id="100"

           xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

  <data>

     全部配置数据和状态数据

  </data>

</rpc-reply>

1.5.3  获取可配置的功能的变量值

设备支持通过<get-config>和<get-bulk-config>操作获取设备所有可配置的功能的变量值。

<get-config>和<get-bulk-config>操作报文中可以包含子标签<filter>,用来对要获取的信息进行过滤。

<get-config>和<get-bulk-config>的通用报文格式为:

<?xml version="1.0"?>

<rpc message-id="100" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

  <get-config>

    <source>

      <running/>

    </source>

    <filter>

      <top xmlns="//m.natachou.com/netconf/config:1.0">

          指定模块,子模块,表名,列名

      </top>

    </filter>

  </get-config>

</rpc>

设备收到配置获取请求报文后会将相应配置通过如下报文反馈给客户端:

<?xml version="1.0"?>

<rpc-reply message-id="100" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

  <data>

    所有指定filter内的数据

  </data>

</rpc-reply>

1.5.4  获取NETCONF信息

<get><netconf-state/></get>报文的通用格式为:

<?xml version="1.0" encoding="UTF-8"?>

<rpc message-id="m-641" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

<get>

<filter type='subtree'>

<netconf-state xmlns='urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring'>

             <getType/>

</netconf-state>

</filter>

</get>

</rpc>

其中,getType可以为capabilities、datastores、schemas、sessions或者statistics:

·     不指定getType时,该操作则获取NETCONF全部信息。

·     当指定getType时,该操作仅返回相应类型的应答数据。其中,getType取值为:

属性

说明

capabilities

该操作用来获取设备能力集

datastores

该操作用来获取设备中的数据库

schemas

该操作用来获取设备中的YANG文件名称列表

sessions

该操作用来获取设备中的会话信息

statistics

该操作用来获取NETCONF的统计信息

 

# 设备收到NETCONF信息获取请求报文后,将相应属性的值通过如下报文反馈给客户端:

<?xml version="1.0"?>

<rpc-reply message-id="100" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

  <data>

     全部NETCONF全部相关信息

  </data>

</rpc-reply>

1.5.5  获取YANG文件的内容

YANG文件中保存了设备支持的NETCONF操作,用户通过获取、并分析YANG文件的内容,从而获知设备支持哪些NETCONF操作。

YANG文件集成在设备软件中,命名格式为yang_identifier@yang_version.yang,用户不能通过dir命令显示YANG文件名,关于如何获取设备上YANG文件名称,详细请参见“1.5.4  获取NETCONF信息

如下报文要求返回名称为[email protected]的YANG文件中的数据:

<rpc message-id="100" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

<get-schema xmlns='urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring'>

<identifier>syslog-data</identifier>

<version>2017-01-01</version>

<format>yang</format>

</get-schema>

</rpc>

设备收到YANG文件获取请求报文后,将相应属性的值通过如下报文反馈给客户端:

<?xml version="1.0"?>

<rpc-reply message-id="100"

           xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

  <data>

     指定YANG文件内容

  </data>

</rpc-reply>

1.5.6  获取NETCONF会话信息

使用该功能用户可以获取当前设备的所有NETCONF会话信息。

获取NETCONF会话信息的格式为:

<?xml version="1.0" encoding="UTF-8"?>

<rpc message-id="100" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

  <get-sessions/>

</rpc>

设备收到命令行指令后会回应客户端,当客户端收到如下报文时,表示命令行执行成功:

<?xml version="1.0" encoding="UTF-8"?>

<rpc-reply message-id="100" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

  <get-sessions>

    <Session>

      <SessionID>用户会话ID信息</SessionID>

      <Line>line信息</Line>

      <UserName>用户登录名称</UserName>

      <Since>用户登录时间</Since>

      <LockHeld>用户是否持有锁</LockHeld>

    </Session>

  </get-sessions>

</rpc-reply>

1.5.7  获取运行配置举例

1. 组网需求

获取接口表的一条数据

2. 配置步骤

# 进入XML视图。

<Sysname> xml

# 进行能力交换。

请将以下报文拷贝、粘贴到客户端:

<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

  <capabilities>

    <capability>urn:ietf:params:netconf:base:1.0</capability>

  </capabilities>

</hello>

# 获取接口表的一条数据。

请将以下报文拷贝、粘贴到客户端:

<rpc message-id="100" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:web="urn:ietf:params:xml:ns:netconf:base:1.0">

  <get-bulk>

    <filter type="subtree">

      <top xmlns="//m.natachou.com/netconf/data:1.0" xmlns:web="//m.natachou.com/netconf/base:1.0">

        <Ifmgr>

          <Interfaces web:count="1">

          </Interfaces>

        </Ifmgr>

      </top>

    </filter>

  </get-bulk>

</rpc>

3. 验证配置

# 如果客户端收到类似如下的报文,则表示操作成功:

<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:web="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="100">

  <data>

    <top xmlns="//m.natachou.com/netconf/data:1.0">

      <Ifmgr>

        <Interfaces>

          <Interface>

            <IfIndex>3</IfIndex>

            <Name>Ten-GigabitEthernet1/0/2</Name>

            <AbbreviatedName>XGE1/0/2</AbbreviatedName>

            <PortIndex>3</PortIndex>

            <ifTypeExt>22</ifTypeExt>

            <ifType>6</ifType>

            <Description>Ten-GigabitEthernet1/0/2 Interface</Description>

            <AdminStatus>2</AdminStatus>

            <OperStatus>2</OperStatus>

            <ConfigSpeed>0</ConfigSpeed>

            <ActualSpeed>100000</ActualSpeed>

            <ConfigDuplex>3</ConfigDuplex>

            <ActualDuplex>1</ActualDuplex>

          </Interface>

        </Interfaces>

      </Ifmgr>

    </top>

  </data>

</rpc-reply>

1.5.8  获取可配置的功能的变量值配置举例

1. 组网需求

获取所有可配置的功能的变量值。

2. 配置步骤

# 进入XML视图。

<Sysname> xml

# 进行能力交换。

请将以下报文拷贝、粘贴到客户端:

<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

  <capabilities>

    <capability>

            urn:ietf:params:netconf:base:1.0

    </capability>

  </capabilities>

</hello>

# 获取模块所有配置数据。

请将以下报文拷贝、粘贴到客户端:

<rpc message-id="100" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

  <get-config>

    <source>

      <running/>

    </source>

  </get-config>

</rpc>

3. 验证配置

# 如果客户端收到类似如下的报文,则表示操作成功:

<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:web="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="100">

    <data>

        <top xmlns="//m.natachou.com/netconf/config:1.0">

            <Ifmgr>

                <Interfaces>

                    <Interface>

                        <IfIndex>1307</IfIndex>

                        <Shutdown>1</Shutdown>

                    </Interface>

                    <Interface>

                        <IfIndex>1308</IfIndex>

                        <Shutdown>1</Shutdown>

                    </Interface>

                    <Interface>

                        <IfIndex>1309</IfIndex>

                        <Shutdown>1</Shutdown>

                    </Interface>

                    <Interface>

                        <IfIndex>1311</IfIndex>

                            <VlanType>2</VlanType>

                    </Interface>

                    <Interface>

                        <IfIndex>1313</IfIndex>

                            <VlanType>2</VlanType>

                    </Interface>

                </Interfaces>

            </Ifmgr>

            <Syslog>

                <LogBuffer>

                    <BufferSize>120</BufferSize>

                </LogBuffer>

            </Syslog>

            <System>

                <Device>

                    <SysName>Sysname</SysName>