snmpset 对象不可写。为什么?

标签 snmp net-snmp snmpd

关闭。这个问题是off-topic .它目前不接受答案。












想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。

9年前关闭。




Improve this question




我一直试图了解如何创建 MIB:到目前为止我所做的:

我创建了一个 MIB,并尝试将值分配给新的 OID => 失败

这是 MIB:

TEST-MIB DEFINITIONS ::= BEGIN

IMPORTS
MODULE-COMPLIANCE, OBJECT-GROUP    FROM SNMPv2-CONF
OBJECT-TYPE, Integer32,MODULE-IDENTITY FROM SNMPv2-SMI;




test    MODULE-IDENTITY
    LAST-UPDATED "201112190200Z"
    ORGANIZATION "blah"
    CONTACT-INFO
        "please"        
    DESCRIPTION
        "I am stuck"
    REVISION    "201112190200Z"
    DESCRIPTION
        "initial Draft"
    ::= { iso org(3) dod(6) internet(1) private(4) enterprises(1) 39106 }

testResearch               OBJECT IDENTIFIER ::= { test 2 }

testVar OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
        "just for testing"
    ::= { testResearch 1}

-- conformance information

testMIBConformance OBJECT IDENTIFIER ::= { test 999 }
testMIBCompliances OBJECT IDENTIFIER ::= { testMIBConformance 1 }
testMIBGroups      OBJECT IDENTIFIER ::= { testMIBConformance 2 }

-- compliance statements

testMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
        "blah."
    MODULE  -- this module
    MANDATORY-GROUPS { testGroup }
    ::= { testMIBCompliances 1 }

-- units of conformance

testGroup OBJECT-GROUP
    OBJECTS   { testVar }
    STATUS    current
    DESCRIPTION
        "The draft"
    ::= { testMIBGroups 1 }

END

然后我
  • 针对 smilint 验证此 MIB,
  • 把它放在 ~/.snmp/mibs/
  • 拥有所有主机的 rwcommunity 字符串,没有 OID 限制
  • 重新启动了 snmpd 守护进程(在 Debian 上)

  • 到目前为止,一切都很好。

    然后我尝试查看守护进程是否知道这个新企业,我做到了:
    snmpwalk -v2c -m +ALL  localhost  .1.3.6.1.4.1.39106
    

    输出:
    TEST-MIB::test= 在此 OID 的此代理上没有可用的此类对象

    所以我猜 snmpd 告诉我他在这棵树下找不到任何东西,因为还没有设置任何东西。

    所以我尝试在 shell 上使用 snmpset 设置这个测试变量:
    snmpset  -v2c -m +ALL localhost .1.3.6.1.4.1.39106.2.1 i 111
    

    输出:
    Error in packet.
    Reason: notWritable (That object does not support modification)
    Failed object: TEST-MIB::testVar
    

    我也尝试过:
    snmpset -v2c -m +ALL 本地主机 .1.3.6.1.4.1.39106.2.1.0 i 111

    并作为 root,但没有成功

    但是当我执行 snmptranslate 时,我可以看到 MIB 被正确解析:
        snmptranslate -Td  1.3.6.1.4.1.39106.2.1 
        TEST-MIB::testVar
       testVar OBJECT-TYPE
          -- FROM   TEST-MIB
          SYNTAX    Integer32
          MAX-ACCESS    read-write
          STATUS    current
          DESCRIPTION   "just for testing"
        ::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) test(39106) testResearch(2) 1 }
    

    这是一个错误吗?已知问题?

    最佳答案

    听起来您正在尝试构建自己的 SNMP 代理。

    从表面上看,您已经正确创建了自己的 MIB OID,但是当您查询 SNMP 主机时,没有任何内容响应新的 OID。

    读一读:http://docs.oracle.com/cd/E13192_01/manager/mgr20/pguide/buildag.htm看看它是否解决了你的问题 q:)

    关于snmpset 对象不可写。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8553705/

    相关文章:

    download - 使用 SNMP 和 InOctets 计数器来跟踪下载使用情况

    aes - net-snmp 是否支持 AES-192 和 AES-256 加密?

    snmp推送机制

    networking - 服务 snmpd 重启问题

    ubuntu-14.04 - snmpd 的 SNMPDOPTS 中的 mteTrigger 选项有什么作用?

    linux - 尽管使用了正确的工具链文件,但为什么 CMake 在交叉编译 Net-SNMP 代理时明显引用主机系统文件?

    c++ - 使用 C++ 的 Net-SNMP 变量

    snmp - 如何使用 SNMP 获取连接到交换机的设备的 MAC 或 IP 地址?

    snmp - SNMPv2c 读写团体允许的最大长度

    linux - BeagleBone Black 上的 SNMP