SNMP起步啦

SNMP

SNMP协议概述

    1. 简单网络管理协议(SNMP:Simple Network Management Protocol)
    1. 主要用于网络设备的管理,利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。

SNMP版本

SNMP协议的版本包括:SNMPv1、SNMPv2c、SNMPv3。

  • SNMP v1是SNMP协议的最初版本,不过依然是众多厂家实现SNMP基本方式。
  • SNMP v2通常被指是基于community的SNMP V2。Community实质上就是密码。
  • SNMP v3 是最新版本的SNMP。它对网络管理最大的贡献在于其安全性。增加了对认证和密文传输的支持。

SNMP管理框架

  • SNMP包括三个网络元素:SNMP管理者(SNMP Manager),SNMP代理(SNMP Agent),MIB库(Management Information Base,管理信息库)
    1. SNMP管理者:运行在SNMP客户端程序的工作站,提供了非常友好的人机交互页面,方便网络管理员完成绝大多数的网络设备管理工作。
    1. SNMP-AGENT代理:驻留在被管理设备上的一个进程,负责接受、处理来自SNMP管理者的请求报文。在一些紧急情况下,SNMP代理也会通知SNMP管理者事件的变化。
    1. MIB库:被管理对象的集合。它定义了被管理对象的一系列的属性:对象的名字、对象的访问权限和对象的数据类型等。每个SNMP代理都有自己的MIB。SNMP管理者根据权限可以对MIB中的对象进行读/写操作。

在这里插入图片描述

SNMP的报文类型

  • SNMP中定义了五种消息类型:Get-RequestGet-ResponseGet-Next-RequestSet-RequestTrap
    1. 监视网络状态的有三种类型 Get-RequestGet-Response Get-Next-Request
    2. 修改网络设备配置 Set-Request
    3. 接收网络事件警告 Trap
      1. 监视网络状态的三种类型
        SNMP 管理站用Get-Request消息从拥有SNMP代理的网络设备中检索信息,而SNMP代理则用Get-Response消息响应。Get-Next- Request用于和Get-Request组合起来查询特定的表对象中的列元素。
      1. 修改网络设备配置
        SNMP 管理站用Set-Request 可以对网络设备进行远程配置(包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等)。
      1. 接收网络事件警告
        SNMP代理使用TrapSNMP管理站发送非请求消息,一般用于描述某一事件的发生,如接口UP/DOWNIP地址更改等。
  • SNMP 工作流程如图

在这里插入图片描述

  • 各种报文的操作如下:
    1. get-request:从代理进程处提取一个或多个参数值。
    1. get-next-request:从代理进程处提取紧跟当前参数值的下一个参数值。
    1. set-request:设置代理进程的一个或多个参数值。
    1. get-response:返回的一个或多个参数值。这个操作是由代理进程发出的,它是对前面3种操作的响应。
    1. trap:代理进程主动发出的报文,通知管理进程有某些事件发生。
    • 注意点
      1. 上面五种消息中Get-RequestGet-Next-RequestSet-Request是由管理站发送到代理端的161端口的
      2. 后面两种Get-ResponseTrap是由代理端进程发给管理端进程的,其中Trap消息被发送到管理进程的162端口
      3. 所有数据都是走UDP封装。

SNMP报文格式

  • 查询报文 设置报文报文格式

在这里插入图片描述

  • 报文中的主要字段如下:
      1. 版本:表示SNMP的版本,如果是SNMPv1报文则对应字段值为0,SNMPv2c则为1。
      1. 团体名:用于在SNMP Agent与NMS之间完成认证,字符串形式,用户可自行定义。团体名包括“read”和“write”两种,执行SNMP查询操作时,采用“read”团体名进行认证;执行SNMP设置操作时,则采用“write”团体名进行认证。
      1. Request ID:用于匹配请求和响应,SNMP给每个请求分配全局唯一的ID。
      1. Non repeaters/Max repetitions:GetBulk操作基于GetNext操作实现,相当于多次执行GetNext操作,这两个参数用于设置执行GetNext操作次数。
      1. Error status:用于表示在处理请求时出现的状况。
      1. Error index:差错索引。当出现异常情况时,提供变量绑定列表(Variable bindings)中导致异常的变量的信息。
      1. Variable bindings:变量绑定列表,由变量名和变量值对组成。
  • 简单的说,一条SNMP消息由"版本号"、"SNMP共同体名"和"协议数据单元(PDU)"构成,数据包的长度不是固定的。

在这里插入图片描述

    1. 版本,团体名上面已经说过;
    1. PDU(协议数据单元)是SNMP消息中的数据区, 即Snmp通信时报文数据的载体.

SNMP报文处理过程

  • Agent通过UDP端口161接收来自NMS的Request报文。
  • Agent接收到报文后,其基本处理过程如下:
    1. 解码:依据ASN.1基本编码规则,生成用内部数据结构表示的报文。如果此过程出现错误导致解码失败,则丢弃该报文,不做进一步处理。
    1. 比较SNMP版本号:将报文中的版本号取出,与本Agent支持的SNMP版本号比较。如果不一致,则丢弃该报文,不做进一步处理。
    1. 团体名验证:将报文中的团体名取出,此团体名由发出请求的网管站填写。如与Agent所在设备认可的团体名不符,则丢弃该报文,不做进一步处理,同时产生一个Trap报文。SNMPv1提供较弱的安全措施,在版本3中这一功能被加强。
    1. 提取PDU:从通过验证的ASN.1对象中提出协议数据单元PDU。如果失败,丢弃报文,不做进一步处理。
    1. 处理PDU:根据不同的PDU,SNMP协议实体进行不同的处理。得到管理变量在MIB树中对应的节点,从相应的模块中得到管理变量的值,形成Response报文,编码发回网管站。
    1. 网管站得到响应报文后,经过同样的处理,最终显示结果。

MIB介绍

  • MIB(管理信息库)
  • MIB是一个被管理对象的集合,它定义被管理对象的一系列属性,包括
  • 对象的名字
  • 对象的访问权限
  • 对象的数据类型
MIB树结构
  • MIB以树状结构进行存储,树的叶子节点表示管理对象,它可以通过从根节点开始的一条惟一路径来识别,这也就是OID(Object Identifier)。

在这里插入图片描述

  • OID是由一些系列非负整数组成,用于唯一标识管理对象在MIB树中的位置。由SMI来保证OID不会冲突。
  • MIB文件一旦发布,OID就和被定义的对象绑定,不能修改。MIB节点不能被删除,只能将它的状态置为“obsolete”,表明该节点已经被废除。
  • 在图1的树形结构中,mgmt对象可以标识为:{ iso(1) org(3) dod(6) internet(1) mgmt(2) },简单标记为:1.3.6.1.2,这种标识就叫做OID。
  • NMS通过OID引用Agent中的对象。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值