Escolar Documentos
Profissional Documentos
Cultura Documentos
Estes documentos alcanaram o status de Internet standard e foram o alicerce para a aceitao da
arquitetura SNMP. Neles esto as descries de como devem ser organizadas as informaes de gerenciamento
numa base de dados local ao elemento gerenciado e como o protocolo SNMP pode ser usado para colet-las e
alter-las, sendo, para tanto, definidas as mensagens a serem utilizadas e seus campos. A partir destes documentos,
houve um rpido desenvolvimento de bases de dados de gerncia (MIB Management Information Bases) para
vrios tipos de equipamentos e interfaces, alm de especificaes para adaptao do SNMP a protocolos de
transporte proprietrios j conhecidos.
Como ser visto adiante, vrios documentos foram apresentados durante o processo de amadurecimento do
protocolo, entre eles vrias revises e documentos secundrios objetivando esclarecer e firmar a arquitetura de
gerenciamento oferecida pelo protocolo.
2. Arquitetura SNMP
A arquitetura inicial SNMP deriva do SGMP (Simple Gateway Management Protocol) , protocolo
desenvolvido para gerenciar roteadores e equipamentos de interconexo de uma rede TCP/IP. A propsito, a
primeira verso do SNMP apresentava informaes para gerenciamento e controle desses dispositivos de
interconexo, o que determinou as escolhas dos elementos componentes da arquitetura SNMP.
Assim, em uma rede sendo gerenciada segundo a arquitetura SNMP, pode-se distinguir os seguintes
elementos especficos de gerncia de rede:
Nome do objeto (identificador): uma sequncia de nmeros inteiros separados por pontos,
onde cada nmero um indicador numa rvore hierrquica que serve para a classificao de
objetos de redes. Esta rvore , portanto, a estrutura de informao que contm todos os
objetos existentes. Mais detalhes sobre o assunto sero vistos adiante na descrio de uma
MIB.
Sintaxe do objeto: o elemento que especifica o tipo de dados ASN.1, seu modo de acesso, seu
status e seu nome descritivo, com as seguintes caractersticas:
Codificao do objeto: formato de transmisso do objeto, segundo as regras BER, para todas as
operaes SNMP.
A SMI define algumas macro-instrues ASN.1 com a finalidade de garantir a consistncia da sintaxe e a
semntica das definies SNMP. A declarao de um objeto na MIB, por exemplo, feita pela macro
OBJECT-TYPE. O exemplo abaixo ilustra a utilizao da macro OBJECT-TYPE para declarao do objeto
sysUptime (objeto que representa o tempo desde a ltima reinicializao de um elemento gerenciado) do grupo
system (mdulo contendo um grupo de objetos para identificao de um elemento ou sistema gerenciado):
sysUptime OBJECT-TYPE
SYNTAX Time-Ticks
ACCESS read-only
STATUS mandatory
DESCRIPTION
The time (in hundredths of a second) since the
network management portion of the system was last
re-initialized.
::= { system 3 }
A sintaxe do objeto definida pelas informaes declaradas em cada uma das clusulas da macro, assim
especificadas:
Um formato mais detalhado de declarao para os objetos da MIB apresentado na RFC 1212 (Concise
MIB Definitions) , formato este recomendado para todas as novas MIB da verso 1 do SNMP.
4. As MIBs SNMP
A coleo de objetos que constitui a MIB est organizada em grupos de objetos similares. Conforme j
citado, tais objetos so descritos por identificadores de forma a construir uma estrutura hierrquica em rvore, onde
cada n um nmero inteiro. Um objeto nesta estrutura referenciado por um identificador nico composto de uma
sequncia destes nmeros separados por pontos. A Figura 2-2 ilustra esta organizao, exemplificando a localizao
do objeto 1.3.6.1.2.1.1 do grupo system na rvore da MIB.
Vale notar que uma instncia de um objeto na MIB descrita pela mesma sequncia que define o objeto
acrescida de um ltimo nmero. Este ter valor zero se o objeto possuir somente uma instncia ou um nmero maior
que zero se existir mais de uma instncia do objeto, sendo neste caso as instncias organizadas em tabelas. No
exemplo da Figura 2-2, o objeto sysDescr possui somente uma instncia, logo a referenciamos como 1.3.6.1.2.1.1.0 .
Uma certa manipulao de dados na forma de tabelas possvel em SNMPv1. Uma tabela pode ser definida
na MIB de um agente. O processo de criao e deleo de itens destas tabelas feito por meio de operaes
denominadas set. Problemas podem ocorrer quando vrios gerentes tentam criar ou eliminar itens numa mesma
tabela. Em funo disso, alm de um campo index para indexar individualmente os itens, necessrio um campo em
cada item chamado status que ser o responsvel em dizer qual o estado da linha (criada, deletada, apagada, etc...),
para evitar inconsistncias causadas pela manipulao dos dados por mais de um gerente.
A coleta de dados nestas tabelas no muito eficiente por que na verso 1 so enviados seguidamente,
atravs de mensagens denominadas getNextRequest, vrios pedidos ao agente com o intuito de obter tabelas inteiras
acessando cada item de maneira sequencial. Algumas discusses visando melhorar a eficincia do protocolo
propuseram outros algoritmos baseados na correlao dos valores coletados da sequncia de getNextRequest. A
verso 2 do protocolo (SNMPv2) viria a mudar esta estratgia com novidades nas mensagens do protocolo.
Por outro lado, como resultado da evoluo da MIB-I, a RFC 1213 (Management Information Base for
Network Management of TCP/IP-based Internets: MIB-II ) define os objetos para a MIB padro SNMP chamada de
MIB-II. Esta MIB, total ou parcialmente, implementada em produtos comerciais. Acrscimos podem ser feitos
adicionando novos mdulos da MIB (sejam novas padronizaes definidas em RFC dos grupos de trabalho do IETF
ou objetos proprietrios criados por um determinado fabricante). Estes novos objetos so concatenados nas suas
devidas posies na rvore, sem alterar de maneira nenhuma os objetos j existentes. Os objetos nunca so
redefinidos, mesmo se um objeto for declarado obsoleto pelo IETF, sua identificao na rvore permanece.
Cabe observar que um determinado agente pode ter um conjunto de objetos que na verdade uma parte do
universo da MIB descrito acima. O que deve ser realmente implementado num agente so as informaes
pertinentes ao seu funcionamento e estado.
Inmeras novas MIBs foram padronizadas para necessidades especficas e tecnologias emergentes. Assim,
uma MIB pode conter exatamente os objetos de interesse para um determinado equipamento ou componente da rede,
tornando os dados um reflexo da realidade gerencial.
Deve-se notar que a informao de gerenciamento possui suas prprias regras de definio, o que torna as
MIBs reservatrios de informao completamente desvinculados do protocolo de gerncia. No princpio da
definio do SNMP, pretendia-se facilitar a migrao da infra-estrutura de informaes de gerncia do protocolo
SNMP para um protocolo de gerncia OSI. O tempo mostrou que isto no iria acontecer, mas esta separao
facilitou a migrao da verso 1 para novas verses.
5. Protocolo SNMP v1
A funo do protocolo de gerncia permitir a troca de informaes entre as entidades que compem o
sistema de gerncia da rede, no caso, gerentes e agentes. O protocolo ainda delineia o mecanismo de segurana
usado pelo contexto administrativo. Na verso 1, somente os servios de autenticao e autorizao de acesso so
oferecidos, como ser visto adiante.
O protocolo SNMP possui poucas mensagens. Estas so operaes bsicas a serem executadas pelos
gerentes e agentes, incluindo pedidos de informao, respostas a estes pedidos e notificaes espontneas de eventos
nos dispositivos gerenciados.
O protocolo de transporte sugerido para transferncia das mensagens SNMP o UDP (User Datagram
Protocol) . Cada mensagem SNMP deve estar totalmente contida num pacote UDP. O padro especifica que
nenhuma entidade receba mensagens maiores que 484 octetos. O padro ainda especifica que todas as mensagens
SNMP (com exceo da trap) devero ser encaminhadas entidade de destino em questo para a porta definida com
o nmero 161. As notificaes (traps) devem ser enviadas porta nmero 162 do gerente.
Cada mensagem uma ao de comunicao entre entidades SNMP. Para a verso 1 do protocolo foram
padronizadas as seguintes operaes :
Uma operao GET ou SET somente se refere a uma nica instncia de um objeto representada atravs de
seu nome.
O formato geral da mensagem SNMP descrito na
As regras de codificao BER, citadas anteriormente, traduzem um item de dados (seja ele a mensagem
toda ou um de seus subcampos) em triplas denominadas TLV (Tag, Length, Value), onde:
1. Tag (etiqueta) o primeiro campo e deve especificar o tipo do dado que vem a seguir (no
exemplo, uma sequence de campos pr-determinados: a mensagem SNMPv1)
2. Length o comprimento do dado (aqui no caso, a mensagem SNMPv1 toda)
3. Value o dado (a mensagem SNMPv1)
Deve-se notar que este tipo de codificao tambm ser usado para cada item de dados dentro da PDU
(Protocol Data Unit).
A mensagem SNMPv1 composta de 3 campos bsicos: verso, nome da comunidade e a PDU.
O campo verso um inteiro igual a zero para a verso 1 do protocolo. A checagem desta verso analisa se
o valor zero ou no. Se no for, o pacote simplesmente descartado.
O campo comunidade usado para autenticao da fonte da mensagem. A maneira como isto feito
apresentada com mais detalhes na discusso da segurana do protocolo nos prximos captulos.
A PDU deve ter o formato prprio de uma das 5 possveis operaes SNMPv1 citadas anteriormente. No
caso das operaes de Get, GetNext, Set e GetResponse, as mensagens tm formato de PDU similar descrito na
Figura 2-5.
Cada campo dentro da PDU representado pelo mesmo tipo de codificao BER descrito anteriormente e
no detalhado aqui por motivo de simplicidade. A descrio dos campos a seguinte:
A operao de Trap apresenta uma PDU um pouco diferente das demais por causa das informaes que ela
deve transmitir, conforme mostrado na Fig. 2-6.
No protocolo SNMP, as operaes so consideradas atmicas, isto , cada operao requisitada deve ser
executada sobre todos os objetos citados na operao, caso contrrio nada feito. No existem execues parciais de
um pedido. Se ocorrer algum erro durante a execuo de uma operao, os resultados produzidos por esta operao
so ignorados e os indicadores de erro ajustados de acordo.
Um cliente SNMP, ou seja, o gerente no caso das mensagens Get, GetNext e Set, deve construir e enviar o
seu pedido ao servidor, ou seja, o agente. O gerente deve, ento, esperar pela resposta de seu pedido e verificar se a
resposta concorda com a resposta do que foi pedido. Devido ao fato de o protocolo de transporte UDP no garantir a
entrega dos pacotes, o cliente deve implementar estratgias para timeout e retransmisso das mensagens que contm
os pedidos.
No comeo de 1992, o IETF anunciou a chamada por propostas para uma nova verso. A primeira resposta
veio nas RFC 1351 a 1353 e foi chamada SNMP seguro (, ,).
O SNMP seguro apresentava um modelo de segurana que integrava autenticao e criptografia ao
protocolo para proteg-lo de ameaas como interrupo, interceptao, modificao e mascaramento de
informaes. A comunicao poderia assim ser totalmente aberta, ou autenticada mas no privada, ou privada mas
no autenticada ou ambas. O novo conceito de party era muito importante nesta proposta. Uma party definida
como um contexto de execuo virtual onde a operao do protocolo restringe-se a um subconjunto de possveis
operaes. A estrutura da party substituia as comunidades da verso 1, acrescentando informaes de tempo
(clocks), chaves e polticas de acesso s entidades SNMP.
O MD5 foi o algoritmo proposto para autenticao e o DES (Data Encription Standard) foi o proposto para
a criptografia das mensagens. O prximo captulo discutir com mais detalhes todos estes aspectos de segurana.
Foi difcil a aceitao deste novo protocolo principalmente por causa de sua incompatibilidade com a
verso 1, j que as novas mensagens criptografadas no eram compreendidas pelas entidades SNMP anteriores. Em
conseqncia, novos esforos foram direcionados para manter a caracterstica de simplicidade do protocolo original.
Entre os novos aprimoramentos que foram apresentados esto as seguintes diretrizes:
A verso 2 foi oficialmente apresentada em 1993 e hoje chamada de SNMPv2 clssica ou SNMPv2p
(baseada em parties). A Tabela 2-2 apresenta os documentos descritores desta nova verso:
RFC Ttulo
RFC Introduction to version 2 of the Internet-standard Network Management framework
1441
RFC Structure of Management Information for version 2 of the Simple Network
1442 Management Protocol (SNMPv2)
RFC Textual Conventions for version 2 of the Simple Network Management Protocol
1443 (SNMPv2)
RFC Conformance Statements for version 2 of the Simple Network Management
1444 Protocol (SNMPv2)
RFC Adminstrative Model for version 2 of the Simple Network Management Protocol
1445 (SNMPv2)
RFC Security Protocols for version 2 of the Simple Network Management Protocol
1446 (SNMPv2)
RFC Party MIB for version 2 of the Simple Network Management Protocol (SNMPv2)
1447
RFC Protocol Operations for version 2 of the Simple Network Management Protocol
1448 (SNMPv2)
RFC Transport Mappings for version 2 of the Simple Network Management Protocol
1449 (SNMPv2)
RFC Management Information Base for version 2 of the Simple Network Management
1450 Protocol (SNMPv2)
RFC Manager-to-manager Management Information Base
1451
RFC Coexistence between version 1 and version 2 of the Internet-standard Network
1452 Management Framework
Estes documentos objetivaram portanto implementar uma srie de melhorias no protocolo no que se refere
ao modelo administrativo, MIB e ao protocolo (mensagens).
Na verdade, foram tantos os aspectos novos que as especificaes formais do SNMP expandiram-se de 36
para 416 pginas na verso 2 clssica.
A pilha de transporte necessria para rodar SNMP sempre foi UDP. Esta caracterstica ficou mais flexvel
em SNMPv2, onde outras pilhas de protocolos podem ser usadas mudando algumas informaes de configurao.
Entre as possibilidades esto: protocolos de transporte OSI, Appletalk (protocolo usado por mquinas macintosh) e o
protocolo de transporte usado pelas redes Novell IPX.
No que diz respeito ao protocolo, houveram mudanas substanciais. Em SNMPv2, o conjunto de operaes
sofreu algumas alteraes e adies comparativamente verso 1, possibilitando a comunicao slida, inclusive
entre gerentes, criando hierarquias de gerncia.
As seguintes alteraes no conjunto de operaes refletem estas preocupaes:
getRequest: no existe mais a perda da resposta toda, caso seja problemtico obter o valor
de apenas uma das variveis. Se ocorrer problema na obteno de um valor especfico, o
campo daquela varivel preenchido com cdigos de erro.
getNextRequest: se um pedido de getNext ultrapassar o tamanho da MIB (ou sua database
view), o valor da varivel ser preenchido com o cdigo endOfMibView e o status de erro
ser tambm o correspondente a sucesso (zero), ao contrrio do que era antes na verso 1,
que entendia a mensagem do fim da MIB como um erro.
setRequest: a operao de set executada em duas fases: na primeira, as variveis so
testadas; na segunda, elas so propriamente setadas. Caso alguma delas no passe no
teste, toda a operao falha. Este operao, como em SNMPv1, continuou funcionando de
forma atmica (tudo ou nada).
response: o novo nome da operao getResponse.
snmpV2-trap: o formato das traps foi modificado para ficar semelhante quele usado em
operaes de get e set. Os campos especiais de enterprise, agent-addr, generic-trap,
specific-trap e timestamp foram eliminados e toda informao necessria inserida no
campo de variveis da mensagem. Esta informao contm o nome da trap e o tempo de
sysUptime, alm da lista de variveis definida para cada trap especfica.
A nova definio de uma trap pode ser feita pela macro NOTIFICATION-TYPE e apresenta basicamente
seu nome e sua lista de variveis. Percebe-se que houve uma uniformizao do formato da PDU, de forma a evitar o
processamento extra para lidar com dois diferentes tipos de PDU.
Alm do mais, SNMPv2 adiciona dois tipos novos de operaes ao protocolo. As mensagens denominadas
GetBulkRequest e InformRequest permitem um aumento das funcionalidades dos agentes e gerentes intermedirios e
tambm a coleta de grandes quantidades de dados.
A nova mensagem InformRequest permite a um gerente enviar, de forma assncrona, uma notificao de
algum evento outro gerente, algo anlogo mensagem trap s que entre gerentes. A diferena com relao ao trap
que o InformRequest um servio confirmado pelo gerente que recebe a mensagem. Isto quer dizer que
necessrio o envio de uma mensagem response para o gerente que originou o inform. Esta nova possibilidade
permite a hierarquizao da estrutura gerencial do SNMPv2, de forma que estaes gerenciadoras locais enviem
informaes a uma estao gerenciadora central, como na Figura 2-7.
Caso as informaes no caibam num nico response, cabe ao gerente formular outro getBulkRequest a
partir da ltima varivel na lista. Assim, em SNMPv1, para a recuperao de 10 entradas de uma tabela necessrio
o envio de 10 operaes GetNextRequest. Na verso 2, somente uma operao GetBulkRequest suficiente.
Em resumo, as mudanas nos formatos das mensagens refletiram as mudanas nas operaes e as inovaes
do protocolo em termos de segurana.
J o conceito de party restringe as operaes permitidas por entidades SNMPv2, assim como as variveis
que elas enxergam na MIB ou as parties com quem elas podem trocar dados. Com isso, todas as informaes de
controle so agora necessrias dentro da mensagem para um processamento correto. Vale dizer tambm que as
mensagens de erro foram incrementadas de forma a melhorar o tratamento de erros em requests para todas as
operaes.
Elementos especficos de implementao tambm tiveram que ser criados para manter a consistncia das
informaes de gerncia armazenadas na MIB. Um procedimento de lock (trava) foi desenvolvido para manter a
consistncia nas operaes de set na verso 2, para os casos em que vrios gerentes operam num mesmo agente.
Segundo este esquema, o agente devolver ao gerente um nmero de sequncia que permite a alterao de uma
objeto por meio de uma operao de set, assim vrios pedidos para um mesmo agente so executados de forma coesa
um por um.
A Estrutura da Informao de gerenciamento (SMI) foi alterada e tornou-se um superconjunto da primeira
SMI. As maiores vantagens apresentadas nesta nova verso foram os novos tipos de dados, novas macros mais
claramente definidas e os novas declaraes que explicitam os requisitos de conformidade das MIB.
Entre as novidades na MIB, est a possibilidade de melhores declaraes de variveis. Os tipos de dados
tambm sofreram alteraes, tais como os contadores que antes eram de 32 bits, podendo agora ser de 64 bits para
acomodar caractersticas que incrementam com grande velocidade, como o nmeros de pacotes que passa por um
dispositivo num ms.
Ainda dentro do contexto da verso 2, foi definida uma MIB, denominada de M2M (Manager to Manager)
, que suporta a distribuio de funes de monitorao entre os gerentes da rede. Tal monitorao baseada em
amostras realizadas em variveis do tipo counter, gauge e timeticks de agentes. Os valores de tais atributos so
comparados com valores-limites configurados, e caso sejam atingidos, uma mensagem InformRequest ou uma trap
podem ser enviadas pelo gerente que implementa a MIB M2M a outro gerente. Por essa razo, a M2M composta
de dois grupos de objetos: grupo alarm e grupo events. O grupo alarm contm objetos que permitem a configurao
de qualquer gerente para o disparo de uma notificao em funo de valores de variveis da MIB. O grupo events,
por sua vez, permite a definio do formato e da temporizao destas notificaes. Estas podem ser alarmes ou
eventos determinados como a queda de um link.
7. SNMPv2c
Em 1995, foi feita mais uma reviso do protocolo em resposta baixa aceitao da verso SNMPv2
clssica. Tal reviso se deu principalmente no que diz respeito ao contexto baseado em parties, configurao dos
agentes, dificuldade de descoberta da rede e implementao do modelo administrativo e de segurana.
O nico consenso ento obtido foi o da aceitao das novidades no protocolo, porm permanecendo o
contexto de operao sob a antiga forma de comunidades (sem a estrutura de segurana proposta) e,
consequentemente, com o antigo formato das mensagens.
Assim, foi apresentada mais uma verso SNMP, agora chamada de SNMPv2c (baseado em comunidades).
Nesta, o modelo administrativo apresentado na verso clssica e baseado em parties, foi completamente
descartado.
As RFC mostradas na Tabela 2-3 modificaram a verso clssica segundo as novas determinaes (alguns
dos antigos documentos chegaram a ser relegados a status histrico):
RFC Ttulo
RFC Introduction to Community based SNMPv2
1901
RFC Structure of Management Information for version 2 of the Simple Network
1902 Management Protocol (SNMPv2)
RFC Textual Conventions for version 2 of the Simple Network Management Protocol
1903 (SNMPv2)
RFC Conformance Statements for version 2 of the Simple Network Management Protocol
1904 (SNMPv2)
RFC Protocol Operations for version 2 of the Simple Network Management Protocol
1905 (SNMPv2)
RFC Transport Mappings for version 2 of the Simple Network Management Protocol
1906 (SNMPv2)
RFC Management Information Base for version 2 of the Simple Network Management
1907 Protocol (SNMPv2)
RFC Coexistence between version 1 and version 2 of the Internet-standard Network
1908 Management Framework