Caderno de Estudos Tecnológicos Desenvolvimento de uma Ferramenta de Apoio Didático para Disciplina de Administração em Redes de Computadores Jefferson F. A. Pereira1, José M. Silva1, Kelton, A.P. Costa1 1 Departamento de Informática - Faculdade de Tecnologia de Bauru (FATEC) Rua Manoel Bento Cruz, nº 30 Quadra 3, Centro 17.015-171 - Bauru, SP - Brasil {jefferson.pereira9, jose.silva177, kelton.costa}@fatec.sp.gov.br Abstract. Several tools have been developed in order to manage heterogeneous network but they very complex. This study aims to provide a friendly and intuitive tool to facilitate the task teachers concerning the subjects in the area of information technology and student learning. This tool was developed using the Bourne-Again Shell (bash) script language, which can also be used by computer networks managers because it provides several commands and tests to check the health of any computer network. It was concluded that the proposed objectives were proved both efficiently and effectively by the tool presented in this work. Página 27 Resumo. Para gerenciar redes de computadores heterogêneas, diversas ferramentas foram desenvolvidas, porém muito complexas. Este estudo tem como objetivo apresentar uma ferramenta amigável e intuitiva, para facilitar a tarefa dos docentes de disciplinas da área de tecnologia da informação e o aprendizado dos alunos. Esta ferramenta foi desenvolvida utilizando a linguagem Bourn-Again Shell (Bash) Script, onde pode ser utilizada também por administradores de redes de computadores, pois fornece vários comandos e testes para verificar a saúde de qualquer rede de computadores. Conclui-se que a ferramenta demonstrou de forma eficiente e eficaz os objetivos propostos no trabalho. Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Caderno de Estudos Tecnológicos 1. Introdução No início das redes de computadores, onde uma rede era composta por apenas alguns hosts instalados, o gerenciamento da rede era feito manualmente sem o auxílio de softwares. Com o grande crescimento das empresas nacionalmente e globalmente, consequentemente as redes de computadores cresceram no mesmo ritmo, exigindo a necessidade de softwares de grande desempenho para o seu gerenciamento. Considerando este avanço, foram desenvolvidas diversas ferramentas para gerenciamento de redes de computadores, desde as mais simples até as mais complexas. Atualmente devido a grande quantidade de itens a ser monitorados e analisados em uma rede de computadores, os administradores de redes necessitam de ferramentas que forneçam recursos para uma análise detalhada de toda rede. As ferramentas NAGIOS, ZABBIX e CACTI, são exemplos de ferramentas conceituadas disponíveis no mercado. Estas ferramentas, apesar de terem uma interface gráfica intuitiva, são muito complexas, exigindo do profissional que irá manipulá-la um conhecimento avançado do seu funcionamento. Os cursos na área de tecnologia da informação, mais precisamente na área de redes de computadores contemplam disciplinas de gerenciamento de redes. Com o intuito de auxiliar as atividades acadêmicas dos docentes e aprendizado dos alunos, foi desenvolvida a ferramenta Management Tool Academic-network (MTA-net). Esta ferramenta tem o objetivo de proporcionar ao docente uma maneira intuitiva de expor aos alunos testes que são utilizados rotineiramente no gerenciamento de redes de computadores em ambientes Linux e Windows. Portanto analisando as ferramentas para gerenciamento de redes disponíveis no mercado e constatando que tais ferramentas são muito complexas e que para utilizá-las é necessário consultar e analisar diversos relatórios gerados por diferentes softwares. Esta ferramenta tem o objetivo de proporcionar ao docente uma maneira intuitiva de expor aos alunos testes que são utilizados rotineiramente no gerenciamento de redes de computadores Este estudo apresenta na seção 2 a fundamentação teórica deste estudo, abordando a área de gerenciamento de redes e protocolo utilizado para este fim. Na seção 3 está descrito o sistema operacional utilizado neste trabalho, na seção 4 é abordada a linguagem de programação utilizada para o desenvolvimento da aplicação proposta. Na seção 5, estão relatados os materiais e métodos utilizados, bem como as ferramentas que são utilizadas para suporte a administração de redes, explicando o funcionamento de cada uma delas, e os resultados obtidos. Na seção 6 são descritas as considerações finais, e ao final as referências. 2. Conceitos de Gerenciamento em Redes de Computadores Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Página De acordo com Costa (2010), com o crescimento das redes de computadores, a administração de redes ganhou enorme destaque na manutenção dos negócios das mais diversas organizações. Novos problemas e desafios estão constantemente surgindo, exigindo uma evolução compatível na 28 Segundo Kurose e Ross (2010) a International Organization for Standardization Organização Internacional de Uniformização (ISO) criou um modelo de gerenciamento, “modelo FCAPS”, onde são definidas cinco áreas de gerenciamento: o de desempenho que tem meta de quantificar, medir, informar, analisar e controlar o desempenho de diferentes componentes da rede; o gerenciamento de falhas que tem o objetivo de registrar, detectar e reagir às condições de falha da rede; o gerenciamento de configuração que permite que o administrador saiba quais dispositivos fazem parte da sua rede; o gerenciamento de contabilização que permite o administrador especifique, registre e controle o acesso de usuários e dispositivos aos recursos da rede e o gerenciamento de segurança que tem a meta de controlar o acesso aos recursos da rede de acordo com alguma politica definida. Caderno de Estudos Tecnológicos maneira como as soluções desses problemas são encontradas. Nesse contexto, a utilização de scripts como ferramenta de apoio a essa área vem apresentando bons resultados. Para Nemeth; Ssnyder; Hein (2007), o gerenciamento de redes é a arte e a ciência de manter uma rede saudável. Com o crescimento extraordinário das redes de computadores tanto em tamanho como em valor, percebeu-se a necessidade de uma maneira eficiente de gerenciá-las. O gerenciamento de redes não é viável para apenas um segmento de rede. À medida que as redes vão se tornando complexas com a adição de novos dispositivos de software e hardware e a intolerância a falhas das organizações faz-se necessária a automatização das tarefas de gerenciamento com scripts de Shell e outros programas. O grau de necessidades de confiabilidade da organização determinará a sofisticação do sistema de gerenciamento de redes. Para Saydam (1996 apud KUROSE; ROSS, 2010) gerenciamento inclui o oferecimento, a integração e a coordenação de elementos de hardware, softwares e humanos, para monitorar, testar, consultar, configurar, analisar, avaliar e controlar os recursos da rede, e de elementos, para satisfazer as exigências operacionais, de desempenho e de qualidade de serviço em tempo real a um custo razoável. Ao se falar em gerenciamento de redes de computadores, é importante ressaltar sobre os protocolos de gerenciamento, e mais precisamente sobre o Simple Network Management Protocol (SNMP), protocolo simples de gerenciamento de redes. Para Nemeth; Ssnyder; Hein (2007) os protocolos de gerenciamento de rede padronizam o método de investigação de um dispositivo para descobrir sua configuração, saúde e conexões de rede. Além disso, eles permitem que algumas dessas informações possam ser modificadas para que o gerenciamento de rede possa ser padronizado por meio de diversos tipos de máquinas e realizado em uma localização centralizada. Os fabricantes e organizações de padrões introduziram vários protocolos de gerenciamento de dispositivo padrão e uma fartura de produtos de alto nível que exploram esses protocolos. O protocolo para gerenciamento mais comumente utilizado com o Transmission Control Protocol/Internet Protocol (TCP/IP) é o SNMP. 2.1. Simple Network Management Protocol (SNMP) Segundo Forouzan (2008) o protocolo SNMP, é uma estrutura para gerenciar dispositivos em uma internet usando o conjunto de protocolos TCP/IP. Ele fornece um grupo de operações fundamentais para monitorar e manter uma rede saudável. O SNMP usa o conceito de gerente e agente. Isto é, um gerente, normalmente um host, controla e monitora um conjunto de agentes, normalmente roteadores, switches, servidores. Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Página Para Palma e Prates (2012) o SNMP permite coletar informações sobre o status dos dispositivos da rede, permitindo realizar o monitoramento do funcionamento do sistema. Possui dois componentes como o sistema de gerenciamento que é um software que solicita informações, 29 O SNMP é um protocolo em nível de aplicativo para que possa monitorar dispositivos feitos por diferentes fabricantes e instalados em diferentes redes físicas. Em outras palavras, o SNMP liberta as tarefas de gerenciamento das características físicas dos dispositivos gerenciados e da tecnologia de rede subjacentes. Ele pode ser usado em uma rede heterogênea, constituída de diferentes redes locais e remotas, conectadas a roteadores de diferentes fabricantes. Caderno de Estudos Tecnológicos interpreta e apresenta ao usuário e também configura dispositivos com configuração remota via SNMP. Outro componente é o agente SNMP que é um software instalado em um servidor, roteador, switches, entre outros, que mantém contadores que indicam o estado do componente e atuam de forma passiva, isto é, somente fornecem respostas a solicitações do sistema. Quando tem alguma situação anormal detectada é enviada uma mensagem trap. De acordo com Nemeth; Ssnyder; Hein (2007) há muitos protocolos de gerenciamento proprietários disponíveis. Mas, por enquanto, a grande maioria das instalações utiliza SNMP para o gerenciamento de rede. Como o SNMP é somente um protocolo abstrato, precisa tanto de um programa servidor (“agente”) como de um cliente (“gerente”) para fazer uso dele. O lado servidor do SNMP representa aquilo que está sendo gerenciado, e o lado cliente é o gerente. Clientes variam desde utilitários de linha de comando simples a estações de gerenciamento dedicadas que exibem graficamente redes e falhas em equipamentos importantes como switches e roteadores. 3. Plataforma Linux De acordo com Danesh (1999), o termo “Linux” é um tanto vago, pois é usado de duas maneiras: especificamente para se referir ao kernel em si - o coração de qualquer versão de Linux - e geralmente para se referir a qualquer conjunto de aplicativos que sejam executados no kernel, normalmente referido com distribuição. A tarefa do kernel é fornecer o ambiente global em que os aplicativos possam ser executados, incluindo as interfaces básicas com o hardware e os sistemas de gerenciamento de tarefas e programas que estejam em execução, Ainda Danesh (1999), ressalta que o sistema operacional Linux é multitarefa, isso quer dizer que ele pode executar mais que um aplicativo ou processo por vez. Ainda de acordo com Danesh (1999), o sistema operacional Linux é multiusuário, isto significa que ele suporta a conexão de vários usuários simultâneos, utilizando-se assim os recursos de multitarefa do sistema. A vantagem é que o Linux pode ser utilizado como um servidor de aplicativos, fazendo com que computadores de desktop ou terminais, possam sem conectar com o servidor Linux através de uma rede local e executar aplicativos diretamente no servidor. Para Tanenbaum (2010) um sistema Linux pode ser considerado um tipo de pirâmide, onde na base está o hardware, que é formado por CPU, memória, discos, terminais e outros dispositivos. Executando diretamente sobre o hardware está o sistema operacional Linux. Sua função é controlar o hardware e fornecer uma interface de chamadas de sistema para todos os programas. Essas chamadas de sistema permitem que os programas do usuário criem gerenciem processos, arquivos e outros recursos. 4. Linguagem de Programação Shell Script Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Página De acordo com Neves (2010), o Shell é um interpretador de comandos de alto nível de sofisticação, onde usuários e/ou administradores podem criar programas chamados de scripts visando a automação do sistema a ser administrado. 30 Segundo Jargas (2008), Shell é o prompt da linha de comando do Unix e do Linux, é o servo que recebe os comandos digitados pelo usuário e os executa, e script é um arquivo que armazena os comandos digitados, e pode ser executado sempre que preciso. Ainda de acordo com o autor, administradores de sistemas precisam fazer scripts para automatizar tarefas do servidor. Caderno de Estudos Tecnológicos Foram utilizados para o estudo e desenvolvimento do projeto o Sistema Operacional Linux e a linguagem de programação Bourn-Again Shell (Bash) Script, Shell é a linha de comando do Linux. É o Shell quem interpreta a linha de comandos digitada pelo usuário no terminal e chama os programas desejados. Além de executar comandos do sistema, o Shell também tem seus próprios comandos, como IF (se), FOR (para) e WHILE (enquanto), e também possui variáveis e funções. Como estas são as características de uma linguagem de programação, o Shell é uma ferramenta muito poderosa para desenvolver scripts visando automatizar tarefas do dia-a-dia, como por exemplo, administrar uma rede de computadores. Assim como serve para fazer scripts, ele é versátil e completo o suficiente para que programas sejam feitos nele. A interação natural com o sistema operacional e seus programas multiplicam os poderes do Shell. Para que se possa fazer a administração de uma rede de computadores, é necessário a utilização dos protocolos de gerenciamento de rede, visto que estes padronizam os métodos de investigação de um dispositivo por meio de diversos tipos de máquinas, e a localização centralizada para descobrir sua configuração, saúde e conexões de rede. O protocolo mais utilizado no gerenciamento de redes de computadores é o Simple Network Management Protocol (SNMP) que define um espaço de nomes hierárquico de dados de administração e uma maneira de ler e gravar os dados de cada um dos nós. Definem também como os servidores e dispositivos gerenciados enviam mensagens de notificação de eventos às estações de gerenciamento. 5. Materiais e Métodos Para o desenvolvimento desta ferramenta, foi realizada uma pesquisa bibliográfica sobre gerenciamento de redes de computadores, sistemas operacionais, e linguagem de programação, onde se decidiu em utilizar o sistema operacional Linux e a linguagem de programação Bourn-Again Shell (Bash) Script por serem sistemas gratuitos, e com grande ênfase em administração de redes de computadores. Para efetuar o teste da ferramenta desenvolvida, foi utilizada uma rede local composta por dois hosts, um com sistema operacional Linux, onde o software estava instalado, e o outro host com sistema operacional Windows, fazendo os testes de conexão e aplicação da ferramenta. 5.1 Resultados obtidos Página 31 As ferramentas que serão apresentadas a seguir são bastante utilizadas no suporte à administração de redes de computadores, elas estão disponíveis nos sistemas operacionais mais utilizados atualmente. Como é observado na figura 1, tem-se um menu de opções onde o usuário/administrador deve escolher uma opção para o funcionamento do programa. Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Caderno de Estudos Tecnológicos Figura 1 – Menu Iniciar Na figura 3 é realizada a verificação de uma rota/destino na rede, utilizando a ferramenta Traceroute. Esta é uma ferramenta utilizada para descobrir a rota que pacotes seguem a partir do computador que utiliza esse programa até um destino na rede. A camada de rede utiliza o IP como protocolo padrão Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Página Figura 2 – Teste de Conexão 32 Na figura 2, é exibido o primeiro teste de conexão utilizando a ferramenta Packet Internet Groper (PING), esta é uma ferramenta bastante simples, visto que ela é utilizada para verificar a conectividade de determinando endereço de Internet Protocol (IP). Para verificar a conectividade, também chamada de acessibilidade, o ping transmite mensagens do protocolo Internet Control Message Protocol (ICMP). Esse é um protocolo utilizado para auxiliar em diversas situações de operação da arquitetura Internet. O ICMP está conceitualmente localizado entre a camada de rede e a camada de transporte, embora não pertença formalmente a nenhum desses níveis lógicos. Caderno de Estudos Tecnológicos de roteamento. Esse protocolo envia pacotes sem necessidade de criação de conexões lógicas, podendo as informações seguir caminhos diferentes em uma mesma comunicação. Os pacotes IP possuem um campo Time To Live (TTL) para evitar que pacotes trafeguem indefinidamente na rede devido à formação acidental de algum loop de roteamento. Cada roteador que processa um pacote IP deve subtrair em um valor contido nesse campo, descartando pacotes com TTL que atinjam o valor zero. A operação da ferramenta traceroute é baseada no envio de pacotes com TTL somado em um, a partir do TTL com valor 1, até atingir o destino que se pretende verificar. Quando um pacote IP é descartado porque o campo TTL no cabeçalho do pacote atingiu o valor zero, uma mensagem ICMP Time Exceeded é enviada ao emissor do pacote descartado. O programa traceroute vai então armazenar as mensagens ICMP recebidas para “montar”, indiretamente, a rota até o destino verificado. Figura 3 – Verificação de Rotas Página 33 A figura 4 demonstra a verificação dos processos de rede em execução no computador utilizando a ferramenta netstat, onde é possível verificar variáveis de rede associadas aos processos, como porta de comunicação e protocolos sendo utilizados. Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Caderno de Estudos Tecnológicos Figura 4 – Verificação de Processos A figura 5 mostra a consulta especializada a árvore de domínios Domain Name Server (DNS), utilizando a ferramenta nslookup. As consultas podem ser direcionadas a qualquer tipo de registro de recurso disponível no serviço DNS. Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Página Na figura 6, é visto o endereço IP, a máscara de sub-rede e o endereço do gateway padrão do computador, ainda há a opção de selecionar a interface desejada, utilizando para isso a ferramenta ifconfig. 34 Figura 5 – Verificação DNS Caderno de Estudos Tecnológicos Figura 6 – Verificação de IP Página Figura 7 – Identificação de Endereço Físico 35 A figura 7 mostra a identificação do endereço físico do computador, para isto utilizamos a ferramenta arp, que é um protocolo auxiliar da arquitetura Internet, que permite traduzir um endereço IP, de caráter lógico, em um endereço de enlace, de caráter físico. Sem esse protocolo, não seria possível que pacotes IP trafegassem por redes heterogêneas. Cada tradução entre endereços é armazenada em uma tabela local nos computadores, específica para essa função. Através do programa arp, é possível verificar o conteúdo dessa tabela, bem como remover registro das traduções. Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Caderno de Estudos Tecnológicos Na figura 8, utilizada a ferramenta route, para visualizar a tabela de rotas contidas no computador. Cada equipamento conectado a Internet deve possuir uma tabela de rotas. Se esse equipamento se comportar como roteador, sua tabela de rotas terá informações sobre o que fazer com pacotes originados desse elemento e também de outros equipamentos conectados à Internet. Caso esse equipamento for um host, sua tabela de rotas é mais simples, contendo apenas informações sobre o que fazer com pacotes originados dele mesmo. Figura 8 – Visualização da Tabela de Rotas 6. Conclusão A ferramenta desenvolvida demonstrou de forma eficiente e eficaz os objetivos propostos no trabalho. Os testes que integram a ferramenta oferecem ao usuário da área de tecnologia da informação, seja um administrador de rede, docente ou aluno, um conjunto de informações suficientes para verificação do estado de saúde de uma rede de computadores como estado de um link, configurações de um equipamento, verificação de rotas, etc.. Com os resultados obtidos através dos testes efetuados e demonstrados, o usuário poderá analisar, e se necessário efetuar as correções necessárias para fornecer o máximo desempenho da rede com o mínimo tempo ocioso da rede. Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Página Para facilitar as atividades do profissional na área de tecnologia da informação tais como gerentes de redes, docentes e alunos, foi desenvolvida a ferramenta MTA-net. Após os testes realizados conclui-se que a MTA-net supera todas as desvantagens de ferramentas complexas conforme explicitados neste estudo. 36 O mercado atualmente disponibiliza inúmeras ferramentas para gerenciamento de redes de computadores que fornecem ao administrador um conjunto completo de relatórios e testes que auxiliam na tarefa de garantir o funcionamento da rede de computadores. Devido à complexidade das ferramentas disponíveis, exige-se que os administradores de redes tenham conhecimentos avançados em tecnologia da informação e também do funcionamento das ferramentas para que seja aproveitado o máximo de seu desempenho. Caderno de Estudos Tecnológicos Como trabalhos futuros, é possível adicionar algumas funções à ferramenta, como a utilização de conexão via web, utilização de telas gráficas, bem como a implementação de MIB’s públicas. Referências Cacti, The Cacti Group Inc. Disponível em: <http://www.cacti.net/>. Acessado em 04/04/2013. Costa, D. G.(2010). Administração de Redes de com Scripts: Bash Script, Python e VBScript. 2. ed. Rio de Janeiro: Brasport. Danesh, A.(1999). Dominando o Linux, São Paulo: Makron. Jargas, A. M. (2008). Shell Script Profissional, São Paulo: Novatec. Kurose, J. F.; Ross, K. W. (2010). Redes de Computadores e a Internet: Uma abordagem Top-down. 5. Ed. São Paulo: Pearson. Nagios Enterprises. Disponível em: <http://www.nagios.org/>. Acessado em 04/04/2013. Nemeth, E.; Snyder, G.; Hein, T. R. (2007). Manual completo do Linux: Guia do administrador. São Paulo: Pearson. 2ª edição. Neves, J. C. (2010). Programação Shell Linux. 8. ed. Rio de Janeiro: Brasport. Palma, L.; Prates, R. (2012). TCP/IP: Guia de consulta rápida. São Paulo: Novatec. Tanenbaum, A. S. (2010). Sistemas Operacionais Modernos. 3. ed. São Paulo: Pearson. for Everyone. Disponível em: Página 37 Zabbix, The Enterprise-class Monitoring Solution <http://www.zabbix.com/>. Acessado em 04/04/2013. Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013