SNMPv1:SNMP的第一个版本,它提供了一种监控和管理计算机网络的系统方法,它基于团体名认证,安全性较差,且返回报文的错误码也较少。它在RFC 1155和RFC 1157中定义。
SNMPv2c:第二个版本SNMPv2c引入了GetBulk和Inform操作,支持更多的标准错误码信息,支持更多的数据类型。它在RFC 1901,RFC 1905和RFC 1906中定义。
SNMPv3:鉴于SNMPv2c在安全性方面没有得到改善,IETF颁布了SNMPv3版本,提供了基于USM(User Security Module)的认证加密和基于VACM(View-based Access Control Model)的访问控制,是迄今为止最安全的版本。SNMPv3在RFC 1905,RFC 1906,RFC 2571,RFC 2572,RFC 2574和RFC 2575中定义。
SNMP端口是SNMP通信端点,SNMP消息传输通过UDP进行,通常使用UDP端口号161/162。有时也使用传输层安全性(TLS)或数据报传输层安全性(DTLS)协议,端口使用情况如下表所示。
SNMP端口使用介绍:
过程 | 协议 | 端口号 |
代理进程接收请求信息 | UDP协议 | 161 |
NMS与代理进程之间的通信 | UDP协议 | 161 |
NMS接收通知信息 | UDP协议 | 162 |
代理进程生成通知信息 | - | 任何可用的端口 |
接收请求信息 | TLS/DTLS | 10161 |
接收通知信息 | TLS/DTLS | 10162 |
一旦网络中启动SNMP协议,NMS作为整个网络的网管中心,会对设备进行管理。每个被管理设备都包含驻留在设备上的Agent、多个被管对象和MIB,NMS通过与运行在被管理设备上的Agent交互,由Agent通过对设备端的MIB的操作,完成NMS的指令。SNMP的工作原理是将协议数据单元(也称为SNMP GET请求)发送到响应SNMP的网络设备。用户通过网络监控工具可以跟踪所有通信过程,并从SNMP获取数据。
SNMP规定了几个操作类型来完成各组件之间的信息交换,如下表所示:
SNMP操作类型:
操作类型 | 描述 | 备注 |
Get | Get操作可以从Agent中提取一个或多个参数值。 | - |
GetNext | GetNext操作可以从Agent中按照字典序提取下一个参数值。 | - |
Set | Set操作可以设置Agent的一个或多个参数值。 | - |
Response | Response操作可以返回一个或多个参数值。这个操作是由Agent发出的,它是GetRequest、GetNextRequest、SetRequest和GetBulkRequest四种操作的响应操作。Agent接收到来自NMS的Get/Set指令后,通过MIB完成相应的查询/修改操作,然后利用Response操作将信息回应给NMS。 | - |
Trap | Trap信息是Agent主动向NMS发出的信息,告知管理进程设备端出现的情况。 | - |
GetBulk | GetBulk操作实现了NMS对被管理设备的信息群查询。 | SNMPv1版本不支持GetBulk操作 |
Inform | InformRequest也是被管理设备向NMS主动发送告警。与Trap告警不同的是,被管理设备发送Inform告警后,需要NMS回复InformResponse来进行确认。 | SNMPv1版本不支持Inform操作 |
SNMP Traps是指SNMP Agent主动将设备产生的告警或事件上报给NMS,以便网络管理员及时了解设备当前运行的状态。
SNMP Agent上报SNMP Traps有两种方式:Trap和Inform。Trap和Inform的区别在于,SNMP Agent通过Inform向NMS发送告警或事件后,NMS需要回复InformResponse进行确认。
Trap操作工作原理
Trap不属于NMS对被管理设备的基本操作,它是被管理设备的自发行为。当被管理设备达到告警的触发条件时,会通过SNMP Agent向NMS发送Trap消息,告知设备侧出现的异常情况,便于网络管理人员及时处理。例如被管理设备热启动后,SNMP Agent会向NMS发送warmStart的Trap。
这种Trap信息是受限制的。只有在设备端的模块达到模块预定义的告警触发条件时,SNMP Agent才会向管理进程报告。这种方法的好处是仅在严重事件发生时才发送Trap信息,减少报文交互产生的流量。
Inform操作工作原理
Inform操作也是被管理设备向NMS主动发送告警。与Trap告警不同的是,被管理设备发送Inform告警后,需要NMS进行接收确认。如果被管理设备没有收到确认信息则:
将告警或事件暂时保存在Inform缓存中。
重复发送该告警或事件,直到NMS确认收到该告警或者发送次数达到最大重传次数。
被管设备上会生成相应的告警或事件日志。
网管可以通过SNMP协议管理设备,如下图所示,管理员要对整个网络的设备进行配置和管理,这些设备分布较为分散,管理员到现场进行设备配置是不现实的。当这些网络设备来自不同的厂商,而每个厂商都提供一套独立的管理接口(比如使用不同的命令行),将使得批量配置网络设备的工作量巨大。因此,在这种情况下,如果采用传统的人工方式,将会带来成本高、效率低的弊端,此时网络管理员可以利用SNMP远程管理和配置其下属设备,并对这些设备进行实时监控。
网管通过SNMP协议管理设备示意图:
在组网中配置SNMP协议,首先需要在管理端配置SNMP管理程序NMS,同时在被管理设备端配置SNMP的Agent。
通过SNMP协议:
NMS可以通过Agent在任何时候及时地获得设备的状态信息,实现远端控制被管理设备。
Agent可以及时地向NMS报告设备的当前状态信息。
更多网络通信相关文章,可直接后台回复『网口通讯』阅读。
---
如果你有与本文相关问题可以留言或后台发消息,欢迎点赞、分享、关注。