UNIVERSIDADE DO VALE DO TAQUARI – UNIVATES
CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CURSO DE ENGENHARIA DA COMPUTAÇÃO
SISTEMA DE GERENCIAMENTO DE CONFIGURAÇÃO DE
EQUIPAMENTOS DE INTERNET NAS INSTALAÇÕES DE CLIENTES
Jardel Kuhn
Lajeado, junho de 2019
Jardel Kuhn
SISTEMA DE GERENCIAMENTO DE CONFIGURAÇÃO DE
EQUIPAMENTOS DE INTERNET NAS INSTALAÇÕES DE CLIENTES
Monografia apresentada na disciplina de Trabalho de Conclusão de Curso II, do curso de Engenharia da Computação, da Universidade do Vale do Taquari – Univates, como requisito parcial para obtenção do título de Bacharel em Engenharia da Computação.
Orientador: Prof. Edson Moacir Ahlert
Lajeado, junho de 2019
RESUMO
Com o crescimento do número de pessoas e organizações conectadas a Internet também há o aumento na quantidade de equipamentos necessários para estabelecer a conexão destes novos assinantes. A boa gerência do equipamento nas instalações do cliente, ou CPE, pelas empresas de telecomunicações, podem promover um aumento na qualidade do serviço prestado e garantir uma maior agilidade para as equipes técnicas. Este trabalho estabeleceu como objetivo desenvolver um sistema web que pudesse auxiliar a área técnica da BrasRede Telecomunicações no gerenciamento destes equipamentos. O sistema desenvolvido foi nomeado AutoCLI, e mostrou-se suficiente em auxiliar os técnicos da BrasRede nas funções que ele se propôs a executar, como a execução de scripts nas CPEs para reconfiguração e consulta de informações ou estatísticas de forma automatizada e a criação de uma Dashboard com o resumo das principais informações destes equipamentos. Desta forma, por meio do sistema procura-se oferecer maior agilidade na execução de operações técnicas e promover a centralização das informações das CPEs, qualificando os serviços prestados. Palavras-chave: Gerenciamento de equipamentos. Provedores de Serviço Internet.
Telecomunicações.
ABSTRACT
With the growth of the number of people and organizations connected to the Internet is the increase of the necessary equipment to establish the connection of these new subscribers. The good management of the equipment in the client's facilities, or CPE, by the telecommunications companies can promote an increase in the quality of the service provided and guarantee a greater agility for the technical teams. This work aimed to develop a web system that could assist the technical area of BrasRede Telecommunictions in the management of these equipments. The developed system was named AutoCLI, and proved sufficient to assist BrasRede's technicians in the functions that he proposed to perform, such as executing scripts in CPEs for automated reconfiguration and query of information or statistics and the creation of a Dashboard with summary of the main information of these equipments. In this way, the system seeks to offer greater agility in the execution of technical operations and promote the centralization of the information of the CPEs, qualifying the services provided. Keywords: Equipment management. Internet Service Providers. Telecommunications.
LISTA DE FIGURAS
Figura 1 - O modelo TCP/IP e o modelo OSI ............................................................ 22
Figura 2 - Relação entre as camadas do modelo TCP/IP e os tipos de
endereçamento ......................................................................................................... 26
Figura 3 - Tarefas em gerenciamento de redes ........................................................ 31
Figura 4 - Definição MIB da RFC-1213 para leitura da descrição do equipamento... 34
Figura 5 - Arquitetura Modelo, Visão, Controlador .................................................... 37
Figura 6 - Retorno da leitura de sinal da OLT ........................................................... 43
Figura 7 - Retorno da leitura do endereço físico da OLT .......................................... 44
Figura 8 - Depuração do comando SNMP set ........................................................... 44
Figura 9 - Cadastro de equipamento no sistema Unimus ......................................... 50
Figura 10 - Tela de comandos em equipamentos no sistema Unimus ...................... 51
Figura 11 - Resultado da execução de comandos a partir do sistema Unimus ......... 51
Figura 12 - Tela de adição de equipamentos no UNMS ............................................ 53
Figura 13 - Tela de painel de equipamentos do UNMS ............................................. 53
Figura 14 - Tela de backup e restauração no UNMS ................................................ 54
Figura 15 - Interações entre usuário e sistema ......................................................... 64
Figura 16 - Entidades no Modelo Entidade Relacional do AutoCLI ........................... 66
Figura 17 - Processo de atendimento técnico telefônico ........................................... 68
Figura 18 - Processo de gerenciamento da CPE com o AutoCLI.............................. 69
Figura 19 - Sistemas e suas relações com a solução ............................................... 70
Figura 20 - Dados da sessão obtida de um servidor PPP ......................................... 74
Figura 21 – OID para integração de CPE com o ponto de acesso ............................ 75
Figura 22 - OID para consulta de atividade da CPE .................................................. 76
Figura 23 - OID para consulta de sinal rx da CPE ..................................................... 76
Figura 24 - OID para consulta de serial/mac da CPE ................................................ 77
Figura 25 - OID para consulta de versão de firmware da CPE.................................. 78
Figura 26 - Dashboard CPEs com as informações obtidas na integração ................ 79
Figura 27 - Exemplo de um script SSH para atualização de firmware de uma CPE
Mikrotik ...................................................................................................................... 80
Figura 28 - Exemplo de um comando SNMP get para ler a velocidade da interface
LAN de uma CPE ...................................................................................................... 81
Figura 29 - Execução de um script pela Dashboard .................................................. 82
6
Figura 30 - Agendamento para executar SNMP set nos equipamentos do ponto de
presença 1216O ........................................................................................................ 83
Figura 31 - Ação de script capturada pela depuração no equipamento .................... 83
Figura 32 - Visualização do resultado de um script agendado .................................. 84
Figura 33 - Cadastro de modelos de dispositivos...................................................... 85
Figura 34 - Cadastro de OIDs para pontos de presença ........................................... 86
Figura 35 - Resultados da primeira questão ............................................................. 89
Figura 36 - Resultados da segunda questão ............................................................. 90
Figura 37 - Resultados da terceira questão .............................................................. 91
Figura 38 - Resultados da quarta questão ................................................................ 92
Figura 39 - Resultados da quinta questão ................................................................. 92
Figura 40 - Quadro com pontos positivos destacados pelos usuários do AutoCLI .... 93
Figura 41 - Quadro com pontos negativos destacados pelos usuários do AutoCLI .. 94
Figura 42 - Quadro com as sugestões de melhoria no AutoCLI ................................ 94
7
LISTA DE QUADROS
Quadro 1 - Requisitos funcionais do sistema ............................................................ 56
Quadro 2 - Requisitos não funcionais do sistema ..................................................... 62
Quadro 3 - Exemplo de um ponto de presença extraído do ERP e armazenado na
tabela “ponto_presenca” da base de dados do AutoCLI ........................................... 71
Quadro 4 - Exemplo de um servidor PPP extraído do ERP e armazenado na tabela
“servidor_ppp” da base de dados do AutoCLI ........................................................... 72
Quadro 5 - Exemplo de uma conexão extraída do ERP e armazenado na tabela
“cpe” da base de dados do AutoCLI .......................................................................... 73
8
LISTA DE ABREVIATURAS E SIGLAS
ARPANET Advanced Research Projects Agency Network
API Application Programming Interface
CLI Command Line interface
CPE Customer Premises Equipment
CRUD Create, Read, Update and Delete
CSS Cascading Style Sheets
CSV Comma Separated Values
CTO Caixa de Terminação Óptica
DHCP Dynamic Host Configuration Protocol
ERP Enterprise Resource Planning
FTTH Fiber-to-the-Home
HTTP Hypertext Transfer Protocol
Hz Hertz
IEEE International Organization for Standardization
IP Internet Protocol
IPv4 Internet Protocol version 4
IPv6 Internet Protocol version 6
ISO International Organization for Standardization
ISP Internet Service Provider
LAN Local Area Network
9
MAC Media Access Control
MAN Metropolitan Area Network
MIB Management Information Base
MVC Model View Controller
NAT Network Address Translation
OID Object Identifier
OLT Optical Line Terminal
ONU Optical Network Unit
PPP Point to Point Protocol
PPPoE Point to Point Protocol over Ethernet
PVC Polyvinyl Chloride
SCP Secure Copy Protocol
SMI Structure of Management Information
SMTP Simple Mail Transfer Protocol
SNMP Simple Network Management Protocol
SPA Single Page Application
SQL Structured Query Language
SSH Secure Shell
TCP/IP Transmission Control Protocol/Internet Protocol
URL Uniform Resource Locator
WAN Wide Area Network
10
SUMÁRIO
1 INTRODUÇÃO ..................................................................................................... 12
1.1 Problema de pesquisa ....................................................................................... 14
1.2 Objetivos ........................................................................................................... 15
1.2.1 Objetivos específicos ...................................................................................... 15
1.3 Justificativa e relevância .................................................................................... 16
1.4 Delimitação do tema .......................................................................................... 16
1.5 Organização do trabalho ................................................................................... 17
2 REFERENCIAL TEÓRICO ................................................................................... 18
2.1 Redes de computadores ................................................................................... 18
2.1.1 Meios de transmissão..................................................................................... 18
2.1.2 Classificação de redes ................................................................................... 20
2.1.3 Modelo de referência TCP/IP ......................................................................... 21
2.1.4 Endereçamento TCP/IP .................................................................................. 25
2.1.5 Modos de acesso WAN .................................................................................. 27
2.1.6 NAT 28
2.1.7 Provedores de Serviço Internet ...................................................................... 29
2.2 Gerenciamento de redes ................................................................................... 30
2.2.1 Simple Network Management Protocol .......................................................... 33
2.2.2 Secure Shell ................................................................................................... 35
2.3 Desenvolvimento de aplicações ........................................................................ 36
2.3.1 World Wide Web ............................................................................................ 37
2.3.2 HTML, CSS e JavaScript ................................................................................ 38
3 PROCEDIMENTOS METODOLÓGICOS ............................................................. 41
3.1 Quanto aos objetivos .......................................................................................... 41
3.2 Quanto à abordagem do problema .................................................................... 42
11
3.3 Quanto aos procedimentos técnicos ................................................................. 42
3.3 Quanto a pesquisa experimental ....................................................................... 43
3.4 Método de coleta e análise de dados dos resultados ........................................ 44
3.5 Plataformas de software .................................................................................... 46
3.5.1 Python ............................................................................................................ 47
3.5.2 Django ............................................................................................................ 47
3.5.3 PostgreSQL .................................................................................................... 47
3.5.4 React .............................................................................................................. 48
4 TRABALHOS RELACIONADOS ......................................................................... 49
4.1 Unimus .............................................................................................................. 49
4.2 UNMS ................................................................................................................ 52
5 PROPOSTA E DESENVOLVIMENTO ................................................................. 55
5.1 Requisitos do sistema ....................................................................................... 55
5.2 Requisitos funcionais......................................................................................... 55
5.3 Requisitos não funcionais .................................................................................. 61
5.4 Diagrama dos casos de uso .............................................................................. 63
5.5 Representação de entidade relacionamento ..................................................... 65
5.6 Proposta projetada ............................................................................................ 66
5.7 Apresentação do desenvolvimento ................................................................... 70
6 RESULTADOS ..................................................................................................... 88
6.1 Questionário de avaliação do sistema ................................................................. 88
6.2 Respostas da avaliação do sistema .................................................................... 88
7 CONCLUSÃO ...................................................................................................... 96
REFERÊNCIAS ......................................................................................................... 98
12
1 INTRODUÇÃO
Conforme o número de usuários conectados à Internet cresce, a infraestrutura
necessária para prover este acesso também cresce e implica em novos desafios e
oportunidades para profissionais da área de TI.
A Internet é uma gigantesca rede de roteadores de pacotes, interligando milhões
de usuários com provedores de conteúdo pelo mundo. Ela segue um princípio
semelhante às estradas e cruzamentos na qual os dados são transportados pelas
redes de comunicação e direcionados por roteadores até chegarem ao destino. Está
em constante mutação, a maior parte dos usuários faz o acesso à rede através de um
Provedor de Serviços de Internet ou ISP (Internet Service Provider), os quais são
responsáveis pela criação e manutenção destas vias de comunicação, na qual
usuários domésticos, estudantes, corporações, organizações, indústrias e provedores
de conteúdo se comunicam.
De acordo com Kurose e Ross (2013), ISPs possuem redes de roteadores pelos
quais fornecem acesso à Internet aos seus clientes domésticos e corporativos. Este
acesso é provido por uma variedade de tipos de enlaces, como por exemplo cabos
coaxiais, fibras ópticas e ondas de rádio. Para cada cliente do provedor é preciso criar
um enlace usando alguma das tecnologias existentes e com o uso de um CPE
(Customer Premises Equipment), o equipamento necessário para estabelecer o
serviço de comunicação com um cliente. Para Burgess (2006), conforme esse número
de equipamentos na rede cresce, o desafio na sua administração também cresce.
Kurose e Ross (2013) explicam que o conceito de administrar a rede abrange as
esferas responsáveis por implementar, integrar e coordenar os recursos de hardware,
software e humanos da rede, assim como certificar, por meio de testes, avaliação,
monitoração e controle dos recursos que compõem a rede, que a mesma, quando em
estado operacional, satisfaça os requisitos de disponibilidade, segurança,
desempenho e qualidade, à um custo condizente.
13
Uma grande rede geralmente apresenta centenas ou milhares de equipamentos.
A configuração de cada equipamento pode variar conforme o tempo, por necessidade
ou conveniência, assim como pode possuir uma alta complexidade que pode não ser
compreendida rapidamente em situações de emergência. Seu firmware pode se tornar
obsoleto ou uma versão melhorada pode ser lançada, como também pode haver a
necessidade de alterar políticas de acesso à rede ou em sua segurança. Além disso,
o administrador da rede deve sempre estar atento a documentação e configuração
dos equipamentos que compõem a sua rede, para uma eventual reconfiguração,
manutenção ou ampliação.
Muitos equipamentos da atualidade incluem nativamente o modo de acesso HTTP
(Hypertext Transfer Protocol) para configurações e consultas, tornando a configuração
destes equipamentos mais simples e fácil durante sua instalação ou atualização, por
possuir uma interface gráfica. Entretanto, seria inviável para o administrador da rede
efetuar uma consulta, atualização ou reconfiguração em todos os dispositivos
gerenciados na rede por acesso HTTP pois é necessário executar manualmente a
operação em cada dispositivo de forma individual, naturalmente ele iria recorrer aos
protocolos SSH (Secure Shell) ou SNMP (Simple Network Management Protocol),
para criar um script que execute as operações desejadas.
A necessidade de executar reconfigurações, atualizações ou documentações em
CPEs está longe de ser incomum. Em 23 de maio de 2018, por exemplo, o grupo de
segurança Cisco Talos Intelligence (CISCO, 2018), uma das maiores equipes
especializadas na área da inteligência de ameaças, anunciou a descoberta da ameaça
VPNFilter, que é capaz de atingir uma ampla gama de roteadores e dispositivos de
rede disponibilizados comercialmente. Supondo que uma falha nas regras de firewall
em CPEs de um determinado modelo fosse descoberta, naturalmente o administrador
dessa rede procuraria investigar todos os equipamentos do mesmo modelo, para
descobrir se há mais algum com esta falha.
Então ele teria que verificar a integridade das regras de firewall em todos os
equipamentos de sua rede e efetuar a correção necessária, mas sem o uso de uma
ferramenta, sistema ou aplicativo para tal processo, ele seria obrigado a criar um
script. Não seria raro encontrar muitas CPEs desconectadas, já que muitos usuários
possuem o costume desligá-las quando não estão utilizando a conexão, o
14
administrador teria então que guardar estes equipamentos em uma lista e tentar
novamente mais tarde, e este processo acabaria se tornando ineficiente e sujeito a
falhas humanas.
A proposta deste trabalho foi desenvolver um sistema web que faça uso de
protocolos de rede para o gerenciamento de configuração de CPEs na BrasRede
Telecomunicações, um provedor de acesso à Internet de Arroio do Meio/RS.
Procurou-se com o desenvolvimento, testes e implantação deste sistema o
aprimoramento dos processos realizados na área técnica, provendo uma ferramenta
capaz de responder a demandas de reconfigurações ou consultas em massa de
milhares de equipamentos do tipo CPE presentes na rede do provedor.
A BrasRede Telecomunicações é um provedor de Internet de Arroio do Meio, Rio
Grande do Sul fundado em 2001. No início a tecnologia adotada para fornecer o
serviço a seus clientes foi a conexão discada, sendo posteriormente migrado para a
tecnologia de frequência de rádio, também chamada de conexão a rádio, sendo ela
utilizada ainda hoje pela empresa.
Entretanto, ultimamente as conexões vêm sendo gradualmente substituídas pela
tecnologia FTTH (Fiber to the Home) nas áreas urbanas, o que permite entregar altas
velocidades a um menor custo ao cliente e provendo uma maior qualidade. O fato é
que, em ambas tecnologias um equipamento denominado CPE é utilizado para
estabelecer a conexão do serviço provido, a Internet, e é preciso gerenciar todos estes
equipamentos para manter o funcionamento adequado dos serviços.
1.1 Problema de pesquisa
A CPE é o equipamento utilizado para estabelecer a conexão dos serviços da
provedora com o cliente e deve ser gerenciado em todos os aspectos pela provedora
15
pelo fato dele ser instalado em comodato, ou seja, ele é da provedora, mas está locado
nas instalações do cliente e a provedora é a única com os direitos e deveres de prestar
suporte a estes equipamentos seja por desgaste, obsolescência de software, fatores
externos ou falhas humanas. Também, a boa gerência do equipamento garante um
serviço de boa qualidade e reduz o “Churn Rate”, que é a perda de clientes ou redução
da receita final.
Provedores de Internet como a BrasRede Telecomunicações possuem um alto
número de CPEs que precisam ser gerenciadas, tarefa crítica que demanda muito
tempo das equipes técnicas e que muitas vezes envolvem processos complexos.
1.2 Objetivos
Este trabalho teve o objetivo de evoluir o modo de se fazer o gerenciamento
dos equipamentos nas instalações de clientes, tornando este processo mais
automatizado e rápido. Para tanto foi proposto o desenvolvimento de um sistema web
que auxilie o suporte técnico da BrasRede Telecomunicações a executar comandos
de reconfiguração e consulta nestes equipamentos utilizando os protocolos SSH e
SNMP, possibilitando reconfigurações específicas e em massa, complementar a
documentação com a utilização de comandos de consulta, agilizar processos do
suporte técnico com a centralização das informações e auxiliar nas manutenções
preventivas ou corretivas.
1.2.1 Objetivos específicos
1) Pesquisar, estudar e analisar os protocolos de rede SSH e SNMP;
16
2) Entender os requisitos de sistema para o desenvolvimento de um sistema web
que consiga gerenciar CPEs;
3) Aprofundar conhecimentos na linguagem de programação Python;
4) Projetar e desenvolver um sistema web que atenda aos requisitos definidos;
5) Implementar o sistema em ambiente de produção para execução de comandos
de leitura e analisar os resultados.
1.3 Justificativa e relevância
A justificativa deste trabalho se dá pela necessidade de automação no
gerenciamento das CPEs na BrasRede Telecomunicações com um sistema que
consiga atender a alta heterogeneidade de modelos e fabricantes.
Atualmente existe um software de gestão responsável pelo gerenciamento
financeiro e técnico, entretanto ele possui limitações. Ele é capaz realizar o
provisionamento de clientes e algumas operações específicas, mas não é capaz de
fornecer uma solução técnica mais personalizada para resolver os problemas
mencionados anteriormente neste trabalho.
Para o autor, agregam-se novos conhecimentos na área de desenvolvimento
de sistemas web e uso dos protocolos de rede SSH e SNMP, além de aprofundar
conhecimentos e alcançar maior maturidade técnica na área. Para a BrasRede
Telecomunicações, agrega-se uma nova solução para auxiliar e automatizar as
operações do suporte técnico e na busca do aprimoramento do serviço prestado a
seus clientes.
1.4 Delimitação do tema
17
O foco deste trabalho foi o desenvolvimento de uma solução para o
gerenciamento de CPEs baseado no modelo cliente-servidor web e disponibilizado na
Intranet da BrasRede Telecomunicações. O sistema deve ser voltado para o
gerenciamento de CPEs que possuam o recurso SNMP ou modo de acesso SSH
disponíveis.
1.5 Organização do trabalho
Este trabalho foi organizado em sete capítulos, para uma melhor apresentação.
O capítulo 1 faz uma introdução ao tema abordado neste trabalho e aponta os
principais objetivos do mesmo. O capítulo 2 apresenta a revisão bibliográfica
necessária para a compreensão do assunto. No capítulo 3 as ferramentas, métodos e
tecnologias utilizadas no desenvolvimento do trabalho pelo autor são descritas. O
capítulo 4 apresenta sistemas de outros autores que buscaram solução dos problemas
relacionados neste trabalho. Já no capítulo 5 a solução para o problema apresentado
pelo autor é apresentada. O capítulo 6 apresenta os resultados obtidos com este
trabalho. No fim, o capítulo 7 expõe as considerações finais acerca do trabalho.
18
2 REFERENCIAL TEÓRICO
Este capítulo apresenta os conceitos e embasamentos necessários para a
compreensão dos termos relacionados a este trabalho, no qual são abordados os
temas redes de computadores, gerenciamento de redes e desenvolvimento de
sistemas.
2.1 Redes de computadores
Segundo Forouzan (2008), uma rede de computadores representa um conjunto
de equipamentos e aplicações combinadas, que são capazes de compartilhar
informações. Já para Tanenbaum e Wetherall (2011), uma rede de computadores é
um conjunto de computadores que realizam trabalhos separados, mas que estão
conectados por algum meio físico, com o objetivo de trocar informações ou
compartilhar processos.
Nos próximos subcapítulos são abordados os principais conceitos relacionados
a redes de computadores e seus protocolos mais relevantes.
2.1.1 Meios de transmissão
Segundo Forouzan (2008), na tecnologia da informação um meio de
transmissão é a forma capaz de transmitir sinais pelo espaço livre, como o ar ou em
espaço confinado, como cabos. Para Kurose e Ross (2013), Forouzan (2008) e
Tanenbaum e Wetherall (2011), temos dois tipos de meios para transmissão de dados,
os meios guiados, que utilizam uma via física para interligar os equipamentos e os
meios não guiados, que emitem o sinal no ar, onde qualquer equipamento compatível
19
poderia recebê-lo. Eles relacionam entre os meios guiados o cabo de par trançado, o
cabo coaxial e a fibra óptica.
O cabo de par trançado é o meio de transmissão guiado mais popular e também
o mais barato adotado na atualidade em redes locais. Ele é um cabo composto por
pares de condutores individuais de cobre isolados por plástico e trançados entre si
para reduzir interferências eletromagnéticas dentro do cabo, levando em conta que
existem diversas variações e categorias deste cabo, alguns com diferenças no
diâmetro dos condutores, material utilizado, quantidade de tranças dos condutores e
no revestimento (KUROSE; ROSS, 2013).
Um cabo coaxial, como descrito por Tanenbaum e Wetherall (2011), é formado
por um condutor de metal, geralmente de cobre, revestido por um material isolante e
posteriormente envolto por uma malha metálica para blindagem do cabo, a malha
metálica ainda é revestida externamente por uma capa plástica protetora. Esta
composição do cabo permite uma excelente imunidade a ruídos e maiores
velocidades de transmissão de dados. Ele foi adotado por operadoras de TV a cabo e
posteriormente foi utilizado no fornecimento de acesso à Internet pelas mesmas.
O cabo de fibra óptica, de acordo com Forouzan (2008), é construído com um
núcleo de vidro ou plástico envolto em uma casca também de vidro ou plástico,
entretanto com propriedades diferentes a fim de possibilitar a transmissão do sinal de
luz. Essas duas camadas de vidro são revestidas com plástico e podem ser
aglomeradas em feixes para compor um cabo óptico, reunindo e protegendo um
conjunto de fibras ópticas com uma capa externa, geralmente composta por policloreto
de vinila (PVC) ou outro tipo de polímero.
Tanto Forouzan (2008), quanto Kurose e Ross (2013) e Tanenbaum e
Wetherall (2011) destacam as altas performances da fibra óptica, as baixas perdas
por atenuação em trajetos de longa distância, a total imunidade a interferências
eletromagnéticas e a ampla gama de aplicações que este cabo tem a oferecer em
serviços relacionados a telefonia, TV a cabo e Internet.
Entre os meios de transmissão não guiados, a onda de rádio é o meio que
utiliza uma faixa de ondas eletromagnéticas, entre 3 kHz e 1 GHz, é considerada uma
tecnologia que utiliza baixas e médias frequências. Algumas destas tecnologias
20
podem percorrer grandes distâncias através da atmosfera terrestre e são capazes de
penetrar em diversos tipos de materiais, tornando as ideais para aplicações como
telefones sem fio, emissoras de rádio e televisão (FOROUZAN, 2008).
O meio de transmissão em infravermelho, conforme Tanenbaum e Wetherall
(2011), utiliza ondas de infravermelho para comunicação de curta distância e, por
utilizar altas frequências eletromagnéticas, seus sinais não são capazes de atravessar
objetos sólidos, mas são extremamente econômicos. A aplicação mais comum na
atualidade são os controles remotos de televisão.
O meio de transmissão por micro-ondas, como explicado por Forouzan (2008),
utiliza o espectro eletromagnético com frequências de 1 a 300 GHz e necessita que
emissor e receptor estejam em visão direta um com o outro, logo obstáculos físicos
como árvores e até mesmo a curvatura da terra prejudicam o funcionamento do
enlace. É um meio bastante aplicado em telefonia celular, redes locais sem fio e redes
via satélite.
2.1.2 Classificação de redes
As redes de computadores podem ser classificadas de acordo com a
abrangência geográfica em que os equipamentos estão instalados. As classificações
mais relevantes são as redes locais, de ampla abrangência, metropolitanas e
interligadas.
Uma rede local ou LAN (Local Area Network) é a definição atribuída a redes
particulares que ocupam espaços limitados a alguns quilômetros. As LANs podem
variar de redes domésticas, onde um computador é conectado a um roteador wireless
e a uma impressora, até redes complexas que o ocupam um prédio inteiro interligando
centenas ou milhares de equipamentos, com inúmeros serviços sendo
disponibilizados simultaneamente (FOROUZAN, 2008). Tanenbaum e Wetherall
(2011) ainda salientam a popularidade das LANs sem fio IEEE 802.11, também
chamadas de redes WiFi, sistemas que utilizam uma antena com rádio modem para
21
criar o caminho físico, em vez de cabos, e são conectados a um computador, switch
ou hub para redistribuir o sinal.
Redes de ampla abrangência, redes à longa distância ou WANs (Wide Area
Network) são aquelas que viabilizam a transmissão de informações através de
extensas áreas geográficas como um país, continente ou até o mundo. Uma WAN
pode ser complexa, com inúmeros caminhos até a Internet, ou simples como a
interconexão de duas LANs em cidades distintas (FOROUZAN, 2008).
As redes metropolitanas ou MAN (Metropolitan Area Network), de acordo com
Tanenbaum e Wetherall (2011), são redes que abrangem uma área equivalente a uma
cidade, podem possuir inúmeros pontos de acesso e são geralmente administradas
por provedores de serviço.
A rede classificada como Internet atualmente é a rede composta por incontáveis
redes de diferentes abrangências, interligadas com as mais variadas tecnologias e
meios de transmissão, está em constante mudança e é mantida por inúmeras
organizações. Para um usuário de uma LAN se conectar à Internet ele precisa solicitar
os serviços de um provedor de acesso à Internet ou ISP para fazer a interligação de
sua LAN com a Internet (FOROUZAN, 2008; TANENBAUM; WETHERALL, 2011).
2.1.3 Modelo de referência TCP/IP
Percebendo a diversidade de equipamentos e softwares que são utilizados para
comunicação, a ISO (Organização Internacional para Padronização) desenvolveu o
modelo de referência OSI (Open System Interconnection), um sistema aberto para
interconexão, definido em sete camadas, que tem o objetivo de facilitar a comunicação
entre emissor e receptor, mesmo que possuam arquiteturas diferentes. O modelo OSI
não é exatamente uma arquitetura de rede, mas sim um padrão que define
responsabilidades em cada camada. Entretanto, outro modelo de camadas e
protocolos que já havia sido desenvolvido acabou se popularizando, o modelo TCP/IP.
22
Na busca de sanar os problemas durante a interligação de redes heterogêneas,
que usavam diferentes protocolos de comunicação, e para conseguir uma arquitetura
flexível que suportasse transferência de arquivos e dados de voz e vídeo em tempo
real, a ARPANET, Agência de Pesquisas em Projetos Avançados do Departamento
de Defesa dos Estados Unidos da América, desenvolveu o modelo de referência
TCP/IP, que posteriormente foi otimizado e adotado como um padrão pela
comunidade da Internet (TANENBAUM; WETHERALL, 2011).
Para Forouzan (2008), o modelo TCP/IP é um agrupamento de protocolos que
executam tarefas específicas, enquanto o modelo OSI define quais protocolos
pertencem a cada camada. Ainda de acordo com Kurose e Ross (2013), este modelo
é denominado pilha de protocolos e é definido em cinco camadas como pode ser
visualizado na Figura 1. Já para Filippetti (2014), o modelo de referência adotado na
Internet é o TCP/IP e sem ele o modelo de comunicação na Internet seria totalmente
diferente.
Figura 1 - O modelo TCP/IP e o modelo OSI
Fonte: Do autor, com base em Kurose e Ross (2013).
As cinco camadas do modelo TCP/IP e seus protocolos mais relevantes de
acordo com o assunto deste trabalho são descritos a seguir.
23
2.1.3.1 Camada de aplicação
Trata-se da camada mais alta, onde protocolos utilizados pelos usuários são
definidos. Protocolos como o HTTP que permite aos navegadores de Internet
requisitarem páginas web, SMTP (Simple Mail Transfer Protocol) para enviar
mensagens eletrônicas e FTP (File Transfer Protocol) para transferência de arquivos
(TANENBAUM; WETHERALL, 2008).
Também definido nesta camada está o DNS (Domain Name System). Imagine
que um estudante queira acessar o site da Univates, então ele abre o navegador de
Internet e digita no campo endereço o endereço IPv4 (Internet Protocol version 4) do
website da Univates, no caso 177.44.240.52. Entretanto, este endereço não é
amigável, dificilmente seria memorizado por um usuário comum e que ainda pode
mudar com o passar do tempo. Com a finalidade de converter o endereço amigável
www.univates.br no endereço IP (Internet Protocol) mencionado anteriormente, o DNS
foi desenvolvido, no qual um servidor responde a solicitações de navegadores,
converte o endereço amigável em um endereço IP e devolve ao navegador de forma
que o cliente nem tome conhecimento da tradução (KUROSE; ROSS, 2013).
2.1.3.2 Camada de transporte
É a camada responsável por entregar os dados, também denominados
segmentos, de um ponto a outro e dois tipos de transporte merecem destaque, o TCP
(Transmission Control Protocol) e UDP (User Datagram Protocol). O TCP fornece uma
conexão orientada, ou seja, garante confiabilidade na entrega e meios para controlar
o fluxo da transmissão entre emissor e receptor a fim de reduzir erros e
congestionamento. Já o UDP fornece transmissão não orientada, onde não há
confiabilidade de entrega e controle de transmissão (KUROSE; ROSS, 2014).
24
2.1.3.3 Camada de rede
Quando uma máquina deseja enviar dados para outra que não está na mesma
rede, esta é a camada responsável por realizar a transmissão destes dados,
chamados de pacotes, até o seu destino. Este processo é chamado de roteamento e
é realizado por roteadores, alguns protocolos da camada são o IPv4 (Internet Protocol
Version 4), o ICMP (Internet Control Message Protocol) e o ARP (Address Resolution
Protocol) (FILIPPETTI, 2014).
O IP (Internet Protocol) é uma forma de endereçar e entregar dados no modelo
TCP/IP, mas não garante confiabilidade, controle de fluxo ou de erros, se for
necessário um destes itens outros protocolos devem ser adotados em conjunto com
o IP.
Um endereço IP é a identificação lógica do dispositivo e atualmente existem
duas versões dele, o IPv4 e o IPv6 (Internet Protocol version 6). O IPv4 possui 32 bits
para endereçamento em formato binário, o que resulta em 4 bilhões de endereços e
está em vigência na Internet hoje, entretanto o IPv6 está sendo implementado
gradualmente pois o número de endereços IPv4 não se mostrou suficiente para
atender às demandas. Com o IPv6 há 128 bits para o endereçamento em formato
hexadecimal, o que proporciona um aumento gigantesco no número de endereços
quando comparado ao IPv4 (FOROUZAN, 2008).
2.1.3.4 Camada de enlace
Nesta camada os tipos de conectores físicos e a codificação dos sinais
conforme o meio, como por exemplo elétrico ou óptico são definidos (KUROSE;
ROSS, 2013). O Ethernet é a arquitetura de rede mais adotada atualmente na camada
de enlace, sua unidade de transmissão é o quadro e são entregados a máquina
destino com a utilização do endereço físico, também chamado de endereço MAC
(Media Access Control). Caso o destino não se encontre na mesma rede o quadro é
25
enviado ao ponto de saída da rede, ou gateway, para ser encapsulado em um pacote
da camada de rede e ser roteado até o destino pelo protocolo da camada de rede
(FILIPPETTI, 2014).
2.1.3.5 Camada física
Forouzan (2008) destaca que os meios físicos e interfaces por onde os dados
serão trafegados são definidos nesta camada, assim como suas especificações
mecânicas e elétricas. Nesta camada não são definidos protocolos específicos, sendo
ela capaz de suportar protocolos proprietários e padrões assim como deve ser capaz
de funcionar independentemente do meio de transmissão utilizado.
2.1.4 Endereçamento TCP/IP
Em uma rede que emprega o modelo TCP/IP são utilizados quatro tipos de
endereçamento: endereçamento físico, endereçamento lógico, endereçamento de
portas e endereçamento específico. Conforme ilustrado na Figura 2, cada tipo de
endereçamento está atrelado a uma ou mais camadas do modelo TCP/IP.
26
Figura 2 - Relação entre as camadas do modelo TCP/IP e os tipos de endereçamento
Fonte: Do autor, com base em Forouzan (2008).
Conforme destacado por Forouzan (2008), o formato do endereçamento físico
varia conforme a arquitetura da rede e são utilizados para o endereçamento de LANs.
Em redes baseadas na arquitetura Ethernet ele é gravado na interface de rede, tem 6
bytes de comprimento e é notado em pares hexadecimais.
Quando um computador deseja enviar uma informação a um equipamento que
não está localizado na mesma LAN é preciso utilizar o endereço lógico. O quadro,
unidade de transmissão da camada de enlace, é encapsulado em um pacote, unidade
de transmissão da camada de rede, para poder ser transmitido através de redes
distintas até chegar ao seu destino (FOROUZAN, 2008).
Suponha que um usuário envie uma mensagem para seu amigo que se
encontra em uma rede separada, o endereço físico é utilizado para o computador se
comunicar com o roteador, que é o ponto de saída para a Internet. O roteador utiliza
o endereço lógico para chegar até o roteador do amigo, que por sua vez fará o
encaminhamento das informações ao computador do amigo do mesmo.
27
A mensagem chegou até o seu destino, mas faltou uma forma de identificar o
serviço a que ela se destina, para isso o endereço de portas é utilizado, para identificar
os diferentes serviços fornecidos nas redes de computadores e permitir que um
equipamento disponibilize e consuma inúmeros serviços simultaneamente e não
apenas um. No modelo TCP/IP o endereço de porta varia entre 1 e 65.536
(FOROUZAN, 2008).
Endereços específicos são utilizados por aplicações, alguns exemplos são o
endereço de e-mail e a URL (Uniform Resource Locator) (FOROUZAN, 2008).
2.1.5 Modos de acesso WAN
Para fazer a comunicação através de uma rede de longa distância com seus
clientes, ISPs precisam adotar um protocolo para estabelecer uma comunicação com
as interfaces WAN nas CPEs dos clientes.
Uma maneira simples de estabelecer esta comunicação seria utilizando um
servidor DHCP (Dynamic Host Configuration Protocol) em que, conforme explicado
por Tanenbaum e Wetherall (2011), ao ligar a CPE, ela enviará uma solicitação na
rede usando um pacote chamado DHCP DISCOVER e que deverá atingir o servidor
DHCP da rede. O servidor então envia uma resposta por meio do pacote DHCP
OFFER, na qual está atribuído o endereço IP livre destinado ao requisitante.
Outra alternativa é o PPP (Point to Point Protocol), um protocolo de
comunicação ponto a ponto, que também oferece autenticação. Após o
estabelecimento da conexão e autenticação entre servidor e cliente, o PPP pode
transmitir múltiplos dados de diferentes protocolos pelo enlace criado (FOROUZAN,
2008).
O PPP ainda possui uma derivação, o PPPoE (Point to Point Protocol over
Ethernet), um protocolo ponto a ponto sobre uma rede com arquitetura Ethernet e que
opera em duas fases. O PPPoE possui o mesmo funcionamento que o PPP, entretanto
28
ele é encapsulado dentro de um quadro Ethernet para ser transmitido pela rede.
(FILIPPETTI, 2014).
Na primeira fase, chamada de PPPoE Discovery Stage ou Descoberta PPPoE,
o cliente PPPoE procura identificar um servidor PPPoE, também chamado de
concentrador PPPoE, para então estabelecer uma sessão. A segunda fase, chamada
de PPPoE Session Stage ou Sessão PPPoE, realiza a autenticação e configuração
do PPPoE para então poder realizar a transmissão dos dados. Cada sessão entre um
cliente e servidor PPPoE possui uma identificação única por endereço MAC e
identificador de sessão (JUNIPER, 2018).
2.1.6 NAT
Como mencionado anteriormente, o IPv4 possui um número escasso de
endereços IP porque sua identificação lógica utiliza apenas 32 bits e a solução para
este problema é a migração inteira da Internet para o IPv6. Enquanto esta tarefa não
é concluída, e ainda deve levar muitos anos, o NAT (Network Address Translation) foi
adotado como uma forma de contornar esta limitação de endereços.
Descrito na RFC 3022, um documento técnico mantido pela instituição que
regulamenta os padrões utilizados na Internet, a IETF (Internet Engineering Task
Force), foram definidos intervalos de endereços para serem utilizados internamente e
que não são comunicáveis na Internet. Estes intervalos são: de 10.0.0.0 a
10.255.255.255, de 172.16.0.0 a 172.31.255.255, de 192.168.0.0 a 192.168.255.255
(KUROSE; ROSS, 2013).
Então, qualquer endereço presente em um dos intervalos definidos acima é
considerado um endereço IP privado, qualquer tentativa dele se comunicar com a
Internet não será bem-sucedida, mas quando utilizado em uma LAN funcionará
normalmente.
A estratégia adotada pelos ISPs é fornecer um único endereço IP público para
cada um de seus clientes na interface WAN da CPE enquanto a interface LAN dele
29
distribui endereços IP privados. Quando o celular do cliente acessar um website por
exemplo, ele enviará a solicitação pelo endereço IP privado que será convertido para
o endereço IP público da interface WAN na CPE para fazer a solicitação, quando
receber a resposta será realizado o processo inverso.
Dessa forma, o cliente pode, por exemplo, ter 200 dispositivos em sua rede
utilizando endereços IP privados, mas quando se comunicarem com a Internet serão
todos identificados pelo mesmo endereço IP público (TANENBAUM; WETHERALL,
2008).
2.1.7 Provedores de Serviço Internet
Os ISPs divergem quanto a suas abrangências, podem ser classificados como
locais, regionais, nacionais e internacionais, assim como podem estar interligados
entre si para fornecer melhor desempenho e disponibilidade.
Kurose e Ross (2013) explicam que os ISPs são os responsáveis por criar as
redes de acesso, ou meios físicos que conectam o sistema final (usuário) a um
roteador primário (roteador de borda), e têm à disposição diferentes soluções para
isso.
Na Internet a cabo, de acordo com Kurose e Ross (2013), a estrutura que a
operadora utiliza para fornecer o sinal de TV a cabo também é usada para prover o
acesso à Internet, o que a tornou muito vantajosa para as operadoras em termos de
custos. Além disso, existem soluções que entregam o acesso com tecnologias que
utilizam meios não guiados como o micro-ondas, solução muito adotada em regiões
onde há uma baixa densidade de clientes e que acaba tornando soluções de acesso
por cabo pouco rentáveis.
Entretanto, nos últimos anos uma solução chamada FTTH começou a se
popularizar, neste modelo de acesso o ISP entrega uma conexão em fibra óptica até
a residência do cliente, o que permite entregar altas velocidades (FOROUZAN, 2008;
TANENBAUM; WETHERALL, 2011; KUROSE; ROSS, 2013).
30
Para estabelecer a comunicação entre os equipamentos situados no cliente e
a operadora, são utilizados equipamentos chamados de CPE (Customer Premises
Equipment). Este equipamento pode ser o modem na Internet à cabo, que converte o
sinal elétrico do cabo coaxial em sinal digital, pode ser a ONU (Optical Network Unit)
da fibra óptica que converte o sinal luminoso em sinal digital ou pode ser qualquer
outro equipamento que faça a comunicação do serviço provido.
2.2 Gerenciamento de redes
Assim como uma linha de montagem em uma fábrica, uma rede depende de
vários elementos e processos para funcionar, a falha ou atraso em algum deles pode
causar sérios problemas para seu funcionamento e seu administrador.
Conforme Burgess (2006) explica, com o passar do tempo os equipamentos
sofrem desgaste devido a inúmeras razões e tendem a sair de harmonia com outros
elementos da rede a menos que um plano de ação seja tomado para que os problemas
e erros sejam tratados pelos administradores da rede e ainda, é muito importante que
todos os administradores da rede entrem em acordo e definam estratégias e políticas
de gerenciamento em equipe também estando atentos a documentação conforme a
rede cresce ou sofre alterações.
Comer (2007) destaca que é responsabilidade do administrador da rede
detectar, corrigir e prevenir problemas que afetem o funcionamento adequado da rede,
mas este trabalho pode ser dificultado quando existe uma grande variedade de
equipamentos produzidos por fabricantes diferentes e quando a intra-rede está
distribuída em uma ampla região.
Forouzan (2008) destaca que o ato de gerenciar uma rede abrange os
processos de monitorar, testar, configurar e diagnosticar a rede com o objetivo de
atingir um determinado nível de exigências definido por uma organização que, entre
elas, podemos citar a estabilidade de operação e eficiência. Ainda segundo ele, um
sistema de gerenciamento de redes é dividido em cinco âmbitos conforme ilustrado
na Figura 3.
31
Figura 3 - Tarefas em gerenciamento de redes
Fonte: Do autor, com base em Forouzan (2018).
No gerenciamento de configuração, o estado de cada elemento e suas relações
com outros devem ser sempre conhecidos. Quando um elemento é instalado, ele
possui uma configuração inicial que pode sofrer alterações conforme o passar do
tempo e manutenções na rede podem causar a indisponibilidade de determinados
pontos se o administrador não possuir o total entendimento dela.
Para Santos et al. (2015), o gerenciamento de configuração leva em conta que
a rede está em constante mudança e o administrador deve monitorar os elementos e
suas configurações durante o período de atividade, e, quando necessário, aplicar
novas configurações, a fim de manter o funcionamento físico e lógico.
Ao adotar o gerenciamento de configuração, o administrador da rede tem o
conhecimento dos dispositivos instalados em sua rede, assim como suas
configurações e especificações de hardware. O gerenciamento de configuração ainda
pode ser dividido em duas categorias: reconfiguração e documentação (KUROSE;
ROSS, 2013).
Reconfiguração é uma ação que altera a arquitetura de rede já instalada e é
algo que pode ocorrer cotidianamente em redes de grandes proporções. Ainda
existem três subcategorias de reconfiguração que são a reconfiguração de hardware,
de software e de contas de usuários (FOROUZAN, 2008).
Forouzan (2008) destaca que a reconfiguração de hardware é o ato de efetuar
mudanças nos equipamentos físicos como por exemplo a substituição de um switch
32
ou o remanejo de um enlace de dados, consequentemente é sempre realizado
manualmente.
A atualização de firmware de um roteador ou a alteração de sua configuração
são exemplos de reconfiguração de software e podem ser efetuados de forma remota.
A adição, remoção ou edição de contas se enquadram na subcategoria reconfiguração
de contas de usuários e também podem ser realizados de forma remota (FOROUZAN,
2008).
Para Forouzan (2008) uma documentação de rede deve possuir a configuração
inicial de hardware, de software e de contas de usuários da rede assim como todas
as alterações realizadas depois. Para o hardware é recomendável documentar suas
especificações, o relacionamento físico e lógico com outros equipamentos, em forma
de desenho, e informações de compra e garantia.
Quando realizadas alterações de software é preciso documentar informações
como a descrição, data e horário das alterações, se o sistema for atualizado a sua
versão anterior e posterior assim como a licença e padrões a serem seguidos. Já
quando realizadas alterações em contas de usuários é necessário documentar
privilégios de usuários, quem autorizou a alteração na conta e demais informações
relevantes (FOROUZAN, 2008).
O gerenciamento de falhas é o processo onde o administrador detecta, corrige
e previne falhas que afetem o funcionamento normal de sua rede de computadores.
Diretamente relacionado com o gerenciamento de falhas, o gerenciamento de
desempenho trata de questões que lidam com o bom funcionamento da rede a fim de
garantir acesso rápido aos usuários e alta disponibilidade dos serviços.
O gerenciamento de segurança tem o objetivo de manter usuários ou
programas não autorizados do lado de fora da rede, isto é, sem o acesso ou utilização
da mesma. Pode por acabar envolvendo muitas outras tarefas descritas acima porque,
por exemplo, uma brecha na segurança pode causar uma falha e consequente
indisponibilidade da rede, uma questão tratada no gerenciamento de falhas, logo fica
claro que todas as áreas de gerenciamento estão diretamente relacionadas entre si.
No gerenciamento de contabilização a utilização dos recursos da rede são
33
contabilizados com diversas finalidades como, por exemplo, a cobrança pela utilização
da infraestrutura (FOROUZAN, 2008).
2.2.1 Simple Network Management Protocol
Segundo Mauro e Schmidt (2005), o SNMP (Simple Network Management
Protocol) foi desenvolvido com o intuito de permitir gerenciar os elementos da rede
por meio de um simples conjunto de operações que consultam ou alteram o estado
do elemento, seja ele um software, um equipamento físico ou virtual.
Por meio do SNMP é possível, por exemplo, verificar quanto tempo o
equipamento está ligado ou até mesmo reinicia-lo. Ainda é possível configurar ações
em decorrência de determinado evento com a utilização do recurso. Um exemplo de
trap é o envio programado de e-mail caso a interface de rede de um switch é desligada
(MAURO; SCHMIDT, 2005).
Seu funcionamento é estruturado no modelo agente e gerente, no qual um
agente é o equipamento a ser gerenciado como por exemplo um roteador, e o gerente
é o dispositivo que gerencia os agentes. Em conjunto com o SNMP, o SMI (Structure
of Management Information) é responsável pela padronização das regras, objetos e
codificação deles. Já a MIB (Management Information Base) é uma lista hierárquica
dos objetos válidos em determinado equipamento assim como o OID (Object Identifier)
destes objetos, que se trata de uma sequência numérica que identifica o objeto
existem MIBs genéricas e outros mais específicas de acordo com fabricantes do
equipamento (MAURO; SCHMIDT, 2005)
Para garantir a segurança nestas operações, são utilizadas comunidades, uma
espécie de senha em texto plano que visa garantir a confidencialidade das
informações. Versões mais recentes do protocolo SNMP oferecem métodos mais
seguros inclusive com autenticação e comunicação segura entre uma ponta a outra
(MAURO; SCHMIDT, 2005).
34
Para a correta utilização do SNMP é preciso estudar a MIB da fabricante do
equipamento em questão. Como exemplo podemos citar a MIB da RFC-1213, uma
MIB com definições genéricas e que é encorajado a todas as fabricantes
implementarem em seus equipamentos. Conforme a Figura 4, segundo a MIB RFC-
1213, a OID para ler a descrição de um equipamento genérico é 1.3.6.1.2.1.1.1.
Figura 4 - Definição MIB da RFC-1213 para leitura da descrição do equipamento
Fonte: IETF Tools (2019).
Ao utilizar a operação SNMP get é retornado apenas o resultado da OID
enviada, ao utilizar a operação SNMP getnext serão obtidos os resultados do OID
especificado assim como todos os demais abaixo na hierarquia da MIB. Para atualizar
uma configuração deve ser utilizada a operação SNMP set e passar o OID, o valor da
nova configuração e o tipo dela (MAURO; SCHMIDT, 2005). Segundo Mauro e
Schmidt (2005), desde seu lançamento o SNMP vêm sendo melhorado, abaixo estão
listadas as versões principais:
SNMPv1: é a primeira versão, sua segurança se baseia em definir uma
comunidade no modo texto não criptografado, qualquer aplicação que
souber a comunidade tem acesso ao elemento. Existem três tipos de
35
comunidade: read-only (somente leitura), read-write (leitura e escrita) e trap
(armadilha).
SNMPv2: apresentou melhorias de segurança e desempenho em relação à
versão anterior além de buscar os estados de objetos de maneira diferente.
SNMPv3: é a última versão até o momento e sua diferença é que a
segurança entre os agentes e gerentes foi drasticamente melhorada com a
inclusão de métodos de autenticação segura.
2.2.2 Secure Shell
Um CLI (Command Line Interface) permite o acesso remoto a outros hosts para
executar consultas ou configurações utilizando apenas linha de comando. Para tal, o
Telnet foi desenvolvido em 1969 e ainda continua amplamente utilizada nos dias de
hoje, entretanto ele não estabelece uma conexão segura com o outro host e faz o
envio de todas as informações em modo de texto não criptografado, incluindo senhas,
tornando o inseguro em ambientes inseguros (WENDELL ODOM, 2018).
Para Filippetti (2014), o SSH (Secure Shell) foi desenvolvido com o objetivo de
garantir a confidencialidade e confiabilidade durante acessos remotos entre hosts
quando é preciso realizar uma conexão sobre uma rede não segura como a Internet.
Com o SSH ainda é possível fazer a transferência segura de arquivos entre hosts por
SCP (Secure Copy Protocol), meio que utiliza o canal aberto pelo SSH para a
transferência dos arquivos. Ainda segundo Haeder et al. (2012), o SSH é um protocolo
cliente-servidor onde um cliente se conecta a um servidor, cria uma sessão
criptografada e se autentica no host remoto. Ele pode ser usado para executar um
único comando no host remoto assim como estabelecer um túnel em outros
protocolos.
36
2.3 Desenvolvimento de aplicações
Ao desenvolver uma aplicação, de acordo com Engholm Jr (2010), devemos
considerar como metas o aumento de produtividade, redução de custos, redução de
falhas operacionais e retorno sobre o investimento. Ainda segundo ele, se no final for
apresentado uma aplicação de baixa performance, com funcionamento
incompreensível, com resultados contestáveis ou com alto custo, todo o investimento
pode ser perdido.
No desenvolvimento de aplicações web complexas, Loudon (2010) destaca que
a programação orientada a objetos é essencial por proporcionar a modularidade da
aplicação promovendo a reutilização de componentes, o desenvolvimento sustentável
e por assegurar a confiabilidade dela. Engholm Jr (2010) ainda destaca que na
programação orientada a objetos, a aplicação é construída baseada nos objetos que
fazem parte dela, fazendo com que desenvolvedores tenham mais facilidade na hora
de administrá-las.
No padrão de arquitetura MVC (Model View Controller), um modelo que separa
a interface ou visual da aplicação da parte lógica, conforme ilustrado na Figura 5,
alterações realizadas na lógica de negócio da aplicação não influenciam na sua
interface visual e permitem que diferentes aplicativos compartilhem a mesma lógica
de negócio (ENGHOLM JR, 2010).
Assim como Loudon (2009) afirma que nesta arquitetura a aplicação é
construída em componentes formados por visões, modelos e controladores
fracamente acoplados, tornando aplicações complexas mais flexíveis na hora de
realizar alterações. Ele ainda explica que o gerenciamento dos dados é
responsabilidade dos componentes modelo, as visões controlam a apresentação dos
dados enquanto os controladores controlam as interações com a aplicação além de
interagir com modelos e visões.
37
Figura 5 - Arquitetura Modelo, Visão, Controlador
Fonte: Do autor, com base em Engholm Jr (2010).
Contudo, antes de iniciar o desenvolvimento é preciso levantar os requisitos,
tanto funcionais quanto não funcionais da aplicação. Eles devem refletir as
necessidades do usuário ao utilizar o sistema e podem ser representados por
diagramas, textos detalhados ou até partes do contrato firmado entre a empresa que
está comprando o produto e a que está desenvolvendo (SOMMERVILLE, 2011).
Segundo Pfleeger (2004), um requisito funcional descreve uma determinada
ação que ocorre no ambiente do sistema e o que ele deverá fazer em resposta, quais
informações ele deve levar em consideração na hora de armazenar em banco de
dados e quais devem ser exibidas para o usuário. Já os requisitos não funcionais,
conforme Sommerville (2011) explica, podem exprimir restrições na implementação
do sistema ou levar a criação de novos requisitos funcionais, ele também destaca que
o não atendimento de um requisito não funcional pode acarretar na inutilização do
sistema.
Nos próximos subcapítulos são abordados os principais conceitos relacionados
ao desenvolvimento de sistemas web.
2.3.1 World Wide Web
Segundo Tanenbaum e Wetherall (2011), a WWW (World Wide Web), ou
somente Web, é uma arquitetura capaz de prover o acesso a arquivos ou páginas de
conteúdo armazenados em outros computadores distribuídos pelo mundo. Estas
38
páginas, também chamadas de website, podem estar interligadas com outras
formando uma rede de páginas que acabam facilitando a disponibilização das
informações.
Um usuário normalmente utiliza um programa chamado navegador para ler
estas páginas, que é responsável por buscar a página, ler e interpretar ela para então
disponibilizá-la de forma formatada ao usuário. A página acessada pode fazer uso de
um programa para executar tarefas, utilizar um banco de dados para organizar as
informações, restringir o seu conteúdo através de autenticação e usar ferramentas
para personalizar o comportamento da página de acordo com suas necessidades.
Quando um usuário acessa uma página web com seu navegador, tanto o
servidor onde a página está hospedada quanto o cliente, no caso o navegador do
usuário, utilizam o Protocolo de Transferência de Hipertexto ou HTTP para se
comunicarem por meio da troca de mensagens.
O HTTP é responsável por padronizar as mensagens e como elas são trocadas
entre o navegador do usuário e o servidor onde a página é disponibilizada. Para tanto,
o navegador envia uma requisição HTTP para o servidor que por sua vez acaba por
responder ao cliente utilizando o mesmo protocolo (KUROSE; ROSS, 2013).
2.3.2 HTML, CSS e JavaScript
O HTML, abreviação para Hypertext Markup Language, é a linguagem de
programação base da Internet e utiliza tags, ou marcações, de elementos na
construção de páginas web. Já o CSS, abreviação para Cascading Style Sheets, é
uma linguagem para definir a aparência dos elementos de uma página web,
permitindo aos desenvolvedores darem às suas aplicações web aparências altamente
customizáveis e únicas de forma organizada e simples.
O JavaScript, assim como o HTML e o CSS, é uma linguagem de programação
voltada para o front-end da aplicação, ou seja, aquilo que faz interação com o usuário.
Com ele é possível controlar o comportamento da página, realizar alterações no
39
código HTML ou CSS a fim de alterar o visual da página sem a interação direta do
usuário além de prover inúmeras outras funcionalidades (MDN, 2018).
2.3.3 Framework para desenvolvimento
Segundo Lisboa (2009) um framework é um conjunto de ferramentas que são
a base para o desenvolvimento de códigos mais complexos. Na prática, utilizar um
framework significa que o programador está seguindo e utilizando o conhecimento de
outros programadores. Já para Soares (2009) um framework se trata de um conjunto
de componentes, funções e utilitários que ajudam os desenvolvedores com tarefas
comuns para que eles possam focar na aplicação, um exemplo de funcionalidade é
tratar a autenticação de usuários.
Quanto a necessidade de utilizar um framework, Lisboa (2009) explica que está
no fato de que as aplicações atingiram níveis de complexidades altos e que a
utilização de frameworks reduz gastos, aumentam a produção e a qualidade dos
resultados. Ainda segundo Soares (2009), um framework abstrai do programador
tarefas como criar a interface de comunicação com uma base de dados, entregando
uma interface para isso já pronta, retirando do programador tarefas básicas que
demandam muito tempo.
2.3.4 Linguagem SQL
Conforme descrito por Machado (2008), o SQL, abreviação para Structured
Query Language, é uma linguagem de comandos em bancos de dados relacionais,
permitindo a programadores e administradores de bancos de dados realizar consultas,
inserções, alterações ou exclusões de dados assim como modelar a base de dados
da aplicação de acordo com as necessidades da aplicação.
40
A linguagem SQL fornece inúmeras possibilidades aos usuários como permitir
aos usuários criarem consultas robustas sem a obrigação de criarem programas para
tal, comandos para execução de tarefas administrativas nas bases de dados,
arquitetura cliente e servidor, permite a definição da estrutura dos dados e as relações
entre eles pelos próprios usuários, oferece mecanismos de proteção contra acesso
não autorizado, compartilhamento de dados de forma concorrente, auxilia na
integridade dos dados e entre outros.
41
3 PROCEDIMENTOS METODOLÓGICOS
Será abordado neste capítulo o conjunto de ferramentas, métodos e
tecnologias utilizadas no desenvolvimento do projeto.
A proposta deste trabalho baseia-se em desenvolver um sistema web para o
gerenciamento de configuração de CPEs, fornecendo assim uma ferramenta capaz
de executar comandos de reconfiguração ou consulta em centenas ou milhares de
equipamentos de forma automatizada.
O sistema almeja contribuir com uma maior agilidade e segurança nas tarefas
pertinentes ao gerenciamento de CPEs por possibilitar a execução de comandos em
vários equipamentos de forma simultânea ainda com a possibilidade de agendamento
das mesmas e ainda pretende contribuir com informações técnicas dos equipamentos
com o uso de consultas por SNMP ou SSH.
3.1 Quanto aos objetivos
Segundo Gil (2002), a pesquisa descritiva tem por objetivo principal o
detalhamento dos atributos de um evento ou população estipulada ou a associação
entre variáveis. Prodanov e Freitas (2013) definem que a pesquisa descritiva tem
como objetivo catalogar ou relatar a respeito de ocorrências examinadas.
A pesquisa exploratória, de acordo com Gil (2002), tem como propósito fornecer
maior conhecimento sobre o tema, evidências ainda desconhecidas ou conceber
novas teorias acerca do tema. Já para o entendimento de Prodanov e Freitas (2013),
a meta da pesquisa exploratória é conferir conhecimento adicional sobre o tema
pesquisado, tornando sua resolução bem definida, permitindo a concepção de novas
teses.
Deste modo, este trabalho é considerado descritivo e exploratório por fazer um
estudo sobre o gerenciamento de CPEs e consequentemente levantar requisitos para
42
o desenvolvimento de uma solução capaz de atender as demandas ao gerir tais
equipamentos.
3.2 Quanto à abordagem do problema
Segundo Prodanov e Freitas (2013), na metodologia qualitativa o investigador
lida com a pesquisa e o âmbito do estudo interligados, tornando a atividade mais
focada no ambiente externo, tornando o resultado o menos sujeito a influência do
investigador. Ainda, segundo o autor, nela os dados coletados não são do tipo
numérico, o que torna a análise do resultado centrada na análise documental.
A abordagem utilizada neste trabalho será qualitativa pois o mesmo está
relacionado com a opinião e relato dos usuários que experimentam o sistema. O
objetivo da pesquisa é avaliar se o trabalho elaborado atende aos requisitos
levantados, para obtê-los são aplicados questionários aos dois tipos de usuários
classificados na visão do sistema, o “Operador” que corresponde ao cargo de “Suporte
N1” da empresa e o “Administrador” que corresponde ao cargo de “Suporte N3” da
empresa.
3.3 Quanto aos procedimentos técnicos
De acordo com Prodanov e Freitas (2013) a pesquisa bibliográfica é baseada
a partir de dados já divulgados, como por exemplo: livros, artigos, etc. Para tanto, é
preciso que o investigador preste atenção quanto a integridade e procedência do
material. Na concepção de Gil (2002), na pesquisa bibliográfica os subsídios mais
utilizados são os livros, que podem ser de leitura de referência, que oferecem o
conhecimento de forma ágil ou a descoberta dos livros que o contenham.
Para Gil (2002), os dados para uma pesquisa documental podem ser
encontrados em instituições públicas ou em empresas de iniciativa privada. Portanto,
43
este trabalho é caracterizado como bibliográfico e documental, propondo uma solução
baseada em estudos e análises.
3.3 Quanto a pesquisa experimental
Anterior ao desenvolvimento, foram realizados experimentos com o protocolo
de rede SNMP a fim de comprovar a capacidade do mesmo quanto aos objetivos deste
trabalho. Para isso, foram realizados experimentos utilizando um notebook com o
sistema operacional Windows 10, um roteador MikroTik RB433, uma OLT FiberHome
AN-5516-04 e duas ONUs Intelbras ONU 110. Para executar os testes a ferramenta
Paessler SNMP Tester 5.2.3 foi utilizada.
Primeiro um comando SNMP Walk foi executado na OLT FiberHome e teve
como objetivo obter o nível de sinal de recepção de qualquer ONU autenticada em
seu sistema. Conforme visualizado na Figura 6, os níveis de sinal das duas ONUs
conectadas a OLT foram lidos.
Figura 6 - Retorno da leitura de sinal da OLT
Fonte: Do autor (2018).
No segundo teste o SNMP Walk também foi executado na OLT FiberHome e
teve como objetivo obter o endereço físico das ONUs conectadas em seu sistema.
Como pode ser visto na Figura 7, novamente a leitura foi realizada com sucesso.
44
Figura 7 - Retorno da leitura do endereço físico da OLT
Fonte: Do autor (2018).
Analisando os dois resultados, é possível perceber que eles têm algo em
comum que permite identificar individualmente cada ONU no sistema da OLT
FiberHome. A sequência numérica que vem depois de cada comando SNMP Walk é
válida para usar como a identificação da ONU dentro do sistema da OLT pois se repete
para cada OID executado. Por exemplo, a ONU com endereço físico “ZNTS2cb67b0e”
possuí como última sequência numérica 39321856 no comando retornado. No
comando que retornou os níveis de sinal das ONUs é possível identificar novamente
esta sequência numérica, que nos retorna o valor "-1612". Logo, é possível identificar
que a ONU com endereço físico "ZNTS2cb67b0e" está conectada com o sinal de
recepção em -16.12 dB.
Já o terceiro teste teve como finalidade testar o SNMP set e foi executado no
roteador RB433. O OID utilizado foi o “1.3.6.1.2.1.1.5” que tem a função de renomear
a descrição da identidade do equipamento. Conforme visualizado na Figura 8, o
comando foi recebido e aceito com sucesso pelo equipamento.
Figura 8 - Depuração do comando SNMP set
Fonte: Do autor (2018).
3.4 Método de coleta e análise de dados dos resultados
45
Para realizar a coleta e análise de dados dos resultados obtidos após o
desenvolvimento do sistema e sua subsequente implantação por um período de teste
com duração de dois dias foi adotado o método de pesquisa qualitativa, na qual um
questionário é aplicado aos entrevistados com o objetivo de extrair o nível de
satisfação do mesmo. De acordo com Dalfovo, Lana e Silveira (2008), o método
qualitativo não faz o uso de estatísticas, medições ou a transformação de qualquer
informação em números e forma sua conclusão baseada em observações.
O questionário foi aplicado aos funcionários responsáveis pelas diferentes
dentro da empresa:
1. Gerente dos sistemas de rede: responsável por coordenar todos os
recursos da área técnica.
2. Coordenador de suporte interno: responsável por coordenar as
atividades do suporte interno, desde o primeiro contato com o cliente até
o agendamento de atendimentos.
3. Coordenador de suporte externo: responsável por coordenar as
atividades do suporte externo como a organização das tarefas,
atendimentos e equipes.
4. Coordenador da rede FTTH: responsável por implantar e manter os
elementos externos da rede FTTH desde aos elementos envolvidos no
backbone, equipamentos físicos como OLTs e caixas de atendimento.
5. Suporte interno: prestar o primeiro contato no atendimento aos clientes
seja por telefone, mídia social, e-mail ou presencial na empresa.
Também realiza os procedimentos remotos para resolução de
problemas e agendamento do atendimento presencial se necessário.
Foram elaboradas seis questões de avaliação escalar com valores possíveis
entre 1 e 10 assim como três questões descritivas. Dentre as questões de avaliação
em escala, na qual o avaliador pode escolher um valor entre 1 e 10 que indica a
satisfação com o sistema referente a questão apresentada, estão:
46
1. Qual a usabilidade do AutoCLI? (Em escala, o quanto é confortável utilizar
o sistema, a localização das informações é didática ou ele apresenta muitos
erros);
2. Qual a facilidade em utilizar o AutoCLI? (Em escala, qual a facilidade em
utilizar os recursos ou ferramentas que o sistema oferece);
3. Quão bem-sucedido é o sistema na realização das funções que ele se
propõe a executar? (Em escala, quanto o sistema fornece de informações
autênticas, o quanto ele realmente faz nos termos que se propôs);
4. De forma geral, quão satisfeito está com o AutoCLI? (Em escala, quanto
você considera o sistema útil no dia-a-dia);
5. Quanto o sistema pode contribuir para as atividades de gerenciamento dos
equipamentos nas instalações dos clientes da BrasRede? (Em escala,
quanto o sistema pode contribuir no cotidiano para as atividades realizadas
na BrasRede Telecomunicações);
Dentre as questões descritivas, na qual o avaliador pode conceder uma opinião
mais aberta quanto ao sistema e para que o autor possa avaliar a continuidade do
sistema e identificar possíveis melhorias, estão:
1. Quais os principais pontos positivos?
2. Quais os principais pontos negativos?
3. Que sugestões você daria? (Qual a sugestão para melhorar o sistema
desenvolvido).
3.5 Plataformas de software
Nas próximas seções, são apresentadas as principais ferramentas e
tecnologias utilizadas no desenvolvimento da solução proposta para este trabalho, e
logo na sequência os procedimentos para o desenvolvimento do sistema.
47
3.5.1 Python
A linguagem de programação Python foi escolhida pelo autor pelo fato de ela
possuir inúmeras funções já incluídas em sua biblioteca que facilitam o
desenvolvimento de aplicações voltadas para ambientes de rede assim como outras
disponibilizadas pela comunidade aberta. Somado a isso, possui uma sintaxe de
programação de fácil aprendizado, tendo o autor deste projeto iniciado este trabalho
com um conhecimento muito básico na linguagem e conseguido evoluir nela em pouco
tempo.
A versão do Python utilizada neste projeto é a 3.6.7.
3.5.2 Django
Django é um framework para desenvolvimento web em Python e HTML com
código aberto focado nos conceitos de rápido desenvolvimento, alta segurança e alta
escalabilidade. Um framework se trata de um conjunto de componentes, funções e
utilitários que ajudam os desenvolvedores com tarefas comuns para que eles possam
se focar na aplicação, um exemplo de funcionalidade é tratar autenticações ao
website.
Ele fornece muitas funcionalidades básicas já prontas como por exemplo um
completo e seguro sistema de autenticação de usuários, uma rica interface para
administradores gerenciarem o website e proteções contra ameaças como Cross Site
Request Forgery (CSRF), SQL injection e outros (Django, 2018).
A versão do Django utilizada neste projeto é a 2.1.7.
3.5.3 PostgreSQL
48
O sistema de banco de dados escolhido foi o PostgreSQL, uma poderosa
plataforma que utiliza o SQL e ainda provê mais funcionalidades a ela. Ele vem com
muitos recursos projetados para ajudar desenvolvedores a construírem suas
aplicações, a administradores protegerem a integridade dos dados e prover ambientes
anti-falhas (POSTGRESQL, 2018).
O PostgreSQL foi escolhido neste trabalho por ser a ferramenta para
armazenamento em banco de dados na qual o autor mais tem familiaridade e
conhecimento entre as disponíveis.
A versão do PostgreSQL utilizada neste projeto é a 11.2.
3.5.4 React
React é uma biblioteca JavaScript desenvolvida pelo Facebook e do tipo SPA,
Single Page Application ou Aplicação de Página Única. É altamente reativa quanto a
atualização dos dados para construir interfaces de usuários com a utilização de
componentes, o que acaba ainda permitindo a reutilização dos mesmos melhorando
a produtividade. Também opera na arquitetura Stateful, o que permite o
armazenamento e transferência dos dados através dos componentes da aplicação e
provê os métodos para manipular o ciclo de vida dos mesmos (REACT, 2018).
Sem a utilização de um framework para o desenvolvimento do visual das
páginas deste trabalho tomaria uma grande quantidade de tempo do autor, o React
foi escolhido pelo fato de o autor ter um amplo conhecimento na mesma a um tempo
considerável em comparação a outras soluções.
A versão do React utilizada neste projeto é a 16.6.1.
49
4 TRABALHOS RELACIONADOS
Neste capítulo são apresentados sistemas semelhantes ao proposto pelo autor
que realizam o gerenciamento de configuração de CPEs ou tarefas semelhantes a fim
de se obter um maior embasamento para o desenvolvimento da solução proposta
neste trabalho. Serão demonstrados as partes mais relevantes de tais sistemas e uma
breve análise quanto às funcionalidades providas.
4.1 Unimus
Lançado em 2016, o Unimus é uma solução para o gerenciamento de
configuração de equipamentos de redes focado em automatização, recuperação de
desastres e audição de alterações em configurações. A NetCore, desenvolvedora do
produto, disponibiliza uma amostra com licença limitada no site “https://unimus.net”,
que foi instalada e testada pelo autor. É uma solução estilo web service que pode ser
instalada localmente e acessada por outras máquinas através do navegador de
Internet. A solução mostrou-se bastante intuitiva e de fácil entendimento apesar de
possuir apenas o idioma inglês.
O primeiro passo é adicionar as credenciais de gerenciamento dos
equipamentos a serem gerenciados, então os equipamentos a serem gerenciados
podem ser adicionados automaticamente através da funcionalidade “Network Scan”
ou até mesmo sincronizando ele com o Zabbix, plataforma de monitoramento
desenvolvida pela Zabbix LLC. Também é possível adicionar os dispositivos
manualmente como mostrado na Figura 6 ou importá-los através de um arquivo CSV
(Comma Separeted Values) ou lista.
50
Figura 9 - Cadastro de equipamento no sistema Unimus
Fonte: Do autor (2018).
A partir daí é possível realizar o backup programado das configurações e
executar scripts customizados em horários agendados, tarefas executadas em massa
na rede com o click de alguns botões. A tela para definir comandos e sua execução
nos equipamentos pode ser conferida na Figura 7.
51
Figura 10 - Tela de comandos em equipamentos no sistema Unimus
Fonte: Do autor (2018).
Conforme determinado na tela acima, o comando enviado ao equipamento
executa uma notificação do tipo informativo no equipamento com a mensagem “Echo
do Unimus”, o resultado pode ser conferido na Figura 8.
Figura 11 - Resultado da execução de comandos a partir do sistema Unimus
Fonte: Do autor (2018).
52
De uma maneira geral a solução é simples e possui bom desempenho, contudo
ela apresentou deficiências descritas abaixo pelo autor que não viabilizam a utilização
dela de acordo com o objetivo deste trabalho.
Cadastro de CPE: o Unimus requer o cadastro manual, importação com arquivo
csv ou integração com o Zabbix. As CPEs na BrasRede são armazenadas no
seu ERP, logo seria preciso desenvolver um meio de integração entre os dois
sistemas.
Modos de acesso aos equipamentos: os únicos modos de acesso para
execução de scripts são por SSH e Telnet, ignorando o SNMP, essencial para
os equipamentos do tipo CPE.
Resposta dos scripts: o resultado retornado pelos scripts é bem simples e sem
nenhuma customização, o resultado da execução de um script que retornasse
o nível de sinal das CPEs, por exemplo, teria uma formatação e visualização
precária.
Para o gerenciamento de redes backbone o Unimus é uma ótima solução,
entretanto de maneira geral ele peca em funcionalidades mais customizáveis para
equipamentos CPE.
4.2 UNMS
Desenvolvido pela Ubiquiti Networks, o Ubiquiti Network Management System
é uma aplicação voltada para configuração, monitoramento, atualização e backup de
todos os equipamentos da rede, sejam switches, roteadores, equipamentos wireless
ou ópticos. Assim como a solução apresentada anteriormente, ela também é provida
no estilo web service e após instalada localmente em uma máquina pode ser acessada
através de navegadores de Internet de outras máquinas. A desenvolvedora da
aplicação possui um ambiente de demonstração online que foi usado para testes.
53
É possível criar áreas e adicionar a elas os clientes junto com os equipamentos
respectivos de cada um, ainda, é possível importar estes dados por meio de arquivos
CSV. Também é possível descobrir os dispositivos da sua rede por meio da
ferramenta “Discover”, que permite vasculhar a rede por faixas de endereços para
adicionar todos os equipamentos desejáveis, tal funcionalidade pode ser visualizada
na Figura 9.
Figura 12 - Tela de adição de equipamentos no UNMS
Fonte: Do autor (2018).
A aplicação mantém um painel com os equipamentos cadastrados e a partir
disso realiza diversas operações de monitoramento neles, como pode ser visto na
Figura 10.
Figura 13 - Tela de painel de equipamentos do UNMS
54
Fonte: Do autor (2018).
Em equipamentos da fabricante muitas operações são possíveis, como a
detecção e atualização de software automática, descoberta e monitoramento dos
recursos de hardware, backup e restauração de configurações. Operações básicas
como reinicialização ou operações avançadas como redirecionamento de portas
também são possíveis. Na Figura 11, o processo de backup e restauração dos
arquivos de configuração dos equipamentos pode ser visualizado.
Figura 14 - Tela de backup e restauração no UNMS
Fonte: Do autor (2018).
A aplicação encontra-se em fase BETA, ou seja, ainda está em
desenvolvimento e encontra-se incompleta. Ela apresentou deficiências descritas
abaixo pelo autor que não viabilizam a utilização dela de acordo com o objetivo deste
trabalho.
Compatibilidade: equipamentos de outras fabricantes não conseguem
aproveitar as funcionalidades que a aplicação tem a oferecer, comprometendo
a utilização plena do mesmo em ambientes com heterogeneidade de
equipamentos.
Execução de scripts: ainda não há meio disponível para executar comandos
personalizados automaticamente em todos os equipamentos, mas apenas de
forma individual.
55
5 PROPOSTA E DESENVOLVIMENTO
Neste capítulo é proposto e apresentado o sistema nomeado AutoCLI que deve
ser capaz de auxiliar no gerenciamento de configuração de CPEs na BrasRede
Telecomunicações, isto é, os equipamentos que se encontram dentro das instalações
dos clientes e que são responsáveis por estabelecer o serviço de comunicação. Foram
levadas em consideração as necessidades apresentadas pelos administradores de
redes da empresa em reuniões com a equipe da área técnica e de acordo com a
experiência do autor no assunto, que trabalha na empresa e tem a função de
administrar os sistemas de rede.
5.1 Requisitos do sistema
Antes de iniciar o desenvolvimento do sistema é preciso levantar seus
requisitos, isto é, o que e como ele deverá fazer, quais serviços ele deverá oferecer,
quais restrições ele deverá impor ou até como encontrar e registrar uma informação.
Logo, os requisitos abaixo foram levantados de acordo com as exigências e
estudos realizados pela equipe técnica da BrasRede Telecomunicações e de acordo
com o conhecimento e experiência do autor.
5.2 Requisitos funcionais
No Quadro 1 foram descritos os requisitos funcionais necessários para o
sistema.
56
Quadro 1 - Requisitos funcionais do sistema
RF0001 - Manter relação de CPEs
As informações das CPEs instaladas no sistema de rede da provedora são
vinculadas a um cadastro de conexão no ERP da empresa, o AutoCLI deve executar
uma rotina automatizada que faça a extração das informações da base de dados do
ERP, mais especificamente das tabelas “mk_conexoes” e “mk_pessoas” e grava no
banco de dados do AutoCLI os dados mais relevantes.
Os campos extraídos abaixo serão usados para compor a tabela “cpe” na
base de dados do AutoCLI:
Da tabela “mk_pessoas” deve ser extraída a seguinte informação:
1. “nome_razaosocial”: para obter a razão social do titular.
Da tabela “mk_conexoes” devem ser extraídas as seguintes informações:
1. “codconexao”: código da conexão para manter o vínculo entre os dois
sistemas.
2. “technology”: tecnologia da CPE. Os valores possíveis são listados
abaixo:
‘F’: FTTH.
‘W’: Conexão sem fio.
‘U’: Conexão a cabo.
3. “cadastrado”: data em que a conexão foi adicionada ao ERP.
4. “username”: usuário para autenticação PPP.
5. “password”: senha para autenticação PPP.
6. “senha_equipamento”: senha de acesso as configurações da CPE.
57
7. “mac_address”: endereço físico da interface em que o PPP está
configurado na CPE.
8. “codponto_acesso”: código de ligação com o ponto de presença através
da tabela “mk_pontos_acesso”.
9. “nap”: caixa de atendimento da CPE, presente apenas na tecnologia
FTTH.
10. “onu_serial”: serial da ONU, presente apenas na tecnologia FTTH.
As portas de acesso SSH e SNMP para as CPEs são definidas estaticamente
com os valores padrões para elas, 22 para SSH e 161 para SNMP.
Prioridade Complexidade Situação Versão
Alta Baixa Aprovada 1.1
RF0002 - Manter a relação dos pontos de presença
As informações dos pontos de presença da provedora são vinculadas a um
cadastro de conexão no ERP da empresa, o AutoCLI deve executar uma rotina
automatizada que faça a extração das informações da base de dados do ERP, mais
especificamente da tabela “mk_pontos_acesso” e grave no banco de dados do
AutoCLI os dados mais relevantes. Os campos extraídos abaixo serão usados para
compor a tabela “pontos_presenca” na base de dados do AutoCLI:
Da tabela “mk_pontos_acesso” devem ser extraídas as seguintes
informações:
1. “codpontoacesso”: código do ponto de presença, utilizado na interligação
com a tabela “mk_conexoes”.
2. “ssid”: nome de identificação do ponto de presença.
58
3. “remoto_ip_address”: endereço IPv4 do ponto de presença.
4. “remoto_porta_ssh”: porta utilizada para acesso SSH no ponto de
presença.
5. “snmp_porta”: porta do protocolo SNMP no ponto de presença.
6. “snmp_comunidade”: comunidade SNMP utilizada pelo ponto de
presença.
Deve ainda haver uma tela de cadastro para definir os valores de integração
para os pontos de presença. Na tela deverão ser permitidos alterar os seguintes
valores:
1. OID de integração da CPE
2. OID de atividade da CPE
3. OID de serial/mac da CPE
4. OID de sinal rx da CPE
5. OID de versão da CPE
Prioridade Complexidade Situação Versão
Alta Alta Aprovada 1.1
RF0003 - Manter relação de servidores PPP
As informações dos servidores PPP da provedora são vinculadas a um
cadastro de conexão no ERP da empresa, o AutoCLI deve executar uma rotina
automatizada que faça a extração das informações da base de dados do ERP, mais
especificamente da tabela “mk_servidores” e grave no banco de dados do AutoCLI
os dados mais relevantes. Os campos extraídos abaixo serão usados para compor
a tabela “ppp_servidor” na base de dados do AutoCLI:
59
Da tabela “mk_servidores” devem ser extraídos as seguintes informações:
1. “codservidor”: código do servidor PPP cadastrado.
2. “descricao”: nome de identificação do servidor PPP.
3. “remoto_ip_address”: endereço IPv4 do servidor PPP.
4. “remoto_porta_ssh”: porta utilizada para acesso SSH no servidor PPP.
5. “snmp_porta”: porta do protocolo SNMP no servidor PPP.
6. “snmp_comunidade”: comunidade SNMP utilizada pelo servidor PPP.
Prioridade Complexidade Situação Versão
Alta Baixa Aprovada 1.1
RF0004 - CRUD de scripts
O sistema deve manter em base de dados os scripts por haver variações na
interface de linha de comandos (CLI) dependendo do fabricante ou modelo do
equipamento. Os itens a serem considerados são listados a seguir:
Descrição
Protocolo utilizado:
Se for SNMP especificar se é GET ou SET e seu valor.
Modelo ou fabricante da CPE a qual o script é aplicável.
Se ele está disponível para execução na Dashboard.
Comando executado pelo script.
Valor do comando se ele for do tipo SNMP set.
60
Prioridade Complexidade Situação Versão
Média Baixa Aprovada 1.1
RF0005 - Agendamento de scripts
O sistema deve permitir executar os scripts em horários customizáveis ou
imediatamente. Um painel para agendamento de scripts é necessário onde é
possível escolher quando ele deve ser executado e em qual ponto de presença. A
opção “Executar até o fim” deverá indicar se o script deverá persistir até que todos
os equipamentos do ponto de presença tenham sido atingidos, sendo repetido a
cada 10 minutos com um limite total de 50 tentativas. Também deve haver a opção
para receber o resultado por e-mail, sendo então solicitado o recipiente.
Prioridade Complexidade Situação Versão
Baixa Alta Aprovada 1.1
RF0006 - Dashboard de CPEs
O sistema deve prover um painel chamado Dashboard com as informações
dos equipamentos integrados com o nome do titular a qual a CPE pertence, modelo
do equipamento, se está conectado ou não, o nível de sinal, a versão de software e
o endereço IPv4. A partir deste painel o operador poderá visualizar o histórico do
nível de sinal e executar os scripts que foram cadastrados e estão habilitados.
Prioridade Complexidade Situação Versão
Alta Alta Aprovada 1.1
RF0007 - Dashboard de CPEs
61
O sistema deve prover um painel chamado Dashboard com as informações
dos equipamentos integrados com o nome do titular a qual a CPE pertence, modelo
do equipamento, se está conectado ou não, o nível de sinal, e a versão de software
e o endereço IPv4. A partir deste painel o operador poderá visualizar o histórico do
nível de sinal e executar os scripts que foram cadastrados e estão habilitados no
sistema para aquele equipamento.
Prioridade Complexidade Situação Versão
Alta Alta Aprovada 1.1
RF0009 - Controle de acesso por usuário
O sistema deve manter um controle de acesso ao sistema por usuários
cadastrados.
Prioridade Complexidade Situação Versão
Média Média Aprovada 1.0
Fonte: Do autor (2018).
5.3 Requisitos não funcionais
Requisitos não funcionais discriminam pontos como a confiabilidade,
segurança e desempenho no sistema, elementos que não estão diretamente
relacionados com as funcionalidades do sistema, mas que podem afetá-lo de maneira
geral.
No Quadro 2 foram descritos os requisitos não funcionais necessários para o
sistema.
62
Quadro 2 - Requisitos não funcionais do sistema
RNF0001 - Interface gráfica web
O sistema deve manter seu funcionamento independente da máquina do
usuário e disponível por acesso HTTP a partir de navegadores de Internet.
Prioridade Complexidade Situação Versão
Alta Baixa Aprovada 1.0
RNF0002 - Segurança de acesso
O sistema deve impedir o acesso de indivíduos a recursos ou ferramentas
não autorizadas assim como distinguir os usuários.
Prioridade Complexidade Situação Versão
Alta Baixa Aprovada 1.0
RNF0003 - Controle de execução e falhas
O sistema deve manter o usuário informado quanto ao processamento dos
scripts, se apresentaram comportamento não esperado e o andamento dos
mesmos.
Prioridade Complexidade Situação Versão
Alta Baixa Aprovada 1.0
RNF0004 - Portabilidade mínima
63
O sistema deve ser portável para navegadores da plataforma Google Chrome
e Mozilla Firefox.
Prioridade Complexidade Situação Versão
Alta Baixa Aprovada 1.0
RNF0005 - Integração improvisada e automatizada
1. O sistema deve executar as integrações diretamente via banco de dados para
com o ERP.
2. O ERP tem função crítica e, portanto, não deve depender do AutoCLI assim
como a integração via banco dados fará uso de um usuário dedicado com
permissões apenas para leitura.
3. Considerando a grande heterogeneidade de equipamentos, a implementação
de APIs é inviável e, portanto, as integrações com os sistemas de rede devem
ocorrer de forma improvisada com uso dos protocolos SSH e SNMP.
4. As integrações com o banco de dados do ERP e outros sistemas de redes
deve ser automatizada sem a necessidade de intervenção humana.
Prioridade Complexidade Situação Versão
Alta Baixa Aprovada 1.0
Fonte: Do autor (2018).
5.4 Diagrama dos casos de uso
64
Para representar as interações dos diferentes usuários com o sistema foi
elaborado um diagrama dos casos de uso. Nele é possível identificar os dois atores
do sistema, o administrador que possui a autonomia de adicionar scripts e agendar a
sua execução e a responsabilidade de definir os OIDs necessários para o
funcionamento adequado do sistema. Já o ator operador possui apenas interação com
a tela Dashboard e tem a autonomia de executar scripts e visualizar os resultados de
forma individual para cada CPE. A Figura 12 ilustra as possíveis interações de ambos
atores com o sistema.
Figura 15 - Interações entre usuário e sistema
Fonte: Do autor (2019).
65
5.5 Representação de entidade relacionamento
Devido à complexidade de informações que serão armazenadas e criadas pela
aplicação será necessário a utilização de um banco de dados. Para um melhor
entendimento de como tais informações serão armazenadas e percepção de demais
requisitos que serão necessários foi elaborado um modelo de entidade
relacionamento onde é possível representar entidades, atributos e relacionamentos
de forma clara e objetiva.
Conforme pode ser visualizado na Figura 13, para prover todas as
funcionalidades propostas foi necessária a criação de uma base de dados para
armazenar configurações, informações extraídas do ERP assim como resultados das
integrações com os sistemas de redes. A seguir serão explicadas as tabelas que foram
criadas para o AutoCLI.
A tabela “ppp_servidor” armazena as informações dos servidores PPP que
foram extraídas do ERP assim como a tabela “ponto_presenca” foi adicionada para
manter as informações extraídas dos pontos de presença do ERP assim como as
OIDs necessárias para extração das informações de CPEs. Na tabela “cpe” são
mantidas as informações extraídas das conexões e suas respectivas CPEs
vinculadas. Para as três tabelas mencionadas acima, “ppp_servidor”,
“ponto_presenca” e “cpe” são mantidos os códigos de seus registros na base de dados
do ERP para manter a rastreabilidade e integração com a mesma.
Como o sistema de gestão no momento não armazena o modelo do dispositivo
de cada hospedeiro foi necessário criar uma tabela “modelo_dispositivo” e outra
chamada “modelo_dispositivo_serial” para fazer a identificação do equipamento
através do número serial ou endereço físico do mesmo. A tabela “cpe_registro”
armazena os resultados obtidos após a integração de um ponto de presença, que são
o nível de sinal, o endereço IPv4 e a versão de firmware do equipamento no momento
da integração.
Para permitir a execução de scripts de forma personalizada pelo administrador
a tabela “script” foi adicionada. Com ela, o usuário pode escolher qual protocolo utilizar
66
e o respectivo comando. Também é possível fazer o agendamento dele, para isso a
tabela “script_agendado” mantém as informações necessárias para tal. Após o script
ser executado, a tabela “script_agendado_resultado” é utilizada para armazenar o
retorno dos scripts.
Figura 16 - Entidades no Modelo Entidade Relacional do AutoCLI
Fonte: Do autor (2019).
5.6 Proposta projetada
Para dar mais automação, confiabilidade e segurança na operabilidade das
CPEs foi proposto o desenvolvimento de um sistema com uma interface gráfica que
permite aos gestores criarem e executarem scripts de reconfigurações, atualizações
e consultas de todas as CPEs da rede do provedor para garantir padronização,
aumento na segurança das políticas de acesso, a eliminação de processos rotineiros
67
e repetitivos, a auxiliar na documentação da rede e a manter os equipamentos com a
versão de firmware sempre atualizada, acarretando em economia de tempo dos
administradores e redução do elemento falha humana no processo de administração.
Sem o AutoCLI, para o administrador da rede executar uma rotina de
reconfiguração ou consulta com o protocolo SSH nos equipamentos do tipo CPE
instalados na rede ele precisa criar um script manual. Primeiro ele deve extrair a lista
de CPEs e suas informações principais como razão social e usuário PPP e senha de
equipamento da base de dados do ERP, através de um comando SQL ou exportação
com arquivo texto.
Com as informações das CPEs em mão, ele deve filtrar quais equipamentos se
enquadram no processo, já que cada modelo de equipamento pode interpretar os
comandos de forma distinta. Realizado a filtragem, ele deve extrair dos servidores
PPP o atual endereço IP relacionado a cada CPE e então executar o script com os
comandos desejados. As CPEs desconectadas no momento não serão contabilizadas
assim como o resultado dos comandos ficarão restritos a uma única pessoa.
Conforme pode ser visualizado na Figura 14, o processo de gerenciamento de
uma CPE é complexo por existirem vários sistemas, fabricantes e tecnologias
diferentes. Assim como muitos dos técnicos não conseguem executar nenhum
comando nos equipamentos do tipo ponto de presença pelo fato de possuírem acesso
restrito a eles devido à complexidade de operação e segurança envolvida neles.
68
Figura 17 - Processo de atendimento técnico telefônico
Fonte: Do autor (2019).
Portanto, a solução deste projeto pretende automatizar certos processos do
atendimento técnico telefônico, tal automatização pode ser conferida na Figura 15.
69
Figura 18 - Processo de gerenciamento da CPE com o AutoCLI
Fonte: Do autor (2019).
O AutoCLI deve se integrar com todos os equipamentos do sistema de redes e
com o sistema de gestão a fim de cumprir os seus objetivos. Desse modo, os dois
sistemas atuarão paralelamente em todos os sistemas da rede do provedor, o sistema
de gestão continuará a realizar a autenticação, provisionamento e documentação dos
equipamentos, mas o AutoCLI atuará nas reconfigurações e auxiliará na
documentação. Como pode ser visto na Figura 16, o AutoCLI deve se integrar com os
principais sistemas da provedora a fim de atender aos requisitos definidos.
70
Figura 19 - Sistemas e suas relações com a solução
Fonte: Do autor (2019).
5.7 Apresentação do desenvolvimento
O sistema desenvolvido executa através de rotinas programadas com intervalo
de meia hora uma integração com o software de gestão da empresa, dele são
extraídas informações pertinentes das CPEs e pontos de presença de acordo com os
requisitos definidos.
71
Para melhor entendimento prático do sistema, considere o cliente com nome
Jardel Kuhn, ele possui uma conexão cadastrada no ERP e é um usuário de internet
como qualquer outro. A primeira etapa é realizar a integração da base de dados para
integrar os pontos de acesso, servidores PPP e CPEs.
O AutoCLI através de um comando SQL obtém todos os pontos de presença
cadastrados no ERP e os armazena em uma tabela própria. No Quadro 3, o ponto de
presença da CPE registrada no cliente “Jardel Kuhn” é apresentado.
Quadro 3 - Exemplo de um ponto de presença extraído do ERP e armazenado na tabela “ponto_presenca” da base de dados do AutoCLI
Descrição Nome da coluna no
ERP
Valor
obtido
Nome da coluna no
AutoCLI
Código do ponto de
presença no ERP
codpontoacesso 626 id_erp
Descrição do ponto
de presença
ssid BRA-OLT-
01-02
descricao
Endereço IP remoto_ip_address (omitido) endereco_ipv4
Porta SSH remoto_porta_ssh (omitido) porta_ssh
Porta SNMP snmp_porta (omitido) porta_snmp
Comunidade SNMP snmp_community (omitido) comunidade_snmp
Fonte: Do autor (2019).
72
O próximo passo é obter todos os servidores PPP cadastrados no ERP e os
armazenar em uma tabela própria. No Quadro 4, um exemplo de servidor PPP é
apresentado.
Quadro 4 - Exemplo de um servidor PPP extraído do ERP e armazenado na tabela “servidor_ppp” da base de dados do AutoCLI
Descrição Nome da coluna no
ERP
Valor
obtido
Nome da coluna no
AutoCLI
Código do servidor
PPP no ERP
codservidor 5 id_erp
Endereço IP remoto_ip_address (omitido) endereco_ipv4
Porta SSH remoto_porta_ssh (omitido) porta_ssh
Porta SNMP snmp_porta (omitido) porta_snmp
Comunidade SNMP snmp_community (omitido) comunidade_snmp
Fonte: Do autor (2019).
O último passo da integração com a base de dados do ERP é obter a lista de
CPEs. Conforme pode ser visto no Quadro 5, são estas as informações da conexão
do cliente “Jardel Kuhn” que foram extraídas do ERP para montar o registro na tabela
“cpe” da base de dados do AutoCLI. Nesta etapa também, a partir das iniciais do serial
e endereço físico, o AutoCLI tenta descobrir o modelo da CPE que está instalado na
instalação do cliente.
73
Quadro 5 - Exemplo de uma conexão extraída do ERP e armazenado na tabela “cpe” da base de dados do AutoCLI
Descrição Nome da coluna no
ERP
Valor obtido Nome da coluna no
AutoCLI
Código da
conexão no ERP
codconexao 1802 id_erp
Razão social do
titular
nome_razaosocial JARDEL KUHN razasocial
Data de cadastro cadastrado 2013-10-07 data_cadastro_erp
Nome de usuário
PPP
username jardelkuhn ppp_usuario
Senha de usuário
PPP
password ngf512QWey23 ppp_senha
Senha de
equipamento
senha_equipamento j@RD&l4932 senha_acesso
Endereço físico mac_address B8:69:F4:24:16:18 mac_address
Serial onu_serial ZNTS3ffe8d52 serial
Caixa de
atendimento
onu_cto BRA-CTO-1-11-3-
1X8
cto
Código do ponto
de presença no
ERP a qual a
codponto_acesso 626 ponto_presenca_id
74
conexão está
atrelada
Fonte: Do autor (2019).
A próxima etapa é realizar a integração com os servidores PPP. Para isso é
executado um comando SSH para extrair todas as sessões ativas no momento em
cada um dos servidores PPP e formar uma lista de sessões. Para o cliente “Jardel
Kuhn” a sessão obtida pode ser visualizada na Figura 17, logo é possível identificar
no campo “address” que o endereço IP atual é 100.64.5.241 para a sessão com
usuário “jardelkuhn”, que então é cruzada com o campo “ppp_usuario” do AutoCLI
para descobrir que a CPE do cliente Jardel Kuhn está com o endereço IP
100.64.5.241.
Figura 20 - Dados da sessão obtida de um servidor PPP
Fonte: Do autor (2019).
A última etapa é a integração com os pontos de presença, que no caso do
cliente “Jardel Kuhn” é o ponto de presença “BRA-OLT-01-02”, que se trata de uma
OLT (Optical Line Terminal) modelo AN5516-04 produzida pela FiberHome e,
portanto, as CPEs são do tipo ONU. Para cada um dos OIDs de integração
especificados foram executados comandos SNMP getnext na OLT, então uma lista é
retornada para o AutoCLI.
Na lista, cada linha corresponde a uma ONU cadastrada na OLT, abaixo são
citadas pelo menos uma linha de cada uma destas listas retornadas. Todos os
75
comandos SNMP foram consultados na MIB da fabricante do equipamento deste
exemplo, no caso, FiberHome.
Para o OID de referência para a integração, foi escolhido
“1.3.6.1.4.1.5875.800.3.9.3.3.1.2” conforme visualizado na Figura 18.
Figura 21 – OID para integração de CPE com o ponto de acesso
Fonte: FIBERHOME (2019).
Os resultados serão como a linha abaixo:
1.3.6.1.4.1.5875.800.3.9.3.3.1.2.70259712 = "PON 2/6/20" [ASN_OCTET_STR]
A primeira parte da linha consiste no OID e um número aleatório que na verdade
se trata da identificação SNMP da CPE registrada na OLT. A segunda parte é o
resultado, “PON 2/6/20”, e se trata da localização da CPE dentro da OLT e varia
conforme a fabricante e o modelo do equipamento. A última parte
“[ASN_OCTET_STR]” descreve o tipo, formato e codificação do resultado, neste caso
é uma sequência de caracteres.
Deste OID, o número aleatório será usado como “snmp_id” da CPE para o
AutoCLI e será atualizado na base de dados toda vez que uma integração com o ponto
de presença for executada, também será utilizado para cruzar as informações com
outros comandos SNMP. Com a linha acima temos que a CPE da conexão do cliente
Jardel Kuhn tem o snmp_id igual a 70259712.
A Figura 19 exibe o OID para verificar a atividade da CPE, para isso foi
escolhido “1.3.6.1.4.1.5875.800.3.9.3.3.1.5”.
76
Figura 22 - OID para consulta de atividade da CPE
Fonte: FIBERHOME (2019).
Os resultados serão como a linha abaixo:
1.3.6.1.4.1.5875.800.3.9.3.4.1.5.70259712 = "1" [ASN_INTEGER]
O resultado obtido foi “1”, de acordo com a documentação da MIB o valor 1
significa “occupied”, ou seja, ocupado enquanto o valor 2 significa “empty”, ou livre.
Na prática, o valor 1 significa que o equipamento está conectado enquanto que o valor
2 indica que está desconectado. No cruzamento destas listas e linhas, o AutoCLI então
descobre pela última sequência numérica retornada na primeira parte da linha que a
CPE do Jardel Kuhn e com snmp_id igual a “70259712” está conectada.
Como visualizado na Figura 20, para a OID de sinal foi escolhido
“1.3.6.1.4.1.5875.800.3.9.3.3.1.6”.
Figura 23 - OID para consulta de sinal rx da CPE
Fonte: FIBERHOME (2019).
77
Os resultados serão como a linha abaixo:
1.3.6.1.4.1.5875.800.3.9.3.3.1.6.70259712 = "-1943" [ASN_INTEGER]
O resultado obtido foi “-1943”, o que significa que o sinal de recepção da ONU
está em -19.43 dB. Ao cruzar as informações com a ONU com snmp_id igual a
“70259712” da CPE do Jardel Kuhn, é possível descobrir que seu sinal é igual a -
19.43dB.
Para o OID de serial/mac, foi utilizado “1.3.6.1.4.1.5875.800.3.9.3.3.1.10”
conforme visualizado na Figura 21.
Figura 24 - OID para consulta de serial/mac da CPE
Fonte: FIBERHOME (2019).
Os resultados serão como a linha abaixo:
1.3.6.1.4.1.5875.800.3.10.1.1.10.70259712 = "ZNTS3ffe8d52" [ASN_OCTET_STR]
O resultado obtido foi “ZNTS3ffe8d52”, que corresponde ao serial da ONU. Ao
cruzar as informações com a ONU com snmp_id igual a “70259712” da CPE do Jardel
Kuhn, é possível descobrir que seu serial é igual a “ZNTS3ffe8d52”. Com este serial
é possível cruzar as informações com o ERP para descobrir a qual cliente pertence a
ONU, já que no cadastro de conexão de cliente do ERP é informado o serial e
endereço físico do equipamento óptico.
Já para o OID de consultar versão de firmware, conforme visualizado na Figura
22, foi escolhido “1.3.6.1.4.1.5875.800.3.9.3.3.1.12”.
78
Figura 25 - OID para consulta de versão de firmware da CPE
Fonte: FIBERHOME (2019).
Os resultados serão como a linha abaixo:
1.3.6.1.4.1.5875.800.3.10.1.1.12.70259712 = "1.0.16" [ASN_OCTET_STR]
O resultado obtido foi “1.0.16”, que corresponde a versão de firmware da ONU.
Mais uma vez, ao cruzar esta linha, o AutoCLI identifica que a CPE do Jardel Kuhn
está com a versão de firmware 1.0.16.
Executadas as operações descritas acima, o AutoCLI agora tem autonomia
para identificar de quem é a CPE conectada a determinado ponto de acesso e qual é
o endereço IP atribuído em sua interface WAN. Abaixo, a Figura 23 mostra o que o
usuário do AutoCLI visualiza como resultado das operações realizadas acima. Neste
mesmo painel é possível filtrar as CPEs de acordo com a razão social, CTO, serial e
versão do firmware além de ser possível ordenar os resultados pelos valores dos
campos razão social, serial, CTO, sinal, firmware e endereço IP.
79
Figura 26 - Dashboard CPEs com as informações obtidas na integração
Fonte: Do autor (2019).
Agora é possível identificar uma CPE através dos sistemas de uma forma
centralizada, o administrador pode criar scripts para realizar operações customizadas
nelas. É possível escolher entre os protocolos SSH e SNMP para realizar consultas
ou reconfigurações mas vale salientar que o script deve ter como alvo um modelo de
equipamento específico já que um comando pode ser interpretado de maneira
diferente em sistemas de fabricantes distintos. Ao criar scripts é possível fazer o uso
de variáveis das CPEs utilizando a marcação com o símbolo “$” no início e final do
nome da variável, as que estão disponíveis são explicadas abaixo:
$snmp_id$: é um número que identifica a CPE dentro do sistema
operacional do ponto de presença.
80
$mac_address$: é o endereço físico do equipamento.
$username$: é o usuário PPP utilizado pela CPE na autenticação.
$onu_serial$: presente apenas na tecnologia FTTH, é o serial do
equipamento óptico conhecido como ONU.
$razaosocial$: nome do titular a qual a CPE é vinculada.
Na Figura 24 há um exemplo de um script criado para realizar a atualização de
firmware de CPEs da Mikrotik, fornecemos a descrição, o modelo de dispositivo a qual
se aplica, que o script seja executado nas CPEs, se queremos habilitar a execução
do script através da Dashboard de CPEs e por final o comando SSH.
Figura 27 - Exemplo de um script SSH para atualização de firmware de uma CPE Mikrotik
Fonte: Do autor (2019).
Já a Figura 25 apresenta uma configuração para ler a velocidade da interface
LAN de CPEs do modelo ONU 110 utilizando SNMP get. Para ler esta informação o
81
comando deve ser executado no ponto de presença e o snmp id do equipamento deve
ser inserido no final do OID.
Figura 28 - Exemplo de um comando SNMP get para ler a velocidade da interface LAN de uma CPE
Fonte: Do autor (2019).
Após criado o script, ele pode ser executado através de duas formas. Conforme
mostrado na Figura 26, uma das maneiras é através do Painel de CPEs, desta forma
o usuário do AutoCLI pode executar o script de forma individual em uma única CPE
selecionada.
82
Figura 29 - Execução de um script pela Dashboard
Fonte: Do autor (2019).
Como pode ser visto na Figura 27, a segunda forma de executar um script é
através do agendamento, nela o usuário define o ponto de presença alvo junto com o
horário em que ele será executado ou marcar a opção “Execução imediata” sendo
possível receber o resultado por e-mail. A opção “Executar até o fim” sinaliza que o
script deverá persistir até que todos os equipamentos tenham sido atingidos, para isso
ele tenta repetir a execução a cada 10 minutos nos equipamentos não atingidos até
obter sucesso ou expirar o limite de 50 repetições.
83
Figura 30 - Agendamento para executar SNMP set nos equipamentos do ponto de presença 1216O
Fonte: Do autor (2019).
Através da depuração em um dos equipamentos atingidos, é possível visualizar o
resultado da ação assim como na Figura 28.
Figura 31 - Ação de script capturada pela depuração no equipamento
Fonte: Do autor (2019).
Após o script agendado ser executado, seus resultados estarão disponíveis
através de uma página como mostrado na Figura 29. Nela podemos a CPE pelo nome
do usuário PPP pelo campo “CPE username”, o endereço da CPE na hora da
execução, o código da conexão no ERP e o resultado que foi retornado como ação.
84
Figura 32 - Visualização do resultado de um script agendado
Fonte: Do autor (2019).
Uma deficiência identificada no ERP e que prejudicou o desenvolvimento deste
trabalho é não possuir a identificação do modelo ou fabricante da CPE nas instalações
do cliente. Como mencionado anteriormente, sistemas operacionais de diferentes
fabricantes interpretam os comandos geralmente de forma única, isto é, um comando
executado no sistema x não responde da mesma forma no sistema y.
Para resolver este problema foi criado um cadastro de “Modelos de
Dispositivos” visualizado na Figura 30, onde é possível adicionar modelos de
dispositivos e especificar qual o início do seu endereço físico ou serial. Nela, pode se
conferir o exemplo de que o dispositivo ONU 110 pode ter as iniciais do endereço
físico igual a “18:0D:2C” ou “58:10:8F” ou possuir o serial iniciando com as caracteres
“ZNTS” ou “ITBS”. O AutoCLI então tenta descobrir o modelo do dispositivo através
desta técnica levando em conta que a preferência pela identificação é o início do
número serial e depois o endereço físico.
85
Figura 33 - Cadastro de modelos de dispositivos
Fonte: Do autor (2019).
Outra funcionalidade desenvolvida para sanar a heterogeneidade dos
equipamentos foi a inclusão de um cadastro de OID para os pontos de presença, desta
forma cada ponto de presença possui um OID exclusivo para realizar os comandos
SNMP na integração. Na Figura 31, vemos o ponto de presença BRA-OLT-01-02 e
devemos inserir as OIDs exigidas para que a integração funcione adequadamente. As
OIDs necessárias são:
OID de integração: retorna uma lista com números inteiros correspondentes ao
SNMP ID da CPE, um código de identificação da mesma no sistema
operacional do ponto de presença.
OID de atividade: retorna uma lista de números inteiros indicando quais as
CPEs online ou offline no ponto de presença.
OID de serial/mac: retorna uma lista de strings com o serial ou endereço MAC
das CPEs autorizados no ponto de presença.
86
OID de sinal: retorna uma lista de strings com o valor do sinal das CPEs lidos
no sistema operacional do ponto de presença.
OID de versão: retorna uma lista de strings com o valor da versão do firmware
das CPEs conectadas no ponto de presença.
Ao executar as operações de SNMP get com as OIDs acima, o AutoCLI obterá
uma lista de valores para cada uma das OIDs citadas acima.
Figura 34 - Cadastro de OIDs para pontos de presença
Fonte: Do autor (2019).
87
Vale ressaltar que a integração com os servidores PPP e a base de dados do
ERP é totalmente invisível e não interativa para os usuários e foi projetada para operar
de acordo com os equipamentos instalados na BrasRede Telecomunicações. De
forma clara e resumida, a integração do AutoCLI com os outros sistemas de rede é
programado para acontecer de meia em meia hora. Com relação a integração com os
servidores PPP, na hora de executar um script em determinada CPE, o AutoCLI
novamente através de um comando SSH busca identificar a sessão mais recente
daquela CPE para tentar obter o endereço IP atual e não haver o risco de ela ter
renovado a sessão com um endereço IP diferente.
88
6 RESULTADOS
Serão apresentados neste capítulo os resultados obtidos após a
disponibilização do sistema em ambiente de produção com a utilização de um
questionário realizado com os usuários. O AutoCLI foi disponibilizado entre 10 de
junho de 2019 a 12 de junho de 2019 para cinco funcionários da área técnica da
BrasRede Telecomunicações e o acesso ao sistema foi restrito a Intranet da empresa.
Os funcionários entrevistados correspondem as respectivas funções críticas dentro da
empresa e que foram definidas no capítulo “Procedimentos Metodológicos” deste
mesmo trabalho.
6.1 Questionário de avaliação do sistema
Com o objetivo de avaliar o AutoCLI em ambiente de produção, ele foi
disponibilizado na Intranet da BrasRede Telecomunicações para o departamento
técnico. Foi elaborado então um questionário utilizando a plataforma Google Forms
para ser aplicado a funcionários com diferentes funções dentro da empresa na área
técnica. As perguntas aplicadas foram definidas no capítulo “Procedimentos
Metodológicos” e inseridas no formulário online da Google Forms.
6.2 Respostas da avaliação do sistema
A questão número um teve o objetivo de avaliar se o AutoCLI apresenta os
resultados de forma adequada, isto é, de fácil interpretação e localização. Também foi
usada para avaliar se ele é capaz de operar em CPEs instáveis, isto é, podem não
estar conectadas no momento ou podem apresentar erros de hardware ou de
software, o que poderia comprometer o funcionamento adequado do sistema pelo fato
de ele executar as operações nestes equipamentos e aguardar uma resposta.
89
Conforme os resultados apontam na Figura 32, o AutoCLI está preparado para lidar
com os possíveis erros de hardware ou software durante as funções que se propôs.
Isto deve-se ao fato de que foram implementados mecanismos de segurança na
execução das operações que impedem o travamento do sistema ou que deixem o
usuário esperando uma resposta que não terá.
Figura 35 - Resultados da primeira questão
Fonte: Do autor (2019).
Tais mecanismos de segurança são a configuração de timeout nas operações
executadas nas CPEs assim como a interpretação dos erros retornados, seja pelo
timeout ou pelo erro de conexão em si. Se o equipamento estiver desconectado, a
mensagem “CPE desconectada no momento”, por exemplo, é apresentada. Caso ela
esteja conectada mas não fornece as respostas para as operações executadas, após
o timeout expirar a mensagem “CPE não responde aos comandos” será apresentada.
No caso de erros mais genéricos as mensagens serão redirecionadas a interface do
usuário para interpretação dele, como por exemplo, erros na autenticação ou sintaxe
de comandos.
A segunda questão foi usada para determinar se o AutoCLI é intuitivo, isto é, o
usuário consegue identificar facilmente os recursos fornecidos assim como as
respostas obtidas. A Figura 33 mostra que os usuários não encontrar dificuldade na
90
utilização, em conversa informal durante a avaliação, os usuários avaliaram de
maneira positiva a tela Dashboard, na qual é possível filtrar os clientes e suas
respectivas CPEs com extrema facilidade assim como a diálogo com o detalhamento
da CPE é útil, no qual é possível consultar o histórico de sinal da CPE, executar scripts
previamente definidos e obter as repostas na hora.
Figura 36 - Resultados da segunda questão
Fonte: Do autor (2019).
A questão número três exigiu a avaliação do usuário quanto a integridade dos
resultados obtidos na execução de operações nas CPEs. Como visualizado na Figura
34, a avaliação foi bem positiva e o AutoCLI foi capaz de fornecer informações corretas
aos usuários. Durante a disponibilização dele, entretanto, ficou evidente um problema
na consistência das informações cadastradas na base de dados do ERP. Para
identificar uma CPE do tipo ONU dentro do ponto de presença, no caso a OLT, é
preciso utilizar a numeração serial do equipamento, entretanto algumas conexões não
apresentam a numeração correta ou simplesmente apresentam um valor em branco.
A numeração serial incorreta não interfere no funcionamento da conexão mas dificulta
a rastreabilidade da ONU no sistema operacional da OLT, ou seja, não se sabe a qual
conexão a ONU está vinculada. Esta inconsistência também acabou interferindo na
precisão dos resultados obtidos pelo AutoCLI, CPEs que estavam conectadas
91
acabaram consideradas desconectadas e as operações SNMP não eram bem-
sucedidas nos equipamentos.
Figura 37 - Resultados da terceira questão
Fonte: Do autor (2019).
Para mitigar ou até mesmo inibir a ocorrência de novas inconsistência foi
incluído o desenvolvimento de uma rotina para verificar a integridade da numeração
serial das conexões novas incluídas no ERP. Uma vez por dia, o AutoCLI verifica o
número serial das conexões novas do tipo FTTH, executa comandos SNMP para ler
o nível de sinal e versão do firmware do equipamento e envia os resultados por e-mail.
Além de mitigar a inconsistência da numeração serial das ONUs, a rotina também se
mostrou bastante útil para verificar a qualidade das novas instalações com base no
nível de sinal obtido. Outro problema foi encontrado nas credenciais de acesso das
CPEs, várias delas estavam com a senha ou usuário de acesso errados do ponto de
vista do ERP, necessitando uma correção manual dos técnicos.
A Figura 35 indica o nível de satisfação de maneira geral durante a utilização
do AutoCLI obtido através da questão número quatro, que acabou sendo muito
positiva. A ideia principal proposta pelo sistema e que os usuários acabaram
automaticamente descobrindo foi a de centralizar as informações em um único lugar
para ter mais agilidade e precisão nas tarefas diárias.
92
Figura 38 - Resultados da quarta questão
Fonte: Do autor (2019).
A questão número cinco serviu para os usuários poderem avaliar quanto o
AutoCLI pode contribuir nas atividades diárias executadas pelos funcionários da
BrasRede Telecomunicações, conforme pode ser visualizado na Figura 36.
Figura 39 - Resultados da quinta questão
Fonte: Do autor (2019).
93
A questão número seis exigiu que os usuários descrevessem os principais
pontos positivos do AutoCLI a fim de descobrir qual a funcionalidade que mais pode
ter agregado nas atividades diárias. Como pode ser conferido na Figura 37, a
operação para leitura de sinal das CPEs, considerada simples não era automatizada
e não havia um registro histórico dessa informação acabou sendo bem destacada
pelos usuários durante a utilização, outro ponto positivo levantado foi a centralização
das informações.
Figura 40 - Quadro com pontos positivos destacados pelos usuários do AutoCLI
Fonte: Do autor (2019).
A questão número sete deu a oportunidade para os usuários expressarem os
pontos negativos do AutoCLI e serviram para encontrar formas de corrigir possíveis
imperfeições nele. Os resultados podem ser conferidos na Figura 38 e indicam que o
sistema possui poucas imperfeições sendo que um dos pontos negativos foi a
impossibilidade de efetuar o reinício de CPEs do tipo ONU pelo AutoCLI. Tal
deficiência está na dificuldade de encontrar na documentação da fabricante o OID
para o protocolo SNMP set que é responsável pela operação e até a presente data
ainda não foi solucionado.
94
Figura 41 - Quadro com pontos negativos destacados pelos usuários do AutoCLI
Fonte: Do autor (2019).
A última questão foi usada para dar aos usuários a oportunidade de auxiliar no
aprimoramento do AutoCLI e os resultados podem ser conferidos na Figura 39.
Figura 42 - Quadro com as sugestões de melhoria no AutoCLI
Fonte: Do autor (2019).
De maneira informal também foram expressadas as necessidades de adicionar
mais operações pré-definidas no sistema como executar o reinício da CPE e adicionar
o número da porta da caixa de atendimento das CPEs com a tecnologia FTTH.
Também foram expressadas necessidades de utilizar a centralização das informações
95
para extrair indicadores da rede como por exemplo a qualidade das instalações novas,
notificação de CPEs com sinal atenuado, efetuar o disparo de notificação quando
todas as CPEs de uma caixa de atendimento na tecnologia FTTH desconectarem
simultaneamente para identificar um possível rompimento de fibra óptica e entre
outros.
96
7 CONCLUSÃO
Neste trabalho abordou-se a importância do gerenciamento de configuração
dos equipamentos responsáveis por estabelecer os serviços de comunicação nas
instalações do cliente, ou CPEs como também são chamados. Um sistema web
nomeado AutoCLI foi desenvolvido e implementado em ambiente de produção na
empresa BrasRede Telecomunicações pelo período de dois dias com o intuito de
realizar testes. Posteriormente, um questionário foi elaborado e disponibilizado para
os cinco funcionários da empresa que utilizaram o sistema responderem.
De maneira geral o AutoCLI foi muito bem avaliado e a ideia de centralizar a
gerência das CPEs em um único lugar foi bem-vinda. Com base nas avaliações e
opiniões do questionário e as realizadas informalmente, a implantação definitiva dele
vai trazer muitos benefícios para as atividades da área técnica e vai servir como um
meio de centralizar as informações, oferecendo mais agilidade e rapidez nas
atividades diárias.
Conforme os resultados apresentados, o sistema desenvolvido mostrou-se
capaz de cumprir com os objetivos apontados no capítulo um, que foram os de
aprofundar os conhecimentos do auto nos protocolos de rede SSH e SNMP e na
linguagem de programação Python, entender os requisitos de um sistema web para o
gerenciamento dos equipamentos nas instalações de clientes, o desenvolvimento e
implementação em ambiente de produção deste sistema assim como realização de
uma análise dos resultados obtidos com a aplicação de um questionário nos usuários
do sistema.
Após o período de dois dias em que o sistema ficou disponível, algumas novas
funcionalidades foram identificadas e serão desenvolvidas no futuro, entre elas estão:
Implementar uma lógica para calcular a média do sinal das CPEs do tipo
ONU por caixa de atendimento.
97
Implementar uma lógica para analisar a qualidade das novas instalações
de clientes com a tecnologia FTTH com base no sinal óptico e efetuar
uma notificação por e-mail.
Implementar uma lógica para identificar a desconexão simultânea de
clientes em uma caixa de atendimento e emitir uma notificação por e-
mail.
Identificar a atenuação do sinal óptico em CPEs com a tecnologia FTTH
e emitir uma notificação por e-mail.
Outras necessidades fora do escopo do sistema também foram identificadas e
serão analisadas para desenvolvimento, entre elas estão:
Ampliar o sistema para abranger o gerenciamento de outros
equipamentos envolvidos com os serviços oferecidos pela empresa,
entre eles estão roteadores residenciais e telefones IP.
Integrar o sistema com a central telefônica para identificação de ligações
originadas de clientes da mesma localidade em intervalos de tempo
pequenos.
Na conclusão deste trabalho, os objetivos propostos foram alcançados. O
sistema desenvolvido será implantado de forma duradoura e novas funcionalidades
serão desenvolvidas.
98
REFERÊNCIAS
BURGESS, Mark. Princípios de administração de redes e sistemas. 2. ed. Rio de
Janeiro: LTC, 2006.
CETIC. Centro Regional de Estudos para o Desenvolvimento da Sociedade da
Informação. Disponível em: <https://www.cetic.br>. Acesso em: 10 out. 2018.
CISCO. Cisco Talos Intelligence Group. Disponível em:
<https://www.talosintelligence.com>. Acesso em: 22 ago. 2018.
COMER, Douglas E. Redes de computadores e internet. 4. ed. Porto Alegre:
Bookman, 2007.
DALFOVO, Michael Samir; LANA, Rogério Adilson; SILVEIRA, Amélia; Métodos
quantitativos e qualitativos: um resgate teórico. v.2, n.4 Blumenau, 2008.
DJANGO. Getting started with Django. Disponível em:
<https://www.djangoproject.com/start>. Acesso em: 22 out. 2018.
ENGHOLM JR, Hélio. Engenharia de Software na prática. 1 ed. São Paulo: Novatec
Editora, 2010.
FACEBOOK. React. Disponível em: <https://reactjs.org>. Acesso em: 22 out. 2018.
FIBERHOME. FiberHome. Disponível em: <http://www.fiberhome.com>. Acesso em:
02 abr. 2019.
FILIPPETTI, Marco Aurélio. CCNA 5.0: guia completo de estudo. 1. ed. Florianópolis:
Visual Books, 2014.
99
FOROUZAN, Behrouz A. Comunicação de dados e redes de computadores. 4. ed.
São Paulo: McGraw-Hill, 2008.
FURUKAWA. Furukawa Electric Brasil. Disponível em: <www.furukawa.com.br>.
Acesso em: 14 maio 2017.
GIL, Carlos Antonio. Como Elaborar Projetos de Pesquisa. 4 ed. São Paulo: Atlas,
2002.
HAEDER, Adam. Certificação Linux LPI: rápido e prático. 3. ed. Rio de Janeiro:
Alta Books, 2012.
IETF Tools. IETF Tools. Disponível em: <https://tools.ietf.org>. Acesso em: 03 mai.
2019.
JUNIPER. JUNIPER NETWORKS. Disponível em: <https://www.juniper.net>. Acesso
em: 22 out. 2018.
LISBOA, Flávio Gomes da Silva. Zend Framework Componentes poderosos para
PHP. 1 ed. São Paulo: Novatec Editora, 2009.
LOUDON, Kyle. Desenvolvimento de grandes aplicações Web. 1 ed. São Paulo:
Novatec Editora, 2010.
MACHADO, Felipe Nery Rodrigues. Projeto e implementação de banco de dados.
2 ed. São Paulo: Érica, 2008.
MAURO, Douglas R.; SCHMIDT, Kevin J. Essential SNMP. 2. ed. Beijing: O'Reilly,
2005.
ODOM, Wendell. CCENT/CCNA ICND1 100-105 Official Cert Guide. 1 ed.
Indianapolis: Cisco 2018.
100
PFLEEGER, Shari Lawrence. Engenharia de software: teoria e prática. 2. ed. São
Paulo: Prentice Hall, 2004
POSTGRESQL. PostgreSQL. Disponível em: <https://www.postgresql.org>. Acesso
em: 21 out. 2018.
PRODANOV, Cleber Cristiano; FREITAS, Ernani Cesar. Metodologia do trabalho
científico: métodos e técnicas de pesquisa e do trabalho acadêmico. 2 ed. Novo
Hamburgo: Universidade Feevale 2013.
SANTOS, Mauro Tapajo; TAROUCO, Liane; BERTHOLDO, Leandro; LIMA, Francisco
Marcelo Marques; VASCONCELLOS, Vanner. Gerência de redes de computadores.
2 ed. Rio de Janeiro: Brasport, 2016.
SOARES, Walace. Crie um Framework para Sistemas Web com PHP 5 e AJAX. 1
ed. São Paulo: Érica, 2009.
TANENBAUM, Andrew S; WETHERALL, David. Redes de computadores. 5. ed. São
Paulo: Pearson Prentice Hall, 2011
UBIQUITI NETWORKS. Ubiquiti Networks. Disponível em: <https://www.ubnt.com>.
Acesso em: 01 nov. 2018.
UNIMUS. Unimus. Disponível em: <https://www.unimus.net>. Acesso em: 01 nov.
2018.
Top Related