一、SNMP的基本概念与工作原理
SNMP主要由管理站(Manager)、代理(Agent)和管理信息库(MIB)三部分组成。管理站是管理进程所在的系统,代理是被管理设备中执行管理任务的进程,而MIB则是一个虚拟的数据库,用于存储被管理设备的各种信息。工作时,管理站通过SNMP协议向代理发送请求,代理从MIB中获取相应信息返回给管理站。
SNMP基于UDP;客户端使用161端口接收和发送请求,服务端162端口接收trap。主要应用的版本有SNMP v1、SNMP v2c和SNMP v3。SNMP V3安全性更高,具备加密和鉴权功能。
【考点】记忆两个端口和SNMP基于UDP协议。
二、SNMP组成
SNMP的管理体系,在NMS(Network Management System)和Agent两侧进行信令交互。
网络管理站(NMS):SNMP服务端,用于管理各个SNMP设备。
代理(agent):指服务器、交换机等被管理设备。
MIB:理解成为agent维护的管理对象数据库,MIB中定义的大部分管理对象的状态和统计信息都可以被NMS访问。
OID(Object Identifier):每个管理对象都有自己的OID,管理对象通过树状结构进行组织,OID由树上的一系列整数组成,整数之间用点( . )分隔开。
【考点】两个服务的理解,考试重点。
三、SNMP的主要版本
SNMP协议各个版本特性(SNMPv1、SNMPv2c、SNMPv3)
当使用不同SNMP版本的网管站管理同一个设备时,在该设备上同时配置SNMPv1、SNMPv2c和SNMPv3,保证它能和所有网管站通信。
1.SNMP支持的特性功能介绍
特性 | 功能描述 |
---|---|
访问控制 | 访问控制主要用来限制管理设备的用户的权限。通过该功能可以限制指定的用户管理设备上的指定节点,从而提升精细化管理。 |
认证加密 | 认证加密主要是通过对网管和被管理设备传送的报文进行认证和加密,避免数据报文被窃取或篡改,从而提升数据传输的安全性。 |
错误码 | 错误码用来标识特定的故障现象,有助于管理员快速定位和解决故障,因此错误码越丰富越有利于管理员对设备进行管理。 |
Trap告警 | Trap告警是被管理设备主动向网管发送告警。以便管理员能够及时发现设备的异常。 被管理设备发送Trap告警后,不需要网管进行接收确认。 |
Inform告警 | Inform告警也是被管理设备向网管主动发送告警。 被管理设备发送Inform告警后,需要网管进行接收确认。 |
Inform告警 | GetBulk主要方便管理员进行批量的Get-Next操作。网络规模较大时,以节省管理员的工作量,提升管理效率。 |
2.SNMP各版本概况
特性 | SNMPv1 | SNMPv2c | SNMPv3 |
---|---|---|---|
访问控制 | 基于团体名和MIB View进行访问控制 | 基于团体名和MIB View进行访问控制 | 基于用户、用户组和MIB view进行访问控制 |
认证加密 | 基于团体名的认证 | 基于团体名的认证 | 支持认证和加密,认证和加密的方式如下: 认证:
加密:
|
错误码 | 支持6个错误码 | 支持16个错误码 | 支持16个错误码 |
Trap告警 | 支持 | 支持 | 支持 |
Inform告警 | 不支持 | 支持 | 支持 |
GetBulk | 不支持 | 支持 | 支持 |
3.SNMP各版本的应用场景
版本 | 应用场景 |
SNMPv1 | 适用于小型网络,组网简单,对网络安全性要求不高或者网络环境本身比较安全,且比较稳定的网络,比如校园网,小型企业网。 |
SNMPv2c | 适用于大中型网络,对网络安全性要求不高或者网络环境本身比较安全(比如VPN网络),但业务比较繁忙,有可能发生流量拥塞的网络。 通过配置Inform告警可以确保被管理设备发送的告警能够被网管收到。 |
SNMPv3 | 适用于各种规模的网络,尤其是对网络的安全性要求较高,确保合法的管理员才能对网络设备进行管理的网络。比如网管和被管理设备间的通信数据需要在公网上进行传输。 |
四、SNMP报文
SNMP对外三种用于控制MIB对象的基本操作命令:get、set、trap
Get:管理站读取代理者处对象的值。它是SNMP协议中使用率最高的一个命令,因为该命令是从网络设备中获得管理信息的基本方式。
Set:管理站设置代理者处对象的值。它是一个特权命令,因为可以通过它来改动设备的配置或控制设备的运转状态。
Trap:代理者主动向管理站通报重要事件,管理代理通知网络管理系统有一些特别的情况或问题发生了。如果发生意外情况,客户会向服务器的162端口发送一个消息,告知服务器指定的变量值发生了变化。
SNMP具备五个报文:
1. Get-Request:用于查询设备信息。
2. Get-Next-Request:用于查询设备的下一个信息。
3. Set-Request:用于设置设备参数。
4. Get-Response:用于响应管理站的查询或设置请求。
5. Trap:用于在设备状态变化时,向管理站发送通知。
【考点】几类报文的名称和作用。
五:软考真题
2024年5月网络工程师:
SNMP协议使用()协议进行通信。
A.TCP
B.IP
C.ICMP
D.UDP
【解析】SNMP底层使用UDP承载,基础题。
2022年5月网络工程师:
网络设备发生故障时,会向网络管理系统发送()类型的SNMP报文
A.trap
B.Get-Request
C.Set-Request
D.Get-Request
【解析】发生故障发送trap报文,答案为A。
2020年5月网络工程师:
Windows中标准的SNMP Service和SNMP Trap分别使用的默认UDP端口是()
A.25和26
B.160和161
C.161和162
D.161和160
【解析】答案是C,SNMP Service是部署在设备上的服务器,开启后NMS才能够管理,所以端口是161,Trap在NMS端,端口是162。