目录
一、NETCONF、RESTCONF和YANG是之间什么关系?
二、Netconf简介
2.1、一般使用工具:MG-Soft 简介
三、Netconf YANG 原理与实践
3.1、NETCONF协议
3.2、YANG建模语言
3.3、RESTCONF协议
网管协议:
- SNMP(基于UDP)
- Netconf(功能更强大)
一、NETCONF、RESTCONF和YANG是之间什么关系?
YANG是建模语言用于描述NETCONF和RESTCONF的内容层。NETCONF和RESTCONF区别在于RESTCONF基于HTTP构建传输层、消息层和操作层,而NETCONF使用SSH为传输层、RPC为消息层和NETCONF定义的操作层。
- NETCONF是网络配置协议,提供一套管理网络设备的机制。用户可以使用这套机制增加、修改、删除网络设备的配置,获取网络设备的配置和状态信息。
- YANG是一种数据建模语言,YANG模型定义了数据的层次化结构,可用于基于NETCONF的操作。
- RESTCONF使用HTTP的方法对设备YANG定义的数据进行操作。
二、Netconf简介
Yang定义中文翻译:关于RFC7950中文翻译 - 《YANG 1.1 数据建模语言》 - 书栈网 · BookStack
NETCONF定义中文翻译:关于RFC6241中文翻译 - 《RFC 6241 (Network Configuration Protocol (NETCONF))中文》 - 书栈网 · BookStack
2.1、一般使用工具:MG-Soft 简介
yang模型重要的有:
- 命名空间(本模块以及外部模块)
- 字段存在的条件
- 字段的合法输入的规则(枚举的可选项,数字的范围,字符串的长度或正则表达式)
XMl编码:
XML是NETCONF协议的编码格式。NETCONF用文本文件表示复杂的层次化数据。
XML编码格式文件头为:
- <?:表示一条指令的开始。
- xml:表示此文件是XML文件。
- version:XML版本号。"1.0"表示使用XML1.0标准版本。
- encoding:字符集编码格式,当前仅支持UTF-8编码。
- ?>:表示一条指令的结束。
XML文档形成了一种树结构,从根开始展开。
标签为私有。XML语言没有预定义的标签,允许使用者自定义标签和文档结构。
标签格式嵌套内容。“/”表示结束当前标签。
三、Netconf YANG 原理与实践
- NETCONF协议
- YANG建模语言
- RESCONF协议
3.1、NETCONF协议
NETCONF简介:
NETCONF(NetworkConfiguration Protocol)网络配置协议,提供一套管理网络设备的机制。用户可以使用这套机制增加、修改、删除网络设备的配置,获取网络设备的配置和状态信息。
NETCONF有三个对象:
- netconf客户端
- netconf服务器
- netconf消息
NETCONF协议框架:
NETCONF协议在概念上可以划分为4层:安全传输层、消息层、操作层、内容层。
- 安全传输层(Secure Transport):为客户端和服务器之间交互提供通讯路径。当前华为使用SSH协议作为NETCONF协议的承载协议。
- 消息层(Messages) :提供一种简单的不依赖传输协议层的RPC请求和回应机制。Client把RPC请求内容封装在一个元素内,发送给Server;Server把请求处理结果封装在一个元素内,回应给Client。
- 操作层(Operations):定义一组基本的操作,作为RPC的调用方法,这些操作组成了NETCONF基本能力。
- 内容层(Content) :描述了网络管理所涉及的配置数据,而这些数据依赖于各制造商设备。目前主流的数据模型有Schema模型,YANG模型等。
1.传输层与消息层
NETCONF使用SSH实现安全传输,使用RPC(Remote Procedure Call)远程调用的机制实现客户端和服务端的通信。
RPC的框架与传输层独立,用于表示Netconf Requests(请求)和Response(响应)
- 用于封装从客户端到服务端的请求消息。头部定义message-id标示序列。
- 用户服务端回复的response消息。头部message-id保持一致。
在中被发送。一个可以包含多个
在中被发送,表示没有错误和没有数据返回。
2.操作层
NETCONF定义了一系列操作:
场景分类 | 操作 | 功能描述 |
查询数据 | | 查询配置数据 |
| 查询设备当前运行的配置和状态数据 |
编辑数据 | | 修改,创建,删除配置数据 |
备份/恢复 | | 导出配置,或用一套配置数据整体替换另一套配置数据 |
| 删除配置数据集,清空startup |
锁定/解锁 | | 加锁,独占配置数据集的修改权 |
| 解锁,放弃对配置数据集修改权的独占 |
事务操作 | | 提交数据集中的配置数据成为当前运行的配置数据 |
| 放弃配置提交试运行 |
| 放弃中还未提交的配置数据 |
| 检查指定配置数据的语法语义是否正确 |
会话操作 | | 正常地结束本NETCONF会话 |
| 强制结束其他的NETCONF会话,需管理员权限 |
NETCONF操作对象:
- 操作对象有三个配置库,可以灵活读取和编辑配置库、候选配置库与运行配置库,实现整体配置的下发、验证和回滚。
3.内容层
Netconf当前有两种建模语言,Schema和YANG:
•Schema是为了描述XML文档而定义的一套规则。Schema文件中定义了设备所有管理对象,以及管理对象的层次关系、读写属性和约束条件。(Schema是华为基于W3C XML标准,有扩展了私有预防的一种语言)
•YANG是专门为NETCONF协议设计的数据建模语言,用来为NETCONF协议设计可操作的配置数据、状态数据模型、远程调用(RPCs)模型和通知机制等。
3.2、YANG建模语言
YANG(Yet Another Next Generation)是一种数据建模语言。
YANG模型定义了数据的层次化结构,可用于基于NETCONF的操作。建模对象包括配置、状态数据、远程过程调用和通知。它可以对NETCONF客户端和服务器端之间发送的所有数据进行一个完整的描述。YANG有以下特点:
- 基于层次化的树状结构建模。
- 数据模型以模块和子模块呈现。
- 可以和基于XML的语法的YIN(YANG Indepent Notation)模型无损转换。
- 定义内置的数据类型和允许可扩展类型。
YANG的模型文件可以通过工具转换到对应格式的XML/JSON文件,被最终的NETCONF/RESTCONF消息封装。
YANG文件通过工具(例如MG-Soft)转换为NETCONF消息下发到设备
3.3、RESTCONF协议
2017年,IETF发布RFC8040 RESTCONF协议规范
RESTCONF允许Web应用以一中模块化,可拓展的方式访问网络设备的配置数据、状态数据和事件通知,有以下特点:
- RESTCONF使用HTTP的方法对设备YANG定义的数据进行操作。
- 设备NETCONF和RESTCONF可以共享YANG文件。(NETCONF和RESTCONF支持共存)
- 数据编码格式支持XML或者JSON。
RESTCONF与NETCONF对比
- NETCONF操作设备多个配置库,有事务机制,有回滚。
- RESTCONF使用HTTP的操作,无状态,无事务机制,无回滚。
一次完整的RESTCONF交互包含请求和响应
设备回复支持操作有:POST、DELETE、GET、HEAD、PATCH、OPTIONS
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)