设为首页收藏本站language 语言切换
查看: 2163|回复: 0
收起左侧

[分享] NETCONF协议介绍(iMaster NCE-Campus)

[复制链接]
 成长值: 63370
发表于 2023-9-18 09:53:29 | 显示全部楼层 |阅读模式
1、目前华为控制器NCE-Campus系统采用C/S架构,控制器通过NETCONF协议实现对网络设备进行配置和管理。下面分享下有关NETCONF协议的相关知识;
2、华为NCE-Campus支持两种方式纳管设备,一个可以通过SNMP纳管传统设备、一个可以通过NETCONF纳管云化设备。当然,实际你可以使用SNMP来纳管也可以使用NETCONF来纳管,比如你现网都是华为设备(交换机/WAC/AP)建议用NETCONF来纳管,而比如是ASG5000或者第三方设备就需要使用SNMP来纳管了(具体也有纳管规格的限制)。对于华为智简园区解决方案SNMP是作为NETCONF的补充。
3、华为交换机与NCE-Campus,NETCONF的交互流程;

                               
登录/注册后可看大图

        随着SDN的大热,一个诞生了十年之久的协议焕发了第二春,它就是NETCONF协议。如果你在两年前去搜索NETCONF协议,基本得到的信息都是“这个协议是一个网管协议,主要目的是弥补SNMP协议的不足,希望可以取代SNMP协议”。SNMP有哪些不足,而NETCONF是否真的能够弥补,这都不是重点,重点是NETCONF诞生至今SNMP依旧活的好好的。所以如果我们还是把NETCONF当做一个网管协议的话,估计它会在冷板凳上一直坐下去,而如果我们换一个角度去看待NETCONF协议,你会发现也许它是最适合SDN的一个协议。
0. 概述
  NETCONF = The Network Configuration Protocol
  SDN = Software Define Network
  从文字含义上就觉得NETCONF和SDN可以在一起搞事情,搞什么事情? 搞Network啊。
  SDN要用软件去定义网络,如何定义?简单就是要用软件去配置网络,有人说”配置网络太空泛了,能不能具体点?”,但我真的没法说的具体,因为网络能配置的东西太多了,网络的设备类型多种多样,业务类型更是成百上千了,但SDN就是想在这么复杂的网络上开辟一番新的天地,NETCONF可以说是其不二的选择。
  接下来就对NETCONF1.1(RFC6241)版本进行详细分析。
1. NETCONF1.1协议详解

                               
登录/注册后可看大图
       从上图中可以看出NETCONF协议内部分为4层,由下至上分别是安全传输层,消息层,操作层和内容层。   在详细介绍这四层之前,需要提前建立一个概念,NETCONF认为网络的模型数据可以分为两大类,即状态数据和配置数据。状态数据一般指server(设备)的固有属性数据和当前运行的状态数据等,这类数据仅能查询。而配置数据则是指由用户(以某种方式)配置到server上的数据。而配置数据本身又可以存在多个数据库,标准中提到了库用于保存当前已经生效的配置;用于保存可以提交为生效的数据;以及用于保存启动时的配置数据。
1.1. 安全传输层
  NETCONF的第一大优势就是其从协议层面就已经规定其传输层必须使用带有安全加密的通信协议,例如SSH,TLS等。相比与其它也允许明文传输的协议来说其在协议层面就已经对数据安全做了第一道守护。由于NETCONF协议规定必须要支持SSH,所以目前SSH是NETCONF使用最广泛的传输层协议。
  NETCONF的协议内容是承载在安全传输层之上的,所以NETCONF本身是一个应用层协议,所以NETCONF协议中并没有规定建链和保活相关的内容。
1.2. 消息层    
       NETCONF中定义了三种消息类型,分别是hello, rpc和rpc-reply, notification。
1.3. 操作层    
       操作层仅承载在仅和消息上,和消息无操作层。
1.4. 内容层
  开放但规范的内容层是netconf协议的精髓所在。其开放体现在netconf协议本身没有对内容层的数据结构做任何的限定。而其规范则体现在其内容层需要使用Yang语言对其数据进行建模。
  在netconf出现之前,我们所熟知且常用的协议,均采用在协议中规定报文的结构体,并按字节流读取并解析的架构。为了更好的在字节流中表达更丰富的报文结构,我们采用TLV等方式来定义对象。但不知大家是否发现,这种方式几乎不具备任何扩展性,一旦扩充对象,或修改对象就需要变更代码。而如果对一个协议扩展了大量的私有数据,那么首先协议不在标准,其次协议栈的代码几乎是完全重写。
  而netconf的出现可以说直接对上述问题进行了一次”降维“打击,它完全站在了一个更高的维度来解决上述问题。其内容层未指定具体的模型结构,而是指定了一套建模语言–yang。也就是说使用yang定义的数据模型,均可以作为netconf的内容层。所以扩展对netconf来说就是不断的增加和修改yang文件而已。
  做一个比喻,传统基于字节流的协议可以比作一份具有特定可执行的程序,而NETCONF则是写程序的编程语言。
  另外一点我们在上面将操作的时候提到netcon支持用户自定义操作。也就是说我们不必纠结标准制定的9个操作类型是否够用,完全可以根据实际的需求在yang文件中定义相应的rpc操作。
       Netconf协议本身的一些扩展也是采用在标准中增加默认支持的yang文件的方式来实现的,比如yang-moudle-monitor。

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-1-31 17:57 , Processed in 0.052750 second(s), 10 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表