tcp/ip学习笔记--第25章 SNMP simple network management

参考:

https://download.csdn.net/download/qq_31567335/10213200

简介

随着一个组织的互联网设备越来越多,而且各类越来越丰富。如何高效的管理这些设备就成为了一个重要的问题。

基于tcp/ip的网络管理包含两个角色:网络管理站(也叫管理进程,manager)和被管理的网络单元(也叫代理,agent)。管理站和被管理的网络单元有两种通信方式,manager向agent发送命令,agent进行回应。或者agent主动向manager上报消息。

基于tcp/ip的网络管理包含以下三个基本组成部分:

1.MIB(manager information base) 就是一个数据库,表明每个网络单元存储哪些变量可以被manager查询和设置

2.SMI(structure of management information) 用来定义数据结构类型,只有定义好了数据类型,agent才知道如何将值存入MIB,双方也才能够正确理解所交流的信息。

3.一个manager和agent用来交流信息的协议,这就是SNMP。


协议

snmp定义了5种消息。

1.get-request:get one or more variables.

2.get-next-request:fetch the next variable after one or more speceified variables.

3.set-request:set the value of one or more variables.

4.get-response:the reply of get-request,get-next-request,set-request.

5.trap:notify the manager when something happens.

agent的udp端口是161,manager的udp端口是162.

SNMP报文的格式如下:


值得注意的是,不同于之前所学习的协议,SNMP协议中的字段并没有指定大小。这是因为SNMP所用编码方式的不同,长度会随变量的不同而发生改变。

PDU是protocol data unit的简称,表示的就是一个消息。0-4总共5个状态分别表示SNMP的5种消息类型。


SMI  OID MIB

我觉得这几个概念需要重点描述一下,看书的时候费了一些劲才弄懂。他们分别对应的全称如下。

SMI(Structure of management information),OBI(object identifiers),MIB(management information base)

SMI定义了协议能够使用的所有的数据类型。有INTEGER,OCTET,DisplyString,OBJECT IDENTIFIER,IpAddress,Counter,TimeTicks,SEQUENCE等等....只有这些被定义了的数据类型才能够正确的被agent和manager理解。

其中定义的一个非常重要的数据结构是OID(OBJECT IDENTIFIER)。OID的作用就是给每个MIB数据库中的变量一个唯一的编号,有了这个编号,就可以方便的去查询或者设置。某个变量。而且这种编号是层次结构的,如下面的两张图片所示。


可能要问,为什么要使用这种复杂的层次结构,而不使用简单的整数1,2,3,4....来编号呢。原因也很明白,层次结构扩展性强,而且便于管理。而且可以为不同的企业分配不同的空间,让他们定义自己的变量空间。图中的private/enterprise这个区间就是分配给不同的企业的。这个层次结构是由一个统一的组织机构来进行维护的,就像之前学习过的域名系统一样。这样可以保证不同企业实现的软件的兼容性。

节点上的数字是在协议中传递的数据结构,而字母是用来方便人阅读的,跟ip和域名的关系非常相似。(没弄明白的是,为什么所有的OID都以iso.org.dod.internet开头?)


对实例的标识

SNMP要引用MIB数据库的每个变量,都必须被唯一标识。SNMP只标识叶子节点,而不会对表(table)的整行或整列进行操作。

对于简单的变量,表示方法就是在后面加一个0,比如说udpInDatagrams在OID层次结构中,表示为1.3.6.1.2.7.1,如果SNMP要引用这个变量,就表示为1.3.6.1.2.7.1.0。

而对于表中的变量,表示格式是这样的:OID+列号+完整的数据。举例如下:

有一个Table,表示UDP监听列表:

那么其中的每个变量表示出来的结果就如下面这个表所示:


而且还有需要注意的两点,数据库中的变量是按照字典序排序的:

1.对于同一行数据,前面的列的变量排前面。(因为前面的列的列号小)

2.不同的行也是按字典序排序的。


Traps


trap的PDU类型是4。

企业表示设备制造商相关信息。

代理地址指定就是运行代理的设备的IP地址。

trap类型如图所示:


特定代码:当trap类型为6时,特定代码用来表示设备厂商自定义的trap类型。

时间戳:是一个TimeTicks值。表明自系统启动以来所经过的时间(以1%秒为单位进行衡量)

名称,值:要上报的变量的名称和值


ASN.1 和 BER

ASN.1是RFC中用来表示MIB数据库中变量和消息的语法。没看懂。

BER是对数据的和具体编码方式。书中未详细介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值