NETCONF YANG API简介
简介
网络配置协议NETCONF(Network Configuration Protocol)提供了一种网管和网络设备之间通信的机制,网络管理员可以利用这套机制在网管上增加、修改、删除网络设备的配置,获取网络设备的配置和状态信息。网络设备提供了规范的应用程序编程接口API(Application Programming Interface),网管可以通过NETCONF使用这些API管理网络设备。
关于NETCONF的详细内容,请参见《S2720, S5700, S6700 V200R019C10 配置指南-网络管理与监控配置》 NETCONF配置。
NETCONF报文使用XML格式,具有强大的过滤能力,而且每一个数据项都有一个固定的元素名称和位置,这使得同一厂商的不同设备具有相同的访问方式和结果呈现方式,不同厂商之间的设备也可以经过映射XML得到相同的效果,这使得它在第三方软件的开发上非常便利,很容易开发出在混合不同厂商、不同设备的环境下的特殊定制的网管软件。在这样的网管软件的协助下,使用NETCONF功能会使网络设备的配置管理工作,变得更简单更高效。
YANG是NETCONF的数据建模语言,客户端可以将RPC操作编译成XML,XML遵循YANG模型约束进行客户端和服务器之间通信。
RPC操作
NETCONF协议采用基于RPC的通讯机制,使用<rpc>和<rpc-reply>等元素来提供独立于传输协议的NETCONF请求和响应,完成对设备的配置和管理。
- <rpc>元素
<rpc>元素是用来封装NETCONF Client发送给NETCONF Server的请求。
<rpc>元素中必须有一个“message-id”属性,由发起RPC请求的Client指定,是一个字符串,一般情况下是一个递增的整数。接收处理RPC的Server不解析或修改“message-id”属性,仅简单地保存起来,以便在生成<rpc-reply>时使用。
- <rpc-reply>元素
<rpc-reply>元素用来封装RPC请求的应答消息,NETCONF Server给每个<rpc>操作回应一个使用<rpc-reply>元素封装的应答信息。
<rpc-reply>元素中必须有一个“message-id”属性,该属性值与对应的RPC请求中的相等。
- <rpc-error>元素
NETCONF Server在处理<rpc>请求的过程中,如果发生任何错误或告警,则在<rpc-reply>元素内只封装<rpc-error>元素返回给NETCONF Client。
- <ok>元素
NETCONF Server在处理<rpc>请求的过程中,如果没有发生任何错误或告警,则在<rpc-reply>元素内封装一个<ok>元素返回给NETCONF Client。