一、SNMP概述 1.1 SNMP原理
网络设备越来越多,网络规模越来越大,管理这些设备也越来越重要 。远程管理网络的需求日益迫切,SNMP 应运而生 。SNMP即"简单网络管理协议",用于网络管理的协议,用于网络设备的管理 。
SNMP被设计为工作在TCP/IP协议族上,SNMP基于TCP/IP协议工作,对网络中支持SNMP协议的设备进行管理,但是SNMP本身工作在应用层 。
SNMP协议主要由三大部分构成:SNMP管理实体、多个SNMP被管理实体以及网络管理协议
1.2 MIB
被管理对象值的集合称之为MIB,定义了数据格式、类型、顺序、意义等,使用SMI中定义的类型和ASN.1中的基本类型对对象进行描述,是一个使用SMI描述的管理信息库 。
国际化标准组织提出ASN.1【解释:高级的数据描述语言,描述数据的类型、结构、组织、及编码方法,包括符号和语法两部分】来标识MIB模块和其对象 。
MIB中的每个节点都具有唯一的OID( ),按照从根节点开始的分支结构排列,OID是一个由数字组成的序列,用于唯一标识MIB中的每个节点,用来获取网络设备的信息
1.3 SMI
SMI是一种数据定义语言,用于定义MIB及其对象,例如定义基本数据类型,对象模型,以及基本编码规则 。
1.3.1 基本数据类型
为了保证简单,只定义了十一种基本数据类型
1.3.2 对象模型
也称之为-TYPE,定义被管对象的数据类型、状态和语义
就是封装一个对象来描述被管理对象的信息
被管理对象名称 OBJECT-TYPE{被管理对象的属性的基本数据类型被管理对象的读、写、创建权限被管理对象的当前状态(包括合法的、过时的、强制的)被管理对象的描述信息被管理对象的可被查询的OID位置}
例如:封装对象
sysUpTime OBJECT-TYPE{# 数据类型:时间SYNTAX TiméTicks# 权限:只读ACCESS read-only# 状态:强制的STATUS mandatory# 描述信息DESCRIPTION"The time (in hundredths of a second) since the network management protio of the system was last re-initialized."# OID位置:system下第3个分支位置::= {system 3}}
1.3.3 基本编码规则
采用TLV编码规则,TLV 是ASN.1下的一种可变的格式,其中:
下图所示为ASN.1的常见数据类型
例如实现编码:路由器的接口数量为15,其中15的ASCII为f
1.4 SNMP
负责在管理实体和被管理实体之间传输MIB条信息的通信协议
常见的有以下三个操作,要注意PDU通常是使用UDP报文传输
PDU类型方向描述信息
管理者 -> 被管理者
读取网络设备的状态信息
管理者 -> 被管理者
远程配置网络设备参数
Trap
被管理者 -> 管理者
向管理者报告异常事件
1.5 常见OID
下面是获取系统信息的常见OID简写以及对应的数字串
简写对应数字串涵义
1.3.6.1.2.1.1.1
设备描述符
1.3.6.1.2.1.1.3
设备运行时间
1.3.6.1.2.1.1.5
文章插图
设备名称
下面是监控网络的常见OID简写以及对应的数字串
简写对应数字串涵义
1.3.6.1.2.1.2.2.1.2
接口描述符
1.3.6.1.2.1.2.2.1.3
接口类型
1.3.6.1.2.1.2.2.1.5
接口速率
1.3.6.1.2.1.2.2.1.6
接口物理地址
1.3.6.1.2.1.2.2.1.10
接口输入字节数
1.3.6.1.2.1.2.2.1.16
接口输出字节数
1.3.6.1.2.1.2.2.1.14
接口输入错误数
1.3.6.1.2.1.2.2.1.20
接口输出错误数
通过如下代码即可调用
- MySql编写自定义函数、存储过程语法(附详细案例
- 高铁站内如何快速换乘 高铁同站换乘详细流程
- 黑猫带你学UFS协议第1篇:全网最全UFS协议中文详讲,这份学习框架图
- [计算机网络]IP协议
- 五 CNN经典网络模型:ResNet简介及代码实现(PyTorch超详细注释版
- Android SipDemo项目实现SIP协议
- 详细介绍 HashMap底层原理
- 3 SQL笔记——MySQL数据类型(超详细且易理解)
- 别人想要租赁我的土地,请问你一下,这个土地租赁协议该怎么签
- 100个python算法超详细讲解:阿姆斯特朗数