在 PHP 中使用 snmp v2 时如何设置最大消息大小?
我正在使用 PHP 对设备进行 SNMP 遍历,并且我的组织有非常严格的防火墙。我遇到了一个问题,如果数据包更大并且碎片化,(snmp2_real_walk 或 snmp2_walk)会导致我的生产服务器超时。我想知道是否有办法将最大数据包大小设置为更小以防止碎片。
我在 Ubuntu 12.04 和 Net-SNMP 5.4.3 上使用 php 5.4.10。
当我捕获流量时,事实证明 snmp2_real_walk 正在使用 getBulkRequest。我收到一个响应,说数据包是分段的,以及一个较小的后续数据包。在我的本地机器上,除了防火墙之外的相同环境,这有效。在我的生产机器上,它失败了。
var_dump(snmp2_real_walk("a.b.c.d", "public", '.o.i.d'));
如果我通过命令行调用它,它适用于较小的数据包。我不明白为什么。必须有一种方法来设置数据包/消息的大小,对吧?
snmpbulkwalk -v2c -cpublic a.b.c.d .o.i.d
(删除敏感数据)。