managementul infrastructurii de rețea pentru protocolul SNMP

SNMP standard (Simple Network Management Protocol) a fost proiectat special pentru diagnosticarea, gestionarea și monitorizarea tuturor dispozitivelor și componentelor software disponibile pe interfața de rețea. Deoarece SNMP este susținută de aproape toate dispozitivele de rețea: routere, switch, servere, stații de lucru, imprimante, etc. Dar, ca parte a acestei serii de articole, vom lua în considerare doar aspectele de utilizare SNMP în proiecte reale. Prin urmare, materialul propus este mai mult axat pe aplicarea practică, mai degrabă decât de cercetare teoretică.







arhitectura SNMP

În primul rând avem nevoie pentru a descrie mai exact clasa de dispozitive pentru susținerea interacțiunii SNMP. Deoarece ruleaza de transport SNMP peste protocolul UDP / IP, acest protocol poate fi utilizat pentru a lucra cu gazdele de rețea, care sunt disponibile pentru protocoale de transport de date.

În modelul de management SNMP sunt întotdeauna trei componente:

  1. un dispozitiv controlat (hardware sau software);
  2. SNMP-agent (care în alte sisteme de rețea, numit server) - unitatea de gestionare a rețelei de software, situat la dispozitivul de control și având informații de comandă pentru dispozitiv; agent este de asemenea responsabil pentru transferul acestor informații în format SNMP-specifice și vice-versa;
  3. Managerul (ceea ce în alte sisteme de rețea, numit client) - software-ul pentru a solicita informații de la un agent sau un dispozitiv de comandă prin intermediul unui agent.

Agentul primește cereri pe UDP-port, implicit este portul 161-lea, dar pentru o mai mare securitate a dezvoltator poate modifica numărul portului. Managerul poate trimite cereri de la orice port disponibil pe agentul de port și răspunsul agentului va fi trimis înapoi la portul de management. În mod implicit, managerul poate primi notificări asincrone de la agentul (Capcane și InformRequests) pe portul 162.

prin SNMP în sine nu definește ce informații și variabile trebuie să fie oferite de sistemul gestionat. În schimb, SNMP foloseste un model extensibil, în care informațiile disponibile este definit ca o informație de gestionare a bazei de date (MIB - managementul informațiilor de bază). MIB Baza de date gestionate descrie structura, folosind un spațiu de nume ierarhic care conține identificatori de obiect (Object ID - OID).

Fiecare OID definește o variabilă, care pot fi considerate sau instalate prin SNMP. In dispozitivul de mai multe SNMP obiecte pot fi determinate. Obiecte legate de un anumit proiect / dispozitiv sunt descrise în așa-numitele MIB-fișierele dintr-un anumit format, care ulterior devin parte integrantă a bazei de date generale MIB. Ca obiect variabilă și anunțul poate fi utilizat. Variabilele pot fi de două tipuri: scalar (singură) valoare și tabelul cu valori multiple. Valorile variabilelor pot fi citite sau scrise la managerul agentului cerere.

O variabilă scalară se caracterizează prin OID său specific (îl puteți considera ca un nume de variabilă unic), tipul și valoarea. De exemplu, secvența .1.3.6.1.4.1.9876.11.5 - este OID unui (singur) variabilă scalară. Variabilele pot aparțin unor tipuri diferite, de exemplu, INTEGER. DisplayString. IPADDRESS. cu fiecare tip definește un set de valori permise pentru variabila. De asemenea, variabile de tip constrânsă pot fi definite: INTEGER (1..30) sau variabile scalare de tip structural (SEQUENCE).

In tabelul SNMP - o matrice de dimensiune dinamică, care cuprinde același tip de variabile scalare, și având o OID totală. Fiecare element din tabel este mapat la un OID unic, OID format din tabel. De exemplu, tabelul OID variabila - .1.3.6.1.4.1.9876.11.15. și incluse în acest tabel variabile scalare (elemente de masă) va avea OID: .1.3.6.1.4.1.9876.11.15.1. .1.3.6.1.4.1.9876.11.15.2. .1.3.6.1.4.1.9876.11.15.3. și anume Tabelul 3 conține elementul.

Agentul trimite un manager de notificare asincronă, astfel încât inițiativa de a trimite o notificare vine de la un agent, nu un manager. Notificările pot fi de 2 tipuri: Capcane și InformRequests. Deoarece SNMP se bazează pe protocolul UDP nu garanteaza livrarea mesajelor trimise de agentul prin trimiterea unui anunț de Trap. El știe cineva așteaptă primirea acestuia. Notificarea InformRequest a fost introdus mai târziu și oferă dovada de livrare, pentru care destinatarul trimite înapoi un mesaj, repetând toate informațiile de la InfromRequest (confirmare).

Toate pluralitatea OID-s este un singur arbore - de exemplu, .3.2.7: .. așa cum se arată în figura 1.

Figura 1. Formarea schematică OID în protocolul SNMP

managementul infrastructurii de rețea pentru protocolul SNMP






La rândul său, identificatorii în cea mai mare (rădăcină) ale arborelui sunt definite în MIB-fișiere în directorul / usr / share / MIBS / SNMP. În mod implicit, căutare utilități sinonime OID și SNMP caractere folosesc acest director și directorul de utilizator curent $ HOME / .snmp / MIBS (comandă și o listă de directoare, puteți înlocui opțiunile de utilitate SNMP):

Această ieșire furnizează definiții OID sistem de bază și suport pentru obiectele descrise în agentul SNMP standardul snmpd.

Seturi suplimentare MIB sunt prezentate în directorul / usr / share / MIBS. dar, în mod implicit, aceste directoare nu sunt utilizate în procesul de căutare:

Pe parcursul dezvoltării protocolului SNMP a suferit mai multe modificări în versiunea de protocol, iar în prezent mai multe versiuni sunt utilizate simultan:

Protocoalele de versiuni diferite nu sunt compatibile unele cu altele, dar SNMP-agenți pot sprijini toate opțiunile de protocol, managerii trebuie să specificați versiunea de protocol utilizată în solicitare (opțiunea -v în utilități apeluri * sau SNMP software).

Notă importantă! Vă rugăm să rețineți că utilizarea necontrolată a SNMP comportă riscuri semnificative. Deoarece în cazul echipamentelor scumpe de securitate compromise folosind SNMP-comenzile trimise de un atacator, acesta poate fi dezactivat sau chiar cu handicap.

Pachetele de instalare pentru utilizare SNMP

În acest articol, deoarece sistemul țintă este utilizat „pur“ Linux sistem de operare de instalare, distribuție Fedora 17 RFR, în care nu există nici implicit SNMP. Prin urmare, am pas cu pas, urmați instrumentele de instalare necesare pentru a utiliza SNMP. Asigurați-vă că sistemul nu are (nu) Pachete legate de SNMP, puteți utiliza următoarea comandă:

Acum puteți pas cu pas pentru a instala instrumente SNMP, începând cu baza - demonii care implementează funcționalitatea agentului:

Astfel, în directorul / lib / systemd / sistem / aparut script pentru a gestiona serviciul SNMP (agent snmpd) folosind serviciul general de sistem de management systemd. În / etc fișiere de configurare a apărut pentru a controla demonii - snmpd.conf și snmptrapd.conf - instrumentele de bază cu care să lucreze. Această funcționalitate este suficient pentru sarcini simple - permite agentului SNMP pe această gazdă din rețea, și sunt adesea limitate la configurația SNMP și soluția acestei probleme.

Acum puteți începe agenții SNMP și să interacționeze cu ei pe protocoalele de rețea (porturile UDP 161 și 162). Dar noi nu au fost încă stabilite instrumentele necesare pentru a face acest lucru, cel puțin utilitate snmpwalk pentru a diagnostica sistemul implicit SNMP:

Înainte de a trece la instalarea de instrumente pentru a utiliza SNMP, ar trebui să fie de cel puțin să înțeleagă aproximativ scopul lor, așa cum a propus un set foarte bogat de instrumente pentru SNMP:

Vă rugăm să rețineți că pentru SNMP-pachete utilizează licența BSD, nu GPL, pentru majoritatea pachetelor Linux. Din lista astfel obținut de utilități trebuie să acorde atenție:

  • net-SNMP- utils - acesta este un set de instrumente de care avem nevoie chiar acum;
  • net-SNMP- devel - instrumente pentru utilizarea software-ului SNMP pentru a fi utilizate în articolul următor;
  • net-SNMP- gui - unelte grafice pentru lucrul cu datele MIB;
  • net-SNMP- sysvinit - Unelte pentru vechiul initializarea sistemului de servicii, care pot fi utile în alte distribuții (de exemplu, Debian sau Ubuntu);

Acum, după ce a fost selectat pachetele dorite, puteți continua pentru a instala utilități pentru SNMP:

Cele mai multe dintre aceste utilități efectua diverse interogări la agentul SNMP (snmpd), atunci există un simplu manageri de consolă. snmpget. snmpgetnext. snmpwalk. Utilizați aceste utilități pot fi doar rularea daemon SNMP. Dar există instrumente care nu necesită snmpd de pornire. de exemplu, snmptranslate. ceea ce se traduce static (diagnostice) OID-uri definite în MIB-fișiere în diferite forme: numerice, caracter, ierarhia de copac.

În cele din urmă, puteți încerca setul de instrumente, înainte de a rula-l în prealabil pentru a instala agenții (serviciu de server daemon) snmpd. De obicei, agentul ruleaza ca un serviciu Linux, iar apoi vom face acest lucru, dar pentru cunoștință inițială este mai bine să-l rulați în modul de depanare atunci când nu trece în modul daemon, și afișează informațiile de depanare de pe terminal. Vă rugăm să rețineți că snmpd este realizată în numele rădăcină:

Apel către SNMP

Acum puteți verifica instrumentele SNMP, începând cu sistemul standard de OID. În SNMPv2c (a doua versiune a SNMP bazate pe comunitate, comunitate) opțiunea -c în utilități * definește snmp numele comunității cu privire la componența care, în configurația snmpd.conf sunt diferențiate permisiunile de fișiere:

Deci, interoghează snmpd. dar se pare ca un diagnostic static al unuia dintre subramificații OID-uri, precum și reprezentarea numerică:

În acest fel puteți obține o specificație completă (tip, metoda de acces) pentru același site:

Pachete de procesare a MIB-fișiere

Pentru a crea un set de OID-uri în dezvoltarea proiectului va avea nevoie pentru a pregăti propriile fișiere MIB, în care ar trebui să fie specificate următoarele informații:

  • ierarhie subarbore OID proprii în date MIB pe bază (în copac);
  • Structura subramificație;
  • nodurile subarborelui OID;
  • tipurile de obiecte de date din subarborele.

În principiu, de la crearea de MIB-fișiere pot fi distribuite cu, ca doar numele simbolice ale nodurilor de arbori necesare pentru percepția umană, și, dacă este deja cunoscut parametru completă de intrare OID numerice de interes, puteți scrie codul pentru un agent de a lucra cu acest OID. Cu toate acestea, în practică, folosește cel mai adesea o abordare diferită:

  1. în conformitate cu sintaxa strictă de a pregăti unul sau mai multe fișiere MIB legate;
  2. a făcut verificarea automată a sintaxei și, dacă este necesar, modificați MIB-fișierele utilizate în acest scop și snmptranslate utilitate smilint (situat în pachetul libsmi.i686. care noi nu au fost încă instalat).
  3. MIB-fișierele sunt plasate într-unul dintre directoarele în cazul în care acestea vor fi disponibile la căutările subsistemului SNMP efectuate de rute standard.
  4. apoi numit generatoare de cod automate, care sunt descrise în MIB-opera fișiere OID șabloane de cod generație pentru utilizare cu acestea; Există mai multe pachete de terțe părți pentru a genera cod în C, C ++, Java este una dintre aceste generatoare pentru limbajul C - mib2c incluse în pachetul net-SNMP- perl.
  5. template-uri de cod primite incluse în proiectul de cod, codul de șablon este umplut cu codul software specific.

Rămâne doar să instaleze pachete libsmi.i686 net-SNMP- perl dispărute:

concluzie

Acest articol a prezentat o scurtă trecere în revistă a arhitecturii și capabilitățile SNMP. Am finalizat, de asemenea, instalarea de pachete necesare pentru a dezvolta propria lor SNMP de management în Linux.

În următorul articol ne vom uita la un exemplu specific de gestionare a rețelei prin SNMP, ca parte a propriului său proiect.