NETCONF起源
一次网络管理大会
时间:2002年6/4-6/6
地点:Reston, VA, USA
主题:Network Management
召集人:Internet Architecture Board (IAB)
与会人:network operators, protocol developers
目的:to continue the important dialog and to guide the IETFs focus on future work regarding network management
结论1:SNMP主要用做网络监控,在配置管理上是失败的
SNMP优点 :
1. 机机接口,有数据模型文件 (MIB)
2. 主要用于网络监控
SNMP缺点:
1. 基于UDP协议,无状态、无序、不可靠 (不可靠)
2. 只能对一个一个对象单独配置,而不是面向一个业务。多个对象同时配 置时,如果有些成功有些失败,会对网络造成未知影响。(不容易)
3. SNMP只是单个设备的管理,不支持网络级的配置和多设备配置协同。 (功能少)
4. 二进制接口,不易于理解 (难理解)
5. 不安全
结论2:配置设备仍使用CLI,通过CLI脚本实现自动化
CLI :基于命令行脚本的配置
优势
1. 文本接口,人容易理解
2. 直接使用Telnet/SSH,随时可用
缺点
1. 各厂商定义的各不相同,用户需要针对各厂商分别学习和开发适配脚本 (不统一)
2. 输出内容是非结构化的,不可预测、容易变化,导致解析复杂,CLI 脚本维护困难,很难实现自动化解析(不规范)
IETF开始成立工作组,落实会议结论
NETCONF简介
IETF的响应:NETCONF应运而生
NETCONF,是Network Configuration Protocol的缩写,是由IETF定义的一种网络配置管理协议。
NETCONF的与众不同之处
1、远程过程调用(RemoteProcedure Call)。
一台计算机上的程序,调用另一台计算机上程序提供的方法。
• 方法名称:名称是什么
• 参数和结果:数据在底层二进制传输
• 网络传输:客户端和服务器架构,客户端和服务器之间建立TCP连接
2、可扩展标记语言(Extensible MarkupLanguage)。
• HTML,用来显示数据
• XML用来传输和存储数据。为了便于不同应用、不同平台之间的数据共享和通信
3、NETCONF协议采用分层框架,操作丰富
4、配置管理的基础:事务(Transaction)
事务,就是一个对数据库的操作序列,数据库执行过程中的一个逻辑单位
5、面向业务,配置整体生效,对网络业务影响小
传统CLI和SNMP配置方式,配置调整过程对网络业务流量的影响时间较长.
使用NETCONF的候选配置库,整体生效,可以缩短对网络业务的影响时间
NCE与设备建立NETCONF会话过程
1、传输方式:SSH,先建立SSH连接
2、再互发hello,通告各自的能力,协商协议版本,建立NETCONF会话。(能力(Capability):就是NETCONF的一个可选的功能,通过一个URI(Uniform Resource Identifier)来标识)
3、NCE从设备获取当前配置数据
4、NCE对设备进行配置操作
NETCONF协议版本演进
NETCONF协议版本演进,2011年IETF发布1.1版本
YANG语言的版本演进,2016年IETF发布1.1版本
2011年6月IETF发布RFC6243 With-defaults Capability for NETCONF
协议扩展With-defaults能力,使用户控制默认值的处理行为
2009年12月IETF发布RFC5717 Partial Lock Remote Procedure Call (RPC) for NETCONF
协议扩展Partial-lock能力,使多个用户可以并行配置
NETCONF&YANG
虽然NETCONF协议标准化了,但却没有对数据内容标准化
需求
1、要描述数据模型,就需要一门语言
2、SNMP的模型MIB(Management Information Base),平铺的表、不能区分配置和状态
3、XML的模型Schema,标签语言,对人不直观
2010年,IETF的响应:YANG应运而生
1、标准的数据模型,基于模型导出设备可识别的格式后推给设备
2、已有建模语言的优秀实践
3、YANG是一种数据建模语言
使用NETCONF访问控制特性实现基于角色的访问控制
NETCONF和RESTCONF最大的不同在操作
NETCONF多配置库,多种操作,有状态,有事务机制,有回滚,RESTCONFHTTP操作,无状态,无事务机制,无回滚