Netconf协议学习第一期

举报
大江东去 发表于 2021/11/29 17:56:39 2021/11/29
【摘要】  Netconf协议学习第一期netconf协议提供一套管理网络设备的机制,用户可以通过netconf增加、修改、删除网络设备的配置,获取网络设备的配置和状态信息。NETCONF采用的是C/S的模式:NETCONF协议内部分为4层,由下至上分别是安全传输层,消息层,操作层和内容层。在详细介绍这四层之前,需要提前建立一个概念,NETCONF认为网络的模型数据可以分为两大类,即状态数据和配置数据...

 Netconf协议学习第一期


netconf协议提供一套管理网络设备的机制,用户可以通过netconf增加、修改、删除网络设备的配置,获取网络设备的配置和状态信息。

NETCONF采用的是C/S的模式:


NETCONF协议内部分为4层,由下至上分别是安全传输层,消息层,操作层和内容层。

在详细介绍这四层之前,需要提前建立一个概念,NETCONF认为网络的模型数据可以分为两大类,即状态数据和配置数据。

  • 状态数据一般指server(设备)的固有属性数据和当前运行的状态数据等,这类数据仅能查询。
  • 而配置数据则是指由用户(以某种方式)配置到server上的数据。配置数据本身又可以存在多个数据库,标准中提到了库用于保存当前已经生效的配置;用于保存可以提交为生效的数据;以及用于保存启动时的配置数据。

NETCONF的第一大优势就是其从协议层面就已经规定其传输层必须使用带有安全加密的通信协议,例如SSHTLS等。相比与其它也允许明文传输的协议来说其在协议层面就已经对数据安全做了第一道守护。由于NETCONF协议规定必须要支持SSH,所以目前SSHNETCONF使用最广泛的传输层协议。

NETCONF的协议内容是承载在安全传输层之上的,所以NETCONF本身是一个应用层协议,NETCONF协议中并没有规定建链和保活相关的内容。

NETCONF中定义了三种消息类型,分别是hello rpcrpc-reply, notification


Hello

仅用于回话刚刚建立时netconf-servernetconf-client之间进行能力交换。

serverclient需要在回话建立后互相发送消息,并在消息中携带自身支持的能力,以及支持的netconf协议的版本号,serverclient根据自身和对方的能力信息协商使用的netconf版本。

一般来说,C/S双方互发且协商版本成功后,认为netconf会话建立成功。


rpc和rpc-reply

是由netconf-client发起的发送到netconf-server的消息。用于client请求server执行某项具体的操作。

包含一个强制属性”message-id”,这个id是一个单调递增的正整数,同一会话内不能重复。该id用于的配对。

是有netconf-server发送给netconf-clientrpc响应。不能主动发起,仅能在收到之后回复,切必须携带与收到的rpc相同的message-id

定义了两种默认的元素分别是表示未定义响应内容的rpc执行成功,而表示rpc执行失败。


notification

支持Notification上报的netconf-server需在能力交换时上报能力:

  “urn:ietf:params:netconf:capability:notification:1.0

几个关键的知识点:

  • Netconf的通知采用的是订阅发布机制,server仅会向发送过订阅请求的client发送通知。
  • Netconf的通知是以Stream进行分类的,不同类的Stream以不同的stream-name进行区分。netconf-server默认需要支持的stream-name是”NETCONF”。
  • client不能重复下发订阅,即同一Stream的订阅不能重复下发,也不能同时订阅多个Stream,订阅可以设置定时取消,如果没有设置终止时间,取消订阅需要使用close-session或者kill-session。定时取消的订阅netconf的会话还是激活的,而使用close-session或者kill-session来取消的话,netconf会话会关闭。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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