• 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

  • 相关阅读:
    springboot自动配置流程,以及实现自定义springboot starter
    关于jupyter notebook的使用经验
    一次性插入一千个 ​<li>​元素到一个 ​<ul>​标签中
    Flutter json 和 对象之间的转换
    前后端跨域
    STL容器 ——stack和queue的模拟实现
    新疆维吾尔自治区工程系列建筑专业职称评审条件
    windows的powershell中apt命令的替换命令
    有奖招募——2023年度清华社“荐书官”活动今日开始了!
    内核态内存映射
  • 原文地址:https://blog.csdn.net/qq_33162707/article/details/128055196