前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SNMP定义及SNMPv3特性,来看看考官想听的。

SNMP定义及SNMPv3特性,来看看考官想听的。

作者头像
Ponnie
发布2021-02-24 11:05:30
2.3K0
发布2021-02-24 11:05:30
举报
文章被收录于专栏:玉龙小栈玉龙小栈

SNMP 的定义与组成

通过网络管理软件可以集中式对多台设备进行统一管理,并且可以直观的看到网络设备的运行情况。而且可以通过网管软件对设备进行相应的配置, SNMP 系统包括网络管理系统 NMS(Network Management System)、代理进程 Agent、被管对象 Management object 和管理信息库 MIB(Management Information Base)四部分组成。

NMS 作为整个网络的网管中心,对设备进行管理。每个被管理设备中都包含驻留在设备上的 Agent 进程、MIB 和多个被管对象。NMS 通过与运行在被管理设备上的 Agent 交互,由 Agent 通过对设备端的MIB 的操作,完成 NMS 的指令

各版本间操作的差异

SNMPv1:

包括 Get、GetNext、Set、Response 和 Trap

SNMPv2c:

包括 Get、GetNext、Set、Response 、Trap、Getbulk、inform

SMMPv3:

包括 Get、GetNext、Set、Response 、Trap、Getbulk、inform

SNMP 管理模型

SNMP 系统包括网络管理系统 NMS(Network Management System)华为网管软件Esight 作为 NMS 对设备进行管理、代理进程 Agent、被管对象 Management object 和管 理信息库 MIB(Management Information Base)四部分组成。

下面介绍网络管理系统中各主要元素:

NMS:

NMS 在网络中扮演管理者角色,是一个采用 SNMP 协议对网络设备进行管理/监视的系统,运行在 NMS 服务器上。

NMS 可向设备上的 Agent 发出请求,查询或修改一个或多个具体的参数值。也可以接收 Agent 主动发送的 Trap 信息,以获知被管理设备当前的状态。

Agent:

Agent 是被管理设备中的一个代理进程,用于维护被管理设备的信息数据并响应来自 NMS 的请求。Agent 接收到 NMS 的请求信息后,通过 MIB 表完成相应指令后,并把操作结果响应给 NMS。

当设备发生故障或者其它事件时,设备会通过 Agent 主动发送信息给 NMS,向NMS报告设备当前的状态变化。

MIB:

MIB 是一个数据库,指明了被管理设备所维护的变量(即能够被 Agent 查询和设置的信息)。MIB 在数据库中定义了被管理设备的一系列属性:对象的名称、对象的状态、对象的访问权限和对象的数据类型等。

通过 MIB,可以完成以下功能:

◆ Agent 通过 get 消息查询 MIB,可以获知设备当前的状态信息。

◆ Agent 通过 set 消息修改 MIB,可以设置设备的状态参数。

Management object:

Management object 指被管理对象。每一个设备可能包含多个被管理对象,被管理对象可以是设备中的某个硬件(如一块接口板),也可以是某些硬件,软件(如路由选择协议)及其的配置参数的集合。

2、SNMPv1/SNMPv2c

SNMPv1/SNMPv2c 报文主要由版本、团体名、SNMP PDU 三部分构成。

报文中的主要字段定义如下:

版本:表示 SNMP 的版本,如果是 SNMPv1 报文则对应字段值为 0,SNMPv2c 则为1。

团体名:用于在 Agent 与 NMS 之间完成认证。团体名包括“可读”和“可写”两种执行GetRequest、GetNextRequest 操作时,采用“可读团体名”进行认证;执行 Set 操作时,则采用“可写团体名”认证。

SNMPv1/SNMPv2c PDU:包含 PDU 类型、请求标识符、变量绑定列表等信息。

SNMPv1/SNMPv2c 规定了7 种操作类型,用来完成 NMS 和 Agent 之间的信息交换。

Get

Get 用于查询一个或多个参数值。

GetNext

GetNext 操作按照字典序提取下一个参数值。

Set

Set 操作可以设置 Agent 的一个或多个参数值。

Response

它是 GetRequest、GetNextRequest、SetRequest 和 GetBulkRequest 四种操作的响应操作。Agent 接收到来自 NMS的 Get/Set 指令后,通过 MIB 完成相应的查询/修改操作,然后利用 Response操作将信息回应给 NMS。

Trap

Trap 信息是 Agent 主动向 NMS 发出的信息,告知管理进程设备端出现的情况。

GetBulk

GetBulk 操作实现了 NMS 对被管理设备的信息群查询。

Inform

InformRequest 也是被管理设备向 NMS 主动发送告警。与 Trap 告警不同的是,被管理设备发送 Inform 告警后,需要 NMS 回复 InformResponse 来进行确认。

SNMPv1 版本不支持 GetBulk 和 Inform 操作

3、SNMPv1/SNMPv2c 工作原理

SNMPv1 和 SNMPv2c 的工作原理基本一致。SNMPv1/SNMPv2c 的工作原理如图所示。

◆ NMS 向Agent 发送 Get、GetNext 或 Set 请求报文时,报文中各字段的设置如下:

版本号为所使用的 SNMP 版本;团体名为 public(当请求报文为 Get 和 GetNext 时)或 private(当请求报文为 set 时);PDU 中 PDU 类型为 Get、GetNext 或 Set 类型,绑定变量填入 MIB 节点名 sysContact。

◆ Agent:首先对报文中携带版本号和团体名进行认证,认证成功后,如果是 get 或 getnext 操作,Agent 根据请求查询 MIB 中的 sysContact 节点,得到 sysContact 的值并将其封装到 Response 报文中的 PDU,向 NMS 发送响应;如果是 set 操作,Agent 根据请求设置管理变量在管理信息库 MIB 中对应的节点,设置成功后向NMS 发送响应;

Trap 操作

当被管理设备达到告警的触发条件时,会通过 Agent 向 NMS 上运行的 NMS 发送Trap 消息,告知设备侧出现的异常情况,便于网络管理人员及时处理。

SNMPv2c 新增的操作如图所示:

GetBulk 操作

基于GetNext 实现,相当于连续执行多次 GetNext 操作。在NMS 上可以设置被管理设备在一次GetBulk 报文交互时,执行 GetNext 操作的次数。

Inform 操作

Inform 操作也是被管理设备向NMS 主动发送告警。与trap 告警不同的是,被管理设备发送 Inform 告警后,需要NMS 进行接收确认。如果被管设备没有收到确认信息则:

◆ 将告警暂时保存在 Inform 缓存中,然后重复发送,直到 NMS 确认收到该告警或 重传达到最大次数,并且被管设备上会生成相应的告警日志。由此可知,使用 Inform 告警可能会占用较多的系统资源

4、SNMPv3

SNMPv3 定义了新的报文格式,其报文结构如图所示。

SNMP 报文中的主要字段定义如下:

版本:表示 SNMP 的版本,SNMPv3 报文则对应字段值为2。

报头数据:主要包含消息发送者所能支持的最大消息尺寸、消息采用的安全模式等描述内容。

安全参数:包含 SNMP 实体引擎的相关信息、用户名、认证参数、加密参数等安全信息。SNMPv3 的实现原理和SNMPv1/SNMPv2c 基本一致,唯一的区别是 SNMPv3 增加了身份验证和加密处理。

身份验证:身份验证是指 Agent 或 NMS 接到信息时首先必须确认信息是否来自有权限的 NMS 或 Agent 并且信息在传输过程中未被改变。

加密:采用数据加密标准(DES)的密码组链接(CBC)码,使用 128 位的 privKey 作为输入。NMS 使用密钥计算验证码,然后将其加入信息中,而 Agent 则使用同一密钥从接收的信息中提取出验证码,从而得到信息。加密的过程与身份验证类似,也需要管理站和代理共享同一密钥来实现信息的加密和解密。

扩展问题1:现网中常用的是SNMPv2c,但是还一直使用SNMPv1的trap报文,而不常用inform报文?

因为现网中丢包的情况很少出现,所以使用 trap 报文即可实现被管理设备的告警,而使用 inform 报文的话虽然也能实现告警,但是会增加报文的交互数量、消耗设备的处理性能;

因为 infrom-request 报文会重复的发送给到 NMS,直到重传时间超时或者 NMS 发送 infrom-response 报文给到 Agent 时,infrom 报文才会停止发送;

扩展问题2:Agent是什么?代理一台设备还几台设备?

Agent 是一台运行了 Agent 进程的设备(路由器或者交换机等),主要是管理本台设备上的接口、CPU、内存等;代理的其实是本台设备;

扩展问题3SNMP v1、v2c、v3 各自的特点?

SNMPv1:

SNMP协议的最初版本,容易实现且成本低。读取效率慢

缺少大量读取数据的能力,没有足够的安全机制。基于团体名认证,安全性较差,且返回报文的错误码也较少。

适合规模较小,设备较少,安全性要求不高或本身就比较安全的网络,如校园网,小型企业网。

SNMPv2c:

扩充了SNMPv1的功能,增加GetBulk和inform操作。

GetBulk:实现了NMS对被管理设备的信息群查询。

Inform:被管理设备向NMS(Network Management System,网络管理系统)主动发送告警,需要NMS进行接收确认。

1、支持更多的标准错误码信息,支持更多的数据类型。

2、没有足够的安全机制。提高读取效率

3、适合规模较大,设备较多,安全性要求不高或本身就比较安全,但业务比较繁忙,有可能发生流量拥塞的网络。

SNMPv3:

版本提供了基于 USM(User Security Module)的 基于 VACM(View-based Access Control Model)的访问控制

a)基于用户认证针对不同的用户分配密码,访问权限), 提高安全性 对报文传输过程中进行可选加密

b)USM:提供身份验证和数据加密服务(新加入了用户 名和对数据进行加密,防止数据被窃取)

c)VACM:对用户组或者团体名实现基于视图的访问控制

1、适应性强:适用于多种操作环境,既可以管理最简单的网络,又能够满足复杂网络的管理需求。

2、方便管理:SNMP框架体系由多个功能相对独立的子系统或应用程序集合而成,因而可以很方便地对其进行管理。例如,若系统发生了故障,可以根据发生故障的功能类型,定位到相应的子系统。

3、扩展性好:可以很方便地进行系统扩展。比如,为了应用新的安全协议,就可以在安全子系统中为其定义单独的模块,从而在SNMP中支持该协议。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玉龙网络新知社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档