Systemy sygnalizacji i zarządzania EiT Zarządzanie: Modele informacyjne i typy danych SNMP Krzysztof Wajda Katedra Telekomunikacji AGH Listopad, 2016
Plan Definicje Typy modeli Modele organizacyjne Modele informacyjne Modele komunikacyjne Typy danych
Modele w zarządzaniu Zarządzanie siecią Model organizacyjny Model informacyjny Model komunikacyjny Model funkcjonalny
Model organizacyjny Model organizacyjny opisuje elementy systemu zarządzania. Definiuje takie terminy jak: obiekt, agent, zarządca MDB Agent Zarządca Agent Elementy zarządzane Elementy niezarządzane Model dwuwarstwowy (two-tier)
Model organizacyjny Model trzywarstwowy (three-tier) Zarządca MDB Agent/ Zarządca MDB Agent Agent Elementy zarządzane Elementy niezarządzane
Model organizacyjny Model z MoM (Manager of Managers) Zarządca MoM Agent Agent Agent NMS Agent NMS MDB Zarządca MDB Zarządca MDB Agent Agent Agent Agent Elementy zarządzane Elementy niezarządzane Elementy zarządzane Elementy niezarządzane
Model organizacyjny Model peer-to-peer
Model informacyjny Aby systemy mogły ze sobą współpracować niezbędne jest opracowanie wspólnego języka wymiany danych i to nie tylko w kontekście składni (protokołu), ale również modelu informacyjnego (zbiór pojęć),których znaczenie (semantyka) jest dokładnie określone i tak samo rozumiane przez wszystkie jednostki biorące udział w procesie komunikacji (np. stół, okno, ściana jako pojęcia). Języki formalne: ASN.1 (Abstract Syntax Notation One), DTD/XML Schema, IDL (Interface Definition Language), SDL (Specification and Description Language), UML (Unified Modelling Language)
Model komunikacyjny Model komunikacyjny opisuje sposób przetwarzania informacji zarządzania w procesie aplikacji, pomiędzy warstwami oraz wewnątrz każdej z warstw. W modelu komunikacyjnym definiuje się następujące elementy: protokół transportowy protokół aplikacji (format wiadomości) dozwolone żądania oraz odpowiedzi
ASN.1
Abstrakcyjna notacja składniowa 1 ASN.1 ASN.1 (AbstractSyntaxNotationOne) jest formalnym językiem opracowanym i poddanym standaryzacji przez CCITT (X.208) oraz ISO (ISO 8824). Sposób kodowania składni ASN.1 do postaci binarnej jest nazywany BER (Basic Encoding Rules) i jest zdefiniowany w standardach X.209/ISO 8825.
Abstrakcyjna notacja składniowa 1 ASN.1 ASN.1 wykorzystuje się do: definiowania abstrakcyjnych składni danych aplikacji, definicji struktur jednostek danych protokołu warstwy aplikacji i prezentacji, definiowania informacji zarządzania zarówno w systemach zarządzania SNMP, jak i OSI
Podstawowe pojęcia Składnia abstrakcyjna (Abstract Syntax) Typy danych (Data Type) Kod (Encoding) Zasady kodowania (Encoding Rules) Składnia transmisji (Transfer syntax)
Predefiniowane typy danych (1) Typ Opis typu Etykieta Boolean logiczny (prawda lub fałsz) UNIVERSAL 1 Integer liczby całkowite UNIVERSAL 2 Bit string uporządkowany ciąg danych binarnych UNIVERSAL 3 Octet string uporządkowany ciąg bajtów UNIVERSAL 4 Null nieokreślony, jedna możliwa wartość UNIVERSAL 5 Sequence uporządkowany ciąg pól o różnych typach UNIVERSAL 16 Sequence of uporządkowany ciąg pól jednego typu UNIVERSAL 16 Set Set of Choice nieuporządkowany ciąg pól o różnych typach nieuporządkowany ciąg pól tego samego typu typ wybierany z zestawu wzajemnie wykluczających się typów UNIVERSAL 17 UNIVERSAL 17
Predefiniowane typy danych (2) Tagged Any Typ Opis typu Etykieta typ otrzymany na podstawie istniejącego typu po zmianie numeru metki dowolny Object identifier określa obiekt lub grupę obiektów UNIVERSAL 6 Character string uporządkowany ciąg znaków UNIVERSAL 28 Enumerated wyliczeniowy UNIVERSAL 10 Real liczba rzeczywista UNIVERSAL 9 Encrypted typ otrzymany w wyniku zaszyfrowania innego typu Any defined by typ, który przyjmuje typ innej zadeklarowanej zmiennej UNIVERSAL 11
Notacja BNF W ASN.1 wykorzystuje się notację BNF (Backus-Nauer Form) <name> ::= <definition> Przykład: Definicja prostego wyrażenia arytmetycznego SAE (Simple Arithmetic Expression) <digit> ::= 0 1 2 3 4 5 6 7 8 9 <op> ::= + - * / <number> ::= <digit> <digit><number> <SAE> ::= <number> <SAE> <SAE><op><SAE>
Symbole Symbole stosowane w ASN.1 Symbol Znaczenie ::= definicja lub przypisanie or, alternatywa, opcje listy - liczba ze znakiem -- początek komentarza { } początek i koniec listy [ ] początek i koniec etykiety ( ) początek i koniec podtypu.. zakres
Drzewo MIT
Drzewo MIT (Management Information Tree) W środowisku SNMP wszystkie zarządzane obiekty zorganizowane są w strukturze hierarchicznej (drzewa): Liście drzewa to zarządzane obiekty Każdy obiekt reprezentuje zasób, działania lub informacje Z każdym typem obiektu w MIB związany jest pewien identyfikator typu ASN.1 OBJECT IDENTIFIER - służy jako nazwa obiektu
Drzewo MIT (Management Information Tree) itu (0) iso (1) org (3) dod (6) internet (1) iso-itu itu (2) directory (1) mgmt (2) mib / mib-2 (1) experimental (3) private (4) enterprises (1) HP, SUN, IBM, NEC, ICL, SGI, Cisco, 3Com, Fibronics, Microsoft, itd...
Drzewo MIT węzeł Internet Zdefiniowano 4 podwęzły w węźle Internet: Directory zarezerwowany do przyszłego wykorzystania z katalogiem OSI (X.500), Mgmt używany przez obiekty zdefiniowane w dokumentach zatwierdzonych przez IAB, Experimental używany do określania obiektów wykorzystywanych do badań Internetu, Private używany do definiowania obiektów niestandardowych.
Poddrzewo mgmt Zawiera definicje baz informacji zarządzania, które zostały zatwierdzone przez IAB.: opracowane zostały dwie wersje MIB, mib-1 oraz mib-2 (wersja 2 jest rozszerzeniem wersji 1). obie mają takie same identyfikatory obiektów, ponieważ tylko jedna wersja MIB może być zaimplementowana w danej konfiguracji.
Poddrzewo enterprises Przydzielone producentom, aby mogli usprawniać zarządzanie produkowanymi urządzeniami Istnieje konieczność dzielenia się tymi informacjami z użytkownikami i innymi producentami (konieczność współpracy). Rozgałęzienie wewnątrz poddrzewa enterprises przydzielane jest każdemu producentowi, który zarejestruje odpowiedni identyfikator obiektu.
Kodowanie Aby informacje opisane przy użyciu ASN.1 mogły być przesłane między agentem a zarządcą muszą zostać zakodowane zgodnie ze składnią transmisji (transfer syntax). Stosuje się kodowanie BER (Basic Encoding Rules) oraz strukturę kodowania TLV (type, length value). W efekcie kodowania otrzymujemy ciąg binarny postaci (ASCII zamienione na dane binarne), np.: 00000100 00000010 00001100 00011011
Podsumowanie Język ASN.1 jest podstawową notacją opisu syntaktyki abstrakcyjnej obiekty są zorganizowane w postaci drzewa MIT i umieszczone w bazie MDB
SNMP briefing
SNMP The Simple Network Management Protocol (SNMP) protokół warstwy aplikacji, umożliwiający wymianę informacji zarządzania między elementami sieci. SNMP jest częścią zestawu TCP/IP. Współcześnie SNMP nie jest ograniczony wyłącznie do urządzeń TCP/IP. SNMP umożliwia administratorom monitorowanie, konfigurację, zarządzanie wydajnością, szukanie problemów, planowanie.
Komponenty SNMP Zdefiniowano 3 komponenty SNMP: Structure of Management Information (SMI) Management Information Base (MIB) Simple Network Management Protocol (SNMP).
SNMP podstawowe dokumenty RFC Pierwsze RFC nt SNMP opublikowane w 1988 (przed osiągnięciem dojrzałości Internetu): RFC 1065 - Structure and Identification of Management Information for TCP/IP-based internets RFC 1066 - Management Information Base for Network Management of TCP/IP-based internets RFC 1067 - A Simple Network Management Protocol (SNMP)
Wersje SNMP Zdefiniowano 3 wersje SNMP: SNMP version 1 (SNMPv1) 1990 SNMP version 2 (SNMPv2) 1996 ( podobne funkcje jak dla SNMPv1 plus dodatkowe operacje). SNMP version 3 (SNMPv3) 2002 (uzupełnia zarówno SNMPv1 jak i SNMPv2 o dodatkowe funkcje bezpieczeństwa i administracyjne) Wszystkie wersje są obecnie stosowane. Wiele agentów i zarządców SNMP wspiera wszystkie wersje protokołu.
Wersje SNMP SNMPv1 SNMPv2c SNMPv3 RFC1155 RFC1157 RFC1213 RFC1901-1906 (RFC2571-RFC75) RFC3411-18) 1990 1996 2002
SNMPv2c RFC Scope Features RFC1901 Introduction to Community-based SNMPv2 RFC1902 Structure of Management Information for Version 2 of the Simple Network Management Protocol (SNMPv2) RFC1903 Textual Conventions for Version 2 of the Simple Network Management Protocol (SNMPv2) RFC1904 RFC1905 Conformance Statements for Version 2 of the Simple Network Management Protocol (SNMPv2) Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2) RFC1906 Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)
SNMPv3 (2002) RFC Scope Features RFC3411 RFC3412 An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks Message Processing and Dispatching for the Simple Network Management Protocol (SNMP) 64 pp. 43 pp. RFC3413 Simple Network Management Protocol(SNMP) 74 pp. Applications RFC3414 User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3) 88 pp. RFC3415 RFC3416 RFC3417 RFC3418 View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP Version 2 of the Protocol Operations for the Simple Network Management Protocol (SNMP) Transport Mappings for the Simple Network Management Protocol (SNMP Management Information Base (MIB) for the Simple Network Management Protocol (SNMP) 39pp. 31 pp. 19 pp. 26 pp.
Węzły SNMP Węzeł SNMP urządzenie w sieci zarządzanej przez SNMP. Typy: Managed node = zwykle z uruchomionym procesem agenta obsługującego żądania z wezła zarządzającego Management node = typowo serwer z odpowiednim oprogramowaniem monitorującym i zarządzającym Not manageablenode = typowo węzeł nie wspierający SNMP, ale podlegający zarządzaniu przez agenta proxy (na innym serwerze)
Elementy SNMP Agent SNMP oprogramowanie uruchomione w węźle sieci (host, ruter, drukarka, lub inne) posiadające informację w bazie danych o konfiguracji i bieżącym stanie Management Information Base (MIB) - baza danych informacji zarządzania Zarządca SNMP (manager) program, który kontaktuje się z agentami SNMP w celu przepytania lub ustawienia bazy danych u agenta. Protokół SNMP protokół warstwy aplikacji, który służy do komunikacji między zarządcą a agentami.
Komunikacja w SNMP MANAGER wiadomości SNMP AGENT MIB UDP UDP IP IP ETHERNET ETHERNET
Format wiadomości SNMP SNMP stosuje User Datagram Protocol (UDP) Ethernet Frame IP Packet UDP Datagram SNMP Message CRC SNMP używa standardowych portów (jak TCP): UDP Port 161 wiadomości SNMP UDP Port 162 wiadomości SNMP typu Trap
Stos protokołu SNMP
Komendy SNMP Urządzenia są monitorowane i zarządzane stosując komendy SNMP: Get - stosowana przez NMS w celu monitorowania zarządzanych obiektów i czytania zmiennych. Set stosowana przez NMS w celu sterowania zarządzanych obiektów i zmiany zmiennych w obiektach. Trap stosowana przez zarządzany obiekt w celu asynchronicznego raportowania zdarzeń do NMS. Przepytywanie (traversal operations) jest użyte przez NMS w celu sprawdzenia dostepności obiektów/zmiennych i sekwencyjnego zbierania informacji.
Komendy SNMPv3 (RFC3411-18) Urządzenia są monitorowane i zarządzane przez komendy SNMP: GetRequest - A manager-to-agent request to retrieve the value of a variable or list of variables. SetRequest - A manager-to-agent request to change the value of a variable or list of variables. GetNextRequest - Returns a Response with variable binding for the lexicographically next variable in the MIB. GetBulkRequest A manager-to-agent request for multiple iterations of GetNextRequest. Response -Returns variable bindings and acknowledgement from agent to manager for GetRequest, SetRequest, GetNextRequest, GetBulkRequest and InformRequest. Trap stosowana przez zarządzany obiekt w celu asynchronicznego raportowania zdarzeń do NMS.
Korzyści ze stosowania SNMP Standardowy protokół, Łatwy do przeniesienia, Rozszerzalny, lekki, Powszechnie wspierany, Umożliwia wielodostęp do informacji.
Modelowanie informacji zarządzania dla SNMP
Modelowanie informacji zarządzania dla SNMP W przypadku sieci Internet stosuje się następujące rozwiązania: SMI (Structure of Management Information) RFC1155, RFC1212 opisuje składnię i semantykę informacji zarządzania MIB (Management Information Base) RFC1213 (MIB-II) określa sposób organizacji informacji zarządzania opisywanej przy użyciu SMI
Structure of Management Information (SMI) Typy uniwersalne (UNIVERSAL) niezależne od aplikacji integer (UNIVERSAL 2), octetstring (UNIVERSAL 4), null (UNIVERSAL 5), object identifier (UNIVERSAL 6), sequence,sequence-of(universal 16)- do tworzenia tabel
Structure of Management Information (SMI) Typy aplikacyjne (APPLICATION) networkaddress umożliwia wybór formatu adresu odpowiedniego dla jednej z wielu rodzin protokołów. ipaddress 32-bitowy adres w formacie określonym dla IP, counter nieujemna liczba całkowita, która może być zwiększana, ale nie zmniejszana (licznik) gauge (wskaźnik poziomu, miernik) nieujemna liczba całkowita, która może być zwiększana lub zmniejszana (maksymalna wartość wynosi 2 32-1, miernik zatrzymuje się na wartości maks. do resetu) timeticks nieujemna liczba całkowita, zliczająca czas w setnych częściach sekundy, licząc od początku pewnej epoki. opaque umożliwia przechowywanie dowolnych danych.
Definiowanie obiektów makrodefinicja definiuje dopuszczalne instancje makr; określa składnię zbioru powiązanych typów. instancja makra instancja wygenerowana z określonej makrodefinicji poprzez podstawienie konkretnych argumentów, w miejsce parametrów makra; określa konkretny typ danych. wartość instancji makra wartość reprezentująca określoną wielkość.
IMPORTS ObjectName FROM RFC1155-SMI DisplayString FROM RFC1158-MIB; OBJECT-TYPE MACRO ::= BEGIN TYPE NOTATION ::= -- must conform to RFC1155's ObjectSyntax "SYNTAX" type(objectsyntax) "ACCESS" Access "STATUS" Status DescrPart ReferPart IndexPart DefValPart VALUE NOTATION ::= value (VALUE ObjectName) Wojciech Dziunikowski, SSiZ, KT AGH
Access ::= "read-only" "read-write" "write-only" "not-accessible Status ::= "mandatory" "optional" "obsolete" "deprecated" DescrPart ::= "DESCRIPTION" value (description DisplayString) empty ReferPart ::= "REFERENCE" value (reference DisplayString) empty IndexPart ::= "INDEX" "{" IndexTypes "}" empty IndexTypes ::= IndexType IndexTypes "," IndexType IndexType ::= -- if indexobject, use the SYNTAX value of the correspondent -- OBJECT-TYPE invocation value (indexobject ObjectName) -- otherwise use named SMI type must conform to IndexSyntax below type (indextype) DefValPart ::= "DEFVAL" "{" value (defvalue ObjectSyntax) "}" empty END Wojciech Dziunikowski, SSiZ, KT AGH
IndexSyntax ::= CHOICE { number INTEGER (0..MAX), string OCTET STRING, object OBJECT IDENTIFIER, address NetworkAddress, ipaddress IpAddress } Przykład definicji typu obiektu: tcpmaxconn OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION Ograniczenie liczby połączeń TCP, które może obsługiwać dana jednostka. W jednostkach, w których maksymalna liczba połączeń jest dynamiczna, obiekt ten powinien mieć wartość 1 ::= {tcp 4} Wojciech Dziunikowski, SSiZ, KT AGH
Definicja obiektu prostego syscontact OBJECT-TYPETYPE SYNTAX DisplayString ( SIZE ( 0.. 255 ) ) ACCESS read-write STATUS mandatory ::= { system 4 } 1.3.6.1.2 iso.org.dod.internet.mgmt mib2 (1) 1.3.6.1.2.1.1 system (1)......... sysdescr (1) sysuptime (3) syscontact (4) sysname (5) sysservices (7) 1.3.6.1.2.1.1.4.0 syscontact.0 wartość = Jan Kowalski
Definicja obiektu tablicowego testtable OBJECT-TYPETYPE SYNTAX SEQUENCE OF TESTEntry ACCESS not-accessible STATUS mandatory ::= { test 1 } testentry OBJECT-TYPETYPE SYNTAX TESTEntry ACCESS not-accessible INDEX { number } ::= { testtable 1 } testtable (1) testentry (1) testnumber (1) testname (2) TESTEntry ::= SEQUENCE { testnumber INTEGER, testname OCTET STRING } testnumber OBJECT-TYPETYPE SYNTAX INTEGER... ::= { testentry 1 } testname OBJECT-TYPETYPE SYNTAX OCTET STRING... ::= { testentry 2 }
Przykład -tablica tcpconntable (RFC1213) Obiekt tego typu, tabela połączeń TCP, zawiera informacje o połączeniach odnośnie danej jednostki zarządzania. W tabeli tej przechowywane są następujące informacje dla każdego połączenia: stan (State) adres lokalny (Local Address) port lokalny (Local Port) adres zdalny (Remote Address) port zdalny (Remote Port)
Tablica tcpconntable (RFC1213) tcpconntable (1.3.6.1.2.1.6.13) tcpconnentry (tcpconntable.1) tcpconnstate (tcpconnentry.1) tcpconnlocaladdress (tcpconnentry.2) tcpconnlocalport (tcpconnentry.3) tcpconnremoteaddress (tcpconnentry.4) tcpconnremoteport (tcpconnentry.5) 5 (established) 2 (listen) 3 (synsent) indeks indeks indeks indeks 149.156.114.1 12 213.134.156.1 15 0.0.0.0 99 0.0.0.0 0 149.156.114.1 14 149.156.114.23 84
MIB vs. MDB MIB jest wzorcem MDB
Podsumowanie SNMP jest uniwrsalnym i wciąż rozwijanym protokołem zarządzania Eleastyczność jest osiągana dzięki możliwości definiowania nowych obiektów oraz relacji między obiektami obiekty są zorganizowane w postaci drzewa MIT i umieszczone w bazie MDB MIB jest wzorcem MDB
Literatura 1. P. Czarnecki, A. Jajszczyk, J. Lubacz: Standardy zarządzania sieciami OSI/NM, TMN, Wydawnictwa EFP, Poznań, 1995. 2. M. Subramanian: Network Management, Principles & Practice, Addison-Wesley, 1996. 3. M. Sloman: Network & Distributed Systems Management, Addison-Wesley, 2000 4. Haojin Wang: Telecommunications Network Management, Mc Graw-Hill Telecommunications 1999 5. RFC3411-3418, SNMPv3,
Literatura Strony WWW 1. http://www.tmforum.org 2. http://www.dmtf.org 3. http://www.ietf.org
Dziękuję za uwagę!