1. Introdução
As redes de computadores foram projetadas, inicialmente, como um mecanismo para permitir o compartilhamento de recursos caros, tais como impressoras, modems de alta velocidade, etc, existindo apenas em ambientes acadêmicos, governamentais (principalmente em organizações militares) e em empresas de grande porte. Entretanto, a evolução das tecnologias de redes aliada à grande redução de custos dos recursos computacionais, motivou a proliferação das redes de computadores por todos os segmentos da sociedade. Além disso, houve uma drástica mudança nos serviços oferecidos, pois além do compartilhamento de recursos, novos serviços, tais como correio eletrônico, transferência de arquivos, WWW, aplicações multimídia, etc foram acrescentados, aumentando a complexidade das redes. Não bastassem esses fatos, o mundo da interconexão de sistemas computacionais ainda tem que conviver com a grande heterogeneidade dos padrões de redes, sistemas operacionais, equipamentos, etc.
Nesse contexto, onde percebe-se que cada vez é mais rápido o crescimento da complexidade e heterogeneidade das redes de computadores, surge a necessidade de buscar uma maneira consistente de realizar o gerenciamento de redes para, com isso, manter toda a estrutura da rede funcionando de forma suave e atendendo às necessidades de seus usuários e às expectativas de seus administradores.
No que se refere a gerência de redes, a proposta desse documento é apresentar de forma sucinta alguns conceitos básicos relacionados à área a fim de oferecer uma fundamentação para o estudo dos protocolos de gerência. Também será apresentada a mais recente tendência no gerenciamento de redes, o Java Management.
2. Gerenciamento de Redes
2.1. Conceito
O gerenciamento de redes pode ser entendido como o processo de controlar uma rede de computadores de tal modo que seja possível maximizar sua eficiência e produtividade. Tal processo compreende um conjunto de funções integradas que podem estar em uma máquina ou espalhados por milhares de quilômetros, em diferentes organizações e residindo em máquinas distintas. Aqui, é importante observar que com estas funções pode-se controlar uma rede de computadores e seus serviços, provendo mecanismos de monitoração, análise e controle dos dispositivos e recursos da rede.
2.2. Metas
As principais metas do gerenciamento de redes são:
A gerência de redes, como já citado na sua definição, não pode ser vista como uma atividade única, ou seja, deve ser observada como uma atividade que pode, além da operação da rede, envolver inúmeras tarefas, como por exemplo:
2.4. Recursos gerenciados
O gerenciamento de redes de computadores envolve monitoração e controle de diferentes elementos de hardware e software, dentre os quais podem ser citados:
Antes de iniciar o estudo sobre gerenciamento de redes, faz-se necessária a apresentação de alguns conceitos básicos relacionados à área, os quais servirão de base para a compreensão da descrição dos protocolos de gerência. Tais conceitos são apresentados a seguir.
2.6. Polling e Comunicação de Eventos
A informação que é útil para o monitoramento da rede é coletada e armazenada pelos agentes, e disponibilizada para um ou muitos sistemas de gerenciamento. Duas técnicas são usadas para disponibilizar a informação do agente, que servirá para o gerenciamento: polling e comunicação de eventos. Polling é uma interação de solicitações/respostas entre gerente e agente. O gerente pode questionar qualquer agente ( para o qual ele tem autorização ) e requisitar os valores de vários elementos de informação; os agentes respondem com informações de sua MIB.
2.7. MIB
A base de informação gerencial (MIB - Management Information Base) é o nome conceitual para a informação de gerenciamento, incluindo os objetos gerenciados e seus atributos, operações e notificações. Pode-se também considerar as informações para a configuração do sistema como também pertencentes à MIB.
2.8. Objeto Gerenciado
Um objeto gerenciado representa um recurso sujeito ao gerenciamento, isto é, que pode ser gerenciado. Ele é definido em termos de seus atributos, das operações a que pode ser submetido, das notificações que pode emitir e de seus relacionamentos com outros objetos gerenciados. O conjunto de objetos gerenciados, juntamente com seus atributos, operações e notificações, constituem a MIB.
2.9. Agentes
Os agentes são entidades que fazem a interface com os dispositivos a serem gerenciados. Eles incluem sistemas finais que suportam aplicações de usuários bem como os nós que oferecem um serviço de comunicação, tais como processadores de front-end, controladores de clusters, bridges e roteadores.
2.10. Gerente
O gerente é um agente que possui o NMA (network-managment application). O NMA pode ser entendido como uma aplicação que inclui uma interface de operador para permitir a um usuário autorizado gerenciar a rede.
2.11. ASN1
A Abstract Syntax Notation One é uma linguagem formal desenvolvida e padronizada pelo CCITT (International Consultative Commitee on Telegraphy and Telephony; X.208) e pela ISO (International Organization for Standardization; ISO 8824). ASN.1 é importante por diversas razões. Primeiro, pode ser usada para definir sintaxes abstratas de aplicações de dados. Além disso é usada para definir estruturas de aplicação e protocolo de apresentação de unidades de dados (PDUs). E finalmente é usada para definir a base de informação de gerência (MIB) tanto para sistemas de gerenciamento SNMP (simple network managment procotocol) como OSI (open systems interconnection).
2.12. Arquitetura
Na figura a seguir, apenas como ilustração, é apresentada uma arquitetura típica do gerenciamento de redes, com as interações agente/gerente.
Um sistema de gerenciamento de redes é uma coleção de ferramentas de monitoração e controle que é integrado no sentido de possuir:
3. Modelos de Gerenciamento
Os modelos de gerenciamento diferenciam-se nos aspectos organizacionais no que se refere à disposição dos gerentes na rede, bem como no grau da distribuição das funções de gerência. Existem dois modelos adotados para gerência de redes: o Modelo Internet e o Modelo OSI.
3.1. Modelo Internet
O modelo de gerenciamento Internet adota uma abordagem gerente/agente onde os agentes mantêm informações sobre recursos e os gerentes requisitam essas informações aos agentes.
O padrão Internet SMI (Structure of Management Information) especifica uma metodologia para definição da informação de gerenciamento contida na MIB. O SMI usa um subconjunto de tipos de dados ASN.1. A MIB define os elementos de gerenciamento de informação como variáveis e tabelas de variáveis.
3.2. Modelo OSI
O gerenciamento no modelo OSI da ISO baseia-se na teoria da orientação a objetos. Com isso, o sistema representa os recursos gerenciados através de entidades lógicas, as quais recebem a denominação de objetos gerenciados.
O modelo OSI permite a delegação das funções de monitoração aos agentes. Contudo, as funções de controle ainda ficam relegadas ao gerente, pois o conhecimento relativo à tomada de decisões gerenciais não se adapta para ser codificado em classes de objeto, ao contrário do conhecimento referente à monitoração, que é mais simples, geralmente estático e periódico.
Existem cinco área funcionais no gerenciamento num ambiente OSI:
4. Protocolos e Padrões de Gerenciamento
Os protocolos de gerenciamento de rede têm sido tradicionalmente implementados como protocolos do nível de aplicação. E até recentemente, cada vendedor costumava ter um método proprietário pelo qual seus agentes podiam se comunicar, o que levava a existência de incompatibilidades entre os diversos "padrões".
A necessidade de uma representação padronizada foi sentida tanto pelo IAB (Internet Activities Board) quanto pela ISO. Enquanto a ISO trabalhou lentamente na especificação do seu padrão, o IAB saiu na frente com a proposta do SNMP em 1989, como uma solução temporária para gerenciamento de redes TCP/IP. A ISO só lançou seu padrão, chamado CMIP (Common Management Information Protocol), muito tempo depois. Devido a sua aceitação, o SNMP tornou-se um padrão de "facto" na indústria. Como conseqüência desse sucesso, o SNMPv2 (SNMP versão 2) foi proposto em 1993. Em 1996, foi proposto o SNMPv3 que está em fase de aprovação.’
A seguir serão discutidos os mais importantes padrões e protocolos adotados para o gerenciamento de redes.
4.1. SNMP
O protocolo SNMP (descrito nos RFCs 1155, 1157, 1212, 1213) foi projetado, em meados dos anos 80, como uma resposta aos problemas de comunicação entre diversos tipos de redes. A idéia básica por trás do SNMP era oferecer uma maneira facilmente implementável e com baixo overhead para o gerenciamento de roteadores, servidores, workstation e outros recursos de redes heterogêneas. No momento de sua concepção, a meta era que ele fosse apenas uma solução provisória até que surgisse um melhor projeto de protocolo para gerência de redes. Entretanto, nenhuma solução melhor tornou-se disponível.
O SNMP é um protocolo do nível de aplicação da Arquitetura TCP/IP, operando tipicamente sobre o UDP (User Datagram Protocol). Ele é considerado "simples" porque os agentes requerem um software mínimo. Muito do poder de processamento de armazenamento de dados reside no sistema de gerenciamento, enquanto um subconjunto complementar dessas funções reside no sistema gerenciado.
O modelo de gerenciamento de rede usado pelo SNMP inclui os seguintes elementos-chave:
O SNMPv2 foi desenvolvido com base nas especificações do Secure SNMP e do SMP (Simple Management Protocol) . Seu propósito era remover muitas das deficiências do SNMP e aumentar sua aplicabilidade para incluir redes baseadas no modelo OSI bem como no modelo TCP/IP. Contudo, só as duas primeiras deficiências citadas acima foram solucionadas por esta versão.
4.1.2. SNMPv3
É uma versão do SNMP que apresenta uma proposta de solução
para o problema de segurança encontrado nas versões anteriores
do protocolo. As propriedades de segurança abordadas são:
O protocolo SNMP não é adequado para ambientes de redes corporativas e constituídas de diversas redes locais conectadas através de outra de longa distância. Esses enlaces de rede de longa distância, por operarem a taxas de transmissão inferiores às LANs que a interconectam, passam a ter grande parte da sua banda de transmissão ocupada para informações de gerenciamento. Uma solução encontrada para dirimir este problema foi o Remote MONitoring (RMON).
RMON é uma capacidade de gerenciamento remoto do SNMP. A especificação RMON é uma definição de uma MIB. Seu objetivo, contudo, é definir padrões de monitoração e interfaces para a comunicação entre agentes/gerentes SNMP.
RMON dá ao gerente da rede a habilidade para monitorar sub-redes como um todo ao invés de apenas dispositivos individuais na sub-rede.
O protocolo RMON oferece suporte à implementação de um sistema de gerenciamento distribuído. Nele fica atribuída aos diferentes elementos, tais como estações de trabalho, hubs, switches ou roteadores, das redes locais remotas a função de monitorar remotamente. Cada elemento RMON tem, então, como tarefas, coletar, analisar, tratar e filtrar informações de gerenciamento da rede e apenas notificar à estação gerente os eventos significativos e situações de erro. A figura a seguir ilustra a utilização do RMON em uma rede.
No caso de existirem múltiplos gerentes, cada elemento RMON deve determinar quais informações de gerenciamento devem ser encaminhados para cada gerente.
Sendo assim, os objetivos do protocolo RMON são:
4.2.1. RMON1
O RMON1 opera somente na camada Media Access Control (MAC) oferecendo recursos ao administrador da rede para monitorar o tráfego e coletar informações e estatísticas da operação de um segmento de rede local, além de realizar o diagnóstico remoto de falhas e erros ocorridos no segmento de rede a partir de funcionalidades de um analisador de protocolo suportadas pelo correspondente elemento RMON.
Porém, o fato do RMON1 só trabalhar na camada MAC, significa que este somente apresenta estatísticas para tráfego agregado – porém não apresenta estatísticas para camadas diferentes de várias pilhas de protocolos (ex. IP, FTP, IPX). Isto também significa que, por não serem capazes de monitorar a camada de rede, os dispositivos RMON1 não distinguem o tráfego originado através de um roteador, o que é uma grande deficiência.
4.2.2. RMON2
O RMON2, por sua vez, opera no nível da camada de rede e camadas superiores, complementando portanto o RMON1, possibilitando coletar informações estatísticas e monitorar a comunicação fim-a-fim e o tráfego gerado por diferentes tipos de aplicação. A figura a seguir ilustra esta diferença.
4.3. Proxies
O uso de SNMP requer que todos os agentes, bem como as estações de gerência, suportem UDP e IP, o que limita o gerenciamento direto de dispositivos e exclui outros, tais como bridges e modems, que não suportam nenhuma parte da pilha de protocolos do TCP/IP. Além disso, existem inúmeros pequenos sistemas (PCs, workstations, controladores programáveis ) que implementam TCP/IP para suportar suas aplicações, mas para os quais não é desejável adicionar o peso do SNMP.
Para acomodar dispositivos que não implementam SNMP, foi desenvolvido um conceito de proxy. Neste esquema, um agente SNMP atua como um proxy para um ou mais dispositivos, isto é o agente SNMP atua a favor dos dispositivos sob o proxy.
4.4. CMIP
O CMIP é o protocolo para gerenciamento de redes definido pelo modelo OSI. O CMIP especifica os elementos de protocolo que são usados para prover os serviços de operação e notificação definidos pelo CMIS. É implementado num modelo orientado a objetos e baseado em eventos. Destina-se ao gerenciamento de diferentes níveis do modelo OSI, inclusive o de aplicações. Devido à sua complexidade, tem uso restrito.
4.5. CMIS
Define os serviços providos para o sistema de gerenciamento OSI. Estes serviços são invocados pelos processos de gerenciamento para comunicação remota. É uma interface de serviços de gerenciamento de redes OSI que monitora e controla redes heterogêneas.
4.6. CMOT
Criado com objetivo de viabilizar a convivência da arquitetura Internet e do protocolo de gerenciamento OSI, o CMOT se baseia na estrutura de gerenciamento OSI e nos modelos, serviços e protocolos desenvolvidos pela ISO para gerenciamento de redes. O CMOT permite que a estrutura de gerenciamento OSI possa ser aplicada sobre os objetos gerenciados de uma rede TCP/IP.
4.7. CORBA
CORBA (Common Object Request Broker Arquitecture) é um padrão atualmente em desenvolvimento pelo OMG (Object Management Group) para fornecer mecanismos pelos quais objetos podem, de forma transparente, fazer solicitações e receber respostas. O CORBA ORB é uma estrutura que fornece interoperabilidade entre objetos, construída em (possivelmente) linguagens diferentes, executando em (possivelmente) máquinas diferentes em ambientes heterogêneos distribuídos.
4.8. Comparação: SNMP versus CMIP
No gerenciamento OSI, objetos gerenciados são vistos como entidades sofisticadas com atributos, procedimentos associados e capacidades de notificação, e outras características complexas associadas com a tecnologia orientada a objetos. Para manter o SNMP simples, ele não foi projetado para trabalhar com tais conceitos sofisticados. Na verdade, os objetos no SNMP não são objetos propriamente ditos do ponto de vista da orientação a objetos; ao invés disso, objetos no SNMP são simplesmente variáveis com poucas características, tais como tipo de dados e permissões de leitura e/ou escrita.
Em relação à MIB, as duas arquiteturas adotaram a abordagem orientada a objetos para descrever e especificar as informações nela armazenadas. No caso Internet, são definidos os objetos a serem armazenados na MIB. A ISO, por sua vez, especifica algumas classes de objetos a serem empregadas pelos sistemas de gerenciamento e fornece um guia de definição dos objetos gerenciados.)
A partir dos diversos aspectos apresentados sobre as arquiteturas de gerenciamento OSI e Internet, pode-se concluir que:
5. Estado da Arte
5.1. Gerenciamento de Redes Baseado em Java
A mais recente tendência no gerenciamento de redes é a utilização de sistemas de gerenciamento baseados na tecnologia Java. Um sistema de gerenciamento baseado em Java consiste de um browser gerenciador no NMS (Network Management System) e uma máquina inteligente Java no agente. O browser gerente monitora e controla os elementos de rede na rede. A máquina Java num elemento da rede executa as funções de gerenciamento de um agente, bem como responde a perguntas do NMS. O browser gerente e os processos dos agentes são programas de aplicações Java stand-alone que são similares aos programas escritos em linguagens de mais alto nível disponíveis no momento. A comunicação entre NMS e o agente é feita pelas classes Java.
A figura abaixo ilustra um setup experimental envolvendo máquinas rodando diferentes sistemas operacionais tais como UNIX, Windows95, e Macintosh. O browser gerenciador está rodando numa máquina UNIX. Estas máquinas estão conectadas através uma rede Ethernet .
5.1.1. Arquitetura
A implementação de elementos de rede baseada em Java pode ser abordada em duas maneiras. A primeira seria deixar a máquina virtual Java fazer virtualmente tudo num elemento da rede tais como funções kernel, gerenciamento de processo, gerenciamento de memória, chamadas de sistemas e interfaces de aplicação. A vantagem dessa abordagem está no fato que a Sun Microsystems fez release do Sistema Operacional chamado Kona, que é designado para dispositivos variando de pagers à redes de computadores. A máquina Java como um todo pode ser uma implementação firmware para o caso de um elemento de rede poder executar mais rapidamente suas funções.
Outra abordagem poderia ser aquela em que a máquina Java é um módulo de software add-on que é adicionado ao kernel proprietário do fabricante. Neste caso, a máquina Java poderia ser um ou mais processos sob o kernel que tem threads para transportar várias funções de gerenciamento. Todos estes processos interagem com o sistema de hardware usando a chamada de sistema e métodos nativos fornecidos pelo JLE (Java Language Environment).
5.2. Java Dynamic Management Kit 2.0 (DMK)
Uma das consequências da análise do Java como ferramenta para gerência de redes, foi o desenvolvimento de alguns produtos baseados nessa linguagem, dentre os quais pode ser destacado o Java DMK.
O Java DMK é uma ferramenta universal de agentes Java que permite o rápido desenvolvimento de agentes Java autônomos para sistemas, aplicações e dispositivos de rede. Com sua estrutura de gerenciamento dinâmico e mecanismos para fornecer serviços de gerenciamento ao longo da rede, o Java DMK vem abrir as portas para um novo tipo de aplicações suaves e flexíveis de gerenciamento, que podem ser criadas, distribuídas, melhoradas ou removidas em tempo real.
5.2.1. Comparação:
SNMP versus Java
O gerenciamento de redes baseado no SNMP consiste de um programa de aplicação, SNMP daemon e um módulo de User Datagram Protocol - UDP para transportar as funções de gerenciamento. As mensagens entre o gerente e os agentes estão na forma de SNMP PDU que concorda com a sintax ANS.1 e codificação BER.
O sistema Java consiste de browser e máquina Java para transportar funções de gerenciamento. O sistema Java usa classes para comunicação entre o gerente e um agente. A fundamental característica de segurança da tecnologia Java aperfeiçoa a segurança do gerenciamento de rede. Uma desvantagem da abordagem Java é que pode ser ineficiente quando usado com pequenas conexões TCP, cada uma para um pequeno número de variáveis MIB. Mas também é verdade que quando aumenta o tamanho dos dados recuperados, o TCP torna-se mais eficiente que o UDP. As maiores diferenças entre os dois sistemas de gerenciamento estão listadas na tabela a seguir.
6. Considerações Finais
Apesar de todos os esforços realizados, até o momento ainda não se conseguiu dentro dos meios industriais e acadêmicos chegar ao sonhado modelo único/integrado que pudesse atender às expectativas dos gerentes de redes.
Talvez a utilização do Java permita chegar à solução "ideal", porém, ainda não é possível afirmar que tal fato seja verdade, pois o uso da linguagem para esse tipo de aplicação ainda é relativamente recente.
7. Referências