Gerenciamento de redes para sistemas embarcados - O gerenciamento de redes pode...
Jorge Staub | comentários
Arquivado no curso de Ciência da Computação na UNISC
CURSO DE CIÊNCIA DA COMPUTAÇÃO Jorge Luis Staub
Santa Cruz do Sul, novembro de 2007.
2 Jorge Luis Staub
Trabalho de conclusão I apresentado ao Curso de Ciência da Computação da Universidade de Santa Cruz do Sul, como requisito para obtenção do titulo de Bacharel em Ciência da Computação.
Orientador: Prof. Ms. Cristiano Both
O gerenciamento de redes pode ser definido como um conjunto de ferramentas integradas para monitoramento e controle dos recursos da rede. Tem como principal objetivo a produtividade e eficiência, garantindo assim a disponibilidade dos serviços em um nível de desempenho aceitável. O processo de gerência de redes consiste, em obter informações dos equipamentos e serviços da rede para posteriormente tratá-las de forma a obter um diagnóstico dos possíveis problemas que acompanham a evolução contínua da microeletrônica e da tecnologia de comunicação.
A evolução da capacidade dos equipamentos dedicados gerou uma nova necessidade de gerenciamento. Neste contexto os dispositivos de uso específico são ligados a uma rede de computadores e seus sistemas operacionais são otimizados e com algumas limitações funcionais. Entretanto, esses equipamentos dedicados necessitam de um detalhado sistema de gerenciamento e monitoramento.
Assim, este trabalho propõe integrar em uma placa FPGA, um agente SNMP e juntamente com um sistema gerente obter dados gerenciais sobre um determinado sistema embarcado.
Palavras-Chave: Gerência de Redes, uClinux, SNMP, Sistemas Embarcados, FPGA.
The network management can be defined as a group of integrated tools to monitor and controls the network resources. The main goal is the productivity and efficiency in order to disponibility of services in a level acceptable performance. The network management proccess consists, basically in obtain information about equipments and network services in order to have a diagnostic of possible problems that have been happening with the continuous evolution of microelectronics and communication technologies.
The evolution of the dedicated devices generated a need of management. In this context devices with specific use are connected to a computer network and their operating systems are optimized and with some functional limitations. However, such equipments need a comprehensive management system.
So, this research proposes to integrate in a FPGA board, a SNMP agent that together with a management system obtains management information about an embedded system.
Keywords: Network Management, uClinux, SNMP, Embedded Systems, FPGA
Figura 1: Modelo básico de um Sistema de Gerência de Redes 12 Figura 2: Mensagens em um Protocolo de Gerência de Redes 12 Figura 3: Modelo de gerenciamento SNMP 13 Figura 4: Estrutura de Árvore da MIB 16 Figura 5: Plataforma de desenvolvimento Virtex-I Pro 24 Figura 6: Arquitetura do sistema de gerenciamento de redes 27 Figura 7: Tela de abertura do sistema de gerenciamento 29 Figura 8: Cadastro de novo dispositivo para monitorar 30 Figura 9: Coleta de dados técnicos do dispositivo 31 Figura 10: Parâmetros da coleta de dados 31 Figura 1: Tela do sistema de gerenciamento coletando dados 32 Figura 12: Gerando tráfego na interface de rede 3 Figura 13: Selecionando ID da coleta para analisar tráfego 34 Figura 14: Relatório de tráfego gerado pelo sistema de gerência 34 Figura 15: Gráfico de Bytes Enviados e Recebidos. 35 Figura 16: Gráfico do % de uso da interface de rede 36 Figura 17: Relatório de Processos Ativos – uso de CPU e Memória 37 Figura 18: Analise de pacotes com programa Ethereal 38 Figura 19: Tela inicial do XPS 47 Figura 20: Tela do assistente de novo projeto 48 Figura 21: Seleção do modelo da placa FPGA 49 Figura 2: Seleção do tipo de processador 50 Figura 23: Opções avançadas do Processador MicroBlaze 51 Figura 24: Configuração dos periféricos da placa (1) 51 Figura 25: Configuração dos periféricos da placa (2) 52 Figura 26: Configuração dos periféricos internos 53 Figura 27: Configuração do Cache Setup 53 Figura 28: Configuração do Software Setup 54 Figura 29: Resumo e finalização das configurações 54 Figura 30: Software Plataform Settings – seleção do kernel 5 Figura 31: Software Plataform Settings – Ajustes no SO 5 Figura 32: Tela principal do menu de configuração do kernel 58 Figura 3: Tela de propriedades da porta serial 63 Figura 34: Tela do XPS – Abrir projeto recente 64 Figura 35: Tela do XPS – Console XMD 65 Figura 36: Tela de mensagens da carga do uClinux 65 Figura 37: Arquivo de configuração Makefile67 Figura 38: Mensagem de erro de compilação (1)68 Figura 39: Arquivo de include do pacote net-snmp68 Figura 40: Mensagem de erro de compilação (2)69
Figura 41: Arquivo hr_system.c – erro de declaração de atributos70
Tabela 1: Principais comandos disponíveis no pacote SNMP 14 Tabela 2: Descrição dos grupos da MIB I 18 Tabela 3: Descrição dos principais subgrupos da MIB I 18 Tabela 4: Grupos da MIB host-resources 19 Tabela 5: Descrição dos principais subgrupos da MIB host-resources 19 Tabela 6: Análise de impacto do monitoramento no tráfego da rede 38
Tabela 7 : Análise do uso de Ciclos de CPU na FPGA39
7 LISTA DE ABREVIATURAS
ASN.1 Abstract Syntax Notation One EDA Electronic Design Automation EDK Embedded Development Kit FTP File Transfer Protocol GUI Graphic User Interface HTML Hipertext Markup Language HTTP Hipertext Transfer Protocol IAB Internet Activities Board IBM Industrial Business Machine IEEE Institute of Electrical and Electronics Engineers IETF Internet Engineering Task Force IP Internet Protocol ISO International Organization for Standardization LAN Local Area Network MIB Management Information Base MMU Memory Manager Unit MTU Maximum Transmission Unit NMS Network Management Station OID Object Identifier OSI Open Systems Interconnection PC Personal Computer (Estação de Trabalho) PDU Protocol Description Unit PHP Preprocessor Hypertext Protocol POSIX Portable Operating System Interface for Unix
8 RFC Request for Comments
RMON Remote Network Monitoring MIB
ROM Read Only Memory SDRAM Synchronous Dynamic Random Access Memory SMI Structure of Management Information SNA System Network Architecture SNMP Simple Network Management Protocol SOPC System-On-a-Programmable-Chip TCP Transmission Control Protocol UDP User Datagram Protocol USB Universal Serial Bus WAN Wide Area Network WAP Wireless Application Protocol XMD Xilinx Microprocessor Debugger XPS Xilinx Platform Studio
1 GERENCIAMENTO DE REDES 1
2.1 MODELO BÁSICO DE GERENCIAMENTO 1
2.2 ELEMENTOS DA ARQUITETURA SNMP 13
2.2.1 Agentes SNMP 14
2.2.2 O software gerente 15
2.3 BASE DE INFORMAÇÃO GERENCIAL (MIB) 15
2.3.1 Acesso aos valores da MIB 17
2.3.2 Objetos da MIB I 17
2.3.3 Objetos da MIB Host-Resources 19
3 SISTEMAS EMBARCADOS 20
3.1 O SISTEMA OPERACIONAL UCLINUX 21
3.1.1 O Sistema Operacional PetaLinux 2
3.2 A PLACA FPGA XILINX 2
3.3 GERENCIAMENTO DE SISTEMAS EMBARCADOS 24
4 IMPLEMENTAÇÃO DO SISTEMA 26
4.1 ARQUITETURA DO SISTEMA DE GERENCIAMENTO 26
4.2 FUNCIONAMENTO GERAL DO SISTEMA 27
4.3 SISTEMA DE GERENCIAMENTO DE REDE PARA SISTEMAS EMBARCADOS 28
4.4 COMO MONITORAR UM DISPOSITIVO FPGA COM O SISTEMA 28
4.4.1 Cadastrando um novo dispositivo para monitorar 29
4.4.2 Iniciando o monitoramento 31
4.4.3 Gerando tráfego na interface de rede 3
4.4.4 Analisando os relatórios e gráficos gerados pelo sistema 34
5 ANALISE DE DESEMPENHO DO SISTEMA 38
6 CONCLUSÃO E TRABALHOS FUTUROS 40
ANEXO A – PREPARAÇÃO DO AMBIENTE DE TRABALHO 45
O Gerenciamento de redes vem sendo bastante pesquisado nos últimos anos, visto a grande e crescente quantidade de equipamentos ligados em redes LAN (Local Area Network) e WAN (Wide Área Network). Entretanto, pouco se desenvolveu para gerenciamento de sistemas embarcados, que utilizam recursos de hardware limitados. Nos dias atuais, sistemas embarcados são indispensáveis para aumentar a produtividade em diferentes situações, tais como área acadêmica, eletro-eletronica e automotiva. É natural que muitos desses sistemas estejam conectados a Internet para possibilitar uma maior funcionalidade desses equipamentos. Com essa evolução, esses sistemas embarcados conectados em uma rede IP necessitam ser monitorados e gerenciados como qualquer outro equipamento de redes de computadores.
Neste contexto, este trabalho visa o gerenciamento de um sistema embarcado para analisar o uso de seus principais recursos como CPU, memória e interface de rede. Para isto, foi desenvolvido um sistema de gerenciamento de redes para sistemas embarcados, onde se integrou um agente SNMP (Simple Network Management Protocol), por que esse será responsável pelo monitoramento e envio das informações ao sistema de gerenciamento.
O trabalho está organizado conforme a seguinte descrição. O Capítulo 2 apresenta o conceito de gerenciamento de redes, o protocolo SNMP, sua estrutura, características, agentes, gerentes e também a base de informações gerenciais. No Capítulo 3 os sistemas embarcados são discutidos. São evidenciadas as vantagens e desvantagens de utilizar o uClinux em uma FPGA (Field Programmable Gate Array), assim como a necessidade de gerenciamento de seus limitados recursos. Já o capítulo 4 apresenta detalhes do desenvolvimento do sistema de gerenciamento de redes para sistemas embarcados utilizando software livre e os passos necessários para a integração de um agente SNMP no sistema embarcado. No quinto capitulo são analisados os resultados do sistema e sua viabilidade técnica de implantação. Finalmente o sexto capitulo apresenta as conclusões do trabalho e sugestões para trabalhos futuros.
1 1 GERENCIAMENTO DE REDES
Conforme (SPECIALSKI, 2006), uma rede de computadores precisa ser gerenciada por menor e mais simples que seja, a fim de garantir, aos usuários, a disponibilidade dos serviços a um nível de desempenho aceitável. À medida que a rede cresce, aumenta a complexidade de seu gerenciamento, forçando assim a adoção de ferramentas automatizadas para seu monitoramento e controle.
Esta afirmação também vale para os sistemas embarcados, cada vez mais utilizados em equipamentos de propósito especifico, como celulares, tocadores de MP3, fornos de microondas e geladeiras. Uma vez que os recursos do sistema dedicado sejam monitorados, pode-se garantir que o mesmo esteja trabalhando adequadamente.
A arquitetura para gerenciamento de rede mais utilizada é o SNMP, que se refere a um conjunto de padrões para gerenciamento de redes de computadores que inclui um protocolo, uma especificação de estrutura de dados e um conjunto de objetos de dados. Esta é a arquitetura de gerência adotada como padrão para redes TCP/IP, que será descrito nas próximas seções do trabalho.
2.1 Modelo básico de gerenciamento
Segundo (SILVA, 2005), um sistema de gerenciamento de redes é composto por entidades que participam do processo obtendo ou fornecendo informações. Normalmente, a coleta de informações é centralizada em uma estação de gerenciamento e os agentes ficam responsáveis por enviarem informações a esta estação gerente.
Conforme descreve (SPECIALSKI, 2006), as estações de gerenciamento executam aplicações que monitoram e controlam os elementos de rede, que possuem agentes responsáveis pela execução das funções de gerenciamento de rede, requisitadas pelos gerentes.
Na Figura 1, pode-se ter uma visão geral do funcionamento de um sistema de gerenciamento de redes, a comunicação entre aplicações e objetos gerenciados, que serão detalhados no próximo capítulo.
Figura 1: Modelo básico de um Sistema de Gerência de Redes Fonte: (SILVA, 2005)
De uma forma geral, as mensagens partem do gerente para os objetos gerenciados, obtendo destes as informações necessárias ao gerenciamento da rede ou do equipamento específico que se deseja monitorar. É possível observar na Figura 2, como ocorre a comunicação entre gerente e agente, assim como os tipos de mensagens que fluem entre essas duas entidades.
Figura 2: Mensagens em um Protocolo de Gerência de Redes Fonte: (SILVA, 2005)
13 2.2 Elementos da Arquitetura SNMP
A arquitetura SNMP possui uma característica cliente/servidor. A informação pode ser obtida de duas maneiras: através de um alerta SNMP (notificação) que informa o estado (status) do equipamento, emitida pelo agente implementado no dispositivo gerenciado, ou através do gerente SNMP que solicita uma requisição diretamente ao agente SNMP, conforme pode ser visto na Figura 3.
É possível também observar a MIB (Management Information Base), onde são armazenadas as informações dos objetos gerenciados. A MIB é apenas uma base conceitual, ou seja, não importa qual tipo de armazenamento físico (memória, arquivos ou base de dados) é utilizado no armazenamento das informações de gerenciamento.
Figura 3: Modelo de gerenciamento SNMP Fonte: (CORREIA, 2004)
A troca de informações entre a aplicação de gerenciamento e o agente ocorre através dos comandos disponíveis no pacote SNMP. Os principais comandos para manipular e/ou coletar os dados dos equipamentos, podem ser vistos na Tabela 1. Os detalhes dos elementos da arquitetura SNMP serão descritos nas próximas seções deste capítulo.
14 Tabela 1: principais comandos disponíveis no pacote SNMP snmpget envia uma requisição SNMP Get para obter o valor atual contido em um objeto MIB gerenciado por um agente SNMP remoto.
snmpset envia uma requisição SNMP Set para atualizar o valor atual contido em um objeto MIB gerenciado por um agente SNMP remoto.
snmpgetnext envia uma requisição SNMP GetNext para obter o valor do proximo objeto MIB gerenciado por um agente SNMP remoto, se disponivel.
snmpwalk este comando é semelhante do comando snmpgetnext, porém permite obter todos os valores da MIB simultaneamente. Fonte: (STALLINGS, 1999)
2.2.1 Agentes SNMP
Os agentes SNMP podem ser encontrados em hosts, bridges, roteadores, switches, servidores, impressoras e muitos outros equipamentos de rede. Para que o equipamento possa ser gerenciado, é necessária a existência de um agente SNMP interno no dispositivo. O agente é responsável por responder as requisições do sistema de gerenciamento.
O agente possui acesso direto à base de informações gerenciais (MIB), que contém todas as informações de gerência. Ao receber uma mensagem SNMP do gerente, o agente identifica que operação está sendo requisitada e quais as variáveis relacionadas. O agente então requisita estas informações à MIB. Em seguida, é criada uma mensagem com os dados solicitados, que posteriormente é enviada ao gerente solicitante (SILVA, 2005).
O agente também pode detectar, a partir da análise do contexto da MIB, alguma situação inesperada no dispositivo que monitora. Nesta situação, o agente gera uma mensagem especial, denominada Trap, e a envia ao gerente, relatando sobre a situação. Uma mensagem de Trap pode indicar um erro grave no equipamento, como falhas de energia.
Conforme (SILVA, 2005), para poder tratar estes erros o agente deve ter certo poder de decisão, cabendo a ele, a partir da análise do contexto da MIB, decidir se é ou não necessário enviar a Trap ao gerente. Isso é necessário para que em certas situações, como por exemplo, durante a inicialização do sistema, Traps desnecessários não sejam trafegados pela rede, o
15 que, em se tratando de dezenas ou centenas de agentes, poderia interferir no desempenho global da rede.
Assim, o agente que fica em cada equipamento, tem um papel fundamental em todo o processo de gerenciamento, acessando e disponibilizando informações de gerência contidas na MIB, além de indicar situações inesperadas de funcionamento do dispositivo que estiver gerenciando através do envio de Traps ao gerente SNMP.
2.2.2 O software gerente
O software gerente instalado em uma rede, tem como função principal enviar periodicamente comandos aos agentes, solicitando informações sobre variáveis de um objeto gerenciado ou modificando o valor de determinada variável, assim como receber e tratar as exceções (Traps) encaminhadas pelos agentes.
A estação gerente é uma máquina na rede que possui o software gerente, responsável por obter informações dos agentes e analisá-las. A estação serve como interface para que o gerente humano possa monitorar e controlar o gerenciamento de uma rede (MEDEIROS, 2006).
O gerenciamento de redes pode ser definido como um conjunto de ferramentas integradas para monitoramento e controle dos recursos da rede. Tem como principal objetivo a produtividade e eficiência, garantindo assim a disponibilidade dos serviços em um nível de desempenho aceitável. O processo de gerência de redes consiste, em obter informações dos equipamentos e serviços da rede para posteriormente tratá-las de forma a obter um diagnóstico dos possíveis problemas que acompanham a evolução contínua...