W8 - Katedra Telekomunikacji AGH
Transkrypt
W8 - Katedra Telekomunikacji AGH
Systemy sygnalizacji i zarządzania TI Zarządzanie: Modele informacyjne i typy danych SNMP Krzysztof Wajda Katedra Telekomunikacji AGH Grudzień, 2016 Plan • • • • • • Definicje Typy modeli Modele organizacyjne Modele informacyjne Modele komunikacyjne Typy danych Obszary standaryzacji 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 Zarządca Agent 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 Zarządca Zarządca MDB MDB Agent Agent Elementy zarządzane Elementy niezarządzane MDB Agent Agent Elementy zarządzane Elementy niezarządzane Przykład [M. Subramanian, Network Management …] : Firma (organizacja) z dwoma lokalizacjami i zintegrowanym systemem zarządzania. Model organizacyjny Model peer-to-peer Przykład [M. Subramanian, Network Management … ] : dwóch dostarczycieli usług (service providers) wymieniających informację zarządzania w celu wspólnej realizacji usługi dla użytkownika końcowego. 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 (Abstract Syntax Notation One) jest formalnym językiem opracowanym i poddanym standaryzacji przez CCITT (X.208) oraz ISO (ISO 8824). BER (Basic Encoding Rules) to sposób kodowania składni ASN.1 do postaci binarnej 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 nieuporządkowany ciąg pól o różnych typach UNIVERSAL 17 Set of nieuporządkowany ciąg pól tego samego typu UNIVERSAL 17 Choice typ wybierany z zestawu wzajemnie wykluczających się typów Predefiniowane typy danych (2) Typ Opis typu Etykieta Tagged typ otrzymany na podstawie istniejącego typu po zmianie numeru metki (etykiety) Any 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 UNIVERSAL 11 Any defined by typ, który przyjmuje typ innej zadeklarowanej zmiennej Typy danych w SNMP Na podstawie ASN.1, ograniczając liczbę typów wybrano: • INTEGER • OCTET STRING • OBJECT IDENTIFIER • NULL 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) iso (1) itu (0) isoiso-itu (2) org (3) dod (6) internet (1) directory (1) mgmt (2) mib / mibmib-2 (1) experimental (3) private (4) enterprises (1) HP, SUN, IBM, NEC, ICL, SGI, Cisco, 3Com, Fibronics 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: 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. 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) 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 manageable node = 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. 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 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 Conformance Statements for Version 2 of the Simple Network Management Protocol (SNMPv2) RFC1905 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) Features SNMPv3 (2002) RFC Scope Features RFC3411 An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks 64 pp. RFC3412 Message Processing and Dispatching for the Simple Network Management Protocol (SNMP) 43 pp. RFC3413 Simple Network Management Protocol (SNMP) Applications 74 pp. RFC3414 User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3) 88 pp. RFC3415 View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP 39 pp. RFC3416 Version 2 of the Protocol Operations for the Simple Network Management Protocol (SNMP) 31 pp. RFC3417 Transport Mappings for the Simple Network Management Protocol (SNMP 19 pp. RFC3418 Management Information Base (MIB) for the Simple Network Management Protocol (SNMP) 26 pp. Komunikacja w SNMP MANAGER AGENT MIB wiadomości SNMP UDP UDP IP IP ETHERNET ETHERNET Format wiadomości SNMP SNMP stosuje User Datagram Protocol (UDP) Ethernet Frame IP Packet UDP Datagram SNMP Message SNMP używa standardowych portów (jak TCP): UDP Port 161 – wiadomości SNMP UDP Port 162 – wiadomości SNMP typu Trap CRC 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. Getnext – nastepny element w drzewie Getbulk - zakres 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 dostępności obiektów/zmiennych i sekwencyjnego zbierania informacji. Komendy SNMPv3 (RFC3416) Protocol data units • PDUs ::= CHOICE { get-request GetRequest-PDU, get-next-request GetNextRequest-PDU, get-bulk-request GetBulkRequest-PDU, response Response-PDU, set-request SetRequest-PDU, inform-request InformRequest-PDU, snmpV2-trap SNMPv2-Trap-PDU, report Report-PDU } 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 Wersje SNMP Zdefiniowano 3 wersje SNMP: SNMP version 1 (SNMPv1) 1990 SNMP version 2 (SNMPv2) 1996 (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. Structure of Management Information (SMI) Typy uniwersalne (UNIVERSAL) w ASN.1– 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) w ASN.1: • 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 (v4), • 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 232-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 Komponenty definiowania obiektów Kluczowe komponenty to: • SYNTAX – abstrakcyjna składnia typu obiektu. Musi to być instancja typu ObjectSyntax zdefiniwanego w RFC 1155. Ogólnie mówiąc składnia musi zostać skonstruowana przy użyciu dopuszczalnych w SMI typów uniwersalnych i aplikacyjnych. • ACCESS – definiuje sposób, w jaki instancja obiektu będzie dostępna przy użyciu SNMP lub innego protokołu. Klauzula ta określa minimalny wymagany poziom obsługi tego typu obiektów. Dopuszczalne jest określanie dodatkowych rozszerzeń lub ograniczeń zakresu dostępu. Dostępne są następujące opcje: tylko-do-odczytu (Read-only), dozapisu-i-odczytu (Read-Write), tylko-do-zapisu (Write-Only) oraz niedostępne (Not-Accessible). W tym ostatnim przypadku wartość obiektu nie może być ani odczytywana, ani ustawiana. Komponenty definiowania obiektów Kluczowe komponenty to: • STATUS – określany wymagany poziom implementacji danego obiektu. Implementacja może być obowiązkowa (Mandatory) lub opcjonalna (Optional). Obiekt może być także określony jako nie zalecany (Deprecated). Nie zalecany obiekt musi być zaimplementowany, jednak najprawdopodobniej zostanie usunięty z następnej wersji MIB. Ostatecznie status obiektu może być określony jako przestarzały (Obsolete), co oznacza, że zarządzane systemy nie muszą więcej implementować tego obiektu. • DescrPart – tekstowy opis semantyki danego typu obiektu. Klauzula ta jest opcjonalna. • ReferPart – tekstowa referencja (odnośnik) do obiektu zdefiniowanego w innym module MIB. Klauzula ta jest opcjonalna. Komponenty definiowania obiektów Kluczowe komponenty to: • IndexPart – używany przy definiowaniu tabel. Klauzula ta może pojawić się tylko w definicji typu odnoszącego się do wiersza tabeli. • DefValPart – definiuje dopuszczalną wartość domyślną, która może być wykorzystana w momencie tworzenia instancji obiektu, według uznania agenta. Klauzula ta jest opcjonalna. • VALUE NOTATION – określa nazwę używaną do uzyskania dostępu do obiektu przy użyciu SNMP. 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” ::=Wojciech {tcp 4} Dziunikowski, SSiZ, KT AGH Definicja obiektu prostego sysContact OBJECT OBJECT--TYPE SYNTAX DisplayString ( SIZE ( 0 .. 255 ) ) ACCESS read-write 1.3.6.1.2 STATUS mandatory ::= { system 4 } iso.org.dod.internet.mgmt mib2 (1) 1.3.6.1.2.1.1 ... ... sysDescr (1) system (1) sysUpTime (3) sysContact (4) 1.3.6.1.2.1.1.4.0 ... sysName (5) sysContact.0 wartość = „Jan Kowalski” Kowalski sysServices (7) Definicja obiektu tablicowego testTable OBJECT OBJECT--TYPE SYNTAX SEQUENCE OF TESTEntry ACCESS not-accessible STATUS mandatory ::= { test 1 } testTable (1) testEntry (1) testEntry OBJECT OBJECT--TYPE SYNTAX TESTEntry ACCESS not-accessible INDEX { number } ::= { testTable 1 } testNumber (1) TESTEntry ::= SEQUENCE { testNumber INTEGER, testName OCTET STRING } testNumber OBJECT OBJECT--TYPE SYNTAX INTEGER ... ::= { testEntry 1 } testName OBJECT OBJECT--TYPE SYNTAX OCTET STRING ... ::= { testEntry 2 } testName (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 tcpConnLocalPort (tcpConnEntry.2) (tcpConnEntry.3) tcpConnRemoteAddress (tcpConnEntry.4) tcpConnRemotePort (tcpConnEntry.5) indeks 149.156.114.1 indeks 12 indeks 213.134.156.1 2 (listen) 0.0.0.0 99 0.0.0.0 0 3 (synSent) 149.156.114.1 14 149.156.114.23 84 5 (established) indeks 15 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. RFC3411, An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks, 2002 5. RFC3413, Simple Network Management Protocol (SNMP) Applications, 2002 Literatura Strony WWW: 1. 2. 3. http://www.tmforum.org http://www.itu.int http://www.ietf.org Dziękuję za uwagę!