寻找OpenConfig Yang和IETF Yang的前世今生:1.Yang的缘起

举报
在逃coder 发表于 2022/07/27 12:06:53 2022/07/27
【摘要】 YANG的出现推动了NETCONF的发展,为各厂商实现通用的模型奠定基础;通过YANG模型在多厂商实现也推动NETCONF发展到新阶段。本期将为大家区分NETCONF和YANG的概念,梳理NETCONF协议及YANG语言出现背景,明确Yang模型作用及其重要性,述说YANG的缘起。

       名词 

亲爱的们,名词概念别混淆~

 NETCONF是一种协议,实现该协议的建模语言有多种,目前最广泛使用的是YANG语言;

 YANG是一种建模语言(xml的结构模型),是实现NETCONF的手段,不同组织定义的YANG存在差异,业界有很多种YANG模型。

     Yang模型分类

         (1)OpenConfig Yang

         (2)IETF/公有/标准 Yang

         (3)私有Yang

     上述Yang归根结底都是netconf 协议中的Yang功能。

     各厂商都在于积极地推动网络配置开放,企业只要基于这些Yang 文件编写控制器接口,就能通过下发一套Yang报文实现对各个厂商设备的控制,实现配置的兼容性。

.

      Netconf的出现 

     有这样一个业务场景:需求为一个POD里面几十台交换机修改Qos配置(理解为对网元进行xx配置

     早期,人肉的方式,一台台修改,运维工程人员比较累(还可能出错)。

     随着DevOps的流行,采用自动化脚本方式会节省不少人力物力。但是不同厂商不同设备,甚至不同版本之间配置指令(CLI)可能有较大差异,这意味着如果设备版本升级,运行的脚本就得更改,同时多个厂商设备,也会使脚本比较复杂,对运维人员要求较高。

     减轻运维人员的工作量,办法总是有的,于是SNMP协议就出现了,xxx多好处,主要是能解决上面的问题。但是,它还是有缺点,特别是不能满足配置管理的需求。

     然后,为了弥补SNMP的缺陷,基于可扩展标记语言XMLNETCONF协议应用而生。通俗的讲,NETCONFNetwork Configuration Protocol)协议提供一套管理网络设备的机制,用户可以使用这套机制增加、修改、删除网络设备的配置,同时还可以获取网络设备的配置和状态信息。目前绝大多数的网络设备,包括华为的网络设备支持NETCONF协议,这些网络设备提供规范的API接口,应用程序可以直接使用这些API接口(NETCONF协议报文),向网络设备发送配置指令或者获取配置信息。

10.png

     Netconf 是 IETF 发布的标准协议,它的全称是 Network Configuration Protocal。从名字就可以看出来,Netconf 的作用是基于网络来安装、操作和删除设备的配置。在 Netconf 的架构中,网络设备充当 Netconf Server 的角色,而运维人员的这一侧则是 Netconf Client。此外,和 OSI 标准模型一样,Netconf 也是分层结构

11.jpg

NETCONF是应用层协议,在逻辑上划分为4,从下到上依次为:

     01安全传输层

     安全传输层在 Netconf Client  Netconf Server 之间提供安全的端到端连接。与 SNMP 采用非面向连接的UDP 协议不同,Netconf 采用面向连接的 TCP 协议,通常是 SSH 协议,保证连接的可靠性和安全性。

     02消息层

     消息层也称为 RPC(远程过程调用)层。Netconf Server(网络设备)上面部署了 Netconf 应用,Netconf Client 需要调用 Server 上的应用所提供的函数/方法,但由于 Client  Server 不在同一个内存空间,无法直接调用,所以需要通过网络来表达调用的语义,并传达调用的数据。这个过程,称为 RPC。它提供了一个简单的,与安全传输层无关的机制来封装操作层和内容层的数据:

     • RPC 调用: <rpc元素所封装的消息

     • RPC 结果: <rpc-reply> 元素所封装的消息

     • 事件通知:  元素所封装的消息

    03操作层

     操作层定义了如图所示的 9 种基础操作集,其中:

     • <get>、 <get-config用来对设备进行取值操作

     • <edit-config> <copy-config> <delete-config用于配置设备参数

     • 和  是在对设备进行操作时,为防止并发产生混乱的锁行为

     • 和  用于结束一个会话操作

     04内容层

     顾名思义,内容层就是用来表达配置数据和状态数据,网络运维人员只需要关注数据本身,而不需要去关注设备的相关命令。基础网络设备在内容层所采用的数据格式通常是 XML,但也有厂商的数据格式采用了 JSON


      Yang的出现 

     NETCONF的学习中,我们知道内容层就是用来表达配置数据和状态数据,网络运维人员只关注数据本身,而不需要去关注设备的相关命令。

     而网络设备在内容层所采用的数据格式通常是XML,但也有厂商的数据格式采用的是JSON

     所以虽然不需要关注网络设备的操作命令,但是配置的数据还是需要有一定的结构

     YANG模型就是对内容层的建模,打个比方,向领导请假,领导说写个请假单,包含请假人的姓名,请假的起止时间,请假事由和代理人。于是我做了一个表格,包含了上述要求,并根据实际情况填入了真实信息。那么领导的描述,就可以理解为“建模”,而最后提交的填好内容的表格,就是将模型实例化了。

     那么我们不禁思考:

     是否可以理解为采用YANG模型,不同设备的差异可以通过代码去做适配呢?

14.png

     YANG的出现推动了NETCONF的发展,为各厂商实现通用的模型奠定基础;通过YANG定义的网络模型在多厂商实现也推动NETCONF发展到新阶段。我们寻找OpenConfig Yang和IETF Yang的前世今生之旅尚未结束,下期我们将一起重点了解Yang的树形结构,请大家持续关注~

.

*注:部分文档来源于网络

.


下一篇:Yang的语法结构

.


iMaster NCE AOC社区入口:    中文版社区      /    英文版社区 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。