Ponekad ljudi (firme) konfiguriraju svoje uređaje da neke podatke daju samo ako se klijent spoji koristeći SNMPv2 protokol. To je ono što sam ja primijetiom al to ti nebi trebao biti neki problem.
Jedna preporuka: ja sam s velikim guštom i priličnim uspjehom koristio snmp-session modul (nema ga na CPANu, http://code.google.com/p/snmp-session/) koji dosta pojednostavi cijelu tu SNMP interakciju.
Druga stvar koju sam primijetio je da ako ti treba nekoliko vrijednosti (a vidim da ih ti skupljaš više nego nekoliko) koristi getbulk koji se u SNMP protokolu pojavio u v2. Izađe jeftinije (brže i manje optereti procesor uređaja na kojeg se spajaš) potegnuti cijelo "podstablo" nego izvlačiti pojedine vrijednosti.
--
Igor Rumiha
Damn. A ba� sam pro�ao Net::SNMP -> SNMP::Multi -> Net::SNMP + async
callback, tako da nisam ba� sasvim siguran da �elim jo� jednom u�iti
API. Ali, pure perl SNMP izgleda primamljivo... :-)
Imao sam osje�aj da prvo moram pitati *koji* SNMP da koristim...
> Druga stvar koju sam primijetio je da ako ti treba nekoliko vrijednosti (a vidim da ih ti skuplja� vi�e nego nekoliko) koristi getbulk koji se u SNMP protokolu pojavio u v2. Iza�e jeftinije (br�e i manje optereti procesor ure�aja na kojeg se spaja�) potegnuti cijelo "podstablo" nego izvla�iti pojedine vrijednosti.
Jel' postoji neki arbitrary limit na veli�inu responsa u v1? To bi moglo
objasniti za�to dobivam samo neke vrijednosti, a ne sve (mo�da je HP
SNMP jako compliant, a ostali nisu?)
Druga ideja je da poku�am update-ati firmware na printeru, sigurno �e
pomo�i ;-)
--
Dobrica Pavlinusic 2share!2flame dpa...@rot13.org
Unix addict. Internet consultant. http://www.rot13.org/~dpavlin
Mozda da pogledas kroz wireshark? da li su iste velicine paketi kada
pozoves walk na neko drugo veliko stablo?
B.
Nisam siguran da razumijem.
v1 snmpwalk koristi get-next-request za jedan po jedan oid.
Net::SNMP �alje getBulkRequest kada koristi v2, i get-next-request
kada koristi v1...
�to je o.k., osim �to po�alje SAMO DVA get-next-request iz nekog
razloga...
Zapravo, ono �to poku�avam izbje�i je da moram specijalno re�i da li
koristim snmp v1 ili v2. Problem je da manji printeri imaju samo v1, a
ovaj nesretni HP vra�a sve vrijednosti samo za v2.
Za sada imam hardcodiran regex za njega, ali to mi nije najbolje
rje�enje :-)
Citam RFC za GetNextRequest, i pise da bit error flag trebao biti
podesen ako server strana odluci da prestane sa slanjem odgovora...
http://tools.ietf.org/html/rfc1157#section-4.1.3
Ne nadjem nis pametno, cinimi se da vecina logike u requestoru.
> Zapravo, ono �to poku�avam izbje�i je da moram specijalno re�i da li
> koristim snmp v1 ili v2. Problem je da manji printeri imaju samo v1, a
> ovaj nesretni HP vra�a sve vrijednosti samo za v2.
>
> Za sada imam hardcodiran regex za njega, ali to mi nije najbolje
> rje�enje :-)
Zar ne postoji neki fallback sa v2 na v1 prilikom connect-a ako server
strana ne podrzava v2?
B.
da, skroz je �udno jer zadnji response nema error.
> Ne nadjem nis pametno, cinimi se da vecina logike u requestoru.
>
> >Zapravo, ono �to poku�avam izbje�i je da moram specijalno re�i da li
> >koristim snmp v1 ili v2. Problem je da manji printeri imaju samo v1, a
> >ovaj nesretni HP vra�a sve vrijednosti samo za v2.
> >
> >Za sada imam hardcodiran regex za njega, ali to mi nije najbolje
> >rje�enje :-)
>
> Zar ne postoji neki fallback sa v2 na v1 prilikom connect-a ako
> server strana ne podrzava v2?
Well, na malim HP printerima dobivam gre�ku u callback-u:
ERROR: 10.60.0.30 No response from remote host '10.60.0.30'
Da je on-connect time, bio bi jednostavan re-try, ali ovako...
SNMP Session izgleda jako dobro (dodatni layeri abstrakcije su uvijek
lo�i :-) ali mislim da �u morati napraviti forkani poller jer imam 33
printera...