使用MIB builder自定义物联网网关的MIB结构

2023-12-13 14:32:39

文章目录

  • 物联网网关初识(了解即可)
  • IoT的通用MIB库结构
  • MIB Builder开发流程指导
  • 问题总结
    • 子叶没所属分组
    • 值范围不为0

物联网网关初识(了解即可)

  • 网关又称网间连接器、协议转换器。简单说,物联网网关是一台智能计算机,作为管理所有连接物联网设备、传感器和执行器的中央集线器。
  • 它充当入口,聚合、处理和过滤各种物联网设备发送的所有数据和信息,然后再发送到云端。更先进的物联网网关能够执行复杂的边缘计算应用程序,例如人工智能。在这种情况下,物联网网关在边缘处理大部分数据,并且能够在边缘运行实时决策,而无需云的任何帮助。
    在这里插入图片描述
  • 物联网网关特点
    • 工业级设计,选用高清触摸屏
    • 物联网网关存储量大,数据不会丢失
    • 支持多种通讯协议,通讯效率高和方便
  • 物联网网关功能
    1. 协议转换能力:从不同的感知网络到接入网络的协议转换、将下层的标准格式的数据统一封装、保证不同的感知网络的协议能够变成统一的数据和信令;将上层下发的数据包解析成感知层协议可以识别的信令和控制指令。
    2. 可管理能力:首先要对网关进行管理,如注册管理、权限管理、状态监管等。网关实现子网内的节点的管理,如获取节点的标识、状态、属性、能量等,以及远程实现唤醒、控制、诊断、升级和维护等。由于子网的技术标准不同,协议的复杂性不同,所以网关具有的管理性能力不同。
    3. 广泛的接入能力:物联网网关进行标准化工作,如传感器工作组,实现各种通信技术标准的互联互通。

IoT的通用MIB库结构

通用物联网(IoT)网关设备管理的MIB库设计,应当涵盖设备的基本配置、状态信息、性能指标和安全管理等方面。以下是一个设计示例及其设计原因:

  1. 设备基本信息(deviceInfoGroup)

    • 设备型号(deviceModel)
    • 序列号(serialNumber)
    • 固件版本(firmwareVersion)
    • 启动时间(uptime)

    **设计原因:**这些信息为网络管理员提供了设备的基本身份信息,便于跟踪和管理设备。

  2. 网络配置信息(networkConfigGroup)

    • IP地址(ipAddress)
    • 子网掩码(subnetMask)
    • 默认网关(defaultGateway)
    • DNS服务器(dnsServers)

    **设计原因:**网络配置是设备通信的基础,这些信息是进行故障诊断和网络设置的关键信息。

  3. 设备状态信息(deviceStatusGroup)

    • CPU使用率(cpuUtilization)
    • 内存使用率(memoryUtilization)
    • 存储空间使用率(storageUtilization)
    • 网络接口状态(interfaceStatus)

    **设计原因:**这些状态信息可以帮助网络管理员监控设备性能,并及时发现和解决问题。

  4. 设备性能指标(devicePerformanceGroup)

    • 数据吞吐量(dataThroughput)
    • 数据包丢失率(packetLossRate)
    • 响应时间(responseTime)
    • 设备温度(deviceTemperature)

    **设计原因:**这些性能指标对于确保设备能够高效稳定运行至关重要,同时有助于规划网络资源和容量。

  5. 连接的设备信息(connectedDevicesGroup)

    • 连接设备的数量(connectedDevicesCount)
    • 每个设备的标识信息(deviceId)
    • 每个设备的状态信息(deviceStatus)
    • 每个设备的网络统计信息(deviceNetStats)

    **设计原因:**IoT网关通常连接多个设备,管理这些设备的信息对于整个网络的健康至关重要。

  6. 安全管理(securityManagementGroup)

    • 认证错误计数(authErrorCount)
    • 密码强度设置(passwordStrengthOption)
    • 加密标准使用情况(encryptionStandardsUsed)
    • 安全事件日志(securityEventLog)

    **设计原因:**安全性是物联网环境中的一个重要话题,这些指标可以帮助网络管理员维护网络的安全状态。

  7. 远程管理(remoteManagementGroup)

    • 支持的远程管理协议(supportedRemoteProtocols)
    • 远程管理状态(remoteManagementStatus)
    • 远程更新能力(remoteUpdateCapability)

    **设计原因:**远程管理能力对于分散布置的物联网设备而言非常重要,它允许管理员从远端配置和更新设备。

  8. 事件和告警(eventsAndAlarmsGroup)

    • 事件日志(eventLog)
    • 当前活动告警(currentActiveAlarms)
    • 历史告警记录(historicalAlarmsRecord)

    **设计原因:**事件和告警记录对于及时响应设备和网络问题是必需的,它们可以帮助快速定位问题并采取相应行动。

注意:每个组都应该定义为一个独立的MIB模块,使用Object Identifiers(OIDs)进行组织,确保与其他MIB库的唯一性和互操作性。这样设计的目的是为了提供一个全面的视图来管理和监控IoT网关设备的运行状况。

MIB Builder开发流程指导

  • 使用MIB Builder定义物联网网关设备的MIB数据结构,需要遵循结构化的定义语法(通常是SMIv2, Structure of Management Information Version 2)。
  • MIB定义是用asn.1(Abstract Syntax Notation One)语言书写的,它定义了如何管理网络对象及其层次结构。

设计一个MIB包括以下几个步骤:

  1. 确定OID树结构: 。通常,私有企业会从1.3.6.1.4.1iso.org.dod.internet.private.enterprise)后附加一个为企业分配的特定数字,作为他们私有分支的起点。使用文档参考MG-SOFT MIB builder and compile

    • 注意导入系统SNMPv2-SMI.my的enterprise进行开发
    yourCompany OBJECT IDENTIFIER ::= { enterprise 9999 }
    iotGatewayMIB OBJECT IDENTIFIER ::= { yourCompany 1 }
    
  2. 定义SMI结构: 使用结构化管理信息(SMI)标准定义数据类型、模块结构和命名规则。

  3. 定义MIB模块: 包括MIB的版本、导入的依赖项、命名空间等。

    IoT-GATEWAY-MIB DEFINITIONS ::= BEGIN
    IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE, ... FROM SNMPv2-SMI
        ...;
    
  4. 定义模块身份(Module Identity)和更新修订记录: 这为整个MIB模块提供了身份和版本历史。

    iotGateway MODULE-IDENTITY
        LAST-UPDATED "202303150000Z"
        ORGANIZATION "Your Company Name"
        CONTACT-INFO "Your Contact Information"
        DESCRIPTION "MIB for managing IoT Gateway devices."
        REVISION "202303150000Z" DESCRIPTION "Initial version."
        ::= { iotGatewayMIB 1 }
    
  5. 定义主要对象组: 按照功能对对象进行分组,如之前所述的各个分组。

  6. 定义具体的管理对象: 这些是具体的OIDs,代表了网关设备的各种属性和可管理的数据点。

    deviceModel OBJECT-TYPE
        SYNTAX OCTET STRING
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "A textual description of the device model."
        ::= { deviceInfoGroup 1 }
    
  7. 定义主要功能描述:

    • 设备管理(如配置、状态)
    • 性能监控(如CPU、内存使用)
    • 网络管理(如连接状态、IP配置)
    • 安全特性(如访问控制、加密)
    • 告警和事件处理
  8. 定义Trap事件: Trap是SNMP中用于异步通知管理工具的机制。您需要定义特定情况下将触发的Trap事件。

    iotGatewayHighCpuUsage NOTIFICATION-TYPE
        OBJECTS { cpuUtilization }
        STATUS current
        DESCRIPTION
            "This trap is sent when the CPU usage exceeds a predefined threshold."
        ::= { iotGatewayTraps 1 }
    
    -- Define 'iotGatewayTraps' as a separate identifier within the iotGateway MIB
    
  9. 结束MIB定义:

    END
    

下面是各个组的一些定义示例和指导:

  1. 设备基本信息 (deviceInfoGroup)
deviceInfoGroup OBJECT IDENTIFIER ::= { yourMIBroot 1 }

deviceModel OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The model identifier for the IoT Gateway."
    ::= { deviceInfoGroup 1 }

serialNumber OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The serial number of the IoT Gateway."
    ::= { deviceInfoGroup 2 }

firmwareVersion OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The firmware version running on the IoT Gateway."
    ::= { deviceInfoGroup 3 }

uptime OBJECT-TYPE
    SYNTAX      Timeticks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The time since the IoT Gateway last restarted."
    ::= { deviceInfoGroup 4 }
  1. 网络配置信息 (networkConfigGroup)
networkConfigGroup OBJECT IDENTIFIER ::= { yourMIBroot 2 }
-- Define objects such as ipAddress, subnetMask, etc., in a similar manner.
  1. 设备状态信息 (deviceStatusGroup)
deviceStatusGroup OBJECT IDENTIFIER ::= { yourMIBroot 3 }
-- Define objects such as cpuUtilization, memoryUtilization, etc., in a similar manner.
  1. 设备性能指标 (devicePerformanceGroup)
devicePerformanceGroup OBJECT IDENTIFIER ::= { yourMIBroot 4 }
-- Define objects such as dataThroughput, packetLossRate, etc., in a similar manner.
  1. 连接的设备信息 (connectedDevicesGroup)
connectedDevicesGroup OBJECT IDENTIFIER ::= { yourMIBroot 5 }
-- Define objects such as connectedDevicesCount, deviceId, etc., in a similar manner.
  1. 安全管理 (securityManagementGroup)
securityManagementGroup OBJECT IDENTIFIER ::= { yourMIBroot 6 }
-- Define objects such as authErrorCount, passwordStrengthOption, etc., in a similar manner.
  1. 远程管理 (remoteManagementGroup)
remoteManagementGroup OBJECT IDENTIFIER ::= { yourMIBroot 7 }
-- Define objects such as supportedRemoteProtocols, remoteManagementStatus, etc., in a similar manner.
  1. 事件和告警 (eventsAndAlarmsGroup)
eventsAndAlarmsGroup OBJECT IDENTIFIER ::= { yourMIBroot 8 }
-- Define objects such as eventLog, currentActiveAlarms, etc., in a similar manner.

问题总结

子叶没所属分组

  • 警告信息

    WARNING:	OBJECT-TYPE "historicalAlarmsRecord" is not included in any group defined in the current module.
    
  • 在分组下引入相符的gruop组件,然后将该分组下的子叶加入分组即可解决!
    在这里插入图片描述

值范围不为0

  • 注意自定义范围时,将起始值设置为非0即可!

文章来源:https://blog.csdn.net/yang2330648064/article/details/134835983
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。