SNMP SNMP Simple Network Management Protocol Baseado nos acetatos existentes em: www.simpleweb.com Copyright 2001 by Aiko Pras Estes acetatos podem ser usados com fins educacionais 1
SNMP 1. Introdução Aproximações ad-hoc à gestão de redes Normas da gestão de redes Introdução ao SNMP 2. Structure of Management Information (SMI) SMIv1, SMIv2 SMIng 3. Management Information Bases (MIBs) Introdução Relação entre MIBs MIB-II SNMPv2 MIB Interfaces MIB IP MIB TCP MIB UDP MIB Host resources MIB 4. Simple Network Management Protocol (SNMP) SNMP versão 1 SNMP versão 2 SNMP versão 3 5. Tópicos avançados Monitorização remota (RMON) Gestão distribuída (Disman) Tecnologia de agentes extensíveis (Agentx) Ferramentas MRTG Ntop Scotty 3
OBJECTIVO O OBJECTIVO É EXPLICAR: QUE TIPO DE GESTÃO DE INFORMAÇÃO EXISTE NA INTERNET O QUE DEFINE ESSA INFORMAÇÃO A SINTAXE EM QUE ESSA INFORMAÇÃO É DESCRITA OS PROTOCOLOS QUE PERMITEM QUE ESSA INFORMAÇÃO SEJA MONITORIZADA/MODIFICADA A ESTRUTURA DAS IMPLEMENTAÇÕES DE GESTÃO 4
GESTÃO DE REDES Gestão de falhas Facilidades que permitem a detecção, isolamento e correcção do funcionamento anormal Gestão da contabilidade Facilidades que permitem o estabelecimento de tarifas pelo uso dos objectos geridos e a identificação dos custos associados ao uso desses objectos. Configuração e gestão de nomes Facilidades que exercem controlo sobre, identificam, recebem dados de, e fornecem dados para os objectos geridos com o propósito de ajudar a providenciar uma operação continua dos serviços de interligação. Gestão da eficiência Facilidades necessárias à determinação do comportamento dos objectos geridos e à eficiência das actividades de comunicação. Gestão da segurança Facilidades relacionadas com os aspectos essenciais da segurança de forma a operar a gestão de redes correctamente e a proteger os objectos geridos. 6
GESTÃO DE REDES: APROXIMAÇÃO AD-HOC SISTEMA LOCAL - EXEMPLOS: PING TRACEROUTE NETSTAT... SISTEMA REMOTO TELNET / RLOGIN (COMMAND LINE INTERFACE - CLI) INTERFACE WEB EXEMPLOS COM INTERFACE WEB: PING TRACEROUTE WHOIS NTOP... 7
AMEAÇAS Ameaças passivas Intercepção (segredo) Divulgação do conteúdo da mensagem Análise de tráfego Ameaças activas Negação de serviço (disponibilidade) Modificação (integridade) Máscara, repetição (autenticação) 8
GESTÃO DE REDES: NORMAS INTERNET INTERNET ENGINEERING TASK FORCE (IETF) OPERATIONS AND MANAGEMENT AREA SNMP ISO ISO-IEC/JTC 1/WG 4 OSI CMIP-CMIS ITU-T SG IV TMN Outros DMTF TM FORUM OMG IEEE... 9
CARACTERISTICAS IETF A GESTÃO DEVE SER SIMPLES APROXIMAÇÃO ORIENTADA ÀS VARIÁVEIS A TROCA DE INFORMAÇÃO NÃO É FIÁVEL ISO A GESTÃO DEVE SER POTENTE APROXIMAÇÃO ORIENTADA AOS OBJECTOS A TROCA DE INFORMAÇÃO DEVE SER REALIZADA DE FORMA FIÁVEL TMN DEFINE APENAS A ARQUITECTURA DE GESTÃO OS PROTOCOLOS ACTUAIS SÃO OS DA OSI GESTÃO FOR A DE BANDA 10
HISTÓRIA SNMP OSI TMN 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 11
QUOTA DE MERCADO NÚMERO DE AGENTES? NÚMERO DE GESTORES? DINHEIRO? PARA AMBIENTES ESPECIFICOS? IBM MAIN-FRAMES PRIVATE DATA LANs PRIVATE DATA WANs PABX PUBLIC VOICE NETWORKS PUBLIC DATA NETWORKS 12
PORQUÊ O SUCESSO DO SNMP? AS NORMAS PODEM SER OBTIDAS DE GRAÇA AS NORMAS ESTÃO DISPONÍVEIS EM SERVIDORES FTP E WWW EM FORMATO ELECTRÓNICO DESENVOLVIMENTO RÁPIDO DAS NORMAS OS PROTÓTIPOS DEVEM DEMONSTRAR A NECESSIDADE E A POSSIBILIDADE DE IMPLEMENTAÇÃO DAS NORMAS 13
NORMALIZAÇÃO IETF WORKING DOCUMENT implementation experience must be obtained PROPOSED STANDARD after a maximum of 2 years HISTORICAL several independent implementations must interwork DRAFT STANDARD after a maximum of 4 years HISTORICAL FULL STANDARD 14
NORMALIZAÇÃO ISO WORKING DOCUMENT nobody implements! COMMITTEE DRAFT TECHNICAL REPORT still nobody implements!! DRAFT INTERNATIONAL STANDARD TECHNICAL REPORT FULL STANDARD 15
standard proposed standard full standard HISTÓRIA DO SNMP proposed standard implementation experience standard proposed standard standard SGMP SNMP SNMP security SMP SNMPv2 (parties) SNMPv2 (community) SNMPv3 draft draft draft CMOT HEMS/HEMP historic 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 16
HISTÓRIA OSI SC21/WG4 ESTABLISHED MANAGEMENT FRAMEWORK CMIS/CMIP SYSTEMS MGT. OVERVIEW MANAGEMENT FUNCTIONS 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 17
HISTÓRIA DO TMN WORK ON TMN STARTED BY SGIV M30 IDEAS FROM OSI MGT. WORK STARTED ON DERIVED STANDARDS RESPONSIBILITY MODEL BECAME ANNEX M3010 RESPONSIBILITY MODEL PART OF MAIN TEXT M3010 (rev.) 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 18
VANTAGENS DO SNMP UBIQUIDADE PCs e CRAYs (supercomputadores) A INCLUSÃO DA GESTÃO NÃO DEVE SER DISPENDIOSA CÓDIGO PEQUENO FUNCIONALIDADE LIMITADA SÃO POSSÍVEIS EXTENSÕES À GESTÃO NOVAS MIBs A GESTÃO DEVE SER ROBUSTA TRANSPORTE CONNECTIONLESS 19
ESTRUTURA DO SNMP MANAGER AGENT Management Application MIB SNMP PDUs CONNECTIONLESS TRANSPORT SERVICE PROVIDER UDP 20
MODELO UTILIZADO PELO SNMP Entidades a gerir Agente de gestão SNMP Estação gestora SNMP Agente proxy Outro protocolo Entidades a gerir MIB 21
PRINCÍPIO DE OPERAÇÃO MANAGER SNMP AGENTS MIB 22
PRINCÍPIO DE OPERAÇÃO MANAGER POLLING TRAPS AGENTS MIB 23
PRINCÍPIO DE OPERAÇÃO MANAGER GET / SET TRAP AGENTS MIB 24
PRINCÍPIO DE OPERAÇÃO MANAGER AGENTS TABLES VARIABLES 25
NORMAS SMI STRUCTURE OF MANAGEMENT INFORMATION RFC 1155 MIB-II MANAGEMENT INFORMATION BASE RFC 1213 EXISTE UM GRANDE NÚMERO DE MIBs ADICIONAIS SNMP SIMPLE NETWORK MANAGEMENT PROTOCOL RFC 1157 O NOME (SNMP) É UTILIZADO NUM SENTIDO MAIS GERAL NOVAS VERSÕES: SNMPv2 & SNMPv3 26
SMI STRUCTURE OF MANAGEMENT INFORMATION RFC 1155: SMIv1 RFC 1212: CONCISE MIB DEFINITIONS RFC 2578: SMIv2 RFC 2579: TEXTUAL CONVENTIONS TORNA A DEFINIÇÃO DAS (NOVAS) MIBs MAIS FÁCIL 27
SMI O SMI DEFINE AS REGRAS PARA DESCREVER A INFORMAÇÃO DE GESTÃO O SMI É DEFINIDO UTILIZANDO O ASN.1 O SMI VAI NA TERCEIRA GERAÇÃO SMIv1, SMIv2 e SMIng 28
SMI A INFORMAÇÃO DE GESTÃO NOS SISTEMAS A GERIR DEVE SER REPRESENTADA COMO: ESCALARES TABELAS (= MATRIZES BI-DIMENSIONAIS DE ESCALARES) O PROTOCOLO SNMP SÓ PODE TROCAR (LISTAS DE) ESCALARES DEFINIDA EM TERMOS DE CONSTRUTORES ASN.1 29
RFC1155-SMI DEFINITIONS ::= BEGIN DEFINIÇÃO DA SMIv1-1 EXPORTS -- EVERYTHING internet, directory, mgmt, experimental, private, enterprises, OBJECT-TYPE, ObjectName, ObjectSyntax, SimpleSyntax, ApplicationSyntax, NetworkAddress, IpAddress, Counter, Gauge, TimeTicks, Opaque; -- the path to the root internet OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 } directory OBJECT IDENTIFIER ::= { internet 1 } mgmt OBJECT IDENTIFIER ::= { internet 2 } experimental OBJECT IDENTIFIER ::= { internet 3 } private OBJECT IDENTIFIER ::= { internet 4 } enterprises OBJECT IDENTIFIER ::= { private 1 } -- definition of object types OBJECT-TYPE MACRO ::= BEGIN TYPE NOTATION ::= "SYNTAX" type (TYPE ObjectSyntax) "ACCESS" Access "STATUS" Status VALUE NOTATION ::= value (VALUE ObjectName) Access ::= "read-only" "read-write" "write-only" "not-accessible" Status ::= "mandatory" "optional" "obsolete" END 30
DEFINIÇÃO DA SMIv1-2 -- names of objects in the MIB ObjectName ::= OBJECT IDENTIFIER -- syntax of objects in the MIB ObjectSyntax ::= CHOICE { simple SimpleSyntax, -- note that simple SEQUENCEs are not directly -- mentioned here to keep things simple (i.e., -- prevent mis-use). However, application-wide -- types which are IMPLICITly encoded simple -- SEQUENCEs may appear in the following CHOICE application-wide ApplicationSyntax } 31
SimpleSyntax ::= CHOICE { number INTEGER, string OCTET STRING, object OBJECT IDENTIFIER, empty NULL } ApplicationSyntax ::= CHOICE { address NetworkAddress, counter Counter, gauge Gauge, ticks TimeTicks, arbitrary Opaque -- other application-wide types, as they are -- defined, will be added here } DEFINIÇÃO DA SMIv1-3 32
DEFINIÇÃO DA SMIv1-4 -- application-wide types NetworkAddress ::= CHOICE { internet IpAddress } IpAddress ::= [APPLICATION 0] -- in network-byte order IMPLICIT OCTET STRING (SIZE (4)) Counter ::= [APPLICATION 1] IMPLICIT INTEGER (0..4294967295) Gauge ::= [APPLICATION 2] IMPLICIT INTEGER (0..4294967295) TimeTicks ::= [APPLICATION 3] IMPLICIT INTEGER (0..4294967295) Opaque ::= [APPLICATION 4] -- arbitrary ASN.1 value, IMPLICIT OCTET STRING -- "double-wrapped" END 33
SMI: TIPOS DE DADOS PARA OS ESCALARES SIMPLE TYPES: SMIv1 INTEGER OCTET STRING OBJECT IDENTIFIER SMIv2 INTEGER OCTET STRING OBJECT IDENTIFIER - Integer32 APPLICATION-WIDE TYPES: PSEUDO TYPES: - Gauge Counter - TimeTicks IpAddress Opaque NetworkAddress - Unsigned32 Gauge32 Counter32 Counter64 TimeTicks IpAddress Opaque - BITS 34
EXEMPLO DE OBJECTOS ESCALARES MANAGED OBJECT INSTANCES address name uptime SNMP MANAGER AGENT 35
IDENTIFICAÇÃO DOS OBJECTOS INTRODUÇÃO ÀS ÁRVORES DE NOMES NEW-MIB: 1 address (1) info (2) 130.89.16.2 name (1) uptime (2) printer-1 123456 AS FOLHAS DA ÁRVORE REPRESENTAM OS OBJECTOS GERIDOS OS NÓS EXISTEM PARA EFEITO DE CRIAR IDENTIFICAÇÕES ÚNICAS PARA OS OBJECTOS 36
IDENTIFICAÇÃO DOS OBJECTOS address Object ID = 1.1 Object Instance = 1.1.0 Value of Instance = 130.89.16.2 info Object ID = 1.2 NEW-MIB: 1 name Object ID = 1.2.1 Object Instance = 1.2.1.0 Value of Instance = printer-1 uptime Object ID = 1.2.2 Alternativa: Object ID = NEW-MIB info uptime Object Instance = 1.2.2.0 Value of Instance = 123456 address (1) info (2) 130.89.16.2 name (1) uptime (2) printer-1 123456 37
IDENTIFICAÇÃO DOS OBJECTOS : MIBs root ccitt (0) iso (1) joint-iso-ccitt (2) stnd (0) reg-auth (1) mb (2) org (3) dod (6) internet (1) directory (1) mngt (2) experimental (3) private (4) security (5) snmpv2 (6) mib-2 (1) enterprises (1) snmpdomains (1) snmpproxys (2) snmpmodules (3) 38
DEFINIÇÃO DO TIPO DOS OBJECTOS (Versão 2) OBJECT-TYPE: SYNTAX MAX-ACCESS STATUS DESCRIPTION INTEGER OCTET STRING OBJECT IDENTIFIER BITS IpAddress Integer32 Counter32 Counter64 Gauge32 TimeTicks Opaque New Type read-only read-write read-create accessible-for-notify not-accessible current deprecated obsolete "" 39
DEFINIÇÃO DO TIPO DOS OBJECTOS - EXEMPLO -- Definição de address address OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-write STATUS current DESCRIPTION "The Internet address of this system" ::= {NEW-MIB 1} 40
DEFINIÇÃO DE OBJECTOS QUE NÃO SÃO FOLHAS Name OBJECT IDENTIFIER ::= {...} EXEMPLO: info OBJECT IDENTIFIER ::= {NEW-MIB 2} CONSTRUCÇÃO ALTERNATIVA: OBJECT IDENTITY EXEMPLO: info STATUS DESCRIPTION ::= {NEW-MIB 2} OBJECT-IDENTITY current "The node under which future scalar objects should be registered" 41
DEFINIÇÃO DE UMA MIB NEW-MIB DEFINITIONS ::= BEGIN declaração das importações END definição da identidade do módulo definição de todos os objectos dos nós e das folhas definição dos requisitos da implementação 42
IMPORTAÇÃO DUMA DECLARAÇÃO - EXEMPLO IMPORTS MODULE-IDENTITY, OBJECT-TYPE, TimeTicks, enterprises FROM SNMPv2-SMI; 43
IDENTIFICAÇÃO DUM MÓDULO O SNMPv2 INTRODUZ O CONCEITO DE MÓDULO DE INFORMAÇÃO, QUE ESPECIFICAM UM GRUPO DE DEFINIÇÕES RELACIONADAS. SÃO UTILIZADOS TRÊS TIPOS DE MÓDULOS DE INFORMAÇÃO: 1. MÓDULOS MIB, QUE CONTÊM DEFINIÇÕES DE OBJECTOS DE GESTÃO ENTRELACIONADOS, FAZENDO USO DAS MACRO OBJECT-TYPE E NOTIFICATION-TYPE 2. DECLARAÇÕES DE COMPLIANCE PARA OS MÓDULOS MIB, QUE FAZEM USO DE MACROS MODULE-COMPLIANCE E OBJECT-GROUP 3. DECLARAÇÕES DE CAPABILITY PARA IMPLEMENTAÇÕES DE AGENTES QUE UTILIZAM AS MACROS AGENT-CAPABILITIES. 44
IDENTIFICAÇÃO DUM MÓDULO MODULE-IDENTITY MACRO ::= BEGIN TYPE NOTATION ::= LAST UPDATED value(update UTCTime) ORGANIZATION Text CONTACT-INFO Text DESCRIPTION Text RevisionPart VALUE NOTATION ::= value (VALUE OBJECT IDENTIFIER) RevisionPart ::= Revisions empty Revisions ::= Revision Revisions Revision Revision ::= REVISION value(update UTCTime) DESCRIPTION Text -- uses the NVT ASCII character set Text ::= string END 45
IDENTIFICAÇÃO DUM MÓDULO - EXEMPLO newmibmodule MODULE-IDENTITY LAST-UPDATED "200104041200Z" ORGANIZATION "UT-TMG" CONTACT-INFO " TSS University of Twente POBox 217 7500 AE Enschede The Netherlands Email: simpleweb@simpleweb.org " DESCRIPTION "Experimental MIB for demo purposes" ::= { enterprises ut(785) 7 } 46
IDENTIFICAÇÃO DUM MÓDULO A MACRO OBJECT-IDENTITY É UTILIZADA PARA DOCUMENTAR OS OBJECTOS UTILIZADOS NUMA MIB OBJECT-IDENTITY MACRO ::= BEGIN TYPE NOTATION ::= STATUS Status DESCRIPTION Text ReferPart VALUE NOTATION ::= value(value OBJECT IDENTIFIER) Status ::= current obsolete ReferPart ::= REFERENCE Text empty Text ::= string END 47
TABELAS EXEMPLO: TABELA DE ROUTING DO NÓ 1 destination next 2 2 3 3 5 2 7 2 8 3 9 3 1 2 3 5 7 8 9 PARA SE ACEDER A CADA UMA DAS ENTRADAS INDIVIDUAIS DA TABELA CADA ENTRADA DEVE TER UMA IDENTIFICAÇÃO 48
REFERÊNCIAS DAS ENTRADAS NAS TABELAS - I POSSIBILIDADE 1 (NÃO É UTILIZADA PELO SNMP): USAR NÚMEROS DE LINHA NEW-MIB: 1 address (1) info (2) routetable (3) 130.89.16.2 name (1) uptime (2) dest(1) next(2) printer-1 123456 this is row 5 2 2 3 3 5 2 7 2 8 3 9 3 EXEMPLO: O VALOR DE NEW-MIB routetable next 5 IS 3 49
REFERÊNCIAS DAS ENTRADAS NAS TABELAS - II POSSIBILIDADE 2 (UTILIZADA PELO SNMP): INTRODUZIR UMA COLUNA DE ÍNDICE NEW-MIB: 1 address (1) info (2) routetable (3) 130.89.16.2 name (1) uptime (2) dest(1) next(2) printer-1 123456 2 2 3 3 5 2 7 2 8 3 9 3 EXEMPLO: O VALOR DE NEW-MIB routetable next 5 IS 2 50
ESQUEMA GERAL INDEXAÇÃO DE TABELAS ) routetable (3) uptime (2) 123456 X.C.I OID of Table Column number Index value EXEMPLOS: OID of Table = 1.3 1.3.1.5 => 5 1.3.2.5 => 2 1.3.1.9 => 9 1.3.2.9 => 3 1.3.2.7 => 2 1.3.1.1 => entry does not exist 1.3.2.1 => entry does not exist dest(1) next(2) 2 2 3 3 5 2 7 2 8 3 9 3 51
INDEXAÇÃO DE TABELAS INDICE NÃO-INTEIRO UM INDICE NÃO NECESSITA SER UM INTEIRO routetable (3) dest (1) next (2) 130.89.16.1 130.89.16.1 130.89.16.4 130.89.16.23 130.89.19.121 192.1.23.24 193.22.11.97 130.89.16.4 130.89.16.1 130.89.16.1 130.89.16.4 130.89.16.4 EXEMPLOS: OID of Table = 1.3 1.3.1.130.89.16.23 => 130.89.16.23 1.3.2.130.89.16.23 => 130.89.16.1 1.3.1.193.22.11.97 => 193.22.11.97 1.3.2.193.22.11.97 => 130.89.16.4 1.3.2.130.89.19.121 => 130.89.16.1 52
INDEXAÇÃO DE TABELAS ÍNDICE COM CAMPOS MÚLTIPLOS USO DE MÚLTIPLOS CAMPOS DE INDICE X.C.I1.I2 OID of Table Column number Index value 1 Index value 2 53
EXEMPLO: INDEXAÇÃO DE TABELAS MÚLTIPLOS CAMPOS DE INDÍCE 1 = low costs 2 = high reliability routetable (3) dest (1) policy (2) next (3) 130.89.16.23 1 130.89.16.23 130.89.16.23 130.89.19.121 192.1.23.24 2 1 1 130.89.16.23 130.89.16.1 130.89.16.1 192.1.23.24 193.22.11.97 2 1 130.89.16.4 130.89.16.1 1.3.3.192.1.23.24.1 => 130.89.16.1 1.3.3.192.1.23.24.2 => 130.89.16.4 54
DEFINIÇÃO DE TABELAS -- Definição duma tabela de encaminhamento routetable OBJECT-TYPE SYNTAX SEQUENCE OF routeentry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This entity s routing table" ::= {NEW-MIB 3} routeentry SYNTAX MAX-ACCESS STATUS DESCRIPTION INDEX ::= {routetable 1} OBJECT-TYPE RouteEntry not-accessible current "A route to a particular destination" {dest, policy} 55
DEFINIÇÃO DE TABELAS (cont. 1) RouteEntry ::= SEQUENCE { dest ipaddress, policy INTEGER, next ipaddress } 56
DEFINIÇÃO DE TABELAS (cont. 2) dest OBJECT-TYPE SYNTAX ipaddress ACCESS read-only STATUS current DESCRIPTION "The address of a particular destination" ::= {route-entry 1} policy OBJECT-TYPE SYNTAX INTEGER { costs(1) -- lowest delay reliability(2)} -- highest reliability ACCESS read-only STATUS current DESCRIPTION "The routing policy to reach that destination" ::= {route-entry 2} next OBJECT-TYPE SYNTAX ipaddress ACCESS read-write STATUS current DESCRIPTION "The internet address of the next hop" ::= {route-entry 3} 57
DEFINIÇÃO DE NOVOS TIPOS CONVENÇÕES TEXTUAIS PARA REFINAR A SEMÂNTICA DOS TIPOS EXISTENTES EXEMPLO: RunState ::= TEXTUAL CONVENTION STATUS current DESCRIPTION "..." SYNTAX INTEGER{ running(1) runable(2) waiting(3) exiting(4)} 58
MIBs MANAGEMENT INFORMATION BASES CONTÊM OS OBJECTOS GERIDOS (VARIÁVEIS) QUE REPRESENTAM OS RECURSOS DUM SISTEMA E QUE PODEM SER MONITORIZADOS E MODIFICADOS POR UM GESTOR (REMOTO) PARA CONTROLAR O COMPORTAMENTO DESSE SISTEMA SNMP MIB MANAGER AGENT 77
DEFINIÇÃO DA MIB E INSTÂNCIA DA MIB A DEFINIÇÃO DA MIB DEVE SER CONHECIDA POR: OS IMPLEMENTADORES DO SISTEMA A GERIR O GESTOR A MIB É INSTANCIADA NO SISTEMA GERIDO 78
MODULARIDADE OS OBJECTOS GERIDOS DUM SISTEMA SÃO USUALMENTE DEFINIDOS EM MÚLTIPLAS DEFINIÇÕES DA MIB MÓDULOS MÓDULOS DIFERENTES PODEM SER DEFINIDOS POR EQUIPAS DIFERENTES A FUNCIONALIDADE DA GESTÃO PODE SER EXTENDIDA GRADUALMENTE DIFERENTES TIPOS DE SISTEMAS PODEM SUPORTAR DIFERENTES TIPOS DE MÓDULOS OS VENDEDORES PODEM EXTENDER A FUNCIONALIDADE DA GESTÃO ATRAVÉS DE MIBs PROPRIETÁRIAS 79
MIBs DE HARDWARE HOST RESOURCES MIB MODEM MIB PRINTER MIB 80
802.3 802.5 FDDI ATM ADSL SONET... WWW MAIL DNS X.500 RDBMS SNMP... MIBs DE PROTOCOLOS APPLICATION TRANSPORT TCP UDP NETWORK OSPF BGP EGP TRANSMISSION IP INTERFACES ICMP ARP... 81
802.3 802.5 FDDI ATM ADSL SONET... WWW MAIL DNS X.500 RDBMS SNMP... MIBs DE PROTOCOLOS - EXEMPLO: MIB-II APPLICATION TRANSPORT TCP UDP NETWORK OSPF BGP EGP TRANSMISSION IP INTERFACES ICMP ARP... 82
LISTA DE MIBs PARA UMA LISTA MAIS RECENTE VER: http://www.simpleweb.org/ietf/rfcs/rfcbytopic.html LEGEND: S = STANDARD D = DRAFT STANDARD P = PROPOSED STANDARD I = INFORMATIONAL E = EXPERIMENTAL 83
MIBs ESPECIFICAS DE HARDWARE Title RFC STATUS Host Resources MIB 2790 D Entity MIB 2737 P Job Monitoring MIB 2707 I Printer 1759 P Modem 1696 P Parallel printer-like Hardware 1660 D RS-232-like Hardware 1659 D Character Stream Devices 1658 D UPS 1628 P 84
MIBs DE TRANSMISSÃO Title RFC STATUS UNI/NNI Multilink Frame Relay function 3020 P Frame Relay/ATM PVC Service Interworking Function 2955 P Frame Relay Service 2954 P Inverted Stack Table Extension to the Interfaces Group 2864 P Interfaces Group 2863 D Fabric Element in Fibre Channel Standard 2837 P NBMA Next Hop Resolution Protocol (NHRP) 2677 P Bridges with Traffic Classes, Multicast Filtering and Virtual LAN Extensions 2674 P Radio Frequency MIB for MCNS/DOCSIS compliant RF interfaces 2670 P Cable Device MIB for DOCSIS compliant Cable Modems and Cable Modem Termination Systems 2669 P IEEE 802.3 Medium Attachment Units (MAUs) 2668 P Object Identifiers for Identifying Ethernet Chip Sets 2666 I 85
MIBs DE TRANSMISSÃO - 2 Title RFC STATUS Ethernet-like Interface Types 2665 P ADSL Lines 2662 P SONET/SDH Interface Type 2558 P ATM Management 2515 P Textual Conventions and OBJECT-IDENTITIES for ATM Management 2514 P DS3/E3 Interface Type 2496 P DS1, E1, DS2 and E2 Interface Types 2495 P DS0 and DS0 Bundle Interface Type 2494 P Classical IP and ARP Over ATM (IPOA) 2320 P IEEE 802.12 Repeater Devices 2266 P Dial Control 2128 P ISDN 2127 P Frame Relay DTEs 2115 D 86
MIBs DE TRANSMISSÃO - 3 Title RFC STATUS IEEE 802.3 Repeater Devices 2108 P Data Link Switching 2024 P IEEE 802.12 Interfaces 2020 P IEEE 802.5 Station Source Routing 1749 P IEEE 802.5 1748 D SMDS 1694 D Source Routing Bridges 1525 P FDDI 1512 P Bridges 1493 D Bridge Network Control Protocol of PPP 1474 P IP Network Control Protocol of PPP 1473 P Security Protocols of PPP 1472 P Link Control Protocol of PPP 1471 P 87
MIBs DE TRANSMISSÃO - 4 Title RFC STATUS Multiprotocol Interconnect over X.25 1461 P X.25 Packet Layer 1382 P X.25 LAPB 1381 P 88
MIBs DA NETWORK LAYER Title RFC STATUS IPv6 MIB for The Multicast Listener Discovery Protocol 3019 P Protocol Independent Multicast MIB for IPv4 2934 E Internet Group Management Protocol MIB 2933 P IPv4 Multicast Routing MIB 2932 P Textual Conventions for Internet Network Addresses 2851 P Definitions of MO for the Virtual Router Redundancy Protocol 2787 P IP Tunnel MIB 2667 P MIB for IPv6: ICMPv6 Group 2466 P MIB for IPv6: Textual Conventions and General Group 2465 P Definitions of MO for Multicast over UNI 3.0/3.1 based ATM Networks 2417 P Integrated Services - Guaranteed Service Ext. 2214 P Integrated Services 2213 P RSVP 2206 P 89
MIBs DA NETWORK LAYER Title RFC STATUS IP Forwarding Table 2096 P IP MIB 2011 P IP Mobility Support 2006 P OSPF Version 2 1850 D RIP Version 2 MIB Extension 1724 D BGP Version 4 1657 D Identification MIB 1414 P BGP Version 3 1269 P MIB-II 1213 S 90
MIBs DA TRANSPORT LAYER Title RFC STATUS Real-Time Transport Protocol 2959 P IP Version 6 MIB for the User Datagram Protocol 2454 P IP Version 6 MIB for the Transmission Control Protocol 2452 P User Datagram Protocol (UDP) 2013 P Transmission Control Protocol (TCP) 2012 P 91
MIBs DA APPLICATION LAYER Title RFC STATUS MIB for the PINT Services Architecture 3055 P Mail Monitoring MIB 2789 P Network Services Monitoring 2788 P RADIUS Accounting Server MIB 2621 I RADIUS Accounting Client MIB 2620 I RADIUS Authentication Server MIB 2619 P RADIUS Authentication Client MIB 2618 P Directory Server Monitoring MIB 2605 P Definitions of Managed Objects for WWW Services 2594 P Application Management MIB 2564 P Definitions of System-Level Managed Objects for Applications 2287 P SNMPv2 MIB 1907 P RDBMS MIB 1697 P 92
MIBs DA APPLICATION LAYER Title RFC STATUS DNS Resolver MIB Extensions 1612 P DNS Server MIB Extensions 1611 P 93
MIBs PARA MEDIDA E MONITORIZAÇÃO REMOTA Title RFC STATUS Remote Network Monitoring (RMON) MIB 2819 S Traffic Flow Measurement: Meter MIB 2720 P RMON MIB Extensions for Switched Networks Version 1.0 2613 P RMON Version 2 2021 P Token Ring extensions to RMON 1513 P 94
MIBs PARA GESTÃO DISTRIBUIDA Title RFC STATUS Notification Log MIB 3014 P Expression MIB 2982 P Event MIB 2981 P Remote Ping, Traceroute, and Lookup Operations 2925 P Delegation of Management Scripts 2592 P Scheduling Management Operations 2591 P 95
MIBs ESPECIFICAS DE VENDEDORES Title RFC STATUS APPN/HPR in IP Networks 2584 P TN3270E Response Time Collection 2562 P TN3270E 2561 P Extended Border Node 2457 P APPN TRAPS 2456 P APPN 2455 P HPN 2238 P DLUR 2232 P APPC 2051 P TCP/IPX Connection 1792 E SNA Data Link Control (SDLC) 1747 P Appletalk 1742 P SNA NAUs 1666 P DECNET Phase IV 1559 D 96
MIBs MISCELÂNIA Title RFC STATUS Common Open Policy Service (COPS) Protocol Clients 2940 P Physical Topology 2922 I Service Level Agreements Performance Monitoring 2758 E Definitions of Managed Objects for Extensible SNMP Agents 2742 P Collection and Storage of Accounting Information for CO Networks 2513 P Accounting Information for ATM Networks 2512 P Textual Conventions for MIB Modules Using Performance History Based on 15 Minute Intervals 2493 P Techniques for managing asynchronously generated alerts 1224 E 97
NOMEAÇÃO DAS MIBs root ccitt (0) iso (1) joint-iso-ccitt (2) stnd (0) reg-auth (1) mb (2) org (3) dod (6) internet (1) directory (1) mngt (2) experimental (3) private (4) security (5) snmpv2 (6) mib-2 (1) system (1) interfaces (2)... transmission (10) snmp (11) ospf (14) bgp (15)...... ethernet (6) token ring (9) fddi (15) adsl (94)... 98
RELAÇÃO ENTRE MIBs - 1 INTERFACE STATISTICS IP, TCP & UDP STATISTICS SNMP STATISTICS HOST JOB COUNTS HOST FILE SYSTEM INFORMATION MIB-II HOST REPEATER BRIDGE RMON x x x x x LINK TESTING x x NETWORK TRAFFIC STATISTICS x x x TABLE WITH ALL MAC ADDRESSES x x STATISTICS PER HOST x x 99
RELAÇÃO ENTRE MIBs - 2 MIB-II HOST REPEATER BRIDGE RMON HISTORICAL STATISTICS SPANNING TREE PERFORMANCE WIDE AREA LINK PERFORMANCE TRESHOLDS FOR ANY VARIABLE CONFIGURABLE STATISTICS TRAFFIC MATRIX WITH ALL NODES HOST TOP N INFORMATION PACKET / PROTOCOL ANALYSIS DISTRIBUTED LOGGING x x x x x x x x x 100
MIB-II DEFINE AS VARIÁVEIS PARA GERIR A PILHA DE PROTOCOLOS TCP/IP 170 VARIÁVEIS RFC 1213 SMIv1 MELHORIAS DA MIB-I RFC 1156 Copyright 2001 by Aiko Pras These sheets may be used for educational purposes 101
CRITÉRIOS DE DESENHO ESSENCIAL PARA A GESTÃO DE FALHAS OU CONFIGURAÇÃO APENAS OBJECTOS DE CONTROLO FRACOS PEQUENO NÚMEROS DE OBJECTOS EVITAR REDUNDÂNCIA EVIDÊNCIA DE UTILIDADE NÃO PERTURBAR A OPERAÇÃO NORMAL SEM PORMENORES ESPECÍFICOS DE IMPLEMENTAÇÃO 102
ESTRUTURA MIB-II SYSTEM (1) AT (3) ICMP (5) UDP (7) TRANSMISSION (10) INTERFACES (2) IP (4) TCP (6) EGP (8) SNMP (11) 103
SNMP GRUPOS DA MIB-II NA PILHA DE PROTOCOLOS SYSTEM TCP UDP IP ICMP EGP AT INTERFACES TRANSMISSION 104
NOVAS VERSÕES SYSTEM GROUP => SNMPv2 MIB (RFC 1907) INTERFACES (IF) GROUP => IF-MIB (RFC 2863) ADDRESS TRANSLATION (AT) GROUP => DEPRECATED IP & ICMP GROUPS => IP-MIB (RFC 2011) TCP GROUP => TCP-MIB (RFC 2012) UDP GROUP => UDP-MIB (RFC 2013) EGP GROUP => OUTDATED (BGP) TRANSMISSION GROUP => IS PLACEHOLDER SNMP GROUP => SNMPv2 MIB (RFC 1907) 105
ADDRESS TRANSLATION GROUP at (3) attable (1) DEPRECATED STATUS 106
atifindex atphysaddress attable atnetaddress 1 2 aa.bb.cc.dd ee.ff.gg.hh n ww.xx.yy.zz 107
EGP GROUP EGP (8) egpinmsgs (1) egpinerrors (2) egpoutmsgs (3) egpouterrors (4) egpneightable (5) egpas (6) 108
TRANSMISSION GROUP transmission (10) 802.4 (8) 802.5 (9) FDDI (15) DS1/E1 (18) RS-232 (33) X.25 (38) LAPD (16) DS3/E3 (30) Par.Printer (34) SONET (39) 109
MIB SNMPv2 RFC 1907 STANDARD PROPOSTO GRUPO SYSTEM GRUPO SNMP SNMP MIBObjects GROUP snmptrap snmptraps snmpset (snmpsetserialno) Copyright 2001 by Aiko Pras These sheets may be used for educational purposes 110
GRUPO SYSTEM system (1) sysdescr (1) sysuptime (3) sysname (5) sysservices (7) sysortable (9) sysobjectid (2) syscontact (4) syslocation (6) sysorlastchange (8) 111
GRUPO ORIGINAL SYSTEM (MIB-II) system (1) sysdescr (1) sysuptime (3) sysname (5) sysservices (7) sysobjectid (2) syscontact (4) syslocation (6) 112
sysservices 0 x 0 0 x x x x physical layer (e.g. repeaters) data-link layer (e.g. bridges) internet layer (e.g. IP routers) end-to-end (e.g. IP Hosts) application (e.g. nfs-servers) 113
EXEMPLO sysdescr: sysobjectid: sysuptime: syscontact: sysname: syslocation: sysservices: "Cisco Gateway" 1.3.6.1.4.1.9.1.1 37153422 (4 days, 7 h, 12 min, 14.22 s) "helpdesk@cs.utwente.nl" "utic01.cs.utwente.nl" "near logica meeting room" 6 (bridge and router functions) 114
PROTOCOLO SNMP MANAGER SNMP MESSAGES AGENT MIB UDP UDP IP IP LINK LINK 149
RESUMO DOS PDUs manager get agent MIB manager getnext agent MIB response response manager set agent MIB manager agent trap response 150
ESTRUTURA DA MENSAGEM & PDU variable bindings: NAME 1 VALUE 1 NAME 2 VALUE 2 NAME n VALUE n SNMP PDU: REQUEST ID PDU TYPE * ERROR VARIABLE BINDINGS STATUS ERROR INDEX SNMP message: VERSION COMMUNITY SNMP PDU 151
CONTROLO DOS AGENTES SOBRE OS GESTORES 1. Serviço de autenticação: O agente pode desejar limitar o acesso à MIB apenas a estações de gestão autorizadas. 2. Política de acessos: O agente pode querer dar diferentes privilégios de acesso a estações de gestão diferentes. 3. Serviço por procuração: Um agente pode actuar em beneficio de outras estações a gerir. Isso pode envolver a implementação dum serviço de autenticação e/ou uma política de acessos aos outros sistemas a gerir. 152
POLITICA DE ACESSO SNMP Tipo de acesso definido na MIB Modo de acesso SNMP READ-ONLY READ-WRITE read-only get e trap get e trap read-write get e trap get, set e trap write-only get e trap get, set e trap not-accessible indisponível indisponível 153
POLITICA DE ACESSO SNMP SNMP access policy SNMP community (community name) SNMP community profile SNMP agent Set of SNMP managers SNMP MIB view SNMP access mode 154
RFC1157- DEFINIÇÕES SNMP RFC1157-SNMP DEFINITIONS ::= BEGIN IMPORTS ObjectName, ObjectSyntax, NetworkAddress, IpAddress, TimeTicks FROM RFC1155-SMI; -- top-level message Message ::= SEQUENCE { version -- version-1 for this RFC INTEGER { version-1(0) }, community -- community name OCTET STRING, data -- e.g., PDUs if trivial authentication is being used ANY } 155
RFC1157- DEFINIÇÕES SNMP -- protocol data units PDUs ::= CHOICE { get-request GetRequest-PDU, get-next-request GetNextRequest-PDU, get-response GetResponse-PDU, set-request SetRequest-PDU, trap Trap-PDU } -- PDUs GetRequest-PDU ::= [0] IMPLICIT PDU GetNextRequest-PDU ::= [1] IMPLICIT PDU GetResponse-PDU ::= [2] IMPLICIT PDU SetRequest-PDU ::= [3] IMPLICIT PDU 156
RFC1157- DEFINIÇÕES SNMP PDU ::= SEQUENCE { request-id INTEGER, error-status -- sometimes ignored INTEGER { noerror(0), toobig(1), nosuchname(2), badvalue(3), readonly(4), generr(5) }, error-index -- sometimes ignored INTEGER, variable-bindings -- values are sometimes ignored VarBindList } 157
RFC1157- DEFINIÇÕES SNMP Trap-PDU ::= [4] IMPLICIT SEQUENCE { enterprise -- type of object generating trap OBJECT IDENTIFIER, agent-addr -- address of object generating NetworkAddress, -- trap generic-trap -- generic trap type INTEGER { coldstart(0), warmstart(1), linkdown(2), linkup(3), authenticationfailure(4), egpneighborloss(5), enterprisespecific(6) }, specific-trap -- specific code, present even } -- variable bindings VarBind ::= SEQUENCE { name value } VarBindList ::= SEQUENCE OF VarBind END time-stamp INTEGER, -- if generic-trap is not enterprisespecific -- time elapsed between the last TimeTicks, -- (re)initialization of the network entity and -- the generation of the trap variable-bindings -- "interesting" information VarBindList ObjectName, ObjectSyntax 158
GET manager get agent MIB response PARA PEDIR O VALOR DE UMA OU MAIS VARIÁVEIS ERROS POSSÍVEIS: nosuchname O objecto não existe / O objecto não é uma folha toobig O resultado não cabe num PDU response generr Todas as outras causas 159
EXEMPLO - MIB 1 address (1) info (2) route-table (3) 130.89.16.2 name (1) uptime (2) route-entry (1) printer-1 123456 dest(1) policy(2) next(3) 2 1 2 2 3 1 3 1 5 7 9 5 5 7 1 2 1 2 3 2 8 8 1 3 3 9 1 2 160
EXEMPLOS - GET get(1.1.0) response(1.1.0 => 130.89.16.2) get(1.2.0) response(error-status = nosuchname) get(1.1) response(error-status = nosuchname) get(1.1.0; 1.2.2.0) response(1.1.0 => 130.89.16.2; 1.2.2.0 => 123456) get(1.3.1.3.5.1) response(1.3.1.3.5.1 => 2) get(1.3.1.1.5.1) response(1.3.1.1.5.1 => 5) get(1.3.1.1.5.1, 1.3.1.2.5.1, 1.3.1.3.5.1) response(1.3.1.1.5.1 => 5, 1.3.1.2.5.1 => 1, 1.3.1.3.5.1 => 2) 161
SET manager set agent MIB response PARA ATRIBUIR UM VALOR A UMA INSTÂNCIA DUM OBJECTO PARA CRIAR NOVAS INSTÂNCIAS TABLE ROWS O SET REQUEST É ATÓMICO ERROS POSSIVEIS : nosuchname badvalue toobig generr 162
EXEMPLOS - SET set(1.2.1.0 => my-printer) response(noerror; 1.2.1.0 => my-printer) set(1.2.1.0 => my-printer, 1.2.3.0 => 0) response(error-status = nosuchname; error-index = 2) DEVIDO AO SET SER ATÓMICO A INSTÂNCIA DO OBJECTO 1.2.1.0 NÃO É AFECTADO 163
GET-NEXT manager getnext agent MIB response OBTÉM O NOME DA INSTÂNCIA E O VALOR DO PRÓXIMO (NEXT) ELEMENTO DA MIB PARA DESCOBRIR ESTRUTURAS DA MIB PARA OBTER LINHAS DUMA TABELA ERROS POSSÍVEIS : nosuchname (= FIM DA MIB) toobig generr 164
EXEMPLOS - GET-NEXT getnext(1) response(1.1.0 => 130.89.16.2) getnext(1.1.0) response(1.2.1.0 => printer-1) getnext(1.2.1.0) response(1.2.2.0 => 123456) getnext(1.3.1.3.5.1) response(1.3.1.3.5.2 => 3) getnext(1.3.1.1; 1.3.1.2; 1.3.1.3) response(1.3.1.1.2.1 => 2; 1.3.1.2.2.1 => 1; 1.3.1.3.2.1 => 2) getnext(1.3.1.1.2.1; 1.3.1.2.2.1; 1.3.1.3.2.1) response(1.3.1.1.3.1 => 3; 1.3.1.2.3.1 => 1; 1.3.1.3.3.1 => 3) 165
EXEMPLO DE ACESSO A UMA TABELA iproutedest iproutemetric1 iproutenexthop 9.1.2.3 3 99.0.0.3 10.0.0.51 5 89.1.1.42 10.0.0.99 5 89.1.1.42 iproutetable 1.3.6.1.2.1.4.21 iprouteentry 1.3.6.1.2.1.4.21.1 = x iproutedest x.1 iproutemetric1 x.3 iproutenexthop x.7 iproutedest.9.1.2.3 x.1.9.1.2.3 iproutedest.10.0.0.51 x.1.10.0.0.51 iproutedest.10.0.0.99 x.1.10.0.0.99 iproutemetric1.9.1.2.3 x.3.9.1.2.3 iproutemetric1.10.0.0.51 x.3.10.0.0.51 iproutemetric1.10.0.0.99 x.3.10.0.0.99 iproutenexthop.9.1.2.3 x.7.9.1.2.3 iproutenexthop.10.0.0.51 x.7.10.0.0.51 iproutenexthop.10.0.0.99 x.7.10.0.0.99 166
EXEMPLO DE ACESSO A UMA TABELA getnext(iproutedest, iproutmetric1, iproutenexthop) ou seja getnext(1.3.6.1.2.1.4.21.1.1, 1.3.6.1.2.1.4.21.1.3, 1.3.6.1.2.1.4.21.1.7) a resposta do agente deverá ser: response((iproutedest.9.1.2.3 = 9.1.2.3), (iproutemetric1.9.1.2.3 = 3), (iproutenexthop.9.1.2.3 = 99.0.0.3)) O gestor poderá guardar estes valores e ir buscar a segunda linha através da seguinte forma: getnext(iproutedest.9.1.2.3, iproutmetric1.9.1.2.3, iproutenexthop.9.1.2.3) o agente responde: response((iproutedest.10.0.0.51 = 10.0.051), (iproutemetric1.10.0.0.51 = 5), (iproutenexthop.10.0.0.51 = 89.1.1.42)) e, a seguir: getnext(iproutedest.10.0.0.51, iproutmetric1.10.0.0.51, iproutenexthop.10.0.0.51) response((iproutedest.10.0.0.99 = 10.0.0.99), (iproutemetric1.10.0.0.99 = 5), (iproutenexthop.10.0.0.99 = 89.1.1.42)) Como o gestor não sabe a dimensão da tabela irá pedir a próxima linha: getnext(iproutedest.10.0.0.99, iproutmetric1.10.0.0.99, iproutenexthop.10.0.0.99) o agente responde com os objectos que, lexicograficamente, se seguem na VISTA ("view ) da MIB: response((iproutemetric1.9.1.2.3 = 9.1.2.3), (iproutenexthop.9.1.2.3 = 3), (ipnettomediaifindex.1.3 = 1)) 167
ORDENAÇÃO LEXICOGRÁFICA UMA MIB PODE SER CONSIDERADA COMO UMA LISTA ORDENADA INSTANCE ID INSTANCE VALUE 1.1.0 130.89.16.2 1.2.1.0 printer-1 1.2.2.0 123456 1.3.1.1.2.1 2 1.3.1.1.3.1 3 1.3.1.1.5.1 5...... 1.3.1.1.9.1 9 1.3.1.2.2.1 1 1.3.1.2.3.1 1...... 1.3.1.2.9.1 1 1.3.1.3.2.1 2...... 168
TRAP manager agent trap PARA SINALIZAR UM EVENTO A RECEPÇÃO DUM TRAP NÃO É CONFIRMADA (NÃO FIÁVEL) O POLLING CONTINUA NECESSÁRIO OS AGENTES PODEM SER CONFIGURADOS DE FORMA A QUE: NÃO SEJAM TRANSMITIDOS TRAPs OS TRAPs SEJAM TRANSMITIDOS APENAS PARA CERTOS GESTORES 169
TRAPs DEFINIDOS COLDSTART WARMSTART LINKDOWN LINKUP AUTHENTICATION FAILURE EGPNEIGHBOURLOSS ENTERPRISESPECIFICTRAP 170
FORMATO DO TRAP-PDU ENTERPRISE AGENT-ADDRESS GENERIC-TRAP SPECIFIC-TRAP TIME-STAMP VARIABLE-BINDINGS 171
CODIFICAÇÃO DA MENSAGEM SNMP MANAGER ABSTRACT SYNTAX AGENT MIB BER TRANSFER SYNTAX BER UDP UDP IP IP LINK LINK A DESCRIÇÃO DAS MIBs E DO FORMATO DAS MENSAGENS É BASEADO NA SINTAXE DO ASN.1 A CONVERSÃO DA SINTAXE ABSTRACTA PARA A SINTAXE DE TRANSFERÊNCIA É DEFINIDA PELO BASIC ENCODING RULES (BER) 173
BASIC ENCODING RULES CADA VALOR ASN.1 É CODIFICADO COMO UMA OCTET STRING ESTA CODIFICAÇÃO RESULTA NUMA SEQUÊNCIA DE ESTRUTURAS TAG, LENGTH, VALUE (TLV) QUE PODEM TER DIMENSÃO VARIÁVEL tag length value para a rede octeto 8 7 6 5 4 3 2 1 174
CAMPO TAG f primitive (=simple) / constructed (=structured) 0 0 = universal tag 0 1 = application-wide tag 1 0 = (context specific tag) 1 1 = (private tag) Universal tags Application-wide tags BIT PATTERN ASN.1 TYPE BIT PATTERN APPLICATION TYPE 00 0 0 0010 INTEGER 01 0 0 0000 IpAddress 00 0 0 0100 OCTET STRING 01 0 0 0001 Counter32 00 0 0 0110 OBJECT IDENTIFIER 01 0 0 0010 Gauge32 01 0 0 0010 Unsigned32 01 0 0 0011 TimeTicks 01 0 0 0100 Opaque 01 0 0 0110 Counter64 175
EXPANSÃO DO CAMPO TAG class f 1 1 1 1 1 1... 1 0 8 7 6 5 4 3 2 1 8 8 8 176
CLASSES DEFINIDAS NO ASN.1 ASN.1 define 4 classes de tipos: Universal: tipos independentes das aplicações Application-wide: específicos duma aplicação e utilizada por outras normas OSI Context-specific: específicos duma determinada aplicação num determinado contexto Private-use: não definido pela norma ASN.1 177
TIPOS DA CLASSE UNIVERSAL DO ASN.1 (SMIv1) OSI ASN.1 Universal Class Tag ASN.1 Type Internet Universal Class Tag 1 BOOLEAN 2 INTEGER 2 3 BIT STRING 4 OCTET STRING 4 5 NULL 5 6 OBJECT IDENTIFIER 6 7 ObjectDescriptor 8 EXTERNAL 9 REAL 10 ENUMERATED 11 ENCRYPTED 12-15 Reserved for future use 16 SEQUENCE, SEQUENCE OF 17 SET, SET OF 18 NumericString 19 PrintableString 20 TeletexString 21 VideotextString 22 IA5String 23 UTCTime 24 GeneralizedType 25 GraphicsString 26 VisableString 27 GeneralString 28 CharacterString 29 Reserved for future use 16 178
CAMPO LENGTH (COMPRIMENTO) SHORT FORM: 0 LONG FORM: 1 n n (1 n 2) 179
EXEMPLO: INTEIRO 100 00 0 2 1 0 1 1 0 0 1 0 0 class f number length contents (100) Os inteiros são representados no formato complemento para 2 180
EXEMPLO: OCTET STRING IST 00 0 4 3 class f number length 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 "I" "S" "T" 181
EXEMPLO: NULL 00 0 5 0 class f number length 182
EXEMPLO: OID 1.0.8571.5.1 00 0 6 5 0 0 1 0 1 0 0 0 class f number length 40x1+0 1 1 0 0 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0 1 8571 5 0 0 0 0 0 0 0 1 1 183
SEQUENCE 00 1 16 n class f number length ObjectName tag ObjectName length ObjectName contents ObjectValue tag ObjectValue length ObjectValue contents 184
SEQUENCE OF 00 1 16 n class f number length OtherType tag OtherType length ObjectType contents n octets 185
EXEMPLO DUMA MENSAGEM SNMP Message ::= SEQUENCE { version -- version-1 for this RFC INTEGER {version-1(0)}, community -- community name OCTET STRING, GetResponse-PDU ::= [2] IMPLICIT PDU SEQUENCE { request-id INTEGER, error-status -- sometimes ignored INTEGER { noerror(0), toobig(1), nosuchname(2), badvalue(3), readonly(4), generr(5) }, } } error-index -- sometimes ignored INTEGER, variable-bindings::= SEQUENCE OF SEQUENCE { name } value ObjectName, ObjectSyntax 186
EXEMPLO DUMA MENSAGEM SNMP 1 Message ::= 2 { { 30 2a 3 version version-1, 0, 02 01 00 4 community "public" "public" 04 06 70 75 62 6c 69 63 5 data { 6 get-response { [2] { a2 1d 7 request-id 17, 17, 02 01 11 8 error-status noerror, 0, 02 01 00 9 error-index 0, 0, 02 01 00 10 variable-bindings { { 30 12 11 { { 30 10 12 name 1.3.6.1.2.1.1.1.1.0, 1.3.6.1.2.1.1.1.1.0 06 09 2b 06 01 02 01 01 01 01 00 13 value { 14 simple { 15 string "IST" "IST" 04 03 49 53 54 16 } } 17 } } 18 } } 19 } } 20 } 21 } 22 } 187
SNMPv2 RESUMO: LIMITAÇÕES DO SNMPv1 HISTÓRIA DO SNMPv2 HIERARQUIAS SEGURANÇA OPERAÇÕES DO PROTOCOLO SNMPv2 INDEPENDÊNCIA DO TRANSPORTE RFCs Copyright 2001 by Aiko Pras These sheets may be used for educational purposes 188
LIMITAÇÕES DO SNMPv1 REGRAS NÃO DOCUMENTADAS CÓDIGOS DE ERRO LIMITADOS TIPOS DE DADOS LIMITADOS NOTIFICAÇÕES LIMITADAS EFICIÊNCIA LIMITADA DEPENDÊNCIA DO TRANSPORTE FALTA DE HIERARQUIA FALTA DE SEGURANÇA 189
full standard HISTÓRIA DO SNMPv2 proposed standard proposed standard V2Usec V2*... draft standard draft standard full standard SNMP/SMI v1 SNMP security SMP SMIv2 SNMPv2 parties community SNMPv3 DISMAN 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 190
HIERARQUIAS: IDEIA ORIGINAL MANAGER TO MANAGER (M2M) MIB M inform command M poll M A A A A A APROXIMAÇÃO ATRAVÉS DE MIBs NORMALIZADA FUNCIONALIDADE LIMITADA COMPORTAMENTO EM RUN-TIME DEVE SER DEFINIDA QUANDO DA IMPLEMENTAÇÃO 191
HIERARQUIAS: ESTADO O TRABALHO MUDOU PARA UM GRUPO SEPARADO: DISTRIBUTED MANAGEMENT GROUP (DISMAN) FORAM NORMALIZADAS TRÊS APROXIMAÇÕES: BASEADA EM MIB (EXPRESSÃO, EVENTOS E NOTIFICAÇÃO LOG MIB) BASEADA EM SCRIPTs (SCRIPT E SCHEDULE MIB) BASEADO EM OPERAÇÕES REMOTAS (REMOPS MIB) 192
SEGURANÇA NO SNMPv2: QUE ACONTECEU? ABRIL 1993: PROPOSTA DE NORMA QUATRO EDITORES SEGURANÇA BASEADA EM PARTIES PRIMEIROS PROTÓTIPOS A APARECEREM BREVEMENTE JUNHO 1995: NORMA PROPOSTA REJEITADA POR DOIS DOS EDITORES ORIGINAIS! AGOSTO 1995: ACORDO GERAL DE QUE O MODELO BASEADO EM PARTIES ERA DEMASIADO COMPLEXO! APARECERAM MUITAS NOVAS PROPOSTAS: SNMPv2C: BASEADO EM COMUNIDADES SNMPv2U: BASEADO EM UTILIZADORES... 1997: NOVO GRUPO DE TRABALHO SNMPv3 ERA FORMADO COM NOVOS EDITORES 193
OPERAÇÕES DO PROTOCOLO SNMPv2V get MIB set MIB response response manager agent manager agent getnext MIB trap response MIB manager agent manager agent getbulk MIB inform response response MIB manager agent manager "agent" 194
GET manager get agent MIB response SEMELHANTE AO DO SNMPv1, EXCEPTO PARA AS "EXCEPTIONS" EXCEPÇÕES POSSÍVEIS: nosuchobject nosuchinstance EXCEPÇÕES SÃO CODIFICADAS NOS VARBINDS EXCEPÇÕES NÃO DÃO ORIGEM A INDICAÇÕES DE ERRO E DE ÍNDICE DE ERRO 195
EXEMPLOS GET get(1) response(error-status => noerror, 1.2 => nosuchobject) get(1.1) response(error-status => noerror, 1.2.0 => nosuchinstance) get(1.1.9) response(error-status => noerror, 1.2.0 => nosuchinstance) get(1.2) response(error-status => noerror, 1.4.0 => nosuchobject) get(1.4.0) response(error-status => noerror, 1.4.0 => nosuchobject) get(1.1.0, 1.4.0) response(error-status => noerror, 1.1.0 => 130.89.16.2, 1.4.0 => nosuchobject) 196
GET-NEXT manager getnext agent MIB response SEMELHANTE AO SNMPv1, EXCEPTO NAS "EXCEPÇÕES" POSSÍVEIS EXCEPÇÕES: endofmibview EXEMPLO getnext(1.4.0) response(error-status => noerror, 1.4.0 => endofmibview) 197
GET-BULK manager getbulk agent MIB response NOVO NO SNMPv2 PARA OBTER UM GRANDE NÚMERO DE VARBINDS AUMENTA A EFICIÊNCIA! 198
EFICIÊNCIA DO GETBULK 3300 2910 Source: Steve Waldbusser, Carnegie-Mellon University Figures based on original (party based) SNMPv2 v1 v2 1600 210 195 110 SEM SEGURANÇA COM AUTENTICAÇÃO COM ENCRIPTAÇÃO 199
GET-BULK O PEDIDO getbulk TEM DOIS PARÂMETROS ADICIONAIS: non-repeators max-repetitions OS PRIMEIROS N ELEMENTOS (non-repeators) DA LISTA DE VARBIND SÃO TRATADOS COMO SE A OPERAÇÃO FOSSE UM getnext NORMAL OS PRÓXIMOS ELEMENTOS DA LISTA DE VARBIND SÃO TRATADOS COMO SE A OPERAÇÃO CONSISTISSE NUM NÚMERO (max-repetitions) DE OPERAÇÕES getnext REPETIDAS 200
GET-BULK REQUEST(non-repeaters = N; max-repetitions = M; VariableBinding-1;... ; VariableBinding-N; VariableBinding-(N+1);... ; VariableBinding-(N+R) ) N-TIMES RESPONSE( VariableBinding-1;... ; VariableBinding-N; VariableBinding-(N+1);... ; VariableBinding-(N+R) 1 st LEXICOGRAPHICAL SUCCESSOR 2 nd LEXICOGRAPHICAL SUCCESSOR 3 th LEXICOGRAPHICAL SUCCESSOR VariableBinding-(N+1);... ; VariableBinding-(N+R) VariableBinding-(N+1);... ; VariableBinding-(N+R)... M-TIMES ) M th LEXICOGRAPHICAL SUCCESSOR VariableBinding-(N+1);... ; VariableBinding-(N+R) 201
EXEMPLO GET-BULK getbulk(max-repetitions = 4; 1.1) response( 1.1.0 => 130.89.16.2 1.2.1.0 => printer-1 1.2.2.0 => 123456 1.3.1.1.2.1 => 2 ) getbulk(max-repetitions = 3; 1.3.1.1; 1.3.1.2; 1.3.1.3) response( 1.3.1.1.2.1 => 2; 1.3.1.2.2.1 => 1; 1.3.1.3.2.1 => 2 1.3.1.1.3.1 => 3; 1.3.1.2.3.1 => 1; 1.3.1.3.3.1 => 3 1.3.1.1.5.1 => 5; 1.3.1.2.5.1 => 1; 1.3.1.3.5.1 => 2 ) 202
SET manager set agent MIB response SEMELHANTE AO SNMPv1 CONCEPTUALMENTE POSSUI UM COMMIT EM DUAS FASES: FASE 1: REALIZA VÁRIOS TESTES FASE 2: REALIZA A ACTUALIZAÇÃO PODEM SER DEFINIDOS MUITOS NOVOS CÓDIGOS DE ERROS 203
NOVOS CÓDIGOS DE ERRO PARA O SET SNMPv1 SNMPv2 FASE 1: badvalue badvalue badvalue badvalue badvalue nosuchname nosuchname nosuchname nosuchname generr generr wrongvalue wrongencoding wrongtype wronglength inconsistentvalue noaccess notwritable nocreation inconsistentname resourceunavailable generr FASE 2: generr generr CommitFailed undofailed 204
TRAP manager agent trap MIB SNMPv1: COLD START WARM START LINK DOWN LINK UP AUTHETICATION FAILURE EGP NEIGHBOR LOSS SNMPv2: MIBs PODEM INCLUIR AGORA MACROS DO TIPO NOTIFICAÇÃO PRIMEIROS DOIS VARBINDS: sysuptime E snmptrapoid USA O MESMO FORMATO QUE OS OUTROS PDUs 205
EXEMPLO DE MACRO DO TIPO NOTIFICAÇÃO linkup OBJECTS STATUS DESCRIPTION ::= {snmptraps 4} NOTIFICATION-TYPE {ifindex} current "A linkup trap signifies that the entity has detected that the ifoperstatus object has changed to Up" 206
INFORM manager "agent" inform MIB Response TRAP CONFIRMADO ORIGINALMENTE PARA INFORMAR UM GESTOR DE MAIS ALTO NÍVEL MESMO FORMATO DO PDU TRAP ERRO POSSÍVEL: toobig 207
REPORT manager agent report NOVO PDU PARA SINALIZAR EXCEPÇÕES/ ERROS DO PROTOCOLO NÃO TEM SEMÂNTICA DEFINIDA EM SNMPv2 208
DEPENDÊNCIA DO TRANSPORTE SNMPv1: UDP SNMPv2: UDP CLNS (OSI) DDP (APPLETALK) IPX 209
RFCs SNMPv2 COMMUNICATION MODEL DRAFT STANDARD RFC 1905, RFC1906 SECURITY MODEL - SNMPv2C: COMMUNITY BASED SNMP SAME SECURITY MECHANISMS AS SNMPv1 EXPERIMENTAL STATUS RFC 1901 SECURITY MODEL - SNMPv2U: USER BASED SECURITY (AUTHENTICATION / ENCRYPTION / ACCESS CONTROL) EXPERIMENTAL STATUS RFC 1909, RFC1910 INFORMATION MODEL: STANDARD RFC2578, RFC2579, RFC2580 210
SNMPv2 - SUMÁRIO MODELO DE COMUNICAÇÃO MELHORADO TRAPS TÊM O MESMO FORMATO QUE OUTROS PDUs PDU GET-BULK CÓDIGOS DE ERRO ADICIONAIS PARA O SET DOIS MODELOS DE SEGURANÇA SNMPv2C: BASEADO EM COMUNIDADES SNMPv2U: BASEADO EM UTILIZADORES INDEPENDÊNCIA DA CAMADA DE TRANSPORTE MIB-II DIVIDIDA EM MÓDULOS SEGURANÇA E HIERARQUIAS PARA O SNMPv3 & DISMAN MODELO DE INFORMAÇÃO MELHORADO (SMIv2) TIPOS DE DADOS ADICIONAIS CONVENÇÕES TEXTUAIS E.G. ESTADO DA LINHA NOTIFICAÇÕES 211