snmp与netconf

2021-07-08  本文已影响0人  6Ibaby

snmp与netconf对比

SNMP 缺点

虽然 SNMP 的出现,在一定程度上解决了网络设备的管理问题。但面对现代大规模的网络来说,依然有着很多挑战:

1.性能不足,在下发和读取配置时,采用依次读取,效率低。

2.下发不足,支持写 MIB 的对象相对于读较少。

3.不支持事务机制,在配置下发失败是,无法回滚。

4.拓展性差,提供给外部的接口较少。

5.模型兼容性差,MIB 库混乱,无法适配所有厂商,导致定义各种私有 MIB 库

NETCONF 协议提供了一种更简单的方式来管理("查询,配置,修改,删除")设备,就像数据库操作中的 DML. 同时开放了 API 接口,当想要对设备进行操作时,直接通过调用 API 进行。

对于支持 NETCONF 的设备来说,至少能开启一个或多个 session。并且在每个 session 中应用的配置更改,都可以被全局的 session 监听到。这就让一个或多个 Manager(Client) 操作同一个设备(agent)成为了可能。

相比 SNMP 而言,有着如下的优势:

1.基于 RPC,增加了事务支持

2.优化查询功能,增加过滤查询方式

3.拓展性强,在其协议内部分为 4 层,各层之间相互独立

4更好的将配置和状态数据解耦,并区分状态数据(candidate, running, startup)

5易使用,结合提供的 API,实现可编程性的网络操作

6安全性更好,在传输层可选用 SSH,TLS 协议等。

7.NETCONF 采用 C/S 的架构,通过 RPC 在 client 和 server 间交流。client 可以是 Python 脚本或应用。server 一般指的是网络设备,在具体实现上有三个组件:

NETCONF agent:运行在网络设备上,用于接收和处理 RPC 请求。还可主动将一些告警事件通知客户端。

NETCONF 客户端:利用 NETCONF 协议对网络设备进行管理以及接收 agent 发出的告警通知。

datastore:在 NETCONF 中,区分了多个不同类型的 datastore, 这些 datastore 保存着不同状态下的设备信息。

关于 datastore 可以将其理解成一个可以获取和存储信息的概念。在具体实现上,可以是文件,数据库,内存等等。

在 NETCONF 中常用到三类 datastore:

1startup configuration datastore: 保存了设备启动时,加载的配置信息。

2candidate configuration datastore: 保存了想要运行的配置信息,修改该数据库时,并不会影响设备的真实配置。

3running configuration datastore: 保存了当前设备上正在生效的配置,修改时会影响真实的设备。

此外提到 datastore 就必须要提到一种数据模型语言 —— YANG,datestore 中就是以 YANG 的形式来约束配置的数据。

YANG 的出现结合上 NETCONF 和 RESTCONF 这样的协议,为自动化,可编程化的网络提供了强大的支持。YANG 的本质和之前 SNMP 中 MIB ASN 一样,作用都是以一种方式来约束数据,关于 YANG 之后会写一篇文章单独介绍

上一篇 下一篇

猜你喜欢

热点阅读