Simple Network Management Protocol
Simple Network Management Protocol (SNMP) je součástí sady internetových protokolů. 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ě.
Má tři verze: druhá obsahuje navíc autentizaci a třetí šifrování. Nejvíce zařízení podporuje druhou verzi.
Rozlišuje se 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).
Přehled a základní pojmy
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í na 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í MBIs (Management Information Bases).
Síť řízená pomocí SNMP se skládá ze tří hlavních částí:
- Spravované zařízení
- Agent – software, který běží na spravovaných zařízeních
- NMS (Network management station) – software,
který běží na správcovských počítačích 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 routery, switche, VOIP telefony, IP kamery nebo tiskárny.
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.
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 (vrstva 7 OSI modelu). SNMP agent obdrží požadavky na UDP portu 161. Správce může zasílat žádosti z jakéhokoli dostupného zdrojového portu na port 161. Odpověď agenta bude odeslána zpět do zdrojového portu manažera. Správce obdrží oznámení na portu 162. Agent může generovat oznámení z jakéhokoliv dostupného portu. Při použití Transport Layer Security nebo Datagram Transport Layer jsou přijímány požadavky na portu 10161 a asynchronní oznámení (Traps) jsou zasílány do portu 10162.
SNMPv1 určuje pět datových jednotek (PDU). Další dvě jednotky GetBulkRequest a InformRequest byly přidány v SNMPv2 a reporty byly přidány ve verzi SNMPv3.
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 manažera -> agent k 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 manažer -> agent na změnu hodnoty proměnné nebo 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 manažer -> agent ke zjištění dostupných proměnných a jejich hodnoty. Vrací odpověď s proměnnou lexikograficky navazující na proměnnou v MIB. MIB agenta může být řízen iterativním aplikací GetNextRequest začínající od OID 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 manažer -> agent 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í variabilní vazby a potvrzení od agenta manažerovi o příkazech GetRequest, SetRequest, GetNextRequest, GetBulkRequest 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žňují agentovi oznámit řídící stanici 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. Zatímco v klasickém komunikace klient vždy aktivně požaduje informace ze serveru, SNMP umožňuje dodatečné použití takzvaných "traps". Jedná se o datové balíčky, které jsou odesílány z klienta SNMP na server, aniž by byly výslovně nepožadovány.
Externí odkazy
- SNMP - Simple Network Management Protocol - český popis SNMP