华为数通HCIE面试看这个就够了系列——SNMP


  SNMP(Simple Network Management Protocol,简单网络管理协议)是广泛用于TCP/IP网络的网络管理标准协议,提供了一种通过运行网络管理软件的中心计算机,即NMS(Network Management Station,网络管理工作站)来管理网元的方法。

一、SNMP管理模型。

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

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

在这里插入图片描述

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

    • NMS可以向设备上的Agent发出请求,查询或修改一个或多个具体的参数值。
    • NMS可以接收设备上的Agent主动发送的Trap信息,以获知被管理设备当前的状态。
  • Agent:是被管理设备中的一个代理进程,用于维护被管理设备的信息数据并响应来自NMS的请求,把管理数据汇报给发送请求的NMS。

    • Agent接收到NMS的请求信息后,通过MIB表完成相应指令后,并把操作结果响应给NMS。
    • 当设备发生故障或者其它事件时,设备会通过Agent主动发送信息给NMS,向NMS报告设备当前的状态变化。
  • Managed object:Managed object指被管理对象。每一个设备可能包含多个被管理对象,被管理对象可以是设备中的某个硬件,也可以是在硬件、软件(如路由选择协议)上配置的参数集合。

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

    • Agent通过查询MIB,可以获知设备当前的状态信息。
    • Agent通过修改MIB,可以设置设备的状态参数。

二、SNMP的版本。

  SNMP共有三个版本:SNMPv1、SNMPv2c和SNMPv3。

  • SNMPv1基于团体名认证,安全性较差,且返回报文的错误码也较少。
  • SNMPv2c中引入了GetBulk和Inform操作,支持更多的标准错误码信息,支持更多的数据类型(Counter64、Counter32)。
  • 鉴于SNMPv2c在安全性方面没有得到改善,IETF又颁布了SNMPv3的版本,提供了基于USM(User-Based Security Model,用户安全模块)的认证加密和VACM(View-based Access Control Model,基于视图的访问控制模型)功能。
1.SNMPv1/SNMPv2c报文结构。

在这里插入图片描述
  SNMPv1/SNMPv2c报文主要由版本、团体名、SNMP PDU三部分构成。报文中的主要字段定义如下:

  • 版本:表示SNMP的版本,如果是SNMPv1报文则对应字段值为0,SNMPv2c则为1。
  • 团体名:用于在Agent与NMS之间完成认证,字符串形式,用户可自行定义。团体名包括“可读”和“可写”两种,执行GetRequest、GetNextRequest操作时,采用“可读团体名”进行认证;执行Set操作时,则采用“可写团体名”认证。
  • SNMPv1/SNMPv2c PDU:包含PDU类型、请求标识符、变量绑定列表等信息。其中SNMPv1 PDU包括GetRequest PDU、GetNextRequest PDU、SetRequest PDU、Response PDU和Trap PDU几种类型,SNMPv2c PDU在SNMPv1的基础上新增了GetBulkRequest PDU。
2.SNMPv3报文结构。

在这里插入图片描述
  SNMP报文中的主要字段定义如下:

  • 版本:表示SNMP的版本,SNMPv3报文则对应字段值为2。
  • 报头数据:主要包含消息发送者所能支持的最大消息尺寸、消息采用的安全模式等描述内容。
  • 安全参数:包含SNMP实体引擎的相关信息、用户名、认证参数、加密参数等安全信息。
  • Context EngineID:SNMP唯一标识符,和PDU类型一起决定应该发往哪个应用程序。
  • Context Name:用于确定Context EngineID对被管理设备的MIB视图。
  • SNMPv3 PDU:包含PDU类型、请求标识符、变量绑定列表等信息。其中SNMPv3 PDU包括GetRequest PDU、GetNextRequest PDU、SetRequest PDU、Response PDU、Trap PDU和GetBulkRequest PDU。

三、工作原理。

1.SNMPv1。

在这里插入图片描述
SNMPv1定义了5种协议操作:

  • Get-Request:NMS从被管理设备的代理进程的MIB中提取一个或多个参数值。
  • Get-Next-Request:NMS从代理进程的MIB中按照字典式排序提取下一个参数值。
  • Set-Request:NMS设置代理进程MIB中的一个或多个参数值。
  • Response:代理进程返回一个或多个参数值。它是前三种操作的响应操作。
  • Trap:代理进程主动向NMS发送报文,告知设备上发生的紧急或重要事件。
2.SNMPv2c工作原理。

在这里插入图片描述
SNMPv2c新增了2种协议操作:

  • GetBulk:相当于连续执行多次GetNext操作。在NMS上可以设置被管理设备在一次GetBulk报文交互时,执行GetNext操作的次数。
  • Inform:被管理设备向NMS主动发送告警。与Trap告警不同的是,被管理设备发送Inform告警后,需要NMS进行接收确认。如果被管理设备没有收到确认信息则会将告警暂时保存在Inform缓存中,并且会重复发送该告警,直到NMS确认收到了该告警或者发送次数已经达到了最大重传次数。
3.SNMPv3工作原理。
  • SNMPv3与SNMPv1和SNMPv2c的工作机制基本一致但添加了报头数据和安全参数。
  • SNMPv3报文具有身份验证和加密处理的功能。
  • SNMPv3适用于各种规模的网络,安全性极高。

在这里插入图片描述
SNMPv3增加了身份验证和加密处理的功能。

  • 身份验证:身份验证是指代理进程(NMS)接收到信息时首先必须确认信息是否来自有权限的NMS(代理进程)并且信息在传输过程中未被改变。
  • 加密处理:SNMPv3报文中添加了报头数据和安全参数字段。比如当管理进程发出SNMPv3版本的Get-Request报文时可以携带用户名、密钥、加密参数等安全参数,代理进程回复Response报文时也采用加密的Response报文。这种安全加密机制特别适用于管理进程和代理进程之间需要经过公网传输数据的场景。

四、SNMP特点和应用场景。

1.特点。

SNMP的特点如下:

  • 简单:SNMP采用轮询机制,提供基本的功能集,适合快速、低价格的场景使用,而且SNMP以UDP报文为承载,因而得到绝大多数设备的支持。
  • 强大:SNMP的目标是保证管理信息在任意两点传送,便于管理员在网络上的任何节点检索信息,进行故障排查。
2.应用场景。
  • SNMPv1版本适用于小型网络。组网简单、安全性要求不高或网络环境比较安全且比较稳定的网络,比如校园网,小型企业网。
  • SNMPv2c版本适用于大中型网络。安全性要求不高或者网络环境比较安全,但业务比较繁忙,有可能发生流量拥塞的网络。
  • SNMPv3版本作为推荐版本,适用于各种规模的网络。尤其是对安全性要求较高,只有合法的管理员才能对网络设备进行管理的网络。
相关推荐
©️2020 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页