NMS – Network Management System Důvody pro zavádění centralizovaného síťového managementu Sítě v současnosti jsou velmi rozsáhlé a heterogenní Počet uzlů je vzrůstající Vzrůstá i logická složitost funkcí, které se v síti uskutečňují – zvyšují se požadavky na výkonnost sítě Většinou je nemožné provádět správu velkých sítí tradičně (správcem sítě)
NMS – Network Management System Funkční oblasti managementu sítě definované ISO Chybový management (detekce, izolace a korekce abnormálních operací) Účtovací management (pro stanovení nákladů na použití a údržbu síťových objektů) Konfigurační a jmenný management (správa identity, sběr dat na řízených objektech……) Výkonnostní management (pro zhodnocení výkonnosti a efektivity síťových objektů) Bezpečnostní management (zaměřený na bezpečnost síťového provozu a ochrany síťových objektů)
l
Protokol SNMP Simple Network Management Protocol Správa a řízení velkých sítí Monitoring provozu v určitých uzlech sítě – ukládání do databáze – provede agent Sběr dat od agentů – provede manager Možnost vzdálené řízení uzlů – reset , reboot, nastavení některých proměnných (např. IP Time-To-Live) Řídící stanice - NMS (Network Management Station) Princip klient (manager) – server (agent) SNMP je systémová služba, transport UDP, well-known porty 161 a 162 8
Protokol SNMP Operace NMS Nastavení dat na SNMP agentovi Sběr dat z SNMP agentů Získání informace o událostech na SNMP agentech SetRequest GetRequest Trap
Protokol SNMP Simple Network Management Protocol 10
MIB - Management Information Base Hierarchická organizace shromažďovaných dat Každý objekt má přidělen jméno (alfanumerický řetězec) a numerický identifikátor Typy objektů Skalární objekt - definuje jednoduchou instanci objektu Tabulární objekt – definuje násobné instance objektu Jednoznačné určení objektů (identifikátory) Jmenné – zřetězení jmen objektů na cestě od kořene Číselné – zřetězení identifikátorů na cestě od kořene Ve zprávách protokolu se používá číselná reprezentace určení objektů (číselné identifikátory) 11
MIB - Management Information Base Hierarchická organizace shromažďovaných dat
MIB (Management Information Base) Struktura MIB MIB (Management Information Base) Objektově orientovaná databáze dat Objekty se sdružují do skupin – tříd Třídy jsou definovány Atributy objektů, které jsou ve třídě sdruženy (atribut je určen typem a hodnotou). Hodnotu získává nebo ji lze na řízeném objektu nastavit Chováním – odezvy na operace prováděné na řízeném objektu Hlášením – agent sděluje managerovi události odehrávající se na řízeném objektu Výčtem operací, které je možné s objekty třídy (nebo jejich atributy) provádět 13
Struktura MIB Za správu MIB je zodpovědný agent (SNMP server) Manager (SNMP klient) může požadovat nebo nastavovat hodnoty SNMP server (agent) udržuje databázi MIB, na vyžádání SNMP klienta (managera) odešle hodnoty objektů nebo je nastaví na vyžadovanou hodnotu (pokud je zápis povolen) Řízené objekty jsou jednoznačně identifikovány jménem objektu 14
Skupiny objektu mib-2(1) (1)system informace o systému (2)interface informace o všech síťových rozhraní systému (3)at informace o fyzických a IP adresách síťových rozhraní systému (4)ip informace o provozu v IP vrstvě (5)icmp informace o ICMP zprávách (6)tcp informace o TCP spojeních (7)udp informace o UDP přenosech (8)egp informace o externím směrování ………………………………………………………………………………… (11)snmp informace o zprávách SNMP protokolu ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ (14)ospf informace o zprávách OSPF protokolu 16
Struktura MIB Příklad skupiny 17
Skalární objekty - skupina udp: Jméno Datový typ R/W Popis udpInDatagrams čítač - Počet UDP datagramů doručených do uživatelských procesů udpNoPorts Počet UDP datagramů, pro které neexistoval proces na cílovém portu udpInErrors Počet UDP nedoručených (chybových) datagramů udpOutDatagrams Počet UDP datagramů vyslaných 18
Tabulární objekt - UDP tabulka (pro „naslouchající“ proces) Jméno Datový typ R/W Popis udpLocalAddress IP adresa - Lokální IP adresa (pro proces) udpLocalPort [0…..65535] Číslo portu (pro proces) 19
MIB - Management Information Base 20
Skupina IP Jméno Datový typ R/W Popis ipForwarding(1) [1/2] - Systém forwarduje ano/ne ipDefaultTTL(2) INTEGER ano TTL pro IP datagramy ipInReceives(3) čítač Počet přijatých IP datagramů ipInHdrErrors(4) Počet datagramů –chyba v záhlaví ipInAddrErrors(5) Počet datagramů –chyba v cílové adrese ipForwDatagrams(6) Počet forwardovaných datagramů ipInUnknownProtos(7) Počet dat. – chyba v poli PROTOCOLS ipInDiscards(8) ……… Počet diskartovaných dat. – nedostatek místa v bufferu 21
Datová reprezentace v SNMP SMI (Structure of Management Information) Určuje definice pro sady vzájemně souvisejících spravovaných objektů tzv. „moduly“ ve třech úrovních Definice modulu – prostřednictvím ASN.1 makro MODULE-IDENTITY Definice objektu - prostřednictvím ASN.1 makro OBJECT-TYPE Jménem (OID) Typem a syntaxí - prostřednictvím ASN.1 (Abstract Syntax Notation) Kódem – pravidla pro transport dat (např. BER) Definice „oznámení“ (Traps) – prostřednictvím ASN.1 makro NOTIFICATION-TYPE 22
Kódování a kódovací pravidla Definice abstraktní syntaxe spravovaných objektů – Abstract Syntax Notation 1 (ASN.) ASN.1 je standard pro popis zprávy (tj. datové jednotky aplikace) – odpovídá prezentační vrstvě OSI Syntaxe abstraktní – obecná struktura dat Datový typ – pojmenovaná sada hodnot Kódování a kódovací pravidla BER – Basic Encoding Rules (PER – Packet Encoding Rules nebo DER – Distinguished Encoding Rules) – odpovídá relační vrstvě OSI Přenosová syntaxe (bitový „proud“ při přenosu mezi příslušnými entitami – např. ASCII, EBCDIC
Použití abstraktní a přenosové syntaxe 24
Interoperabilita nekompatibilních systémů Bez komunikačních standardů Prostřednictvím ASN.1 a BER
Programová podpora ASN.1 ASN.1 není programovací jazyk – pokrývá pouze strukturální aspekty informace – nemá žádné operátory pro výpočty nebo manipulaci s daty Programová podpora ASN.1 Většina OS má nástroje k podpoře ASN.1 ASN.1 podporují programovací jazyky jako: JAVA, C, C++ atd. Standardizace ASN.1 v r. 1984 – CCITT (nyní ITU-T) – X.690 v r. 1985 – ISO – dva dokumenty Abstract Syntax ASN.1 Encoding Rules BER současnost – ASN.1 Consortium – nová edice ASN.1:2002 27
ASN.1 ASN.1 se používá k definicím datových struktur Definice datové struktury – pojmenovaný modul Obecný formát pojmenovaného modulu: <jméno_modulu>DEFINITIONS::= BEGIN definice modulu výběr instance popis elementů ………… END 28
FooProtocol DEFINITIONS ::= BEGIN FooQuestion ::= SEQUENCE { trackingNumber INTEGER, question IA5String } FooAnswer ::= SEQUENCE { questionNumber INTEGER, answer BOOLEAN END myQuestion FooQuestion ::= { trackingNumber 5, question "Anybody there?" }
Struktura MIB 5 povinných charakteristik objektu Name (Object Descriptor a Object Identifier) Syntax - datový typ (běžný/tabulární) a struktura, která ho popisuje) Access (přípustné operace: read-create/write/only, accessible-for-notify, not-accessible) Status – platnost objektu v SMI (mandatory, optional, obsolete) Definition/Description Volitelné charakteristiky Units - popis jednotek spojených s objektem Reference - odkazy na související dokumenty a relevantní informace DefVal – definice přípustných hodnot Index – definice objektů, které jsou rozšířením jiných objektů
Základní struktura definic objektu <name> OBJECT-TYPE SYNTAX <datatype> ACCESS <read-only|read-write|write-only|not/accessible> STATUS <mandatory|optional|obsolete> DESCRIPTION “Textový popis objektu“ ::= {Object identifier}
Příklad definice typu OBJECT IDENTIFIER 32
Datové typy ASN.1 (abstraktní) Jednoduché (INTEGER, BOOLEAN, BIT STRING…..) Strukturované (SEQUENCE, SEQUENCE OF) Výběrové CHOICE - výběr mezi typy ANY – předem neurčený Označení TAG Tag zahrnuje třídu a datový typ Třídy: Univerzální (rezervované pro ASN.1) Aplikačně závislé Kontextové Privátní 33
ASN.1 Některé univerzální „tagy“ 34
Datové typy SMI – SNMP - příklady INTEGER celé číslo NULL indikuje, že příslušná proměnná nemá žádnou hodnotu OCTET STRING řetězec bytů s hodnotou 0-255 OBJECT INDENTIFIER identifikátor objektu, př. 1.3.6.1.2.1 SEQUENCE sekvence položek SEQUENCE OF dvourozměrné pole proměnných – tabulka DisplayString řetězec znaků NVT ASCII IpADDRESS IP adresa PhysAddress HW adresa TimeTicks čítač času ve stovkách sekund Counter číslo 0-(232 –1), pak 0… Gauge číslo 0-(232 –1), pak zůstává 35
Příklad definic typů 36
Příklad definic subtypů 37
Definice proměnných skupiny ip ve formálním jazyku ASN Definice proměnných skupiny ip ve formálním jazyku ASN.1 (Abstract Syntax Notation) -- the IP group ipForwarding OBJECT-TYPE SYNTAX INTEGER { gateway(1), -- entity forwards datagrams host(2) -- entity does NOT forward datagrams } ACCESS read-only STATUS mandatory ::= { ip 1 } ipDefaultTTL OBJECT-TYPE SYNTAX INTEGER ACCESS read-write ::= { ip 2 } ipInReceives OBJECT-TYPE SYNTAX Counter ::= { ip 3 } ipInHdrErrors OBJECT-TYPE ::= { ip 4 } 38
ipInAddrErrors OBJECT-TYPE SYNTAX Counter ACCESS read-only ipInAddrErrors OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory ::= { ip 5 } ipForwDatagrams OBJECT-TYPE ::= { ip 6 } ipInUnknownProtos OBJECT-TYPE ::= { ip 7 } ipInDiscards OBJECT-TYPE ::= { ip 8 } 39
Obecný kódovací formát pro ASN.1 – BER Triplet Pole identifikátoru –Tag (8 bitů) Pole délky - Length Pole obsahu - Value 40
Obecný kódovací formát pro ASN.1 - BER http://en.wikipedia.org/wiki/Basic_Encoding_Rules
Protokol SNMP Verze protokolu SNMPv1 SNMPv2 SNMPv3 – ochrana dat šifrovacím algoritmem (DES) Transport UDP, well-known porty 161 a 162 Nekompatibilita verze 1 a verze 2 se řeší proxy agentem („dvojjazyčným“) 42
Protokol SNMP Formát zprávy SNMPv1 a SNMPv2 43
Protokol SNMP SNMPv1 Get Response Trap GetNext Set SNMPv2 Záhlaví SNMP zprávy: Číslo verze Jméno „komunity“ – autentizační identifikátor skupiny agentů Zprávy PDU Request – PDU Response SNMPv1 Get Response Trap GetNext Set SNMPv2 Get GetBulk Set Inform GetNext Response Trap 44
Klient – Server v protokolu SNMP Protokol SNMP Klient – Server v protokolu SNMP Klient Server
Klient – server v protokolu SNMP 46
Klient – server v protokolu SNMP 47
SNMPv1 PDU Zprávy Get, GetNext, Set Typ PDU: 0 Get-request 2 Get-response 1 GetNext-request 3 Set-request Request ID – spojení požadavku s odpovědí Error status – indikace jednoho z definovaných chybových stavů Error index - spojení chybového stavu s určitým objektem Objekt, hodnota – spojení objektu s určitou hodnotou (kromě Get-request a GetNext-request) 48
SNMPv1 PDU Trap – iniciuje agent v důsledku výjimečné události na řízeném zařízení (připojení do sítě, reboot, připojení dalšího síťového rozhraní ….) Enterprise – identifikuje typ zařízení, které generuje trap Agent address – adresa zařízení, které generuje trap Generic trap type/specific trap code – indikuje typ a kód trap Time stamp – časová známka Objekt, hodnota – spojení objektu s určitou hodnotou 49
Příklad obsahu pole Objekt-Hodnota („binding) Formát SNMP v1 paketů 50
Zprávy Get, GetNext, Set, Trap, Inform SNMPv2 PDU Zprávy Get, GetNext, Set, Trap, Inform Typ PDU: 0 Get-request 3 Set-request 1 GetNext-request 4 Trap 2 Get-response 5 Inform Request ID – spojení požadavku s odpovědí Error status – indikace jednoho z definovaných chybových stavů Error index - spojení chybového stavu s určitým objektem Objekt, hodnota – spojení objektu s určitou hodnotou (kromě Get-request a GetNext-request) Variable-bindings 51
SNMPv2 PDU GetBulk – request požadavek na zaslání objemného seznamu „bindings“ (setříděných podle identifikátoru objektu – tzv. „lexicografic ordering“) Non repeaters – počet proměnných v seznamu Objekt-Hodnota, pro které se očekává (v odpovědi) pouze jedna hodnota (tj. počet skalárních objektů). Default je 0. Max repetitions – určuje maximální počet hodnot pro každou proměnnou (mimo skalární objekty). Default je 50. Variable-bindings 52
Ukázka SW pro management sítě – implementace SNMP Orion Network Performance Monitor firmy SolarWinds, Inc. http://www.solarwinds.com/ http://npmv7.solarwinds.net/ 53
SNMP Další implementace SNMP Tutorial NetFlow Analyzer Professional MS Windows http://www.loriotpro.com/ServiceAndSupport/How_to/SNMPWIndows.php Tutorial http://www.dpstele.com/layers/l1/snmp_l1.php?lyr_kwd=1&lyr=1&lyr_link=24&x=1#24 NetFlow Analyzer Professional http://demo.netflowanalyzer.com/netflow/jspui/NetworkSnapShot.jsp 54
MIB browser
get-request
get-response
get-BulkRequest
get-BulkResponse
trap