我在SNMP中有一个表格,如下所示:
Id Name A.x A.y B.x B.y
1 Test 1 2 1 3
2 Next 3 4 5 6
我可以使用SNMP作为
来访问它table.1.1 = 1 table.1.2 = 2
table.2.1 = Name table.2.2 = Next
table.3.1 = 1 table.3.2 = 3
table.4.1 = 2 table.4.2 = 4
table.5.1 = 1 table.5.2 = 5
table.6.1 = 3 table.6.2 = 6
所以列的分配将是
1 = Id 2 = Name 3 = A.x 4 = A.y 5 = B.x 6 = B.y
然而由于某些原因(例如能够在“正确的顺序”中添加A.z和B.z),我希望列如下:
1 = Id 2 = Name 3.1 = A.x 3.2 = A.y 4.1 = B.x 4.2 = B.y
我的数据将如下所示:
table.1.1 = 1 table.1.2 = 2
table.2.1 = Name table.2.2 = Next
table.3.1.1 = 1 table.3.1.2 = 3
table.3.2.1 = 2 table.3.2.2 = 4
table.4.1.1 = 1 table.4.1.2 = 5
table.4.2.1 = 3 table.4.2.2 = 6
基本上,SNMP(只要求所有数据都可以通过每个列的一些起始OID进行迭代,并且没有表的其他内部规则)允许这样做。
但是可以用MIB表达吗?
客户能够处理吗?
答案 0 :(得分:0)
你可以做任何你想做的事。但是,如果你想遵守管理信息的结构"标准RFC 2578,然后是7.1.12概念 表
https://tools.ietf.org/html/rfc2578#section-7.1.12
解释您已经知道的规则。大多数应用程序都不会知道您的临时表布局。
答案 1 :(得分:0)
您建议的分配,其中某些列对象不是行的直接子节点,而是在它们之间有一个中间子节点,这是不合法的。相关规则在RFC 2578 section 7.10(2),OBJECT-TYPE值的映射:
中定义(2)如果对象对应于概念行,则至少一个 赋值,概念行中每列的一个赋值 在那个物体下面。 每个的管理分配名称 列是通过附加唯一的正子标识符来派生的 概念行的管理分配名称。
强调我的。含义很明确:您的列'OID 必须由附加到行的OID的单个子标识符指定(请注意,“name”表示OBJECT IDENTIFIER值。文本标签为1倾向于认为名称被称为“描述符”。)