加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

技术盛宴 | 数据中心自动化运维技术探索之NETCONF

发布时间:2018-10-24 03:55:01 所属栏目:业界 来源:厂商动态
导读:数据中心交换机实现运维自动化,零配置上线技术(ZAM)只是完成了交换机预先可知的固定配置,主要是一些基本的互通以及登录相关配置。未来的业务是变化的,所以具体的与业务相关的配置还需要根据具体需求配置或更新。NETCONF(Network Configuration Proto

操作层

操作层是承载在消息层上的具体操作内容,这些具体操作仅能承载在<rpc>和<rpc-reply>消息上,<notification>消息无操作层内容。

NETCONF协议规定了9种简单的RPC操作,如表一所示:

表一:RPC基本操作

除了以上9种基本操作,NETCONF也支持用户自定义RPC操作,这里不做展开描述。

  • 内容层

内容层主要用来描述网络管理所涉及的配置数据和通知数据等。但是NETCONF并没有对于内容层的数据结构模型做标准化定义,那如何来描述内容层的相关数据呢,2006年,在NETCONF首个版本RFC 4741发布的同时,一种专门为NETCONF准备的数据建模语言YANG(RFC 6020)也同时发布。目标是对NETCONF数据模型、操作进行建模,覆盖NETCONF协议的操作层和内容层。

下图即是一个NETCONF的RPC报文中各层内容的示意。

技术盛宴 | 数据中心自动化运维技术探索之NETCONF


图四:NETCONF RPC报文示例

NECONF操作

那在这个架构下NETCONF到底是如何实现设备配置管理的?

我们来看一次NETCONF交互的流程 :

技术盛宴 | 数据中心自动化运维技术探索之NETCONF


图五:NETCONF交互流程示意

在Client和Server建立NETCONF会话后,两端先通过<hello>报文互相通知对端本端对于NETCONF的支持能力,即Capability。同步完成后Client端发起RPC操作,Server端运行后将应答消息封装入<rpc-reply>回复给Client端。对于设备配置,就是在Client端发起RPC配置相关的操作。

NETCONF定义的9项基本RPC操作中有4项与配置直接相关,包括

  • <get-config>;

  • <edit-config>;

  • <copy-config>;

  • <delete-config>。

还剩余2项与配置权限相关,2项会话关闭和1项状态数据查询。从这里也能看出NETCONF对于配置管理的重视。

可是这些好像还是没法体现NETCONF比SNMP好在哪?SNMP存在的问题如何解决的?

这里不得不引出NETCONF中另外一个重要的组成部分YANG。

YANG

YANG(Yet Another Next Generation),无法用中文给出恰当的翻译。从YANG的标准文档RFC 6020中,我们可以明确它的定位: A Data Modeling Language for the Network Configuration Protocol (NETCONF),NETCONF的数据建模语言。

为什么要YANG

NETCONF需要对设备的配置(configuration)和状态(state)做操作,例如编辑配置,获取状态,而NETCONF的内容层并没有定义标准化的数据模型。同时操作层除了定义9种基本的RPC操作,还允许自定义RPC,自定义的RPC和具体操作内容都需要进行建模,YANG就是用来完成这个建模的。

YANG使用modules和submodule进行数据建模。一个YANG module,如图六所示,定义了具有垂直结构的数据,这些数据可以被用做基于NETCONF的操作,包括配置、状态数据的描述,还有RPC操作等。它使得NETCONF的Client和Server之间能有完整的数据描述。

技术盛宴 | 数据中心自动化运维技术探索之NETCONF


图六:YANG module举例

怎么用YANG

YANG建模得到的数据具备树形结构。其中每一个节点都有一个名字,都有一个值或者一些子节点。YANG文件为这些节点,以及节点之间的交互提供明确清晰的描述,即数据模型路径。

网络设备对于NETCONF的支持,就是在设备注册YANG的数据模型路径,使设备能够根据YANG文件的数据模型路径获取数据或者写入配置。

那么对于运维人员来说只需拿到设备厂商的YANG模型,根据YANG模型的要求将相关的配置或数据参数填入,即可通过NETCONF发起相关RPC操作,完成配置或数据读取任务。

通过YANG和NETCONF,就实现了基于可编程技术的网络配置和管理,为自动化运维提供了基础。

NETCONF与SNMP对比

介绍完NETCONF,我们再回头看下NETCONG与SNMP的简单对比:

表二:SNMP&NETCONF对比

相比SNMP,NETCONF具备以下优势:

  • 简单易用,YANG模型简单易学,可读性好,且可直接映射到XML;

  • 清晰区分配置数据和状态数据,对于不同数据,存储在不同数据库中,互相区分明确;

  • 可以统一管理整个网络所有设备,而不再是基于单台设备管理;

  • 自动化的配置下发和数据收集,降低人工误操作几率;

  • 标准化数据模型(建模语言);

  • 扩展性好,除了标准操作,还可以自定义操作,实现独特管理功能;

  • 基于SSH协议,提供配置锁定等机制,数据安全性高。

NETCONF问题

NETCONF协议因其良好的易用性和扩展性,已经随着SDN技术的逐步落地得到了越来越广泛的使用,主流设备厂商设备均可以支持NETCONF功能。

但是这样是否就完美解决了网管运维面临的问题呢?答案显然是否定的。原因在于:

  • 各厂商设备支持NETCONF基本都使用私有YANG模型, 不同厂商设备不能识别其他厂商YANG文件;

  • 对于使用NETCONF运维平台的使用者,需要学习熟悉各厂商的NETCONF文档和YANG文件;

  • NETCONF YANG Model整体的标准化进程十分缓慢。

为了解决这些现实问题,业界的设备使用者们推出了另外一种标准化方案。

OpenConfig

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读