84
DOUGLAS ANTONIO SILVA ESTUDO E AVALIACAo DO usa DA FERRAMENTA POWERTCP PARA DESENVOLVIMENTO DE APLICACOES DE GERENCIA DE REDES BASEADAS NO PROTOCOLO SNMP.

DOUGLAS ANTONIO SILVA ESTUDO E AVALIACAo DO …tcconline.utp.br/wp-content/uploads/2014/05/ESTUDO... · IPC: Inter Process Comunication ISO: International Organization for Standardization

  • Upload
    dodung

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

DOUGLAS ANTONIO SILVA

ESTUDO E AVALIACAo DO usa DA FERRAMENTA POWERTCP PARA

DESENVOLVIMENTO DE APLICACOES DE GERENCIA DE REDES BASEADAS

NO PROTOCOLO SNMP

DOUGLAS ANTONIO SILVA

ESTUDO E AVALIACAO DO usa DA FERRAMENTA POWERTCP PARA

DESENVOLVIMENTO DE APLICACOES DE GERENCIA DE REDES BASEADAS

NO PROTOCOLO SNMP

Traoolho de Graduaiao apresentado como

ei~ncia parciQI pam obten~aodo grau de

Tecn6l0g0 em Processamento de Dados da

Faculdade dB CiAncias Exatas e TecnoJOgicas

da lJlliversidade Tuiuti do Parana sob

Orientarfio do Professor eiro BarOO58

CURITIBA

2001

III

SUMARIO

LlSTA DE FIGURAS V

LlSTA DE TABELAS VI

LlSTA DE ABREVIATURAS VII

1 INTRODUCAO 1

2 GERENCIAMENTO DE REDES 4

21 STRUCTURE OF MANAGEMENT INFORMA nON (SM) 6

22 MANAGEMENT INFORMATION BASE (MIB) 7

23 RMON 10

24 HISTORICO DO GERENCIAMENTO INTERNET 12

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP) 15

31 ORIGEM 15

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP 16

33 COMO FUNCIONA 0 PROTOCOLO SNMP 17

34 ARQUITETURA DO PROTOCOLO SNMP

35 GERENTE SNMP

351ESTAtOES DE GERENCIAMENTO SNMP

19

37 SEGURANtA SNMP

38 APLlCAtOES SNMP

23

23

24

25

26

36 AGENTE SNMP

4 METODODOLOGIA 28

41 JUSTIFICATIVA 28

5 INTRODUCAo A FERRAMENTA POWERTCP 30

51 CONTEUDO DA FERRAMENTA POWERTCPSNMP 30

IV

52 OBJETIVO DA FERRAMENTA POWERTCPSNMP 31

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP 31

54 DESVANTAGENS DA FERRAMENTA POWERTCP SNMP 32

55 UTILlZA~AO DA FERRAMENTA POWERTCP 32

56 DIAGRAMA DE CLASSES (UML) 33

561 DESCRI~AO DAS CLASSES UTILIZADAS PELA FERRAMENTA 34

562 CLASSE SNMPMESSAGE 34

563 CLASSE SNMPVARIABLES 36

564 CLASSE SNMPVARIABLE 41

565 CLASSE SNMPTRAPS 42

566 CLASSE SNMPTRAP 44

567 CLASSE SNMPTABLE

568 CLASSE SNMPTABLEROW

44

46

569 CLASSE SNMPMIB 47

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS 50

61 INTRODUCAo AO PROTOTIPO 50

62 OBJETIVO DO PROTOTIPO 50

63 MANUAL DO USUARIO PARA UTILIZACAO DO PROTOTIPO 51

631 COMO UTILIZAR 0 PROTOTIPO 52

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS 52

64 COOl GO FONTE DO PROTOTIPO DE GERENCIAMENTO DE FALHAS 55

7 TRABALHOS RELACIONADOS 56

8 CONCLUsAo 58

GLOSSARIO 74

REFERENCIAS BIBLlOGRIiFICAS 75

v

LlSTA DE FIGURAS

21 TROCA DE INFORMA~6ES ENTRE GERENTE - AGENTE 5

22 ARVORE DE IDENTIFICA~AO ASNl 7

23 EXEMPLO DE CONFIGURA~AO DE UMA REDE UTILIZANDO 0 RMON 12

31 CONTEXTO DO SNMP 19

32 FORMATO DA MENSAGEM SNMP E OS PoUS 20

51 DIAGRAMA COMPONENTES DA FERRAMENTA POWERTCP SNMP (UML) 31

61 TELA PRINCIPAL DO PROTOTIPO DE GERENCIAMENTO DE FALHAS 53

62 TELA DE MENSAGEM (TRAP) RECEBIDA DISPOSITIVO GERENCIAvEL 53

63 TELA DE ALTERA~AO DO CONTEUDO DAS VARIAvEIS NA MIB 54

64 AGENTE DISPONiVEL NA INTERNET EXEMPLIFICANDO POWERTCP 54

65 ERRO NA TENTATIVA DE AL TERA~AO DO 010 55

LlSTA DE TABELAS

21 CATEGORIAS DE INFORMA~6ES DA MIB

1

9

VII

LlSTA DE ABREVIATURAS

API APLICATION PROGRAM INTERFACE

ASNl ABSTRACT SYNTAX NOTATION ONE

DMI DESKTOP MNAGEMENT INTERFACE

DMTF DESKTOP MANAGEMENTE TASK FORCE

lAB INTERNET ACTIVIES BOARD

IETF INTERNET ENGEENEERING TASK FORCE

IP Internet Protocol

IPC Inter Process Comunication

ISO International Organization for Standardization

MIB Management Information Base

010 Object Indentifier

ORB Object Request Broker

OSI Open Systems Interconnection

PDU Protocol Data Unit

RMI Remote Method Invocation

RMON Remote Network Monitoring

SMI Structure of Management Information

SNMP Simple Network Management Protocol

TCP Transmission Control Protocol

UDP User Datagram Protocol

1 INTRODUltAO

As redes foram criadas inicialmente como urn meio de compartilhar

dispositivQS e perifericos como impressoras modems paineis pc~fax e outros

Entretanta it medida que as redes crescem e tornam-se integradas as orgarliza~6es

o compartilhamento dos dispositivos tom a aspecto secundario em compara~ao as

Qutras vantagens oferecidas As redes passararn a fazer parte do cotidiano das

corporacoes como uma ferramenta que oferece recursos 8 servicos qlle permitem a

interacao e 0 aumento de produtividade

Considerando ests quadro no capitulo 2 sera discutida a ger~ncia de redes

que e cada vez mais necessaria para manter todo este ambiente em funcionamento

A gerencia em redes de computadores torna-S9 tareta complexa em boa parte par

con sequencia do crescimento acelerado das mesmas tanto em desempenho coma

em suporte a urn grande con junto de servi~os Alem disso as sistemas de

telecomunicaoes parte components das redes tambem adicionam complexidade a

estas redes e estarao cada vez mais presentes mesmo em pequenas instalacoes

Este can junto de componentes (e os problemas associados) somente podera

ser gerenciado se for seguida uma estrutura bem definida Admitindo-se que as

ferramentas para gensectncia de rades nao abrangem todos as problemas de uma rede

e que estas nem sempre sao usadas nas organizacoes que possuem redes S6 faz

necessaria que outros mecanismos de garEncia sejam utilizados para suprir suas

carencias rnais evidentes

As informayoes que circulam em uma rede de computadores devem ser

transportadas de modo confiavel e nipido Para que isso aconteca e importante que

os dados sejam monitorados de maneira que os problemas que porventura possam

existir sejam resolvidos Uma rede sem mecanismos de gerencia pode apresentar

problemas como congestionamento do trafago recursos mal utilizados recursos

sobrecarregados problemas com seguranltae outros

o gerenciamento supoe a existencia de esta90es de gerenciamento onde

sao executados as aplicacoesde gerenciamento em n6s gerenciados que sao os

elementos da rede (estalt6es hubs switches e outros equipamentos de

comunica9ao) que desempenham funcoesde comunicacaona operaltaonormal das

redes atraves dos chamados protocolos uleis Estes protocolos pennitem 0

monitoramento e controle do seu funcionamento sendo que 0 protocolo de gerencia

de rede mais usado e 0 SNMP (Simple Network Management Protocol) que sera

discutido no capitulo 3 onde serao informados a origem as caracterfsticas

funcionamento a arquitetura segurana e as aplica09s do protocolo SNMP

A implementacaode urn sistema de gerenciamento de rede eficiente exige urn

conhecimento tecnico bastante profundo do funcionamento da rede dos elementos

a serem gerenciados e do proprio metoda e prolocolo de gerenciamento Esle

trabalho tern como objetivo principal fazer urn estudo da ferramenta de

gerenciamento de rede PowerTCP (apresentada no capitulo 5) que possui urn

c6digo de acesso a bibliotecas protegidas au compiladas exemplificando uma

aplicaltaogerenciadora um agente e uma MIB Sera estudada e documentada a

ferramenta visando auxiliar os desenvolvedores de aplica90es de gerenciamento de

rede no entendimenlo da ferramenta disponibilizada conveniencia e tambem na

facilidade de implementay8o 0 Objetivo secunda rio deste projeto e exemplificar 0

estuda da ferramenta PawerTcp atraves de um exemplo simples de implementa8o

de um prototipo de gerencia de falhas utilizando-se para tanto 0 agente

disponibilizado na ferramenla PowerTCP apresentado no capitulo 6

2 GERENCIAMENTO DE REDES

o gerenciamento de rede busca maximizar a pradutividade e a eficiencia para

alcancar esses objelivos a ISO (International Organization for Standards) definiu

cinco fun~oes

1 Gerenciamento de Configuratyao Responseivel por detectar e contralar 0

astado da rede tanto a parte 169icacomo a parte fisica

2 Gerenciamento de Desempenho Responsavel por controlar e analisar 0

usa e a taxa de erras na rede mantendo um historico de informagao

3 Gerenciamento de Falhas Responsavel por detectar isolar e controlar

procedimentos anormais que estejam ocorrendo na rede

4 Gerenciamento de Contabilidade Responsavel par coletar e processar

dados relacionados ao usa da rede

5 Gerenciamento de Segurantya Responsavel por controlar 0 acesso aDs

recursos da rede utilizandomiddotse tecnicas de autentica9ao e polfticas de

autoriza9ao

Essas funQ5es de gerenciamento de rede podem ser agrupadas em duas

categorias monitoracao e controle de rede (MOR 1997)

A categoria de Illonitoracilo engloba as funcoes de gerenciamento de

desempenho falha e contabilizaltao que 59 destinam a observa~ao e analise dos

estados da rede e seus elementos

As informat6es monitoradas podem ser de tres tipos

Estaticas Sao as informalt5es que sofrem poucas alteray6es Por

exemplo A descricao de uma estaao de trabalho em uma rede (nome e

endereco)

Dinamicas Sao informat6es que alteram com certa frequencia Por

exemple 0 numero de pacotes com erro em uma transmissao

Estatisticas Sao as informat6es derivadas das dinamicas Por examplo

o numero de pacotes com erro em urn determinado tempo

A categoria de controle engloba as funt6es de gerenciamento de

configurayao e seguranya que se envolvem com as alteralt6es nas configuraltoes

das redes e seus elementos

A estrutura adotada pelos sistemas de gerenciamento de rede e mostrada na

Figura 21 onde 0 gerenciamento e realizado com e compartilhamento de variaveis

armazenadas na Base de Informaltao Gerenciaveis (MIB) trocando informaltoes

atraves de urnprotocolo de comunica~o que segue 0 modelo Cliente middotServidor

Figura 21- Troca de informa90es entre gerente - agente (MOR 1997)

As informacoes de gerenciarnento de redes pod em ser coletadas de duas

farmas

bull Polling E a forma tradicional peja qual 0 gerente requisita as informacoes

para a agente e este as retorna 0 seu usa e ac-anselhavel para

gerenciamento de informacoes que se alteram com pallca freqOencia

Trap Ao contra rio do Polling as informa~6es sao geradas pelo agente e

enviadas para 0 gerente Traps sao utilizados elll dois casos Para enviar

informayoes sabre 0 estado atual das informalt6es gerenciaveis e para

alertar 0 gerente sabre alguma situacao qlle nao e normal que esteja

acorrendo au ira ocarrer

A eseolha da forma que devera ser realizada a coleta de informacoes

dependera da configuraltao de cada rede a sar gerenciada comumente e adotado 0

seguinte esquema Iniciayao utiliza-se 0 Polling e posteriormente 0 Trap

21 STRUCTURE OF MANAGEMENT INFORMATION (SMI)

o 8MI e responsavel por deserever as estruturas e 0 esquema de

identificacao usado na defini9ao das informaltoes de gerenciamento Ele inclui a

desericao de um rnodelo de informacao dos objelos para 0 gereneiamenlo de rede

assim como um conjunto de tipos usados para descrever informac6es de

gerenciamento As estruturas sao definidas formalmente atraves da linguagem ASN

1

Cada objeto gerenciado especificado na SMI atravs de uma macro ASN

que inclui nome sintaxe nilel de acesso e informagoes relacionadas aobrigatoriedade da implementaao do objeto

Para identificar unicamente urn determinado objeto a nome ou identificador efarmada par uma sequencia de numeros inteiros nao negativQs abOdos atrav8S da

arvore de identificaao ASN 1 Figura 22 (MOR 1997)

Figura 22- Arvore de Identificaao ASN 1 (MOR 1997)

22 MANAGEMENT INFORMATION BASE (MIB)

Urn host gerenciado deve manter as informa90es de controle e status para

que 0 administrador possa acessa-Io a roteador par exemplo mantem estatfsticas

sobre 0 status de suas interfaces de rede trafego de entrada e saida datagramas

inlerrompidos e mensagens de erro geradas Embora isso permita que urn

administrador acesse essas estatfsticas 0 SNMP nao especifica exatamente quais

dados podem ser acessados ao contrario um pad rae a parte especifica os detalhes

o padrao conhecido como MIB (Management Information Base) especifica os dados

que um host deve manter e as opera~6espermitidas em cada um deles como par

exemple A MIB determina que a software IP deve manter uma contagem de todos

os oetetos que chegam em cad a interface de rede e que a software de

gerenciamento de rede pode ler apenas aqueles valores

A Base de Informacao de Gerenciamento descreve os objetos a serem

implementados e armazena os valores associados de forma que possam ser vistos

como uma base de informa~aovirtual Por exemple todes os dispositivos da rede

Internet que se constituem em nos gerenciaveis devem implementar a MIB padrao

Internet (MOR 1997)

A MIB para 0 TCPIP classilica as inlorma90es de gerenciamento em oito

categorias como mostra a TabeJa 21 A op~aode categorias e importante porque

as identificadores usados para especificar itens incluem um c6digo par categoria

Categoria da MIB Inclui Informayoes Sobre

Sistema o sistema operacional do roteador ou do loSt

Interfaces Interiaces de redes especfficas

convend Conversiio de endereco (por exemplo mapeamento do

ARP)

Ip Software do Protocolo Internet

Icmp Software do Protocolo de Controle de Mensagens da

Internet

Tep Software do Protocolo de Controle de Transmissao

Udp Software do Protocolo de Datagrama dos Usuarios

Egp Software do Protocolo de Gateway Externo

-Tabela 2 1 - Categonas de Informapoes da MIa

Manter a definiltao da MB independents do protocolo de gerenciamento da

rede traz vantagens tanto para fornecedores quanta para usuarios 0 fornecedor

pode incluir urn agente de software SNMP em um prod uta como um roteador com a

garantia de que 0 software continuara a aderir ao padrao apos a definicao dos novas

itens MIB urn cliente pode usar 0 mesma software do cliente de gerenciamento de

rede para administrar varios roteadores que tenham vers6es diferentes da MIB

Naturalmente um roteador que nao disponha dos novas itens da MIB nao podera

fornecer as informatoes que estiverem naqueles itens entretanto como todes as

roteadores utilizam a mesma linguagem para comunicaao todos eles podem

analisar uma consulta e fornecer a informacao solicitada au enviar uma mensagem

de erro explicando que nao possuem 0 item solicitado (COMER 13 1998)

10

23 RMON (REMOTE MONITORING)

Enquanto 0 SNMP trabailla limitadamente en de 0 gerente obtem apenas

informagoes de um determinado equipamenlo os monilores do RMON (Rem ole

Monitoring) tambem cllamados de probes trabalham capturando as informagoes da

rede como um todD Com aplicagoes desenvolvidas utilizando a ferramenta

PowerTCP torna-se passivel utilizar RMON podendo assim gerenciar tambem

subredes

ORMaN e a capacidade de gerenciamento remoto do SNMP Porem tenta

diminuir a quantidade de informag6es tracadas entre a rede local gerenciada e a

estagao gerente

Os agentes que implementam a RMON MIB possuem cinco fungoes

bull Operagoes Off-line Operagoes que permitem 0 agente continuar

executando suas taretas mesma que a comunicac8o com a estagao de

gerenciamento nao seja passivel ou saja ineficiente

Monitorarao pro-ativa permite-s8 executar continuamente diagnosticos

e manter logs do desempenho das redes a fim de desenvolver a fungao de

baseline ista e manter hist6ricos das opera90es normais por um tempo

estendido e em seguida lazar uma analise para identificar problemas

potenciais na rede

bull Detecgao e registro de problemas 0 monitor RMON pode reconhecer

determinadas condigoes das redes fazendo constantes averigua6es com

II

o objetive de informar ao gerenle sabre eventos e situat6es de erras

significativos para a rede

Valorizacao dos dados coletados 0 monitor RMON pode realizar

analises especfficas sobre os dados coletados em suas subredes

bull MUitiplos Gerentes olerece maior nivel de disponibilidade pois 0

diagnostico podera ser feito a partir de mais de uma estayao gerenle 0

uso de multiplos gerentes tambem permite a execuao de dilerentes

fungoes ou 0 gerenciamento de diferentes departamentos em uma

empresa

Dois padroes do protocolo RMON sao implementados

bull RMON1 Monitora em nivel de camada MAC (Media Access Control) 0

trafego e coleta de informaroes e estatlsticas do segmento de rede local

Faz ainda um diagnostico remote de arras e falhas contidas no segmento

com a ajuda de um analisador de protocolos

RMON2 Opera a nivel da camada de rede e camadas superiores

complementando portanto 0 RMON1 possibilitando coletar inlormaoes

estatisticas e monitorar a comunicarao fim-a-fim e 0 tnifego gerado por

dilerentes tipos de aplicaao

A configuraltao do gerenciamento RMON e compost a por uma estaltao central

de gerenciamento (tambem chamada de probe) que gerencia 0 tralego de uma rede

como um todo incluindo suas sub-redes Em cada sub-rede existe uma maquina que

gerencia localmente 0 tralego desta A ligura abaixo ilustra esta conligura[IO

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

DOUGLAS ANTONIO SILVA

ESTUDO E AVALIACAO DO usa DA FERRAMENTA POWERTCP PARA

DESENVOLVIMENTO DE APLICACOES DE GERENCIA DE REDES BASEADAS

NO PROTOCOLO SNMP

Traoolho de Graduaiao apresentado como

ei~ncia parciQI pam obten~aodo grau de

Tecn6l0g0 em Processamento de Dados da

Faculdade dB CiAncias Exatas e TecnoJOgicas

da lJlliversidade Tuiuti do Parana sob

Orientarfio do Professor eiro BarOO58

CURITIBA

2001

III

SUMARIO

LlSTA DE FIGURAS V

LlSTA DE TABELAS VI

LlSTA DE ABREVIATURAS VII

1 INTRODUCAO 1

2 GERENCIAMENTO DE REDES 4

21 STRUCTURE OF MANAGEMENT INFORMA nON (SM) 6

22 MANAGEMENT INFORMATION BASE (MIB) 7

23 RMON 10

24 HISTORICO DO GERENCIAMENTO INTERNET 12

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP) 15

31 ORIGEM 15

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP 16

33 COMO FUNCIONA 0 PROTOCOLO SNMP 17

34 ARQUITETURA DO PROTOCOLO SNMP

35 GERENTE SNMP

351ESTAtOES DE GERENCIAMENTO SNMP

19

37 SEGURANtA SNMP

38 APLlCAtOES SNMP

23

23

24

25

26

36 AGENTE SNMP

4 METODODOLOGIA 28

41 JUSTIFICATIVA 28

5 INTRODUCAo A FERRAMENTA POWERTCP 30

51 CONTEUDO DA FERRAMENTA POWERTCPSNMP 30

IV

52 OBJETIVO DA FERRAMENTA POWERTCPSNMP 31

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP 31

54 DESVANTAGENS DA FERRAMENTA POWERTCP SNMP 32

55 UTILlZA~AO DA FERRAMENTA POWERTCP 32

56 DIAGRAMA DE CLASSES (UML) 33

561 DESCRI~AO DAS CLASSES UTILIZADAS PELA FERRAMENTA 34

562 CLASSE SNMPMESSAGE 34

563 CLASSE SNMPVARIABLES 36

564 CLASSE SNMPVARIABLE 41

565 CLASSE SNMPTRAPS 42

566 CLASSE SNMPTRAP 44

567 CLASSE SNMPTABLE

568 CLASSE SNMPTABLEROW

44

46

569 CLASSE SNMPMIB 47

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS 50

61 INTRODUCAo AO PROTOTIPO 50

62 OBJETIVO DO PROTOTIPO 50

63 MANUAL DO USUARIO PARA UTILIZACAO DO PROTOTIPO 51

631 COMO UTILIZAR 0 PROTOTIPO 52

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS 52

64 COOl GO FONTE DO PROTOTIPO DE GERENCIAMENTO DE FALHAS 55

7 TRABALHOS RELACIONADOS 56

8 CONCLUsAo 58

GLOSSARIO 74

REFERENCIAS BIBLlOGRIiFICAS 75

v

LlSTA DE FIGURAS

21 TROCA DE INFORMA~6ES ENTRE GERENTE - AGENTE 5

22 ARVORE DE IDENTIFICA~AO ASNl 7

23 EXEMPLO DE CONFIGURA~AO DE UMA REDE UTILIZANDO 0 RMON 12

31 CONTEXTO DO SNMP 19

32 FORMATO DA MENSAGEM SNMP E OS PoUS 20

51 DIAGRAMA COMPONENTES DA FERRAMENTA POWERTCP SNMP (UML) 31

61 TELA PRINCIPAL DO PROTOTIPO DE GERENCIAMENTO DE FALHAS 53

62 TELA DE MENSAGEM (TRAP) RECEBIDA DISPOSITIVO GERENCIAvEL 53

63 TELA DE ALTERA~AO DO CONTEUDO DAS VARIAvEIS NA MIB 54

64 AGENTE DISPONiVEL NA INTERNET EXEMPLIFICANDO POWERTCP 54

65 ERRO NA TENTATIVA DE AL TERA~AO DO 010 55

LlSTA DE TABELAS

21 CATEGORIAS DE INFORMA~6ES DA MIB

1

9

VII

LlSTA DE ABREVIATURAS

API APLICATION PROGRAM INTERFACE

ASNl ABSTRACT SYNTAX NOTATION ONE

DMI DESKTOP MNAGEMENT INTERFACE

DMTF DESKTOP MANAGEMENTE TASK FORCE

lAB INTERNET ACTIVIES BOARD

IETF INTERNET ENGEENEERING TASK FORCE

IP Internet Protocol

IPC Inter Process Comunication

ISO International Organization for Standardization

MIB Management Information Base

010 Object Indentifier

ORB Object Request Broker

OSI Open Systems Interconnection

PDU Protocol Data Unit

RMI Remote Method Invocation

RMON Remote Network Monitoring

SMI Structure of Management Information

SNMP Simple Network Management Protocol

TCP Transmission Control Protocol

UDP User Datagram Protocol

1 INTRODUltAO

As redes foram criadas inicialmente como urn meio de compartilhar

dispositivQS e perifericos como impressoras modems paineis pc~fax e outros

Entretanta it medida que as redes crescem e tornam-se integradas as orgarliza~6es

o compartilhamento dos dispositivos tom a aspecto secundario em compara~ao as

Qutras vantagens oferecidas As redes passararn a fazer parte do cotidiano das

corporacoes como uma ferramenta que oferece recursos 8 servicos qlle permitem a

interacao e 0 aumento de produtividade

Considerando ests quadro no capitulo 2 sera discutida a ger~ncia de redes

que e cada vez mais necessaria para manter todo este ambiente em funcionamento

A gerencia em redes de computadores torna-S9 tareta complexa em boa parte par

con sequencia do crescimento acelerado das mesmas tanto em desempenho coma

em suporte a urn grande con junto de servi~os Alem disso as sistemas de

telecomunicaoes parte components das redes tambem adicionam complexidade a

estas redes e estarao cada vez mais presentes mesmo em pequenas instalacoes

Este can junto de componentes (e os problemas associados) somente podera

ser gerenciado se for seguida uma estrutura bem definida Admitindo-se que as

ferramentas para gensectncia de rades nao abrangem todos as problemas de uma rede

e que estas nem sempre sao usadas nas organizacoes que possuem redes S6 faz

necessaria que outros mecanismos de garEncia sejam utilizados para suprir suas

carencias rnais evidentes

As informayoes que circulam em uma rede de computadores devem ser

transportadas de modo confiavel e nipido Para que isso aconteca e importante que

os dados sejam monitorados de maneira que os problemas que porventura possam

existir sejam resolvidos Uma rede sem mecanismos de gerencia pode apresentar

problemas como congestionamento do trafago recursos mal utilizados recursos

sobrecarregados problemas com seguranltae outros

o gerenciamento supoe a existencia de esta90es de gerenciamento onde

sao executados as aplicacoesde gerenciamento em n6s gerenciados que sao os

elementos da rede (estalt6es hubs switches e outros equipamentos de

comunica9ao) que desempenham funcoesde comunicacaona operaltaonormal das

redes atraves dos chamados protocolos uleis Estes protocolos pennitem 0

monitoramento e controle do seu funcionamento sendo que 0 protocolo de gerencia

de rede mais usado e 0 SNMP (Simple Network Management Protocol) que sera

discutido no capitulo 3 onde serao informados a origem as caracterfsticas

funcionamento a arquitetura segurana e as aplica09s do protocolo SNMP

A implementacaode urn sistema de gerenciamento de rede eficiente exige urn

conhecimento tecnico bastante profundo do funcionamento da rede dos elementos

a serem gerenciados e do proprio metoda e prolocolo de gerenciamento Esle

trabalho tern como objetivo principal fazer urn estudo da ferramenta de

gerenciamento de rede PowerTCP (apresentada no capitulo 5) que possui urn

c6digo de acesso a bibliotecas protegidas au compiladas exemplificando uma

aplicaltaogerenciadora um agente e uma MIB Sera estudada e documentada a

ferramenta visando auxiliar os desenvolvedores de aplica90es de gerenciamento de

rede no entendimenlo da ferramenta disponibilizada conveniencia e tambem na

facilidade de implementay8o 0 Objetivo secunda rio deste projeto e exemplificar 0

estuda da ferramenta PawerTcp atraves de um exemplo simples de implementa8o

de um prototipo de gerencia de falhas utilizando-se para tanto 0 agente

disponibilizado na ferramenla PowerTCP apresentado no capitulo 6

2 GERENCIAMENTO DE REDES

o gerenciamento de rede busca maximizar a pradutividade e a eficiencia para

alcancar esses objelivos a ISO (International Organization for Standards) definiu

cinco fun~oes

1 Gerenciamento de Configuratyao Responseivel por detectar e contralar 0

astado da rede tanto a parte 169icacomo a parte fisica

2 Gerenciamento de Desempenho Responsavel por controlar e analisar 0

usa e a taxa de erras na rede mantendo um historico de informagao

3 Gerenciamento de Falhas Responsavel por detectar isolar e controlar

procedimentos anormais que estejam ocorrendo na rede

4 Gerenciamento de Contabilidade Responsavel par coletar e processar

dados relacionados ao usa da rede

5 Gerenciamento de Segurantya Responsavel por controlar 0 acesso aDs

recursos da rede utilizandomiddotse tecnicas de autentica9ao e polfticas de

autoriza9ao

Essas funQ5es de gerenciamento de rede podem ser agrupadas em duas

categorias monitoracao e controle de rede (MOR 1997)

A categoria de Illonitoracilo engloba as funcoes de gerenciamento de

desempenho falha e contabilizaltao que 59 destinam a observa~ao e analise dos

estados da rede e seus elementos

As informat6es monitoradas podem ser de tres tipos

Estaticas Sao as informalt5es que sofrem poucas alteray6es Por

exemplo A descricao de uma estaao de trabalho em uma rede (nome e

endereco)

Dinamicas Sao informat6es que alteram com certa frequencia Por

exemple 0 numero de pacotes com erro em uma transmissao

Estatisticas Sao as informat6es derivadas das dinamicas Por examplo

o numero de pacotes com erro em urn determinado tempo

A categoria de controle engloba as funt6es de gerenciamento de

configurayao e seguranya que se envolvem com as alteralt6es nas configuraltoes

das redes e seus elementos

A estrutura adotada pelos sistemas de gerenciamento de rede e mostrada na

Figura 21 onde 0 gerenciamento e realizado com e compartilhamento de variaveis

armazenadas na Base de Informaltao Gerenciaveis (MIB) trocando informaltoes

atraves de urnprotocolo de comunica~o que segue 0 modelo Cliente middotServidor

Figura 21- Troca de informa90es entre gerente - agente (MOR 1997)

As informacoes de gerenciarnento de redes pod em ser coletadas de duas

farmas

bull Polling E a forma tradicional peja qual 0 gerente requisita as informacoes

para a agente e este as retorna 0 seu usa e ac-anselhavel para

gerenciamento de informacoes que se alteram com pallca freqOencia

Trap Ao contra rio do Polling as informa~6es sao geradas pelo agente e

enviadas para 0 gerente Traps sao utilizados elll dois casos Para enviar

informayoes sabre 0 estado atual das informalt6es gerenciaveis e para

alertar 0 gerente sabre alguma situacao qlle nao e normal que esteja

acorrendo au ira ocarrer

A eseolha da forma que devera ser realizada a coleta de informacoes

dependera da configuraltao de cada rede a sar gerenciada comumente e adotado 0

seguinte esquema Iniciayao utiliza-se 0 Polling e posteriormente 0 Trap

21 STRUCTURE OF MANAGEMENT INFORMATION (SMI)

o 8MI e responsavel por deserever as estruturas e 0 esquema de

identificacao usado na defini9ao das informaltoes de gerenciamento Ele inclui a

desericao de um rnodelo de informacao dos objelos para 0 gereneiamenlo de rede

assim como um conjunto de tipos usados para descrever informac6es de

gerenciamento As estruturas sao definidas formalmente atraves da linguagem ASN

1

Cada objeto gerenciado especificado na SMI atravs de uma macro ASN

que inclui nome sintaxe nilel de acesso e informagoes relacionadas aobrigatoriedade da implementaao do objeto

Para identificar unicamente urn determinado objeto a nome ou identificador efarmada par uma sequencia de numeros inteiros nao negativQs abOdos atrav8S da

arvore de identificaao ASN 1 Figura 22 (MOR 1997)

Figura 22- Arvore de Identificaao ASN 1 (MOR 1997)

22 MANAGEMENT INFORMATION BASE (MIB)

Urn host gerenciado deve manter as informa90es de controle e status para

que 0 administrador possa acessa-Io a roteador par exemplo mantem estatfsticas

sobre 0 status de suas interfaces de rede trafego de entrada e saida datagramas

inlerrompidos e mensagens de erro geradas Embora isso permita que urn

administrador acesse essas estatfsticas 0 SNMP nao especifica exatamente quais

dados podem ser acessados ao contrario um pad rae a parte especifica os detalhes

o padrao conhecido como MIB (Management Information Base) especifica os dados

que um host deve manter e as opera~6espermitidas em cada um deles como par

exemple A MIB determina que a software IP deve manter uma contagem de todos

os oetetos que chegam em cad a interface de rede e que a software de

gerenciamento de rede pode ler apenas aqueles valores

A Base de Informacao de Gerenciamento descreve os objetos a serem

implementados e armazena os valores associados de forma que possam ser vistos

como uma base de informa~aovirtual Por exemple todes os dispositivos da rede

Internet que se constituem em nos gerenciaveis devem implementar a MIB padrao

Internet (MOR 1997)

A MIB para 0 TCPIP classilica as inlorma90es de gerenciamento em oito

categorias como mostra a TabeJa 21 A op~aode categorias e importante porque

as identificadores usados para especificar itens incluem um c6digo par categoria

Categoria da MIB Inclui Informayoes Sobre

Sistema o sistema operacional do roteador ou do loSt

Interfaces Interiaces de redes especfficas

convend Conversiio de endereco (por exemplo mapeamento do

ARP)

Ip Software do Protocolo Internet

Icmp Software do Protocolo de Controle de Mensagens da

Internet

Tep Software do Protocolo de Controle de Transmissao

Udp Software do Protocolo de Datagrama dos Usuarios

Egp Software do Protocolo de Gateway Externo

-Tabela 2 1 - Categonas de Informapoes da MIa

Manter a definiltao da MB independents do protocolo de gerenciamento da

rede traz vantagens tanto para fornecedores quanta para usuarios 0 fornecedor

pode incluir urn agente de software SNMP em um prod uta como um roteador com a

garantia de que 0 software continuara a aderir ao padrao apos a definicao dos novas

itens MIB urn cliente pode usar 0 mesma software do cliente de gerenciamento de

rede para administrar varios roteadores que tenham vers6es diferentes da MIB

Naturalmente um roteador que nao disponha dos novas itens da MIB nao podera

fornecer as informatoes que estiverem naqueles itens entretanto como todes as

roteadores utilizam a mesma linguagem para comunicaao todos eles podem

analisar uma consulta e fornecer a informacao solicitada au enviar uma mensagem

de erro explicando que nao possuem 0 item solicitado (COMER 13 1998)

10

23 RMON (REMOTE MONITORING)

Enquanto 0 SNMP trabailla limitadamente en de 0 gerente obtem apenas

informagoes de um determinado equipamenlo os monilores do RMON (Rem ole

Monitoring) tambem cllamados de probes trabalham capturando as informagoes da

rede como um todD Com aplicagoes desenvolvidas utilizando a ferramenta

PowerTCP torna-se passivel utilizar RMON podendo assim gerenciar tambem

subredes

ORMaN e a capacidade de gerenciamento remoto do SNMP Porem tenta

diminuir a quantidade de informag6es tracadas entre a rede local gerenciada e a

estagao gerente

Os agentes que implementam a RMON MIB possuem cinco fungoes

bull Operagoes Off-line Operagoes que permitem 0 agente continuar

executando suas taretas mesma que a comunicac8o com a estagao de

gerenciamento nao seja passivel ou saja ineficiente

Monitorarao pro-ativa permite-s8 executar continuamente diagnosticos

e manter logs do desempenho das redes a fim de desenvolver a fungao de

baseline ista e manter hist6ricos das opera90es normais por um tempo

estendido e em seguida lazar uma analise para identificar problemas

potenciais na rede

bull Detecgao e registro de problemas 0 monitor RMON pode reconhecer

determinadas condigoes das redes fazendo constantes averigua6es com

II

o objetive de informar ao gerenle sabre eventos e situat6es de erras

significativos para a rede

Valorizacao dos dados coletados 0 monitor RMON pode realizar

analises especfficas sobre os dados coletados em suas subredes

bull MUitiplos Gerentes olerece maior nivel de disponibilidade pois 0

diagnostico podera ser feito a partir de mais de uma estayao gerenle 0

uso de multiplos gerentes tambem permite a execuao de dilerentes

fungoes ou 0 gerenciamento de diferentes departamentos em uma

empresa

Dois padroes do protocolo RMON sao implementados

bull RMON1 Monitora em nivel de camada MAC (Media Access Control) 0

trafego e coleta de informaroes e estatlsticas do segmento de rede local

Faz ainda um diagnostico remote de arras e falhas contidas no segmento

com a ajuda de um analisador de protocolos

RMON2 Opera a nivel da camada de rede e camadas superiores

complementando portanto 0 RMON1 possibilitando coletar inlormaoes

estatisticas e monitorar a comunicarao fim-a-fim e 0 tnifego gerado por

dilerentes tipos de aplicaao

A configuraltao do gerenciamento RMON e compost a por uma estaltao central

de gerenciamento (tambem chamada de probe) que gerencia 0 tralego de uma rede

como um todo incluindo suas sub-redes Em cada sub-rede existe uma maquina que

gerencia localmente 0 tralego desta A ligura abaixo ilustra esta conligura[IO

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

III

SUMARIO

LlSTA DE FIGURAS V

LlSTA DE TABELAS VI

LlSTA DE ABREVIATURAS VII

1 INTRODUCAO 1

2 GERENCIAMENTO DE REDES 4

21 STRUCTURE OF MANAGEMENT INFORMA nON (SM) 6

22 MANAGEMENT INFORMATION BASE (MIB) 7

23 RMON 10

24 HISTORICO DO GERENCIAMENTO INTERNET 12

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP) 15

31 ORIGEM 15

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP 16

33 COMO FUNCIONA 0 PROTOCOLO SNMP 17

34 ARQUITETURA DO PROTOCOLO SNMP

35 GERENTE SNMP

351ESTAtOES DE GERENCIAMENTO SNMP

19

37 SEGURANtA SNMP

38 APLlCAtOES SNMP

23

23

24

25

26

36 AGENTE SNMP

4 METODODOLOGIA 28

41 JUSTIFICATIVA 28

5 INTRODUCAo A FERRAMENTA POWERTCP 30

51 CONTEUDO DA FERRAMENTA POWERTCPSNMP 30

IV

52 OBJETIVO DA FERRAMENTA POWERTCPSNMP 31

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP 31

54 DESVANTAGENS DA FERRAMENTA POWERTCP SNMP 32

55 UTILlZA~AO DA FERRAMENTA POWERTCP 32

56 DIAGRAMA DE CLASSES (UML) 33

561 DESCRI~AO DAS CLASSES UTILIZADAS PELA FERRAMENTA 34

562 CLASSE SNMPMESSAGE 34

563 CLASSE SNMPVARIABLES 36

564 CLASSE SNMPVARIABLE 41

565 CLASSE SNMPTRAPS 42

566 CLASSE SNMPTRAP 44

567 CLASSE SNMPTABLE

568 CLASSE SNMPTABLEROW

44

46

569 CLASSE SNMPMIB 47

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS 50

61 INTRODUCAo AO PROTOTIPO 50

62 OBJETIVO DO PROTOTIPO 50

63 MANUAL DO USUARIO PARA UTILIZACAO DO PROTOTIPO 51

631 COMO UTILIZAR 0 PROTOTIPO 52

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS 52

64 COOl GO FONTE DO PROTOTIPO DE GERENCIAMENTO DE FALHAS 55

7 TRABALHOS RELACIONADOS 56

8 CONCLUsAo 58

GLOSSARIO 74

REFERENCIAS BIBLlOGRIiFICAS 75

v

LlSTA DE FIGURAS

21 TROCA DE INFORMA~6ES ENTRE GERENTE - AGENTE 5

22 ARVORE DE IDENTIFICA~AO ASNl 7

23 EXEMPLO DE CONFIGURA~AO DE UMA REDE UTILIZANDO 0 RMON 12

31 CONTEXTO DO SNMP 19

32 FORMATO DA MENSAGEM SNMP E OS PoUS 20

51 DIAGRAMA COMPONENTES DA FERRAMENTA POWERTCP SNMP (UML) 31

61 TELA PRINCIPAL DO PROTOTIPO DE GERENCIAMENTO DE FALHAS 53

62 TELA DE MENSAGEM (TRAP) RECEBIDA DISPOSITIVO GERENCIAvEL 53

63 TELA DE ALTERA~AO DO CONTEUDO DAS VARIAvEIS NA MIB 54

64 AGENTE DISPONiVEL NA INTERNET EXEMPLIFICANDO POWERTCP 54

65 ERRO NA TENTATIVA DE AL TERA~AO DO 010 55

LlSTA DE TABELAS

21 CATEGORIAS DE INFORMA~6ES DA MIB

1

9

VII

LlSTA DE ABREVIATURAS

API APLICATION PROGRAM INTERFACE

ASNl ABSTRACT SYNTAX NOTATION ONE

DMI DESKTOP MNAGEMENT INTERFACE

DMTF DESKTOP MANAGEMENTE TASK FORCE

lAB INTERNET ACTIVIES BOARD

IETF INTERNET ENGEENEERING TASK FORCE

IP Internet Protocol

IPC Inter Process Comunication

ISO International Organization for Standardization

MIB Management Information Base

010 Object Indentifier

ORB Object Request Broker

OSI Open Systems Interconnection

PDU Protocol Data Unit

RMI Remote Method Invocation

RMON Remote Network Monitoring

SMI Structure of Management Information

SNMP Simple Network Management Protocol

TCP Transmission Control Protocol

UDP User Datagram Protocol

1 INTRODUltAO

As redes foram criadas inicialmente como urn meio de compartilhar

dispositivQS e perifericos como impressoras modems paineis pc~fax e outros

Entretanta it medida que as redes crescem e tornam-se integradas as orgarliza~6es

o compartilhamento dos dispositivos tom a aspecto secundario em compara~ao as

Qutras vantagens oferecidas As redes passararn a fazer parte do cotidiano das

corporacoes como uma ferramenta que oferece recursos 8 servicos qlle permitem a

interacao e 0 aumento de produtividade

Considerando ests quadro no capitulo 2 sera discutida a ger~ncia de redes

que e cada vez mais necessaria para manter todo este ambiente em funcionamento

A gerencia em redes de computadores torna-S9 tareta complexa em boa parte par

con sequencia do crescimento acelerado das mesmas tanto em desempenho coma

em suporte a urn grande con junto de servi~os Alem disso as sistemas de

telecomunicaoes parte components das redes tambem adicionam complexidade a

estas redes e estarao cada vez mais presentes mesmo em pequenas instalacoes

Este can junto de componentes (e os problemas associados) somente podera

ser gerenciado se for seguida uma estrutura bem definida Admitindo-se que as

ferramentas para gensectncia de rades nao abrangem todos as problemas de uma rede

e que estas nem sempre sao usadas nas organizacoes que possuem redes S6 faz

necessaria que outros mecanismos de garEncia sejam utilizados para suprir suas

carencias rnais evidentes

As informayoes que circulam em uma rede de computadores devem ser

transportadas de modo confiavel e nipido Para que isso aconteca e importante que

os dados sejam monitorados de maneira que os problemas que porventura possam

existir sejam resolvidos Uma rede sem mecanismos de gerencia pode apresentar

problemas como congestionamento do trafago recursos mal utilizados recursos

sobrecarregados problemas com seguranltae outros

o gerenciamento supoe a existencia de esta90es de gerenciamento onde

sao executados as aplicacoesde gerenciamento em n6s gerenciados que sao os

elementos da rede (estalt6es hubs switches e outros equipamentos de

comunica9ao) que desempenham funcoesde comunicacaona operaltaonormal das

redes atraves dos chamados protocolos uleis Estes protocolos pennitem 0

monitoramento e controle do seu funcionamento sendo que 0 protocolo de gerencia

de rede mais usado e 0 SNMP (Simple Network Management Protocol) que sera

discutido no capitulo 3 onde serao informados a origem as caracterfsticas

funcionamento a arquitetura segurana e as aplica09s do protocolo SNMP

A implementacaode urn sistema de gerenciamento de rede eficiente exige urn

conhecimento tecnico bastante profundo do funcionamento da rede dos elementos

a serem gerenciados e do proprio metoda e prolocolo de gerenciamento Esle

trabalho tern como objetivo principal fazer urn estudo da ferramenta de

gerenciamento de rede PowerTCP (apresentada no capitulo 5) que possui urn

c6digo de acesso a bibliotecas protegidas au compiladas exemplificando uma

aplicaltaogerenciadora um agente e uma MIB Sera estudada e documentada a

ferramenta visando auxiliar os desenvolvedores de aplica90es de gerenciamento de

rede no entendimenlo da ferramenta disponibilizada conveniencia e tambem na

facilidade de implementay8o 0 Objetivo secunda rio deste projeto e exemplificar 0

estuda da ferramenta PawerTcp atraves de um exemplo simples de implementa8o

de um prototipo de gerencia de falhas utilizando-se para tanto 0 agente

disponibilizado na ferramenla PowerTCP apresentado no capitulo 6

2 GERENCIAMENTO DE REDES

o gerenciamento de rede busca maximizar a pradutividade e a eficiencia para

alcancar esses objelivos a ISO (International Organization for Standards) definiu

cinco fun~oes

1 Gerenciamento de Configuratyao Responseivel por detectar e contralar 0

astado da rede tanto a parte 169icacomo a parte fisica

2 Gerenciamento de Desempenho Responsavel por controlar e analisar 0

usa e a taxa de erras na rede mantendo um historico de informagao

3 Gerenciamento de Falhas Responsavel por detectar isolar e controlar

procedimentos anormais que estejam ocorrendo na rede

4 Gerenciamento de Contabilidade Responsavel par coletar e processar

dados relacionados ao usa da rede

5 Gerenciamento de Segurantya Responsavel por controlar 0 acesso aDs

recursos da rede utilizandomiddotse tecnicas de autentica9ao e polfticas de

autoriza9ao

Essas funQ5es de gerenciamento de rede podem ser agrupadas em duas

categorias monitoracao e controle de rede (MOR 1997)

A categoria de Illonitoracilo engloba as funcoes de gerenciamento de

desempenho falha e contabilizaltao que 59 destinam a observa~ao e analise dos

estados da rede e seus elementos

As informat6es monitoradas podem ser de tres tipos

Estaticas Sao as informalt5es que sofrem poucas alteray6es Por

exemplo A descricao de uma estaao de trabalho em uma rede (nome e

endereco)

Dinamicas Sao informat6es que alteram com certa frequencia Por

exemple 0 numero de pacotes com erro em uma transmissao

Estatisticas Sao as informat6es derivadas das dinamicas Por examplo

o numero de pacotes com erro em urn determinado tempo

A categoria de controle engloba as funt6es de gerenciamento de

configurayao e seguranya que se envolvem com as alteralt6es nas configuraltoes

das redes e seus elementos

A estrutura adotada pelos sistemas de gerenciamento de rede e mostrada na

Figura 21 onde 0 gerenciamento e realizado com e compartilhamento de variaveis

armazenadas na Base de Informaltao Gerenciaveis (MIB) trocando informaltoes

atraves de urnprotocolo de comunica~o que segue 0 modelo Cliente middotServidor

Figura 21- Troca de informa90es entre gerente - agente (MOR 1997)

As informacoes de gerenciarnento de redes pod em ser coletadas de duas

farmas

bull Polling E a forma tradicional peja qual 0 gerente requisita as informacoes

para a agente e este as retorna 0 seu usa e ac-anselhavel para

gerenciamento de informacoes que se alteram com pallca freqOencia

Trap Ao contra rio do Polling as informa~6es sao geradas pelo agente e

enviadas para 0 gerente Traps sao utilizados elll dois casos Para enviar

informayoes sabre 0 estado atual das informalt6es gerenciaveis e para

alertar 0 gerente sabre alguma situacao qlle nao e normal que esteja

acorrendo au ira ocarrer

A eseolha da forma que devera ser realizada a coleta de informacoes

dependera da configuraltao de cada rede a sar gerenciada comumente e adotado 0

seguinte esquema Iniciayao utiliza-se 0 Polling e posteriormente 0 Trap

21 STRUCTURE OF MANAGEMENT INFORMATION (SMI)

o 8MI e responsavel por deserever as estruturas e 0 esquema de

identificacao usado na defini9ao das informaltoes de gerenciamento Ele inclui a

desericao de um rnodelo de informacao dos objelos para 0 gereneiamenlo de rede

assim como um conjunto de tipos usados para descrever informac6es de

gerenciamento As estruturas sao definidas formalmente atraves da linguagem ASN

1

Cada objeto gerenciado especificado na SMI atravs de uma macro ASN

que inclui nome sintaxe nilel de acesso e informagoes relacionadas aobrigatoriedade da implementaao do objeto

Para identificar unicamente urn determinado objeto a nome ou identificador efarmada par uma sequencia de numeros inteiros nao negativQs abOdos atrav8S da

arvore de identificaao ASN 1 Figura 22 (MOR 1997)

Figura 22- Arvore de Identificaao ASN 1 (MOR 1997)

22 MANAGEMENT INFORMATION BASE (MIB)

Urn host gerenciado deve manter as informa90es de controle e status para

que 0 administrador possa acessa-Io a roteador par exemplo mantem estatfsticas

sobre 0 status de suas interfaces de rede trafego de entrada e saida datagramas

inlerrompidos e mensagens de erro geradas Embora isso permita que urn

administrador acesse essas estatfsticas 0 SNMP nao especifica exatamente quais

dados podem ser acessados ao contrario um pad rae a parte especifica os detalhes

o padrao conhecido como MIB (Management Information Base) especifica os dados

que um host deve manter e as opera~6espermitidas em cada um deles como par

exemple A MIB determina que a software IP deve manter uma contagem de todos

os oetetos que chegam em cad a interface de rede e que a software de

gerenciamento de rede pode ler apenas aqueles valores

A Base de Informacao de Gerenciamento descreve os objetos a serem

implementados e armazena os valores associados de forma que possam ser vistos

como uma base de informa~aovirtual Por exemple todes os dispositivos da rede

Internet que se constituem em nos gerenciaveis devem implementar a MIB padrao

Internet (MOR 1997)

A MIB para 0 TCPIP classilica as inlorma90es de gerenciamento em oito

categorias como mostra a TabeJa 21 A op~aode categorias e importante porque

as identificadores usados para especificar itens incluem um c6digo par categoria

Categoria da MIB Inclui Informayoes Sobre

Sistema o sistema operacional do roteador ou do loSt

Interfaces Interiaces de redes especfficas

convend Conversiio de endereco (por exemplo mapeamento do

ARP)

Ip Software do Protocolo Internet

Icmp Software do Protocolo de Controle de Mensagens da

Internet

Tep Software do Protocolo de Controle de Transmissao

Udp Software do Protocolo de Datagrama dos Usuarios

Egp Software do Protocolo de Gateway Externo

-Tabela 2 1 - Categonas de Informapoes da MIa

Manter a definiltao da MB independents do protocolo de gerenciamento da

rede traz vantagens tanto para fornecedores quanta para usuarios 0 fornecedor

pode incluir urn agente de software SNMP em um prod uta como um roteador com a

garantia de que 0 software continuara a aderir ao padrao apos a definicao dos novas

itens MIB urn cliente pode usar 0 mesma software do cliente de gerenciamento de

rede para administrar varios roteadores que tenham vers6es diferentes da MIB

Naturalmente um roteador que nao disponha dos novas itens da MIB nao podera

fornecer as informatoes que estiverem naqueles itens entretanto como todes as

roteadores utilizam a mesma linguagem para comunicaao todos eles podem

analisar uma consulta e fornecer a informacao solicitada au enviar uma mensagem

de erro explicando que nao possuem 0 item solicitado (COMER 13 1998)

10

23 RMON (REMOTE MONITORING)

Enquanto 0 SNMP trabailla limitadamente en de 0 gerente obtem apenas

informagoes de um determinado equipamenlo os monilores do RMON (Rem ole

Monitoring) tambem cllamados de probes trabalham capturando as informagoes da

rede como um todD Com aplicagoes desenvolvidas utilizando a ferramenta

PowerTCP torna-se passivel utilizar RMON podendo assim gerenciar tambem

subredes

ORMaN e a capacidade de gerenciamento remoto do SNMP Porem tenta

diminuir a quantidade de informag6es tracadas entre a rede local gerenciada e a

estagao gerente

Os agentes que implementam a RMON MIB possuem cinco fungoes

bull Operagoes Off-line Operagoes que permitem 0 agente continuar

executando suas taretas mesma que a comunicac8o com a estagao de

gerenciamento nao seja passivel ou saja ineficiente

Monitorarao pro-ativa permite-s8 executar continuamente diagnosticos

e manter logs do desempenho das redes a fim de desenvolver a fungao de

baseline ista e manter hist6ricos das opera90es normais por um tempo

estendido e em seguida lazar uma analise para identificar problemas

potenciais na rede

bull Detecgao e registro de problemas 0 monitor RMON pode reconhecer

determinadas condigoes das redes fazendo constantes averigua6es com

II

o objetive de informar ao gerenle sabre eventos e situat6es de erras

significativos para a rede

Valorizacao dos dados coletados 0 monitor RMON pode realizar

analises especfficas sobre os dados coletados em suas subredes

bull MUitiplos Gerentes olerece maior nivel de disponibilidade pois 0

diagnostico podera ser feito a partir de mais de uma estayao gerenle 0

uso de multiplos gerentes tambem permite a execuao de dilerentes

fungoes ou 0 gerenciamento de diferentes departamentos em uma

empresa

Dois padroes do protocolo RMON sao implementados

bull RMON1 Monitora em nivel de camada MAC (Media Access Control) 0

trafego e coleta de informaroes e estatlsticas do segmento de rede local

Faz ainda um diagnostico remote de arras e falhas contidas no segmento

com a ajuda de um analisador de protocolos

RMON2 Opera a nivel da camada de rede e camadas superiores

complementando portanto 0 RMON1 possibilitando coletar inlormaoes

estatisticas e monitorar a comunicarao fim-a-fim e 0 tnifego gerado por

dilerentes tipos de aplicaao

A configuraltao do gerenciamento RMON e compost a por uma estaltao central

de gerenciamento (tambem chamada de probe) que gerencia 0 tralego de uma rede

como um todo incluindo suas sub-redes Em cada sub-rede existe uma maquina que

gerencia localmente 0 tralego desta A ligura abaixo ilustra esta conligura[IO

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

IV

52 OBJETIVO DA FERRAMENTA POWERTCPSNMP 31

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP 31

54 DESVANTAGENS DA FERRAMENTA POWERTCP SNMP 32

55 UTILlZA~AO DA FERRAMENTA POWERTCP 32

56 DIAGRAMA DE CLASSES (UML) 33

561 DESCRI~AO DAS CLASSES UTILIZADAS PELA FERRAMENTA 34

562 CLASSE SNMPMESSAGE 34

563 CLASSE SNMPVARIABLES 36

564 CLASSE SNMPVARIABLE 41

565 CLASSE SNMPTRAPS 42

566 CLASSE SNMPTRAP 44

567 CLASSE SNMPTABLE

568 CLASSE SNMPTABLEROW

44

46

569 CLASSE SNMPMIB 47

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS 50

61 INTRODUCAo AO PROTOTIPO 50

62 OBJETIVO DO PROTOTIPO 50

63 MANUAL DO USUARIO PARA UTILIZACAO DO PROTOTIPO 51

631 COMO UTILIZAR 0 PROTOTIPO 52

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS 52

64 COOl GO FONTE DO PROTOTIPO DE GERENCIAMENTO DE FALHAS 55

7 TRABALHOS RELACIONADOS 56

8 CONCLUsAo 58

GLOSSARIO 74

REFERENCIAS BIBLlOGRIiFICAS 75

v

LlSTA DE FIGURAS

21 TROCA DE INFORMA~6ES ENTRE GERENTE - AGENTE 5

22 ARVORE DE IDENTIFICA~AO ASNl 7

23 EXEMPLO DE CONFIGURA~AO DE UMA REDE UTILIZANDO 0 RMON 12

31 CONTEXTO DO SNMP 19

32 FORMATO DA MENSAGEM SNMP E OS PoUS 20

51 DIAGRAMA COMPONENTES DA FERRAMENTA POWERTCP SNMP (UML) 31

61 TELA PRINCIPAL DO PROTOTIPO DE GERENCIAMENTO DE FALHAS 53

62 TELA DE MENSAGEM (TRAP) RECEBIDA DISPOSITIVO GERENCIAvEL 53

63 TELA DE ALTERA~AO DO CONTEUDO DAS VARIAvEIS NA MIB 54

64 AGENTE DISPONiVEL NA INTERNET EXEMPLIFICANDO POWERTCP 54

65 ERRO NA TENTATIVA DE AL TERA~AO DO 010 55

LlSTA DE TABELAS

21 CATEGORIAS DE INFORMA~6ES DA MIB

1

9

VII

LlSTA DE ABREVIATURAS

API APLICATION PROGRAM INTERFACE

ASNl ABSTRACT SYNTAX NOTATION ONE

DMI DESKTOP MNAGEMENT INTERFACE

DMTF DESKTOP MANAGEMENTE TASK FORCE

lAB INTERNET ACTIVIES BOARD

IETF INTERNET ENGEENEERING TASK FORCE

IP Internet Protocol

IPC Inter Process Comunication

ISO International Organization for Standardization

MIB Management Information Base

010 Object Indentifier

ORB Object Request Broker

OSI Open Systems Interconnection

PDU Protocol Data Unit

RMI Remote Method Invocation

RMON Remote Network Monitoring

SMI Structure of Management Information

SNMP Simple Network Management Protocol

TCP Transmission Control Protocol

UDP User Datagram Protocol

1 INTRODUltAO

As redes foram criadas inicialmente como urn meio de compartilhar

dispositivQS e perifericos como impressoras modems paineis pc~fax e outros

Entretanta it medida que as redes crescem e tornam-se integradas as orgarliza~6es

o compartilhamento dos dispositivos tom a aspecto secundario em compara~ao as

Qutras vantagens oferecidas As redes passararn a fazer parte do cotidiano das

corporacoes como uma ferramenta que oferece recursos 8 servicos qlle permitem a

interacao e 0 aumento de produtividade

Considerando ests quadro no capitulo 2 sera discutida a ger~ncia de redes

que e cada vez mais necessaria para manter todo este ambiente em funcionamento

A gerencia em redes de computadores torna-S9 tareta complexa em boa parte par

con sequencia do crescimento acelerado das mesmas tanto em desempenho coma

em suporte a urn grande con junto de servi~os Alem disso as sistemas de

telecomunicaoes parte components das redes tambem adicionam complexidade a

estas redes e estarao cada vez mais presentes mesmo em pequenas instalacoes

Este can junto de componentes (e os problemas associados) somente podera

ser gerenciado se for seguida uma estrutura bem definida Admitindo-se que as

ferramentas para gensectncia de rades nao abrangem todos as problemas de uma rede

e que estas nem sempre sao usadas nas organizacoes que possuem redes S6 faz

necessaria que outros mecanismos de garEncia sejam utilizados para suprir suas

carencias rnais evidentes

As informayoes que circulam em uma rede de computadores devem ser

transportadas de modo confiavel e nipido Para que isso aconteca e importante que

os dados sejam monitorados de maneira que os problemas que porventura possam

existir sejam resolvidos Uma rede sem mecanismos de gerencia pode apresentar

problemas como congestionamento do trafago recursos mal utilizados recursos

sobrecarregados problemas com seguranltae outros

o gerenciamento supoe a existencia de esta90es de gerenciamento onde

sao executados as aplicacoesde gerenciamento em n6s gerenciados que sao os

elementos da rede (estalt6es hubs switches e outros equipamentos de

comunica9ao) que desempenham funcoesde comunicacaona operaltaonormal das

redes atraves dos chamados protocolos uleis Estes protocolos pennitem 0

monitoramento e controle do seu funcionamento sendo que 0 protocolo de gerencia

de rede mais usado e 0 SNMP (Simple Network Management Protocol) que sera

discutido no capitulo 3 onde serao informados a origem as caracterfsticas

funcionamento a arquitetura segurana e as aplica09s do protocolo SNMP

A implementacaode urn sistema de gerenciamento de rede eficiente exige urn

conhecimento tecnico bastante profundo do funcionamento da rede dos elementos

a serem gerenciados e do proprio metoda e prolocolo de gerenciamento Esle

trabalho tern como objetivo principal fazer urn estudo da ferramenta de

gerenciamento de rede PowerTCP (apresentada no capitulo 5) que possui urn

c6digo de acesso a bibliotecas protegidas au compiladas exemplificando uma

aplicaltaogerenciadora um agente e uma MIB Sera estudada e documentada a

ferramenta visando auxiliar os desenvolvedores de aplica90es de gerenciamento de

rede no entendimenlo da ferramenta disponibilizada conveniencia e tambem na

facilidade de implementay8o 0 Objetivo secunda rio deste projeto e exemplificar 0

estuda da ferramenta PawerTcp atraves de um exemplo simples de implementa8o

de um prototipo de gerencia de falhas utilizando-se para tanto 0 agente

disponibilizado na ferramenla PowerTCP apresentado no capitulo 6

2 GERENCIAMENTO DE REDES

o gerenciamento de rede busca maximizar a pradutividade e a eficiencia para

alcancar esses objelivos a ISO (International Organization for Standards) definiu

cinco fun~oes

1 Gerenciamento de Configuratyao Responseivel por detectar e contralar 0

astado da rede tanto a parte 169icacomo a parte fisica

2 Gerenciamento de Desempenho Responsavel por controlar e analisar 0

usa e a taxa de erras na rede mantendo um historico de informagao

3 Gerenciamento de Falhas Responsavel por detectar isolar e controlar

procedimentos anormais que estejam ocorrendo na rede

4 Gerenciamento de Contabilidade Responsavel par coletar e processar

dados relacionados ao usa da rede

5 Gerenciamento de Segurantya Responsavel por controlar 0 acesso aDs

recursos da rede utilizandomiddotse tecnicas de autentica9ao e polfticas de

autoriza9ao

Essas funQ5es de gerenciamento de rede podem ser agrupadas em duas

categorias monitoracao e controle de rede (MOR 1997)

A categoria de Illonitoracilo engloba as funcoes de gerenciamento de

desempenho falha e contabilizaltao que 59 destinam a observa~ao e analise dos

estados da rede e seus elementos

As informat6es monitoradas podem ser de tres tipos

Estaticas Sao as informalt5es que sofrem poucas alteray6es Por

exemplo A descricao de uma estaao de trabalho em uma rede (nome e

endereco)

Dinamicas Sao informat6es que alteram com certa frequencia Por

exemple 0 numero de pacotes com erro em uma transmissao

Estatisticas Sao as informat6es derivadas das dinamicas Por examplo

o numero de pacotes com erro em urn determinado tempo

A categoria de controle engloba as funt6es de gerenciamento de

configurayao e seguranya que se envolvem com as alteralt6es nas configuraltoes

das redes e seus elementos

A estrutura adotada pelos sistemas de gerenciamento de rede e mostrada na

Figura 21 onde 0 gerenciamento e realizado com e compartilhamento de variaveis

armazenadas na Base de Informaltao Gerenciaveis (MIB) trocando informaltoes

atraves de urnprotocolo de comunica~o que segue 0 modelo Cliente middotServidor

Figura 21- Troca de informa90es entre gerente - agente (MOR 1997)

As informacoes de gerenciarnento de redes pod em ser coletadas de duas

farmas

bull Polling E a forma tradicional peja qual 0 gerente requisita as informacoes

para a agente e este as retorna 0 seu usa e ac-anselhavel para

gerenciamento de informacoes que se alteram com pallca freqOencia

Trap Ao contra rio do Polling as informa~6es sao geradas pelo agente e

enviadas para 0 gerente Traps sao utilizados elll dois casos Para enviar

informayoes sabre 0 estado atual das informalt6es gerenciaveis e para

alertar 0 gerente sabre alguma situacao qlle nao e normal que esteja

acorrendo au ira ocarrer

A eseolha da forma que devera ser realizada a coleta de informacoes

dependera da configuraltao de cada rede a sar gerenciada comumente e adotado 0

seguinte esquema Iniciayao utiliza-se 0 Polling e posteriormente 0 Trap

21 STRUCTURE OF MANAGEMENT INFORMATION (SMI)

o 8MI e responsavel por deserever as estruturas e 0 esquema de

identificacao usado na defini9ao das informaltoes de gerenciamento Ele inclui a

desericao de um rnodelo de informacao dos objelos para 0 gereneiamenlo de rede

assim como um conjunto de tipos usados para descrever informac6es de

gerenciamento As estruturas sao definidas formalmente atraves da linguagem ASN

1

Cada objeto gerenciado especificado na SMI atravs de uma macro ASN

que inclui nome sintaxe nilel de acesso e informagoes relacionadas aobrigatoriedade da implementaao do objeto

Para identificar unicamente urn determinado objeto a nome ou identificador efarmada par uma sequencia de numeros inteiros nao negativQs abOdos atrav8S da

arvore de identificaao ASN 1 Figura 22 (MOR 1997)

Figura 22- Arvore de Identificaao ASN 1 (MOR 1997)

22 MANAGEMENT INFORMATION BASE (MIB)

Urn host gerenciado deve manter as informa90es de controle e status para

que 0 administrador possa acessa-Io a roteador par exemplo mantem estatfsticas

sobre 0 status de suas interfaces de rede trafego de entrada e saida datagramas

inlerrompidos e mensagens de erro geradas Embora isso permita que urn

administrador acesse essas estatfsticas 0 SNMP nao especifica exatamente quais

dados podem ser acessados ao contrario um pad rae a parte especifica os detalhes

o padrao conhecido como MIB (Management Information Base) especifica os dados

que um host deve manter e as opera~6espermitidas em cada um deles como par

exemple A MIB determina que a software IP deve manter uma contagem de todos

os oetetos que chegam em cad a interface de rede e que a software de

gerenciamento de rede pode ler apenas aqueles valores

A Base de Informacao de Gerenciamento descreve os objetos a serem

implementados e armazena os valores associados de forma que possam ser vistos

como uma base de informa~aovirtual Por exemple todes os dispositivos da rede

Internet que se constituem em nos gerenciaveis devem implementar a MIB padrao

Internet (MOR 1997)

A MIB para 0 TCPIP classilica as inlorma90es de gerenciamento em oito

categorias como mostra a TabeJa 21 A op~aode categorias e importante porque

as identificadores usados para especificar itens incluem um c6digo par categoria

Categoria da MIB Inclui Informayoes Sobre

Sistema o sistema operacional do roteador ou do loSt

Interfaces Interiaces de redes especfficas

convend Conversiio de endereco (por exemplo mapeamento do

ARP)

Ip Software do Protocolo Internet

Icmp Software do Protocolo de Controle de Mensagens da

Internet

Tep Software do Protocolo de Controle de Transmissao

Udp Software do Protocolo de Datagrama dos Usuarios

Egp Software do Protocolo de Gateway Externo

-Tabela 2 1 - Categonas de Informapoes da MIa

Manter a definiltao da MB independents do protocolo de gerenciamento da

rede traz vantagens tanto para fornecedores quanta para usuarios 0 fornecedor

pode incluir urn agente de software SNMP em um prod uta como um roteador com a

garantia de que 0 software continuara a aderir ao padrao apos a definicao dos novas

itens MIB urn cliente pode usar 0 mesma software do cliente de gerenciamento de

rede para administrar varios roteadores que tenham vers6es diferentes da MIB

Naturalmente um roteador que nao disponha dos novas itens da MIB nao podera

fornecer as informatoes que estiverem naqueles itens entretanto como todes as

roteadores utilizam a mesma linguagem para comunicaao todos eles podem

analisar uma consulta e fornecer a informacao solicitada au enviar uma mensagem

de erro explicando que nao possuem 0 item solicitado (COMER 13 1998)

10

23 RMON (REMOTE MONITORING)

Enquanto 0 SNMP trabailla limitadamente en de 0 gerente obtem apenas

informagoes de um determinado equipamenlo os monilores do RMON (Rem ole

Monitoring) tambem cllamados de probes trabalham capturando as informagoes da

rede como um todD Com aplicagoes desenvolvidas utilizando a ferramenta

PowerTCP torna-se passivel utilizar RMON podendo assim gerenciar tambem

subredes

ORMaN e a capacidade de gerenciamento remoto do SNMP Porem tenta

diminuir a quantidade de informag6es tracadas entre a rede local gerenciada e a

estagao gerente

Os agentes que implementam a RMON MIB possuem cinco fungoes

bull Operagoes Off-line Operagoes que permitem 0 agente continuar

executando suas taretas mesma que a comunicac8o com a estagao de

gerenciamento nao seja passivel ou saja ineficiente

Monitorarao pro-ativa permite-s8 executar continuamente diagnosticos

e manter logs do desempenho das redes a fim de desenvolver a fungao de

baseline ista e manter hist6ricos das opera90es normais por um tempo

estendido e em seguida lazar uma analise para identificar problemas

potenciais na rede

bull Detecgao e registro de problemas 0 monitor RMON pode reconhecer

determinadas condigoes das redes fazendo constantes averigua6es com

II

o objetive de informar ao gerenle sabre eventos e situat6es de erras

significativos para a rede

Valorizacao dos dados coletados 0 monitor RMON pode realizar

analises especfficas sobre os dados coletados em suas subredes

bull MUitiplos Gerentes olerece maior nivel de disponibilidade pois 0

diagnostico podera ser feito a partir de mais de uma estayao gerenle 0

uso de multiplos gerentes tambem permite a execuao de dilerentes

fungoes ou 0 gerenciamento de diferentes departamentos em uma

empresa

Dois padroes do protocolo RMON sao implementados

bull RMON1 Monitora em nivel de camada MAC (Media Access Control) 0

trafego e coleta de informaroes e estatlsticas do segmento de rede local

Faz ainda um diagnostico remote de arras e falhas contidas no segmento

com a ajuda de um analisador de protocolos

RMON2 Opera a nivel da camada de rede e camadas superiores

complementando portanto 0 RMON1 possibilitando coletar inlormaoes

estatisticas e monitorar a comunicarao fim-a-fim e 0 tnifego gerado por

dilerentes tipos de aplicaao

A configuraltao do gerenciamento RMON e compost a por uma estaltao central

de gerenciamento (tambem chamada de probe) que gerencia 0 tralego de uma rede

como um todo incluindo suas sub-redes Em cada sub-rede existe uma maquina que

gerencia localmente 0 tralego desta A ligura abaixo ilustra esta conligura[IO

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

v

LlSTA DE FIGURAS

21 TROCA DE INFORMA~6ES ENTRE GERENTE - AGENTE 5

22 ARVORE DE IDENTIFICA~AO ASNl 7

23 EXEMPLO DE CONFIGURA~AO DE UMA REDE UTILIZANDO 0 RMON 12

31 CONTEXTO DO SNMP 19

32 FORMATO DA MENSAGEM SNMP E OS PoUS 20

51 DIAGRAMA COMPONENTES DA FERRAMENTA POWERTCP SNMP (UML) 31

61 TELA PRINCIPAL DO PROTOTIPO DE GERENCIAMENTO DE FALHAS 53

62 TELA DE MENSAGEM (TRAP) RECEBIDA DISPOSITIVO GERENCIAvEL 53

63 TELA DE ALTERA~AO DO CONTEUDO DAS VARIAvEIS NA MIB 54

64 AGENTE DISPONiVEL NA INTERNET EXEMPLIFICANDO POWERTCP 54

65 ERRO NA TENTATIVA DE AL TERA~AO DO 010 55

LlSTA DE TABELAS

21 CATEGORIAS DE INFORMA~6ES DA MIB

1

9

VII

LlSTA DE ABREVIATURAS

API APLICATION PROGRAM INTERFACE

ASNl ABSTRACT SYNTAX NOTATION ONE

DMI DESKTOP MNAGEMENT INTERFACE

DMTF DESKTOP MANAGEMENTE TASK FORCE

lAB INTERNET ACTIVIES BOARD

IETF INTERNET ENGEENEERING TASK FORCE

IP Internet Protocol

IPC Inter Process Comunication

ISO International Organization for Standardization

MIB Management Information Base

010 Object Indentifier

ORB Object Request Broker

OSI Open Systems Interconnection

PDU Protocol Data Unit

RMI Remote Method Invocation

RMON Remote Network Monitoring

SMI Structure of Management Information

SNMP Simple Network Management Protocol

TCP Transmission Control Protocol

UDP User Datagram Protocol

1 INTRODUltAO

As redes foram criadas inicialmente como urn meio de compartilhar

dispositivQS e perifericos como impressoras modems paineis pc~fax e outros

Entretanta it medida que as redes crescem e tornam-se integradas as orgarliza~6es

o compartilhamento dos dispositivos tom a aspecto secundario em compara~ao as

Qutras vantagens oferecidas As redes passararn a fazer parte do cotidiano das

corporacoes como uma ferramenta que oferece recursos 8 servicos qlle permitem a

interacao e 0 aumento de produtividade

Considerando ests quadro no capitulo 2 sera discutida a ger~ncia de redes

que e cada vez mais necessaria para manter todo este ambiente em funcionamento

A gerencia em redes de computadores torna-S9 tareta complexa em boa parte par

con sequencia do crescimento acelerado das mesmas tanto em desempenho coma

em suporte a urn grande con junto de servi~os Alem disso as sistemas de

telecomunicaoes parte components das redes tambem adicionam complexidade a

estas redes e estarao cada vez mais presentes mesmo em pequenas instalacoes

Este can junto de componentes (e os problemas associados) somente podera

ser gerenciado se for seguida uma estrutura bem definida Admitindo-se que as

ferramentas para gensectncia de rades nao abrangem todos as problemas de uma rede

e que estas nem sempre sao usadas nas organizacoes que possuem redes S6 faz

necessaria que outros mecanismos de garEncia sejam utilizados para suprir suas

carencias rnais evidentes

As informayoes que circulam em uma rede de computadores devem ser

transportadas de modo confiavel e nipido Para que isso aconteca e importante que

os dados sejam monitorados de maneira que os problemas que porventura possam

existir sejam resolvidos Uma rede sem mecanismos de gerencia pode apresentar

problemas como congestionamento do trafago recursos mal utilizados recursos

sobrecarregados problemas com seguranltae outros

o gerenciamento supoe a existencia de esta90es de gerenciamento onde

sao executados as aplicacoesde gerenciamento em n6s gerenciados que sao os

elementos da rede (estalt6es hubs switches e outros equipamentos de

comunica9ao) que desempenham funcoesde comunicacaona operaltaonormal das

redes atraves dos chamados protocolos uleis Estes protocolos pennitem 0

monitoramento e controle do seu funcionamento sendo que 0 protocolo de gerencia

de rede mais usado e 0 SNMP (Simple Network Management Protocol) que sera

discutido no capitulo 3 onde serao informados a origem as caracterfsticas

funcionamento a arquitetura segurana e as aplica09s do protocolo SNMP

A implementacaode urn sistema de gerenciamento de rede eficiente exige urn

conhecimento tecnico bastante profundo do funcionamento da rede dos elementos

a serem gerenciados e do proprio metoda e prolocolo de gerenciamento Esle

trabalho tern como objetivo principal fazer urn estudo da ferramenta de

gerenciamento de rede PowerTCP (apresentada no capitulo 5) que possui urn

c6digo de acesso a bibliotecas protegidas au compiladas exemplificando uma

aplicaltaogerenciadora um agente e uma MIB Sera estudada e documentada a

ferramenta visando auxiliar os desenvolvedores de aplica90es de gerenciamento de

rede no entendimenlo da ferramenta disponibilizada conveniencia e tambem na

facilidade de implementay8o 0 Objetivo secunda rio deste projeto e exemplificar 0

estuda da ferramenta PawerTcp atraves de um exemplo simples de implementa8o

de um prototipo de gerencia de falhas utilizando-se para tanto 0 agente

disponibilizado na ferramenla PowerTCP apresentado no capitulo 6

2 GERENCIAMENTO DE REDES

o gerenciamento de rede busca maximizar a pradutividade e a eficiencia para

alcancar esses objelivos a ISO (International Organization for Standards) definiu

cinco fun~oes

1 Gerenciamento de Configuratyao Responseivel por detectar e contralar 0

astado da rede tanto a parte 169icacomo a parte fisica

2 Gerenciamento de Desempenho Responsavel por controlar e analisar 0

usa e a taxa de erras na rede mantendo um historico de informagao

3 Gerenciamento de Falhas Responsavel por detectar isolar e controlar

procedimentos anormais que estejam ocorrendo na rede

4 Gerenciamento de Contabilidade Responsavel par coletar e processar

dados relacionados ao usa da rede

5 Gerenciamento de Segurantya Responsavel por controlar 0 acesso aDs

recursos da rede utilizandomiddotse tecnicas de autentica9ao e polfticas de

autoriza9ao

Essas funQ5es de gerenciamento de rede podem ser agrupadas em duas

categorias monitoracao e controle de rede (MOR 1997)

A categoria de Illonitoracilo engloba as funcoes de gerenciamento de

desempenho falha e contabilizaltao que 59 destinam a observa~ao e analise dos

estados da rede e seus elementos

As informat6es monitoradas podem ser de tres tipos

Estaticas Sao as informalt5es que sofrem poucas alteray6es Por

exemplo A descricao de uma estaao de trabalho em uma rede (nome e

endereco)

Dinamicas Sao informat6es que alteram com certa frequencia Por

exemple 0 numero de pacotes com erro em uma transmissao

Estatisticas Sao as informat6es derivadas das dinamicas Por examplo

o numero de pacotes com erro em urn determinado tempo

A categoria de controle engloba as funt6es de gerenciamento de

configurayao e seguranya que se envolvem com as alteralt6es nas configuraltoes

das redes e seus elementos

A estrutura adotada pelos sistemas de gerenciamento de rede e mostrada na

Figura 21 onde 0 gerenciamento e realizado com e compartilhamento de variaveis

armazenadas na Base de Informaltao Gerenciaveis (MIB) trocando informaltoes

atraves de urnprotocolo de comunica~o que segue 0 modelo Cliente middotServidor

Figura 21- Troca de informa90es entre gerente - agente (MOR 1997)

As informacoes de gerenciarnento de redes pod em ser coletadas de duas

farmas

bull Polling E a forma tradicional peja qual 0 gerente requisita as informacoes

para a agente e este as retorna 0 seu usa e ac-anselhavel para

gerenciamento de informacoes que se alteram com pallca freqOencia

Trap Ao contra rio do Polling as informa~6es sao geradas pelo agente e

enviadas para 0 gerente Traps sao utilizados elll dois casos Para enviar

informayoes sabre 0 estado atual das informalt6es gerenciaveis e para

alertar 0 gerente sabre alguma situacao qlle nao e normal que esteja

acorrendo au ira ocarrer

A eseolha da forma que devera ser realizada a coleta de informacoes

dependera da configuraltao de cada rede a sar gerenciada comumente e adotado 0

seguinte esquema Iniciayao utiliza-se 0 Polling e posteriormente 0 Trap

21 STRUCTURE OF MANAGEMENT INFORMATION (SMI)

o 8MI e responsavel por deserever as estruturas e 0 esquema de

identificacao usado na defini9ao das informaltoes de gerenciamento Ele inclui a

desericao de um rnodelo de informacao dos objelos para 0 gereneiamenlo de rede

assim como um conjunto de tipos usados para descrever informac6es de

gerenciamento As estruturas sao definidas formalmente atraves da linguagem ASN

1

Cada objeto gerenciado especificado na SMI atravs de uma macro ASN

que inclui nome sintaxe nilel de acesso e informagoes relacionadas aobrigatoriedade da implementaao do objeto

Para identificar unicamente urn determinado objeto a nome ou identificador efarmada par uma sequencia de numeros inteiros nao negativQs abOdos atrav8S da

arvore de identificaao ASN 1 Figura 22 (MOR 1997)

Figura 22- Arvore de Identificaao ASN 1 (MOR 1997)

22 MANAGEMENT INFORMATION BASE (MIB)

Urn host gerenciado deve manter as informa90es de controle e status para

que 0 administrador possa acessa-Io a roteador par exemplo mantem estatfsticas

sobre 0 status de suas interfaces de rede trafego de entrada e saida datagramas

inlerrompidos e mensagens de erro geradas Embora isso permita que urn

administrador acesse essas estatfsticas 0 SNMP nao especifica exatamente quais

dados podem ser acessados ao contrario um pad rae a parte especifica os detalhes

o padrao conhecido como MIB (Management Information Base) especifica os dados

que um host deve manter e as opera~6espermitidas em cada um deles como par

exemple A MIB determina que a software IP deve manter uma contagem de todos

os oetetos que chegam em cad a interface de rede e que a software de

gerenciamento de rede pode ler apenas aqueles valores

A Base de Informacao de Gerenciamento descreve os objetos a serem

implementados e armazena os valores associados de forma que possam ser vistos

como uma base de informa~aovirtual Por exemple todes os dispositivos da rede

Internet que se constituem em nos gerenciaveis devem implementar a MIB padrao

Internet (MOR 1997)

A MIB para 0 TCPIP classilica as inlorma90es de gerenciamento em oito

categorias como mostra a TabeJa 21 A op~aode categorias e importante porque

as identificadores usados para especificar itens incluem um c6digo par categoria

Categoria da MIB Inclui Informayoes Sobre

Sistema o sistema operacional do roteador ou do loSt

Interfaces Interiaces de redes especfficas

convend Conversiio de endereco (por exemplo mapeamento do

ARP)

Ip Software do Protocolo Internet

Icmp Software do Protocolo de Controle de Mensagens da

Internet

Tep Software do Protocolo de Controle de Transmissao

Udp Software do Protocolo de Datagrama dos Usuarios

Egp Software do Protocolo de Gateway Externo

-Tabela 2 1 - Categonas de Informapoes da MIa

Manter a definiltao da MB independents do protocolo de gerenciamento da

rede traz vantagens tanto para fornecedores quanta para usuarios 0 fornecedor

pode incluir urn agente de software SNMP em um prod uta como um roteador com a

garantia de que 0 software continuara a aderir ao padrao apos a definicao dos novas

itens MIB urn cliente pode usar 0 mesma software do cliente de gerenciamento de

rede para administrar varios roteadores que tenham vers6es diferentes da MIB

Naturalmente um roteador que nao disponha dos novas itens da MIB nao podera

fornecer as informatoes que estiverem naqueles itens entretanto como todes as

roteadores utilizam a mesma linguagem para comunicaao todos eles podem

analisar uma consulta e fornecer a informacao solicitada au enviar uma mensagem

de erro explicando que nao possuem 0 item solicitado (COMER 13 1998)

10

23 RMON (REMOTE MONITORING)

Enquanto 0 SNMP trabailla limitadamente en de 0 gerente obtem apenas

informagoes de um determinado equipamenlo os monilores do RMON (Rem ole

Monitoring) tambem cllamados de probes trabalham capturando as informagoes da

rede como um todD Com aplicagoes desenvolvidas utilizando a ferramenta

PowerTCP torna-se passivel utilizar RMON podendo assim gerenciar tambem

subredes

ORMaN e a capacidade de gerenciamento remoto do SNMP Porem tenta

diminuir a quantidade de informag6es tracadas entre a rede local gerenciada e a

estagao gerente

Os agentes que implementam a RMON MIB possuem cinco fungoes

bull Operagoes Off-line Operagoes que permitem 0 agente continuar

executando suas taretas mesma que a comunicac8o com a estagao de

gerenciamento nao seja passivel ou saja ineficiente

Monitorarao pro-ativa permite-s8 executar continuamente diagnosticos

e manter logs do desempenho das redes a fim de desenvolver a fungao de

baseline ista e manter hist6ricos das opera90es normais por um tempo

estendido e em seguida lazar uma analise para identificar problemas

potenciais na rede

bull Detecgao e registro de problemas 0 monitor RMON pode reconhecer

determinadas condigoes das redes fazendo constantes averigua6es com

II

o objetive de informar ao gerenle sabre eventos e situat6es de erras

significativos para a rede

Valorizacao dos dados coletados 0 monitor RMON pode realizar

analises especfficas sobre os dados coletados em suas subredes

bull MUitiplos Gerentes olerece maior nivel de disponibilidade pois 0

diagnostico podera ser feito a partir de mais de uma estayao gerenle 0

uso de multiplos gerentes tambem permite a execuao de dilerentes

fungoes ou 0 gerenciamento de diferentes departamentos em uma

empresa

Dois padroes do protocolo RMON sao implementados

bull RMON1 Monitora em nivel de camada MAC (Media Access Control) 0

trafego e coleta de informaroes e estatlsticas do segmento de rede local

Faz ainda um diagnostico remote de arras e falhas contidas no segmento

com a ajuda de um analisador de protocolos

RMON2 Opera a nivel da camada de rede e camadas superiores

complementando portanto 0 RMON1 possibilitando coletar inlormaoes

estatisticas e monitorar a comunicarao fim-a-fim e 0 tnifego gerado por

dilerentes tipos de aplicaao

A configuraltao do gerenciamento RMON e compost a por uma estaltao central

de gerenciamento (tambem chamada de probe) que gerencia 0 tralego de uma rede

como um todo incluindo suas sub-redes Em cada sub-rede existe uma maquina que

gerencia localmente 0 tralego desta A ligura abaixo ilustra esta conligura[IO

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

LlSTA DE TABELAS

21 CATEGORIAS DE INFORMA~6ES DA MIB

1

9

VII

LlSTA DE ABREVIATURAS

API APLICATION PROGRAM INTERFACE

ASNl ABSTRACT SYNTAX NOTATION ONE

DMI DESKTOP MNAGEMENT INTERFACE

DMTF DESKTOP MANAGEMENTE TASK FORCE

lAB INTERNET ACTIVIES BOARD

IETF INTERNET ENGEENEERING TASK FORCE

IP Internet Protocol

IPC Inter Process Comunication

ISO International Organization for Standardization

MIB Management Information Base

010 Object Indentifier

ORB Object Request Broker

OSI Open Systems Interconnection

PDU Protocol Data Unit

RMI Remote Method Invocation

RMON Remote Network Monitoring

SMI Structure of Management Information

SNMP Simple Network Management Protocol

TCP Transmission Control Protocol

UDP User Datagram Protocol

1 INTRODUltAO

As redes foram criadas inicialmente como urn meio de compartilhar

dispositivQS e perifericos como impressoras modems paineis pc~fax e outros

Entretanta it medida que as redes crescem e tornam-se integradas as orgarliza~6es

o compartilhamento dos dispositivos tom a aspecto secundario em compara~ao as

Qutras vantagens oferecidas As redes passararn a fazer parte do cotidiano das

corporacoes como uma ferramenta que oferece recursos 8 servicos qlle permitem a

interacao e 0 aumento de produtividade

Considerando ests quadro no capitulo 2 sera discutida a ger~ncia de redes

que e cada vez mais necessaria para manter todo este ambiente em funcionamento

A gerencia em redes de computadores torna-S9 tareta complexa em boa parte par

con sequencia do crescimento acelerado das mesmas tanto em desempenho coma

em suporte a urn grande con junto de servi~os Alem disso as sistemas de

telecomunicaoes parte components das redes tambem adicionam complexidade a

estas redes e estarao cada vez mais presentes mesmo em pequenas instalacoes

Este can junto de componentes (e os problemas associados) somente podera

ser gerenciado se for seguida uma estrutura bem definida Admitindo-se que as

ferramentas para gensectncia de rades nao abrangem todos as problemas de uma rede

e que estas nem sempre sao usadas nas organizacoes que possuem redes S6 faz

necessaria que outros mecanismos de garEncia sejam utilizados para suprir suas

carencias rnais evidentes

As informayoes que circulam em uma rede de computadores devem ser

transportadas de modo confiavel e nipido Para que isso aconteca e importante que

os dados sejam monitorados de maneira que os problemas que porventura possam

existir sejam resolvidos Uma rede sem mecanismos de gerencia pode apresentar

problemas como congestionamento do trafago recursos mal utilizados recursos

sobrecarregados problemas com seguranltae outros

o gerenciamento supoe a existencia de esta90es de gerenciamento onde

sao executados as aplicacoesde gerenciamento em n6s gerenciados que sao os

elementos da rede (estalt6es hubs switches e outros equipamentos de

comunica9ao) que desempenham funcoesde comunicacaona operaltaonormal das

redes atraves dos chamados protocolos uleis Estes protocolos pennitem 0

monitoramento e controle do seu funcionamento sendo que 0 protocolo de gerencia

de rede mais usado e 0 SNMP (Simple Network Management Protocol) que sera

discutido no capitulo 3 onde serao informados a origem as caracterfsticas

funcionamento a arquitetura segurana e as aplica09s do protocolo SNMP

A implementacaode urn sistema de gerenciamento de rede eficiente exige urn

conhecimento tecnico bastante profundo do funcionamento da rede dos elementos

a serem gerenciados e do proprio metoda e prolocolo de gerenciamento Esle

trabalho tern como objetivo principal fazer urn estudo da ferramenta de

gerenciamento de rede PowerTCP (apresentada no capitulo 5) que possui urn

c6digo de acesso a bibliotecas protegidas au compiladas exemplificando uma

aplicaltaogerenciadora um agente e uma MIB Sera estudada e documentada a

ferramenta visando auxiliar os desenvolvedores de aplica90es de gerenciamento de

rede no entendimenlo da ferramenta disponibilizada conveniencia e tambem na

facilidade de implementay8o 0 Objetivo secunda rio deste projeto e exemplificar 0

estuda da ferramenta PawerTcp atraves de um exemplo simples de implementa8o

de um prototipo de gerencia de falhas utilizando-se para tanto 0 agente

disponibilizado na ferramenla PowerTCP apresentado no capitulo 6

2 GERENCIAMENTO DE REDES

o gerenciamento de rede busca maximizar a pradutividade e a eficiencia para

alcancar esses objelivos a ISO (International Organization for Standards) definiu

cinco fun~oes

1 Gerenciamento de Configuratyao Responseivel por detectar e contralar 0

astado da rede tanto a parte 169icacomo a parte fisica

2 Gerenciamento de Desempenho Responsavel por controlar e analisar 0

usa e a taxa de erras na rede mantendo um historico de informagao

3 Gerenciamento de Falhas Responsavel por detectar isolar e controlar

procedimentos anormais que estejam ocorrendo na rede

4 Gerenciamento de Contabilidade Responsavel par coletar e processar

dados relacionados ao usa da rede

5 Gerenciamento de Segurantya Responsavel por controlar 0 acesso aDs

recursos da rede utilizandomiddotse tecnicas de autentica9ao e polfticas de

autoriza9ao

Essas funQ5es de gerenciamento de rede podem ser agrupadas em duas

categorias monitoracao e controle de rede (MOR 1997)

A categoria de Illonitoracilo engloba as funcoes de gerenciamento de

desempenho falha e contabilizaltao que 59 destinam a observa~ao e analise dos

estados da rede e seus elementos

As informat6es monitoradas podem ser de tres tipos

Estaticas Sao as informalt5es que sofrem poucas alteray6es Por

exemplo A descricao de uma estaao de trabalho em uma rede (nome e

endereco)

Dinamicas Sao informat6es que alteram com certa frequencia Por

exemple 0 numero de pacotes com erro em uma transmissao

Estatisticas Sao as informat6es derivadas das dinamicas Por examplo

o numero de pacotes com erro em urn determinado tempo

A categoria de controle engloba as funt6es de gerenciamento de

configurayao e seguranya que se envolvem com as alteralt6es nas configuraltoes

das redes e seus elementos

A estrutura adotada pelos sistemas de gerenciamento de rede e mostrada na

Figura 21 onde 0 gerenciamento e realizado com e compartilhamento de variaveis

armazenadas na Base de Informaltao Gerenciaveis (MIB) trocando informaltoes

atraves de urnprotocolo de comunica~o que segue 0 modelo Cliente middotServidor

Figura 21- Troca de informa90es entre gerente - agente (MOR 1997)

As informacoes de gerenciarnento de redes pod em ser coletadas de duas

farmas

bull Polling E a forma tradicional peja qual 0 gerente requisita as informacoes

para a agente e este as retorna 0 seu usa e ac-anselhavel para

gerenciamento de informacoes que se alteram com pallca freqOencia

Trap Ao contra rio do Polling as informa~6es sao geradas pelo agente e

enviadas para 0 gerente Traps sao utilizados elll dois casos Para enviar

informayoes sabre 0 estado atual das informalt6es gerenciaveis e para

alertar 0 gerente sabre alguma situacao qlle nao e normal que esteja

acorrendo au ira ocarrer

A eseolha da forma que devera ser realizada a coleta de informacoes

dependera da configuraltao de cada rede a sar gerenciada comumente e adotado 0

seguinte esquema Iniciayao utiliza-se 0 Polling e posteriormente 0 Trap

21 STRUCTURE OF MANAGEMENT INFORMATION (SMI)

o 8MI e responsavel por deserever as estruturas e 0 esquema de

identificacao usado na defini9ao das informaltoes de gerenciamento Ele inclui a

desericao de um rnodelo de informacao dos objelos para 0 gereneiamenlo de rede

assim como um conjunto de tipos usados para descrever informac6es de

gerenciamento As estruturas sao definidas formalmente atraves da linguagem ASN

1

Cada objeto gerenciado especificado na SMI atravs de uma macro ASN

que inclui nome sintaxe nilel de acesso e informagoes relacionadas aobrigatoriedade da implementaao do objeto

Para identificar unicamente urn determinado objeto a nome ou identificador efarmada par uma sequencia de numeros inteiros nao negativQs abOdos atrav8S da

arvore de identificaao ASN 1 Figura 22 (MOR 1997)

Figura 22- Arvore de Identificaao ASN 1 (MOR 1997)

22 MANAGEMENT INFORMATION BASE (MIB)

Urn host gerenciado deve manter as informa90es de controle e status para

que 0 administrador possa acessa-Io a roteador par exemplo mantem estatfsticas

sobre 0 status de suas interfaces de rede trafego de entrada e saida datagramas

inlerrompidos e mensagens de erro geradas Embora isso permita que urn

administrador acesse essas estatfsticas 0 SNMP nao especifica exatamente quais

dados podem ser acessados ao contrario um pad rae a parte especifica os detalhes

o padrao conhecido como MIB (Management Information Base) especifica os dados

que um host deve manter e as opera~6espermitidas em cada um deles como par

exemple A MIB determina que a software IP deve manter uma contagem de todos

os oetetos que chegam em cad a interface de rede e que a software de

gerenciamento de rede pode ler apenas aqueles valores

A Base de Informacao de Gerenciamento descreve os objetos a serem

implementados e armazena os valores associados de forma que possam ser vistos

como uma base de informa~aovirtual Por exemple todes os dispositivos da rede

Internet que se constituem em nos gerenciaveis devem implementar a MIB padrao

Internet (MOR 1997)

A MIB para 0 TCPIP classilica as inlorma90es de gerenciamento em oito

categorias como mostra a TabeJa 21 A op~aode categorias e importante porque

as identificadores usados para especificar itens incluem um c6digo par categoria

Categoria da MIB Inclui Informayoes Sobre

Sistema o sistema operacional do roteador ou do loSt

Interfaces Interiaces de redes especfficas

convend Conversiio de endereco (por exemplo mapeamento do

ARP)

Ip Software do Protocolo Internet

Icmp Software do Protocolo de Controle de Mensagens da

Internet

Tep Software do Protocolo de Controle de Transmissao

Udp Software do Protocolo de Datagrama dos Usuarios

Egp Software do Protocolo de Gateway Externo

-Tabela 2 1 - Categonas de Informapoes da MIa

Manter a definiltao da MB independents do protocolo de gerenciamento da

rede traz vantagens tanto para fornecedores quanta para usuarios 0 fornecedor

pode incluir urn agente de software SNMP em um prod uta como um roteador com a

garantia de que 0 software continuara a aderir ao padrao apos a definicao dos novas

itens MIB urn cliente pode usar 0 mesma software do cliente de gerenciamento de

rede para administrar varios roteadores que tenham vers6es diferentes da MIB

Naturalmente um roteador que nao disponha dos novas itens da MIB nao podera

fornecer as informatoes que estiverem naqueles itens entretanto como todes as

roteadores utilizam a mesma linguagem para comunicaao todos eles podem

analisar uma consulta e fornecer a informacao solicitada au enviar uma mensagem

de erro explicando que nao possuem 0 item solicitado (COMER 13 1998)

10

23 RMON (REMOTE MONITORING)

Enquanto 0 SNMP trabailla limitadamente en de 0 gerente obtem apenas

informagoes de um determinado equipamenlo os monilores do RMON (Rem ole

Monitoring) tambem cllamados de probes trabalham capturando as informagoes da

rede como um todD Com aplicagoes desenvolvidas utilizando a ferramenta

PowerTCP torna-se passivel utilizar RMON podendo assim gerenciar tambem

subredes

ORMaN e a capacidade de gerenciamento remoto do SNMP Porem tenta

diminuir a quantidade de informag6es tracadas entre a rede local gerenciada e a

estagao gerente

Os agentes que implementam a RMON MIB possuem cinco fungoes

bull Operagoes Off-line Operagoes que permitem 0 agente continuar

executando suas taretas mesma que a comunicac8o com a estagao de

gerenciamento nao seja passivel ou saja ineficiente

Monitorarao pro-ativa permite-s8 executar continuamente diagnosticos

e manter logs do desempenho das redes a fim de desenvolver a fungao de

baseline ista e manter hist6ricos das opera90es normais por um tempo

estendido e em seguida lazar uma analise para identificar problemas

potenciais na rede

bull Detecgao e registro de problemas 0 monitor RMON pode reconhecer

determinadas condigoes das redes fazendo constantes averigua6es com

II

o objetive de informar ao gerenle sabre eventos e situat6es de erras

significativos para a rede

Valorizacao dos dados coletados 0 monitor RMON pode realizar

analises especfficas sobre os dados coletados em suas subredes

bull MUitiplos Gerentes olerece maior nivel de disponibilidade pois 0

diagnostico podera ser feito a partir de mais de uma estayao gerenle 0

uso de multiplos gerentes tambem permite a execuao de dilerentes

fungoes ou 0 gerenciamento de diferentes departamentos em uma

empresa

Dois padroes do protocolo RMON sao implementados

bull RMON1 Monitora em nivel de camada MAC (Media Access Control) 0

trafego e coleta de informaroes e estatlsticas do segmento de rede local

Faz ainda um diagnostico remote de arras e falhas contidas no segmento

com a ajuda de um analisador de protocolos

RMON2 Opera a nivel da camada de rede e camadas superiores

complementando portanto 0 RMON1 possibilitando coletar inlormaoes

estatisticas e monitorar a comunicarao fim-a-fim e 0 tnifego gerado por

dilerentes tipos de aplicaao

A configuraltao do gerenciamento RMON e compost a por uma estaltao central

de gerenciamento (tambem chamada de probe) que gerencia 0 tralego de uma rede

como um todo incluindo suas sub-redes Em cada sub-rede existe uma maquina que

gerencia localmente 0 tralego desta A ligura abaixo ilustra esta conligura[IO

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

VII

LlSTA DE ABREVIATURAS

API APLICATION PROGRAM INTERFACE

ASNl ABSTRACT SYNTAX NOTATION ONE

DMI DESKTOP MNAGEMENT INTERFACE

DMTF DESKTOP MANAGEMENTE TASK FORCE

lAB INTERNET ACTIVIES BOARD

IETF INTERNET ENGEENEERING TASK FORCE

IP Internet Protocol

IPC Inter Process Comunication

ISO International Organization for Standardization

MIB Management Information Base

010 Object Indentifier

ORB Object Request Broker

OSI Open Systems Interconnection

PDU Protocol Data Unit

RMI Remote Method Invocation

RMON Remote Network Monitoring

SMI Structure of Management Information

SNMP Simple Network Management Protocol

TCP Transmission Control Protocol

UDP User Datagram Protocol

1 INTRODUltAO

As redes foram criadas inicialmente como urn meio de compartilhar

dispositivQS e perifericos como impressoras modems paineis pc~fax e outros

Entretanta it medida que as redes crescem e tornam-se integradas as orgarliza~6es

o compartilhamento dos dispositivos tom a aspecto secundario em compara~ao as

Qutras vantagens oferecidas As redes passararn a fazer parte do cotidiano das

corporacoes como uma ferramenta que oferece recursos 8 servicos qlle permitem a

interacao e 0 aumento de produtividade

Considerando ests quadro no capitulo 2 sera discutida a ger~ncia de redes

que e cada vez mais necessaria para manter todo este ambiente em funcionamento

A gerencia em redes de computadores torna-S9 tareta complexa em boa parte par

con sequencia do crescimento acelerado das mesmas tanto em desempenho coma

em suporte a urn grande con junto de servi~os Alem disso as sistemas de

telecomunicaoes parte components das redes tambem adicionam complexidade a

estas redes e estarao cada vez mais presentes mesmo em pequenas instalacoes

Este can junto de componentes (e os problemas associados) somente podera

ser gerenciado se for seguida uma estrutura bem definida Admitindo-se que as

ferramentas para gensectncia de rades nao abrangem todos as problemas de uma rede

e que estas nem sempre sao usadas nas organizacoes que possuem redes S6 faz

necessaria que outros mecanismos de garEncia sejam utilizados para suprir suas

carencias rnais evidentes

As informayoes que circulam em uma rede de computadores devem ser

transportadas de modo confiavel e nipido Para que isso aconteca e importante que

os dados sejam monitorados de maneira que os problemas que porventura possam

existir sejam resolvidos Uma rede sem mecanismos de gerencia pode apresentar

problemas como congestionamento do trafago recursos mal utilizados recursos

sobrecarregados problemas com seguranltae outros

o gerenciamento supoe a existencia de esta90es de gerenciamento onde

sao executados as aplicacoesde gerenciamento em n6s gerenciados que sao os

elementos da rede (estalt6es hubs switches e outros equipamentos de

comunica9ao) que desempenham funcoesde comunicacaona operaltaonormal das

redes atraves dos chamados protocolos uleis Estes protocolos pennitem 0

monitoramento e controle do seu funcionamento sendo que 0 protocolo de gerencia

de rede mais usado e 0 SNMP (Simple Network Management Protocol) que sera

discutido no capitulo 3 onde serao informados a origem as caracterfsticas

funcionamento a arquitetura segurana e as aplica09s do protocolo SNMP

A implementacaode urn sistema de gerenciamento de rede eficiente exige urn

conhecimento tecnico bastante profundo do funcionamento da rede dos elementos

a serem gerenciados e do proprio metoda e prolocolo de gerenciamento Esle

trabalho tern como objetivo principal fazer urn estudo da ferramenta de

gerenciamento de rede PowerTCP (apresentada no capitulo 5) que possui urn

c6digo de acesso a bibliotecas protegidas au compiladas exemplificando uma

aplicaltaogerenciadora um agente e uma MIB Sera estudada e documentada a

ferramenta visando auxiliar os desenvolvedores de aplica90es de gerenciamento de

rede no entendimenlo da ferramenta disponibilizada conveniencia e tambem na

facilidade de implementay8o 0 Objetivo secunda rio deste projeto e exemplificar 0

estuda da ferramenta PawerTcp atraves de um exemplo simples de implementa8o

de um prototipo de gerencia de falhas utilizando-se para tanto 0 agente

disponibilizado na ferramenla PowerTCP apresentado no capitulo 6

2 GERENCIAMENTO DE REDES

o gerenciamento de rede busca maximizar a pradutividade e a eficiencia para

alcancar esses objelivos a ISO (International Organization for Standards) definiu

cinco fun~oes

1 Gerenciamento de Configuratyao Responseivel por detectar e contralar 0

astado da rede tanto a parte 169icacomo a parte fisica

2 Gerenciamento de Desempenho Responsavel por controlar e analisar 0

usa e a taxa de erras na rede mantendo um historico de informagao

3 Gerenciamento de Falhas Responsavel por detectar isolar e controlar

procedimentos anormais que estejam ocorrendo na rede

4 Gerenciamento de Contabilidade Responsavel par coletar e processar

dados relacionados ao usa da rede

5 Gerenciamento de Segurantya Responsavel por controlar 0 acesso aDs

recursos da rede utilizandomiddotse tecnicas de autentica9ao e polfticas de

autoriza9ao

Essas funQ5es de gerenciamento de rede podem ser agrupadas em duas

categorias monitoracao e controle de rede (MOR 1997)

A categoria de Illonitoracilo engloba as funcoes de gerenciamento de

desempenho falha e contabilizaltao que 59 destinam a observa~ao e analise dos

estados da rede e seus elementos

As informat6es monitoradas podem ser de tres tipos

Estaticas Sao as informalt5es que sofrem poucas alteray6es Por

exemplo A descricao de uma estaao de trabalho em uma rede (nome e

endereco)

Dinamicas Sao informat6es que alteram com certa frequencia Por

exemple 0 numero de pacotes com erro em uma transmissao

Estatisticas Sao as informat6es derivadas das dinamicas Por examplo

o numero de pacotes com erro em urn determinado tempo

A categoria de controle engloba as funt6es de gerenciamento de

configurayao e seguranya que se envolvem com as alteralt6es nas configuraltoes

das redes e seus elementos

A estrutura adotada pelos sistemas de gerenciamento de rede e mostrada na

Figura 21 onde 0 gerenciamento e realizado com e compartilhamento de variaveis

armazenadas na Base de Informaltao Gerenciaveis (MIB) trocando informaltoes

atraves de urnprotocolo de comunica~o que segue 0 modelo Cliente middotServidor

Figura 21- Troca de informa90es entre gerente - agente (MOR 1997)

As informacoes de gerenciarnento de redes pod em ser coletadas de duas

farmas

bull Polling E a forma tradicional peja qual 0 gerente requisita as informacoes

para a agente e este as retorna 0 seu usa e ac-anselhavel para

gerenciamento de informacoes que se alteram com pallca freqOencia

Trap Ao contra rio do Polling as informa~6es sao geradas pelo agente e

enviadas para 0 gerente Traps sao utilizados elll dois casos Para enviar

informayoes sabre 0 estado atual das informalt6es gerenciaveis e para

alertar 0 gerente sabre alguma situacao qlle nao e normal que esteja

acorrendo au ira ocarrer

A eseolha da forma que devera ser realizada a coleta de informacoes

dependera da configuraltao de cada rede a sar gerenciada comumente e adotado 0

seguinte esquema Iniciayao utiliza-se 0 Polling e posteriormente 0 Trap

21 STRUCTURE OF MANAGEMENT INFORMATION (SMI)

o 8MI e responsavel por deserever as estruturas e 0 esquema de

identificacao usado na defini9ao das informaltoes de gerenciamento Ele inclui a

desericao de um rnodelo de informacao dos objelos para 0 gereneiamenlo de rede

assim como um conjunto de tipos usados para descrever informac6es de

gerenciamento As estruturas sao definidas formalmente atraves da linguagem ASN

1

Cada objeto gerenciado especificado na SMI atravs de uma macro ASN

que inclui nome sintaxe nilel de acesso e informagoes relacionadas aobrigatoriedade da implementaao do objeto

Para identificar unicamente urn determinado objeto a nome ou identificador efarmada par uma sequencia de numeros inteiros nao negativQs abOdos atrav8S da

arvore de identificaao ASN 1 Figura 22 (MOR 1997)

Figura 22- Arvore de Identificaao ASN 1 (MOR 1997)

22 MANAGEMENT INFORMATION BASE (MIB)

Urn host gerenciado deve manter as informa90es de controle e status para

que 0 administrador possa acessa-Io a roteador par exemplo mantem estatfsticas

sobre 0 status de suas interfaces de rede trafego de entrada e saida datagramas

inlerrompidos e mensagens de erro geradas Embora isso permita que urn

administrador acesse essas estatfsticas 0 SNMP nao especifica exatamente quais

dados podem ser acessados ao contrario um pad rae a parte especifica os detalhes

o padrao conhecido como MIB (Management Information Base) especifica os dados

que um host deve manter e as opera~6espermitidas em cada um deles como par

exemple A MIB determina que a software IP deve manter uma contagem de todos

os oetetos que chegam em cad a interface de rede e que a software de

gerenciamento de rede pode ler apenas aqueles valores

A Base de Informacao de Gerenciamento descreve os objetos a serem

implementados e armazena os valores associados de forma que possam ser vistos

como uma base de informa~aovirtual Por exemple todes os dispositivos da rede

Internet que se constituem em nos gerenciaveis devem implementar a MIB padrao

Internet (MOR 1997)

A MIB para 0 TCPIP classilica as inlorma90es de gerenciamento em oito

categorias como mostra a TabeJa 21 A op~aode categorias e importante porque

as identificadores usados para especificar itens incluem um c6digo par categoria

Categoria da MIB Inclui Informayoes Sobre

Sistema o sistema operacional do roteador ou do loSt

Interfaces Interiaces de redes especfficas

convend Conversiio de endereco (por exemplo mapeamento do

ARP)

Ip Software do Protocolo Internet

Icmp Software do Protocolo de Controle de Mensagens da

Internet

Tep Software do Protocolo de Controle de Transmissao

Udp Software do Protocolo de Datagrama dos Usuarios

Egp Software do Protocolo de Gateway Externo

-Tabela 2 1 - Categonas de Informapoes da MIa

Manter a definiltao da MB independents do protocolo de gerenciamento da

rede traz vantagens tanto para fornecedores quanta para usuarios 0 fornecedor

pode incluir urn agente de software SNMP em um prod uta como um roteador com a

garantia de que 0 software continuara a aderir ao padrao apos a definicao dos novas

itens MIB urn cliente pode usar 0 mesma software do cliente de gerenciamento de

rede para administrar varios roteadores que tenham vers6es diferentes da MIB

Naturalmente um roteador que nao disponha dos novas itens da MIB nao podera

fornecer as informatoes que estiverem naqueles itens entretanto como todes as

roteadores utilizam a mesma linguagem para comunicaao todos eles podem

analisar uma consulta e fornecer a informacao solicitada au enviar uma mensagem

de erro explicando que nao possuem 0 item solicitado (COMER 13 1998)

10

23 RMON (REMOTE MONITORING)

Enquanto 0 SNMP trabailla limitadamente en de 0 gerente obtem apenas

informagoes de um determinado equipamenlo os monilores do RMON (Rem ole

Monitoring) tambem cllamados de probes trabalham capturando as informagoes da

rede como um todD Com aplicagoes desenvolvidas utilizando a ferramenta

PowerTCP torna-se passivel utilizar RMON podendo assim gerenciar tambem

subredes

ORMaN e a capacidade de gerenciamento remoto do SNMP Porem tenta

diminuir a quantidade de informag6es tracadas entre a rede local gerenciada e a

estagao gerente

Os agentes que implementam a RMON MIB possuem cinco fungoes

bull Operagoes Off-line Operagoes que permitem 0 agente continuar

executando suas taretas mesma que a comunicac8o com a estagao de

gerenciamento nao seja passivel ou saja ineficiente

Monitorarao pro-ativa permite-s8 executar continuamente diagnosticos

e manter logs do desempenho das redes a fim de desenvolver a fungao de

baseline ista e manter hist6ricos das opera90es normais por um tempo

estendido e em seguida lazar uma analise para identificar problemas

potenciais na rede

bull Detecgao e registro de problemas 0 monitor RMON pode reconhecer

determinadas condigoes das redes fazendo constantes averigua6es com

II

o objetive de informar ao gerenle sabre eventos e situat6es de erras

significativos para a rede

Valorizacao dos dados coletados 0 monitor RMON pode realizar

analises especfficas sobre os dados coletados em suas subredes

bull MUitiplos Gerentes olerece maior nivel de disponibilidade pois 0

diagnostico podera ser feito a partir de mais de uma estayao gerenle 0

uso de multiplos gerentes tambem permite a execuao de dilerentes

fungoes ou 0 gerenciamento de diferentes departamentos em uma

empresa

Dois padroes do protocolo RMON sao implementados

bull RMON1 Monitora em nivel de camada MAC (Media Access Control) 0

trafego e coleta de informaroes e estatlsticas do segmento de rede local

Faz ainda um diagnostico remote de arras e falhas contidas no segmento

com a ajuda de um analisador de protocolos

RMON2 Opera a nivel da camada de rede e camadas superiores

complementando portanto 0 RMON1 possibilitando coletar inlormaoes

estatisticas e monitorar a comunicarao fim-a-fim e 0 tnifego gerado por

dilerentes tipos de aplicaao

A configuraltao do gerenciamento RMON e compost a por uma estaltao central

de gerenciamento (tambem chamada de probe) que gerencia 0 tralego de uma rede

como um todo incluindo suas sub-redes Em cada sub-rede existe uma maquina que

gerencia localmente 0 tralego desta A ligura abaixo ilustra esta conligura[IO

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

1 INTRODUltAO

As redes foram criadas inicialmente como urn meio de compartilhar

dispositivQS e perifericos como impressoras modems paineis pc~fax e outros

Entretanta it medida que as redes crescem e tornam-se integradas as orgarliza~6es

o compartilhamento dos dispositivos tom a aspecto secundario em compara~ao as

Qutras vantagens oferecidas As redes passararn a fazer parte do cotidiano das

corporacoes como uma ferramenta que oferece recursos 8 servicos qlle permitem a

interacao e 0 aumento de produtividade

Considerando ests quadro no capitulo 2 sera discutida a ger~ncia de redes

que e cada vez mais necessaria para manter todo este ambiente em funcionamento

A gerencia em redes de computadores torna-S9 tareta complexa em boa parte par

con sequencia do crescimento acelerado das mesmas tanto em desempenho coma

em suporte a urn grande con junto de servi~os Alem disso as sistemas de

telecomunicaoes parte components das redes tambem adicionam complexidade a

estas redes e estarao cada vez mais presentes mesmo em pequenas instalacoes

Este can junto de componentes (e os problemas associados) somente podera

ser gerenciado se for seguida uma estrutura bem definida Admitindo-se que as

ferramentas para gensectncia de rades nao abrangem todos as problemas de uma rede

e que estas nem sempre sao usadas nas organizacoes que possuem redes S6 faz

necessaria que outros mecanismos de garEncia sejam utilizados para suprir suas

carencias rnais evidentes

As informayoes que circulam em uma rede de computadores devem ser

transportadas de modo confiavel e nipido Para que isso aconteca e importante que

os dados sejam monitorados de maneira que os problemas que porventura possam

existir sejam resolvidos Uma rede sem mecanismos de gerencia pode apresentar

problemas como congestionamento do trafago recursos mal utilizados recursos

sobrecarregados problemas com seguranltae outros

o gerenciamento supoe a existencia de esta90es de gerenciamento onde

sao executados as aplicacoesde gerenciamento em n6s gerenciados que sao os

elementos da rede (estalt6es hubs switches e outros equipamentos de

comunica9ao) que desempenham funcoesde comunicacaona operaltaonormal das

redes atraves dos chamados protocolos uleis Estes protocolos pennitem 0

monitoramento e controle do seu funcionamento sendo que 0 protocolo de gerencia

de rede mais usado e 0 SNMP (Simple Network Management Protocol) que sera

discutido no capitulo 3 onde serao informados a origem as caracterfsticas

funcionamento a arquitetura segurana e as aplica09s do protocolo SNMP

A implementacaode urn sistema de gerenciamento de rede eficiente exige urn

conhecimento tecnico bastante profundo do funcionamento da rede dos elementos

a serem gerenciados e do proprio metoda e prolocolo de gerenciamento Esle

trabalho tern como objetivo principal fazer urn estudo da ferramenta de

gerenciamento de rede PowerTCP (apresentada no capitulo 5) que possui urn

c6digo de acesso a bibliotecas protegidas au compiladas exemplificando uma

aplicaltaogerenciadora um agente e uma MIB Sera estudada e documentada a

ferramenta visando auxiliar os desenvolvedores de aplica90es de gerenciamento de

rede no entendimenlo da ferramenta disponibilizada conveniencia e tambem na

facilidade de implementay8o 0 Objetivo secunda rio deste projeto e exemplificar 0

estuda da ferramenta PawerTcp atraves de um exemplo simples de implementa8o

de um prototipo de gerencia de falhas utilizando-se para tanto 0 agente

disponibilizado na ferramenla PowerTCP apresentado no capitulo 6

2 GERENCIAMENTO DE REDES

o gerenciamento de rede busca maximizar a pradutividade e a eficiencia para

alcancar esses objelivos a ISO (International Organization for Standards) definiu

cinco fun~oes

1 Gerenciamento de Configuratyao Responseivel por detectar e contralar 0

astado da rede tanto a parte 169icacomo a parte fisica

2 Gerenciamento de Desempenho Responsavel por controlar e analisar 0

usa e a taxa de erras na rede mantendo um historico de informagao

3 Gerenciamento de Falhas Responsavel por detectar isolar e controlar

procedimentos anormais que estejam ocorrendo na rede

4 Gerenciamento de Contabilidade Responsavel par coletar e processar

dados relacionados ao usa da rede

5 Gerenciamento de Segurantya Responsavel por controlar 0 acesso aDs

recursos da rede utilizandomiddotse tecnicas de autentica9ao e polfticas de

autoriza9ao

Essas funQ5es de gerenciamento de rede podem ser agrupadas em duas

categorias monitoracao e controle de rede (MOR 1997)

A categoria de Illonitoracilo engloba as funcoes de gerenciamento de

desempenho falha e contabilizaltao que 59 destinam a observa~ao e analise dos

estados da rede e seus elementos

As informat6es monitoradas podem ser de tres tipos

Estaticas Sao as informalt5es que sofrem poucas alteray6es Por

exemplo A descricao de uma estaao de trabalho em uma rede (nome e

endereco)

Dinamicas Sao informat6es que alteram com certa frequencia Por

exemple 0 numero de pacotes com erro em uma transmissao

Estatisticas Sao as informat6es derivadas das dinamicas Por examplo

o numero de pacotes com erro em urn determinado tempo

A categoria de controle engloba as funt6es de gerenciamento de

configurayao e seguranya que se envolvem com as alteralt6es nas configuraltoes

das redes e seus elementos

A estrutura adotada pelos sistemas de gerenciamento de rede e mostrada na

Figura 21 onde 0 gerenciamento e realizado com e compartilhamento de variaveis

armazenadas na Base de Informaltao Gerenciaveis (MIB) trocando informaltoes

atraves de urnprotocolo de comunica~o que segue 0 modelo Cliente middotServidor

Figura 21- Troca de informa90es entre gerente - agente (MOR 1997)

As informacoes de gerenciarnento de redes pod em ser coletadas de duas

farmas

bull Polling E a forma tradicional peja qual 0 gerente requisita as informacoes

para a agente e este as retorna 0 seu usa e ac-anselhavel para

gerenciamento de informacoes que se alteram com pallca freqOencia

Trap Ao contra rio do Polling as informa~6es sao geradas pelo agente e

enviadas para 0 gerente Traps sao utilizados elll dois casos Para enviar

informayoes sabre 0 estado atual das informalt6es gerenciaveis e para

alertar 0 gerente sabre alguma situacao qlle nao e normal que esteja

acorrendo au ira ocarrer

A eseolha da forma que devera ser realizada a coleta de informacoes

dependera da configuraltao de cada rede a sar gerenciada comumente e adotado 0

seguinte esquema Iniciayao utiliza-se 0 Polling e posteriormente 0 Trap

21 STRUCTURE OF MANAGEMENT INFORMATION (SMI)

o 8MI e responsavel por deserever as estruturas e 0 esquema de

identificacao usado na defini9ao das informaltoes de gerenciamento Ele inclui a

desericao de um rnodelo de informacao dos objelos para 0 gereneiamenlo de rede

assim como um conjunto de tipos usados para descrever informac6es de

gerenciamento As estruturas sao definidas formalmente atraves da linguagem ASN

1

Cada objeto gerenciado especificado na SMI atravs de uma macro ASN

que inclui nome sintaxe nilel de acesso e informagoes relacionadas aobrigatoriedade da implementaao do objeto

Para identificar unicamente urn determinado objeto a nome ou identificador efarmada par uma sequencia de numeros inteiros nao negativQs abOdos atrav8S da

arvore de identificaao ASN 1 Figura 22 (MOR 1997)

Figura 22- Arvore de Identificaao ASN 1 (MOR 1997)

22 MANAGEMENT INFORMATION BASE (MIB)

Urn host gerenciado deve manter as informa90es de controle e status para

que 0 administrador possa acessa-Io a roteador par exemplo mantem estatfsticas

sobre 0 status de suas interfaces de rede trafego de entrada e saida datagramas

inlerrompidos e mensagens de erro geradas Embora isso permita que urn

administrador acesse essas estatfsticas 0 SNMP nao especifica exatamente quais

dados podem ser acessados ao contrario um pad rae a parte especifica os detalhes

o padrao conhecido como MIB (Management Information Base) especifica os dados

que um host deve manter e as opera~6espermitidas em cada um deles como par

exemple A MIB determina que a software IP deve manter uma contagem de todos

os oetetos que chegam em cad a interface de rede e que a software de

gerenciamento de rede pode ler apenas aqueles valores

A Base de Informacao de Gerenciamento descreve os objetos a serem

implementados e armazena os valores associados de forma que possam ser vistos

como uma base de informa~aovirtual Por exemple todes os dispositivos da rede

Internet que se constituem em nos gerenciaveis devem implementar a MIB padrao

Internet (MOR 1997)

A MIB para 0 TCPIP classilica as inlorma90es de gerenciamento em oito

categorias como mostra a TabeJa 21 A op~aode categorias e importante porque

as identificadores usados para especificar itens incluem um c6digo par categoria

Categoria da MIB Inclui Informayoes Sobre

Sistema o sistema operacional do roteador ou do loSt

Interfaces Interiaces de redes especfficas

convend Conversiio de endereco (por exemplo mapeamento do

ARP)

Ip Software do Protocolo Internet

Icmp Software do Protocolo de Controle de Mensagens da

Internet

Tep Software do Protocolo de Controle de Transmissao

Udp Software do Protocolo de Datagrama dos Usuarios

Egp Software do Protocolo de Gateway Externo

-Tabela 2 1 - Categonas de Informapoes da MIa

Manter a definiltao da MB independents do protocolo de gerenciamento da

rede traz vantagens tanto para fornecedores quanta para usuarios 0 fornecedor

pode incluir urn agente de software SNMP em um prod uta como um roteador com a

garantia de que 0 software continuara a aderir ao padrao apos a definicao dos novas

itens MIB urn cliente pode usar 0 mesma software do cliente de gerenciamento de

rede para administrar varios roteadores que tenham vers6es diferentes da MIB

Naturalmente um roteador que nao disponha dos novas itens da MIB nao podera

fornecer as informatoes que estiverem naqueles itens entretanto como todes as

roteadores utilizam a mesma linguagem para comunicaao todos eles podem

analisar uma consulta e fornecer a informacao solicitada au enviar uma mensagem

de erro explicando que nao possuem 0 item solicitado (COMER 13 1998)

10

23 RMON (REMOTE MONITORING)

Enquanto 0 SNMP trabailla limitadamente en de 0 gerente obtem apenas

informagoes de um determinado equipamenlo os monilores do RMON (Rem ole

Monitoring) tambem cllamados de probes trabalham capturando as informagoes da

rede como um todD Com aplicagoes desenvolvidas utilizando a ferramenta

PowerTCP torna-se passivel utilizar RMON podendo assim gerenciar tambem

subredes

ORMaN e a capacidade de gerenciamento remoto do SNMP Porem tenta

diminuir a quantidade de informag6es tracadas entre a rede local gerenciada e a

estagao gerente

Os agentes que implementam a RMON MIB possuem cinco fungoes

bull Operagoes Off-line Operagoes que permitem 0 agente continuar

executando suas taretas mesma que a comunicac8o com a estagao de

gerenciamento nao seja passivel ou saja ineficiente

Monitorarao pro-ativa permite-s8 executar continuamente diagnosticos

e manter logs do desempenho das redes a fim de desenvolver a fungao de

baseline ista e manter hist6ricos das opera90es normais por um tempo

estendido e em seguida lazar uma analise para identificar problemas

potenciais na rede

bull Detecgao e registro de problemas 0 monitor RMON pode reconhecer

determinadas condigoes das redes fazendo constantes averigua6es com

II

o objetive de informar ao gerenle sabre eventos e situat6es de erras

significativos para a rede

Valorizacao dos dados coletados 0 monitor RMON pode realizar

analises especfficas sobre os dados coletados em suas subredes

bull MUitiplos Gerentes olerece maior nivel de disponibilidade pois 0

diagnostico podera ser feito a partir de mais de uma estayao gerenle 0

uso de multiplos gerentes tambem permite a execuao de dilerentes

fungoes ou 0 gerenciamento de diferentes departamentos em uma

empresa

Dois padroes do protocolo RMON sao implementados

bull RMON1 Monitora em nivel de camada MAC (Media Access Control) 0

trafego e coleta de informaroes e estatlsticas do segmento de rede local

Faz ainda um diagnostico remote de arras e falhas contidas no segmento

com a ajuda de um analisador de protocolos

RMON2 Opera a nivel da camada de rede e camadas superiores

complementando portanto 0 RMON1 possibilitando coletar inlormaoes

estatisticas e monitorar a comunicarao fim-a-fim e 0 tnifego gerado por

dilerentes tipos de aplicaao

A configuraltao do gerenciamento RMON e compost a por uma estaltao central

de gerenciamento (tambem chamada de probe) que gerencia 0 tralego de uma rede

como um todo incluindo suas sub-redes Em cada sub-rede existe uma maquina que

gerencia localmente 0 tralego desta A ligura abaixo ilustra esta conligura[IO

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

As informayoes que circulam em uma rede de computadores devem ser

transportadas de modo confiavel e nipido Para que isso aconteca e importante que

os dados sejam monitorados de maneira que os problemas que porventura possam

existir sejam resolvidos Uma rede sem mecanismos de gerencia pode apresentar

problemas como congestionamento do trafago recursos mal utilizados recursos

sobrecarregados problemas com seguranltae outros

o gerenciamento supoe a existencia de esta90es de gerenciamento onde

sao executados as aplicacoesde gerenciamento em n6s gerenciados que sao os

elementos da rede (estalt6es hubs switches e outros equipamentos de

comunica9ao) que desempenham funcoesde comunicacaona operaltaonormal das

redes atraves dos chamados protocolos uleis Estes protocolos pennitem 0

monitoramento e controle do seu funcionamento sendo que 0 protocolo de gerencia

de rede mais usado e 0 SNMP (Simple Network Management Protocol) que sera

discutido no capitulo 3 onde serao informados a origem as caracterfsticas

funcionamento a arquitetura segurana e as aplica09s do protocolo SNMP

A implementacaode urn sistema de gerenciamento de rede eficiente exige urn

conhecimento tecnico bastante profundo do funcionamento da rede dos elementos

a serem gerenciados e do proprio metoda e prolocolo de gerenciamento Esle

trabalho tern como objetivo principal fazer urn estudo da ferramenta de

gerenciamento de rede PowerTCP (apresentada no capitulo 5) que possui urn

c6digo de acesso a bibliotecas protegidas au compiladas exemplificando uma

aplicaltaogerenciadora um agente e uma MIB Sera estudada e documentada a

ferramenta visando auxiliar os desenvolvedores de aplica90es de gerenciamento de

rede no entendimenlo da ferramenta disponibilizada conveniencia e tambem na

facilidade de implementay8o 0 Objetivo secunda rio deste projeto e exemplificar 0

estuda da ferramenta PawerTcp atraves de um exemplo simples de implementa8o

de um prototipo de gerencia de falhas utilizando-se para tanto 0 agente

disponibilizado na ferramenla PowerTCP apresentado no capitulo 6

2 GERENCIAMENTO DE REDES

o gerenciamento de rede busca maximizar a pradutividade e a eficiencia para

alcancar esses objelivos a ISO (International Organization for Standards) definiu

cinco fun~oes

1 Gerenciamento de Configuratyao Responseivel por detectar e contralar 0

astado da rede tanto a parte 169icacomo a parte fisica

2 Gerenciamento de Desempenho Responsavel por controlar e analisar 0

usa e a taxa de erras na rede mantendo um historico de informagao

3 Gerenciamento de Falhas Responsavel por detectar isolar e controlar

procedimentos anormais que estejam ocorrendo na rede

4 Gerenciamento de Contabilidade Responsavel par coletar e processar

dados relacionados ao usa da rede

5 Gerenciamento de Segurantya Responsavel por controlar 0 acesso aDs

recursos da rede utilizandomiddotse tecnicas de autentica9ao e polfticas de

autoriza9ao

Essas funQ5es de gerenciamento de rede podem ser agrupadas em duas

categorias monitoracao e controle de rede (MOR 1997)

A categoria de Illonitoracilo engloba as funcoes de gerenciamento de

desempenho falha e contabilizaltao que 59 destinam a observa~ao e analise dos

estados da rede e seus elementos

As informat6es monitoradas podem ser de tres tipos

Estaticas Sao as informalt5es que sofrem poucas alteray6es Por

exemplo A descricao de uma estaao de trabalho em uma rede (nome e

endereco)

Dinamicas Sao informat6es que alteram com certa frequencia Por

exemple 0 numero de pacotes com erro em uma transmissao

Estatisticas Sao as informat6es derivadas das dinamicas Por examplo

o numero de pacotes com erro em urn determinado tempo

A categoria de controle engloba as funt6es de gerenciamento de

configurayao e seguranya que se envolvem com as alteralt6es nas configuraltoes

das redes e seus elementos

A estrutura adotada pelos sistemas de gerenciamento de rede e mostrada na

Figura 21 onde 0 gerenciamento e realizado com e compartilhamento de variaveis

armazenadas na Base de Informaltao Gerenciaveis (MIB) trocando informaltoes

atraves de urnprotocolo de comunica~o que segue 0 modelo Cliente middotServidor

Figura 21- Troca de informa90es entre gerente - agente (MOR 1997)

As informacoes de gerenciarnento de redes pod em ser coletadas de duas

farmas

bull Polling E a forma tradicional peja qual 0 gerente requisita as informacoes

para a agente e este as retorna 0 seu usa e ac-anselhavel para

gerenciamento de informacoes que se alteram com pallca freqOencia

Trap Ao contra rio do Polling as informa~6es sao geradas pelo agente e

enviadas para 0 gerente Traps sao utilizados elll dois casos Para enviar

informayoes sabre 0 estado atual das informalt6es gerenciaveis e para

alertar 0 gerente sabre alguma situacao qlle nao e normal que esteja

acorrendo au ira ocarrer

A eseolha da forma que devera ser realizada a coleta de informacoes

dependera da configuraltao de cada rede a sar gerenciada comumente e adotado 0

seguinte esquema Iniciayao utiliza-se 0 Polling e posteriormente 0 Trap

21 STRUCTURE OF MANAGEMENT INFORMATION (SMI)

o 8MI e responsavel por deserever as estruturas e 0 esquema de

identificacao usado na defini9ao das informaltoes de gerenciamento Ele inclui a

desericao de um rnodelo de informacao dos objelos para 0 gereneiamenlo de rede

assim como um conjunto de tipos usados para descrever informac6es de

gerenciamento As estruturas sao definidas formalmente atraves da linguagem ASN

1

Cada objeto gerenciado especificado na SMI atravs de uma macro ASN

que inclui nome sintaxe nilel de acesso e informagoes relacionadas aobrigatoriedade da implementaao do objeto

Para identificar unicamente urn determinado objeto a nome ou identificador efarmada par uma sequencia de numeros inteiros nao negativQs abOdos atrav8S da

arvore de identificaao ASN 1 Figura 22 (MOR 1997)

Figura 22- Arvore de Identificaao ASN 1 (MOR 1997)

22 MANAGEMENT INFORMATION BASE (MIB)

Urn host gerenciado deve manter as informa90es de controle e status para

que 0 administrador possa acessa-Io a roteador par exemplo mantem estatfsticas

sobre 0 status de suas interfaces de rede trafego de entrada e saida datagramas

inlerrompidos e mensagens de erro geradas Embora isso permita que urn

administrador acesse essas estatfsticas 0 SNMP nao especifica exatamente quais

dados podem ser acessados ao contrario um pad rae a parte especifica os detalhes

o padrao conhecido como MIB (Management Information Base) especifica os dados

que um host deve manter e as opera~6espermitidas em cada um deles como par

exemple A MIB determina que a software IP deve manter uma contagem de todos

os oetetos que chegam em cad a interface de rede e que a software de

gerenciamento de rede pode ler apenas aqueles valores

A Base de Informacao de Gerenciamento descreve os objetos a serem

implementados e armazena os valores associados de forma que possam ser vistos

como uma base de informa~aovirtual Por exemple todes os dispositivos da rede

Internet que se constituem em nos gerenciaveis devem implementar a MIB padrao

Internet (MOR 1997)

A MIB para 0 TCPIP classilica as inlorma90es de gerenciamento em oito

categorias como mostra a TabeJa 21 A op~aode categorias e importante porque

as identificadores usados para especificar itens incluem um c6digo par categoria

Categoria da MIB Inclui Informayoes Sobre

Sistema o sistema operacional do roteador ou do loSt

Interfaces Interiaces de redes especfficas

convend Conversiio de endereco (por exemplo mapeamento do

ARP)

Ip Software do Protocolo Internet

Icmp Software do Protocolo de Controle de Mensagens da

Internet

Tep Software do Protocolo de Controle de Transmissao

Udp Software do Protocolo de Datagrama dos Usuarios

Egp Software do Protocolo de Gateway Externo

-Tabela 2 1 - Categonas de Informapoes da MIa

Manter a definiltao da MB independents do protocolo de gerenciamento da

rede traz vantagens tanto para fornecedores quanta para usuarios 0 fornecedor

pode incluir urn agente de software SNMP em um prod uta como um roteador com a

garantia de que 0 software continuara a aderir ao padrao apos a definicao dos novas

itens MIB urn cliente pode usar 0 mesma software do cliente de gerenciamento de

rede para administrar varios roteadores que tenham vers6es diferentes da MIB

Naturalmente um roteador que nao disponha dos novas itens da MIB nao podera

fornecer as informatoes que estiverem naqueles itens entretanto como todes as

roteadores utilizam a mesma linguagem para comunicaao todos eles podem

analisar uma consulta e fornecer a informacao solicitada au enviar uma mensagem

de erro explicando que nao possuem 0 item solicitado (COMER 13 1998)

10

23 RMON (REMOTE MONITORING)

Enquanto 0 SNMP trabailla limitadamente en de 0 gerente obtem apenas

informagoes de um determinado equipamenlo os monilores do RMON (Rem ole

Monitoring) tambem cllamados de probes trabalham capturando as informagoes da

rede como um todD Com aplicagoes desenvolvidas utilizando a ferramenta

PowerTCP torna-se passivel utilizar RMON podendo assim gerenciar tambem

subredes

ORMaN e a capacidade de gerenciamento remoto do SNMP Porem tenta

diminuir a quantidade de informag6es tracadas entre a rede local gerenciada e a

estagao gerente

Os agentes que implementam a RMON MIB possuem cinco fungoes

bull Operagoes Off-line Operagoes que permitem 0 agente continuar

executando suas taretas mesma que a comunicac8o com a estagao de

gerenciamento nao seja passivel ou saja ineficiente

Monitorarao pro-ativa permite-s8 executar continuamente diagnosticos

e manter logs do desempenho das redes a fim de desenvolver a fungao de

baseline ista e manter hist6ricos das opera90es normais por um tempo

estendido e em seguida lazar uma analise para identificar problemas

potenciais na rede

bull Detecgao e registro de problemas 0 monitor RMON pode reconhecer

determinadas condigoes das redes fazendo constantes averigua6es com

II

o objetive de informar ao gerenle sabre eventos e situat6es de erras

significativos para a rede

Valorizacao dos dados coletados 0 monitor RMON pode realizar

analises especfficas sobre os dados coletados em suas subredes

bull MUitiplos Gerentes olerece maior nivel de disponibilidade pois 0

diagnostico podera ser feito a partir de mais de uma estayao gerenle 0

uso de multiplos gerentes tambem permite a execuao de dilerentes

fungoes ou 0 gerenciamento de diferentes departamentos em uma

empresa

Dois padroes do protocolo RMON sao implementados

bull RMON1 Monitora em nivel de camada MAC (Media Access Control) 0

trafego e coleta de informaroes e estatlsticas do segmento de rede local

Faz ainda um diagnostico remote de arras e falhas contidas no segmento

com a ajuda de um analisador de protocolos

RMON2 Opera a nivel da camada de rede e camadas superiores

complementando portanto 0 RMON1 possibilitando coletar inlormaoes

estatisticas e monitorar a comunicarao fim-a-fim e 0 tnifego gerado por

dilerentes tipos de aplicaao

A configuraltao do gerenciamento RMON e compost a por uma estaltao central

de gerenciamento (tambem chamada de probe) que gerencia 0 tralego de uma rede

como um todo incluindo suas sub-redes Em cada sub-rede existe uma maquina que

gerencia localmente 0 tralego desta A ligura abaixo ilustra esta conligura[IO

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

rede no entendimenlo da ferramenta disponibilizada conveniencia e tambem na

facilidade de implementay8o 0 Objetivo secunda rio deste projeto e exemplificar 0

estuda da ferramenta PawerTcp atraves de um exemplo simples de implementa8o

de um prototipo de gerencia de falhas utilizando-se para tanto 0 agente

disponibilizado na ferramenla PowerTCP apresentado no capitulo 6

2 GERENCIAMENTO DE REDES

o gerenciamento de rede busca maximizar a pradutividade e a eficiencia para

alcancar esses objelivos a ISO (International Organization for Standards) definiu

cinco fun~oes

1 Gerenciamento de Configuratyao Responseivel por detectar e contralar 0

astado da rede tanto a parte 169icacomo a parte fisica

2 Gerenciamento de Desempenho Responsavel por controlar e analisar 0

usa e a taxa de erras na rede mantendo um historico de informagao

3 Gerenciamento de Falhas Responsavel por detectar isolar e controlar

procedimentos anormais que estejam ocorrendo na rede

4 Gerenciamento de Contabilidade Responsavel par coletar e processar

dados relacionados ao usa da rede

5 Gerenciamento de Segurantya Responsavel por controlar 0 acesso aDs

recursos da rede utilizandomiddotse tecnicas de autentica9ao e polfticas de

autoriza9ao

Essas funQ5es de gerenciamento de rede podem ser agrupadas em duas

categorias monitoracao e controle de rede (MOR 1997)

A categoria de Illonitoracilo engloba as funcoes de gerenciamento de

desempenho falha e contabilizaltao que 59 destinam a observa~ao e analise dos

estados da rede e seus elementos

As informat6es monitoradas podem ser de tres tipos

Estaticas Sao as informalt5es que sofrem poucas alteray6es Por

exemplo A descricao de uma estaao de trabalho em uma rede (nome e

endereco)

Dinamicas Sao informat6es que alteram com certa frequencia Por

exemple 0 numero de pacotes com erro em uma transmissao

Estatisticas Sao as informat6es derivadas das dinamicas Por examplo

o numero de pacotes com erro em urn determinado tempo

A categoria de controle engloba as funt6es de gerenciamento de

configurayao e seguranya que se envolvem com as alteralt6es nas configuraltoes

das redes e seus elementos

A estrutura adotada pelos sistemas de gerenciamento de rede e mostrada na

Figura 21 onde 0 gerenciamento e realizado com e compartilhamento de variaveis

armazenadas na Base de Informaltao Gerenciaveis (MIB) trocando informaltoes

atraves de urnprotocolo de comunica~o que segue 0 modelo Cliente middotServidor

Figura 21- Troca de informa90es entre gerente - agente (MOR 1997)

As informacoes de gerenciarnento de redes pod em ser coletadas de duas

farmas

bull Polling E a forma tradicional peja qual 0 gerente requisita as informacoes

para a agente e este as retorna 0 seu usa e ac-anselhavel para

gerenciamento de informacoes que se alteram com pallca freqOencia

Trap Ao contra rio do Polling as informa~6es sao geradas pelo agente e

enviadas para 0 gerente Traps sao utilizados elll dois casos Para enviar

informayoes sabre 0 estado atual das informalt6es gerenciaveis e para

alertar 0 gerente sabre alguma situacao qlle nao e normal que esteja

acorrendo au ira ocarrer

A eseolha da forma que devera ser realizada a coleta de informacoes

dependera da configuraltao de cada rede a sar gerenciada comumente e adotado 0

seguinte esquema Iniciayao utiliza-se 0 Polling e posteriormente 0 Trap

21 STRUCTURE OF MANAGEMENT INFORMATION (SMI)

o 8MI e responsavel por deserever as estruturas e 0 esquema de

identificacao usado na defini9ao das informaltoes de gerenciamento Ele inclui a

desericao de um rnodelo de informacao dos objelos para 0 gereneiamenlo de rede

assim como um conjunto de tipos usados para descrever informac6es de

gerenciamento As estruturas sao definidas formalmente atraves da linguagem ASN

1

Cada objeto gerenciado especificado na SMI atravs de uma macro ASN

que inclui nome sintaxe nilel de acesso e informagoes relacionadas aobrigatoriedade da implementaao do objeto

Para identificar unicamente urn determinado objeto a nome ou identificador efarmada par uma sequencia de numeros inteiros nao negativQs abOdos atrav8S da

arvore de identificaao ASN 1 Figura 22 (MOR 1997)

Figura 22- Arvore de Identificaao ASN 1 (MOR 1997)

22 MANAGEMENT INFORMATION BASE (MIB)

Urn host gerenciado deve manter as informa90es de controle e status para

que 0 administrador possa acessa-Io a roteador par exemplo mantem estatfsticas

sobre 0 status de suas interfaces de rede trafego de entrada e saida datagramas

inlerrompidos e mensagens de erro geradas Embora isso permita que urn

administrador acesse essas estatfsticas 0 SNMP nao especifica exatamente quais

dados podem ser acessados ao contrario um pad rae a parte especifica os detalhes

o padrao conhecido como MIB (Management Information Base) especifica os dados

que um host deve manter e as opera~6espermitidas em cada um deles como par

exemple A MIB determina que a software IP deve manter uma contagem de todos

os oetetos que chegam em cad a interface de rede e que a software de

gerenciamento de rede pode ler apenas aqueles valores

A Base de Informacao de Gerenciamento descreve os objetos a serem

implementados e armazena os valores associados de forma que possam ser vistos

como uma base de informa~aovirtual Por exemple todes os dispositivos da rede

Internet que se constituem em nos gerenciaveis devem implementar a MIB padrao

Internet (MOR 1997)

A MIB para 0 TCPIP classilica as inlorma90es de gerenciamento em oito

categorias como mostra a TabeJa 21 A op~aode categorias e importante porque

as identificadores usados para especificar itens incluem um c6digo par categoria

Categoria da MIB Inclui Informayoes Sobre

Sistema o sistema operacional do roteador ou do loSt

Interfaces Interiaces de redes especfficas

convend Conversiio de endereco (por exemplo mapeamento do

ARP)

Ip Software do Protocolo Internet

Icmp Software do Protocolo de Controle de Mensagens da

Internet

Tep Software do Protocolo de Controle de Transmissao

Udp Software do Protocolo de Datagrama dos Usuarios

Egp Software do Protocolo de Gateway Externo

-Tabela 2 1 - Categonas de Informapoes da MIa

Manter a definiltao da MB independents do protocolo de gerenciamento da

rede traz vantagens tanto para fornecedores quanta para usuarios 0 fornecedor

pode incluir urn agente de software SNMP em um prod uta como um roteador com a

garantia de que 0 software continuara a aderir ao padrao apos a definicao dos novas

itens MIB urn cliente pode usar 0 mesma software do cliente de gerenciamento de

rede para administrar varios roteadores que tenham vers6es diferentes da MIB

Naturalmente um roteador que nao disponha dos novas itens da MIB nao podera

fornecer as informatoes que estiverem naqueles itens entretanto como todes as

roteadores utilizam a mesma linguagem para comunicaao todos eles podem

analisar uma consulta e fornecer a informacao solicitada au enviar uma mensagem

de erro explicando que nao possuem 0 item solicitado (COMER 13 1998)

10

23 RMON (REMOTE MONITORING)

Enquanto 0 SNMP trabailla limitadamente en de 0 gerente obtem apenas

informagoes de um determinado equipamenlo os monilores do RMON (Rem ole

Monitoring) tambem cllamados de probes trabalham capturando as informagoes da

rede como um todD Com aplicagoes desenvolvidas utilizando a ferramenta

PowerTCP torna-se passivel utilizar RMON podendo assim gerenciar tambem

subredes

ORMaN e a capacidade de gerenciamento remoto do SNMP Porem tenta

diminuir a quantidade de informag6es tracadas entre a rede local gerenciada e a

estagao gerente

Os agentes que implementam a RMON MIB possuem cinco fungoes

bull Operagoes Off-line Operagoes que permitem 0 agente continuar

executando suas taretas mesma que a comunicac8o com a estagao de

gerenciamento nao seja passivel ou saja ineficiente

Monitorarao pro-ativa permite-s8 executar continuamente diagnosticos

e manter logs do desempenho das redes a fim de desenvolver a fungao de

baseline ista e manter hist6ricos das opera90es normais por um tempo

estendido e em seguida lazar uma analise para identificar problemas

potenciais na rede

bull Detecgao e registro de problemas 0 monitor RMON pode reconhecer

determinadas condigoes das redes fazendo constantes averigua6es com

II

o objetive de informar ao gerenle sabre eventos e situat6es de erras

significativos para a rede

Valorizacao dos dados coletados 0 monitor RMON pode realizar

analises especfficas sobre os dados coletados em suas subredes

bull MUitiplos Gerentes olerece maior nivel de disponibilidade pois 0

diagnostico podera ser feito a partir de mais de uma estayao gerenle 0

uso de multiplos gerentes tambem permite a execuao de dilerentes

fungoes ou 0 gerenciamento de diferentes departamentos em uma

empresa

Dois padroes do protocolo RMON sao implementados

bull RMON1 Monitora em nivel de camada MAC (Media Access Control) 0

trafego e coleta de informaroes e estatlsticas do segmento de rede local

Faz ainda um diagnostico remote de arras e falhas contidas no segmento

com a ajuda de um analisador de protocolos

RMON2 Opera a nivel da camada de rede e camadas superiores

complementando portanto 0 RMON1 possibilitando coletar inlormaoes

estatisticas e monitorar a comunicarao fim-a-fim e 0 tnifego gerado por

dilerentes tipos de aplicaao

A configuraltao do gerenciamento RMON e compost a por uma estaltao central

de gerenciamento (tambem chamada de probe) que gerencia 0 tralego de uma rede

como um todo incluindo suas sub-redes Em cada sub-rede existe uma maquina que

gerencia localmente 0 tralego desta A ligura abaixo ilustra esta conligura[IO

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

2 GERENCIAMENTO DE REDES

o gerenciamento de rede busca maximizar a pradutividade e a eficiencia para

alcancar esses objelivos a ISO (International Organization for Standards) definiu

cinco fun~oes

1 Gerenciamento de Configuratyao Responseivel por detectar e contralar 0

astado da rede tanto a parte 169icacomo a parte fisica

2 Gerenciamento de Desempenho Responsavel por controlar e analisar 0

usa e a taxa de erras na rede mantendo um historico de informagao

3 Gerenciamento de Falhas Responsavel por detectar isolar e controlar

procedimentos anormais que estejam ocorrendo na rede

4 Gerenciamento de Contabilidade Responsavel par coletar e processar

dados relacionados ao usa da rede

5 Gerenciamento de Segurantya Responsavel por controlar 0 acesso aDs

recursos da rede utilizandomiddotse tecnicas de autentica9ao e polfticas de

autoriza9ao

Essas funQ5es de gerenciamento de rede podem ser agrupadas em duas

categorias monitoracao e controle de rede (MOR 1997)

A categoria de Illonitoracilo engloba as funcoes de gerenciamento de

desempenho falha e contabilizaltao que 59 destinam a observa~ao e analise dos

estados da rede e seus elementos

As informat6es monitoradas podem ser de tres tipos

Estaticas Sao as informalt5es que sofrem poucas alteray6es Por

exemplo A descricao de uma estaao de trabalho em uma rede (nome e

endereco)

Dinamicas Sao informat6es que alteram com certa frequencia Por

exemple 0 numero de pacotes com erro em uma transmissao

Estatisticas Sao as informat6es derivadas das dinamicas Por examplo

o numero de pacotes com erro em urn determinado tempo

A categoria de controle engloba as funt6es de gerenciamento de

configurayao e seguranya que se envolvem com as alteralt6es nas configuraltoes

das redes e seus elementos

A estrutura adotada pelos sistemas de gerenciamento de rede e mostrada na

Figura 21 onde 0 gerenciamento e realizado com e compartilhamento de variaveis

armazenadas na Base de Informaltao Gerenciaveis (MIB) trocando informaltoes

atraves de urnprotocolo de comunica~o que segue 0 modelo Cliente middotServidor

Figura 21- Troca de informa90es entre gerente - agente (MOR 1997)

As informacoes de gerenciarnento de redes pod em ser coletadas de duas

farmas

bull Polling E a forma tradicional peja qual 0 gerente requisita as informacoes

para a agente e este as retorna 0 seu usa e ac-anselhavel para

gerenciamento de informacoes que se alteram com pallca freqOencia

Trap Ao contra rio do Polling as informa~6es sao geradas pelo agente e

enviadas para 0 gerente Traps sao utilizados elll dois casos Para enviar

informayoes sabre 0 estado atual das informalt6es gerenciaveis e para

alertar 0 gerente sabre alguma situacao qlle nao e normal que esteja

acorrendo au ira ocarrer

A eseolha da forma que devera ser realizada a coleta de informacoes

dependera da configuraltao de cada rede a sar gerenciada comumente e adotado 0

seguinte esquema Iniciayao utiliza-se 0 Polling e posteriormente 0 Trap

21 STRUCTURE OF MANAGEMENT INFORMATION (SMI)

o 8MI e responsavel por deserever as estruturas e 0 esquema de

identificacao usado na defini9ao das informaltoes de gerenciamento Ele inclui a

desericao de um rnodelo de informacao dos objelos para 0 gereneiamenlo de rede

assim como um conjunto de tipos usados para descrever informac6es de

gerenciamento As estruturas sao definidas formalmente atraves da linguagem ASN

1

Cada objeto gerenciado especificado na SMI atravs de uma macro ASN

que inclui nome sintaxe nilel de acesso e informagoes relacionadas aobrigatoriedade da implementaao do objeto

Para identificar unicamente urn determinado objeto a nome ou identificador efarmada par uma sequencia de numeros inteiros nao negativQs abOdos atrav8S da

arvore de identificaao ASN 1 Figura 22 (MOR 1997)

Figura 22- Arvore de Identificaao ASN 1 (MOR 1997)

22 MANAGEMENT INFORMATION BASE (MIB)

Urn host gerenciado deve manter as informa90es de controle e status para

que 0 administrador possa acessa-Io a roteador par exemplo mantem estatfsticas

sobre 0 status de suas interfaces de rede trafego de entrada e saida datagramas

inlerrompidos e mensagens de erro geradas Embora isso permita que urn

administrador acesse essas estatfsticas 0 SNMP nao especifica exatamente quais

dados podem ser acessados ao contrario um pad rae a parte especifica os detalhes

o padrao conhecido como MIB (Management Information Base) especifica os dados

que um host deve manter e as opera~6espermitidas em cada um deles como par

exemple A MIB determina que a software IP deve manter uma contagem de todos

os oetetos que chegam em cad a interface de rede e que a software de

gerenciamento de rede pode ler apenas aqueles valores

A Base de Informacao de Gerenciamento descreve os objetos a serem

implementados e armazena os valores associados de forma que possam ser vistos

como uma base de informa~aovirtual Por exemple todes os dispositivos da rede

Internet que se constituem em nos gerenciaveis devem implementar a MIB padrao

Internet (MOR 1997)

A MIB para 0 TCPIP classilica as inlorma90es de gerenciamento em oito

categorias como mostra a TabeJa 21 A op~aode categorias e importante porque

as identificadores usados para especificar itens incluem um c6digo par categoria

Categoria da MIB Inclui Informayoes Sobre

Sistema o sistema operacional do roteador ou do loSt

Interfaces Interiaces de redes especfficas

convend Conversiio de endereco (por exemplo mapeamento do

ARP)

Ip Software do Protocolo Internet

Icmp Software do Protocolo de Controle de Mensagens da

Internet

Tep Software do Protocolo de Controle de Transmissao

Udp Software do Protocolo de Datagrama dos Usuarios

Egp Software do Protocolo de Gateway Externo

-Tabela 2 1 - Categonas de Informapoes da MIa

Manter a definiltao da MB independents do protocolo de gerenciamento da

rede traz vantagens tanto para fornecedores quanta para usuarios 0 fornecedor

pode incluir urn agente de software SNMP em um prod uta como um roteador com a

garantia de que 0 software continuara a aderir ao padrao apos a definicao dos novas

itens MIB urn cliente pode usar 0 mesma software do cliente de gerenciamento de

rede para administrar varios roteadores que tenham vers6es diferentes da MIB

Naturalmente um roteador que nao disponha dos novas itens da MIB nao podera

fornecer as informatoes que estiverem naqueles itens entretanto como todes as

roteadores utilizam a mesma linguagem para comunicaao todos eles podem

analisar uma consulta e fornecer a informacao solicitada au enviar uma mensagem

de erro explicando que nao possuem 0 item solicitado (COMER 13 1998)

10

23 RMON (REMOTE MONITORING)

Enquanto 0 SNMP trabailla limitadamente en de 0 gerente obtem apenas

informagoes de um determinado equipamenlo os monilores do RMON (Rem ole

Monitoring) tambem cllamados de probes trabalham capturando as informagoes da

rede como um todD Com aplicagoes desenvolvidas utilizando a ferramenta

PowerTCP torna-se passivel utilizar RMON podendo assim gerenciar tambem

subredes

ORMaN e a capacidade de gerenciamento remoto do SNMP Porem tenta

diminuir a quantidade de informag6es tracadas entre a rede local gerenciada e a

estagao gerente

Os agentes que implementam a RMON MIB possuem cinco fungoes

bull Operagoes Off-line Operagoes que permitem 0 agente continuar

executando suas taretas mesma que a comunicac8o com a estagao de

gerenciamento nao seja passivel ou saja ineficiente

Monitorarao pro-ativa permite-s8 executar continuamente diagnosticos

e manter logs do desempenho das redes a fim de desenvolver a fungao de

baseline ista e manter hist6ricos das opera90es normais por um tempo

estendido e em seguida lazar uma analise para identificar problemas

potenciais na rede

bull Detecgao e registro de problemas 0 monitor RMON pode reconhecer

determinadas condigoes das redes fazendo constantes averigua6es com

II

o objetive de informar ao gerenle sabre eventos e situat6es de erras

significativos para a rede

Valorizacao dos dados coletados 0 monitor RMON pode realizar

analises especfficas sobre os dados coletados em suas subredes

bull MUitiplos Gerentes olerece maior nivel de disponibilidade pois 0

diagnostico podera ser feito a partir de mais de uma estayao gerenle 0

uso de multiplos gerentes tambem permite a execuao de dilerentes

fungoes ou 0 gerenciamento de diferentes departamentos em uma

empresa

Dois padroes do protocolo RMON sao implementados

bull RMON1 Monitora em nivel de camada MAC (Media Access Control) 0

trafego e coleta de informaroes e estatlsticas do segmento de rede local

Faz ainda um diagnostico remote de arras e falhas contidas no segmento

com a ajuda de um analisador de protocolos

RMON2 Opera a nivel da camada de rede e camadas superiores

complementando portanto 0 RMON1 possibilitando coletar inlormaoes

estatisticas e monitorar a comunicarao fim-a-fim e 0 tnifego gerado por

dilerentes tipos de aplicaao

A configuraltao do gerenciamento RMON e compost a por uma estaltao central

de gerenciamento (tambem chamada de probe) que gerencia 0 tralego de uma rede

como um todo incluindo suas sub-redes Em cada sub-rede existe uma maquina que

gerencia localmente 0 tralego desta A ligura abaixo ilustra esta conligura[IO

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

As informat6es monitoradas podem ser de tres tipos

Estaticas Sao as informalt5es que sofrem poucas alteray6es Por

exemplo A descricao de uma estaao de trabalho em uma rede (nome e

endereco)

Dinamicas Sao informat6es que alteram com certa frequencia Por

exemple 0 numero de pacotes com erro em uma transmissao

Estatisticas Sao as informat6es derivadas das dinamicas Por examplo

o numero de pacotes com erro em urn determinado tempo

A categoria de controle engloba as funt6es de gerenciamento de

configurayao e seguranya que se envolvem com as alteralt6es nas configuraltoes

das redes e seus elementos

A estrutura adotada pelos sistemas de gerenciamento de rede e mostrada na

Figura 21 onde 0 gerenciamento e realizado com e compartilhamento de variaveis

armazenadas na Base de Informaltao Gerenciaveis (MIB) trocando informaltoes

atraves de urnprotocolo de comunica~o que segue 0 modelo Cliente middotServidor

Figura 21- Troca de informa90es entre gerente - agente (MOR 1997)

As informacoes de gerenciarnento de redes pod em ser coletadas de duas

farmas

bull Polling E a forma tradicional peja qual 0 gerente requisita as informacoes

para a agente e este as retorna 0 seu usa e ac-anselhavel para

gerenciamento de informacoes que se alteram com pallca freqOencia

Trap Ao contra rio do Polling as informa~6es sao geradas pelo agente e

enviadas para 0 gerente Traps sao utilizados elll dois casos Para enviar

informayoes sabre 0 estado atual das informalt6es gerenciaveis e para

alertar 0 gerente sabre alguma situacao qlle nao e normal que esteja

acorrendo au ira ocarrer

A eseolha da forma que devera ser realizada a coleta de informacoes

dependera da configuraltao de cada rede a sar gerenciada comumente e adotado 0

seguinte esquema Iniciayao utiliza-se 0 Polling e posteriormente 0 Trap

21 STRUCTURE OF MANAGEMENT INFORMATION (SMI)

o 8MI e responsavel por deserever as estruturas e 0 esquema de

identificacao usado na defini9ao das informaltoes de gerenciamento Ele inclui a

desericao de um rnodelo de informacao dos objelos para 0 gereneiamenlo de rede

assim como um conjunto de tipos usados para descrever informac6es de

gerenciamento As estruturas sao definidas formalmente atraves da linguagem ASN

1

Cada objeto gerenciado especificado na SMI atravs de uma macro ASN

que inclui nome sintaxe nilel de acesso e informagoes relacionadas aobrigatoriedade da implementaao do objeto

Para identificar unicamente urn determinado objeto a nome ou identificador efarmada par uma sequencia de numeros inteiros nao negativQs abOdos atrav8S da

arvore de identificaao ASN 1 Figura 22 (MOR 1997)

Figura 22- Arvore de Identificaao ASN 1 (MOR 1997)

22 MANAGEMENT INFORMATION BASE (MIB)

Urn host gerenciado deve manter as informa90es de controle e status para

que 0 administrador possa acessa-Io a roteador par exemplo mantem estatfsticas

sobre 0 status de suas interfaces de rede trafego de entrada e saida datagramas

inlerrompidos e mensagens de erro geradas Embora isso permita que urn

administrador acesse essas estatfsticas 0 SNMP nao especifica exatamente quais

dados podem ser acessados ao contrario um pad rae a parte especifica os detalhes

o padrao conhecido como MIB (Management Information Base) especifica os dados

que um host deve manter e as opera~6espermitidas em cada um deles como par

exemple A MIB determina que a software IP deve manter uma contagem de todos

os oetetos que chegam em cad a interface de rede e que a software de

gerenciamento de rede pode ler apenas aqueles valores

A Base de Informacao de Gerenciamento descreve os objetos a serem

implementados e armazena os valores associados de forma que possam ser vistos

como uma base de informa~aovirtual Por exemple todes os dispositivos da rede

Internet que se constituem em nos gerenciaveis devem implementar a MIB padrao

Internet (MOR 1997)

A MIB para 0 TCPIP classilica as inlorma90es de gerenciamento em oito

categorias como mostra a TabeJa 21 A op~aode categorias e importante porque

as identificadores usados para especificar itens incluem um c6digo par categoria

Categoria da MIB Inclui Informayoes Sobre

Sistema o sistema operacional do roteador ou do loSt

Interfaces Interiaces de redes especfficas

convend Conversiio de endereco (por exemplo mapeamento do

ARP)

Ip Software do Protocolo Internet

Icmp Software do Protocolo de Controle de Mensagens da

Internet

Tep Software do Protocolo de Controle de Transmissao

Udp Software do Protocolo de Datagrama dos Usuarios

Egp Software do Protocolo de Gateway Externo

-Tabela 2 1 - Categonas de Informapoes da MIa

Manter a definiltao da MB independents do protocolo de gerenciamento da

rede traz vantagens tanto para fornecedores quanta para usuarios 0 fornecedor

pode incluir urn agente de software SNMP em um prod uta como um roteador com a

garantia de que 0 software continuara a aderir ao padrao apos a definicao dos novas

itens MIB urn cliente pode usar 0 mesma software do cliente de gerenciamento de

rede para administrar varios roteadores que tenham vers6es diferentes da MIB

Naturalmente um roteador que nao disponha dos novas itens da MIB nao podera

fornecer as informatoes que estiverem naqueles itens entretanto como todes as

roteadores utilizam a mesma linguagem para comunicaao todos eles podem

analisar uma consulta e fornecer a informacao solicitada au enviar uma mensagem

de erro explicando que nao possuem 0 item solicitado (COMER 13 1998)

10

23 RMON (REMOTE MONITORING)

Enquanto 0 SNMP trabailla limitadamente en de 0 gerente obtem apenas

informagoes de um determinado equipamenlo os monilores do RMON (Rem ole

Monitoring) tambem cllamados de probes trabalham capturando as informagoes da

rede como um todD Com aplicagoes desenvolvidas utilizando a ferramenta

PowerTCP torna-se passivel utilizar RMON podendo assim gerenciar tambem

subredes

ORMaN e a capacidade de gerenciamento remoto do SNMP Porem tenta

diminuir a quantidade de informag6es tracadas entre a rede local gerenciada e a

estagao gerente

Os agentes que implementam a RMON MIB possuem cinco fungoes

bull Operagoes Off-line Operagoes que permitem 0 agente continuar

executando suas taretas mesma que a comunicac8o com a estagao de

gerenciamento nao seja passivel ou saja ineficiente

Monitorarao pro-ativa permite-s8 executar continuamente diagnosticos

e manter logs do desempenho das redes a fim de desenvolver a fungao de

baseline ista e manter hist6ricos das opera90es normais por um tempo

estendido e em seguida lazar uma analise para identificar problemas

potenciais na rede

bull Detecgao e registro de problemas 0 monitor RMON pode reconhecer

determinadas condigoes das redes fazendo constantes averigua6es com

II

o objetive de informar ao gerenle sabre eventos e situat6es de erras

significativos para a rede

Valorizacao dos dados coletados 0 monitor RMON pode realizar

analises especfficas sobre os dados coletados em suas subredes

bull MUitiplos Gerentes olerece maior nivel de disponibilidade pois 0

diagnostico podera ser feito a partir de mais de uma estayao gerenle 0

uso de multiplos gerentes tambem permite a execuao de dilerentes

fungoes ou 0 gerenciamento de diferentes departamentos em uma

empresa

Dois padroes do protocolo RMON sao implementados

bull RMON1 Monitora em nivel de camada MAC (Media Access Control) 0

trafego e coleta de informaroes e estatlsticas do segmento de rede local

Faz ainda um diagnostico remote de arras e falhas contidas no segmento

com a ajuda de um analisador de protocolos

RMON2 Opera a nivel da camada de rede e camadas superiores

complementando portanto 0 RMON1 possibilitando coletar inlormaoes

estatisticas e monitorar a comunicarao fim-a-fim e 0 tnifego gerado por

dilerentes tipos de aplicaao

A configuraltao do gerenciamento RMON e compost a por uma estaltao central

de gerenciamento (tambem chamada de probe) que gerencia 0 tralego de uma rede

como um todo incluindo suas sub-redes Em cada sub-rede existe uma maquina que

gerencia localmente 0 tralego desta A ligura abaixo ilustra esta conligura[IO

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

As informacoes de gerenciarnento de redes pod em ser coletadas de duas

farmas

bull Polling E a forma tradicional peja qual 0 gerente requisita as informacoes

para a agente e este as retorna 0 seu usa e ac-anselhavel para

gerenciamento de informacoes que se alteram com pallca freqOencia

Trap Ao contra rio do Polling as informa~6es sao geradas pelo agente e

enviadas para 0 gerente Traps sao utilizados elll dois casos Para enviar

informayoes sabre 0 estado atual das informalt6es gerenciaveis e para

alertar 0 gerente sabre alguma situacao qlle nao e normal que esteja

acorrendo au ira ocarrer

A eseolha da forma que devera ser realizada a coleta de informacoes

dependera da configuraltao de cada rede a sar gerenciada comumente e adotado 0

seguinte esquema Iniciayao utiliza-se 0 Polling e posteriormente 0 Trap

21 STRUCTURE OF MANAGEMENT INFORMATION (SMI)

o 8MI e responsavel por deserever as estruturas e 0 esquema de

identificacao usado na defini9ao das informaltoes de gerenciamento Ele inclui a

desericao de um rnodelo de informacao dos objelos para 0 gereneiamenlo de rede

assim como um conjunto de tipos usados para descrever informac6es de

gerenciamento As estruturas sao definidas formalmente atraves da linguagem ASN

1

Cada objeto gerenciado especificado na SMI atravs de uma macro ASN

que inclui nome sintaxe nilel de acesso e informagoes relacionadas aobrigatoriedade da implementaao do objeto

Para identificar unicamente urn determinado objeto a nome ou identificador efarmada par uma sequencia de numeros inteiros nao negativQs abOdos atrav8S da

arvore de identificaao ASN 1 Figura 22 (MOR 1997)

Figura 22- Arvore de Identificaao ASN 1 (MOR 1997)

22 MANAGEMENT INFORMATION BASE (MIB)

Urn host gerenciado deve manter as informa90es de controle e status para

que 0 administrador possa acessa-Io a roteador par exemplo mantem estatfsticas

sobre 0 status de suas interfaces de rede trafego de entrada e saida datagramas

inlerrompidos e mensagens de erro geradas Embora isso permita que urn

administrador acesse essas estatfsticas 0 SNMP nao especifica exatamente quais

dados podem ser acessados ao contrario um pad rae a parte especifica os detalhes

o padrao conhecido como MIB (Management Information Base) especifica os dados

que um host deve manter e as opera~6espermitidas em cada um deles como par

exemple A MIB determina que a software IP deve manter uma contagem de todos

os oetetos que chegam em cad a interface de rede e que a software de

gerenciamento de rede pode ler apenas aqueles valores

A Base de Informacao de Gerenciamento descreve os objetos a serem

implementados e armazena os valores associados de forma que possam ser vistos

como uma base de informa~aovirtual Por exemple todes os dispositivos da rede

Internet que se constituem em nos gerenciaveis devem implementar a MIB padrao

Internet (MOR 1997)

A MIB para 0 TCPIP classilica as inlorma90es de gerenciamento em oito

categorias como mostra a TabeJa 21 A op~aode categorias e importante porque

as identificadores usados para especificar itens incluem um c6digo par categoria

Categoria da MIB Inclui Informayoes Sobre

Sistema o sistema operacional do roteador ou do loSt

Interfaces Interiaces de redes especfficas

convend Conversiio de endereco (por exemplo mapeamento do

ARP)

Ip Software do Protocolo Internet

Icmp Software do Protocolo de Controle de Mensagens da

Internet

Tep Software do Protocolo de Controle de Transmissao

Udp Software do Protocolo de Datagrama dos Usuarios

Egp Software do Protocolo de Gateway Externo

-Tabela 2 1 - Categonas de Informapoes da MIa

Manter a definiltao da MB independents do protocolo de gerenciamento da

rede traz vantagens tanto para fornecedores quanta para usuarios 0 fornecedor

pode incluir urn agente de software SNMP em um prod uta como um roteador com a

garantia de que 0 software continuara a aderir ao padrao apos a definicao dos novas

itens MIB urn cliente pode usar 0 mesma software do cliente de gerenciamento de

rede para administrar varios roteadores que tenham vers6es diferentes da MIB

Naturalmente um roteador que nao disponha dos novas itens da MIB nao podera

fornecer as informatoes que estiverem naqueles itens entretanto como todes as

roteadores utilizam a mesma linguagem para comunicaao todos eles podem

analisar uma consulta e fornecer a informacao solicitada au enviar uma mensagem

de erro explicando que nao possuem 0 item solicitado (COMER 13 1998)

10

23 RMON (REMOTE MONITORING)

Enquanto 0 SNMP trabailla limitadamente en de 0 gerente obtem apenas

informagoes de um determinado equipamenlo os monilores do RMON (Rem ole

Monitoring) tambem cllamados de probes trabalham capturando as informagoes da

rede como um todD Com aplicagoes desenvolvidas utilizando a ferramenta

PowerTCP torna-se passivel utilizar RMON podendo assim gerenciar tambem

subredes

ORMaN e a capacidade de gerenciamento remoto do SNMP Porem tenta

diminuir a quantidade de informag6es tracadas entre a rede local gerenciada e a

estagao gerente

Os agentes que implementam a RMON MIB possuem cinco fungoes

bull Operagoes Off-line Operagoes que permitem 0 agente continuar

executando suas taretas mesma que a comunicac8o com a estagao de

gerenciamento nao seja passivel ou saja ineficiente

Monitorarao pro-ativa permite-s8 executar continuamente diagnosticos

e manter logs do desempenho das redes a fim de desenvolver a fungao de

baseline ista e manter hist6ricos das opera90es normais por um tempo

estendido e em seguida lazar uma analise para identificar problemas

potenciais na rede

bull Detecgao e registro de problemas 0 monitor RMON pode reconhecer

determinadas condigoes das redes fazendo constantes averigua6es com

II

o objetive de informar ao gerenle sabre eventos e situat6es de erras

significativos para a rede

Valorizacao dos dados coletados 0 monitor RMON pode realizar

analises especfficas sobre os dados coletados em suas subredes

bull MUitiplos Gerentes olerece maior nivel de disponibilidade pois 0

diagnostico podera ser feito a partir de mais de uma estayao gerenle 0

uso de multiplos gerentes tambem permite a execuao de dilerentes

fungoes ou 0 gerenciamento de diferentes departamentos em uma

empresa

Dois padroes do protocolo RMON sao implementados

bull RMON1 Monitora em nivel de camada MAC (Media Access Control) 0

trafego e coleta de informaroes e estatlsticas do segmento de rede local

Faz ainda um diagnostico remote de arras e falhas contidas no segmento

com a ajuda de um analisador de protocolos

RMON2 Opera a nivel da camada de rede e camadas superiores

complementando portanto 0 RMON1 possibilitando coletar inlormaoes

estatisticas e monitorar a comunicarao fim-a-fim e 0 tnifego gerado por

dilerentes tipos de aplicaao

A configuraltao do gerenciamento RMON e compost a por uma estaltao central

de gerenciamento (tambem chamada de probe) que gerencia 0 tralego de uma rede

como um todo incluindo suas sub-redes Em cada sub-rede existe uma maquina que

gerencia localmente 0 tralego desta A ligura abaixo ilustra esta conligura[IO

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

Cada objeto gerenciado especificado na SMI atravs de uma macro ASN

que inclui nome sintaxe nilel de acesso e informagoes relacionadas aobrigatoriedade da implementaao do objeto

Para identificar unicamente urn determinado objeto a nome ou identificador efarmada par uma sequencia de numeros inteiros nao negativQs abOdos atrav8S da

arvore de identificaao ASN 1 Figura 22 (MOR 1997)

Figura 22- Arvore de Identificaao ASN 1 (MOR 1997)

22 MANAGEMENT INFORMATION BASE (MIB)

Urn host gerenciado deve manter as informa90es de controle e status para

que 0 administrador possa acessa-Io a roteador par exemplo mantem estatfsticas

sobre 0 status de suas interfaces de rede trafego de entrada e saida datagramas

inlerrompidos e mensagens de erro geradas Embora isso permita que urn

administrador acesse essas estatfsticas 0 SNMP nao especifica exatamente quais

dados podem ser acessados ao contrario um pad rae a parte especifica os detalhes

o padrao conhecido como MIB (Management Information Base) especifica os dados

que um host deve manter e as opera~6espermitidas em cada um deles como par

exemple A MIB determina que a software IP deve manter uma contagem de todos

os oetetos que chegam em cad a interface de rede e que a software de

gerenciamento de rede pode ler apenas aqueles valores

A Base de Informacao de Gerenciamento descreve os objetos a serem

implementados e armazena os valores associados de forma que possam ser vistos

como uma base de informa~aovirtual Por exemple todes os dispositivos da rede

Internet que se constituem em nos gerenciaveis devem implementar a MIB padrao

Internet (MOR 1997)

A MIB para 0 TCPIP classilica as inlorma90es de gerenciamento em oito

categorias como mostra a TabeJa 21 A op~aode categorias e importante porque

as identificadores usados para especificar itens incluem um c6digo par categoria

Categoria da MIB Inclui Informayoes Sobre

Sistema o sistema operacional do roteador ou do loSt

Interfaces Interiaces de redes especfficas

convend Conversiio de endereco (por exemplo mapeamento do

ARP)

Ip Software do Protocolo Internet

Icmp Software do Protocolo de Controle de Mensagens da

Internet

Tep Software do Protocolo de Controle de Transmissao

Udp Software do Protocolo de Datagrama dos Usuarios

Egp Software do Protocolo de Gateway Externo

-Tabela 2 1 - Categonas de Informapoes da MIa

Manter a definiltao da MB independents do protocolo de gerenciamento da

rede traz vantagens tanto para fornecedores quanta para usuarios 0 fornecedor

pode incluir urn agente de software SNMP em um prod uta como um roteador com a

garantia de que 0 software continuara a aderir ao padrao apos a definicao dos novas

itens MIB urn cliente pode usar 0 mesma software do cliente de gerenciamento de

rede para administrar varios roteadores que tenham vers6es diferentes da MIB

Naturalmente um roteador que nao disponha dos novas itens da MIB nao podera

fornecer as informatoes que estiverem naqueles itens entretanto como todes as

roteadores utilizam a mesma linguagem para comunicaao todos eles podem

analisar uma consulta e fornecer a informacao solicitada au enviar uma mensagem

de erro explicando que nao possuem 0 item solicitado (COMER 13 1998)

10

23 RMON (REMOTE MONITORING)

Enquanto 0 SNMP trabailla limitadamente en de 0 gerente obtem apenas

informagoes de um determinado equipamenlo os monilores do RMON (Rem ole

Monitoring) tambem cllamados de probes trabalham capturando as informagoes da

rede como um todD Com aplicagoes desenvolvidas utilizando a ferramenta

PowerTCP torna-se passivel utilizar RMON podendo assim gerenciar tambem

subredes

ORMaN e a capacidade de gerenciamento remoto do SNMP Porem tenta

diminuir a quantidade de informag6es tracadas entre a rede local gerenciada e a

estagao gerente

Os agentes que implementam a RMON MIB possuem cinco fungoes

bull Operagoes Off-line Operagoes que permitem 0 agente continuar

executando suas taretas mesma que a comunicac8o com a estagao de

gerenciamento nao seja passivel ou saja ineficiente

Monitorarao pro-ativa permite-s8 executar continuamente diagnosticos

e manter logs do desempenho das redes a fim de desenvolver a fungao de

baseline ista e manter hist6ricos das opera90es normais por um tempo

estendido e em seguida lazar uma analise para identificar problemas

potenciais na rede

bull Detecgao e registro de problemas 0 monitor RMON pode reconhecer

determinadas condigoes das redes fazendo constantes averigua6es com

II

o objetive de informar ao gerenle sabre eventos e situat6es de erras

significativos para a rede

Valorizacao dos dados coletados 0 monitor RMON pode realizar

analises especfficas sobre os dados coletados em suas subredes

bull MUitiplos Gerentes olerece maior nivel de disponibilidade pois 0

diagnostico podera ser feito a partir de mais de uma estayao gerenle 0

uso de multiplos gerentes tambem permite a execuao de dilerentes

fungoes ou 0 gerenciamento de diferentes departamentos em uma

empresa

Dois padroes do protocolo RMON sao implementados

bull RMON1 Monitora em nivel de camada MAC (Media Access Control) 0

trafego e coleta de informaroes e estatlsticas do segmento de rede local

Faz ainda um diagnostico remote de arras e falhas contidas no segmento

com a ajuda de um analisador de protocolos

RMON2 Opera a nivel da camada de rede e camadas superiores

complementando portanto 0 RMON1 possibilitando coletar inlormaoes

estatisticas e monitorar a comunicarao fim-a-fim e 0 tnifego gerado por

dilerentes tipos de aplicaao

A configuraltao do gerenciamento RMON e compost a por uma estaltao central

de gerenciamento (tambem chamada de probe) que gerencia 0 tralego de uma rede

como um todo incluindo suas sub-redes Em cada sub-rede existe uma maquina que

gerencia localmente 0 tralego desta A ligura abaixo ilustra esta conligura[IO

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

administrador acesse essas estatfsticas 0 SNMP nao especifica exatamente quais

dados podem ser acessados ao contrario um pad rae a parte especifica os detalhes

o padrao conhecido como MIB (Management Information Base) especifica os dados

que um host deve manter e as opera~6espermitidas em cada um deles como par

exemple A MIB determina que a software IP deve manter uma contagem de todos

os oetetos que chegam em cad a interface de rede e que a software de

gerenciamento de rede pode ler apenas aqueles valores

A Base de Informacao de Gerenciamento descreve os objetos a serem

implementados e armazena os valores associados de forma que possam ser vistos

como uma base de informa~aovirtual Por exemple todes os dispositivos da rede

Internet que se constituem em nos gerenciaveis devem implementar a MIB padrao

Internet (MOR 1997)

A MIB para 0 TCPIP classilica as inlorma90es de gerenciamento em oito

categorias como mostra a TabeJa 21 A op~aode categorias e importante porque

as identificadores usados para especificar itens incluem um c6digo par categoria

Categoria da MIB Inclui Informayoes Sobre

Sistema o sistema operacional do roteador ou do loSt

Interfaces Interiaces de redes especfficas

convend Conversiio de endereco (por exemplo mapeamento do

ARP)

Ip Software do Protocolo Internet

Icmp Software do Protocolo de Controle de Mensagens da

Internet

Tep Software do Protocolo de Controle de Transmissao

Udp Software do Protocolo de Datagrama dos Usuarios

Egp Software do Protocolo de Gateway Externo

-Tabela 2 1 - Categonas de Informapoes da MIa

Manter a definiltao da MB independents do protocolo de gerenciamento da

rede traz vantagens tanto para fornecedores quanta para usuarios 0 fornecedor

pode incluir urn agente de software SNMP em um prod uta como um roteador com a

garantia de que 0 software continuara a aderir ao padrao apos a definicao dos novas

itens MIB urn cliente pode usar 0 mesma software do cliente de gerenciamento de

rede para administrar varios roteadores que tenham vers6es diferentes da MIB

Naturalmente um roteador que nao disponha dos novas itens da MIB nao podera

fornecer as informatoes que estiverem naqueles itens entretanto como todes as

roteadores utilizam a mesma linguagem para comunicaao todos eles podem

analisar uma consulta e fornecer a informacao solicitada au enviar uma mensagem

de erro explicando que nao possuem 0 item solicitado (COMER 13 1998)

10

23 RMON (REMOTE MONITORING)

Enquanto 0 SNMP trabailla limitadamente en de 0 gerente obtem apenas

informagoes de um determinado equipamenlo os monilores do RMON (Rem ole

Monitoring) tambem cllamados de probes trabalham capturando as informagoes da

rede como um todD Com aplicagoes desenvolvidas utilizando a ferramenta

PowerTCP torna-se passivel utilizar RMON podendo assim gerenciar tambem

subredes

ORMaN e a capacidade de gerenciamento remoto do SNMP Porem tenta

diminuir a quantidade de informag6es tracadas entre a rede local gerenciada e a

estagao gerente

Os agentes que implementam a RMON MIB possuem cinco fungoes

bull Operagoes Off-line Operagoes que permitem 0 agente continuar

executando suas taretas mesma que a comunicac8o com a estagao de

gerenciamento nao seja passivel ou saja ineficiente

Monitorarao pro-ativa permite-s8 executar continuamente diagnosticos

e manter logs do desempenho das redes a fim de desenvolver a fungao de

baseline ista e manter hist6ricos das opera90es normais por um tempo

estendido e em seguida lazar uma analise para identificar problemas

potenciais na rede

bull Detecgao e registro de problemas 0 monitor RMON pode reconhecer

determinadas condigoes das redes fazendo constantes averigua6es com

II

o objetive de informar ao gerenle sabre eventos e situat6es de erras

significativos para a rede

Valorizacao dos dados coletados 0 monitor RMON pode realizar

analises especfficas sobre os dados coletados em suas subredes

bull MUitiplos Gerentes olerece maior nivel de disponibilidade pois 0

diagnostico podera ser feito a partir de mais de uma estayao gerenle 0

uso de multiplos gerentes tambem permite a execuao de dilerentes

fungoes ou 0 gerenciamento de diferentes departamentos em uma

empresa

Dois padroes do protocolo RMON sao implementados

bull RMON1 Monitora em nivel de camada MAC (Media Access Control) 0

trafego e coleta de informaroes e estatlsticas do segmento de rede local

Faz ainda um diagnostico remote de arras e falhas contidas no segmento

com a ajuda de um analisador de protocolos

RMON2 Opera a nivel da camada de rede e camadas superiores

complementando portanto 0 RMON1 possibilitando coletar inlormaoes

estatisticas e monitorar a comunicarao fim-a-fim e 0 tnifego gerado por

dilerentes tipos de aplicaao

A configuraltao do gerenciamento RMON e compost a por uma estaltao central

de gerenciamento (tambem chamada de probe) que gerencia 0 tralego de uma rede

como um todo incluindo suas sub-redes Em cada sub-rede existe uma maquina que

gerencia localmente 0 tralego desta A ligura abaixo ilustra esta conligura[IO

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

Categoria da MIB Inclui Informayoes Sobre

Sistema o sistema operacional do roteador ou do loSt

Interfaces Interiaces de redes especfficas

convend Conversiio de endereco (por exemplo mapeamento do

ARP)

Ip Software do Protocolo Internet

Icmp Software do Protocolo de Controle de Mensagens da

Internet

Tep Software do Protocolo de Controle de Transmissao

Udp Software do Protocolo de Datagrama dos Usuarios

Egp Software do Protocolo de Gateway Externo

-Tabela 2 1 - Categonas de Informapoes da MIa

Manter a definiltao da MB independents do protocolo de gerenciamento da

rede traz vantagens tanto para fornecedores quanta para usuarios 0 fornecedor

pode incluir urn agente de software SNMP em um prod uta como um roteador com a

garantia de que 0 software continuara a aderir ao padrao apos a definicao dos novas

itens MIB urn cliente pode usar 0 mesma software do cliente de gerenciamento de

rede para administrar varios roteadores que tenham vers6es diferentes da MIB

Naturalmente um roteador que nao disponha dos novas itens da MIB nao podera

fornecer as informatoes que estiverem naqueles itens entretanto como todes as

roteadores utilizam a mesma linguagem para comunicaao todos eles podem

analisar uma consulta e fornecer a informacao solicitada au enviar uma mensagem

de erro explicando que nao possuem 0 item solicitado (COMER 13 1998)

10

23 RMON (REMOTE MONITORING)

Enquanto 0 SNMP trabailla limitadamente en de 0 gerente obtem apenas

informagoes de um determinado equipamenlo os monilores do RMON (Rem ole

Monitoring) tambem cllamados de probes trabalham capturando as informagoes da

rede como um todD Com aplicagoes desenvolvidas utilizando a ferramenta

PowerTCP torna-se passivel utilizar RMON podendo assim gerenciar tambem

subredes

ORMaN e a capacidade de gerenciamento remoto do SNMP Porem tenta

diminuir a quantidade de informag6es tracadas entre a rede local gerenciada e a

estagao gerente

Os agentes que implementam a RMON MIB possuem cinco fungoes

bull Operagoes Off-line Operagoes que permitem 0 agente continuar

executando suas taretas mesma que a comunicac8o com a estagao de

gerenciamento nao seja passivel ou saja ineficiente

Monitorarao pro-ativa permite-s8 executar continuamente diagnosticos

e manter logs do desempenho das redes a fim de desenvolver a fungao de

baseline ista e manter hist6ricos das opera90es normais por um tempo

estendido e em seguida lazar uma analise para identificar problemas

potenciais na rede

bull Detecgao e registro de problemas 0 monitor RMON pode reconhecer

determinadas condigoes das redes fazendo constantes averigua6es com

II

o objetive de informar ao gerenle sabre eventos e situat6es de erras

significativos para a rede

Valorizacao dos dados coletados 0 monitor RMON pode realizar

analises especfficas sobre os dados coletados em suas subredes

bull MUitiplos Gerentes olerece maior nivel de disponibilidade pois 0

diagnostico podera ser feito a partir de mais de uma estayao gerenle 0

uso de multiplos gerentes tambem permite a execuao de dilerentes

fungoes ou 0 gerenciamento de diferentes departamentos em uma

empresa

Dois padroes do protocolo RMON sao implementados

bull RMON1 Monitora em nivel de camada MAC (Media Access Control) 0

trafego e coleta de informaroes e estatlsticas do segmento de rede local

Faz ainda um diagnostico remote de arras e falhas contidas no segmento

com a ajuda de um analisador de protocolos

RMON2 Opera a nivel da camada de rede e camadas superiores

complementando portanto 0 RMON1 possibilitando coletar inlormaoes

estatisticas e monitorar a comunicarao fim-a-fim e 0 tnifego gerado por

dilerentes tipos de aplicaao

A configuraltao do gerenciamento RMON e compost a por uma estaltao central

de gerenciamento (tambem chamada de probe) que gerencia 0 tralego de uma rede

como um todo incluindo suas sub-redes Em cada sub-rede existe uma maquina que

gerencia localmente 0 tralego desta A ligura abaixo ilustra esta conligura[IO

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

10

23 RMON (REMOTE MONITORING)

Enquanto 0 SNMP trabailla limitadamente en de 0 gerente obtem apenas

informagoes de um determinado equipamenlo os monilores do RMON (Rem ole

Monitoring) tambem cllamados de probes trabalham capturando as informagoes da

rede como um todD Com aplicagoes desenvolvidas utilizando a ferramenta

PowerTCP torna-se passivel utilizar RMON podendo assim gerenciar tambem

subredes

ORMaN e a capacidade de gerenciamento remoto do SNMP Porem tenta

diminuir a quantidade de informag6es tracadas entre a rede local gerenciada e a

estagao gerente

Os agentes que implementam a RMON MIB possuem cinco fungoes

bull Operagoes Off-line Operagoes que permitem 0 agente continuar

executando suas taretas mesma que a comunicac8o com a estagao de

gerenciamento nao seja passivel ou saja ineficiente

Monitorarao pro-ativa permite-s8 executar continuamente diagnosticos

e manter logs do desempenho das redes a fim de desenvolver a fungao de

baseline ista e manter hist6ricos das opera90es normais por um tempo

estendido e em seguida lazar uma analise para identificar problemas

potenciais na rede

bull Detecgao e registro de problemas 0 monitor RMON pode reconhecer

determinadas condigoes das redes fazendo constantes averigua6es com

II

o objetive de informar ao gerenle sabre eventos e situat6es de erras

significativos para a rede

Valorizacao dos dados coletados 0 monitor RMON pode realizar

analises especfficas sobre os dados coletados em suas subredes

bull MUitiplos Gerentes olerece maior nivel de disponibilidade pois 0

diagnostico podera ser feito a partir de mais de uma estayao gerenle 0

uso de multiplos gerentes tambem permite a execuao de dilerentes

fungoes ou 0 gerenciamento de diferentes departamentos em uma

empresa

Dois padroes do protocolo RMON sao implementados

bull RMON1 Monitora em nivel de camada MAC (Media Access Control) 0

trafego e coleta de informaroes e estatlsticas do segmento de rede local

Faz ainda um diagnostico remote de arras e falhas contidas no segmento

com a ajuda de um analisador de protocolos

RMON2 Opera a nivel da camada de rede e camadas superiores

complementando portanto 0 RMON1 possibilitando coletar inlormaoes

estatisticas e monitorar a comunicarao fim-a-fim e 0 tnifego gerado por

dilerentes tipos de aplicaao

A configuraltao do gerenciamento RMON e compost a por uma estaltao central

de gerenciamento (tambem chamada de probe) que gerencia 0 tralego de uma rede

como um todo incluindo suas sub-redes Em cada sub-rede existe uma maquina que

gerencia localmente 0 tralego desta A ligura abaixo ilustra esta conligura[IO

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

II

o objetive de informar ao gerenle sabre eventos e situat6es de erras

significativos para a rede

Valorizacao dos dados coletados 0 monitor RMON pode realizar

analises especfficas sobre os dados coletados em suas subredes

bull MUitiplos Gerentes olerece maior nivel de disponibilidade pois 0

diagnostico podera ser feito a partir de mais de uma estayao gerenle 0

uso de multiplos gerentes tambem permite a execuao de dilerentes

fungoes ou 0 gerenciamento de diferentes departamentos em uma

empresa

Dois padroes do protocolo RMON sao implementados

bull RMON1 Monitora em nivel de camada MAC (Media Access Control) 0

trafego e coleta de informaroes e estatlsticas do segmento de rede local

Faz ainda um diagnostico remote de arras e falhas contidas no segmento

com a ajuda de um analisador de protocolos

RMON2 Opera a nivel da camada de rede e camadas superiores

complementando portanto 0 RMON1 possibilitando coletar inlormaoes

estatisticas e monitorar a comunicarao fim-a-fim e 0 tnifego gerado por

dilerentes tipos de aplicaao

A configuraltao do gerenciamento RMON e compost a por uma estaltao central

de gerenciamento (tambem chamada de probe) que gerencia 0 tralego de uma rede

como um todo incluindo suas sub-redes Em cada sub-rede existe uma maquina que

gerencia localmente 0 tralego desta A ligura abaixo ilustra esta conligura[IO

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

bull EacentodGtlenCfamfnlO Rr~ON

Ethornet

PCoomprobeRIION

Rotendol

r~i~Oken RlnV cR~

~-

)JtAV- FOil

Figura 23- Exemplo de configuraao de uma rede ulilizando 0 RMON

24 HISTORICO DO GERENCIAMENTO INTERNET

Verificou-se nos allos 80 que 0 numero de redes conectadas a Internet estava

crescendo alem disso varias organizac5es come9aram a assumir responsabilidade

de gerencia sobre parte da rede tanto a nfvel de backbone como a nfveis regional e

institucional

Essas organizacoes usavam equipamentos de diferentes fornecedores que

trabalhavam corn tecnologias de rsdes diferentes causando problemas no

gerenciamento da rede

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

Em 1987 surgiram tres propostas para padronizaao SGMP (Simple

Gateway Monotoring Protocol) 0 HEMS (High-Level Entity Management System) e 0

CMOT (CMIP sobre 0 TCPIP)

Em fevereiro de 1988 0 lAB (Internet Activities Board) na busca de uma

padroniza9ao chega a duas propostas

1 Desenvolvimento de um novo protocolo (SNMP) a partir do SGMP

destinado a uma solu~aoa curto prazo

2 Desenvolvimento do CMOT destinado a uma soluyao a longo prazo

Assim em ag05to de 1988 urn modele de gerenciamento comum as duas

propostas e apresentado chamado de Modelo de Gerenciamento de Rede Internet

Como parte desse documento encontrava-se dais outros documentos responsaveis

pela definiao das informaoes de gerenciamento SMI (Structure 01Management

Information) e a MtB (Management Information Base) ambas projetadas visando it

compatibilidade entre os dois modelos de gerenciamento (MOR 1997)

Em abril de 1989 0 SNMP (RFC 1157) tornou-se um padrao para 0

gerenciamento de rede baseado no protocolo TCPlIP Com a aceitaao dos

fabricanles de produlos de rede 0 CMTO nao apresenlou soluoes reais

(implemenlaao) deixando 0 SNMP como it unica soluao

Em maryo de 1993 foi publicado um conjunto de documentos (RFC 1902-

1907) com proposlas de padronizaao do prolocolo SNMPv2 que e a versao 2 do

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

1-1

SNMP com suas deficiencias corrigidas Em janeiro de 1998 foi publicados lim

canjunto de documentas (RFC 2271-2275) com proposta de padroniza9ao do

protacalo SNMPv3 que foi produzido pelo SNMPv3 Working Group do IETF (Internet

Engineering Task Force) que nao sera apresentada neste trabalho

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

I

3 SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

A necessidade de mecanismos de gerenciamento nas redes baseadas em

TCPIP e atendida pelo protocolo SNMP (Simple Network Management Protocol)

31 ORIGEM

A Internet Activities Board lAB a orgao que rege a politica da Internet e a

protocolo TCPIIP requisitou urn comite para rever as op~6esde gerenciamento de

redes 0 comite concluiu que 0 SNMP deveria ser adotado Esse protocolo ebaseado no Simple Gateway Management Protocol (SGMP) que havia sida

desenvolvido para administrar redes rsgionais

o cornite tambem com9QOU a trabalhar em um protocolo futuro chamado de

Common Management Information Protocol (CMIP) A ideia em torna do SNMP era

de que ale seria urn remedio rapido ate que 0 CMIP estivesse pronto para usc 1550

foi em 1988

Alguns dos objetivos e especificac6es no projeto do SNMPforam

bull Gerenciarnento de rede integrado a capacidade de gerenciar rsdes

incorporando componentes que venham de uma variedade de fabricantes

com uma simples aplicaeo

Interaperabilidade a capacidade de que um equipamento de urn vendedar

seja gerenciado pelo equipamento de outro vendedar

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

bull Padronizayao sao as padroes que definem os metodos de comunicayao e

as estruturas de dados de forma que redes nao similares possam ser

integradas com a gerenciamento de rede

32 CARACTERisTICAS E OBJETIVOS DO PROTOCOLO SNMP

As principais caracteristicas do SNMP sao a simplicidade a estabilidade e a

flexibilidade 0 SNMP e especialmente estavel porque sua defini~ao permanece fixa

apesar de novas dados serem adicionados a MIB e novas operac6es definidas como

resultado do armazenamento destes dados A implementacao do SNMP e simples

facil de entender e aplJrada porqu8 evita a complexidade de ter casas especiais para

cada coman do e flexivel porque pode acomodar comandos arbitrarios em Lima

estrutura organizada (COMER 12 1998)

AD inves de apresentar muitos comandos como Qutros protocotos ale possui

apenas urn pequeno conjunto de operac6es com funcoes basicas de busca I

alteracao Atraves do protocolo SNMP a clients enviara comandos com duas

fun5es basicamente Uma de obtenao dos valores dos objetos (funao GEl) e

outra de alteraao desses valores (fun9ao SE7)

No envio e recepyao de mensagens no protocolo os nomes dcs objet os nao

devem ser expressos na forma textual mas sim na forma numerlca que representa

as diversas inst~nciasexistentes

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

17

Podemos resumidamente dizer que as principais objetivos do protocoto

SNMP devido ao protocolo ser flexfvel e simples sao

bull Reduzir 0 custo da constru~ao de urn agente que suporte 0 protocolo

Reduzir 0 trafego de m9nsagens de gerenciamento pela rede

bull Reduzir 0 Illmera de restrig6es impostas as ferramentas de

gerenciamento da rede devido ao usa de operaoes complexes e pouco

f1exiveis

bull Apresentar operacoes simples de serem entendidas sendo facilrnente

usadas pelos desenvolvedores de terramentas de gerenciamento

bull Permitir facilmente a introdu9ao de novas caracterfsticas e novas objetos

nao previstos aD S9 definir 0 protocolo

bull Construir uITIa arquitetura que seja independents de detalhes e relevantes

a somente algumas implementa90es partiGulares

33 COMO FUNCIONA 0 PROTO COLO SNMP

o SNMP foi projetado para ser 0 mais simples possivel e e baseado em dais

elementos

bull Estaltoes de gerenciamento da rede Sao responsaveis par radar

aplicagoes de gerenciamento que monitorem e controlem as elementos da

rede

bull Elementos da rede Hubs inteligentes roteadores e pontes possuem

agentes que estao localizados dentro do limites dos elementos Esses

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

IX

agentes SNMP sao responsaveis por realizar as fungoes que sao

requisitadas palas estac6es de gerenciamento

SNMP e 0 meio palo qual a estacao de gerenciamento e os elementos de

rede se comunicam E um protocolo simples que permite a um administrador

inspecionar ou alterar variaveis em urn elernento de rede a partir de uma eslacao de

gerenciamento remota

A transmissao do SNMP emprega 0 UDP (Universal Datagram Protocol) da

familia TCPIIP para enviar informaao 0 UDP permite que os agentes SNMP sejam

representados por urn pacele simples 0 que faz com que 0 protocolo SNMP requeira

um tempo de resposta minima e tenha pouca interferencia nas QulraS funcoes da

rede

Todo 0 monitoramento SNMP e realizado palo sistema de gerenciamento de

rede As estacoes de gerenciamento acessam os elementos de rede para obler a

informacao desejada ou para mudar uma variavel Nessa caso estara sendo

realizada uma operaltaode polling (verific8ao pelo gerente) Quando 0 elemento de

rede atraves do seu agente notifica 0 gerente de altera90es no sistema suas

notifica90es sao conhecidas como traps

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

34 ARQUITETURA DO PROTOCOLO SNMP

I)

o SNMP e um prolocolo a nivel de aplicaCao que faz parte do conjunto de

protocofos TCPIIP e trabalha sobrs 0 prolocolo UDP (User Datagram Protocol) 0

Gerente faz requisi90es para acesso a MIB no Agente provendo uma interface para

o gerenciamenta da rede 0 protocolo SNMP e implementado sabre 0 pralocolo

UDP IP e os demais protocolos da camada de enlace (ex Ethernet FOOl e X2S) A

figura 31 detalha 0 funcionamento do protocolo SNMP

So e n I SN II I

II

~~G~~~~_~bull~N~~ -f~r- __A~~_____S_N____gt ~UIJ~ UD~

I P

Figura 31 - Contexto do SNMP (STALLINGS 1996)

o que deve ser feito com os objetos no processo de gerenciamento e definido

at raves das opera90es aplicadas nos objetos que sao enviadas ao servidor pelo

cliente

o SNMP define duas tecnicas de identifica9iio de instancias de objetos

Tecnica de Acesso Sequencial e Tecnica de Acesso Aleatorio Cad a mensagem

trocada entre uma estacao de gerenciamento e um agente inclui a numero de versao

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

SNMP urn nome de comunidade e urn dos cinco tipos de unidades de dados do

protocolo (PDU) conhecidos como as primitivas operacionais A mensagem dos

tipos de primitivas sao ilustradas na figura 32

l1cnsagcm

I Venit) Community SNMIgtPDU

VariahJcmiddotBilldings

I Nom I Valor I I NOlll~ I Vdor2 I I Nome N Vn[ON I

Figura 32 - Formato da mensagem SNMP e os POUs

o protocolo SNMP possui as seguintes primitivas

bull Response-POU 0 Response-POU e gerado por uma entidade SNMP como

resposta a uma requisiao de GeIRequest-POU GetNextRequest-POU ou

SetRequesl-POU Se 0 campo error-status do Response-POU for diferente

de zero os valores dos campos da lista de variable-binding serao ignorados

Casa as campos error-status e error-index sejam diferentes de zero entao 0

valor do campo error-idenx e 0 indica da variavel cuja requisicao falhou

bull GeIRequesl-POU Essa primitiva Ei gerada e transmitida pelo gerente para

requisitar informaoes aDs agentes 0 agente que reeeber esta mensagem

20

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

~I

processara cada variavel da lista variable-binding e as inserini em uma nova

lista para produzir um Response-POu

bull GeINexIRequesl-PDU Essa primitiva Ii gerada e transmitida por uma

aplicaao SNMP gerents Seu tratamsnto e realizado por um agente SNMP

que ira processar cada variavel da isla variable-binding e as armazenara em

uma nova lista para produzir um Response-POU A unica diferenta dessa

primitiva para a GetRequest-PDU e que a GetNextRequest-PDU busca um

valor na MIB do agente sem saber 0 nome da variavel

SelRequesl-PDU Essa primitiva e gerada e transmit ida pelo gerente para

requisitar que 0 agente 1ava alterat6es em algumas variaveis de sua MIa A

entidade SNMP que reeeber 0 SelRequesl-POU determinara primeiro 0

tamanho da mensagem encapsulando 0 Response-PDU com as mesmas

valores dos campos RequesHd errormiddotstatus errormiddotindex e da isla variablemiddot

binding do SeIRequesl-POU Se 0 tamanho da mensagem gerada for maior

que 0 limite local au maximo suportada pela fonte da requisi9ao entao um

Response-PDU alternativo sera gerado

Trap-PDU Eo gerado por uma entidade SNMP que atua como agente e

transmitido a um gerente A transmissao da mensagem sera feita

periodicamente para manter deg gerente informado au para 0 caso de ocorrer

uma situa9ao anormal Este tipo de mensagem nao espera um retorno

~

bulllt[iALfbull J

J~l)TECA l_ bullbull(r~sntbullbull

b

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

Devemiddotse saber que as operac6es GET ou SET se referern a apenas urna

instancia de urn objeto podendo entretanto se reterir a mais de urn objeto na

mesma mensa gem

A operagao get-next possibilita ao cliente descobrir qual 0 proximo objeto na

seqOencia assim como seu valor 0 que possibilita urn mecanismo de procura de

objetos na MIB Essa opera gao e principalmente usada para identificar uma instancia

especifica dentro de uma tabela (conjunto de variaveis relacionadas a objetos em

urn dispositivo gerenciado) de tamanho e composigao desconhecida Assim a cliente

envia comandos getmiddotnext e sucessivamente obtem OS nomes e valores dos atributos

do objeto Podemos assim fazer uma varredura na tabela sem conhecer as objetos

da me sma processo esle chamado de caminhamento de tabela

Para lins de uso do comando get-next alguns nomes de objetos na MIB

correspondem a tabelas campi etas conforme ja visto anteriormente Tais objetos nao

sao acessiveis para operagoes getmiddot request mas podem ser usados como

parametros em operac6es getmiddotnext Nesse caso poder-se-a obter a nome da

primeira enlrada da tabela Urn novo comando get-next com esse pararnetro de

acordo com a hierarquia nos daria 0 nome do primeiro objelo na labela Oaf par

dianle poderia obler cada instancia dos objetos ate que tenhamos varrido loda a

tabela

Como se sabe as enlradas em uma tabela apontam para oulras tabelas que

nao contem 0 identilicador completo do objeto mas somente 0 prelixo deste

identificador porque 0 identiticador completo para um item da tabela e forma do pelo

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

23

prefixo que indica a tabela mais um sufixo que identifica uma entrada particular na

tabela em que 0 objeto esta armazenado

35 GERENTE SNMP

a gerente compreende um tipo de software que permite a obtencao e 0 envio

de informac6es de gerenciamento junto aos mecanismos gerenciados mediante

comunicaltao com um ou mais agentes As decis6es na ocorrencia de problemas 0

monitoramento e as fun((oes tipo relat6rios fica a cargo do gerents enquanto ao

agente fica a responsabilidade com relayao as funcoes para 0 envio alteracao de

informac6es e a notificacao da ocorrencia de alguma excecao ao gerente Dessa

forma 0 gerente e responsavel pela implementagao da politica que sera adotada na

gerencia 0 gerente esla acessivel a pessoa ou entidade responsavel pela

administra~o da rede cabendo a aplicaCao gerente informar as condic6es da rede

para esta pessoa ou entidade As informac6es de gerenciamento podem ser obtidas

mediante envio automatico disparado pelo agente a um determinado gerente

Tipicamente um gerente esta presente em uma estacao de gerenciamento de rede

351 ESTAltOES DE GERENCIAMENTO SNMP

A estalao de gerenciamento de rede pode ser uma simples estalao que

permita fazer 0 monitoramento ou um servidor especffico para monitoramento cuja

funCao e comunicar com os agentes e apresentar seus estados nos varios

dispositivos possuindo uma interface que tem a funcao de permitir ao administrador

da rede acompanhar as opera90es realizadas pelo gerente mostrando seus

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

2

resultados permitindo tambe-Ill mandar comandos de gerenciamento e reeeber dos

agentes respostas solicitadas OU nao tal interface poderla ser em formata texto Oll

em algum tipo de interface grafica para 0 usuario

36 AGENTE SNMP

Urn nodo gerenciavel (Agente SNMp) e caracterizado como algum dispositivQ

enquadravel entre as seguintes categorias

bull Um node com aplicaQ6es Estacao de trabalho mainframe e terminal

bull Urn sistema de roteamento

Urn dispositivo Bridge repetidor hub au concentrador

Cada dispositivo gerenciavel e formado

bull Pelo protocolo de comunica9ao de gerencia respollsRvel por estabelecer

a comunicacao entre 0 agente e 0 gerente permitindo 0 monitoramento e

controle do nodo gerenciado

bull Uma parte intermediaria para instrumenta((ao permite que as estruturas

de dados MIB possam ser manipuladas por requisioes do protocolo de

gerencia

Cada node gerenciavel e vista como um eonjunto de variaveis que

representam informaroes referentes ao seu estado atual estas informaroes fieam

disponiveis ao gerente atraves de consultas e podem ser alteradas par ele 0

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

25

sistema de gerencia fica habititado a identificar na estrutura da rede os problemas

relacionados aos nodos e modifica-Ios de acordo com a necessidade 0 agente

utiliza as chamadas de sistema para realizar 0 monitoramento das informaQoes do

nodo e utiliza as chamadas de procedimento remoto (Remote Procedure Call- RPC)

para 0 controle das informaoes do nodo Caso ocorra alguma exce9ao no nodo

gerenciado 0 agente fica responsavel de notificar 0 gerente atraves de uma

interruPQao trap tambem compete ao agente efetuar a interface entre os diferentes

mecanismos usados na instrumentaQao das funcionalidades de gerenciamento

inseridos em um determinado dispositivos gerenciado

37 SEGURANCA SNMP

o protocolo de gerencia SNMP pode realizar opera90es de reconfigura9ao na

rede alterando caracterlsticas de equipamentos au ate mesmo desligando maquinas

por issa a necessidade do controle de seguranca que e feito atraves da verificatao

do conteudo de urn campo especial no pacote SNMP denominado comunidade A

comunidade pode ser composta par roteadores ou um grupo de astaltoes ou urn

grupo de servidores pode sar definido como sendo a relacionamento entre duas

entidades do SNMP sendo a definiao de entidade todos os elementos que

permitem fazer 0 gerenciamento Oessa forma quando e realizada a comunicacao

entre as duas entidades do SNMP a entidade destinataria da mensagem realiza a

verificacao do contaudo da comunidade para averiguar sa esta informacao eproveniente do remetente indicado sendo que Atraves da comunidade e passivel

que 0 agente realize uma verificaao da integridade do gerente realizando

autenticacao e politica de acesso (agente contrala que diferentes gerentes podem

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

obter diferentes variaveis da MIS atraves desta campo Ou seja sem 0

conhecimento previa da comunidade de um determinado equipamento gerenciavel

sera imposslvel a qualquer aplicayao de gerencia acessar as inforrnac6es contidas

na MIB vale lembrar urn equipamenta pode ter mais de uma comunidade

configurada possuindo diferentes direitos de acesso obtendo assim maior

seguran~ana rede

3B APLlCAlt6ES SNMP

Varios produtos tern surgido com a finalidade de gerenciar a rede quase que

em sua totalidade tk~seados no padrao SNMP e eMp 0 sucesso do SNMP se deve

ao fata de ele ter sido a primeiro protocolo de gerenciamento acessfvel ao publico

nao proprietario e simples em sua implementa~ao0 que possibilita a gerenciamento

efetivo de ambientes com caracteristicas nao similares

A implantaltao do protoe SNMP foi introduzida pelos forneeedores de

gateways (Conversores de protoeolos) bridges (pontes) e roteadores Normalmente

o fornecedor desenvolve 0 agente SNMP e posteriormente uma aplicaQao de

gerenciamento para a estayao gerente em sua realizacao incorporam fun90es

graficas para 0 operador do centro de centrole e incluem muitas vezes bibliotecas e

utilitarios que permitam a criacao de aplicacentes de gerenciamento com

caracterfsticas especfficas para alguns componentes da rede

As implementa90es basicas do SNMP permitem ao gerente monitorar e isolar

falhas Ja as aplica90es mais sofisticadas permitem gerenciar 0 desempenho e a

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

configurarao da rede estas aplica~oesnormalmente incorporam menus e alarmes

para melhorar a interaryaa com 0 profissional de gerencia

j ~-lri~

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

4 METODODOLOGIA

Edward Yourdon (1989) apresenta-nos uma maneira bastante abrangenle que

podera ser utilizada em diferentes ambientes site mas e metodologias

41 JUSTIFICATIVA

Conforme ja cornentado no ltem 1 este trabalho tern como objetivo principal

fazer urn estudo da terramenta de gerenciamento de rede POIVerTCP que e urn

software deserwolvido com a utiliza9ao da linguagem de programayao Visual Basic

ersao 6 fazendo usa de bibliotecas protegidas ou compiladas e exemplificando

uma aplica~ao gerenciadora urn agente e uma MIB Sera estlldada e documentada

esta ferramenta utilizando notacao (UML) visando allxiliar as desenvolvedores de

aplica90es de gerenciamento de rede no entendimento da ferramenta

disponibilizada cOl1veniencia e tamoom na facilidade de implementacao

o Objetivo secundario deste projeto e exemplificar 0 estudo da ferramenla

PowerTCP atraves de um exemplo simples de implementacao de uma gerencia de

falha

Desta forma nao se fara usc de uma metodologia js existente serao apenas

abordadas algumas etapas da metodologia de Edward Yourdon (1989)

bull Estudo de viabilidade da ferramenta

Objetivos

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

De(Iiencia

Analise de ferramenta PowerTCP

Estudo da (erramenta (Classes objetos e componentes)

bull Implementareo

Oesenvolver um prototipo de gerenci8 de fahas Bxemplificando 0 estudo

de ferramenta

Gera9ao de testes do prot6tipo

Gerar testes de funcionamento do prototipo

bull Instal89iio do prot6tipo

Manual do usuario

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

5 INTRODUltAo A FERRAMENTA POWERTCP

A ferramenta PowerTCP e uma coleao completa de protocolos da Internet

que atua em Ires camadas principais

Formatacao e conversao de bytes em objetos

Implementaao de protocolos de comunicaao

bull controle de taretas de comunica~ao (Win sock)

Para tanto disponibiliza ferramentas para FTP TEL NET WINSOCK SNMP

e QUlras sendo seu funcionamento par um prazo de 30 dias excedendo esla prazo

sera necessaria reinstalar ou comprar a licenca

51 CONTEUDO DA FERRAMENTA POWERTCP SNMP

A ferramenta de gerenciamento de rede PowerTCP e composta de

componentes compilados conforme (figura 51 - Diagrama de componentes que

utiliza as nota90es de UML) nao sendo possivel 0 acesso ao c6digo destes referidos

componentes apenas exemplificando a acesso atraves de implementavoes de uma

aplica9ilo gerenciadora (gerente) um agente e uma MIS

Atraves da utilizaltao da ferramenta PowerTCP torna-S9 passlvel implementar

aplicalt6es com diversas linguagens de programaao como Visual Basic Delphi

C++ e QulraS trabalhando com ambients Windows

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

JI

g lt11 nusNU 1

~

oSnmpVlriahlCli 0 SnmpTra

SnmpTnlp SlIlllpTlblcltuw

Fi~It 5 Dia81(11a dt Compolltnft d(1furam~Jra POHIrTCP SNMP (UML)

52 OBJETIVO I) FERRAMENTA POWERTCP SNMP

Facilitar implementacao de aplicac6es baseadas no protocolo SNMP versoes

um e dais proven do assim urn entendimento funcional do protocolo

53 VANTAGENS DA FERRAMENTA POWERTCP SNMP

bull Facilidade de implementaltao

bull Estrutura simples

bull Nao e necessaria conhecimento profunda do formata de mensa gens SNMP

bull Nao e necessaria construir pacotes

bull Facilidade de leitura de arquivos MIB que sao compilados em objetos

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

12

54 DESVANTAGENS DA FERRA MENTA POWERTCP SNMP

as componentes sao compilados nao permitindo visualizacao interna das

mesmas

bull Seguranga deficiente permitindo que intrusos interceptem uma mensagem e

leiam seu conteudo ou ate mesmo desliguem alguns dispositivos gerenciados

Informacao nao detalhada por ser um protocolo relativamente simples

55 UTILIZACAO DA FERRAMENTA POWERTCP SNMP

Com a utilizacao da ferramenta PowerTCP um programador de aplicac6es

baseadas no protocolo SNMP pode

bull Implementar uma aplicacao que monitore dispositivas da rede at raves do

protocolo SNMP

bull ldentificar os gerentes e agentes em uma rede

bull Criar agentes para que a dispositiva possa ser administrado

bull Enviar mensagens ou notificacoes a aplicacao manilora (GetRequest

GetNextRequest SetRequest Response Traps)

bull Implementar ou ler uma MIB

Canfigurar dispositivas gerenciados

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

56 DIAGRAMA DE CLASSES (UML)

Esta secao tem como objetivo representar uma estrutura estatica da

ferramenta PmerTCP SNJ1P com a utilizacao de um diagrama de classes utilizando

UML (Unified Modeling Language) propiciando facilidade de entendirnento das

classes para eventual necessidade de implementafAo

CommuniElltlTlritCExccptiOlIEmiddot~IrlionlmkxGllcrirTmrIbxitclmitionRefS)ktilkTrtpTngtUpTimeVritNlS

I ~(I(k(EmOir ~)Itmiddotsel( )

OUllt

AoJJ()krr(

cn-tlndcl1( GctNtxl~ tCll~lOidF[t111N-tllll( )

(nITahk lGCITnikR-i)11t1I1l)

Rllnlloro()

A bullClS

[)~~riplirnlElItTeptiCfl

NlmGjJ

RCPiit1

SItHUS

Syl1tuxTfX

ftlllt

VtludX

SnmrIablel~Ow

(ltiUllItlCtIllt11

HitRowlmlex

CIHpilc( )Lood

SnmpT(]klc

CnhmmCoullt~ounlRov(oumTlh[Oid

Itm()

SnmpTnip

J)cllniplinllEllIcrrrioCNuu(omsRcfCHlll

S]Xlifi(Trnpslaw

Add()il(Ifi()

SnmpMib

ModukNuut[l)

Tr3r~V~ria)lo

Olfuriict JU1tU J

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

561 DESCRICAD DAS CLASSES UTILIZADAS PELA FERRAMENTA

POWERTCP

Nesla seeao sera descrita todas as classes (Modelo ou gabarito para a

criaeao de objetos) utilizadas pela ferramenta PowerTCP SNMP seus objetivos os

metodos utilizados suas fungOes urn exemplo de c6digo em Visual Basic sua

sintaxe e as principais erras retornados

562 CLASSE SNMPMESSAGE

A classe SnmpMessage e utilizada para codificaeao e decodificaeao de

mensagens para serern enviadas au recebidas pela rede sao faeilmente

manipuladas pela aplicagao (software desenvolvido em uma determinada linguagem

aces sando a referida dassel A classe SnmpMessage e utilizada na cria9ao de

aplicae6es gerentes e Agentes e possui tres metodos

Metodo Decode Com a utilizaeao deste metodo pode ser decodificada

(transformaeao dos bytes recebidos em informae6es) uma mensagem recebida para

que sejam lidos os dados que sao representados pelo 010 (Identificador unico de

cada variavel na MIE) e possui a seguinte sintaxe

Object decode (Message)

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

Object Objeto da classe SnmpMessage

Decode Metodo utilizado para decodificaao de mensagens

Message Bytes a serem decodificados

Metoda Encode Este metoda codifica (transformatao de informs90es au

requisi96es em bytes) uma mensagem antes de envia-Ia fixando as valores

desejados Possui a seguinte sintaxe

Object Encode (Message)

Object Objeto da classe SnmpMessage

Encode Metoda utilizado para codificacao de mensagens

Message Mensagem a sar codificada com bytes

Metodo Reset 0 metoda Reset apage a conte lIdo das variaveis (Atributos da

ctasse SnmpVariablesl reajustando seus valores para default possui a seguinte

sintaxe

Object Reset ( )

Objeto da classe SnrnpMessage

Apaga 0 conteudo das variaveis reajustando seus val ores para default

o exemplo abaixo utilizando a linguagem de programaltao Visual Basic ilustra

uma aplicaao simples de utilizacao da classe SnmpMessage onde Ii recebida uma

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

mensagem de um agente e os valores das variaveis colocados em uma caixa de

listagem

Declaragao da variavel Message do tipo SnmpMessage

Dim Message As New SnmpMessage

Dim Variable As New SnmpVariable

Dim PacketO As Byte

Aceita uma resposta de um agente SNMP

UdplReceive Packet

Utilizacao do metoda Decode para decodificar uma mensagem

MessageDecode Packet

For Each Variable In MessageVariables

ListlAddltem VariableOid amp amp Variable Value

Next

563 CLASSE SNMPVARIABLES

Atraves da utilizac8o da cia sse SnmpVariables com seus metodos e atributo e

utilizaltao dos atributos da cia sse SnmpVariable torna-se posslvel acessar os Olos

dos objetos na MIB Abaixo esUlo os metodos utilizados na classe SnmpVariables

Metodo Add Metodo usado para adicionar um objeto a cOlegao (Objetos

pertencentes a MIS) e tambem para adicionar urn valor a esle objeto na MIB Possui

a seguinte sintaxe

Object Add (Item)

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

Object Objeto da classe SnmpVariables

Add Metodo usado para adicionar objetos a colecao

Item Adieiona um item a eoleao de variaveis utilizando as objetos da

cia sse SnmpVarisble

AS erras principais do meHodo add sao

ptlnvalidParam 1 (Item naD e uma referencia a um objeto)

bull ptlnvalidParam2 (Iildfce nao encontrado)

Metodo Clear Metoda utilizado para Limpar 0 eonteudo das variaveis ou

remover os objetos da cole~aoPossui a seguints sintaxe

ObjeeLClear ( )

Object Objeto da elasse SnmpVariables

Clear Metoda utilizado para limpar 0 conteLido das variaveis ou remove-las

Object Objeto da classe SnmpVariables

Metoda Getlndex Metodo utilizado para retornar 0 indica numerico do

identifieador de Objeto (010) Possui a seguinte sintaxe

Value = Object Getlndex (010)

Value Variavel definida com 0 tipo long

Objeto Objeto da ciasse 5nmpVariabies

DID Indica numerico referente ao identificador do objeto

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

J~

o erro principal do metodo Getlndex e

bull ptinvalidParam 1 (Varia vel indice mlo e do tipo long)

Metodo GetNext Metodo utilizado para que apes 0 recebimento do OlD

solicitado busque a proxima varia vel indexada pelo proximo OlD Utiliza a seguinte

sintaxe

Value ~ Object GetNext (010)

Objeto Objeto da classe SnmpVariables

010 Variavel do tipo string que especifica um identificador de objeto

Value Valor do objeto de SnmpVariable

o Erro principal do metodo GetNext e

bull ptinvalidParam 1 (Erro de parametro)

Metodo GetOIOFromName Metodo que e utilizado para converter um nome

a urn 010 Possui a seguinte sintaxe

010 ~ VarsGetOidFromName (name)

Name Variavel do tipo String eontsm 0 nome a ser convert ida para 010

010 String que recebeu 0 nome convertida

Vars Objeto da classe SnmpVariables

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

Metodo GetTable Com este metodo torna-sa passivel criar e preencher um

objeta da tabela (conjunto de varmveis deinidas na MIB) faz parte da classe

SnmpVariBbles Possui a seguinte sintaxe

value = ObjectGetTeble (010)

Object Objeto da classe Snmp Variables

010 String Corresponde ao 010 da tabela

Value Corresponde ao valor de determinada variavel

o erro principal do metoda GetTabJe e

bull InvalidParam 1 (Erro de para metro)

Metoda GetTableRow Este metodo faz com que seja criado um objeto da

classe SnmpTableRow

Row = Object GetTableRow (Oloindex)

Object Objeto da classe SnmpVariables

OIOindex String Corresponds ao 010 da labela + 0 indice

Row o SnmpTableRow que e criado

o Erro principal do metodo GetTableRowe

bull ptinvalidParam 1 (Erro de parlI11etro)

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

0

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable pode

ser do tipo long ou string possuindo a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpVariables

Indice String ou Long Especifica urn Oid au Nome para procurar urn indice na

coleao

Value Preenche com valor urn objeto de SnmpVariable

o Erro principal do metodo item e

bull ptinvalidParam 1 (Erro de parametro)

Metoda Removed Este metoda remove urn objeto da classe SnmpVariables e

possui a seguinte sintaxe

Value = Object Remove (Index)

Object Avalia Um objeto de SnmpVariables

Index String ou Long Especifica urn Oid au Nome para procurar urn indice

na coleao

Value Preenche com valor um objeto de SnmpVariable

o Erro principal do metodo Removed e

bull ptinvalidParam 1 (Erro de parametro)

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

41

o exemplo abaixo utilizando a linguagem de programayao Visual Basic ilustra

utilizayao da c1asse SnmpVariabes utHizando 0 metoda GetNext para requisicao de

um determinado objeto atraves de seu 010

Criando variav8is do tipo SnmpVariable

Dim Var As SnmpVariable

Dim Varnext As SnmpVariable

Utilizando 0 metoda GetNext da classe SnmpVariables

Var=MibVariablesGetNext(13612114)

Varnext=MibVariablesGetNext(VarName)

End Sub

564 CLASSE SNMPVARIABLE

A(raves dos atributos da classe SnmpVariable e metodos das classes

SnmpVariables e SnmpTrap torna-se passlvel referenciar as objetos da MIB Passui

a seguinte sintaxe

Object (properties)

Abaixo um exemplo de c6digo utilizando a linguagem de programaao Visual

Basic onde e exemplificada a classe SnmpVariable com a utiliza((ao do atributo

value

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

Dim Variable As SnmpVariable

Dim Message As SnmpMessage

For Each Variable In MessageVariables

Adiciona 0 valor de uma variavel da classe SnmpVariables a caixa List1

Lisl1Addltem Variable Value

Next

565 CLASSE SNMPTRAPS

Com a utilizacao dos metodos e do atributo da classe Snmp Traps e tambem

dos atributos da classe SnmpTrap torna-se possivel adicionar um objeto do tipo

SnmpTraps a MIB Possui os seguintes metod os

Metodo Add Este metodo adiciona um objeto a cia sse SnmpTrap e possui a

seguinte sintaxe

Object Add Item [indice]

Object Objeto da classe SnmpTraps

Item Adicionar um objeto da classe SnmpTrap a colerao

Index Especifica on de na colegao 0 objeto deve sar inserido

o Erro principal do metodo ADD e

bull ptlnvalidParam 1 (Este lem nao e uma referencia a um objeto)

bull ptinvaiidParam2 (Erro de parametro)

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

4

Metodo Item Esle metoda relorna um indice ou nome de objelo da classe

SnmpTr-ap Passui a seguinte sintaxe

Value = Object Item (Index)

Object Objeto da classe SnmpTraps

Index String ou Long Nome ou urn indice para procurar na colerao

Value SnmpTrap Object

Erro principal do metoda Hem e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a lingua gem de programa~ao Visual

Basic ande e exemplificado a utilizac8o do metoda add e da propriedade Count da

cia sse Snmp Traps

Oeclararao de urna variavel

Dim I As Long

Utilizaao do atributo Count

Utiliza8o do atributo count

For 1= 1 To MibTrapsCount

Utilizaao do metodo Add da cia sse SnmpTraps

List1Addltem MibTraps(I)Description

Next

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

566 CLASSE SNMPTRAP

A cia sse SnmpTrap tern como objetivD construir mensagens Trap para que

sejam enviadas posteriormente pel a rede para tanto sao utilizados os atributos da

classe SnmpTrap e metodos e atributos da classe SnmpTraps Passu a seguinte

sintaxe

Object (atributo)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde e exemplificado a utilizacao do atributo description da cia sse SnmpTrap

Declaragao de uma variavel do tipo SnmpTrap

Dim Trap As SnmpTrap

For Each Trap In MibTraps

Utilizagao do metoda add da classe SnmpTraps e do atributo description

List1Addltem TrapDescription

Next

567 CLASSE SNMPTABLE

Esta classe e utilizada para referenciar objetos na tabela (cole9ao de objetos

referenciados par OIDs presentes na MIB e que utiliza versao protocolo SNMPV2 )

com linhas e colunas sendo OS indices de cal una definidos na propria Mib e as

ndices da linha podendo variar de acordo com as implementac6es Passui a

seguinte estrutura

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

45

TableOID Entry(I) Column Row

Metodo Item Este metodo retorna urn objeto da cia sse SnmpTableRow

atraveuros do seu 010 possui a seguinte sintaxe

Value = indice de Object Item

Object Objeto da classe SnmpTable

Index String ou Long Especifica urn 010 para procura de um indiee na

coleao de objetos da MIB

Value Preenche com valor urn objeto de SnmpTableRow

Erro principal do metoda item e

bull ptinvalidParam 1 (Erro de parametro)

Abaixo um exemplo de c6digo utilizando a linguagem de programagao Visual

Basic onde Ii exemplificado a utiliza9ao do atributo ColumnCount da cia sse

SnmpTrap

Declaraiio de uma variaveis do tipo SnmpTable e SnmpTableRow

Dim Table As SnmpTable

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row = MibVariablesGetTableRow(TableOid amp 1)

If Not Row Is Nothing Then

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

46

Utilizaao da propriedade ColumnCount da classe SnmpTable

GetColumnCount = RowColumnCount

Else

GetColumnCount = 0

End If

568 CLASSE SNMPTABLEROW

Esta cia sse e utilizada para referenciar uma linha em uma tabela (coleao de

objetos referenciados por 0105 na MIE) possui os seguintes metodos

Metodo Item Este metodo retorna um Objeto da cia sse SnmpVariable baseado

em um Indice possui a seguinte sintaxe

Value = indice de Objectl1em

Object Objeto da classe SnmpTableRow

Index String au Long Especifica um 010 para procurar urn Indice na

cole80

Value SnmpVariable Object

Erro principal do metodo item e

bull ptlnvalidParam 1 (Erro de parametro)

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

-17

Abaixo urn exemplo de codigo utilizando a linguagem de programaciio lisual

Basic onde e exemplificado a utiliza9110 do atributo ColumnCounl da cia sse

SnmpTableRow

I Oeclaragao de uma variaveis do tipo SnmpTableRow

Dim Row As SnmpTableRow

Obter uma linha da MIB local

Set Row MibVariablesGetTableRowTableOid amp 1)

If Not Row Is Nothing Then

Utilizaltao da propriedade Column Count da classe SnmpTable

GetColumnCount RowColumnCount

Else

GetColumnCount 0

End If

569 CLASSE SNMPMIB

Atraves da classe SnmpMib mantem-se definilt6es de objetos para

propositos de referencia Estas definiroes contem informayao sabre a sintaxe tipo

e outras propriedades do objeto alem de seu 010 e nome Sao utilizadas como

diretrizes para 0 usa dos objetos definidos A classe SnmpMib possui as seguintes

metodos

Metoda Compile Este metodo atualiza MOdulos (Modulo descreve as

atributos locais dos objetos na arvore) Traps e Varijveis 0 para metro de

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

-IX

Filenames aceitara arquivos MIB em qualquer ordem desde que sigam 0 formata

ASN 1 basico Se um arquivo for perdido 0 c6digo de erro de ptFile devolve

pedindo a adiY8o do arquivQ perdido Sa um erro aconleeer durante compilayao de

MI8 0 c6digo de erro de ptCompile devolvera especificando 0 arquivo do tipo MI8

corrupto e 0 numero de linha a metoda compile possui a seguinte sintaxe

Object Compile (Filenames)

Objeto da classe SnmpMib

Usta de arquivos da MIS

Metoda Load Esle metoda efetua leitura dos arquivos da MIB e atualiza

modulos traps e variaveis possui a seguinte sintaxe

Object Load (Filename)

Objeto da classe SnmpMib

Indica 0 arquivo e sau caminho para leitura

o erro principal do metoda load e

bull ptCompile (Arquivo mlo pode ser compilado)

ptFile (Nao achou arquivo)

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

Abaixo um exemplo de c6digo utilizando a linguagem de programa~ao

Visual Basic onde e exemplificado a utiliza9ao do metoda Load da classe SnmpMib

Declara~ao de variaveis dos tipos SnmpMessage SnmpTrap e SnmpMib

Dim Message As SnmpMessage

Dim Trap As SnmpTrap

Dim Mib As SnmpMib

Dim Pac ketO As Byte

Utiliza~ao do metodo Load da cia sse SnmpMib

MibLoad middotcIMIBsIDartmib

Udp1Receive Packet

Message Decode Packet

For Each Trap In MibTraps

If TrapEnterprise = MessageEnterprise Then

If TrapSpecificTrap = MessageSpecificTrap Then

List1Addltem TrapDescription

End If

End If

Next

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

50

6IMPLEMENTACAo DO PROTOTIPO DE GERENCIA DE FALHAS

o prol61ipo sera a implemenlaao como objetivo secundario deste projeto de

um software simples de gerEmcia de falha nos dispositivos gerenciaveis da rede

rodando com 0 sistema operacional Windows 98 au Windows NT recebendo

notificayoes dos dispositivos gerenciaveis e alterando a conteudo das variaveis

exemplificando assirn 0 estudo e a documentay8o da ferramenta PowerTcp SNMP

que Ii 0 objetivo principal deste projeto

61INTRODUCAo AO PROTOTIPO

Com um software de gerencia de falhas torna-S9 possivel reeeber notifieagoes

de procedimentos anormais que estejam ocorrendo na rede

62 OBJETIVO DO PROTOTIPO

o objetivo do prototipo e a atrav9s de uma implementacao de um software de

ger~ncia de falhas tomar possfvel efetuar identificay8o das falhas atraves de

notificayoes recebidas dos dispositivas gerenciados alteracao do conteudo das

variaveis e analise de Logs possibilitando assim agendar a correg8o au predefinir

passos para controle de fathas na rede

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

1

63 MANUAL DO USUARIO PARA UTILlZACiiO DO PROTOTIPO

Conforme ja comentado anteriormente com a prot6tipo de gerencia de falhas

torna-S8 passlvel reeeber notificaf(oes de proeedimentos anormais que estejam

ocorrendo na rede e alterar 0 conteudo das variaveis do dispositiv~ gerenciavel

abaixo segue campos e botOes do prot6tipo visando auxiliar a utiliza930 do m8smo

Campos

bull Agentes Disponlveis Lista todos os agentes disponiveis na subrede

bull Status Se existe ou nao agentes disponiveis e indica S9 0 gerente esta

aberlo

Descriyao Descri(j3o do dispositivQ gerencicivel

bull 010 indice da variavel na MIB do dispositivo gerenciavel

bull Tempo Tempo que 0 gerente esta ativo

Cantata Pessoa responsavel pelo equipamento (fabricanle)

bull Nome Pessoa responsavel pelo equipamento

bull Localiza930 Localizacao fisica do dispositivQ gerenciavel

Botoes

bull Procurar Agentes Localizar agentes disponfveis na subrede

bull Alterar Alterar 0 conteudo dos campos de identificayao do equipamento

Trap Log Moslrar a mensagem de log enviada pelo agente

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

52

631 COMO UTILIZAR 0 PROTOTIPO

Executar a prot6tipo e clicar no batao procurar agentes clicar no agente

desejavel para que se passa verificar a conteudo das variaveis se houver

necessidade clicar no batao alterar onde sera aberto urn novo formularia com as

campos nome da variavel au campo que sa deseja alterar e 0 conteudo a ser

alterado ou atualizado

Para verificar uma mensagem Trap sera recebida uma mensagem avisando

que chegaram novas mensagens Trap para mostrar a conteudo destas mensagens

clicar no botao Trap Log

632 TELAS DO PROTOTIPO DE GERENCIAMENTO DE FALHAS

A implementaao do software de gerenciamento de falhas possui tres telas

bull Tela Principal

bull Tela de alteraltaode valores

bull Tela de leitura de mensagens trap

A figura 61 mostra a primeira tela de gerenciamento de falhas os agentes

lislados a quantidade de agentes encontrados os campos de identificaao e os

bot6es procurar agentes alterar variaveis e trap log

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

IlJtCtor bull

DrUf (I mm r ((iM

o_O kZ$ bull5S bullbullGJtI

T I pv 1bullbullttW

C9n-Ut- Ij- Jf~ c~

~-~---------------------------

Figura 61 - Tela principal do prototipo de gerenciamento de falhas

A Figura 62 rnostra a tela de mensagem trap recebida de um dispositivo

gerenciavel most ran do 0 horario do envio e a origem da mensagem (host)

t-1QI2$JTrap received 225102 hom hoIl16925(6625512340 This il Value 012341 Thil is Value 112342 This il Value 2

Figura 62 - Tela de mensagem (trap) receblda de um dlSPOSltlVD gerenclavel

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

A figura 63 mostra tela de alteracao do conteudo das variaveis do

dispositivo gerenciavel

Figura 63 - TeiiCie8iiera9iJo do conteudo das variaveis na MIB dos objetos

gerenciaveis

A Figura 64 mostra 0 agente disponibilizado na internet como exemplo

de utilizaltao da ferramenta PowerTCP onde atraves do mesmo serao enviadas

notificag6es Trap para verificagao do funcionamento do prot6tipo de gerencia de

falha

51111

yd)uCI HUH 3 COM

YfOblCCU[) 11~23456789~nCv bullt bullbullt IDougla Antonio Silva

J~Ir~=~i-O3===========~~==~

1610 U

~--==--=--1765

99

1 S lJOmiddotS501)Umiddotmiddot16161u 11

INrAdth

Oetinelt)fi IIgt 255255255255

Figura 64 - Agente dlsponivel na internet exempliicando a erramenta PowerTCP

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

A ligura 65 mostra um erro ao tentar alterar 0 010 referente a variavel

SysObjectOID que e um fndice desta variavel nao sendo passive1 sua alterayao

alleNI~ t

1731431482361731433010173143301317314330141731433019173H33021173143302-1731433028

I

ra-middot0~b~ie-~D~---------GJ~~ [A~rml

Figura 65 - Erro na tentativa de alteraCao do 010

64 COOl GO FONTE DO SOFTWARE DE GERENCIAMENTO DE FALHAS

A implementalao do prot6tipo de uma aplicaltao de gerencia de falhas

foi atraves da utilizaao da linguagem de programaao Visual Basic - versao 6

Apendice 1

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

7 TRABALHOS RELACIONADOS

bull UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Simple Network

Management Protocol 1999 Ewerton Luis Sava Rodrigo Rymsza

o trabalho acima citado objetiva simular 0 funcionamento de um gerente e um

agente mostrando 0 c6digo fonte da MIS

UNIVERSIDADE TUIUTI DO PARANA - Projeto de Graduaao Gerenciamento

de Redes Utilizando Arquitetura TCPIIP Baseado no Protocolo SNMP -

Analisando a Performance 1998 Elisiane Almeida dos Santos

o trabalho Beirna tern como objetivo analisar a performance da rede at raves do

protocalo SNMP e a identificar as para metros utilizados palos sistemas operacionais

para 0 gerenciamento em questao

USP - SAO CARLOS - Projeto de Graduaao SNMP (Simple Network

Management Protocol) 1999 Luciana Carla Peixoto Barbosa Luis Fernando

Oratti Kleber Manrique Trevizani Rodrigo Funabashi Jorge

o trabalho acima faz um estudo do gerenciamento de interligaao de redes

Os trabalhos acima diferem deste projeto que tem como objetivo principal fazer

um estudo da ferramenta de gerenciamento de rede Powerrcp que e um software

desenvolvido com a utilizalao da linguagem de programalao Visual Sasic versao 6

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

57

fazendo uso de bibliotecas protegidas ou compiladas e exemplifjcando uma

aplica980 gerenciadora um agente e uma MIB Sera estudada e documentada a

aplica980 gerenciadora visando auxiliar os desenvolvedores de aplica90es de

gerenciamento de rede no entendimento da ferramenta disponibilizada conveniencia

e tambem na facilidade de implemenla~iio 0 Objelivo secundario desle projelo e

exernplificar 0 estudo da ferramenta PowerTcp atrav9s de urn exemplo simples de

implementa~iio de uma gerencia de falha

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

58

8 CONCLUSAO

Neste trabalho loi dada urna introdwao ao geren cia men to de redes

apresentado 0 protocolo SNMP 0 que e como funciona e final mente foi

apresentada a ferramenta PowerTCP

Atralss do estudo da ferramenta PowerTCP loi passlvel ter urna visao do

funcionamento do protocol0 SNMP quando utilizado por urna determinada linguagem

de programa9ao a facilidade de lroca de mensa gens ulilizando um prolocolo

flexfvel a utilizacao das classes com seus metodos e atributos dentro das

aplicacoes tambern fcram encontradas deficiencias na ferramenta como

componentes compilados e lalla de documenta9ao detalhada da utiliza9ao da

ferramenta

Alravas do usc da ferramenta foi desenvolvido urn prot6tipo de urna

aplicac8o de gen3ncia de falhas verificando-se com tal implementacao que

aplicac6es base ad as em SNMP nao sao urna soluCao de gerencia tao simples como

aparenta ser uma vez que casos reaHsticos de estruturas de redes sao complexos

necessitando de arquiteturas robustas e seguranca para 0 trafego de informacoes

estrategicas e confidenciais

Apesar da facilidade de desenvolvimento quando da utilizaltao da lerramenta

PowerTCP deve ser repensada sua utilizayao para desenvolvimento de aplicayoes

para gerenciamento de grandes redes devido a fragilidade no que diz respeito adocumentayao e verificag8o dos cOdigos interno dos componentes

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

Apendice 1

Option Explicit

Quando e acionado a propriedade message do manager

automaticamente ele vai para 0 evento response

dartsnmp2oca - referencia para 0 tipo de variavel

dll - biblioteca que acessa 0 hub via IP e manda a msg SNMP

I DCX - Controle ActiveX do VB para manipular as resultados

Gerados pela OCXlDLL

Dim Discovering As Boolean

Public TrapLog As String

Dim MultiOID As Boolean

Dim MultiOIDError As Boolean

I Esle tipo foi definido para dizer como esla 0 gerene aberlo fechado au

trabalhando

Enum EnableType

MANAGER_CLOSED

MANAGER_OPEN

MANAGER_WORKING

End Enum

Oefinigao para aceSSD a multi OIOs au varias variaveis

Private Sub chkMultiOID_ClickO

If chkMultiOIDValue = vbChecked Then

MultiOID = True

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

60

Else

MultiOID = False

End II

End Sub

Deliniao para chamada da lunao que localiza Agentes

Private Sub cmdDiscover_ClickO

ProcuraAgentes

End Sub

DefiniQao para alter8913o de valores do Agente abrindo formula rio de

alteray8o

Private Sub cmdSetValue_ClickO

IrmSetShow vbModal

II IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End II

End Sub

Deliniao para abertura de lormulario de mensagens TRAP

Private Sub cmdTrapLog_ClickO

IrmTrapLogShow vb Modal

End Sub

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

61

Private Sub Form_LoadO

Verifica se a controte chkMuttiOID esta marcado

chkMultiOIDValue = vbChecked

Habilitar MANAGER_CLOSED

Sa a funcao AbrirGerente relornar false

0 dispositivQ gerenciavel asia ocupado por Dutro processo na porta 162

saindo do programa

II Not AbrirGerente Then Exit Sub

End Sub

I Mostra 0 conteudo das variaveis na tela

Private Sub IbxAgents_ClickO

If IbxAgentsListlndex ltgt -1 Then

GetVars IbxAgentsList(lbxAgentsListlndex)

cmdSetValueEnabled = True

End If

End Sub

DefiniBo de tempo para localizaBo dos Agentes codigo interno do controle

manager1 da ferramenta

Private Sub Manager1_Error(ByVal Number As DartSnmpCtlErrorConstants

ByVal Description As String)

If Manager1Timeout = 0 Then

Ocorre quando 0 timeout euroI colocado 0

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

62

MsgBox Description vbOKOnly Erro de sincroniza9ao vblnformation

End If

End Sub

Adicionar agentes no List Box

Private Sub Manager1_ResponseO

Se localizando igual a true

adiciona 0 Ip ou hostname no listbox

If Discovering Then

IbxAgentsAddltem Manager1AgentName

Timer1Enabled = False

Timer1Enabled = True

End If

End Sub

Captura as variaveis requeridas e coloca em urn unico IP at raves do

GetMultOID adress

Private Sub GetVars(address As String)

Address = Ip ou hostname

LimparVars

Discovering = False

If MultiOID Then

GetMuitiOID address

Else

Consulta urnOlD unico colocando seus valores no

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

formulario

IblSysDescrCaption = GetSingleOID(address 136121110)

IblSysObjectlDCaption = GetSingleOID(address 136121120)

IblSysUpTimeCaption = GetSingleOID(address 136121130)

IblSysContactCaption = GetSingleOID(address 136121140)

IblSysNameCaption = GetSingleOID(address 136121150)

IblSysLocationCaption = GetSingleOID(address 136121160)

IblStatusCaption = Consulta completa

End If

IbxAgentsSetFocus

End Sub

Funcao que captura 0 log de cada dispositivo com suas respostas

Private Sub Manager1_ TrapO

Dim Variable As SnmpVariable

Beep

MsgBox Existem novas mensagens de Trap vblnformation

TrapLog = TrapLog + Trap recebido amp Time amp do Host +

Manager1AgentName + vbCrLf

For Each Variable In Manager1MessageVariables

TrapLog = TrapLog + Variableoid + + Variable Value + vbCrLf

Next

TrapLog = TrapLog + ================================== + vbCrLf

+ vbCrLf

cmdTrapLogEnabled = True

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

End Sub

Funao para desabilitar todos os controles

Public Sub Habilitar(et As EnableType)

IbxAgentsEnabled = False

cmdDiscoverEnabled = False

cmdSetValueEnabled = False

crndTrapLogEnabled = False

MousePointer = vbNormal

Oecide quais serao habilitados

Select Case et

Case MANAGER CLOSED

Case MANAGER_OPEN

cmdDiscoverEnabled = True

If Not MuitiOIDError Then IblStatusCaption = Gerente Aberto

MultiOIDError = False

If IbxAgentsListCount gt 0 Then IbxAgentsEnabled = True

If TrapLog ltgt Then cmdTrapLogEnabled = True

Case MANAGER_WORKING

MousePointer = vbHourglass

End Select

End Sub

Verifica se a porta do dispositive gerenciavel esta aberta S8 naa abremiddota

Private Function AbrirGerente() As Boolean

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

If ManagerlLocalPort ltgt 0 Then

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

End If

Calcca 0 dispositivQ como Gerenciavel

Habilitar MANAGER_WORKING

Discovering False

TrapLog =

On Error GoTo OnError

Calcca 0 timeout com 15

ManagerlTimeout = 1000

A porta padrao do SNMP e 162porta do gerente

Managerl0pen 162

Habilitar MANAGER_OPEN

AbrirGerente = True

Exit Function

On Error

If Err Number = ptAddresslnUse Then

IblStatusCaption = A porta 162 esta em uso

Else

IblStatusCaption = ErrDescription

End If

Retorna 0 valor da porta como nac disponivel nac sendo

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

66

disponivel 0 usa da aplicacao

Habilitar MANAGER_CLOSED

AbrirGerente False

End Function

I Funcao para procurar por dispositivos mostrando seu Ip ou 0 hostname

Private Sub ProcuraAgentes()

Dim Variable As New SnmpVariable

Discovering True

IbxAgentsClear

IblStatusCaption = Tentativa de localizar agentes

Habilitar MANAGER_WORKING

Coloca 0 Oid padrao Oid= Object Identifier

Variableoid = t 36 t 2 t t 50middot

Managert Timeout = 0

Timer1lnterval = tODD

Reseta todas as mensagens do Agente

Managert Message Reset

Identifica a mensa gem

Managert MessageVariablesAdd Variable

Coloca 0 nome do Agente

Managert AgentName = 255255255255

Configura a porta do agente

Manager1AgentPort = 161

Codifica a imagem para mandar um pacote SNMP

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

67

Manager1Send

End Sub

Conta os agentes encontrados

Private Sub Timer1_TimerO

Coloca a Gerente como aberto

Habilitar MANAGER_OPEN

If IbxAgentsListCount gt 0 Then

IbxAgentsSetFocus

IblStatusCaption = Foram adicionados + CStr(lbxAgentsListCount) +

agentes

Else

IblStatusCaption = Noo ha agentes

End If

Timer1lnterval = 0

End Sub

Limpa os campos a serem preenchidos pela requisicao

Private Sub LimparVarsO

IblSysDescrCaption =

IblSysObjectlDCaption =

IblSysUpTimeCaptlon =

IblSysContactCaption =

IblSysNameCaption =

IblSysLocationCaption =

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

IbIStatusCaption

End Sub

Adicionar um 010 manual mente at raves de seu host(address)

Private Function GetSingleOID(address As String oid As String) As String

Dim Variable As SnmpVariable

On Error GoTo On Error

Habilitar MANAGER_WORKING

IblStatusCaption Consultando + oid +

Manager1AgentName address

Manager1Timeout 10000

Manager1MessageReset

Puxa 0 valor para a variavel para reternar na funcao

Set Variable Manager1AgentVariable(oid)

Se loi leito uma mudan9a ele muda 0 valor

GetSingleOID Variable Value

Habilitar MANAGER_OPEN

Exit Function

On Error

Caso tenha timeout

GetSingleOID NO RESPONSE

Habilitar MANAGER_OPEN

End Function

I Funcao que localiza 0 endereco dos agentes e envia mensagens

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

Private Sub GetMultiOID(address As String)

Habilitar MANAGER_WORKING

IblStatusCaption = middotConsultando OtDs

MuitiOIDError = Fatse

Manager1AgentName = address

ManagerlTimeout = 10000

ManagerlMessageReset

AdicionarVars

On Error GaTo On Error

Manda para 0 Gerente

ManagerlSend

Se os valores mudaram atualiza os valores

AtuatizarLabets

tf ManagerlMessageException ltgt snmpOk Then

MultiOIDError = True

IblStatusCaption = Acontaceu um erro tente com um 010 unico Erro

+ GetErro(Manager1MessagaException)

Else

IblStatusCaption = middotConsulta com pi eta

End If

Habilitar MANAGER_OPEN

Exit Sub

OnError

Seta 0 gerente com a porta 162 aberta

IblStatusCaption = ErrDescription

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

7U

Habilitar MANAGER_OPEN

End Sub

Funcao para adiciona um Oid simples

Private Sub AdicionarVar(oid As String)

Dim Variable As SnmpVariable

Set Variable = New SnmpVariable

Variableoid = oid

Manager1Message VariablesAdd Variable

End Sub

Private Sub AdicionarVarsO

Usado para varios agentes no MultOid

AdicionarVar 136121110

AdicionarVar 136121120

AdicionarVar 136121130

AdicionarVar 136121140

AdicionarVar 136121150

AdicionarVar 136121160

AdicionarVar 136121510

AdicionarVar 1361215140

AdicionarVar 136121430

AdicionarVar 1361214100

AdicionarVar 136121710

AdicionarVar 136121740

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

71

AdicionarVar 1361216100

AdicionarVar 1361216110

End Sub

Fun9ao para atualizar labels

Private Sub AtualizarLabelsO

Dim Variables As SnmpVariables

Set Variables = Manager1Message Variables

IblSysDescrCaption = Variables(1)Value

IblSysObjectlDCaption = Variables(2)Value

IblSysUpTimeCaption = Variables(3)Value

IblSysContacLCaption = Variables(4)Value

IblSysNameCaption = Variables(5) Value

IblSysLocationCaption = Variables(6)Value

End Sub

I Funvao de Excessoes erros

Private Function GetErro(e As ExceptionConstants) As String

Funyao de mensagens de erro

GetErro = Erro desconhecido

Select Case e

Case snmpAuthorizationError

GetErro = Falha de auteticacao Nao e passive I acessar 0 agente

Case snmpBadValue

GetErro = 0 valor inserido nao e valida

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

Case snmpCommitFailed

GetErro = An assignment failed and all other assignments are being

undone

Case snmpGeneralError

GetErro = Ocorreu urn arro gera

Case snmplnconsistentName

GetErro A variavel nao existe e nao e passive1 criar-Ia nestas

circunstancias

Case snmplncosistentValue

GetErro = A variavel nao existe e nao e passive I criar-lci nestas

circunstancias

Case snmpNoAccess

GetErro = A variavel nao existe au nao e passive I aces sa-I a

Case snmpNoCreation

GetErro = A variavel nao pode sar criada no agente

Case snmpNoSuchName

GetErro = 010 nao existe na MIB do agente

Case snmpNotWritable

GetErro = A variavel nao pade ser alterar

Case snmpReadOnly

GetErro = A variavel e somente laitura

Case snmpResourceUnavailable

GetErro = Nao fai passivel alocar urn recurso exigido pala variavel

Case snmpTooBig

GetErro = A res posta gerada e maior que a capaciade do agente

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

71

Case snmpUndoFailed

GetErro 0 valor nac pode ser associado a variavel do agente

Case snmpWrongEncoding

GetErra = MUm erro ocorreu na codificacao cia variave1

Case snmpWrongLenglh

GetErra = 0 valor alterado excedeu 0 tamanho da variavel

Case snmpWrongType

GetErro = 0 tipo do valor inserido nac cor responde ao tipo de varia vel

do agenle

Case snmpWrongValue

GetErra =0 valor nac poder ser associado a variavel do agente

End Selecl

End Function

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

74

GLossARIO

HUBS Aparelhos repetidores utilizados para comunicayao dos computadores e

rede

ROTEADORES Aparelhos responsaveis em redirecionar os pacotes de inlormacoes

de rede entre uma rede remota e Dutra

LINK Comunicaao entre dois pontos

TRAP Operaao executada pelo Agente que indica que houve algum problema

com 0 elemento gerenciado e 0 agente ira enviar uma mensagem ao gerente para

comunica-Io

ESTACAo MONITORA Estaao responsavel pelo gerenciamento dos elementos

que estejam sendo monitorados

ESTACAo MONITORADA Estaao que esta sendo monitorada pela estaao

monitora com objetivo de sar gerenciada

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

75

REFERENCIAS BIBLlOGRPFICAS

[ARNET 1996J ARNET Mathew Flint DULANEY Emmet HARPER Eric

Desvendando a TCPIP - 1 Sistema TCPIP 2 Redes de Computaao-

AdministraQao3 Sistemas de TelecomunicaQoes Editora Campus Rio de Janeiro

1996

[COMER 13 1998J COMER Douglas E lnternetworking with TCPIP - Principios

protocol as e arquitelura Volume I 3 Ediao Editora Campus Rio de Janeiro 1998

[COMER 12 1998J COMER Douglas E lnternetworking with TCPIP - Volume I

Principles protocols and architecture Volume I 2 Ediao Edilora Campus Rio de

Janeiro 1998

[MOR 1997J Morishita Fabio Teruo Uma avaliaao evolutiva dos protocolos de

gerenciamento da Internet e suas implementaoes SNMPv1 SNMPv2 e SNMPv3

Sao Carlos 1997 Dissertaao de Mestrado em Cisncia da Computaao - ICMC

Universidade de Sao Paulo

[STALLINGS 1996J STALLINGS William SNMP SNMPv2 and RMON Pratical

Network

Management Massachusets Addison Wealey 1996

Site onde 8Sta disponivel a ferramenta PowerTCP

URL hltpllwwwdartcom

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

76

Tutorial sobre SNMP - UFRGS

URL httppentaufrgsbrgr952trablSNMPSNMPhtml

Gerenciamento de Redes Conceitos Basicos sobre SNMP e CMIP

URL httpwwwgtaufrjbr-alexztgerSNMRimphtml

Definioes de Gerencia de Redes

URL httppentaufrgsbr-gugagerenciadefinicoeshtml

Modelo de Referencia SNMP

URL httpredesucpeltchebrdocumentoslSNMP

Simple Network Management Protocol

UR Lhttpwwwinescnptl-jnevesiumopcaoIII19992000lrelatorios16SNMPv3html

Gerenciamento de Recursos de Rede

URL httpwwwterravislaptenseada4199IhistoriarecLJrsoshtm

Redes de Computadores Protocol os

URL htlpIwwwdccufmabr-lgomesredesiProtocoloshtml

Tutorial sabre Gerenciamento de Redes

URL httpwwwufcbrrmavtreinaflndexhtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm

71

SNMP Ferramentas Disponiveis e Interlace de Programa9ao

URL httpoenta2urasbrlgere96Icrnu-SNMPlindicehtm