Как установить максимальный размер сообщения при использовании snmp v2 в PHP?PHP SNMP v2 Walk Fragmenting/Blocked
Я использую PHP для работы с SNMP-устройствами, и у моей организации очень строгие брандмауэры. Я столкнулся с проблемой, когда (snmp2_real_walk или snmp2_walk) приводят к тайм-аутам с моего производственного сервера, если пакеты больше и становятся фрагментированными. Мне интересно, есть ли способ установить максимальный размер пакета на меньшее, чтобы предотвратить фрагментацию.
Я использую php 5.4.10 на Ubuntu 12.04 и Net-SNMP 5.4.3.
Когда я фиксирую трафик, выясняется, что 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
(чувствительные данные удалены).
Проблемный размер пакета - это не тот запрос, который вы отправляете, но ответ, который вы получаете, не так ли? Вы не можете решить, как другая сторона решит ответить, кроме установки в запросе флага «max-repeaters». Моя рекомендация состояла бы в том, чтобы избежать использования get-bulk в этой сети и вместо этого использовать вместо этого запросы get-next. Таким образом, ответы будут намного меньше. (Но по-прежнему нет гарантии, что они не будут фрагментированы.) – Jolta
Странно, что я могу запустить CLI-версию getBulk с одного и того же компьютера на один и тот же хост-адрес, и он не создает пакеты, которые тоже большой. Мне также нужны OID в моей прогулке, чтобы я мог подключить их к другой информации, которая разделяет ту же часть OID. (последняя часть). – Trenton
Я вижу, что вы имеете в виду для ретрансляторов ... Теперь я могу дублировать фрагментацию из CLI, если я использую -C r20 в команде. Теперь, чтобы узнать, возможно ли мне сказать PHP, чтобы уменьшить его повторения. – Trenton