文章目录

  • 1 什么是NetConf协议
  • 2 NetConf协议的其他特点
  • 3 NETCONF协议框架
  • 3.1 NETCONF传输层
  • 3.2 NETCONF消息层(采用RPC协议)
  • 3.3 NETCONF操作层(NETCONF核心)
  • 3.4 NETCONF内容层
  • 4 操作举例
  • 4.1 <get-config>
  • 4.2 <edit-config>
  • 4.3 <copy-config>
  • 4.4 <delete-config>


1 什么是NetConf协议

netconf协议最早被作为网管协议被提出来的,与SNMP网管协议相比较:
SNMP的优势在于网络设备的监测,在大规模网管应用中有很大不足,正是针对这种不足之处,提出了NETCONF协议。
总结:

  1. 新一代网管协议
  2. 网络配置协议NETCONF(Network Configuration Protocol)提供一套管
    理网络设备的机制
  3. 2003年成立了NETCONF工作组,2011年更新版的RFC 6241发布
  4. NETCONF协议虽然是多个SDN控制支持的南向协议,但是他无法指导交换机进行数据转发,它与OF-Config OVSDB协议类似,是一种网络设备的配置管理协议

NETCONF协议优点(与SNMP比较):

iot模块南向接口文档 南向接口协议_sdn

2 NetConf协议的其他特点

  • 区分配置数据和状态数据,提供不同的操作进行数据的增删改查。
  • 配置数据(configuration data):对网络设备进行配置的数据;
  • 状态数据(state data):反映设备状态的数据。
  • 存在多个配置数据库

    说明:
  • Running数据库代表目前在设备上运行的配置,这个配置数据库一般提供持久化操作的指令。例如思科交换机可以通过copy命令将当前的running配置保持到startup配置,用于设备重启后的配置恢复
  • NETCONF可以支持candidate,就相当于多了一个闲置的练手数据库,可以在candidate配置数据库上进行反复配置,直到得到想要的结果,然后用commit操作将candidate的配置覆盖running配置数据库
  • 另外可以通过copy-config命令将running配置覆盖startup配置数据库。

3 NETCONF协议框架

iot模块南向接口文档 南向接口协议_网络_02

3.1 NETCONF传输层

  1. 为NETCONF连接提供可靠的序列号发送机制
  2. 提供了认证、数据完整性和安全性保障
  3. SSH作为其承载协议
    当一个安全连接建立后,客户端和服务端会通过hello消息,进行一次NETCONF消息交互

3.2 NETCONF消息层(采用RPC协议)

  • 采用基于RPC的通讯机制;
  • <rpc>:请求
  • <rpc-reply>:响应
    再交换过hello消息后,NETCONF客户端向服务端发送rpc消息对服务端的设备进行配置管理,服务端对每个rpc请求发送rpc-reply进行回应

3.3 NETCONF操作层(NETCONF核心)

提供对数据库信息的获取、配置、复制和删除等功能

iot模块南向接口文档 南向接口协议_网络_03

3.4 NETCONF内容层

iot模块南向接口文档 南向接口协议_linux_04

4 操作举例

4.1 <get-config>

iot模块南向接口文档 南向接口协议_网络_05

  1. 控制器通过RPC请求,获取交换机的配置信息,
  2. 从RPC请求的XML文档可以看出,标签标识消息层的rpc请求,get-config标签代表操作层的操作。running标签说明操作的对象是running数据库
  3. 从RPC响应的xml文档可以查看,所获取的交换机的datapath-id,所连接的控制器角色,ip和端口号等信息

4.2 <edit-config>

edit-config操作对目标数据库进行编辑,操作的属性主要包括 create replace replace merge delete

iot模块南向接口文档 南向接口协议_linux_06

4.3 <copy-config>

iot模块南向接口文档 南向接口协议_linux_07

4.4 <delete-config>

iot模块南向接口文档 南向接口协议_sdn_08