我发送SNMP getBulkRequest
,使用基于某些第三方库(如agent ++,snmp ++等)的专有SNMP浏览器,具有多个OID,例如
.1.3.6.1.2.1.1.1
.1.3.6.1.2.1.1.5
.1.3.6.1.2.1.1.6
.1.3.6.1.2.1.1.4
是否保证返回的集合(如果存在具有此类前缀的OID)将以完全相同的顺序返回?
e.g。
.1.3.6.1.2.1.1.1.0
.1.3.6.1.2.1.1.5.0
.1.3.6.1.2.1.1.6.0
.1.3.6.1.2.1.1.4.0
欢迎任何答案,文档链接,与此问题相关的提示。
更新:非重复器= 0,MaxRepetitions> = 1
答案 0 :(得分:6)
假设代理是正确实现的,那么是的,虽然可以更清楚地说,响应PDU的完整返回集由请求中每个OID的各个结果集组成,并返回那些单独的结果集按照与请求中给出的顺序相同的顺序。每个单独的结果集的行为类似于零或更多(取决于非转发器和最大重复字段的值)get-next请求。
如果你的非转发器是N,那么响应中的前N个OID将与请求中的前N个OID相对应,每个OID都表现得像一个get-next请求(返回下一个更大的OID或endOfMibView异常,如果有的话)没有)。请求中的其余OID需要进行最大重复。
如果你的最大重复次数为M,则请求中的每个剩余OID都表现为0..M get-next请求(从请求OID返回M个下一个更大的OID;如果没有M更大的话) ,然后会有一些较小的数字后跟一个endOfMibView异常,在请求中的下一个OID产生的OID之前。)
[这也意味着如果非中继器和最大重复都为0,则结果为空集;或者如果max-repetitions为0且非中继器小于请求中的OID数量,则不会为超过非中继器的那些请求OID返回任何内容。]
如果在上述处理过程中的任何时候,代理无法在不超出其消息大小限制的情况下向响应中添加任何更多结果,则处理将停止,代理将返回到目前为止获得的部分结果。