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