Net::SNMP v1 vs v2

10 views
Skip to first unread message

Dobrica Pavlinusic

unread,
Dec 13, 2010, 9:38:32 AM12/13/10
to Zagreb Perl Mongers
Pretpostavljam da je netko od vas radio sa SNMP-om, pa da mi može
pomoći u rješavanju slijedećeg misterija:

https://github.com/dpavlin/snmp-json/blob/master/printer-callbacks.pl

je skriptica koja skida podatke o printerima korištenjem SNMP-a. Radi
lijepo na Xerox-ima i HP-ovima koji su SNMP v1, HOWEVER,
na HP5550 vrati samo dio consumable-a (toneri) dok preko SNMPv2 vrati
sve.

Da li ste vidjeli nešto slično, tj. da li SNMPv1 ima neko arbitrary
ograničenje veličine odgovora? Da li bi getnext pomogao?

Igor Rumiha

unread,
Dec 13, 2010, 9:57:14 AM12/13/10
to zagr...@googlegroups.com
On 13. pro. 2010., at 15:38, Dobrica Pavlinusic wrote:
> Da li ste vidjeli nešto slično, tj. da li SNMPv1 ima neko arbitrary
> ograničenje veličine odgovora? Da li bi getnext pomogao?

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

Dobrica Pavlinusic

unread,
Dec 13, 2010, 2:38:48 PM12/13/10
to zagr...@googlegroups.com
On Mon, Dec 13, 2010 at 03:57:14PM +0100, Igor Rumiha wrote:
> On 13. pro. 2010., at 15:38, Dobrica Pavlinusic wrote:
> > Da li ste vidjeli ne�to sli�no, tj. da li SNMPv1 ima neko arbitrary
> > ograni�enje veli�ine odgovora? Da li bi getnext pomogao?
>
> 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.

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

Boris Shomodjvarac

unread,
Dec 13, 2010, 2:40:50 PM12/13/10
to zagr...@googlegroups.com
On 12/13/2010 08:38 PM, Dobrica Pavlinusic wrote:
> 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?)

Mozda da pogledas kroz wireshark? da li su iste velicine paketi kada
pozoves walk na neko drugo veliko stablo?

B.

Dobrica Pavlinusic

unread,
Dec 13, 2010, 3:18:19 PM12/13/10
to zagr...@googlegroups.com

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 :-)

Boris Shomodjvarac

unread,
Dec 13, 2010, 3:31:52 PM12/13/10
to zagr...@googlegroups.com
On 12/13/2010 09:18 PM, Dobrica Pavlinusic wrote:
> On Mon, Dec 13, 2010 at 08:40:50PM +0100, Boris Shomodjvarac wrote:
>> On 12/13/2010 08:38 PM, Dobrica Pavlinusic wrote:
>>> 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?)
>>
>> Mozda da pogledas kroz wireshark? da li su iste velicine paketi kada
>> pozoves walk na neko drugo veliko stablo?
>
> 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...

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.


Dobrica Pavlinusic

unread,
Dec 13, 2010, 4:59:55 PM12/13/10
to zagr...@googlegroups.com
On Mon, Dec 13, 2010 at 09:31:52PM +0100, Boris Shomodjvarac wrote:
> On 12/13/2010 09:18 PM, Dobrica Pavlinusic wrote:
> >On Mon, Dec 13, 2010 at 08:40:50PM +0100, Boris Shomodjvarac wrote:
> >>On 12/13/2010 08:38 PM, Dobrica Pavlinusic wrote:
> >>>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?)
> >>
> >>Mozda da pogledas kroz wireshark? da li su iste velicine paketi kada
> >>pozoves walk na neko drugo veliko stablo?
> >
> >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...
>
> 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

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...

Reply all
Reply to author
Forward
0 new messages