Tôi đã cố gắng để hiểu làm thế nào để tạo ra một MIB: ở đây những gì tôi đã làm như vậy cho đến nay:snmpset Đối tượng không thể ghi. Tại sao?
Tôi tạo ra một MIB, và cố gắng phân bổ giá trị OID mới => thất bại
Đây là 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
sau đó tôi
- xác nhận MIB này chống lại smilint,
- đặt nó trong ~/.snmp/MIB/
- có chuỗi rwcommunity cho tất cả các máy chủ, không có hạn chế OID
- khởi động lại daemon snmpd (Trên Debian)
Cho đến nay, tất cả đều tốt.
sau đó tôi đã cố gắng để xem nếu daemon biết về doanh nghiệp mới này, và tôi đã làm:
snmpwalk -v2c -m +ALL localhost .1.3.6.1.4.1.39106
mà kết quả đầu ra: TEST-MIB :: test = Không Object này có sẵn trên đại lý này tại OID này
Vì vậy, tôi đoán rằng Snmpd đang nói với tôi rằng anh ta không thể tìm thấy bất cứ điều gì dưới gốc cây này, bởi vì chưa có gì được thiết lập.
Vì vậy, tôi cố gắng thiết lập biến thử nghiệm này với snmpset trên vỏ:
snmpset -v2c -m +ALL localhost .1.3.6.1.4.1.39106.2.1 i 111
kết quả đầu ra:
Error in packet.
Reason: notWritable (That object does not support modification)
Failed object: TEST-MIB::testVar
tôi đã cố gắng cũng như với: snmpset -v2c -m + ALL localhost. 1.3.6.1.4.1.39106.2.1.0 i 111
và làm gốc, nhưng không thành công
Nhưng khi tôi làm một snmptranslate, tôi có thể thấy rằng MIB được phân tích cú pháp chính xác:
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 }
là một lỗi? Một vấn đề đã biết?
Sau khi trải qua một giờ đọc bài ALL liên quan trên stack overflow (13 trang, yehaoo), tôi nhận ra rằng tôi có thể phải sử dụng mib2c để biến mib của tôi thành mã c, và sau đó, biên dịch lại netsmtpd bằng thư viện này. Tôi có cần phải viết bất kỳ mã C nào để làm điều đó không? Tôi không phải là một C-noob, tôi là một tổng số dốt nát về tất cả mọi thứ liên quan đến C ....: ( – Ant