Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何实现SNMP';getSubtree';PDU类型,以及SNMP代理对其的支持?_Snmp_Snmp4j - Fatal编程技术网

如何实现SNMP';getSubtree';PDU类型,以及SNMP代理对其的支持?

如何实现SNMP';getSubtree';PDU类型,以及SNMP代理对其的支持?,snmp,snmp4j,Snmp,Snmp4j,我已经使用SNMP4J实现了一个SNMP代理。我在很多地方(包括snmp4jjavadoc)读到过对“getSubtree”操作的支持,但它似乎总是从客户端使用getNext和/或getBulk来完成。不过,我想做的是为“getSubtree”定义一个新的PDU,并实现对它的服务器端代理支持 是否有人成功地(a)使用SNMP4J实现了新的PDU类型(超过了7种标准类型),和/或(b)在代理中实现了“getSubtree”支持(我已经知道如何从客户端模拟它。)(a)或(b)是否可能?任何关于如何做

我已经使用SNMP4J实现了一个SNMP代理。我在很多地方(包括snmp4jjavadoc)读到过对“getSubtree”操作的支持,但它似乎总是从客户端使用getNext和/或getBulk来完成。不过,我想做的是为“getSubtree”定义一个新的PDU,并实现对它的服务器端代理支持


是否有人成功地(a)使用SNMP4J实现了新的PDU类型(超过了7种标准类型),和/或(b)在代理中实现了“getSubtree”支持(我已经知道如何从客户端模拟它。)(a)或(b)是否可能?任何关于如何做的建议都将不胜感激

SNMP不是一种允许您向其添加新操作的可扩展协议。所以在法律上,你不能这么做。RFC将PDU限制为现有PDU。GETBULK是从代理收集大量信息的最有效方法,尽管它在使用它时有自己的问题(例如数据溢出)。

是的,数据溢出/多个请求问题是我试图解决的问题。然而,我读过的各种页面和论文都谈到了实现“getSubtree”操作(它们与标准操作一起实现)。我看到了一个这样做的建议(以RFC风格编写)。我见过一个MIB,它使用一个集合和多个陷阱来响应。虽然我同意只有标准的操作是合法的,但我正在尝试发现/复制其他操作。你见过这个吗?设置来自客户端的调用很简单,但是SNMP4J说这是一种无效的类型。如果您控制客户端和服务器上的代码,那么当然,您可以向管理堆栈和服务器端代理添加任何您想要的内容。但是你不再做可互操作的SNMP了,你正在做一些新的事情。已经有很多解决这个问题的请求,但是没有一个是标准化的。一些商业栈确实有扩展机制来做类似的事情,但它们不会在所有设备上都工作(事实上,很少)。你能做的最好的事情就是找到一个rowcount对象,这样你就可以知道如何设置GETBULK repeater count了谢谢,Wes。我最终(至少现在)实现了客户端和服务器的一个版本,在SNMP4J的基础上提供了一个新的PDU。由于它的签名与GET非常相似,因此非常简单。我同意这是非标准的,但因为它是为我们自己的管理控制台设计的,所以可能还可以。考虑到需要发送的数据的大小,它可能只对TCP连接有用,这是我在各种论文中讨论getSubtree时看到的一个常见线程。