NETCONF、RESTCONF和YANG

article/2025/11/10 5:14:55

目录

一、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


http://chatgpt.dhexx.cn/article/xmDD2r0J.shtml

相关文章

NETCONF--从NETCONF/YANG看网络配置自动化

阅读冗长的NETCONF/YANG的RFC文档是相当乏味枯燥的&#xff0c;结合开发实践&#xff0c;本文试图删其繁&#xff0c;撮其要&#xff0c;给出NETCONF/YANG的轮廓和要点。 引子 NETCONF和YANG的目的是以可编程的方式实现网络配置的自动化&#xff0c;从而简化和加快网络设备和服…

Netconf

Netconf属于软件定义网络的管理和控制协议。 ETCONF协议&#xff0c;由RFC 6241定义&#xff0c;用以替代命令行界面(command line interface, CLI)、简单网络管理协议(Simple Network Management Protocol, SNMP)以及其它专有配置机制。管理软件可以使用NETCONF协议将配置数据…

NetConf简介之一篇文章读懂NetConf

一、背景 有的人早上不起床刷手机&#xff0c;有的人起床之后再卫生间刷手机&#xff0c;有的人在上班的地铁上刷手机&#xff0c;有的人在下班之后的班车上刷手机&#xff0c;有的人在晚上不睡觉刷手机。这其中有许多离不开技术&#xff0c;其中有一个技术就是网络。 网络互…

NETCONF协议详解

目录 目录概述NETCONF11协议详解 1 安全传输层2 消息层 21 hello 211 几种常用的能力 22 rpc和rpc-reply23 notification 3 操作层 31 get32 get-config33 edit-config34 copy-config35 delete-config36 lock37 unlock38 close-session39 kill-session 4 内容层 标准地图相关网…

netconf简介

简介 根据rfc6241 Network Configuration Protocol (NETCONF)介绍&#xff0c;netconf协议提供一种简单的机制&#xff0c;通过该机制网络设备进行管理。协议可以是设备对外提供一套完整并且规范的配置接口&#xff0c;管理者可以通过这些标准接口对设备进行配置操作。 netconf…

五、南向接口协议(四)——NetConf协议

文章目录 1 什么是NetConf协议2 NetConf协议的其他特点3 NETCONF协议框架3.1 NETCONF传输层3.2 NETCONF消息层&#xff08;采用RPC协议&#xff09;3.3 NETCONF操作层&#xff08;NETCONF核心&#xff09;3.4 NETCONF内容层 4 操作举例4.1 <get-config>4.2 <edit-conf…

Netconf网络配置协议讲解

目录 什么是Netconf 为什么要提出Netconf 数据的类别 传统网络配置协议 Netconf配置协议 Netconf协议架构 安全传输层 消息层 操作层 内容层 Netconf配置设备流程 通过Python进行Netconf配置 Restconf 什么是Netconf NETCONF&#xff08;Network Configuration Pr…

netconf协议

最近项目中要用到netconf协议也和设备之间进行连接&#xff0c;学习一下netconf协议并且记录下来 一&#xff1a;什么是netconf netconf协议也可以叫做网络配置协议&#xff0c;它提供了一套管理网络设备的机制&#xff0c;用户可以使用这套机制增加&#xff0c;修改&#xff0…

neq的问题

最近做一个项目&#xff0c;用的tp5&#xff0c;刚开始上手&#xff0c;就给我出现了一个莫名其妙的问题&#xff1b; 也不算是错误&#xff0c;看代码 我根据这个条件去用select查询数据库的数据&#xff0c;然后居然只给我返回一条数据&#xff0c;我以为是我的查询语句写错…

php条件判断结构一个嵌套,thinkphp:html中的if condition 嵌套写法、条件判断的各种情况(eq、neq、gt、lt、or、and) - 猫扑天空...

伪代码 术语符号 大于 gt 小于 lt 等于 eq 不等于 neq 或者 or 并且 and 变量start_time代表的含义是活动的开始时间,变量start_time代表的含义是活动的结束时间。两个变量都是时间戳的格式。下面就将显示状态一列的数据&#xff0c;各种情况下的判断条件列举出来。 等于 eq 进…

前端模板标签eq与neq的使用,以及管理系统模块权限控制

1&#xff09;方法一&#xff1a; 在超级管理员登录情况下显示 1.当前登录用户只能修改自己 2.超级管理员admin拥有查看普通用户和删除其他用户的权限&#xff0c;但删除不了自己 {volist name"userList" id"user" empty"$empty"}<tr><…

2022-03-11 工作记录--PHP-eq(表示等于)、 neq(表示不等于)

PHP-eq&#xff08;表示等于&#xff09;、 neq&#xff08;表示不等于&#xff09;

mysql neq什么意思_【知识科普】标准中的Eqv、Idt和Neq分别代表什么?

对于接触标准化的工作者&#xff0c;每日避免不了和各种各样类别的标准打交道。除了标准的分类&#xff0c;分级、层次等问题&#xff0c;一些特殊的英文字符&#xff0c;也许让很多标准化人员产生困惑&#xff0c;接下来&#xff0c;请允许小编花一些时间&#xff0c;跟您详细…

Flyway针对多数据源配置实战方案

Flyway针对多数据源配置实战方案 介绍 这篇文章主要介绍Flyway、Druid和多数据源结合起来如何配置和使用的方案。网上一些文章似乎都没有达到一开始我自己琢磨想要的程度&#xff0c;还是自己琢磨和调试出来了一套方案&#xff0c;欢迎大家斧正。 引入pom文件 首先引入对应…

Flyway学习和使用

1、什么是Flyway Flyway is an open-source database migration tool. It strongly favors simplicity and convention over configuration. It is based around just 7 basic commands: Migrate, Clean, Info, Validate, Undo, Baseline and Repair. Flyway是一款开源的数据…

flyway baseline-version

背景 使用flyway进行数据库版本控制。 问题 flyway配置 # 当迁移发现数据库非空且存在没有元数据的表时&#xff0c;自动执行基准迁移&#xff0c;新建schema_version表baseline-on-migrate: true# 开始执行基准迁移时对现有的schema的版本打标签&#xff0c;默认值为1basel…

Ruoyi集成flyway后启动报错的解决方法

ruoyi系列框架是开源中非常好的源码平台&#xff0c;使用宽松的开源协议进行源代码的开放。不管是单体版、前后端分离甚至是微服务架构&#xff0c;均提供了相应的代码。基于ruoyi可以做自己的后台系统&#xff0c;也可以学习很多技术的集成。 而flyway是java里面的数据库脚本…

快速掌握和使用Flyway

什么是Flyway? 转载&#xff1a;https://blog.waterstrong.me/flyway-in-practice/ Flyway is an open-source database migration tool. It strongly favors simplicity and convention over configuration. Flyway是一款开源的数据库版本管理工具&#xff0c;它更倾向于规约…

flyway使用说明

Flyway是一款数据库迁移&#xff08;migration&#xff09;工具。简单点说&#xff0c;就是在你部署应用的时候&#xff0c;帮你执行数据库脚本的工具。Flyway支持SQL和Java两种类型的脚本&#xff0c;你可以将脚本打包到应用程序中&#xff0c;在应用程序启动时&#xff0c;由…

Flyway 入门教程

目录 一、简单介绍 二、Flyway使用场景 三、Flyway工作原理 四、Flyway如何校验文件 五、使用Flyway 5.1 引入依赖 5.2 添加配置 5.2.1 SpringBoot配置 5.2.2 SpringMVC配置 5.3 脚本准备 六、使用Maven插件 七、特别说明 一、简单介绍 Flyway 是一款开源的数据库…