Introdução ao SNMP

24
SNMP Gerência de Redes Frederico Madeira LPIC-1, LPIC-2, CCNA [email protected] www.madeira.eng.br

description

Introdução ao SNMP

Transcript of Introdução ao SNMP

Page 1: Introdução ao SNMP

SNMP

Gerência de Redes

Frederico MadeiraLPIC­1, LPIC­2, [email protected]

Page 2: Introdução ao SNMP

Protocolos para Gerenciamento de Redes

➔ Internet ➔ SNMPv1, SNMPv2, SNMPv3

➔ISO/ITU-T X.700 Series: ➔CMIP/S (Common Management Information Protocol / Service)

➔ITU-T M.3000 Series:➔TMN (Telecommunication Management Networks)

Page 3: Introdução ao SNMP

Conceitos do SNMP➔ Simple Network Management Protocol (Protocolo

Simples de Gerenciamento de redes), definido na RFC1157

➔ Permite coletar informações sobre o estado dos equipamentos da rede (ou softwares de rede), possibilitando ao administrador da rede monitorar o funcionamento do sistema.

➔ Protocolo padrão para gerenciamento de redes TCP/IP (Internet)

➔ A IAB (Internet Architecture Board) recomenda que todas as implementações TCP/IP sejam gerenciáveis

➔ Todas os dispositivos de rede devem suportar SNMP

Page 4: Introdução ao SNMP

Conceitos do SNMPArquitetura do SNMP➔ Uma ou mais Estações de Gerência (Gerente),

rodando aplicações de gerência, monitoração e controle.➔ Diversos Elementos de rede (Agente) como

roteadores, switch, ou outros hosts de rede.➔ MIB – Management Information Base

➔ Coleção de objetos gerenciados➔ Essencialmente, cada objeto gerenciado é uma

variável➔ Operações de Monitoramento: leitura dos valores

dos objetos gerenciados

• Operações de Controle: alteração dos valores dos objetos gerenciados

➔ Protocolo de gerenciamento de rede, através deste, são trocadas mensagens entre os elementos de rede e a estação de gerência

Page 5: Introdução ao SNMP

Serviços SNMP

Get Request

Get ResponseGerente Agente

GetNext Request

Get ResponseGerente Agente

Set Request

Get ResponseGerente Agente

Trap RequestGerente Agente

Get

GetNext

Set

Trap

Page 6: Introdução ao SNMP

Serviços SNMP➔ Get Request:

➔ Recupera os valores dos objetos da MIB em um agente de um NE

➔ Get-Next Request:➔ Recupera os valores do próximo objeto da MIB

em um agente de um NE

➔ Set Request:➔ Atualiza os valores dos objetos da MIB em um

agente de um NE

➔ Trap Request:➔ Notifica o Gerente de um evento

extraordinário no NE

Page 7: Introdução ao SNMP

Arquitetura

Page 8: Introdução ao SNMP

Portas padrão no SNMP

Ethernet

SNMP

UDP

IP

Gerente

Estação de Gerenciamento Network Elements (NEs)

Ethernet

SNMP

UDP

IP

Agente

162 Any 161 Any

Traps SNMP

Requisições/Respostas

O SNMP usa o protocolo UDP para transporte de dados entre os gerentes e agentes

Page 9: Introdução ao SNMP

SNMP➔ SNMP utiliza o serviço de transporte sem conexão (UDP)➔Motivação:

➔ Robustez➔ em casos de haver deterioração da rede

(quando torna-se mais importante gerenciamento), perda de pacotes pode inviabilizar um serviço de transporte confiável.

➔ há vantagens em operar um protocolo sem conexão➔ havendo gerenciamento de um número

elevado de sistemas, haveria muitas “conexões” para manter, caso se utilizasse um protocolo orientado à conexão.

Page 10: Introdução ao SNMP

SNMP Community➔ O SNMP provê apenas uma primitiva com

capacidade limitada de segurança, o conceito de comunidade

➔ Uma comunidade SNMP é uma relação de autenticação e controle de acesso entre um agente e um conjunto de estações gerentes.

➔ Para o serviço de autenticação, o Nome de Comunidade funciona como um mecanismo rudimentar, onde cada mensagem trocada entre agentes e gerentes é autenticada pela inclusão do Nome de Comunidade correto

Page 11: Introdução ao SNMP

MIB➔ Management Information Base:

➔ Uma coleção de objetos definidos➔ Contem variáveis organizadas

hierarquicamente que correspondem aos objetos gerenciados

➔ Structure of Management Information (SMI):

➔ Conjunto de regras que gerenciam como os objetos devem ser definidos

➔ Objetos são definidos usando ASN.1 (Abstract Syntax Notation)

➔ Object Identifier (OID):➔ Identificador global de um tipo de objeto➔ Consiste em uma sequencia de digitos, que

especificam a posição de um objeto na árvore global do identificador de objeto

Page 12: Introdução ao SNMP

MIB

Page 13: Introdução ao SNMP

MIBOs arquivos MIB definem uma hierarquia em forma de árvore e, nela, os contadores são identificados pela sua posição e a nomenclatura para endereçamento parte da raiz, separando cada nível por pontos. São exemplos de endereços MIB:

.iso.org.dod.internet.mgmt.mib.ip.ipDefaultTTL

.iso.org.dod.internet.mgmt.mib.ip.ipInReceives

Esses endereços podem ser representados na forma numérica:

1.3.6.1.2.1.4.2

1.3.6.1.3.1.4.3

Page 14: Introdução ao SNMP

RFC 1213 : MIB - II

➔ RFC 1156 especifica o MIB-I SNMP genérica aceita como padrão.

➔ RFC 1213 especifica o MIB–II SNMP, adicionado uma série de objetos para complementar MIB-I. Atualmente MIB – II é a MIB SNMP genérica padrão.

➔ A palavra genérica é usada aqui para diferenciar das MIBs privativas de fabricantes.

➔ A RFC 1213 define 10 grupos básicos de objetos MIB – II SNMP genéricos

Page 15: Introdução ao SNMP

RFC 1213 : MIB - II➔ system (1) : implementação obrigatória em todos

os sistemas, contém variáveis que descrevem informações administrativas, tais como sysDescr (1.3.6.1.2.1.1.1), sysUpTime (1.3.6.1.2.1.1.3), sysContact (1.3.6.1.2.1.1.4) e sysName (1.3.6.1.2.1.1.5).

system (mib-2) (1)

sysDescr (1)

sysObjectId (2)

sysUpTime (3)

sysContact (4)

sysName (5)

sysLocation (6)

sysServices (7)

Var

i áve

is d

o G

rup o

Sy s

tem

Page 16: Introdução ao SNMP

RFC 1213 : MIB - II➔ interfaces (2) : de implementação obrigatória em

todos os sistemas, mantém uma lista das interfaces do sistema que suportam IP, e, para cada interface há uma tabela de estatísticas de tráfego. Exemplos : ifSpeed, ifMtu, iflnOctets, iflnErros, ifOutDiscards, etc.

ifEntry (ifTable 1)

ifIndex (1)

ifDescr (2)

ifType (3)

ifMtu (4)

ifSpeed (5)

ifPhysAddress (6)

...

interfaces (2)

ifNumber (1)

ifTable (2)

Page 17: Introdução ao SNMP

• iso.org.dod.internet.mgmt.mib-2.interfaces ...

• (ou .1.3.6.1.2.1.2.)– ... ifNumber.0 = 24– ... ifTable.ifEntry.ifDescr.1 = “utp ethernet”– ... ifTable.ifEntry.ifDescr.2 = “utp ethernet”– ... ...– ... ifTable.ifEntry.ifDescr.24 = “utp fast ethernet”– ... ifTable.ifEntry.ifPhysAddress.24 = 0:d0:9:a5:7f:cb– ... ifTable.ifEntry.ifType.24 = Fast Ethernet (100BaseT) (62)– ... ifTable.ifEntry.ifInOctets.24 = 168176112– ... ifTable.ifEntry.ifOutOctets.24 = 145859106– ... ifTable.ifEntry.ifOutErrors.24 = 15

Exemplo: Ramificação da MIB para Interfaces

Page 18: Introdução ao SNMP

RFC 1213 : MIB - II➔ address translation (3):

➔ Implementação obrigatória mas sem utilidade prática na MIB-II

➔ Originalmente definido para mapeamento de endereço IP e o endereço físico na MIB I.

➔ Dada a multiplicação de protocolos, foi definido que cada protocolo manterá sua própria tabela de mapeamento de endereços

➔ Definido na MIB-II por questões de compatibilidade com a MIB-I.

➔ ip (4): ➔ Implementação obrigatória em todos os sistemas, ➔ descreve a função do sistema (ipForwarding), mantém uma

série de estatísticas sobre IP (iplnReceives, iplnDiscards, ipForwDatagrams, ipReasmOK, ipFragCreates, etc.),

➔ contém três tabelas, uma de endereços IP das interfaces do sistema, um de roteamento (ipRouteDest, ipRoutelfndex, ipRouteMetric1, ipRouteNextHop, ipRouteProto, etc), e uma de mapeamento entre endereços IP e físicos

Page 19: Introdução ao SNMP

RFC 1213 : MIB - II➔ icmp (5):

➔ Implementação obrigatória somente em sistemas que suportam ICMP,

➔ Mantém uma série de estatísticas sobre ICMP, tais como icmplnErros, icmplnDestUnreachs, icmpOutredirects, etc.

➔ tcp (6): ➔ Implementação obrigatória somente em sistemas

que suportam TCP➔ Mantém a configuração TCP (tcpRtoAlgorithm,

tcpRtoMax, tcpAttemptFails, tcplnSegs, tcpRetransSegs, etc.), e uma tabela de conexões TCP ativas (tcpConnState, tcpConnLocalAddress, tcpConnRemPort, etc.)

Page 20: Introdução ao SNMP

RFC 1213 : MIB - II➔upd (7):

➔ Implementação obrigatória somente em sistemas que suportam UDP

➔ Mantém uma série de estáticas UDP (udplnDatagramas, udplnErros, udpOutDatagrams, etc) e uma tabela de portas UDP utilizadas por aplicações locais do sistema )udpLocalAddress, udpLocalPort).

➔ egp (8): ➔ Implementação obrigatória somente em sistemas

que suportam EGP, ➔ mantém uma série de estatísticas EGP (egplnMsgs,

egpOutErros, etc) e uma tabela de nós vizinhos e as estatísticas individuais de troca de tráfego EGP (egpNeighState, egpNeigAddr, egpNeilnErrs, egpNeiOutMsgs, egpNeighStateUps, etc.).

Page 21: Introdução ao SNMP

RFC 1213 : MIB - II➔ Transmission (9):

➔ definido para agrupar objetos referentes a gerenciamento de meios de transmissão, por exemplo, RS232, X25, Frame-Relay, etc.

➔ Snmp (10): ➔ Implementação obrigatoria para todos os sistemas

que suportam SNMP➔ Mantém uma série de estáticas sobre o SNMP, tais

como snmplnPkts, snmplnBadCommunityNames, snmpOutBadValues, etc.

➔ Alguns dos objetos podem ter valor nulo, dependendo do papel desempenhado pelo sistema (agente ou estação de gerenciamento).

Page 22: Introdução ao SNMP

Vendor MIB➔ MIBs privadas

➔ RFC 1155 define a localização da MIBs criadas por fabricantes.

➔ Denominadas de vendor MIBs ou MIB privadas.

➔ Cada fabricante solicita e recebe uma designação abaixo da sub-árvore private(4).enterprise(1), a partir da qual define suas MIBs.

➔ estas extensões podem ser manuseadas usando SNMP, desde que a estação de gerenciamento possua sua especificação, de preferência em ASN.1.

Page 23: Introdução ao SNMP

NET-SNMP➔ É uma plataforma portável para SNMP v1 e v2,

que fornece uma coleção de ferramentas de gerenciamento de rede.

Operações de gerenciamento Aplicações de gerenciamento

SnmpgetSnmpgetnextSnmpsetSnmptrapd

WalkNetstatStatusTest

Page 24: Introdução ao SNMP

NET-SNMP - Apps

➔ SnmpNetStat é baseado na operação netstat, do UNIX, e permite a obtenção de informações relacionadas a rede, como por exemplo sockets ativos e estado das interfaces.

➔ SnmpWalk é uma aplicação SNMP que usa requisições GetNext para recuperar toda uma árvore de informações sobre uma entidade de rede.

➔ Snmpget é uma aplicação SNMP que usa requisições Get para obter uma dada variável em uma entidade de rede