Protokol SNMP

Podporované typy a verzie zariadení
Konfigurácia komunikačnej linky
Konfigurácia komunikačnej stanice
Konfigurácia meraných bodov
Príjem a spracovanie správ typu Trap
Vyčítavanie stromu hodnôt zo skriptu
Literatúra
Zmeny a úpravy
Revízie dokumentu

Podporované typy a verzie zariadení


Protokol SNMP (Simple Network Management Protocol) slúži na monitorovanie a správu sieťových prvkov. Umožňuje zisťovať stav sieťových prvkov a meniť ich nastavenia. V rámci aplikácie je možné sledovať funkčnosť napr. routrov, switchov, počítačov, atď.

Pre vytvorenie stanice s protokolom SNMP je potrebné mať vytvorenú linku pre UDP protokol – typ linky TCP/IP-UDP. Linka TCP/IP-UDP v ponímaní systému D2000 je vlastne vytvorenie UDP socketu, ktorý je logickým zariadením pre komunikáciu jednotlivých staníc. Na linke, na ktorej existujú stanice s nakonfigurovaným SNMP protokolom, nie je možné konfigurovať stanice s iným protokolom!

Konfigurácia komunikačnej linky


  • Kategória komunikačnej linky: TCP/IP-UDP.
  • UDP Parametre:
    • Host: Existujú 3 možnosti:
      1. IP adresa konkrétneho sieťového rozhrania počítača, na ktorom je proces D2000 KOM – UDP pakety budú odosielané a prijímané len prostredníctvom tohto rozhrania. Príklad: 192.168.1.10
      2. Symbolické meno konkrétneho sieťového rozhrania počítača. Príklad: D2SRV_PRIMARY
      3. Textová konštanta ALL - otvorí sa nakonfigurovaný UDP port na všetkých dostupných sieťových rozhrania počítača. Na posielanie správ bude použité najvhodnejšie sieťové rozhranie na základe smerovacích tabuliek, príjem správ bude uskutočňovaný na všetkých sieťových rozhraniach.
    • Port: Číslo UDP portu (0 až 65535), z ktorého proces D2000 KOM posiela výzvy a na ktorý prichádzajú odpovede. Ak je hodnota 0, číslo portu je automaticky určené operačným systémom.
      Poznámka: Štandardné UDP porty používané pre SNMP sú 161 a 162, ale tie bývajú často obsadené SNMP agentom, preto je vhodné zvoliť iný port. S hodnotou 0 môžu byť problémy, ak sú v sieti firewally a iné ochrany - vtedy treba nakonfigurovať konkrétny port a zabezpečiť, že firewally neodfiltrujú pakety z tohto portu.

Poznámka:
V prípade, že je potrebné prevádzkovať protokol SNMP v redundantnom systéme, kedy súčasne bežia dve inštancie procesu KOM na dvoch rôznych počítačoch a nie je možné jednoznačne určiť IP adresu sieťového rozhrania v nastavení linky, vtedy je vhodné zvoliť konfiguráciu v štýle „ALL“. Ďalšia možnosť je zhodne pomenovať sieťové IP adresy rozhrania, napr. SNMP_LAN a v súbore hosts (C:\windows\system32\drivers\etc\hosts) každého počítača prideliť správnu IP adresu. Čiže napr.:

na PC1:192.168.0.1PC1, SNMP_LAN
na PC2:192.168.0.2PC2, SNMP_LAN

Parametre protokolu na linke

Môžu byť zadané nasledovné parametre protokolu na linke:

Kľúčové slovoPlný názovPopisJednotkaNáhradná hodnota
TRACE
Trace Level
Trace level = 0- žiadne výpisy
Trace level = 1- len výpis o odoslaní a prijatí UDP paketu a IP adresa
Trace level = 2- informácia o príprave požiadaviek
Trace level = 3- hexadecimálny výpis prijatých a odoslaných UDP pakeov
Trace level = 4- rovnaké podrobnosti ako úroveň 3
Trace level = 5- pridá: podrobný rozklad paketu na štruktúru v kódovaní ASN1
poradie údajov v pakete
pridáva podrobné výpisy
Trace level = 9999- pridáva informácie o príprave a rozhodovaní zaradenia paketov pridáva vyhľadávacie informácie


Hodnoty 5 a 9999 sú určené na vyhľadávanie chýb a ich bežné nastavenie sa neodporúča. V prípade, že je potrebné tieto informácie získavať len zo sledovanej stanice/staníc, je možné rovnako nastaviť hodnotu Trace level len pre zvolenú stanicu v konfigurácii stanice.

Pre bežnú prevádzku je vhodné mať nastavenú hodnotu 1.

-1
TE
Trap EnablePovolenie obsluhy prijímania správ typu Trap.BooleanFalse
TTI
Trap IP AddressIP adresa pre prijímanie správ typu Trap.-ANY
TTP
Trap PortČíslo UDP portu pre prijímanie správ typu Trap.-162

Konfigurácia komunikačnej stanice


snmp_konfig_stanica.png

  • Komunikačný protokol: SNMP Manager.
  • Adresa stanice: definuje sa vo formáte IP_adresa1[:port1], IP_adresa2[:port2].

IP_adresa je IP adresa zariadenia, s ktorým KOM komunikuje. Môže byť zadaná číselne (napr. 192.168.0.1) alebo ako názov (napr SrvMoxa1) – v tom prípade dôjde k prekladu na adresu pomocou štandardného mechanizmu resolvovania mien. Adresa1 a Adresa2 sú primárna a záložná adresa zariadenia. Adresa2 je použiteľná napr. pre server s dvoma sieťovými kartami, ktorý je pripojený k dvom rôznym sieťovým segmentom, ktoré sú dostupné cez dve rôzne trasy.

Port je číslo v rozsahu 1 až 65535, na ktorom počúva SNMP agent. Default (ak nie je uvedený, alebo je 0) bude použitý štandardný port 161.

Poznámka:

  • Ak má linka nakonfigurovanú iba primárnu IP adresu (číselnú alebo symbolickú), UDP pakety odchádzajú z tejto adresy na obe IP adresy stanice. Jedna číselná primárna IP adresa linky + dve IP adresy stanice zodpovedajú konfigurácii, keď lokálna sieť je jednoduchá (neredundantná), ale vzdialená sieť, kde sa nachádza stanica, je dostupná cez dve redundantné komunikačné cesty.
  • Ak má linka nakonfigurované obe IP adresy, UDP pakety na IP_adresa1 odchádzajú z primárnej IP adresy linky a UDP pakety na IP_adresa2 odchádzajú zo záložnej IP adresy linky.
    Pokiaľ napr. IP_adresa1 nie je zadaná, zodpovedá to konfigurácii, kedy je stanica pripojená iba k záložnej komunikačnej trase.



Verzia protokolu: Použitá verzia protokolu SNMP – možno vybrať z variant:

  • SNMP_V1 – najstaršia verzia – nepodporuje žiadny typ zabezpečenia prístupu k SNMP agentovi. Rozlišuje len skupiny objektov pre voľný prístup (public) a skupiny objektov patriacich do vyhradenej skupiny (private).
  • SNMP_V2 – verzia podporujúca autorizáciu prístupu k jednotlivým typom údajov - agent môže (ne)poskytovať odlišné údaje pre anonymného užívateľ (manažéra) a pre užívateľa overeného prístupovým menom a heslom.
  • SNMP_V2C – podobne ako SNMP_V2 – v systéme D2000 sa tieto varianty nerozlišujú.
  • SNMP_V3 – zatiaľ posledná verzia protokolu – podporuje tie isté funkcie ako SNMP_V2C, ale navyše podporuje funkcie autentifikácie a šifrovania. Vyžaduje preto zadanie aj autentifikačného servera a kľúčov pre autentifikáciu voči agentovi a kľúče pre šifrovanie komunikácie.

SNMP_V2, SNMP_V2C a SNMP_V3 sa zatiaľ nepodporujú. Taktiež sa zatiaľ nepodporujú zápisy do SNMP agenta (výstupné merané body) alebo čítanie vetiev MIB ako tabuľky (štruktúrované merané body, alebo priame vypĺňanie štruktúr).


Parametre protokolu stanice

Môžu sa zadať nasledovné parametre protokolu stanice:

Tab. č. 2

Kľúčové slovoPlný názovPopisJednotkaNáhradná hodnota
WT
Wait TimeoutDoba čakania na odpoveď pri čítaní hodnôt.ms100
RC
Retry CountPočet opakovaní žiadostí o hodnotu pri neúspešnom čakaní, potom sa pokračuje žiadosťou o inú hodnotu.-3
EC
Max Error CountMaximálny počet neúspešných dotazov, kým stanica prejde do stavu StCOMERR. Úspešne doručená hodnota nuluje počítadlo neúspechov a nastavuje stanicu opäť do stavu StON.-1
TL
Trace LevelTen istý význam ako parameter Trace level na linke, ale s platnosťou pre konkrétnu stanicu. Ak je na linke hodnota parametra Trace level vyššia, má prednosť.
Poznámka: Vypisovanie informácií o prichádzajúcich hodnotách je ovplyvňované hodnotou parametra Trace level na linke, keďže po príchode hodnoty ešte nie je zrejmé, pre akú stanicu hodnota prišla.
-0

Konfigurácia meraných bodov



Adresa: Udáva OID (object identifier) bodu, s ktorým chceme pracovať. OID adresa je uvádzaná v číselnom tvare, pričom jednotlivé čísla sú oddelené bodkou, napr. 1.3.6.1.2.1.1.1.0.

Meraný bod s takto zadanou adresou sa bude vyčítať vždy po linke, ktorá je práve funkčná (linka primary, backup je určovaná na základe úspešnosti odpovede pri predošlom obvolaní a v prípade potreby je automaticky prepínaná).
Ak by bolo potrebné mať informáciu o tom, či je primárna alebo záložná IP adresa zariadenia dostupná, je možné využiť tzv. vynútenú adresáciu a to tým, že zvolíme voľbu Len primárna, resp. Len záložná. Tým zaistíme, že získanie hodnoty meraného bodu sa bude zisťovať len z primárnej, resp. záložnej adresy stanice. Voľba všetky je štandardná voľba, kedy sa hodnoty meraných bodov získavajú priebežne z obidvoch adries stanice (pokiaľ sú nakonfigurované). Voľba pasívny znamená, že hodnota meraného bodu sa priamo nevyčítava, ale sa získa nepriamo ako kópia hodnoty iného meraného bodu s rovnakou adresou, ale v režime napr. Len primárna.

Ak na zariadení neexistuje bod s nami zadanou OID adresou, SNMP agent vráti odpoveď s chybovým kódom s inou OID adresou (pretože objekt s požadovanou OID neexistuje) a preto bude komunikácia označená ako neúspešná. Meraný bod prejde do stavu „Neznáma hodnota“. Ak je potrebné stav linky signalizovať zmenou hodnoty a nie platnosťou hodnoty objektu, je možné vytvoriť napr. objekt typu DI, žiadať hodnotu celočíselného typu (napr. UpTime) a využiť automatickú konverziu čísla na boolean, kedy hodnota 0 je false a ostatné True. Vo vlastnostiach objektu potom nastaviť používanie náhradnej hodnoty a ako default hodnotu nastaviť False. Potom bude objekt nadobúdať hodnôt len True alebo False v závislosti na dostupnosti objektu v SNMP agentovi.

Meraný bod s adresou, ktorá sa začína %IGNORE, bude ignorovaný.

Požiadavka: Default hodnota Get spôsobí, že vyčítavanie bude pomocou SNMP požiadavky Get.
Niektoré zariadenia majú problém s poskytovaním hodnôt pomocou Get požiadavky, pokiaľ sa jedná o položku poľa. V takom prípade je potrebné nakonfigurovať typ požiadavky GetNext, pričom ako adresu je treba nakonfigurovať OID predchádzajúceho objektu (na jej zistenie odporúčame použiť java aplikáciu MIB Browser (http://tl1.ireasoning.com/mibbrowser.shtml) na načítanie celého stromu hodnôt a zistenie adresy OID predchádzajúceho objektu).

Odklad: Možné je nastaviť dobu odkladu jednotlivým meraným bodom – optimalizácia zaťaženia siete. Tento čas sa pripočíta k aktuálnemu času po úspešnom čítaní hodnoty meraného bodu a ďalšia požiadavka na čítanie hodnoty sa vykoná až vtedy, keď aktuálny čas bude väčší alebo rovný takto vypočítanému času.
Ak je aktuálna hodnota objektu neznáma, objekt sa zaradí do komunikácie v najbližšom periodickom čítaní hodnôt meraných bodov (podľa časových parametrov stanice) bez ohľadu na čas odkladu.
Parameter Odklad nemá vplyv na spracovanie správy TRAP, pokiaľ príde správa TRAP s adresou rovnou adrese meraného bodu.

Po prijatí hodnoty zo SNMP agenta bude, podľa skutočného typu hodnoty v SNMP protokole a požadovaného typu v D2000, urobená konverzia. Ak konverzia nie je možná, hodnota bude neplatná a do trasovacieho súboru linky sa urobí zápis o chybnej konverzii.

ASN1 value type: Upresňuje, aký typ hodnoty bude v odpovedi SNMP agenta. Tým aj určuje typy konverzií, ktoré sa môžu aplikovať. Typ hodnoty je možné zistiť v MIB databáze (pozn. prehliadač databáz MIB nie je súčasťou riešenia). Je možné použiť niektorý z voľne dostupných prehliadačov a na základe takto získaných informácií nastaviť očakávaný formát dát. Odporúčame java aplikáciu MIB Browser (http://tl1.ireasoning.com/mibbrowser.shtml).

Možné typy hodnôt:

Integer- vstupná hodnota je očakávaná ako celé číslo so znamienkom (až 64bit *)
Unsigned- vstupná hodnota je očakávaná ako celé číslo bez znamienka (až 64bit *)
Float- vstupná hodnota je očakávaná ako číslo v plávajúcej desatinnej čiarke (float, a longfloat)
Text- vstupná hodnota je textový reťazec
IP address- vstupná postupnosť bytov je interpretovaná ako postupnosť čísiel oddelených bodkou – postupnosť je prevedená na text
Hex text- vstupná postupnosť bytov je interpretovaná ako postupnosť hexadecimálnych čísiel oddelených dvojbodkou – postupnosť je prevedená na text


Typy hodnôt IP address a Hex text je možné aplikovať na ľubovoľný vstupný typ dát, s ktorým sa bude ďalej manipulovať ako s postupnosťou bytov. Takže, napr. vstupná hodnota typu text s hodnotou „test@ipesoft.sk“ môže byť interpretovaná takto:

Text: „test@ipesoft.sk“
IP address: „116.101.115.116.64.105.112.101.115.111.102.116.46.115.107“
Hex text: „74:65:73:74:40:69:70:65:73:6F:66:74:2E:73:6B“

Tieto možnosti boli zavedené kvôli podpore práce s IP a MAC adresami sieťových rozhraní.


* Systém D2000 podporuje hodnoty objektov v rozsahu hodnôt maximálne 32bit so znamienkom pre celočíselné typy. Preto, ak je číslo väčšie, bude mu pridelená maximálna hodnota v rámci 32bit rozsahu. Ak je vstupný objekt D2000 typu Ai, vykoná sa konverzia na typ Real.

Povolené typy bodov: Di, Ci, Ai, TxI, TiR, TiA

Nasledujúca tabuľka zobrazuje podporované konverzie typov hodnôt.

snmp_konverzia_hodnot.png

  • povolená konverzia

Príjem a spracovanie správ typu Trap


Protokol SNMP umožňuje okrem periodického vyčítavania hodnôt aj posielanie oznámení o výskyte dôležitých udalostí. Tieto oznámenia sa nazývajú Trapy (anglicky Traps). Trapy posiela SNMP agent na IP adresu a port (štandardne 162), ktorú má nakonfigurovanú (jednoduchšie zariadenia podporujú posielanie Trapov na jedinú IP adresu a port, dokonalejšie aj viacero adries).
Nakonfigurovaním linkového parametra Trap IP address sa spustí task, ktorý na porte Trap port prijíma tieto Trapy.
V aktuálnej verzii je podporený príjem SNMP Trapov vo verzii V1 a V2C protokolu SNMP. Štandardne jedno zariadenie posiela Trapy jednej konkrétnej verzie protokolu.
Na príjem Trapov z konkrétneho zariadenia je nutné nakonfigurovať na príslušnej stanici merané body s nasledovnými textovými adresami (stačí vybraté, nie je nutné všetky):

Textové adresy meraných bodov pre Trapy v SNMP protokole vo verzii V1:

Adresa boduDátový typPopis
TRAP_ENTERPRISE
OIDPoložka "Enterprise" trap správy: OID objektu generujúceho trap (pre konkrétne zariadenie konštanta).
Poznámka: Z tohto OID sa dá často určiť výrobca zariadenia.
TRAP_GENERIC_TRAP
IntegerPoložka "Generic-trap" trap správy: identifikátor triedy trapu. Pre SNMP verziu 1 sú v RFC 1157 definované tieto hodnoty:
  • 0 - coldStart
  • 1 - warmStart
  • 2 - linkDown
  • 3 - linkUp
  • 4 - authenticationFailure
  • 5 - egpNeighborLoss
  • 6 - enterpriseSpecific
TRAP_SPECIFIC_TRAP
IntegerPoložka "Specific-trap" trap správy: špecifický kód správy.
TRAP_TIMESTAMP
TimeTicks
Položka "Time-stamp" trap správy: časová pečiatka (podľa RFC 1157 počet uplynutých stotín sekundy medzi poslednou sieťovou reinicializáciou zariadenia a vygenerovaním trapu.

Poznámka: Pokiaľ je meraný bod typu Ai - Analóg vstup, jeho hodnota bude v sekundách, tj. TimeTicks/100.
Pokiaľ je meraný bod typu Ci - Celočíselný vstup, jeho hodnota bude v stotinách sekundy, tj. TimeTicks. Avšak pokiaľ dosiahne maximálnu hodnotu pre celočíselnú hodnotu v D2000 (t.j. 2^31-1, keďže celočíselný typ je implementovaný ako 32-bitový Integer so znamienkom), väčšie hodnoty nadobudnúť nemôže. Podľa RFC 1157 je Time-stamp typu TimeTicks, čo je podľa RFC 1155 nezáporný integer. T.j. môže nadobúdať aj väčšie hodnoty ako 2^31-1, ktoré sa nedajú zapísať do meraného bodu typu Ci - Celočíselný vstup. Preto odporúčame nakonfigurovať meraný bod typu Ai - Analóg vstup.
TRAP_OID
OIDPoložka "Object-name" trap správy: OID objektu, ktorý je príčinou vzniku trapu, alebo ktorého sa trap týka.
TRAP_VALUE
ľubovoľnýPoložka "Object-value" trap správy: hodnota objektu, ktorý je príčinou vzniku trapu alebo ktorého sa trap týka.

Poznámka 1: Keďže typ hodnoty je ľubovoľný, je vhodné nakonfigurovať meraný bod typu TxtI - Textový vstup. V opačnom prípade budú niektoré hodnoty neskonvertovateľné (napr. na Celočíselný vstup) a hodnota TRAP_VALUE sa nezmení.

Poznámka 2: Trap môže obsahovať aj niekoľko dvojíc (OID, hodnota). V tom prípade sa postupne nastavujú hodnoty meraných bodov s adresami TRAP_OID a TRAP_VALUE pre všetky tieto dvojice. Možné je napr. nakonfigurovať event spúšťaný na zmenu hodnoty meraného bodu s adresou TRAP_VALUE a dvojice (OID, hodnota) ukladať do databázy.

TRAP_CONFIRM
BooleanMeraný bod určený na potvrdzovanie spracovania hodnôt. Keďže v jednej správe Trap sa môže nachádzať niekoľko dvojíc (TRAP_OID, TRAP_VALUE), korektné spracovanie napr. ESL skriptom vyžaduje, aby KOM proces nastavil nasledujúcu dvojicu hodnôt až po spracovaní predchádzajúcej. Podobne aj hodnoty ostatných vstupných meraných bodov pre správy typu TRAP by mali byť nastavované až po signalizácii, že predchádzajúce hodnoty týchto meraných bodov boli už spracované.

Pokiaľ existuje výstupný meraný bod s adresou TRAP_CONFIRM, tak KOM proces nastaví ďalšiu dvojicu hodnôt vstupných meraných bodov (TRAP_OID, TRAP_VALUE) až po zápise do výstupného meraného bodu s adresou TRAP_CONFIRM (zápis bude vykonávať zrejme ESL skript určený na spracovanie hodnôt ako jednu z posledných operácií). Hodnoty ostatných meraných bodov (s adresami TRAP_ENTERPRISE, TRAP_GENERIC_TRAP, TRAP_SPECIFIC_TRAP, TRAP_TIMESTAMP a TRAP_OID) budú nastavené, pokiaľ sa jedná o spracovanie prvej dvojice hodnôt (TRAP_OID, TRAP_VALUE) - v prípade ďalších dvojíc ostanú rovnaké a zmenia sa až pri spracovávaní ďalšej správy Trap.

Pokiaľ výstupný meraný bod s adresou TRAP_CONFIRM neexistuje, hodnoty všetkých vstupných meraných bodov s adresami TRAP_* sú nastavované hneď po príchode správy Trap a teda môže dôjsť ku strate hodnôt v dôsledku výskytu viacerých dvojíc hodnôt v správe Trap alebo v dôsledku príchodu novej správy Trap skôr, ako užívateľský skript spracoval predchádzajúce hodnoty.


Textové adresy meraných bodov pre Trapy v SNMP protokole vo verzii V2C:

Adresa boduDátový typPopis
TRAP_REQUEST_IDIntegerPoložka "Request-id" trap správy: zvyšujúce sa číslo trapu.
TRAP_ERROR_STATUSIntegerPoložka "Error-status" trap správy: chybový kód. Štandardne má hodnotu 0, ale potenciálne môže nadobúdať jednu z týchto hodnôt (viď RFC 1448):
  • noError(0)
  • tooBig(1)
  • noSuchName(2)
  • badValue(3)
  • readOnly(4)
  • genErr(5)
  • noAccess(6)
  • wrongType(7)
  • wrongLength(8)
  • wrongEncoding(9)
  • wrongValue(10)
  • noCreation(11)
  • inconsistentValue(12)
  • resourceUnavailable(13)
  • commitFailed(14)
  • undoFailed(15)
  • authorizationError(16)
  • notWritable(17)
  • inconsistentName(18)
TRAP_ERROR_INDEXIntegerPoložka "Error-index" trap správy: rozšírený kód chyby (často 0).
TRAP_UPTIME_OIDOIDPoložka "SysUpTime OID" trap správy: OID objektu SysUpTime.0 . Táto položka by mala mať podľa RFC 1448 hodnotu 1.3.6.1.2.1.1.3.0, ale pre prípad, že by tomu tak v konkrétnej implementácii nebolo, je možné hodnotu zistiť pomocou meraného bodu s adresou TRAP_UPTIME_OID.
TRAP_UPTIME_VALUETimeTicksPoložka "SysUpTime" trap správy: hodnota objektu sysUpTime. Pre hodnotu platí Poznámka uvedená v popise adresy TRAP_TIMESTAMP.
TRAP_TRAP_OIDOIDPoložka "SnmpTrap OID" trap správy: OID objektu SnmpTrap.0 . Táto položka by mala mať podľa RFC 1448 hodnotu 1.3.6.1.6.3.1.1.4.1.0 (t.j. OID objektu snmpTrapOID, viď RFC 1450), ale pre prípad, že by tomu tak v konkrétnej implementácii nebolo, je možné hodnotu zistiť pomocou meraného bodu s adresou TRAP_TRAP_OID.
TRAP_TRAP_OID_VALUE
OIDPoložka "SnmpTrapValue" trap správy. Jedná sa o identifikátor triedy trapu, ktorý významovo zodpovedá položke TRAP_GENERIC_TRAP v SNMP verzii V1, ale je typu OID, čo umožňuje napr. definovanie chybových kódov špecifických pre konkrétnych výrobcov a zariadenia.
Významy štandardných OID, ktoré môže nadobúdať, sú podľa RFC 1450 nasledovné:
  • 1.3.6.1.6.3.1.1.5.1 - coldStart
  • 1.3.6.1.6.3.1.1.5.2 - warmStart
  • 1.3.6.1.6.3.1.1.5.3 - linkDown
  • 1.3.6.1.6.3.1.1.5.4 - linkUp
  • 1.3.6.1.6.3.1.1.5.5 - authenticationFailure
  • 1.3.6.1.6.3.1.1.5.6 - egpNeighborLoss
  • 1.3.6.1.6.3.1.1.5.7 - enterpriseSpecific
TRAP_OIDOIDRovnaký význam ako TRAP_OID v SNMP verzii V1.
TRAP_VALUEľubovolnýRovnaký význam ako TRAP_VALUE v SNMP verzii V1.
TRAP_CONFIRMBooleanRovnaký význam ako TRAP_CONFIRM v SNMP verzii V1.


Poznámka1:
Štandardne bude zrejme stačiť, aby sa nakonfigurovali vstupné merané body s adresami TRAP_OID, TRAP_VALUE a výstupný meraný bod s adresou TRAP_CONFIRM na potvrdzovanie spracovania hodnôt.

Poznámka 2:
Pokiaľ je na linke nakonfigurovaný parameter Trap enable, spustí sa, kvôli spracovaniu správ typu Trap, samostatný task, ktorý bude prijímať správy na zvolenom UDP porte. Číslo UDP portu špecifikuje linkový parameter Trap port (default 162).

Pokiaľ už je na linke s adresou ANY alebo ALL nakonfigurované spracovanie správ typu Trap na nejakom konkrétnom porte, nie je možné na inej linke nakonfigurovať spracovanie Trap správ na tom istom porte, lebo by došlo ku kolízii (ale je možné nakonfigurovať iný parameter Trap port (napr. 163). V tom prípade bude potrebné nastaviť na zariadeniach, ktoré posielajú Trap správy, posielanie týchto správ na iný port - v našom prípade 163).

Poznámka3:
V redundantnom systéme treba rátať s tým, že SNMP agenti zvyčajne podporujú odosielanie Trap správ len na jednu vopred zvolenú IP adresu. Preto v prípade prepnutia redundancie bude síce na strane D2000 všetko pripravené na príjem trapov, no monitorované zariadenia budú naďalej zasielať trapy na pôvodnú adresu. Riešením by mohla byť podpora DDNS, ale to len v prípade, že SNMP agent vie využívať služby DNS.

Užívateľ musí zaistiť, aby linky nepoužívali to isté sieťové rozhranie na tom istom UDP porte. Linka s konfiguráciou IP adresy ANY v podstate spôsobí zablokovanie (vyhradenie) UDP portu na všetkých sieťových rozhraniach a to môže byť v konflikte s inou linkou TCP-UDP.

Vyčítavanie stromu hodnôt zo skriptu


Od D2000 verzie 7.02.006 je podporovaná dynamická zmena adresy meraného bodu pomocou TELL príkazu SETPTADDR, ktorá spolu s adresou meraného bodu GETNEXT_OID umožňuje vyčítavanie celého stromu hodnôt pomocou SNMP požiadavky GetNext.

Adresa boduTyp hodnotyPopis
GETNEXT_OIDTxtI - Textový vstupOID ďalšieho objektu, ktoré príde v odpovedi na požiadavku GetNext. Berú sa do úvahy iba požiadavky, ktoré boli vygenerované ako dôsledok zmeny adresy meraného bodu tell príkazom SETPTADDR a nie požiadavky, ktoré boli vygenerované ako dôsledok periodického čítania meraných bodov.

Na vyčítavanie stromu hodnôt stačí nakonfigurovať dva vstupné merané body typu TxtI - Textový vstup. Jeden z týchto bodov má špeciálnu adresu GETNEXT_OID, adresa druhého meraného bodu je nastavovaná tell príkazom SETPTADDR.
Po nastavení adresy KOM proces generuje požiadavku na čítanie meraného bodu. Pokiaľ adresa obsahuje požiadavku typu GetNext (napr. SETPTADDR M.MySnmpVariable 1.3.6.1.2.1.1 TYPE=3;RQ=1), bude OID, ktoré príde s odpoveďou, zapísané do meraného bodu s adresou GETNEXT_OID (napr. 1.3.6.1.2.1.1.1.0). Následne je možné poslať nový tell príkaz, v ktorom je táto adresa (SETPTADDR M.MySnmpVariable 1.3.6.1.2.1.1.1.0 TYPE=3;RQ=1) a tak ďalej.

Príklad ESL skriptu na vyčítanie prvých 100 objektov zo stromu počínajúc od adresy 1.3.6.1.2.1.1 a zapísanie OID adries a hodnôt do štruktúry _objlist:

 ENTRY query_device_OnClick
   INT _ret
   TIME _t
   TEXT _currOID  ; OID of object prior to object being read
   INT _obj_count ; number of read objects
   RECORD (SD.OID_Value) _objlist ; structure for storing OID+value of read objects

   _obj_count := 0
   _currOID := "1.3.6.1.2.1.1" ; start browsing the tree from successor of this OID
 
   DO_LOOP
     _t := M.SNMP_VariableAddress\TIM ; remember original time
     _ret := COMMAND "SETPTADDR M.SNMP_VariableAddress " + _currOID + " TYPE=3;RQ=1" ON SELF.KOM
     EXIT_LOOP _ret # _ERR_NO_ERROR
 
     DO_LOOP ; wait till the time of variable changes
       EXIT_LOOP _t # M.SNMP_VariableAddress\TIM
       DELAY 1[ms]
     END_LOOP
     
     EXIT_LOOP ! M.SNMP_VariableAddress\VLD ; invalid - error reading value from SNMP
     
     _obj_count := _obj_count + 1
     REDIM _objlist[_obj_count]
     _objlist[_obj_count]^OID := M.SNMP_GetNextOid ; OID of object
     _objlist[_obj_count]^Value := M.SNMP_VariableAddress ; value of object
 
     EXIT_LOOP _obj_count > 100    ; I need only first 100 values
     _currOID := M.SNMP_GetNextOid ; OID of the object which came with GetNext request
   END_LOOP
 END query_device_OnClick
 

Literatúra


RFC
http://www.ietf.org/rfc.html
http://www.rfc-editor.org/rfcsearch.html

SNMP
http://www.snmplink.org
http://www.simpleweb.org/ietf/rfcs/rfcbymodule.html
http://publib.boulder.ibm.com/infocenter/tpfhelp/current/index.jsp?topic=/com.ibm.ztpf.doc_put.01/gtpc1/gtpc1m0a.htm
http://www.svetsiti.cz/view.asp?rubrika=Tutorialy&temaID=23&clanekID=32
http://www.microsoft.com/technet/archive/winntas/maintain/featusability/networkm.mspx?mfr=true

ASN.1
http://asn1.elibel.tm.fr/en/introduction/index.htm
http://asn1.elibel.tm.fr/en/standards

Zmeny a úpravy


Revízie dokumentu


  • 20. 3. 2006 - testovacia verzia
  • 31. 7. 2007 - SNMP v asynchrónnom móde
  • 16. 1. 2009 - podpora GetNext


Súvisiace stránky:

Write a comment...