网络设备监控及SNMPV3协议

网络设备监控主要是指交换机 路由器 及各种安全设备的监控。网络设备的监控在各运维环境中起着至关重要的作用。

SNMP协议:

SNMP(简单网关协议,Simple Network Management Protocol)是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。SNMP的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后人们对SGMP进行了很大的修改,特别是加入了符合Internet定义的SMI和MIB,改进后的协议就是著名的SNMP。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。虽然SNMP开始是面向基于IP的网络管理,但作为一个工业标准也被成功用于电话网络管理。

        基于TCP/IP的SNMP网络管理框架由3个主要部分组成,即管理信息结构SMI(Structure ofManagement Information)、管理信息库MIB和管理协议SNMP。

    SMI:定义了SNMP框架所用信息的组织和标识,为MIB定义管理对象及使用管理对象提供模板。
    MIB:定义了可以通过SNMP进行访问的管理对象的集合。
    SNMP协议:定义了网络管理者如何对代理进程的MIB对象进行读写操作。

SNMP管理模型

    SNMP的管理模型由SNMP管理站和SNMP代理组成,对网络的管理与维护是通过SNMP管理站与SNMP代理之间的交互工作完成的。SNMP管理站是一个中心节点,负责收集维护各个SNMP元素的信息,并对这些信息进行处理,最后反馈给网络管理员;而SNMP代理是运行在被管理的网络节点之上,负责统计该节点的各项信息,并且与SNMP管理站交互,接收并执行管理站的命令,上传各种本地的网络信息。

        下图是SNMP的管理模型,包括四个部分:网络管理系统NMS(Network Management Station)、代理进程Agent、被管对象Management object和管理信息库MIB(Management Information Base)四部分组成。

1653292611914551.png

 SNMP 报文结构

        目前SNMP有三个版本,分别是SNMP v1、SNMP v2c和SNMP v3。

    SNMP v1是SNMP协议的最初版本,不过众多厂家依然支持实现SNMP v1。
    SNMP v2是基于Community的SNMP实现。Community实质上就是密码。
    SNMP v3 是最新版本的SNMP。它对网络管理最大的贡献在于其安全性,增加了对认证和密文传输的支持。

        SNMPv1/v2c报文结构

         报文中的主要字段定义如下:

图片.png

 版本:表示SNMP的版本,如果是SNMPv1报文则对应字段值为0,SNMPv2c则为1。

    团体名:用于在Agent与NMS之间完成认证,字符串形式,用户可自行定义。团体名包括“可读”和“可写”两种,执行GetRequest、GetNextRequest操作时,采用“可读团体名”进行认证;执行Set操作时,则采用“可写团体名”认证。
    SNMPv1/SNMPv2c PDU:包含PDU类型、请求标识符、变量绑定列表等信息。

        SNMPv3报文结构

图片.png        

SNMP报文中的主要字段定义如下:

    版本:表示SNMP的版本,SNMPv3报文则对应字段值为2。
    报头数据:主要包含消息发送者所能支持的最大消息尺寸、消息采用的安全模式等描述内容。
    安全参数:包含SNMP实体引擎的相关信息、用户名、认证参数、加密参数等安全信息。
    Context EngineID:SNMP唯一标识符,和PDU类型一起决定应该发往哪个应用程序。
    Context Name:用于确定Context EngineID对被管理设备的MIB视图。
    SNMPv3 PDU:包含PDU类型、请求标识符、变量绑定列表等信息。

 SNMP v1/v2工作原理

        SNMPv1和SNMPv2c的工作原理基本一致,如下图。

1653292897520148.png

      

 

下面以Get操作来说明SNMP的工作原理:假定NMS想要获取被管理设备MIB节点sysContact的值,使用可读团体名为public,过程如下所示:

      NMS:向Agent发送Get请求报文。报文中各字段的设置如下:版本号为所使用的SNMP版本;团体名为public;PDU中PDU类型为Get类型,绑定变量填入MIB节点名sysContact。
      Agent:首先对报文中携带版本号和团体名进行认证,认证成功后,Agent根据请求查询MIB中的sysContact节点,得到sysContact的值并将其封装到Response报文中的PDU,向NMS发送响应;如果查询不成功,Agent会向NMS发送出错响应。

SNMP v3工作原理

        SNMPv3提出了一个新的体系结构,即SNMPv3实体。SNMPv3实体可以分为SNMPv3引擎(SNMPv3 Engine)和SNMPv3应用程序(SNMPv3 Application),引擎与应用程序均由多个小模块组成。

        SNMPv3由于采用了用户安全模块USM(User-based Security Model)和基于视图的访问控制模块VACM(View-based Access Control Model),在安全性上得到了提升。

    USM:提供身份验证和数据加密服务。实现这个功能要求NMS和Agent必须共享同一密钥。

        身份验证:身份验证是指Agent或NMS接到信息时首先必须确认信息是否来自有权限的NMS或Agent并且信息在传输过程中未被改变。RFC2104中定义了HMAC,这是一种使用安全哈希函数和密钥来产生信息验证码的有效工具,在互联网中得到了广泛的应用。SNMP使用的HMAC可以分为两种:HMAC-MD5-96和HMAC-SHA-96。前者的哈希函数是MD5,使用128位authKey作为输入。后者的哈希函数是SHA-1,使用160位authKey作为输入。
        加密:加密算法实现主要通过对称密钥系统,它使用相同的密钥对数据进行加密和解密。加密的过程与身份验证类似,也需要管理站和代理共享同一密钥来实现信息的加密和解密。SNMP使用以下三种加密算法:DES、3DES、AES

    VACM:对用户组或者团体名实现基于视图的访问控制。用户必须首先配置一个视图,并指明权限。用户可以在配置用户或者用户组或者团体名的时候,加载这个视图达到限制读写操作、Inform或Trap的目的。

        SNMPv3的实现原理和SNMPv1/SNMPv2c基本一致,唯一的区别是SNMPv3增加了身份验证和加密处理。下面以Get操作为例介绍下SNMPv3的工作原理。

假定NMS想要获取被管理设备MIB节点sysContact的值,使用认证加密方式,过程下图所示:

    NMS:向Agent发送不带安全参数的Get请求报文,向Agent获取Context EngineID、Context Name和安全参数。
    Agent:响应NMS的请求,并向NMS反馈请求的参数。
    NMS:再次向Agent发送Get请求报文,报文中各字段的设置如下:
        版本:SNMP v3版本。
        报头数据:指明采用认证、加密方式。
        安全参数:NMS通过配置的算法计算出认证参数和加密参数,并填入相应字段。
        PDU:将获取的Context EngineID和Context Name填入相应字段,PDU类型设置为Get,绑定变量填入MIB节点名sysContact,并使用已配置的加密算法对PDU进行加密。
    Agent:首先对消息进行认证,认证通过后对PDU进行解密。解密成功后,Agent根据请求查询MIB中的sysContact节点,得到sysContact的值并将其封装到Response报文中的PDU,并对PDU进行加密,向NMS发送响应。如果查询不成功或认证、解密失败,Agent会向NMS发送出错响应。

PIGOSS BSM 的实现和扩展SNMP指标

可以支持Snmp进行数据采集的工具和产品很多,但是能很好支持Snmp V3的工具并不多。PIGOSS监控管理系统支持对市面上常用网络设备的监控,支持 SNMP 轮巡的数据采集,兼容SNMP v1,SNMP v2c和SNMP v3。

PIGOSS BSM 能够监控国内外主流厂商的网络设备,可以监测的相关参数有:CPU使用率、内存使用率、端口管理和运行状态以及流入流出量、流入和流出使用率、单播接收和发送包数量、网络流量(平均流量和最大最小值等)和带宽、网络链路联通性、QOS等。还可以通过SyslogTrap协议被动接收网络设备发送的告警,如安全设备一般都会主动将其受到攻击的信息通过Trap向管理平台发送。还可以通过ICMP协议检测线路的性能。监控系统对网络设备状态监测和管理包括以下重要的指标:

·         网络设备 CPU 的使用率、网络设备的内存使用率、网络设备接口的丢包率和误包率、广播包、非广播包、网络设备接口到对端设备接口的丢包率和网络延迟。

·         思科及华为设备QOS流量信息。

·         提供网络设备相关硬件信息及运行状态的数据报表。

·         流入、流出广域网、局域网的网络流量监测。

·         支持基于设备端口的实时性能分析,支持链路的实时性能分析。

·         为管理员提供Ping、Tracert、Nslookup、snmp 扫描、Ping扫描、MIB浏览器及MIB编译器等检测工具。

·         提供网络历史性能数据的记录与分析管理,以按每分钟、每五分钟,每十分钟、每天、每周、每月等间隔时间生成历史数据分析报表,报表样式分为柱形图、线形图、面积图、仪表图等,为用户分析网络运行情况做出有力依据。

·         VLAN 的监测,如 VLAN 端口的状态和流量等。

·         支持端口的95值计费功能;

网络设备监控