目录
SNMP协议基础
基本概念
SNMP架构
SNMP版本
SMI管理信息结构
SMI数据类型
MIB管理信息库
MIB基本概念
叶子节点与非叶子节点
不同SNMP协议下NMS与Agent的交互操作
SNMPv1操作类型
SNMPv2c操作类型
SNMPv3操作类型
针对SNMP的排查思路(C/S架构)
SNMP相关配置
SNMP(Simple Network Management Protocol)简单网络管理协议,是广泛应用于TCP/IP网络的网络管理标准协议,不仅实现了对网络设备高效和批量的管理,还屏蔽了不同厂商产品之间的差异,可以对不同厂商的产品进行统一管理
SNMP端口号为UDP 161和162端口
管理网络设备的的条件是网络设备需要支持SNMP协议
NMS
将相关SoftWare软件安装到某台设备中,这台设备就会变为NMS
软件可以提供SNMP报文的交互,可以通过软件进行SNMP报文交互
网络管理员通过操作NMS,向被管理设备发出请求,从而可以监控和配置网络设备
例如自身电脑安装MIB Bro、服务器安装SNC等软件就可以作为管理站
Agent代理进程
设备被管理时,设备的代理进程来响应NMS的请求,把管理数据汇报给发送请求的NMS
网络设备在出厂时已经内置了相应的代理进程与标准SNMP协议对接,不需要我们额外安装(即设备收到标准的SNMP报文的信息,就会自动通过代理进程来响应)
不过被管理设备还需要额外去开启和配置SNMP协议
MIB和SMI后续介绍
SNMP有三个版本;常用的SNMP为版本V2c
SNMPv1
通过团体名认证,不加密
适用于小型网络,组网简单,安全性要求不高的网络
SNMPv2c
在V1的基础上修改,该协议能够支持分布式网络管理,通过团体名/用户名认证,不加密
适用于大中型网络,安全性要求不高,但业务比较繁忙,有可能发生流量拥塞的网络
SNMPv3
在V2c的基础上扩展了安全性,通过MD5/SHA认证,通过AES128或者DES56加密
适用于各种规模的网络,尤其是对安全性要求较高,只有合法的管理员才能对网络设备进行管理的网络
SMI 的作用
规定MIB中对象的命名方式、数据类型、编码和传输方式等
是定义MIB必须遵守的标准
不同数据类型显示的信息不同,管理端在管理被管理端时也需要设置相应的数据类型
数据类型又分为简单类型、应用类型、结构类型
简单类型
整型(INTERGER)
字符串(OCTER STRING)
NULL(表示相关变量没有值)
应用类型
IpAddress 设备IP地址
PhysAddress 设备MAC地址
TimeTicks 时间计数器(0.01s单位递增)
结构类型
sequence 定义列表,一个sequence包含0个或多个元素,每个元素一种数据类型
squuence pf 定义表格,所有元素都具有相同的类型
MIB是所有代理进程包含的,并且能够被管理进程查询和设置的信息的集合;被管理设备中哪些信息可以被管理,通过MIB来进行标识
Agent通过查找MIB表来收集设备状态信息;Agent通过修改MIB表来修改设备状态参数
即:代理进程查询MIB数据库(MIB数据库有这些东西才可以查询)
MIB为树形结构
每个OID(object identifier对象标识符)对应树中的一个管理对象,可以通过OID来标识不同的设备
其子分支就表示可以管理此设备的哪些内容(接口、设备名称、ip地址等参数)
MIB文件中数据结构节点的命名
文件描述
点分描述字符串
如Root.iso.org.dod.internet.mtmt.mib
对象标识OID描述(Object identifier)
由句点隔开的一组整数,用点分十进制整形字符串来标识
如 .1.3.6.1.2.1
叶子节点和非叶子节点的区别
最末端的节点为叶子节点,其余节点为非叶子节点
可访问的节点称为叶子节点,不可访问的节点未非叶子节点
叶子节点中存放的是非叶子节点对应的变量,非叶子节点中存放的是叶子节点或非叶子节点
叶子节点存放的变量类型
叶子节点中存放的变量可以分为简单变量和表格变量两种
简单变量:一个OID节点只有一个值的变量
表格变量:一个OID节点具有多个值的变量
表格变量的索引
索引格式是一串十进制的值,用于表格变量中唯一标识相同OID中存在的不同值;不同的表格变量的索引不同
索引不一定是一个值,也有可能是多个值构成一个索引,只要能够唯一标识相同OID中存在不同值的情况就可以
节点标识
节点标识分为对象标识和实例标识
对象标识没有加索引或没有加.0;实例标识需要加上.0或者索引
对象标识—存储节点的OID(标识的是节点本身)
叶子节点/非叶子节点中的OID就称为对象标识
实例标识—存储叶子节点对应的值(标识的是叶子节点中的具体的数据内容)
对叶子节点的对象标识补.0或者补索引,补充完之后的标识就称为实例标识
只有实例标识可以进行实际数据的读取与设置
简单变量的OID(实例标识)=叶子节点的对象标识+.0
表格变量的OID(实例标识)=叶子节点的对象标识+索引
Get查询,Set修改,Trap告警
Trp使用的端口号默认为162,其余都是161
Get-request NMS查询被管理设备的信息(从代理进程处提取一个或多个参数值)
GetNext-request NMS按照字典顺序查询被管理设备的信息(从代理进程处提取紧跟当前参数值的下一个参数值)
Set-request NMS修改被管理设备的参数(设置代理进程的一个或多个参数值)
Get-response 被管理设备对Get、GetNext、Set以及后续版本的GeetBulk、InformResponse五种操作的响应操作(返回的一个或多个参数值)
Trap 被管理设备主动向NMS发送的告警信息
新增GetBulk、InformRequest操作
GetBilk
NMS对被管理设备进行一组查询,相当于连续执行多次GetNext操作
在NMS上,可以设置被管理设备在一次GetBulk报文交互时,执行GetNext操作的次数
InformRequest
本质上还是被管理设备向NMS发送的告警信息
只是通过IngormRequest进行通告的告警信息,NMS收到后会进行响应
比Trap消息多了一层确认收到消息的保护机制,在一定时间内没有收到回应将会发送Trap消息
与SNMPv2c一样,只是v3会进行安全参数的协商,对所有交互的报文进行认证加密
被管理端
是否开启SNMP、是否配置读写字
检查查询的信息是否存在(对于AC来说,网管平台如果要查看AP的信息,前提是AC上有对应AP的信息)
查看SNMP的流控信息(多台设备同时读取被管理设备时,可能会超过被管理设备配置的SNMP流控,导致SNMP报文丢失)--流控的设置是为了保证被管理设备的CPU
中间链路
检查被管理设备和管理设备的连通性(携带1500字节)
中间地址是否有防火墙,是否放通了UDP 161、162端口
管理端
读取操作是否正确(即是否误操作);OID是否正确
使用第三方MIB读取软件来读取信息,看是否是管理软件的问题
查看是否是软件使用的数据类型不匹配
华为设备配置
开启Snmp
Snmp-agent
设置SNMP版本号为V2c
Snmp-agent sys-info version v1/v2c/v3
设置只读/读写团体字为admin@123
Snmp-agent community read/write [admin@123]
开启trap
snmp-agent trap enable
配置Trap报文的发送参数信息(这些参数信息组成一个列表,称为参数信息列表)
snmp-agent target-host trap-paramsname AR11 v1/v2c/v3 securityname AR11
trap-paramsname 指定Trap报文发送参数信息列表的名称
v1/2c/3 指定Trap报文的传送协议(V1/V2c/V3)
securityname 生成Trap报文的主体名(在v3版本中作为v3用户名)
配置Trap报文的目的主机(即NMS的地址)
snmp-agent trap-hostname AR111 address 192.168.1.1 trap-paramsname AR11
AR111 目的主机的名称
Address 目的主机的IP地址
Trap-paramsname 指定向目的主机发送Trap报文的参数信息列表的名称