网站推广.NET

网站推广.NET

snmp是什么层协议?

来源:互联网

简单网络管理协议(SNMP) 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。

SNMP协议的简单介绍

了解SNMP协议之前,先要了解ISO/OSI和TCP/IP的网络模型。ISO/OSI将网络分为7层,TCP/IP将网络分为4层(也有5层的说法)

SNMP位于两种网络模型的顶层即应用层,属于应用层协议,在传输层依靠UDP协议进行传输。SNMP的数据包在传输层,因此叫做PDU(协议数据单元)。

SNMP(Simple Network Management Protocol)即简单网络管理协议,主要用在局域网中对设备进行管理,应用最为广泛的是对路由器交换机等网络设备的管理,当然不仅限于网络设备。

SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息(及事件报告)网络管理系统获知网络出现问题。

SNMP分为管理端和代理端(agent),管理端的默认端口为UDP 162,主要用来接收Agent的消息如TRAP告警消息;Agent端使用UDP 161端口接收管理端下发的消息如SET/GET指令等。

SNMP协议各版本的差异

SNMP协议目前在用的有3个版本,分别是V1,V2C,V3,主要差异在安全性、消息封装格式、GET效率等方面。

1、SNMPV1版本介绍

SNMPV1中定义了5种类型的PDU:Get(获取参数值,不能遍历table类型的参数组),GetNext(可获取table类型的参数值,一组参数),Set(设置参数值) 和Trap(发送告警)、Response(GET操作的响应信息)。

SNMPv1使用团体字(community)来作为身份认证信息。当Agent接收到与其一样的团体字的管理端消息后才会进行消息应答。

SNMPV1整个消息采用明文传送,通过wireshark/tcpdump等抓包工具可看到明文。

2、SNMPV2版本介绍

SNMPV2定义了7种类型的PDU:Get(获取参数值,不能遍历table类型的参数组),GetNext(可获取table类型的参数值,一组参数),Set(设置参数值) 和Trap(发送告警),GetBulk(GetBulk操作所对应的基本操作是GetNext,通过对Non repeaters和Max repetitions参数的设定,高效率地从Agent获取大量管理对象数据,如果get-request中的参数有一个不存在,请求照样会被正常执行;而在SNMPv1种将收到一个错误消息),inform(相当于Trap的升级版,但是Trap消息发出去之后不会收到响应消息,而inform消息在发出之后能收到响应消息)、Response(GET操作的响应信息)。

SNMPv2c也采用团体字认证。

SNMPV2C整个消息采用明文传送,通过wireshark/tcpdump等抓包工具可看到明文。

3、SNMPV3版本介绍

SNMPV3中沿用了V2中7种类型的PDU,增加了report(当消息不能解密时发送该消息)。

SNMPV3采用了USM和Vacm技术。USM提供了认证和加密功能,VACM确定用户是否允许访问特定的MIB对象以及访问方式。

USM(基于用户的安全模型):Agent通过对管理端消息中携带的用户、密码(采用MD5或者SHA加密)、authkey(认证秘钥)以及engineid(agent的标识码)对消息进行鉴权和完整性验证,整个消息体采用DES进行加密。

SNMPV3数据消息采用密文传送,通过wireshark/tcpdump等抓包工具不可见实际的内容。

SNMP管理端和代理端(Agent)进行通信时,双方必须有共同的一套参数才能正常“交流”,这套参数被称作MIB(管理信息库),因文件组织格式为树形,统称MIB树,不同厂家、不同设备类型的MIB树一般不同

snmp