Gerenciamento de Redes usando SNMP Carlos Alberto Luz [email protected] Gerenciamento de dispositivos Centro de Controle da Rede Site B Servidor Módulo gerente Linha de Transmissão Site A “Sede” Roteador Site D Hub Site C Gerenciamento de dispositivos O que monitorar? Servidores % de uso da CPU, memória livre, Espaço em disco Impressoras Páginas impressas, nível do toner, fim do papel, … Roteadores, hubs, switches, interfaces de rede Pacotes enviados e recebidos Pacotes com erro Estado das portas (up, down) Outros dispositivos Depende da sua funcionalidade e de quais informações são relevantes Arquitetura funcional (um exemplo) GERENTE Dispositivo Monitorado Agente de coleta SNMP IP Network (Internet) Stats Libs, config gráficos HTML PNG Web Server Agente SNMP MIB Web Browser Exemplo usando SNMP MIB - Management Information Base A MIB é um Banco de Dados Os dados são mantidos pelo agente Os dados são chamados de Objetos Cada objeto tem um identificador (nome) conhecido como OID – Object Identificator Que informações estão contidas na MIB ? Depende do dispositivo Tipos de dados dos Objetos: NetworkAdress, IpAdress, Integer, Gauge, TimeTicks, String Tipos compostos: Table Management Information Base (MIB) Base de Informações de Gerenciamento (MIB) – de um SERVIDOR Tabela de Roteamento Registro ID 27 31 126 ID Local JPR Sede Recife Caruaru Porta ON OFF On ON Atributo etc. etc. etc. etc. etc. Dados da interface de rede Dados do disco Dados da CPU Tabela de Conexões ativas Estrutura da MIB = Hierárquica iso(1) org(3) dod (6) internet (1) directory (1) interfaces(2) mgmt (2) mib-2 (1) system (1) interfaces(2) at (3) ip (4) icmp (5) tcp (6) udp (7) egp (8) transission(10) snmp(11) experimental (3) private (4) enterprises(2) Identificador de Objeto (OID) Cada objeto tem um identificador único OID é uma seqüência de números ou nomes, separados por ponto “.” lido da esquerda para a direita OID define a localização do objeto na estrutura de árvore MIB. Exemplo: o identificador de objeto tcpConnTable é derivado como se segue: iso 1 org dod internet mgmt mib-2 tcp tcpconnTable 3 6 1 2 1 6 13 o identificador pode ser escrito como: 1.3.6.1.2.1.6.13 ou iso.org.dod.internet.mgmt.mib-2.tcp.tcpconnTable SNMP - Conceitos Básicos SNMP=Simple Network Management Protocol O protocolo é simples, não o gerenciamento SNMP só suporta operações de alteração e consulta dos valores dos OIDs Não é possível incluir/excluir objetos da estrutura da MIB É possível realizar operações em tabelas bidimensionais simples Uma estação de gerenciamento pode gerenciar vários agentes Cada agente controla sua MIB Muitos OIDs são dinâmicos Agente mantém a MIB atualizada Responde às consultas dos gerentes Exemplo: Ramificação da MIB para Interfaces 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 Alguns OID ligados à interface de rede (MIB OID = iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry…) Exemplo de aplicação: Gráficos Consultas frequentes aos valores contidos na MIB permitem geração de Gráficos Exemplo: Bytes enviados e recebidos pelo modem ifInOctets & ifOutOctets Comunicação em Sistemas de Gerenciamento Request (comando) Programa de Gerenciamento (cliente) Response (informação/confirmação) Agente (Servidor) Alarm SNMP usa o protocolo UDP para comunicação SNMP na rede Comandos SNMP Pacote net-snmp (linux) http://www.net-snmp.org/download/ snmpget – pega valor de um OID snmpgetnext – pega valor do OID seguinte snmpwalk – pega OIDs sob um ramo da snmptable – mostra OID tipo tabela snmpset – altera OID (quando RW e permitido) snmptrap – envia e recebe traps Snmptranslate – informações sobre OIDs da MIB Comando snmpget Obtém valores para OID na MIB de um sistema remoto Sintaxe: snmpget [OPÇÕES] COMUNIDADE HOST OID Exemplos: snmpget public localhost ifNumber.0 Pergunta quantas interfaces de rede tem o host local snmpget public 192.168.0.253 sysName.0 Pergunta o nome da máquina 192.168.0.253 Comando snmpset Modifica valores para OID na MIB de um sistema remoto, caso seja permitido Sintaxe: snmpset [OPÇÕES] HOST COMUNIDADE OID VALOR Exemplos: snmpset localhost public ifNumber.0 Pergunta quantas interfaces de rede tem o host local snmpset 192.168.0.253 public sysName.0 Pergunta o nome da máquina 192.168.0.253