yang模型中rpc_NETCONF、YANG、ncclient理论和实战(上)

本文介绍了NETCONF的起源、理论和实践,包括其协议框架、安全传输、操作和内容。NETCONF基于XML,用于网络配置管理,常与YANG数据模型配合使用。YANG是一种网络数据建模语言,用于标准化网络配置。文章还探讨了YANG模型和模块,以及如何使用Pyang工具。最后,文章提供了实验步骤,展示了如何通过XML代码与交换机交互,进行端口配置和查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近让我写一篇NETCONF在网络运维中实际应用的读者越来越多,趁着最近回沙特后能把KAUST堆满仓库的3850, 9200, 9300等IOS-XE真机设备拿出来做实验,趁这个机会我就写写NETCONF,YANG和ncclient,分为上、下两篇,上篇讲NETCONF和YANG,下篇讲ncclient,包含理论和实战。以后有时间也会讲讲REST和RESTCONF。


NETCONF的前世今生

2002年6月,互联网架构委员会(Internet Architeture Board,简称IAB)举办了一个主题为Network Management的workshop,邀请了一大帮研发界业内名气响当当的巨佬(大多来自IETF)共同商议讨论彼时普遍使用的网络管理协议,找出它们各自的优势和缺点,并列出一个优秀的网络管理协议必须具备的特征,准备为开发下一代网络管理协议(NextGen Network Management Protocol)做准备。2003年5月,IETF发布了RFC 3535(Overview of the 2002 IAB Network Management Workshop),正式提出了下一代网络管理协议应该具备的七大特征:

7b7030ff859bd2c269c0714fe1704448.png

在这个背景下,IETF于2006年12月率先发布了RFC 4741, 也就是NETCONF这个基于XML,用来替代CLI、SNMP的网络配置和管理协议。在随后几年加加改改进行一番修订后,IETF又于2011年6月以RFC 6241作为终稿将其再次发布。

虽然NETCONF年龄不算小,但是倒退10年前你要是问一个网络工程师什么是NETCONF(更别提YANG了),大概率你会看到对方一脸懵逼的把你看着,因为当时主流的思科IOS设备根本就不支持NETCONF,当时的思科对NETCONF并不感冒,而是自己闭门造车分别在2007年和2012年搞出了WSMA(Web Service Management Agent)和onePK这两个API。那些年跟随思科的步伐一路从CCNA,CCNP,CCIE摸爬滚打起来的网工压根就没听说过还有这么一个书上不会教,考试不会考,工作中也基本用不到的非常小众的技术。十年河东十年河西,这些年随着SDN和网络运维自动化技术的强势崛起,NETCONF终于在诞生10多年后在传统计算机网络这个行业里有了一定的曝光率,跟着RESTCONF和gRPC这俩哥们一起站在时代的风口上飞了起来。

NETCONF理论部分

关于NETCONF的理论部分网上有很多资料,最权威的肯定还是RFC 6241,这里做一下总结:

1. NETCONF的协议框架分为四层:由低到高分别为安全传输(Secure Transport),消息(Messages),操作(Operations)和内容(Content):

f4f273c705e039611abc20d4686eded9.png
  • 安全传输层最常见、最常用的是SSH,这也是NETCONF和同为最近几年炒的火热的REST(基于WEB)最大的区别
  • 消息层基于Remote Procedure Call(远程调用)这个协议,其作用是提供一个简易的不依赖于传输层,生成RPC和通知消息框架的通信协议。在后面的NETCONF实验中你会多次看到这两个东西。
  • 操作层定义了一组用来配置、复制、删除设备命令以及获取设备信息的基本操作,基本操作包括get, get-config, edit-config, copy-config, delete-config, lock, unlock, close-session, kill-session,这些基本操作都是在XML语言下被调用,比如等等,后面实验部分会讲到。
  • 内容层由管理数据内容的数据模型定义,该数据模型也就是我们后面会讲到的YANG

2. NETCONF的编码格式基于XML,基于XML来做网络管理主要是看中了XML强大的数据表示能力(对初学者来说XML其实并不怎么友好,不如JSON, YAML那么易读和容易上手,这是我个人的观点)。

3. NETCONF网络架构由客户端和服务器组成,客户端就是我们的主机,服务器就是被操控的交换机或者路由器,NETCONF默认使用端口830,可以更改。

4. NETCONF协议中还有一个重要的概念叫做数据集(Datastores),数据集的作用是用来存储一份配置数据的备份,确保设备能从开机时的初始状态进入到它能正常运行时的工作状态(说白了就是改了配置后需要write memroy,不然重启设备后配置会丢失)。数据集分为Running(类似于思科的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值