目录
一、NETCONF、RESTCONF和YANG是之间什么关系?
网管协议:
YANG是建模语言用于描述NETCONF和RESTCONF的内容层。NETCONF和RESTCONF区别在于RESTCONF基于HTTP构建传输层、消息层和操作层,而NETCONF使用SSH为传输层、RPC为消息层和NETCONF定义的操作层。
Yang定义中文翻译:关于RFC7950中文翻译 - 《YANG 1.1 数据建模语言》 - 书栈网 · BookStack
NETCONF定义中文翻译:关于RFC6241中文翻译 - 《RFC 6241 (Network Configuration Protocol (NETCONF))中文》 - 书栈网 · BookStack
yang模型重要的有:
XMl编码:
XML是NETCONF协议的编码格式。NETCONF用文本文件表示复杂的层次化数据。
XML编码格式文件头为:
XML文档形成了一种树结构,从根开始展开。
标签为私有。XML语言没有预定义的标签,允许使用者自定义标签和文档结构。
标签格式嵌套内容。“/”表示结束当前标签。
NETCONF简介:
NETCONF(NetworkConfiguration Protocol)网络配置协议,提供一套管理网络设备的机制。用户可以使用这套机制增加、修改、删除网络设备的配置,获取网络设备的配置和状态信息。
NETCONF有三个对象:
NETCONF协议框架:
NETCONF协议在概念上可以划分为4层:安全传输层、消息层、操作层、内容层。
1.传输层与消息层
NETCONF使用SSH实现安全传输,使用RPC(Remote Procedure Call)远程调用的机制实现客户端和服务端的通信。
RPC的框架与传输层独立,用于表示Netconf Requests(请求)和Response(响应)
在中被发送。一个可以包含多个
在中被发送,表示没有错误和没有数据返回。
2.操作层
NETCONF定义了一系列操作:
场景分类 | 操作 | 功能描述 |
查询数据 | 查询配置数据 | |
查询设备当前运行的配置和状态数据 | ||
编辑数据 | 修改,创建,删除配置数据 | |
备份/恢复 | 导出配置,或用一套配置数据整体替换另一套配置数据 | |
删除配置数据集,清空startup | ||
锁定/解锁 | 加锁,独占配置数据集的修改权 | |
解锁,放弃对配置数据集修改权的独占 | ||
事务操作 | 提交数据集中的配置数据成为当前运行的配置数据 | |
放弃配置提交试运行 | ||
放弃中还未提交的配置数据 | ||
检查指定配置数据的语法语义是否正确 | ||
会话操作 | 正常地结束本NETCONF会话 | |
强制结束其他的NETCONF会话,需管理员权限 |
NETCONF操作对象:
3.内容层
Netconf当前有两种建模语言,Schema和YANG:
•Schema是为了描述XML文档而定义的一套规则。Schema文件中定义了设备所有管理对象,以及管理对象的层次关系、读写属性和约束条件。(Schema是华为基于W3C XML标准,有扩展了私有预防的一种语言)
•YANG是专门为NETCONF协议设计的数据建模语言,用来为NETCONF协议设计可操作的配置数据、状态数据模型、远程调用(RPCs)模型和通知机制等。
YANG(Yet Another Next Generation)是一种数据建模语言。
YANG模型定义了数据的层次化结构,可用于基于NETCONF的操作。建模对象包括配置、状态数据、远程过程调用和通知。它可以对NETCONF客户端和服务器端之间发送的所有数据进行一个完整的描述。YANG有以下特点:
YANG的模型文件可以通过工具转换到对应格式的XML/JSON文件,被最终的NETCONF/RESTCONF消息封装。
YANG文件通过工具(例如MG-Soft)转换为NETCONF消息下发到设备
2017年,IETF发布RFC8040 RESTCONF协议规范
RESTCONF允许Web应用以一中模块化,可拓展的方式访问网络设备的配置数据、状态数据和事件通知,有以下特点:
RESTCONF与NETCONF对比
一次完整的RESTCONF交互包含请求和响应
设备回复支持操作有:POST、DELETE、GET、HEAD、PATCH、OPTIONS