NETCONF YANG原理

article/2025/11/10 4:42:55

NETCONF YANG原理

  • 网络管理技术背景
  • NETCONF协议介绍
  • YAGN建模语言介绍
  • RESTCONF协议

网络管理技术背景

前言
对于设备的配置管理,工程师更习惯使用CLI命令行的方式与设备交互。该方式简单直接,便于理解。但是在网络自动化领域,CLI方式与设备交互存在效率较低、机器不容易理解命令等问题。
IETF为了解决设备配置管理复杂的问题,先后成立工作组,发布了NETCONF、YANG和RESTCONF相关标准。

设备数据简介
在这里插入图片描述
如何配置一台网络设备
设备的配置管理有多种方法,可以用Console线直连或者SSH等方式远程登录设备并使用CLI配置,也可以借助网管服务器使用SNMP Set配置设备MIB节点中的参数。
随着网络规模的增大、复杂性的增加,以上两种方式已经不能满足配置管理的需求。为了解决这样的问题,基于可扩展标记语言XML(Extensible Markup Language)的NETCONF协议应运而生。
在这里插入图片描述
经典配置管理的方法问题

在这里插入图片描述
网络设备的本质诉求
在这里插入图片描述
IETF工作组逐步落实会议结论
在这里插入图片描述
工程师配置设备流程
命令行是人类与设备的交互语言。工程师查询产品文档,使用命令行方式配置设备。命令行采用了嵌套的方式实现设备配置。
在这里插入图片描述
NETCONF配置设备流程
YANG文件是另一种方式的对设备数据的描述。YANG模型使用module-container-leaf结构,描述设备。例如路由器的接口,属性等信息,YANG模型详细定义了字段类型和规范。
在这里插入图片描述

  • 本例为非真实示例,YANG模型不会讲整个设备做成一个YANG文件,而是根据功能拆分成多个YANG文件。

NETCONF协议介绍

简介
NETCONF(Network Configuration Protocol)网络配置协议,提供一套管理网络设备的机制。用户可以使用这套机制增加、修改、删除网络设备的配置,获取网络设备的配置和状态信息。
在这里插入图片描述
NETCONF协议框架
NETCONF协议在概念上可以划分为4层:安全传输层、消息层、操作层、内容层
在这里插入图片描述
一个完整的NETCONF报文
在这里插入图片描述
XML编码
XML是NETCONF协议的编码格式。NETCONF用文本文件表示复杂的层次化数据。
在这里插入图片描述
NETCONF传输层与消息层
NETCONF使用SSH实现安全传输,使用RPC(Remote Procedure Call)远程调用的机制实现客户端和服务端的通信。
在这里插入图片描述
RPC的框架与传输层独立,用于表示NETCONF requests和response:
在这里插入图片描述
NETCONF基本操作
在这里插入图片描述
NETCONF操作对象
操作对象有三个配置库。可以灵活读取和编辑配置库、候选库与运行库,实现整体配置的下发、验证和回滚。
在这里插入图片描述
案例:下发VLAN配置
在这里插入图片描述

  • <config>中可能包含可选的“operation”属性,用来给配置数据指定操作类型。如果未携带“operation”属性,则默认为merge操作。
  • Operation取值如下:
    merge:在数据库中修改存在或不存在的目标数据,如果目标数据不存在则创建,如果目标数据存在则修改。这是默认操作。
    create:当且仅当配置数据库中不存在待创建的配置数据时,才能成功添加到配置数据库。如果配置数据存在,则会返回,其中包含一个值“data-exists”。
    delete:删除配置数据库中指定的配置数据记录。如果数据存在,则删除该数据,如果数据不存在,则返回,其中包含一个值“data-missing”。
    remove:删除配置数据库中指定的配置数据记录。如果数据存在,则删除该数据,如果数据不存在,则返回成功。

NETCONF内容层
在这里插入图片描述

  • Schema是华为基于W3Cxml标准,又扩展了私有语法的一种语言,在NETCONF标准没有确定和YANG模型绑定前,VRPV8已经实现了Schema。内容最丰富的是Huawei-YANG。

案例:下发VLAN配置(HUAWEI_YANG)
在这里插入图片描述
案例:下发VLAN配置(Schema)
在这里插入图片描述
NETCONF配置介绍

  • 进入NETCONF视图
[Huawei]netconf

系统视图下输入netconf,进入netconf视图。

  • 配置NETCONF服务器口号
[Huawei-netconf]protocol inbound ssh port 830

在830端口号使用SSH服务器的NETCONF服务。

  • 使用NETCONF功能
[Huawei]snetconf server enable

在TCP 22端口号上使用SSH服务器的NETCONF服务器。

  • snetconf server enable和protocol inbound ssh port 830都可以使用NETCONF功能。如果这两个命令都配置,表示客户端可以使用22端口号或者830端口号与服务器建立NETCONF连接。
  • NETOCNF使用SSH作为承载协议。在使用之前必须配置SSH。

YAGN建模语言介绍

YANG的起源
在这里插入图片描述
YNAG语言概述
YANG(Yet Another Next Generation)是一种数据建模语言,YANG模型定义了数据的层次化结构,可用于基于NETCONF的操作。建模对象包括配置、状态数据、远程过程调用和通知。它可以对NETCONF客户端和服务器端之间发送的所有数据进行一个完整的描述。Yang有以下特点:

  • 基于层次化的树状结构建模。
  • 数据模型以模块和子模块呈现。
  • 可以和基于XML的语法的YIN(YANG Indepent Notation)模型无损转换。
  • 定义内置的数据类型和允许可扩展类型。
    YANG模型的最终呈现是.yang为后缀的文件。
  • YANG起源于NETCONF,但不仅用于NETCONF。虽然统一了YANG建模语言,但是YANG 文件没有统一。
  • YANG文件可以简单分为三类:厂家私有YANG文件,IETF标准YANG和OpenConfig YANG。
  • NETCONF协议中的Config&Status Data、Notification Data和底层的RPC的消息都可以通过YANG模型来建模实现。YANG的模型文件可以通过工具转换到对应格式的XML/JSON文件,被最终的NETCONF/RESTCONF消息封装。
    认识YANG文件-Module
    加粗样式
    认识YANG文件-Leaf Node
    Leaf节点用于定义一个简单指定类型的变量,使用“leaf”关键字申明。在Leaf节点内有子声明和值,没有子节点。本例中“host-name”内有两个子声明,“type”和“description”。
    在这里插入图片描述
    认识YANG文件-Leaf List
    Leaf List用于定义一个数组类型变量,使用“leaf-list”关键字申明。本例中“domain-search”内有两个子声明,“type”和“description”。
    在这里插入图片描述
    认识YANG文件-List Nodes
    List节点用于定义一个更高层次的数据节点。一个List节点使用“key”唯一标识,可以包含多个leaf节点。
    在这里插入图片描述
    认识YANG文件-Container Nodes
    在这里插入图片描述
    认识YANG文件-Grouping
    Grouping用于定义可以重复使用的节点,一般与uses一起使用。本例中target定义了leaf address和port。Container peer中声明use target,表示复用此leaf模型。
    在这里插入图片描述
    认识YANG文件-配置数据和状态数据
    YANG文件可以申明数据类型。
    在这里插入图片描述
    认识YANG文件-数据类型
    YANG模型支持内置默认的数据类型和扩展的数据类型。“typedef”申明用于新定义扩展数据类型。
    在这里插入图片描述
    FAQ:如何加载YANG模型
    在NETCONF客户端(例如网管平台/SDN控制器)加载YANG文件。通过工具实现YANG文件转换为NETCONF消息下发到设备。
    在这里插入图片描述

RESTCONF协议

RESTCONF起源
在这里插入图片描述
RESTCONF概述
RESTCONF允许Web应用以一种模块化、可扩展的方式访问网络设备的配置数据、状态数据和事件通知。NETCONF和RESTCONF支持共存。RESTCONF较于NETCONF,使用了不同的操作方法和数据编码。
有以下特点:

  • RESTCONF使用HTTP的方法对设备YANG定义的数据进行操作(CPUD:Create、Remove、Update、Delete)
  • 设备NETCONF和RESTCONF可以共享的YANG文件
  • 数据编码格支持XML或者JSON
    在这里插入图片描述
    RESTCONF与NETCONF对比
    NETCONF操作设备多个操作库,有事务机制,有回滚。
    RESTCONF使用HTTP的操作,无状态,无事务机制,无回滚。
    在这里插入图片描述
    一次典型的RESTCONF交互
    一次完整的RESTCONF交互包含请求和响应。
    在这里插入图片描述
    本例客户端通过OPTIONS方法获取设备支持的方法,设备回复支持操作有:POST、DELETE、GET、HEAD、PATCH、OPTIONS。
    RESTCONF请求报文
    在这里插入图片描述
    请求报文头部可以包含多个字段,例如Accept、Authorization、Host、From等等参数。
    RESTCONF请求案例
    在这里插入图片描述
    RESTCONF响应报文
    在这里插入图片描述
    RESTCONF响应案例
    在这里插入图片描述

HTTP状态码
HTTP状态码(HTTP Status Code)是服务器响应状态的3位数字码,用于向客户端返回操作结果。
在这里插入图片描述
思考题
1.华为NETCONF的传输层使用什么协议?
华为使用SSH作为传输层协议。在开启设备NETCONF功能时候,需要创建SSH用户作为NETCONF用户登陆。
2.NETCONF、RESTCONF和YANG是之间什么关系?
YANG是建模语言用于描述NETCONF和RESTCONF的内容层。NETCONF和RESTCONF区别在于RESTCONF基于HTTP构建传输层、消息层和操作层,而NETCONF使用SSH为传输层、RPC为消息层和NETCONF定义的操作层。
本章总结
在这里插入图片描述


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

相关文章

NetConf Brower使用

1.下载MG-SOFT NETCONF Browser Professional Edition 官方地址 2. 安装MG-SOFT NETCONF Browser 下一步下一步操作即可。 3.连接设备 打开的时候选择Continue即可&#xff0c;无须license。 点击File->Connect ,如下&#xff1a; 输入设备用户名称&#xff1a; 这…

Netconf协议学习笔记

Netconf简介 网络配置协议NETCONF&#xff08;Network Configuration Protocol&#xff09;提供一套管理网络设备的机制&#xff0c;用户可以使用这套机制增加、修改、删除网络设备的配置&#xff0c;获取网络设备的配置和状态信息。通过NETCONF协议&#xff0c;网络设备可以提…

NETCONF、RESTCONF和YANG

目录 一、NETCONF、RESTCONF和YANG是之间什么关系&#xff1f; 二、Netconf简介 2.1、一般使用工具&#xff1a;MG-Soft 简介 三、Netconf YANG 原理与实践 3.1、NETCONF协议 3.2、YANG建模语言 3.3、RESTCONF协议 网管协议&#xff1a; SNMP&#xff08;基于UDP&#…

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里面的数据库脚本…