NETCONF、RESTCONF和YANG

目录

一、NETCONF、RESTCONF和YANG是之间什么关系?

二、Netconf简介

2.1、一般使用工具:MG-Soft 简介

三、Netconf YANG 原理与实践

3.1、NETCONF协议

3.2、YANG建模语言

3.3、RESTCONF协议

网管协议:

  1. SNMP(基于UDP) 
  2. 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模型重要的有:

  1. 命名空间(本模块以及外部模块)
  2. 字段存在的条件
  3. 字段的合法输入的规则(枚举的可选项,数字的范围,字符串的长度或正则表达式)

XMl编码:

XML是NETCONF协议的编码格式。NETCONF用文本文件表示复杂的层次化数据。

XML编码格式文件头为:

  • <?:表示一条指令的开始。
  • xml:表示此文件是XML文件。
  • version:XML版本号。"1.0"表示使用XML1.0标准版本。
  • encoding:字符集编码格式,当前仅支持UTF-8编码。
  • ?>:表示一条指令的结束。

XML文档形成了一种树结构,从根开始展开。

标签为私有。XML语言没有预定义的标签,允许使用者自定义标签和文档结构。

标签格式嵌套内容。“/”表示结束当前标签

三、Netconf YANG 原理与实践

  1. NETCONF协议
  2. YANG建模语言
  3. RESCONF协议

3.1、NETCONF协议

NETCONF简介:

NETCONF(NetworkConfiguration Protocol)网络配置协议,提供一套管理网络设备的机制。用户可以使用这套机制增加、修改、删除网络设备的配置,获取网络设备的配置和状态信息。

NETCONF有三个对象:

  1. netconf客户端
  2. netconf服务器
  3. 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

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

里晓山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值