了解SNMP协议之前,先要了解ISO/OSI和TCP/IP的网络模型。ISO/OSI将网络分为7层,业界分为5层,如图所示:
![e457dac787cd58bdfd8478f44f9d8dfd.png](https://img-blog.csdnimg.cn/img_convert/e457dac787cd58bdfd8478f44f9d8dfd.png)
SNMP位于两种网络模型的顶层即应用层,属于应用层协议,在传输层依靠UDP协议进行传输。SNMP(Simple Network Management Protocol)即简单网络管理协议,主要用在局域网中对设备进行管理,应用最为广泛的是对路由器交换机等网络设备的管理,当然不仅限于网络设备。SNMP分为管理端和代理端(agent),管理端的默认端口为UDP 162,主要用来接收Agent的消息如TRAP告警消息;Agent端使用UDP 161端口接收管理端下发的消息如SET/GET指令等。
SNMP协议目前在用的有3个版本,分别是V1,V2C,V3,主要差异在安全性、消息封装格式、GET效率等方面。
SNMP V1中定义了5种类型的PDU:Get(获取参数值,不能遍历table类型的参数组),GetNext(可获取table类型的参数值,一组参数),Set(设置参数值) 和Trap(发送告警)、Response(GET操作的响应信息)。SNMPv1使用团体字(community)来作为身份认证信息。当Agent接收到与其一样的团体字的管理端消息后才会进行消息应答。V1整个消息采用明文传送,通过wireshark/tcpdump等抓包工具可看到明文。
SNMP V2C定义了7种