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-UDP. Linka 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:
- 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
- Symbolické meno konkrétneho sieťového rozhrania počítača. Príklad: D2SRV_PRIMARY
- Textové konštanty ANY alebo 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.
- Host: Existujú 3 možnosti:
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 „ANY“, resp. „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.1 | PC1, SNMP_LAN |
na PC2: | 192.168.0.2 | PC2, SNMP_LAN |
Parametre protokolu na linke
Môžu byť zadané nasledovné parametre protokolu na linke:
Kľúčové slovo | Plný názov | Popis | Jednotka | Náhradná hodnota | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TRACE | Trace Level |
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 Enable | Povolenie obsluhy prijímania správ typu Trap. | Boolean | False | ||||||||||||||
TTI | Trap IP Address | IP 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
- 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é slovo | Plný názov | Popis | Jednotka | Náhradná hodnota |
---|---|---|---|---|
WT | Wait Timeout | Doba čakania na odpoveď pri čítaní hodnôt. | ms | 100 |
RC | Retry Count | Počet opakovaní žiadostí o hodnotu pri neúspešnom čakaní, potom sa pokračuje žiadosťou o inú hodnotu. | - | 3 |
EC | Max Error Count | Maximá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 Level | Ten 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.
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.
- 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 bodu | Dátový typ | Popis |
---|---|---|
TRAP_ENTERPRISE | OID | Polož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 | Integer | Položka "Generic-trap" trap správy: identifikátor triedy trapu. Pre SNMP verziu 1 sú v RFC 1157 definované tieto hodnoty:
|
TRAP_SPECIFIC_TRAP | Integer | Polož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 | OID | Polož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 | Boolean | Meraný 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 bodu | Dátový typ | Popis |
---|---|---|
TRAP_REQUEST_ID | Integer | Položka "Request-id" trap správy: zvyšujúce sa číslo trapu. |
TRAP_ERROR_STATUS | Integer | Polož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):
|
TRAP_ERROR_INDEX | Integer | Položka "Error-index" trap správy: rozšírený kód chyby (často 0). |
TRAP_UPTIME_OID | OID | Polož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_VALUE | TimeTicks | Položka "SysUpTime" trap správy: hodnota objektu sysUpTime. Pre hodnotu platí Poznámka uvedená v popise adresy TRAP_TIMESTAMP. |
TRAP_TRAP_OID | OID | Polož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 | OID | Polož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é:
|
TRAP_OID | OID | Rovnaký význam ako TRAP_OID v SNMP verzii V1. |
TRAP_VALUE | ľubovolný | Rovnaký význam ako TRAP_VALUE v SNMP verzii V1. |
TRAP_CONFIRM | Boolean | Rovnaký 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 bodu | Typ hodnoty | Popis |
---|---|---|
GETNEXT_OID | TxtI - Textový vstup | OID ď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:
0 komentárov