学习笔记——网络管理与运维——SNMP(SNMP架构)

三、SNMP架构

1、SNMP结构概述

SNMP被设计为工作在TCP/IP协议族上,基于TCP/IP协议工作,对网络中支持SNMP协议的设备进行管理。所有支持SNMP协议的设备都提供SNMP这个统一界面,使得管理员可以使用统一的操作进行管理,而不必理会设备是什么类型、是哪个厂家生产的。(如下左图)

2、SNMP支持的网管操作

对于网络管理,我们面对的数据是设备的配置、参数、状态等信息,面对的操作是读取和设置;同时,因为网络设备众多,为了能及时得到设备的重要状态,还要求设备能主动地汇报重要状态,这就是报警功能。(如上右图)

SNMP协议之所以易于使用,这是因为它对外提供了三种用于控制MIB对象的基本操作命令。它们是:Get、Set和Trap。

Get: 读取网络设备的状态信息。管理站读取代理者处对象的值。它是SNMP协议中使用率最高的一个命令,因为该命令是从网络设备中获得管理信息的基本方式。

Set: 远程配置设备参数。管理站设置代理者处对象的值。它是一个特权命令,可以通过它来改动设备的配置或控制设备的运转状态。它可以设置设备的名称,关掉一个端口或清除一个地址解析表中的项等。

Trap: 管理站及时获取设备的重要信息。代理者主动向管理站通报重要事件。它的功能就是在网络管理系统没有明确要求的前提下,由管理代理通知网络管理系统有一些特别的情况或问题发生了。如果发生意外情况,客户会向服务器的162端口发送一个消息,告知服务器指定的变量值发生了变化。通常由服务器请求而获得的数据由服务器的161端口接收。

Trap消息可以用来通知管理站线路的故障、连接的终端和恢复、认证失败等消息。管理站可相应的作出处理。

SNMP操作

SNMP Manger和SNMP Agent间的交互主要有三种类型:

1)SNMP Get: 主要是检索设备的信息,Get一种有三种类型:

GET - 从SNMP agent获取固定的对象。

GETNEXT - 检索当前对象的后一个对象,由于MIB本身层级的树形结构,存在后继。

GETBULK - 获取一组固定的对象。

**2)SNMP SET:**主要是修改MIB中的对象,进而修改设备的配置。

3)SBMP Notifications: 是SNMP的主要特性,之前的GET和SET是属于拉的操作,而SNMP正好相反,类似于推的操作,可以由agent发起,将一些信息push到SNMP Manager上。类似于Web Socket. 主要用于通知如认证失败,重启,断开连接等事件。

**Notifications主要有两种形式:**Traps和Informs. 两者间的不同主要在于可靠性,agent在产生Informs给Manager后,如果发送失败,会重新发送。Manager收到后,需要回复确认给agent。

而Traps不同,无论消息发送是否成功,Manager都不需要回复。

3、SNMP管理模型

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

SNMP系统包括 :网络管理系统NMS(Network Management Station)、代理进程Agent、被管对象Management object和管理信息库MIB(Management Information Base)四部分组成。如下所示:

查询/修改操作:

· NMS作为管理者,向代理进程发送SNMP请求报文。

· 代理进程通过设备端的MIB找到所要查询或修改的信息,向NMS发送SNMP响应报文。

告警操作:

设备端的模块由于达到模块定义的告警触发条件,通过代理进程向NMS发送消息,告知设备侧出现的情况,这样便于网络管理人员及时对网络中出现的情况进行处理。

1)NMS 网络管理进程

NMS在网络中扮演管理者角色,是一个采用SNMP协议对网络设备进行管理/监视的系统,运行在NMS服务器上。NMS可以向设备上的Agent发出请求,查询或修改一个或多个具体的参数值。NMS可以接收设备上的Agent主动发送的Trap信息,以获知被管理设备当前的状态

2)Agent 代理进程

Agent是被管理设备中的一个代理进程,用于维护被管理设备的信息数据并响应来自NMS的请求,把管理数据汇报给发送请求的NMS。

Agent接收到NMS的请求信息后,通过MIB表完成相应指令后,并把操作结果响应给NMS。当设备发生故障或者其它事件时,设备会通过Agent主动发送信息给NMS,向NMS报告设备当前的状态变化。

3)Managed object 被管理对象

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

4)MIB数据库

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

通过MIB,可以完成以下功能:Agent通过查询MIB,可以获知设备当前的状态信息。Agent通过修改MIB,可以设置设备的状态参数。

4、SNMP的实现结构

在具体实现上,SNMP为管理员提供了一个网管平台**(NMS,管理站)**负责网管命令的发出、数据存储、及数据分析。被监管的设备上运行一个SNMP代理(Agent)),代理实现设备与管理站的SNMP通信。如下图,

管理站与代理端通过MIB进行接口统一,MIB定义了设备中的被管理对象。管理站和代理都实现了相应的MIB对象,使得双方可以识别对方的数据,实现通信。管理站向代理申请MIB中定义的数据,代理识别后,将管理设备提供的相关状态或参数等数据转换为MIB定义的格式,应答给管理站,完成一次管理操作。

已有的设备,只要新加一个SNMP模块就可以实现网络支持。旧的带扩展槽的设备,只要插入SNMP模块插卡即可支持网络管理。网络上的许多设备,路由器、交换机等,都可以通过添加一个SNMP网管模块而增加网管功能。服务器可以通过运行一个网管进程实现。其他服务级的产品也可以通过网管模块实现网络管理,如Oracle、WebLogic都有SNMP进程,运行后就可以通过管理站对这些系统级服务进行管理。

5、SNMP定义角色

根据管理者和被管理的设备在网络管理操作中的不同职责,SNMP定义了3种角色。(如下左图)

1)网络管理系统 (管理站、NMS) 是系统的控制台,向管理员提供界面以获取与改变设备的配置、信息、状态、操作等信息。管理站与Agent进行通信,执行相应的Set和Get操作,并接收代理发过来的警报(Trap)。

2)代理: Agent是网络管理的代理人,负责管理站和设备SNMP操作的传递。介于管理站和设备之间,与管理站通信并相应管理站的请求,从设备获取相应的数据,或对设备进行相应的设置,来响应管理站的请求。代理也需要具有根据设备的相应状态使用MIB中定义的Trap向管理站发送报告的能力。

**3)代理服务器:**Proxy是一种特殊的代理,在不能直接使用SNMP协议的地方,如:异种网络、不同版本的SNMP代理等情况,Proxy代替相关设备向管理站提供一种外观,为设备代理SNMP协议的实现。Proxy做了异种网络或不同版本代理和相应SNMP数据请求的转换工作。(如上右图)

在基于SNMP进行管理的网络中,NMS是整个网络的网管中心,在它之上运行管理进程。每个被管理设备需要运行代理(Agent)进程。管理进程和代理进程利用SNMP报文进行通信。

· NMS是一个采用SNMP协议对网络设备进行管理/监控的系统,运行在NMS服务器上。

· 被管理设备是网络中接受NMS管理的设备。

· 代理进程运行于被管理设备上,用于维护被管理设备的信息数据并响应来自NMS的请求,把管理数据汇报给发送请求的NMS。

NMS通常是一个独立的设备,运行网络管理应用程序。网络管理应用程序至少能够提供一个人机交互界面,网络管理员通过人机交互界面完成绝大多数网络管理工作。比较常见的人机交互方式为通过Web页面进行交互,即网络管理员通过带显示器的终端,通过HTTP/HTTPS访问NMS提供的Web页面。


整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度,觉得这段文字更通俗易懂,融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益,可以直接联系我,我会把相关文字删除。【VX:czlingyun 暗号:CSDN】

相关推荐
苹果醋332 分钟前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
二十雨辰1 小时前
[linux]docker基础
linux·运维·docker
黑叶白树1 小时前
简单的签到程序 python笔记
笔记·python
@小博的博客1 小时前
C++初阶学习第十弹——深入讲解vector的迭代器失效
数据结构·c++·学习
Jason-河山1 小时前
【自动化更新,让商品信息跳舞】——利用API返回值的幽默编程之旅
运维·自动化
lihuhelihu2 小时前
第3章 CentOS系统管理
linux·运维·服务器·计算机网络·ubuntu·centos·云计算
哲讯智能科技2 小时前
SAP Business One市场价格解析
运维·sap·erp
幸运超级加倍~2 小时前
软件设计师-上午题-15 计算机网络(5分)
笔记·计算机网络
南宫生2 小时前
贪心算法习题其四【力扣】【算法学习day.21】
学习·算法·leetcode·链表·贪心算法
山东布谷科技官方2 小时前
布谷直播源码部署服务器关于数据库配置的详细说明
运维·服务器·数据库·直播系统源码·直播源码·直播系统搭建·直播软件开发