【15】TCPIP协议族详解-SNMP协议

【15】TCP/IP协议族详解-SNMP协议

本博客参考自《TCP/IP详解卷一:协议》

本文主要介绍SNMP-简单网络管理协议

1. 为什么需要网络管理

  • 随着网络技术的发展,网络设备越来越多,这些设备不仅种类繁杂而且来自不同的厂商。各个厂商的设备又有着细微的差异,这就造成了管理的不方便,所以急须统一管理的方法。

2. TCP/IP中的网络管理

  • TCP/IP中的网络管理分为两个部分:网络管理站(也叫管理进程)和被管的网络单元(也叫被管设备)。被管设备的种类繁多,有路由器、X终端、终端服务器和打印机等。管理站一般是工作站。
  • 被管设备端与管理端有关的的软件叫做代理进程(agent)或代理进程。
  • 管理进程可以发送请求,获取被管设备的参数,或改变被管设备的某个参数。代理进程也可以主动发送消息告知管理进程相关参数的变化。
  • TCP/IP中的网络管理分为三个部分:
    • 管理信息库MIB(Management Information Base),MIB包含所有代理进程的所有被查询或改变的参数。
    • 公用的结构和表示符号-管理信息结构SMI(Structure of Management Information)。
    • 管理进程和代理进程之间的通信协议,SNMP(Simple Network Management Protocol)。

3.SNMP协议

3.1 报文格式

截屏2021-01-05 下午10.29.54

  1. get-request操作-从代理进程提取一个或多个参数值
  2. get-next-request操作-从代理进程提取一个或多个参数值的下一个参数值。
  3. set-request操作-设置代理进程的一个或多个参数值。
  4. get-response操作-返回一个或多个参数值。这个操作是代理进程发出的。它是前面3个操作的响应操作。
  5. trap操作-代理进程主动发出的,通知管理进程某些事将发生。
  • 由于发送和接收的端口不同,所以同一系统可以既作为管理进程又作为代理进程。
  • SNMP报文的编码为ASN.1和BER

SNMP的5种操作可以表示为如下的形式:

3.2 报文字段

截屏2021-01-05 下午10.46.21

  1. 版本-该字段的值是通过SNMP的版本值-1得到的。SNMPv1此处为0。

  2. 共同体字段-字符串。这是管理进程和代理进程之间的口令,是明文格式。默认为public

  3. PDU类型-protocol data unit协议数据单元,标志操作的类型

    截屏2021-01-05 下午10.52.29

  4. 请求标识-get、get-next和set操作,请求标识由管理进程设置,然后代理进程在get-response中返回,目的是使得请求和应答匹配。

  5. 差错状态字段-由代理进程设置,指定差错发生。

    截屏2021-01-05 下午10.58.13

  6. 差错索引字段-该字段是一个整数值,指明当差错发生时,参数是哪个,有代理进程设置,只有在发生差错2,3,4时,才会设置。

3.3 管理信息结构

数据类型描述
INTEGER整形变量,有些有范围限制,有些没有范围限制
OCTER STRING0或多个8bit字节,每个字节值在0-255之间
DisplayString0到多个8bit字节,但是每个字节必须时ASCII编码
NULL代表相关的变量没有值
IpAddress4字节长度的OCTER STRING,以网络序表示IP地址。每个地址代表IP地址的一个字段
Counter非负整数。范围0~ 2 32 2^{32} 232-1。达到最大值之后归0
Gauge非负整数。取值范围0到4294976295。到达最大值后锁定
TimeTicks时间计时器
SEQUENCE类似c语言中的结构体
SEQUENCE OF这是一个向量,其所有元素都具有相同的类型。

管理信息结构的举例:名为udpTable的UDP监听表是一个向量类型,每一个变量都是一个二元组(SEQUENCE)UdpEntry

3.3.1 对象标识符

  • 对象标识符是一种数据类型,它指明一种“授权”命名的对象。这些标识符是由一些权威管理机构分配的。

  • 标识符是一个整数序列,以点(.)分隔。这些整数构成一个树形结构,类似DNS。对象标识符从树的顶部开始,顶部没有标识符。

  • SNMP中用到的标识符都是从1.3.6.1.2开始的。树上的每个节点都有一个中文名字。1.3.6.1.2就是iso.org.dod.internet.memt.mib

4 管理信息库

所谓管理信息库是所有代理进程包含的、并且能够被管理进程进行查询和设置的信息的集合。

4.1 实例标识

当对MIB变量进行操作,如查询和设置变量的值时,必须对MIB的每个变量进行标识。首先只有叶子结点时可操作的。SNMP没法处理表格中的一整行或一整列。

4.1.1 简单变量

对简单变量的处理办法时通过在其对象标识后面添加".0"来处理,例如udp组结构中的udpInDatagrams变量,它的对象标识是1.3.6.1.2.1.7.1,它的实例标识符为1.3.6.1.2.1.7.1.0。它的对应的文字名字为iso.org.dod.internet.mgmt.mib.udp.udpInDatagrams.0,可以缩写为udpInDatagrams.0。

4.1.2 表格变量

表格变量比较复杂,需要通过例子说明,对于UDP监听表,MIB定义了包含两个变量的联合索引。这两个变量是udpLocalAddress(IP地址)和udpLocalPort(端口),假如UDP监听表如下图所示:

则实例标识可以表示为:

通常MIB表格会根据其对象标识符进行字典排序

  • 多个变量,先列后行
  • 同一变量,值从小到大

4.2 UDP组

UDP组的结构如下图所示

UDP组由四个简单变量和一个由两个简单变量组成的表格表示。

注意事项:

  • 如果R/W列为空,则表示变量只读,“.”表示可读可写。
  • 如果变量是INTEGET类型并且由约束范围,标出其上下限。

UDP组下的简单变量:

UdpTable中的变量:

4.3 ip组

ip组定义了很多简单变量和3个表格变量

下图是ip组中的简单变量:

ip地址表:ipaddrTable

ip路由表:ipRouteTable

ip地址转换表:ipNetToMediaTable

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值