2. O modelo SNMP - Universidade Federal de Campina...

Post on 07-Jul-2020

9 views 0 download

Transcript of 2. O modelo SNMP - Universidade Federal de Campina...

1

2. O modelo SNMP

Padrão para gerência na Internet ◦ simples de implementar ◦ amplamente difundido

Composto de: ◦ protocolo para trocas de mensagens ◦ padrões para estruturar a informação

Evolutivo: ◦ SNMPv1 (RFC 1157) ◦ SNMPv2 (RFC 1448), ◦ RMON (RFC 1757) ◦ RMON-II (RFC 2021), ◦ SNMP-V3 (RFC 3414)

2

3

Request

Response

Protocol

Management

information

SNMP agent

MIB

SNMP manager

MIB Alert

Armazenadas em MIBs

◦ Management Information Bases

Definidas através da SMI

◦ Structure of Management Information

Transportadas através do SNMP

◦ Single Network Management Protocol

4

Structure of Management Information

◦ Descrição lógica das informações

Composta dos seguintes elementos:

◦ Nomes dos objetos gerenciados

OIDs (Object IDentifiers)

◦ Sintaxe dos dados

ASN.1 (Abstract Syntax Notation 1)

◦ Sintaxe de transferência

BER (Basic Encoding Rules)

5

Abstract Syntax Notation One

◦ Linguagem de descrição de dados da ISO

◦ Definição em formato texto não ambíguo

◦ Permite definir modelos de dados

◦ Formato independente de máquina

◦ Implementação dos dados não é considerada

6

Tipos de dados:

◦ Primitivos

INTEGER, OCTET STRING, OBJECT IDENTIFIER, NULL

Subtipos

◦ Construtores

Listas e tabelas

◦ Definidos

Nomes alternativos para tipos ASN.1

7

Notações em ASN.1 seguem algumas convenções:

Item Convenção Exemplo

tipo inicial maiúscula DisplayString

valor inicial minúscula true

identificador inicial minúscula sysDescr

palavras-chave todas maiúsculas INTEGER

macros todas maiúsculas OBJECT-TYPE

módulos inicial maiúscula Oreilly-MIB

8

sysContact OBJECT-TYPE

SYNTAX DisplayString (SIZE (0..255))

ACCESS read-write

STATUS mandatory

DESCRIPTION

“The textual identification of the contact person for

this managed node, together with information on how

to contact this person.”

::= {system 4}

9

Nó pai Sou o 4º filho

Situação do objeto na MIB

◦ Mandatory

Devem ser implementados por todos os agentes

Valores contidos devem ser válidos

◦ Optional

Pode ou não ser implementado

◦ Deprecated

Foi substituído por novo objeto, mas ainda é válido

Se tornará obsoleto mais tarde

◦ Obsolete

Não deve ser considerado

10

Define a acessibilidade do objeto

Valores possíveis em SNMPv1:

◦ read-only

◦ read-write

◦ write-only

◦ not-accessible

11

Define o conteúdo do objeto ◦ INTEGER: inteiros de 32 bits

◦ INTEGER (1..100): subtipo inteiro

◦ OCTET STRING: string de bytes

◦ OBJECT IDENTIFIER: apontador para outro objeto na MIB

Aceita alguns tipos específicos pré-definidos:

◦ IpAddress: OCTET STRING com 4 bytes

◦ Counter: inteiro 32 bits monotônico crescente

◦ Gauge: inteiro 32 bits limitado no mínimo e no máximo

◦ TimeTicks: inteiro 32 bits (1/100 de segundo)

12

INTEGER

INTEGER (-127..128)

INTEGER (1..10)

INTEGER (0 | 2 | 4 | 6 | 8)

INTEGER (0..2 | 20)

INTEGER (-127..-1 | 1..128)

INTEGER (1)

13

Boolean ::= INTEGER

{ true (1), false (2)}

Alarm-level ::= INTEGER

{ critical (1),

major (2),

minor (3),

warning (4),

informational (10)

}

Informação em estrutura hierárquica Folhas definem a informação

Demais nós definem a estrutura

Nós são numerados para facilitar acesso

A MIB não contém os dados reais, apenas os organiza de forma adequada

14

Internet (1) Directory (1)

mgmt (2)

experimental (3)

private (4)

...

Mib-2 (1) system (1)

interfaces (2)

address translation (3)

ip (4)

...

15

iso(1).org(3).dod(6).internet(1)

1. directory

2. mgmt

3. experimental

4. private

5. security

6. snmpV2

7. mail

1. enterprises

1. system

2. interfaces

3. address translation

4. ip

5. icmp

6. tcp

7. udp

8. egp

9. oim

10. transmission

11. snmp

1. mib-2

Objeto (grupo System)

1.3.6.1.2.1.1 1. sysDescr

2. sysObjectID

3. sysUptime

4. sysContact

5. sysName

6. sysLocation

7. sysServices

Objeto (sysServices)

1.3.6.1.2.1.1.7

Nome: iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1)

OID: 1.3.6.1.2.1.1

Componentes: sysDescr (1): descrição do sistema

sysObjectID (2): OID de registro (private vendors)

sysUpTime (3): tempo de atividade (1/100 s)

sysContact (4): pessoa ou grupo responsável pelo nó

sysName (5): nome do nó na rede

sysLocation (6): localização física do nó

sysServices (7): flags indicando serviços suportados

16

Iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1).<info>.<index>

sysDescr.0 = OCTET STRING: "Image: rel/11.02 Created on Fri May 30 22:47:33 EDT 2017" sysObjectID.0 = OBJECT IDENTIFIER: “enterprises.18.3” sysUpTime.0 = Timeticks: (969692) 2:41:36 sysContact.0 = OCTET STRING: “Prof. Peter" sysName.0 = OCTET STRING: “rtBBdsc" sysLocation.0 = OCTET STRING: “UFCG, Bl. CN" sysServices.0 = INTEGER: 78 Obs. Toda folha de valor escalar é referenciada com <index> = 0

17

Código indicando nível de operação

◦ OR binário entre os valores possíveis

Bit field functionality OSI layer

0x01 physical 1

0x02 datalink/subnetwork 2

0x04 internet 3

0x08 end-to-end 4

0x10 end-to-end interface 5

0x20 appl interface 6

0x40 application 7

18

Valores escalares: uma só instância por variável

OID deve ser completado pelo index “.0”

Exemplo: ....mib-2.ip.ipForwarding: 1.3.6.1.2.1.4.1.0

Valores vetoriais: para construir listas e tabelas

usam os construtores SEQUENCE e SEQUENCE OF

Convenção de tabela: xxxTable

Convenção de linha na tabela: xxxEntry

19

tcpConnTable OBJECT-TYPE

SYNTAX SEQUENCE OF TcpConnEntry

ACCESS not-accessible

STATUS mandatory

DESCRIPTION

“A table containing TCP connection-specific information.”

::= {tcp 13}

20

tcpConnEntry OBJECT-TYPE

SYNTAX TcpConnEntry

ACCESS not-accessible

STATUS mandatory

DESCRIPTION

“Information about a particular current TCP connection.”

INDEX {

tcpConnLocalAddress, tcpConnLocalPort,

tcpConnRemAddress, tcpConnRemPort

}

::= {tcpConnTable 1}

21

INDEX: indica que elementos vão indexar as informações; no caso vai ser uma

composição de IP local || porta local || IP remoto || porta remota

TcpConnEntry ::=

SEQUENCE {

tcpConnState INTEGER,

tcpConnLocalAddress IpAddress,

tcpConnLocalPort INTEGER (0..65535),

tcpConnRemAddress IpAddress,

tcpConnRemPort INTEGER (0..65535)

}

22

iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).tcp(6)

23

tcp (6)

tcpConnTable (13)

tcpConnEntry(1)

tcpConn Status(1)

tcpConn LocalAddress (2)

tcpConn LocalPort (3)

tcpConn RemAddress (4)

tcpConn RemPort (5)

1 2 n 1 2 n 1 2 n 1 2 n 1 2 n

Basic Encoding Rules

Codificação dos dados para transferência

Usa formato TLV: Type-Length-Value Type: tipo ASN.1 e informações complementares

Length: tamanho da representação dos dados

Value: sequência de bytes contendo o valor do dado

A estrutura de codificação é recursiva

24

Ache na Internet e dê uma lida rápida nas RFCs:

1157 (SNMPv1)

1448 (SNMPv2)

1757 (RMON)

2021 (RMON-II)

◦ Em seguida faça um resumo rápido dos principais acréscimos no SNMPv2 (em relação ao SNMPv1) e no RMON-II (em relação ao RMON)

Ache na Internet a descrição da MIB-2 e da HOST MIB e elenque pelo menos 20 OIDs de cada uma que você consideraria importantes para uma gerência/ supervisão em um switch e um hospedeiro, respectivamente.

25