NETCONF协议与传统的命令行/SNMP协议一样,是一种网络设备管理协议,它提供了一套配置、查询网络配置和状态的机制,而YANG模型是NETCONF的数据模型,类似于MIB是SNMP的数据模型,用来描述基于NETCONF协议通信的客户端和服务器之间的交互模型。
为什么要使用NETCONF & YANG?
云时代对网络的关键诉求之一是网络自动化,包括业务快速自动发放,自动化运维等,传统的命令行和SNMP/MIB已经不适应云化网络的需求,这主要体现在1. 传统的命令行是人机接口,配置过程复杂,人工学习、配置和维护的成本特别高,而且不同厂商差异大,互通比较困难。
同样,SNMP配置效率低,支持write的节点少,不支持事务机制,可编程性差,目前主要被用于做监控类的协议
NETCONF的主要特点和实现原理:
NETCONF通信是C/S架构,通常客户端是网管、控制器或APP,服务器端是网络设备、路由器、交换机等,客户端和服务器上
存在同样的YANG模型,基于这些同样的YANG模型,客户端可以生成符合NETCONF通信规范的xml报文,服务器端也可有识别xml报文,执行响应的操作,达到通信的目的。
NETCONF采用分层的协议框架,包括对象层、操作层、PRC层和传输层,
NETCONF支持对数据的分类存储和迁移,包括running运行数据集,candidate备选数据集合startup启动数据集,
<running/>用来存放网络设备上当前处于活动状态的完整配置
<candidate/>用来于存放设备将要提交到<running/>的各项配置数据的集合,对<candidate/>的任何改变都不会影响网络设备
<startup/>用于存放设备启动时所加载的配置数据,相当于已保存的数据文件
它们之间既实现了配置隔离,又可以通过不同的操作进行配置数据迁移
NETCONF定义了更丰富的操作类型,并支持基于能力集进行扩展,通过这些丰富的操作类型,NETCONF可以对设备进行多种不同的操作,以满足不同的使用场景
两阶段配置示例--NETCONF会话基本流程:
假定用户想通过客户端配置设备接口的IP地址,在完成SSH连接、认证和授权后,
1. 由客户端启动NETCONF会话建立,并通过hello消息进行双方能力的通告
以上就是一个简单的两阶段配置示例的过程,通过xml报文的请求和响应,设备接口的IP地址被成功的修改,
联系客服