SNMP

Simple Network Management Protocol (SNMP) je součástí sady internetových protokolů. Standardně využívá port 161. Slouží potřebám správy sítí. Umožňuje průběžný sběr nejrůznějších dat pro potřeby správy sítě, a jejich následné vyhodnocování. Na tomto protokolu je dnes založena většina prostředků a nástrojů pro správu sítě.

Charakteristika

Protokol SNMP se vyvíjel postupně ve třech verzích: první verze (SNMPv1) zajišťuje základní funkcionalitu SNMP, druhá (SNMPv2) obsahuje navíc autentizaci a třetí (SNMPv3) šifrování (zabezpečení). Nejvíce zařízení podporuje druhou verzi.

Protokol SNMP rozlišuje mezi stranou monitorovanou (hlídaný systém) a monitorovací (sběrna dat). Tyto strany mohou běžet buď odděleně na různých fyzických strojích, nebo v rámci jednoho stroje. Na monitorované straně je spuštěn agent a na straně monitorovací manager. Na straně monitorované jsou operativně shromažďovány informace o stavu systému (zařízení). Manager vznáší požadavky agentovi, zpravidla na zaslání požadovaných informací (zpráv). Agent zajišťuje realizaci reakcí na požadavky managera. Získaný obsah zpráv se na straně monitorovací může dále různým způsobem zpracovávat (tabulky, grafy, …). Komunikace mezi agentem a managerem se označuje jako SNMP operace.

Na straně monitorované může existovat možnost takové konfigurace, kdy agent zašle managerovi informace (SNMP MESSAGE) automaticky bez jeho požadavku. K tomu dojde zpravidla potom, kdy byla splněna předem definovaná podmínka (výpadek, kolize, dosažení hraniční hodnoty, …), agent nečeká na odpověď. Takové konfiguraci agenta se říká SNMP TRAP (tzv. past na události).

Nasazení

SNMP je typicky využíváno na jednom či více správcovských počítačích (manažeři), které mají za úkol sledovat nebo řídit skupinu počítačů či jiných zařízení v síti. Na straně sledovaných zařízení je spuštěn agent, který následně poskytuje pomocí SNMP informace manažerovi.

Spravovaná data agentů jsou evidována jako proměnné. Protokol umožňuje jejich aktivní správu, kdy lze vzdáleně modifikovat tyto proměnné a změnit tak konfiguraci. Proměnné přístupné přes SNMP jsou uspořádány hierarchicky. Tato hierarchie a další metadata (jako například typ a popis proměnné), jsou popsány pomocí MIBs (Management Information Bases).

Síť řízená pomocí SNMP se skládá ze tří hlavních částí:

  1. Spravované zařízení

  2. Agent – software, který běží na spravovaných zařízeních

  3. NMS (Network management station) – software, který běží na správcovských počítačích

Spravované zařízení

Spravované zařízení je síťový uzel, který podporuje SNMP rozhraní a umožňuje jednosměrný (pouze čtení) nebo obousměrný (čtení i zápis) přístup k informacím, které jsou vyměňovány s NMS. Zařízení jsou také často pojmenována jako síťový prvek a můžeme mezi ně zařadit například routeryswitcheVOIP telefony, IP kamery nebo tiskárny.

Agent

Agent je softwarový modul pro správu sítě, který je umístěn na spravovaném zařízení. Zajišťuje reakce na požadavky správcovského počítače nebo odesílá SNMP Trapy.

Správcovský počítač

Správcovský počítač (NMS) spravuje aplikace, které monitorují a kontrolují spravovaná zařízení. NMS zajišťuje většinu paměti a zdrojů pro správu sítě. V případě potřeby může existovat i více NMS v jedné spravované síti.

Management information base (MIB)

SNMP sám o sobě nedefinuje, které informace (proměnné) by měl systém používat. Je tedy vhodné využití rozšíření, které umožňuje jejich nadefinování. MIB popisuje strukturu spravovaných dat, kdy se využívá hierarchický jmenný prostor obsahující identifikátory objektů (OID). Každý z těchto identifikátorů označuje proměnnou, která lze číst nebo nastavit přes SNMP. MIB využívá notaci definovanou pomocí SMIv2 (RFC 2578), což je podmnožina ASN 1.

Detaily protokolu

SNMP pracuje v aplikační vrstvě Internet Protocol Suite (7. vrstva OSI modelu). V případě nezabezpečeného SNMP agent přijímá požadavky na UDP portu 161. Správce (manažer) vysílá požadavky k agentovi z jakéhokoliv dostupného portu. Odpověď agenta bude odeslána zpět do zdrojového portu správce. Správce přijímá asynchronní oznámení (Trapy) od agenta na portu 162. Agent může generovat oznámení z jakéhokoliv dostupného portu. Při použití zabezpečení (SNMPv3) agent přijímá požadavky na portu 10161. Správce přijímá asynchronní oznámení (Trapy) od agenta na portu 10162.

SNMPv1 definuje pět datových jednotek (PDU): GetRequestSetRequestGetNextRequestResponse a Trap. Další dvě jednotky GetBulkRequest a InformRequest byly přidány v SNMPv2 a ve verzi SNMPv3 byl přidán PDU Report.

Všechny SNMP PDU jsou konstruovány následujícím způsobem.

IP header

UDP header

version

community

PDU-type

request-id

error-status

error-index

variable bindings

GetRequest

Požadavek od manažera k agentovi pro načtení proměnné nebo seznamu proměnných. Požadované proměnné jsou specifikovány ve vazbách (hodnoty nejsou používány). Vrácena je odpověď s aktuálními hodnotami.

SetRequest

Požadavek od manažera k agentovi na změnu hodnoty proměnné nebo pro změnu více hodnot v seznamu proměnných. Vazby proměnných jsou uvedeny v těle požadavku. Změny jsou provedeny jako atomické operace agenta. Je vrácena odpověď s novými hodnotami proměnných.

GetNextRequest

Požadavek od manažera k agentovi pro zjištění dostupných proměnných a jejich hodnot. Vrací odpověď s hodnotou proměnné lexikograficky navazující na předchozí proměnnou v MIB. Celá MIB tabulka může být přečtena iterativní aplikací pomocí GetNextRequest od OID na pozici 0. Řádky tabulky lze číst zadáním OID sloupců ve vazbách proměnných na základě vytvořené žádosti.

GetBulkRequest

Optimalizovaná verze GetNextRequest. Požadavek od manažera k agentovi pro více iterací GetNextRequest. Vrací odpověď s více vazbami proměnných. PDU specifikuje velikost a opakování pole sloužícího k ovládání chování odezvy. GetBulkRequest byl představen v SNMPv2.

Response

Vrací vazby proměnných a potvrzení od agenta manažerovi, jako odpověď na příkazy GetRequestSetRequestGetNextRequestGetBulkRequest a InformRequest. Zasílání zpráv o chybách je poskytováno pomocí polí error-status a error-index.

Trap

Asynchronní oznámení od agenta manažerovi. SNMP umožňuje agentovi oznámit významné události prostřednictvím nevyžádané SNMP zprávy. Obsahuje aktuální hodnotu sysUpTime, OID identifikaci typu problému a nepovinné vazby proměnných. Formát zprávy byl změněn v SNMPv2 a PDU byl přejmenován SNMPv2-Trap.