NETCONF协议提供一套管理网络设备的机制,用户可以使用这套机制增加、修改、删除网络设备的配置,获取网络设备的配置和状态信息。通过NETCONF协议,网络设备可以提供一组完备规范的API(Application Programming
Interface);应用程序可以直接使用这些API,向网络设备下发和获取配置。
NETCONF协议Client和Server之间使用RPC机制进行通讯交互。Client(AC)必须与Server(设备)成功建立一个安全的、面向链接的session,才能进行交互。Client向Server发送一个RPC请求,Server处理完用户请求后,给Client发送一个回应消息。Client的RPC请求和Server的回应消息全部采用XML编码,并且使用XML DTD 或者 XML
schema对消息内容进行充分的描述,通讯双方可以互相识别语法约束。
NETCONF的一个重要特点是,协议实现可以直接使用设备已有的功能模块。这样降低了NETCONF协议的开发成本,而且随时可以使用设备将来支持的新特性。另外,应用程序可以访问设备用户接口语法和语意内容。
NETCONF协议支持capabilities定义,协议提供:base1.0,和一组标准capabilities。NETCONF Client和Server端必须至少支持:base1.0 capabilities,其他capabilities可以选择支持。NETCONF协议提供了定义capabilities语法语意规范,设备厂商可以根据需要,定义标准的和非标准capabilities。协议允许Client与Server交互各自支持的capabilities,Client只能发送Server支持的capabilities范围内的操作请求。
NETCONF协议是自动化配置系统的基础模块。XML是NETCONF协议通讯交互的通用语言,为层次化的数据内容提供了灵活而完备的编码机制。NETCONF可以与基于XML的数据转换技术结合使用,例如XSLT,提供一个自动生成部分或全部配置数据的工具。这个工具可以从一个或多个数据库中查询各种配置相关数据,并根据不同应用场景的需要,使用XSLT脚本把这些数据转换为指定的配置数据格式。然后通过NETCONF协议把这些配置数据上传给设备执行。