• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
 

TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado

on

  • 482 views

 

Statistics

Views

Total Views
482
Views on SlideShare
482
Embed Views
0

Actions

Likes
0
Downloads
21
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado Document Transcript

    • UNIVERSIDADE ESTADUAL DE GOIAS UNIDADE UNIVERSITARIA DE TRINDADE MARCUS WINICIUS OLIVEIRA COSTA RAYNER MAX FERNANDES LIMAANÁLISE DE DESEMPENHO DE UM SERVIDOR PROXY VIRTUALIZADO Trindade - GO 2012
    • MARCUS WINICIUS OLIVEIRA COSTA RAYNER MAX FERNANDES LIMAANÁLISE DE DESEMPENHO DE UM SERVIDOR PROXY VIRTUALIZADO Trabalho de Conclusão de Curso apresentado como parte dos requisitos básicos para a obtenção do Título de Tecnólogo em Redes de Computadores ao Curso Superior de Tecnologia em Redes de Computadores da Universidade Estadual de Goiás. Orientador: Prof. Esp. Antônio Cruvinel Borges Neto Trindade - GO 2012
    • Costa, Marcus Winicius Oliveira; Lima, Rayner Max Fernandes Análise de Desempenho de um Servidor Proxy Virtualizado/ MarcusWinicius Oliveira Costa, Rayner Max Fernandes Lima. – Trindade: 2012. XXp. :il. Orientador Esp. Professor Antônio Cruvinel Borges Neto. Trabalho de Conclusão de Curso Superior de Tecnologia em Redes deComputadores UEG (Universidade Estadual de Goiás), Trindade, 2012. Incluibibliografia.
    • MARCUS WINICIUS OLIVEIRA COSTA RAYNER MAX FERNANDES LIMAANÁLISE DE DESEMPENHO DE UM SERVIDOR PROXY VIRTUALIZADO Trabalho submetido à Banca Examinadora como parte dos requisitos para Conclusão do Curso de Tecnologia em Redes de Computadores. BANCA EXAMINADORA: ___________________________________________ Prof. Esp. Antônio Cruvinel Borges Neto ___________________________________________ Prof. Esp. Pabllo Borges Cardoso ___________________________________________ Prof. Esp. George Mendes Marra Trindade - GO 2012
    • DEDICATÓRIAEste trabalho é dedicado aos nossos pais, que acreditaram emnós desde o início. São eles, os principais responsáveis pelaconstrução de nosso caráter. Aos nossos amigos e as pessoaspróximas a nós, que estiveram ao nosso lado, sempre àdisposição para nos ajudar e apoiar nos momentos difíceis. E porúltimo, mas não menos importante, aos nossos professores, sereshumanos formidáveis, detentores do saber e, que fizeram, fazeme farão toda a diferença em nossas vidas, tanto profissional,quanto pessoal.
    • AGRADECIMENTOSÉ de Jean Cocteau a frase: “Não sabendo que era impossível, foilá e fez”. E é com ela, que iniciamos nossos agradecimentos.Primeiramente a Deus, pois sabemos que, sem Ele, nada somose nenhuma conquista é possível. Aos nossos pais os maissinceros e profundos agradecimentos. Agradecemos também aosnossos familiares e amigos, que apoiaram e foram pacientesconosco nos momentos mais difíceis e desafiantes. Ao corpodocente e demais profissionais da UEG - Unidade Universitáriade Trindade, que nos acolheu com tanto carinho, nossoreconhecimento. Ao Professor George Marra que acompanhoude perto nossa trajetória e, em especial, ao Professor AntônioCruvinel, que não só nos orientou, mas, acreditou em nós e nesteprojeto desde o início.
    • “Que os vossos esforços desafiem as impossibilidades, lembrai-vos de que as grandes coisas do homem foram conquistadas doque parecia impossível.” Charles Chaplin
    • SUMÁRIORESUMO ................................................................................................................................................ 11ABSTRACT .............................................................................................................................................. 12LISTA DE ILUSTRAÇÃO ........................................................................................................................... 13LISTA DE TABELAS.................................................................................................................................. 15LISTA DE SÍMBOLOS E ABREVIATURAS .................................................................................................. 161 INTRODUÇÃO...................................................................................................................................... 18 1.1 Objetivo geral .............................................................................................................................. 20 1.2 Objetivos específicos ................................................................................................................... 20 1.3 Justificativa .................................................................................................................................. 21 1.4 Metodologia ................................................................................................................................ 212 FUNDAMENTAÇÃO TEÓRICA .............................................................................................................. 22 2.1 Máquina Virtual ........................................................................................................................... 22 2.1.1 Monitor de máquina virtual ................................................................................................. 23 2.1.2 Técnicas de Virtualização ..................................................................................................... 23 2.1.2.1 Virtualização Completa ................................................................................................. 23 2.1.2.2 Paravirtualização ........................................................................................................... 24 2.1.2.3 Recompilação Dinâmica ................................................................................................ 24 2.1.3 Vantagens de se utilizar a virtualização ............................................................................... 25 2.1.4 Desvantagens ....................................................................................................................... 27 2.1.5 Utilização .............................................................................................................................. 28 2.1.6 Segurança ............................................................................................................................. 28 2.1.7 Ferramenta Escolhida ........................................................................................................... 29 2.1.7.1 Diferenças entre VMware ESX e VMware ESXi ............................................................. 30 2.2 Servidor Proxy ............................................................................................................................. 31 2.2.1 Características do Servidor Proxy ......................................................................................... 31 2.2.2 Tipos de Proxy ...................................................................................................................... 32 2.2.2.1 Transparente ................................................................................................................. 32 2.2.2.2 Controlado ..................................................................................................................... 33 2.2.2.3 Proxy Transparente x Controlado.................................................................................. 33 2.2.2.3.1 Vantagens do Proxy Transparente ......................................................................... 33 2.2.2.3.2 Vantagens do Proxy Controlado ............................................................................. 34 2.2.2.4 Proxy Anônimo .............................................................................................................. 34 2.2.2.5 Proxy Reverso ................................................................................................................ 35
    • 2.2.3 Squid ..................................................................................................................................... 36 2.2.3.1 Breve história do Squid ................................................................................................. 36 2.2.3.2 Características do Squid ................................................................................................ 37 2.2.3.3 Requisitos Específicos para o Squid .............................................................................. 38 2.2.3.4 Estrutura do Squid ......................................................................................................... 38 2.2.3.4.1 Arquivo de Configuração ........................................................................................ 39 2.2.3.4.2 Restrições de acessos ............................................................................................. 39 2.2.3.4.3 Lista de Controle de Acesso ................................................................................... 39 2.2.3.4.4 Parâmetros administrativos ................................................................................... 44 2.2.4 Microsoft ISA Server ............................................................................................................. 46 2.2.5 Escolha da ferramenta ......................................................................................................... 46 2.2.6 Firewall Iptables ................................................................................................................... 46 2.3 Sistema Operacional.................................................................................................................... 48 2.3.1 Arquitetura ........................................................................................................................... 48 2.3.2 Tipos de Sistemas Operacionais ........................................................................................... 50 2.3.3 Principais finalidades de um S.O. ......................................................................................... 51 2.3.4 Red Hat Enterprise Linux 6 ................................................................................................... 54 2.4 Software de Benchmark .............................................................................................................. 57 2.4.1 Definição............................................................................................................................... 57 2.4.2 Características ...................................................................................................................... 58 2.4.3 Tipos de Benchmark ............................................................................................................. 59 2.4.4 Utilização dos Benchmarks ................................................................................................... 59 2.4.5 Estratégias do Benchmark .................................................................................................... 60 2.4.6 Erros do processo de Benchmarking .................................................................................... 61 2.4.7 Análise dos dados ................................................................................................................. 62 2.4.8 Benchmarking do Servidor Proxy ......................................................................................... 62 2.4.9 WebPolygraph ...................................................................................................................... 63 2.4.9.1 Metas da ferramenta WebPolygraph ............................................................................ 63 2.4.9.2 Visão geral sobre a arquitetura ..................................................................................... 643 INSTALAÇÃO DAS FERRAMENTAS ...................................................................................................... 66 3.1 VMware vSphere ESXi 5.0 ........................................................................................................... 66 3.1.1 Primeiros passos ................................................................................................................... 67 3.1.2 Instalando o VMware vSphere ESXi 5.0 ............................................................................... 68 3.1.3 Instalação do VMware vSphere Client ................................................................................. 74
    • 3.2 Red Hat Enterprise Linux 6 .......................................................................................................... 82 3.2.1 Instalação ............................................................................................................................. 82 3.2.2 Configuração ........................................................................................................................ 88 3.2.3 Registro do Red Hat Enterprise Linux 6 ................................................................................ 91 3.3 Squid ............................................................................................................................................ 94 3.4 WebPolygraph ............................................................................................................................. 954 ESTUDO DE CASO ............................................................................................................................... 98 4.1 Projeção do estudo de caso ........................................................................................................ 99 4.2 Maquina 1 – Servidor Proxy Nativo ............................................................................................. 99 4.3 Maquina 2 – Servidor Proxy Virtualizado .................................................................................. 107 4.4 Configuração física e lógica da Rede de Computadores ........................................................... 108 4.5 Utilizando o WebPolygraph ....................................................................................................... 112 4.6 Problemas encontrados ............................................................................................................ 124 4.7 Resultados obtidos .................................................................................................................... 1255 CONCLUSÃO ..................................................................................................................................... 1316 TRABALHOS FUTUROS ...................................................................................................................... 1337 REFERÊNCIAS BIBLIOGRÁFICAS ........................................................................................................ 134
    • 11 RESUMO A área de Tecnologia da Informação – TI, é uma das que mais têm apresentadocrescimento no mundo moderno. A informatização nos diversos setores é uma realidade quevivenciamos cotidianamente. As inúmeras economias de mercado buscam hoje umaotimização no sentido de garantir eficiência e eficácia na produção e prestação de serviço. Nointuito de garantir estes requisitos, as empresas vêm buscando a implementação de técnicas etecnologias que garantam economia de tempo e custos, melhorando assim a produtividadesem perder a qualidade dos serviços prestados. Dentre as várias técnicas e ferramentasempregadas neste sentido, está a virtualização. Com o emprego da virtualização, podem-se criar várias máquinas virtuais em umamesma máquina física, o que torna possível oferecer os mais distintos serviços, em sistemasoperacionais e servidores diferentes, de forma concomitante. Entretanto a utilização dessatécnica vem gerando uma série de discussões no que se refere ao desempenho ou ausênciadele, como é o caso da virtualização do Servidor Proxy. Este trabalho objetiva, portanto, analisar o desempenho de um Servidor ProxyVirtualizado. O conhecimento necessário para realizar esse procedimento, será adquiridoatravés de consultas e pesquisas a fontes diversas como livros, artigos, web sites, revistas eoutros. A análise se efetivará, através de ferramentas que verifiquem o tráfego da rede decomputadores, mediante a comparação dos dados obtidos, levando-se em conta, ocomportamento de um Servidor Proxy na máquina física e o desempenho do mesmo em umambiente virtualizado.Palavras-chave: Virtualização, máquina virtual, análise, Servidor Proxy, desempenho.
    • 12 ABSTRACT The area of Information Technology - IT is one of the fastest growth are presented inthe modern world. Computerization in various sectors is a reality that we experience daily.The many market economies have now sought an optimization to ensure efficiency andeffectiveness in production and service delivery. To ensure these requirements, companieshave been seeking the implementation of techniques and technologies to ensure saving timeand costs, improving productivity without losing the quality of services provided. Among thevarious techniques and tools used in this sense, is virtualization. With the use of virtualization, you can create multiple virtual machines on a singlephysical machine, which makes it possible to offer the most distinguished services in differentoperating systems and servers, concomitantly. However the use of this technique hasgenerated a lot of discussions regarding the performance or lack of it, as is the case of theProxy Server virtualization. This paper aims, therefore, to analyze the performance of a Virtualized Server Proxy.The knowledge required to perform this procedure, will be acquired through consultations andsurveys to various sources such as books, articles, web sites, magazines and other. Theanalysis become effective, using tools that check the network traffic from computers, bycomparing the data, taking into account the behavior of a proxy server on the physicalmachine and the same performance in a virtualized environment.Keywords: Virtualization, Virtual Machine, analysis, Proxy Server, performance.
    • 13 LISTA DE ILUSTRAÇÃOFIGURA: 1 – INFORMAÇÕES DE DOWNLOAD E LICENCIAMENTO .......................... 67FIGURA: 2 – ESCOLHA DO BOOT ...................................................................................... 68FIGURA: 3 – TELA DE INSTALAÇÃO DO VMWARE VSPHERE ESXI 5 ...................... 69FIGURA: 4 – CONFIRMAÇÃO DE ESCOLHA DE DISCO ................................................ 70FIGURA: 5 – DEFINIÇÃO DA SENHA DO ROOT.............................................................. 70FIGURA: 6 – TELA DE REINICIO DO SERVIDOR APÓS INSTALAÇÃO DAFERRAMENTA ....................................................................................................................... 71FIGURA: 7 – TELA DE LOGIN DO VMWARE VSPHERE ESXI 5 ................................... 72FIGURA: 8 – DEFINIÇÃO DO ENDEREÇO IP .................................................................... 73FIGURA: 9 – DEFINIÇÃO DO SERVIDOR DNS................................................................. 73FIGURA: 10 – TELA DE INÍCIO DE INSTALAÇÃO DO VMWARE VSPHERE CLIENT5.0 ............................................................................................................................................. 74FIGURA: 11 – TERMOS DE CONTRATO E LICENÇA ...................................................... 75FIGURA: 12 – ESCOLHA DA PASTA DE INSTALAÇÃO ................................................. 76FIGURA: 13 – TELA DE FINALIZAÇÃO DE INSTALAÇÃO DO VMWARE VCLIENT 76FIGURA: 14 – CONEXÃO COM O VMWARE VSPHERE ESXI 5 .................................... 77FIGURA: 15 – TELA INICIAL DO VCLIENT ...................................................................... 78FIGURA: 16 – CRIAÇÃO DE UMA MÁQUINA VIRTUAL ............................................... 78FIGURA: 17 – ESCOLHA DA VERSÃO DA MÁQUINA VIRTUAL ................................. 79FIGURA: 18 – DEFINIÇÃO DAS PLACAS DE REDE DA NOVA MÁQUINA VIRTUAL.................................................................................................................................................. 80FIGURA: 19 – FINALIZAÇÃO DA CRIAÇÃO DA NOVA MÁQUINA VIRTUAL .......... 80FIGURA: 20 – INICIANDO A MÁQUINA VIRTUAL CRIADA ......................................... 81FIGURA: 21 – TELA INICIAL DE INSTALAÇÃO DO RED HAT ENTERPRISE LINUX 6.................................................................................................................................................. 82FIGURA: 22 – ESCOLHA DO IDIOMA PADRÃO .............................................................. 83FIGURA: 23 – ESCOLHA DO NOME DA MÁQUINA ........................................................ 84FIGURA: 24 – ESCOLHA DO PARTICIONAMENTO DE DISCO ..................................... 85FIGURA: 25 – PERSONALIZAÇÃO DA INSTALAÇÃO DO RED HAT ENTERPRISELINUX 6 .................................................................................................................................. 86FIGURA: 26 – DEFINIÇÃO DE INSTALAÇÃO DOS PACOTES ADICIONAIS .............. 87FIGURA: 27 – TELA DE REINICIO DO SERVIDOR .......................................................... 87
    • 14FIGURA: 28 – REGISTRO DO RED HAT ENTERPRISE LINUX 6 ................................... 88FIGURA: 29 – CRIAÇÃO DE NOVOS USUÁRIOS ............................................................. 89FIGURA: 30 – TELA INICIAL DE LOGIN ........................................................................... 90FIGURA: 31 – REGISTRO DO RED HAT ENTERPRISE LINUX 6 ................................... 91FIGURA: 32 – LOGIN E SENHA PARA REGISTRAR O S.O. ............................................ 92FIGURA: 33 – CONCLUSÃO DO REGISTRO ..................................................................... 93FIGURA: 34 – TERMINAL CONTENDO AS INFORMAÇÕES DE INSTALAÇÃO DOSQUID 3.1 ................................................................................................................................ 94FIGURA: 35 – PÁGINA DE DOWNLOAD DO PACOTE DA FERRAMENTAWEBPOLYGRAPH ................................................................................................................. 96FIGURA: 36 – TERMINAL CONTENDO O PROCESSO DE INSTALAÇÃO DOWEBPOLYGRAPH ................................................................................................................. 97FIGURA: 37 – ESTRUTURA INICIAL ............................................................................... 109FIGURA: 38 – ESTRUTURA DESEJADA .......................................................................... 110FIGURA: 39 – ESTRUTURA OBTIDA ............................................................................... 111FIGURA: 40 – EXEMPLIFICAÇÃO DO WEBPOLYGRAPH ........................................... 123FIGURA: 41 – REPRESENTAÇÃO MÉDIA DE TEMPO DE RESPOSTA DE 1 CLIENTE................................................................................................................................................ 129FIGURA: 42 – REPRESENTAÇÃO MÉDIA DE TEMPO DE RESPOSTA DE 200CLIENTES ............................................................................................................................. 130
    • 15 LISTA DE TABELASTABELA 1 – COMPARAÇÃO ENTRE OS PRODUTOS RED HAT ENTERPRISE LINUX- RED HAT INC. ..................................................................................................................... 56TABELA 2 – RESULTADOS DO SERVIDOR PROXY NATIVO .................................... 125TABELA 3 – RESULTADOS DO SERVIDOR PROXY VIRTUALIZADO ...................... 126TABELA 4 – COMPARAÇÃO DE RESULTADOS............................................................ 127TABELA 5 – RESULTADOS DO ACESSO DE 200 CLIENTES AO SERVIDOR PROXYNATIVO................................................................................................................................. 128TABELA 6 – RESULTADOS DO ACESSO DE 200 CLIENTES AO SERVIDOR PROXYVIRTUALIZADO .................................................................................................................. 128TABELA 7 – COMPARAÇÃO DE RESULTADOS DA SIMULAÇÃO DE 200 CLIENTES................................................................................................................................................ 128
    • 16 LISTA DE SÍMBOLOS E ABREVIATURASABNT: Associação Brasileira de Normas TécnicasACL: (Access Control List) Listas de Controle de AcessoBIOS: (Basic Input/Output System) Sistema Básico de Entrada/SaídaCD: Disco CompactoCPU: (Central Processing Unit) Unidade Central de ProcessamentoDHCP: (Dynamic Host Configuration Protocol) Protocolo de configuração dinâmica de hostDNS: (Domain Name System) Sistema de Nomes de DomínioDVD: Disco Versátil DigitalFTP: (File Transfer Protocol) Protocolo de Transferência de Arquivos)GB: GigaByteGUI: (Graphical User Interface)- Interface gráfica com o usuárioHD: (Hard Disk) Disco RígidoHTTP: (HyperText Transfer Protocol) - Protocolo de Transferência de HipertextoHTTPS: (HyperText Transfer Protocol Secure) Protocolo de Transferência de HipertextoSeguroI/O: (Input/Output) Entrada/SaídaICP: (Public Key Infrastructure) Infra-estrutura de Chaves PúblicasICQ: A sigla “ICQ” é um acrônimo feito com base na pronúncia das letras em inglês: I SeekYou, que traduzido para o português: eu procuro vocêIP: (Internet Protocol) Protocolo de InternetISO: Organização Internacional para PadronizaçãoJVM: (Java Virtual Machine) Máquina Virtual JavaKB: KiloByteKDE: (K Desktop Environment) Ambiente de Desktop EspecialKVM: (Kernel-based Virtual Machine) Máquina Virtual de Kernel baseadoMB: MegaBytes
    • 17MMV: Monitor de Máquina VirtualNAT: (Network Address Translation) Tradutor de Endereços de RedeNIC: (Network Information Center) Centro de Informação de RedesNTLM: (New Technology Local Area Network Manager) Novo Gerente de Tecnologia deRede de Área LocalOSI: (Open Systems Interconnection) Sistema Aberto de InterconexãoPC: (Personal Computer) Computador PessoalPDA: (Personal Digital Assistants) Assistentes Pessoais DigitaisRAM: (Random-Access Memory) Memória de Acesso AleatórioRAS: (Reliability, Availability and Serviceability) Confiabilidade, Disponibilidade e UtilidadeS.O.: Sistema OperacionalSELinux: (Security-Enhanced Linux) Segurança Linux AprimoradaSGBDs: Sistema de Gerenciamento de Banco de DadosSMTP: (Simple Mail Transfer Protocol) Protocolo Simples de Transferência de EmailSNMP: (Simple Network Management Protocol) Protocolo simples de gestão de redeSPEC: (Standard Performance Evaluation Corporation) Corporação Padrão de Avaliação deDesempenhoSSH: Secure ShellSSL: (Security Sockets Layer) Segurança da Camada de TransporteTI: Tecnologia da InformaçãoTPC: (Transaction Processing Performance Council) Conselho de Desempenho deProcessamento de TransaçõesTSL: Segurança da Camada de Transporte.UEG: - UnU: Universidade Estadual de Goiás - Unidade UniversitáriaURL: (Uniform Resource Locator) Localizador-Padrão de RecursosVMM – (Virtual Machine Monitor) Monitor de Máquina VirtualVMM: (Virtual Machine Monitor) Monitor de Máquina VirtualVPN: (Virtual Private Network) Rede Privativa Virtual
    • 18 1 INTRODUÇÃO A evolução tecnológica aliada ao aumento da utilização da internet vem obrigando asempresas a se adequarem a um novo contexto no que se refere à área da informática: anecessidade de maquinas cada vez mais potente. Naturalmente, os servidores utilizados nasempresas, necessitam a cada dia, de maior poder de processamento, memória, espaço e outrosrequisitos, que os faça cada vez mais eficientes, capacitando assim as empresas a atuarem emum mercado altamente competitivo. De acordo com MIGUEL (2009), em seu artigo, publicado no site Tecnologia doGlobo, intitulado “O que é um servidor, um servidor dedicado e um mainframe?”, umservidor pode ser entendido como um sistema ou equipamento que disponibiliza serviçosespecíficos à outras máquinas na rede de computadores. Uma das principais funções de um servidor é centralizar o acesso a estes serviços,tornando uma informação disponível em um maior tempo possível, em vários lugaresdiferentes, de maneira segura e íntegra. Em contrapartida ao uso deste tipo de equipamento, as empresas, na maioria dos casos,tem como meta, oferecer o mesmo serviço, com a menor despesa possível. Embora os custosatuais dos equipamentos necessários aos servidores terem diminuindo, se comparado háalguns anos atrás, as controvérsias do lucro e gastos, acabam levando estas mesmas empresasa adotarem medidas específicas no intuito de resolverem este tipo de questão. Dentre as medidas adotadas para aumentar a disponibilidade lógica, diminuindo oscustos físicos, está a virtualização. Segundo LAUREANO (2006), o conceito de máquinavirtual não é novo. Suas origens remetem ao início da história dos computadores, no final dosanos 50 e inicio dos anos 60. A virtualização pode ser definida, como a capacidade de repartirdiferentes estações lógicas ou virtuais em uma mesma máquina hospedeira, com isso épossível instalar diferentes Sistemas Operacionais em uma mesma máquina física, estandoestes funcionando ao mesmo tempo e paralelamente. “Virtualizar virou sinônimo de abstraire, portanto, praticamente tudo que tem um conceito de abstração leva virtualização em seunome” (SCHAFFER, 2008). Todas essas máquinas virtuais são gerenciados por um midlleware, uma camadamediana que fica entre o sistema nativo e o hardware. Esta camada, que também é conhecidacomo Hypervisor, MMV - Monitor de Máquina Virtual - ou VMM – Virtual MachineMonitor-, tem o controle sobre os recursos do hardware e permite criar várias maquinasvirtuais sobre uma maquina real (LAUREANO, 2006, p. 19).
    • 19 A virtualização traz uma série de vantagens sólidas. Dentre elas podemos destacar aredução do consumo de energia, facilidade para exercícios de teste e desenvolvimento, maiorsegurança e disponibilidade, melhor aproveitamento do espaço físico e do hardware,flexibilidade para migrar ambientes dentre outras importantes características, o que acabampor fazer com que esta tecnologia caminhe a passos largos. Com o processo acima citado, as empresas podem implantar um ou mais servidoresem uma mesma máquina, satisfazendo assim o seu objetivo de redução de custos, além demaximizar o uso das máquinas físicas, diminuir a ociosidade do servidor e reduzir gastos cominfraestrutura, refrigeração e energia, vantagens descritas por MOREIRA (2008). Paraexemplificar, em um mesmo computador, pode-se implantar um Servidor de Fax e umServidor de Impressão virtualizados em um Servidor Web devido a pouca demanda deexecução que estes exigem do hardware. Mas este procedimento, de virtualização demáquinas, acabou por gerar algumas discussões a respeito do desempenho dos servidores,principalmente devido às limitações que este tipo de técnica possui. A virtualização de umServidor Proxy, é um tópico importante dessas discussões. Um Servidor Proxy nada mais é do que um computador que fica localizado na rede decomputadores, entre o usuário e a Internet, e que segundo MARCELO (2006), pode serutilizado para armazenar um cache das páginas Web, controlar e registrar o acesso do usuárioà Internet, além de providenciar anonimato e também bloquear o acesso a determinados sites. Este tipo de servidor atua da seguinte maneira: um cliente ou usuário conecta-se a umServidor Proxy, requisitando um serviço - como uma conexão, um arquivo, entre outros - oservidor avalia a solicitação e a atende de acordo com as políticas estabelecidas. Dentre asvantagens de se utilizar esse Servidor podemos citar: o aumento na velocidade de resposta deuma requisição feita por um cliente e economia de banda larga, pois, com o cachearmazenado, o servidor não precisará buscar todas as informações novamente na Internet,sendo necessária apenas uma atualização das informações locais (MARCELO, 2006). A maior problemática gerada sobre esse conceito e a virtualização deste tipo deserviço está na perda de desempenho. Isto porque uma máquina virtual, de acordo comLAUREANO (2008, p. 34), não possui o mesmo desempenho que uma máquina nativadevido à introdução de uma camada extra de software, além de que um simples gargalo nessacamada extra ou até mesmo na máquina física pode atrapalhar o normal funcionamento damáquina virtual.
    • 20 Até o presente momento, não constatamos um estudo aprofundado visando umasolução para a problemática apresentada, sendo assim, será proposto, neste trabalho, a criaçãode um Servidor Proxy que funcionará em uma máquina virtualizada para que possamos fazera análise de desempenho do mesmo. A análise dos resultados pode vir a ser, uma contribuiçãoa aos profissionais da área de Tecnologia da Informação, como tecnólogos e administradoresde rede, no que se refere à comprovação ou não da provável perda de desempenho de umServidor Proxy virtualizado.1.1 Objetivo geral Realizar um estudo sobre o desempenho de um Servidor Proxy Virtualizado através daanálise de desempenho do mesmo na rede de computadores.1.2 Objetivos específicos - Compreender os conceitos de máquina virtual, Servidor Proxy e análise dedesempenho das redes de computadores bem como a usabilidade dos mesmos; - Elencar se comprovado for, as vantagens existentes para as empresas em virtualizarum servidor; - Elucidar os benefícios do Servidor Proxy; - Montar um ambiente virtualizado visando o estudo de caso; - Analisar e quantificar o desempenho do serviço Proxy em uma máquina nativa e emuma máquina virtual; - Oferecer um material de apoio a acadêmicos e a profissionais de redes decomputadores.
    • 211.3 Justificativa Na atualidade, o crescimento das redes de computadores é sempre colocado emquestionamento. É comum nos depararmos com empresas que pretendem ter um excelenteparque tecnológico e oferecerem os mais diferentes tipos de serviços, e mesmo não dispondode um gasto excessivo, acabam por atingir esses objetivos, após se depararem com algumassoluções, como é o caso da virtualização. Quando uma empresa possui um grande número de servidores físicos, a virtualização ébem aceita, apesar de trazer consigo problemas antes não existentes, como por exemplo, anecessidade de um maior monitoramento nestes equipamentos, tanto física quantologicamente, haja vista que, um mesmo equipamento, oferece dois ou até mais serviços. Outroexemplo são os servidores que não podem trabalhar compartilhando os mesmos recursos, poisnecessitam de um alto poder de processamento, armazenamento, largura de banda, memóriaentre outros recursos. Além desses exemplos, existe um em particular, em torno do qual muitose especula, mas sem comprovação ate o momento, que é a não virtualização do ServidorProxy devido a uma possível perda de desempenho. Devido ao contexto desta questão de não se virtualizar um Servidor Proxy devido adiminuição do desempenho, justifica-se a criação do ambiente virtualizado para análise dedesempenho da máquina nativa, da máquina virtual e da rede de computadores, ou seja, oestudo de caso a fim de que, tenhamos elementos concretos que subsidiem nossas conclusõesa cerca da problemática exposta. Ao término deste projeto, pretende-se esclarecer,compreender, e/ou comprovar, a questão sobre a perda de desempenho de um Servidor Proxyvirtualizado é real ou não.1.4 Metodologia A metodologia adotada para a realização deste Trabalho de Conclusão de Curso constade parte teórica fundamentada em pesquisas de livros, artigos, revistas, jornais, vídeos epáginas web e outra parte prática, visando gerar novos conhecimentos e o êxito do projeto,para tanto será explorado, além dos itens citados, um estudo de caso real. O estudo de casoreal será feito com base na implantação, pelos próprios acadêmicos, de um Servidor Proxy emuma máquina virtualizada, no intuito de analisar o desempenho deste serviço na rede decomputadores e assim através de elementos concretos comprovar a perda ou não dodesempenho supracitado.
    • 22 2 FUNDAMENTAÇÃO TEÓRICA2.1 Máquina Virtual Um dos primeiros conceitos de máquina virtual foi elaborado pela IBM. Segundo esteconceito, uma máquina virtual era considerada como uma cópia isolada de um sistema físico,sendo que esta cópia estaria totalmente protegida. Em uma perspectiva mais atual, comoafirma LAUREANO (2006, p. 17), esta definição pode ser entendida como “uma duplicataeficiente e isolada de uma máquina real”. No pensar de SILVA (2011), máquina virtual podeser considerada como um software que simula todas as condições de um computador real. Emsuma, máquinas virtuais são programas que permitem que em uma mesma máquina, sejamexecutadas simultaneamente dois ou mais ambientes distintos e isolados, no qual trabalhamexatamente iguais a uma máquina física sendo controladas por um monitor de máquinavirtual. A definição de máquina virtual não é um conceito recente, pois sua origem se remeteao final da década de 50 e inicio de 1960. Inicialmente, elas foram criadas com o intuito deconcentrar todos os sistemas disponíveis em um só computador, sendo que cada maquinavirtual tinha as mesmas configurações da máquina física. Na década de 1980, a virtualização perdeu importância com a popularização deplataformas de hardware baratas, como o computador pessoal, pois se apresentava a um customenor, tornando simples o fornecimento de um computador completo a cada usuário do queinvestir em sistemas de grande porte, caros e complexos. “Além disso, o hardware do PCtinha desempenho modesto e não provia suporte adequado à virtualização, o que inibiu o usode ambientes virtuais nessas plataformas.” (LAUREANO; MAZEIRO 2006, p. 139).
    • 232.1.1 Monitor de máquina virtual Segundo LAUREANO (2006, p. 19) uma máquina virtual é um ambiente criado porum monitor de máquina virtual (Virtual Machine Monitor – VMM), também denominado“sistema operacional para sistemas operacionais”. O monitor de máquina virtual - MMV ouVirtual Machine Monitor – VMM pode ser entendido como uma camada de softwareintroduzida entre o hardware e as máquinas virtuais, cuja finalidade é abstrair a máquinavirtual do sistema operacional visitante. Essa camada realiza uma interface entre os sistemasvirtualizados e o hardware que é compartilhado por eles, sendo assim responsável pelogerenciamento de todas as estruturas de hardware, fornecendo então, um ambiente completono qual os sistemas virtualizados irão funcionar. Na computação o VMM também é conhecido como Hypervisor, uma plataforma devirtualização, que possibilita a execução simultânea, porém independente de vários sistemasoperacionais em um único hardware. Existem duas maneiras distintas de atuação doHypervisor para realizar a virtualização: monitor nativo e monitor convidado.2.1.2 Técnicas de Virtualização Para o processo de virtualização podemos utilizar métodos, sendo que os maisutilizados são a virtualização completa, paravirtualização e recompilação dinâmica. De ummodo geral vale destacar o que diz WILLIAMS e GARCIA (2007) que, para criar partiçõesvirtuais em um servidor, uma fina camada de software chamada de Virtual Machine Monitor(VMM), é executado diretamente sobre a plataforma do hardware físico. Sendo que um oumais sistemas operacionais hospedeiros podem executar as aplicações sobre do VMM.2.1.2.1 Virtualização Completa O método da virtualização completa, é utilizado para que qualquer software possa serexecutado sem alterações. Para isso um software de baixo nível é executado diretamente sobreo hardware, carregado no computador antes de qualquer sistema operacional. Esta simulaçãorepresenta o conjunto de instruções do processador, a memória principal, interrupções,exceções e acesso aos diversos dispositivos existentes. Um ponto que deve ser consideradorelevante, é que este tipo de virtualização, precisa de um hardware com característicasespecíficas, para que seja possível atender instruções de execução privilegiada. Esse método
    • 24de simulação é realizado com maior eficácia, pois não necessita representar os estados deexecução do hardware.2.1.2.2 Paravirtualização O segundo método é chamado de paravirtualização, no qual a máquina virtual éexecutada sobre um sistema operacional nativo, sendo reconhecido apenas como um processo.Na paravirtualização o sistema que será virtualizado sofre algumas alterações no kernel paragarantir a eficácia na interação com o monitor de máquinas virtuais. Apesar de se perder emportabilidade devido a essas alterações, ele tem permissão de acessar diretamente os recursosdo hardware, sendo que esse acesso é monitorado pelo monitor de máquinas virtuais, quefornece ao sistema convidado, os limites do sistema. A paravirtualização reduz a complexidade existente no desenvolvimento de máquinasvirtuais. Como afirma LAUREANO - 2006, historicamente os processadores não suportam avirtualização nativa, sendo que a principal razão para utilizar a paravirtualização é odesempenho obtido, que compensa as modificações que deverão ser implementadas nossistemas convidados Entre os softwares que realizam a paravirtualização, citamos como citarexemplos o VMware Workstation, Virtual Box, Microsoft Virtual Server, Xen.2.1.2.3 Recompilação Dinâmica A técnica da Recompilação Dinâmica, também recebe o nome de tradução dinâmica eseu funcionamento se faz, traduzindo durante a execução de um programa, as instruções deum formato para outro. Segundo (LAUREANO, 2006) com a compilação durante a execução,o sistema pode adequar o código gerado de forma a refletir o ambiente original do programa,onde informações que normalmente não estão disponíveis para um compilador estáticotradicional são exploradas, para que o código gerado seja mais eficiente. Uma de suas aplicações pode ser notada em compiladores JIT (just-in-time), quetraduzem de uma linguagem Bytecode para o código nativo da CPU onde o compiladorexecuta-o. A recompilação segue determinados passos:  Primeiro: O código binário é escaneado para que seja identificada uma sequência de bits correspondentes à seção de código do programa em execução.
    • 25  Segundo: Os bits agrupados anteriormente são divididos em instruções, juntamente com os parâmetros delas.  Terceiro: As instruções são transformadas para uma representação mais próxima do sistema operacional Host.  Quarto: Um código em uma linguagem de alto nível é gerado a partir da representação anterior, sendo que esse código que é compilado e reescrito na linguagem nativa.  Quinto: Temos uma sequência de bits agora executáveis no sistema operacional Host. O VMWare Workstation utiliza essa técnica, recompilando apenas parte do código, uma vez que boa parte dele pode executar nativamente (a arquitetura de hardware subjacente é a mesma da VM). No VMWare Workstation apenas instruções que não podem ser executadas diretamente são recompiladas. Um exemplo desse tipo de técnica é a JVM (Java Virtual Machine), uma máquinavirtual desenvolvida especialmente para aplicações Java, sendo esta capaz de carregar eexecutar aplicativos, convertendo os Bytecodes em um código executável.2.1.3 Vantagens de se utilizar a virtualização A virtualização traz consigo uma larga escala de vantagens, dentre as quais poderão sercitadas:  Segurança: Cada máquina virtual é isolada das demais devido à estrutura da camada de software do Hypervisor, portanto, a vulnerabilidade de um sistema que opera em uma máquina virtual não afeta as outras máquinas virtuais. Segundo MATTOS (2008), através das máquinas virtuais pode ser definido quais são os melhores ambientes para executar cada serviço, com diferentes ferramentas, requerimentos de segurança e até sistemas operacionais.
    • 26  Manutenção de Equipamentos: A manutenção é facilitada, pois os serviços estarão centralizados em uma mesma maquina física, também sendo possível espelhar a máquina virtual a fim de realizar manutenções de hardware, o que se traduz na não paralisação dos serviços.  Redução de Gastos: Procurando cada vez mais manter o mesmo nível de serviço com menor custo, as empresas encontraram na virtualização um modo de economizar com gastos de equipamentos, espaço físico, refrigeração, entre outros. De acordo com MATTOS (2008), essa redução pode variar de 29% até 64%.  Confiança e Disponibilidade: Como as máquinas virtuais funcionam independentes umas das outras, se ocorrerem falhas de software, estas não prejudicarão os demais serviços das outras máquinas virtuais.  Escalabilidade: Todas as máquinas virtuais estão encapsuladas no VMM, possibilitando assim a mudança da plataforma de configuração da máquina virtual para aumentar ou diminuir seu desempenho, de acordo com as necessidades.  Suporte a aplicações legadas: Caso ocorram mudanças de sistema operacional em uma empresa, a virtualização pode ser utilizada com a finalidade de manter vários tipos de sistemas operacionais em um mesmo hardware, ou seja, “é possível manter o sistema operacional antigo sendo executado em uma máquina virtual, o que reduz os custos com a migração” (MATTOS, 2008).  Tecnologia Verde: A virtualização já deixou de ser uma tendência e se tornou no mundo corporativo, trazendo inúmeras vantagens a todos já que, pela economia de recursos e equipamentos, também se trata de uma tecnologia verde. E conforme WILLIAMS e GARCIA (2007), a virtualização juntamente com aconsolidação de servidores, contribuirá para aumentar a utilização do poder computacionaldos servidores, enquanto diminui o número de plataformas físicas necessárias. Esta técnicafornece elevado isolamento entre a execução das máquinas virtuais. Uma falha em um sistemada máquina virtual ou partição, não irá afetar as outras partições sendo executadas na mesma
    • 27plataforma de hardware. Este isolamento lógico é o escudo que protege as máquinas virtuaisno nível mais baixo devido que, elas se desconhecem, e, portanto não sofrem impactos, porcondições de alocações. “É uma chave da virtualização, tornar cada partição como se fosseexecutar em um hardware dedicado” (WILLIAMS & GARCIA, 2007).2.1.4 Desvantagens Porém, como toda tecnologia não tem apenas pontos positivos, pode-se citar como ospontos negativos mais relevantes:  Segurança: Todos os softwares estão sujeitos a apresentar falhas. Se o sistema operacional hospedeiro apresentar vulnerabilidades, todas as demais máquinas virtuais hospedadas na mesma máquina física apresentarão vulnerabilidade, já que o VMM é uma camada de software.  Gerenciamento: Segundo MATTOS (2008), as máquinas virtuais precisam ser monitoradas, instanciadas, configuradas e salvas constantemente. Existem ferramentas das quais facilitam tais serviços, mas este é o campo de maior investimento na área da virtualização, pois tais contratempos precisam ser resolvidos.  Poder de processamento: Por ser uma camada extra de software, a máquina virtualizada necessita de uma maior quantidade de processamento do que se teria sem a virtualização, aumentando assim o custo final do equipamento. Isto porque ele necessitará de mais ou de melhores processadores e uma quantidade maior de memória RAM, que são periféricos responsáveis pelo aumento do poder de processamento.  Limitações do hardware: Também é muito importante ter consciência sobre as limitações dos equipamentos físicos do computador, pois o processamento, a capacidade de armazenamento da memória virtual e o espaço em disco do equipamento são compartilhados pelos ambientes virtuais, e, com isso, o hardware pode se tornar o maior problema da virtualização.
    • 282.1.5 Utilização Define-se a virtualização como uma maneira de se executar vários serviços, programase sistemas operacionais em um único equipamento físico, possibilitando também simularvários tipos de hardwares em um único equipamento, como servidores, switches, entre outros.Um dos maiores exemplos de serviços virtualizados é o cloud computing (computação emnuvem) no qual a maioria dos servidores são virtualizados e formam uma grande redefisicamente distribuída, elaborada para oferecer serviços específicos. Algumas empresas utilizam a virtualização em seus projetos tanto para simularcenários diferentes de redes ou até mesmo simular plataformas diferentes como diversos tiposde serviços. Para cada serviço de virtualização pode ser encontrado um ou mais virtualizadores. Nocaso de servidores voltados para testes em sistemas desktops podemos utilizar os softwares,Virtual Box, VMware, Microsoft Virtual PC. Já no caso da virtualização de servidores emambiente de produção pode-se usar Xen, VMware, KVM entre outros.2.1.6 Segurança Usando máquinas virtuais, pode ser definido qual é o melhor ambiente para executarcada tipo de ocupação, com diferentes requerimentos de segurança, ferramentas e o sistemaoperacional mais adequado para cada serviço. Além disso, cada máquina virtual é isolada dasdemais, logo, usando uma máquina virtual para cada serviço, a vulnerabilidade de um serviçonão prejudica os demais. As máquinas virtuais podem ficar isoladas e independentes umas dasoutras, inclusive independente da máquina hospedeira. Correm-se riscos neste momento, das máquinas virtuais se tornarem menos segurasque as máquinas físicas, justamente por causa do seu host. Este ponto é interessante, pois, se osistema operacional hospedeiro tiver alguma vulnerabilidade, todas as máquinas virtuais queestão hospedadas nessa máquina física também estarão vulneráveis.
    • 292.1.7 Ferramenta Escolhida De acordo com as necessidades apresentadas durante a execução desta pesquisa, foiescolhido uma ferramenta que será útil para alcançar os objetivos propostos. Referimo-nos aoVMware vSphere ESXi 5. Ela é um software modelo para criação de infraestruturasvirtualizadas. O uso do VMware vSphere ESXi 5 é voltado para servidores de grande porte. Essaferramenta é um sistema operacional dedicado, que usa um núcleo proprietário conhecidocomo VMkernel baseado em uma kernel Linux. O Red Hat Linux é usado para prover osdiversos serviços, como gerenciamento remoto. Por rodar em um nível mais próximo dohardware, elimina-se o overhead, que é o termo utilizado para descrever ou identificar umprocessamento e/ou armazenamento excessivos, além de aumentar a segurança. Com a utilização dessa ferramenta, temos um kernel Linux chamado VMkernel, que éresponsável por realizar todo o controle do hardware e também tornar possível, a criação demáquinas virtuais devido aos módulos que gerencia. Duas das principais vantagens dessa ferramenta são:  Custos reduzidos: o VMware vSphere é um auxílio para as organizações fornecerem os serviços necessários com mais eficiência, eliminando os gastos desnecessários além de eliminar a complexidade do gerenciamento e da manutenção da infraestrutura de TI.  Melhor eficiência: Ganho de desempenho, que se deve principalmente a ausência de um Sistema Operacional propriamente dito, instalado na máquina hospedeira. Desta maneira, diminui-se uma camada de software, reduzindo os possíveis gargalos e garantindo uma maior eficiência do servidor.
    • 302.1.7.1 Diferenças entre VMware ESX e VMware ESXi Na arquitetura original do VMware ESX vSphere, o kernel de virtualização ouVMkernel, existe uma partição adicionada de gestão conhecido como Service Console ouConsole de Serviço. O objetivo principal desse sistema é fornecer uma interface de gestão dohospedeiro. Vários agentes da VMware foram implantados juntamente com essa console,como por exemplo serviço de nome, tempo de serviço, registro. Entretanto, nessa arquitetura,essa interface é considerada como uma camada extra de software que serve de apoio para oVMkernel, o que além de aumentar o tamanho final da ferramenta, pode ocasionar gargalosdevido ao incremento dessa camada. Na nova arquitetura do VMware ESXi vSphere, essa Console de Serviço foi removidae todos os agentes da VMware são executados diretamente no VMkernel. Com isso, além daferramenta final ser mais leve e robusta do que na arquitetura ESX, a configuração e omonitoramento das máquinas virtuais são feitas por agentes externos e acessados via interfacede rede, através da instalação de aplicativos como o vClient para a execução destas tarefas.
    • 312.2 Servidor Proxy O Proxy pode ser entendido como “um software que atua como gateway de aplicaçãoentre o cliente e o serviço a ser acessado, interpretando as requisições e repassando-as aoservidor de destino” (RICCI; MENDONÇA 2006, p. 1). Já para LUNARDI (2005, p. 1), otermo “servidor Proxy” ou “serviço Proxy” é um software que tem a “procuração” de um oumais hosts para buscar na Internet uma informação solicitada. Em outras palavras, ServidorProxy é um computador intermediário, localizado entre os usuários da rede de computadores ea Internet, e que atende as requisições realizadas pelos mesmos. Devido fatores como a segurança em redes privadas e a limitação de quantidade deendereços IP válidos na Internet, as máquinas da rede possuem endereços inválidos e,portanto, não se conectam diretamente com Internet. O Servidor Proxy surgiu então danecessidade de se conectar a rede local na Internet através de um computador quecompartilhasse a conexão com as outras máquinas da rede. Desta maneira, toda solicitaçãooriginada em uma das máquinas localizadas na mesma seguem para o Proxy e este realiza ocontato com o destino da requisição, repassando assim a resposta ao solicitante. O Servidor Proxy é capaz de analisar os pacotes na camada 7 ou camada de aplicaçãodo modelo OSI. Segundo RICCI e MENDONÇA (2006, p. 2), “isto oferece uma flexibilidademuito maior, porque permite que o tráfego dentro de um serviço, como o tráfego da porta 80(HTTP) possa ser filtrado”. É devido a esse fato que o Proxy consegue analisar e determinarse um trafego HTTP ou FTP, por exemplo, deve ou não passar da Internet para a rede local.2.2.1 Características do Servidor Proxy Um Servidor Proxy pode ser usado com basicamente quatro objetivos:  Aumento na velocidade de resposta das requisições: O serviço Proxy também fornece a funcionalidade de armazenamento de cache. Para RICCI e MENDONÇA (2006, p. 2), o cache “significa a capacidade de um sistema armazenar em memória (ou em áreas reservadas do disco rígido) o conteúdo mais frequentemente acessado”. Os objetivos deste recurso é disponibilizar esse conteúdo salvo de forma mais rápida e eficiente ao solicitante e economizar, assim, a largura da banda, pois não será necessário ir à Internet novamente para responder a requisição;
    • 32  Compartilhamento de conexão de Internet: As máquinas da rele local possuem endereços inválidos e, por causa disso, não se conectam na Internet diretamente. Então, todas as requisições feitas por estas são direcionadas ao Servidor Proxy, que acessa a Internet com um endereço de IP válido e atende estas solicitações;  Controle de acesso: Através do procedimento de interpretação das requisições pela análise do seu conteúdo, é possível ao Proxy fazer um controle de acesso dos usuários da rede de computadores. Além de registrar cada acesso feito, o sistema permite a criação de ACLs (Access Control List) ou Listas de Controle de Acesso que gerenciam as permissões de acesso de cada usuário;  Relatório de acesso: todos os acessos são armazenados em forma de log, permitindo, assim, a possibilidade de criação de relatórios dos acessos realizados através do servidor pelos clientes.2.2.2 Tipos de Proxy Devido a grande flexibilidade que o serviço Proxy possui, muitos administradores deredes de computadores e outros utilizadores deste tipo de sistema começaram a descobrirmaneiras diferentes de se aproveitar deste recurso. Com isso, diferentes tipos de Proxy foramsendo criados e estes podem ser encontrados em diferentes lugares na atualidade, como naInternet, nas redes locais empresariais e até mesmo nas redes domésticas. Dentre eles, osprincipais são: Proxy Transparente, Proxy Controlado, Proxy Anônimo e Proxy Reverso.2.2.2.1 Transparente Neste tipo de Proxy, não é necessário configurar os serviços da máquina do usuário,como o navegador Internet Explorer, Mozilla Firefox ou Google Chrome por exemplo, para assolicitações serem direcionadas para o servidor. Resumidamente, esta técnica “consiste noadministrador criar um redirecionamento de portas utilizando regras de firewall”. Em outraspalavras, todo o tráfego da rede de computadores de acesso à web será redirecionadotransparentemente para a porta em que o serviço Proxy é oferecido, tornando, assim, apassagem obrigatória pelo Servidor Proxy.
    • 332.2.2.2 Controlado Diferentemente do Proxy Transparente, este tipo de serviço exige uma configuraçãonos navegadores para que estes direcionem suas requisições para o Servidor Proxy. SegundoREIS; RAIMUNDO; CARMO (2006, p. 10) o Proxy Controlado possui certas opções que oProxy Transparente não tem para facilitar o controle de quem pode ou não utilizar o Proxy, ea sua configuração deve estar como padrão em todos os browsers com o IP do servidor.2.2.2.3 Proxy Transparente x Controlado A escolha do tipo de Proxy a ser utilizado depende da situação em que ele seráaplicado. Se, por exemplo, em uma empresa os administradores preferirem colocar o IP doservidor em cada máquina ou se desejarem não colocar nenhuma informação nos navegadoresdo usuário.2.2.2.3.1 Vantagens do Proxy Transparente  É mais simples de ser configurado do que o Proxy Controlado quando está habilitado no Kernel;  Programas como o ICQ funcionam plenamente com ele, ao contrário do servidor Proxy Controlado, que possui certa instabilidade quanto a este tipo de programa e a protocolos como o SMTP;  Não precisa que as máquinas clientes sejam configuradas para direcionar as requisições ao Servidor Proxy, evitando assim que os usuários removam as definições do Proxy de dentro do navegador;  No Proxy Transparente, o cliente é forçado a passar pelo Proxy e com a configuração deste serviço, todos os serviços oferecidos por ele ficam disponíveis aos usuários, como SSH, Telnet, E-mail, entre outros;
    • 342.2.2.3.2 Vantagens do Proxy Controlado  Possui mais recursos que um Proxy Transparente, como por exemplo, algumas listas de controles de acesso (ACL’s) que controlam quem pode e quem não pode utilizar o Servidor Proxy;  Não precisa de configurações no Kernel, ao contrário do Proxy Transparente, que necessita dessas configurações e que leva, em determinados casos, a necessidade de recompilação do mesmo;  Pode servir para liberar a Internet através de autenticação do usuário, o que não é possível através do Servidor Proxy Transparente.  Possui um melhor controle das portas que utilizam SSL, uma camada do protocolo de rede, responsável por gerenciar um canal de comunicação seguro entre o cliente e o servidor.2.2.2.4 Proxy Anônimo O acesso à Internet pode expor dados do usuário, possibilitando sua identificaçãoatravés de endereço IP, localização geográfica, informações sobre o Sistema Operacional e onavegar utilizado. Proxy anônimo é uma ferramenta que tem por objetivo geral realizaratividades na Internet sem deixar vestígios, provendo assim ao usuário anonimidade eprivacidade. Ele também pode ser utilizado para contornar restrições de acesso que existam narede. Este tipo de Servidor Proxy é, muitas das vezes, disponibilizado livremente naInternet. O usuário digita no navegador o site de um Proxy anônimo e, ao acessar esse site,basta digitar no campo oferecido pelo mesmo o endereço que deseja acessar. Desta maneira, oProxy mascara algumas informações da pessoa, como o endereço IP, e, consequentemente,torna mais difícil sua possível identificação. Entretanto, este tipo de técnica traz consigo algumas problemáticas. Dentre elas, está alentidão e instabilidade desses sites de Proxy Anônimo, isso porque os mesmos podemreceber centenas e até milhares de conexões simultâneas, além do anonimato em si, que
    • 35proporciona, a usuários mal intencionados, mais uma ferramenta para cometer crimescibernéticos e acessar conteúdo proibido, desrespeitando os direitos autorais.2.2.2.5 Proxy Reverso Um Proxy Reverso é um servidor de rede que fica localizado entre a Internet e osServidores Web. Com isso, todas as conexões provindas da rede externa são endereçadas paraum dos servidores Web através de um roteamento feito pelo Proxy. Esse tipo de serviço temcomo objetivo principal prover segurança aos Servidores Web, evitando que os clientestenham contato direto com ele. Além do roteamento e da segurança proporcionada por ele, oProxy Reverso possui mais algumas características, como:  Criptografia: a criptografia SSL pode ser transmitida ao Servidor Proxy ao invés dos servidores internos. Para um melhor desempenho nessa função específica, podem ser acrescentados ao Proxy aceleradores criptográficos;  Balanceamento de carga: o Proxy Reverso pode distribuir a carga para vários servidores da rede, sendo cada servidor responsável por sua aplicação;  Cache: esse tipo de Proxy também pode manter em cache o conteúdo estático e dinâmico das requisições realizadas, ajudando assim a diminuir a carga dos Servidores Web;  Compressão: Através da compressão do conteúdo, ele pode otimizar o acesso, tornando-o mais rápido. Dentre as desvantagens da utilização deste tipo de técnica, podemos citar um refinonas regras de bloqueio, pois uma requisição válida pode ser confundida com uma inválida eser bloqueada pelo Proxy, além da necessidade de um equipamento com alta disponibilidade,pois como ele centraliza os acessos aos servidores Web, uma falha pode indisponibilizar todoo acesso ao ambiente.
    • 362.2.3 Squid O Squid é um Servidor WebProxy que tem suporte para protocolos como HTTP,HTTPS, FTP e outros. “O Squid é um Proxy com cache de alta performance para clientesweb, resumindo, ele é um servidor Proxy utilizado para acelerar a navegação dos usuários desua rede pela web” (LUNARDI 2005, p. 3). Ele caracteriza-se por ser um softwareespecializado, que faz operação de Proxy de Web e FTP, livre e com um ótimo suporte paraservidores Linux. Dentre todos os seus recursos, o que mais atrai a atenção desta ferramenta é o cache depáginas. Devido a característica das redes de computadores de terem alta velocidade na parteinterna (máquinas clientes e servidores locais) e um acesso mais lento na parte dos servidoresaté a Internet, torna mais atrativa a função de cache do Squid, de forma que ele salva aspáginas mais visitadas localmente, não precisando acessá-las externamente a todo momento.2.2.3.1 Breve história do Squid O Squid é baseado no projeto Harvest desenvolvido no início da década de 1990. Esseprojeto era um conjunto de ferramentas integradas para coletar, extrair, organizar, localizar,fazer cache e replicar informações da Internet. O cache Harvest forneceu três melhoriasimportantes em relação ao cache CERN, que foi o primeiro servidor HTTP de Proxy e cache:maior velocidade no uso do sistema de arquivos, design de processo único e hierarquias decache. No final do ano de 1995, muitos membros da equipe do Harvest abandonaram oprojeto e os autores originais do código de cache desse projeto tornaram-no um produtocomercial. Em 1996, ao Duane Wessels começar a trabalhar no Projeto IRCache, o código docacher do projeto Harvest foi renomeado para Squid, liberado sob a licença GNU GPL. Mesmo com o fim do financiamento ao projeto IRCache em julho de 2000, voluntáriosde todo o mundo continuaram a desenvolver o Squid, o que fez esta ferramenta crescer muitoem tamanho e funcionalidades. Atualmente, ele suporta funções como controles de acessosofisticados, diversos módulos de autenticação, armazenamento avançado, entre outrasfunções.
    • 372.2.3.2 Características do Squid O Squid possui as seguintes características:  Políticas de controle de acesso flexíveis: O controle de acesso é uma das características do Squid que administradores de redes utilizam com muita frequência. Nessa ferramenta, essas políticas são escritas através de ACL’s ou Listas de Controle de Acesso no arquivo de configuração do Squid e podem ser feitas baseando-se em fatores como: conteúdo do endereço da requisição, origem desta e o destino da solicitação.  Suporte para Proxy Transparente e Controlado: Através de sua configuração, um administrador de rede, por exemplo, pode configurar o Squid para trabalhar de modo transparente, no qual todos os usuários obrigatoriamente passam por ele para acessar a Internet ou de modo controlado, que exige a configuração nos navegadores.  Logs Avançados: O Squid registra em seu log uma linha para cada objeto requisitado pelos clientes. Nessa linha, podem ser encontradas informações como: hora, duração do uso do cache, endereço IP do cliente, códigos de resultados, tamanho dos dados, método de requisição, URL, código de hierarquia, tipo de conteúdo, entre outros.  Suporte a HTTP, FTP, ICP, entre outros: Essa ferramenta suporta aplicações como páginas web, criando cache dos arquivos dinâmicos e estáticos delas, como figuras e textos, transferência de arquivos, salvando uma cópia do arquivo baixado por um usuário e retransmitindo o conteúdo quando este for solicitado novamente, consulta em outros servidores de caches sobre determinado conteúdo.
    • 382.2.3.3 Requisitos Específicos para o Squid Em comparação com algumas ferramentas oferecidas pelo sistema, é possível perceberque o Squid utiliza mais recursos específicos do que outros aplicativos. Segundo RICCI eMENDONÇA (2006, p. 2), “os dois principais subsistemas de hardware que o Squid utiliza, eque deve ter um bom desempenho, é o tempo de busca aleatória e a quantidade de memóriano sistema”.  Tempo de busca aleatória em disco: O tempo de busca de um arquivo no cache do Squid deve ser o mais baixo possível. Isto porque quanto mais rápido ele encontrar a informação no cache, mais rápido ele responderá a solicitação feita pelo usuário.  Quantidade de memória no sistema: A memória RAM é muito importante para a utilização do cache. O Squid mantém apenas uma tabela dos objetos do cache na memória RAM. Como ele é um processo no Sistema Operacional, então qualquer processo de swapping, que é uma técnica de gerência de memória que leva dados do programa desta para o disco rígido, tornará o programa mais lento. Ainda segundo RICCI e MENDONÇA (2006, p. 2), outros requisitos do sistema,como velocidade de CPU, são menos importantes, pois a velocidade do processador somenteserá notada durante a inicialização do Squid.2.2.3.4 Estrutura do Squid Como descrito anteriormente, o Servidor WebProxy Squid é utilizado em larga escalapor sua facilidade e flexibilidade de configuração, além de uma exigência mínima derequisitos para que este entre em funcionamento. As estruturas deste serviço que justificamestes itens são:
    • 392.2.3.4.1 Arquivo de Configuração Toda a configuração do Squid é feita em um único arquivo chamado squid.conf, quegeralmente fica localizado no diretório /etc/squid/squid.conf, podendo variar de acordo com aversão do Squid, do sistema operacional utilizado e da escolha do usuário que for instalar essetipo de serviço. O arquivo original que é instalado junto com o software é muito grande, pois contémcomentários e exemplos para praticamente todas as opções que o Squid disponibiliza. Nointerior do arquivo squid.conf será o local onde toda as configurações do serviço de Proxy-cache serão criadas. Dentre elas estão as políticas de acesso, a ocupação de memória etambém a localização e a validade dos arquivos do cache, sendo que estas são escritas emformato de linhas e estas são lidas de cima para baixo. Caso estas linhas entrem em algumtipo de conflito, a linha posterior sobrepõe a linha anterior.2.2.3.4.2 Restrições de acessos O controle de acesso é uma das características mais úteis para administradores deredes de computadores que lidam com grandes acessos públicos de usuários, pois isto acabasaturando o link da Internet com acessos a sites que não estão relacionados as atividadesdiárias da empresa. Através de regras e arquivos textos simples, pode-se restringir o acesso decada usuário da rede de computadores, permitindo ou negando, assim, o acesso a determinadosite ou conteúdo da Internet.2.2.3.4.3 Lista de Controle de Acesso As ACL – Access Control List – ou Lista de Controle de Acesso “são regras de acessooferecidas pelo sistema que devem ser utilizadas pelo administrador da rede como meio deliberar ou bloquear acesso a determinado conteúdo web” (RICCI; MENDONÇA 2006, p. 22). É através dela, por exemplo, que é possível manter os usuários da rede decomputadores sob controle, otimizar o desempenho da banda e facilitar a administração. Istoporque, ao restringir os usuários a um mínimo de permissões na web, estes não irão perder ofoco do trabalho facilmente com sites que não tenham nada a acrescentar a seu trabalho,tornando-os assim mais produtivos.
    • 40 As Listas de Controle de Acesso são escritas, de uma maneira geral, em forma delinhas dentro do arquivo de configuração squid.conf e lidas pelo Squid de cima para baixo.“Com isso, elas permitem especificar endereços de origem ou destino, domínios, horários,usuários, portas ou métodos de conexão ao Proxy, que servirão de base para permitir ou negaracesso baseando-se em conjunto dessas ACL’s.” (LUNARDI 2005, p. 31). Isto permite umagrande flexibilidade na configuração do Squid, pois podemos especificar, por exemplo, quaisendereços podem e quais não podem ser acessados, qual horário que determinado endereçopode ser acessado, além de permitir ou bloquear o uso de determinado tipo de protocolo edelimitar um usuário a acessar a Web somente a partir de uma máquina especifica. A sintaxe de uma linha de controle de acesso pode ser feita, basicamente, da seguintemaneira: “acl nome tipo argumentos”, no qual “acl” é o comando de criação da ACL, “nome”será o nome escolhido para a identificação da mesma, “tipo” diz a respeito a qual objeto queserá referido na linha e “argumentos”, que diz a respeito do domínio e as opções da ACL. Um exemplo prático de um ACL seria a linha “acl MinhaRede src192.168.1.0/255.255.255.0”, no qual cria a lista de acesso chamada “MinhaRede” do tipo“src” (que significa a origem da requisição) e especifica o domínio da rede e seu endereçoMAC “192.168.1.0/255.255.255.0”, de modo que o Squid responda as requisições doscomputadores que tenham faixa de IP entre 192.168.1.1 e 192.168.1.254. Os tipos de ACL mais conhecidas e comumente utilizadas são:  SCR: Classe de acesso que se baseia no endereço IP da origem da requisição, ou seja, do cliente que solicitou a requisição de acesso;  DST: Ao contrário da classe de acesso SCR, esta se baseia no endereço IP do destino da requisição, ou seja, do IP do servidor solicitado na requisição;  SRCDOMAIN: Classe de acesso que se baseia no domínio DNS do computador cliente que solicita a requisição de acesso, sendo que este domínio é obtido por resolução reversa de IP. O uso excessivo desta regra pode prejudicar a performance do WebProxy devido a constante resolução do endereço IP no Servidor DNS;  DSTDOMAIN: Semelhante ao srcdomain, com a diferença de que esta se refere ao endereço de destino;
    • 41 SRCDOM_REGEX: Avalia e classifica o domínio da origem da requisição usando expressões regulares; DSTDOM_REGEX: Avalia e classifica o domínio de destino da requisição usando expressões regulares; TIME: Classe que permite ao administrador da rede determinar o dia da semana e o horário da requisição de acesso e permitir ou negar o acesso a Internet baseando-se nessas informações; URL_REGEX: Classe de acesso na qual é possível analisar uma URL a procura de determinadas expressões e assim bloquear ou liberar o acesso do usuário. Utiliza-se nesse tipo a opção –i, que desativa o uso do case-sensitive; URLPATH_REGEX: Este tipo é semelhante à url_regex, sendo que sua procura as expressões descartam nome do servidor e o protocolo utilizado. Utiliza-se também nesse tipo a opção –i, que desativa o uso do case-sensitive; PORT: Realiza o controle pela porta de destino do servidor solicitado pelo cliente ao WebProxy. Neste tipo deve ser especificado o número da porta ou a série de portas; PROTO: Classe na qual é possível especificar o protocolo utilizado na conexão (HTTP, FTP entre outros); METHOD: Especifica o tipo de método usado na requisição, ou seja, Get ou Post. O método Get utiliza a URL para enviar dados ao servidor e o método Post envia as informações no corpo da mensagem. BROWSER: Classe que permite, através de expressões regulares, determinar o navegador web de onde foi enviada a solicitação de acesso web;
    • 42 IDENT: Permite classificar o acesso de acordo com o usuário logado no computador do cliente. Esta classe exige um servidor Ident na máquina cliente, o que atualmente é pouco comum. Com isso, utiliza-se mais a identificação de um usuário através da autenticação; IDENT_REGEX: Similar a classe Ident, mas utilizando-se de expressões regulares; SRC_AS: Classe de acesso responsável por liberar ou bloquear o acesso baseado no sistema autônomo do computador de origem da solicitação; DST_AS: Classe de acesso responsável por liberar ou bloquear o acesso baseado no sistema autônomo do computador de destino da solicitação; PROXY_AUTH: Classe de acesso que permite utilizar a autenticação de usuários através de suas credenciais, sendo geralmente nome de usuário (username) e a respectiva senha. Esta regra necessita de um recurso externo de autenticação, responsável por validar as informações, ela não pode ser usada em um Proxy Transparente; PROXY_AUTH_REGEX: Classe de acesso na qual é possível classificar os usuários autenticados através da combinação de expressões regulares; SNMP_COMMUNITY: Classifica os acessos de acordo com a comunidade SNMP. Faz-se necessário que o WebProxy Squid tenha sido instalado e compilado com suporte a este tipo de protocolo; MAXCONN: Especifica um limite máximo de conexões originadas de um determinado cliente através de seu endereço IP. Utilizado principalmente para fazer controle de banda;
    • 43  REQ_MIME_TYPE: Classe de acesso que classifica o tipo de conteúdo solicitado através de seu cabeçalho content-type. Analisando as principais possibilidades de criação de ACL’s citadas anteriormente, “ficaclaro que o WebProxy Squid oferece uma diversidade de opções para classificar o acesso deseus usuários.” (RICCI; MENDONÇA 2006, p. 32). Após a criação e configuração de todasas listas de acesso que serão utilizadas no WebProxy Squid, faz-se necessário definir a açãotomada pelo Servidor Proxy ao encontrar uma solicitação que se adeque à determinada classe,ou seja, deve-se definir se o Squid irá permitir ou bloquear o acesso baseado em determinadaregra de acesso. Dentre as opções mais utilizadas, podemos citar:  HTTP_ACCESS: Após definidas as listas de acesso, pode-se definir as restrições propriamente ditas, permitindo ou proibindo o acesso ao serviço http baseado nas ACL’s criadas anteriormente. Sua estrutura básica é constituída de 3 partes: “http_access acl allow/deny”, no qual “http_access” é o comando de permissão, “acl” é o nome da lista de controle de acesso criada anteriormente e “allow/deny” que é o comando que permite (allow) ou nega (deny) o acesso da acl citada. Após a configuração de todo o arquivo de configuração do Squid, é aconselhável definir uma última regra que negue todas as solicitações de acesso que não forem previamente liberadas, através da regra “http_access deny all”. De acordo com RICCI, MENDONCA (2006, p. 32), esta diretiva define para o WebProxy Squid que todas as solicitações não liberadas anteriormente devem ser explicitamente bloqueadas;  ICP_ACCESS: Este recurso é utilizado quando se trabalha com múltiplos webproxies em um ambiente de árvores-cache hierárquica. Esta função força que outros servidores webproxies utilizem este servidor Proxy como um filho ao invés de um pai, ou seja, ela faz com que este WebProxy Squid verifique, através de mensagens ICP, quais caches de servidores ele poderá se comunicar;  MISS_ACCESS: Limita os domínios que podem fazer requisições ao cache do servidor utilizando os recursos de regras de acesso;
    • 44  IDENT_LOOKUP_ACCESS: Uma lista de elementos em uma ACL, os quais, se encontrados, irão gerar uma requisição IDENT;  HTTP_REPLY_ACCESS: Permite ou nega que clientes recebam a resposta das suas solicitações de acesso. É utilizado em conjunto à regra de acesso criada em req_mime_type;  NO_CACHE: Define respostas que não devem ser armazenadas em cache.2.2.3.4.4 Parâmetros administrativos Além das regras de controle de acesso criadas com a finalidade de permitir oubloquear determinadas requisições e acesso a Internet, o Squid permite a criação de regras eparâmetros destinados a uma melhor administração do Servidor de WebProxy, como porexemplo: controle de cache, local de armazenamento do cache, mensagens de erros, entreoutros. Dentre as mais comuns, podemos citar:  HTTP_PORT: Diretiva responsável por especificar a porta na qual o servidor de WebProxy Squid deve oferecer o serviço. O valor padrão é 3128, mas caso precise alterar, basta alterar este valor e trocar por uma porta que não esteja sendo utilizada.  CACHE_MEM: Regra responsável por especificar a quantidade de memória RAM a ser disponibilizada para o WebProxy Squid, sendo que o valor a ser utilizado deverá ter como unidade de medida Megabytes.  CACHE_DIR: Diretório onde serão armazenados os objetos que comporão o cache do Squid. A regra possui uma estrutura com basicamente: “cache_dir tipo diretório MB L1 L2”, no qual “cache_dir” é o comando de criação do cache, “tipo” será o tipo de sistema de armazenamento do cache, “diretório” no qual será definido o caminho absoluto para o diretório que armazenará o cache, “MB” que definirá o tamanho do espaço utilizado em disco para os objetos do cache e “L1” e “L2” que definem,
    • 45 respectivamente, os diretórios de primeiro nível e segundo nível que devem ser criados. CACHE_ACCESS_LOG: Determina a localização exata do arquivo onde o Squid deve armazenar os logs detalhados de acessos a conteúdos web. Através dele é possível responder perguntas como: quem acessou o que em determinado dia? CACHE_LOG: Especifica o arquivo responsável pelo log de informações relacionadas ao cache do WebProxy. Este arquivo é muito útil na fase de implementação do sistema como meio de depuração de eventuais erros que possam impedir a inicialização correta do serviço. CACHE_STORE_LOG: Faz log detalhado de todo objeto web armazenado. Este detalha quais objetos web saírem e quais entraram no cache e quanto tempo eles permaneceram armazenados. PID_FILENAME: É responsável por obter o número do processo Squid em execução no sistema. VISIBLE_HOSTNAME: Define o nome do servidor e seu domínio. Este nome aparecerá nas telas de erro, ou seja, quando o usuário solicitar uma página web e a solicitação dele for negado pelo Squid. CACHE_MGR: E-mail do administrador ou do webmaster que aparecerá nas mensagens de erro. Isto é importante para que os usuários tenham informações do responsável pelo servidor caso de problemas com um acesso bloqueado de forma errada. LOGFILE_ROTATE: Especifica o número de rotações executadas quando se digita o comando “squid -k rotate”. O padrão são 10 arquivos de log, sendo armazenado o atual e mais 9 logs antigos. Quando o comando é executado novamente, o arquivo de log mais antigo é apagado, o atual fica em seu lugar e um novo arquivo desse tipo é gerado.
    • 462.2.4 Microsoft ISA Server O Microsoft ISA Server é uma solução de segurança de borda que inclui firewall demúltiplas camadas, Web Proxy e VPN, garantindo segurança contra as ameaças oriundas daInternet e facilidade de gerenciamento através de sua integração com o Windows Server. Atualmente, o ISA Server 2006 é a última versão lançada pela Microsoft, mantendosempre o esquema de edições padrão (standard) e Enterprise. A partir de fevereiro de 2007, a Microsoft liberou uma edição especial do ISA Serverchamada Intelligent Application Gateway 2007. IAG 2007 é um serviço de VPN através deSSL, que também incorpora políticas de segurança como zonas restritas, verificações desegurança nas conexões acessando a rede, e definição de perfis de uso dos programaspublicados. IAG 2007 é o produto da compra realizada pela Microsoft da empresa WhaleCommunications em Junho de 2006.2.2.5 Escolha da ferramenta No contexto atual da área da informática, existem centenas de softwares que fornecema função de Proxy. Dentre elas, a escolhida para o desenvolvimento do projeto é o Servidor deWebProxy Squid. Isto porque essa ferramenta, além de ser OpenSource (Código Aberto ouSoftware Livre) e gratuita, ela é simples de manusear, é a mais conhecida e utilizada na áreade T.I., possui um excelente suporte para operação em servidores Linux e oferece uma grandevariedade de recursos, o que permite uma maior modelagem e flexibilidade nas suasconfigurações.2.2.6 Firewall Iptables O iptables é uma ferramenta de software livre, baseado em GNU/Linux, que permite acriação de regras de firewall e NATs. O Iptables é uma ferramenta que vem integrada aoKernel Linux, além de frequentemente ser utilizado como referência ao conjunto completo defuncionalidades do netfilter, é parte de todas as distribuições modernas do Linux e trabalhaem nível de pacotes.
    • 47 As principais características dessa ferramenta são:  Especificação de portas/endereço de origem/destino;  Manipula serviços de proxy na rede;  Tratamento de tráfego dividido em regras ou chains;  Muito rápido, estável e seguro;  Suporte a módulos externos para expansão das funcionalidades padrões oferecidas pelo código de firewall;  Limitação de passagem de pacotes/conferência de regra; Neste trabalho será feito a integração do Serviço de Proxy Squid com o FirewallIptables, pois é através desta segunda ferramenta que será realizado o redirecionamento dasrequisições feitas pelos usuário na porta 80 para a porta que o Squid irá trabalhar.
    • 482.3 Sistema Operacional De acordo com Tanenbaum, Woodhull (2000) o sistema operacional controla todos osrecursos do computador e fornece a base sobre a qual os programas e aplicativos podem serescritos. Segundo Silberschatz, (2001) Sistemas operacionais foram desenvolvidos nosúltimos 40 anos para alcançar dois objetivos principais, escalonar as atividadescomputacionais para garantir um bom desempenho e fornecer um ambiente conveniente parao desenvolvimento e a execução de programas. Pode ser entendido como um sistema operacional (SO) uma coleção de programas queinicializam o hardware do computador. Essa coleção de programas fornece rotinas básicaspara controle de dispositivos, também gerência, realiza escalonamento e interação de tarefas emantém a integridade de sistema. No início da computação os primeiros sistemas operacionais eram únicos, pois cadamainframe vendido necessitava de um sistema operacional específico. Esse problema eraresultado de arquiteturas diferentes e da linguagem que cada máquina utilizava. Após essafase, iniciou-se a pesquisa de sistemas operacionais que automatizassem a troca de tarefas(jobs), pois os sistemas eram monousuários e tinham cartões perfurados como entrada, assimo computador não necessitava da operação humana.2.3.1 Arquitetura Procurando melhorar o desempenho geral dos sistemas de computação, osdesenvolvedores introduziram o conceito de multiprogramação onde vários jobs são mantidosna memória e a CPU alterna entre eles para aumentar a sua utilização e diminuir o tempo deexecução dos jobs, também permitindo o compartilhamento de tempo o que possibilitou quemuitos usuários utilizem um sistema de computação ao mesmo tempo. As principaisarquiteturas existentes são:  Sistema Batch: também conhecido por sistemas em lote, foram os primeiros sistemas multiprogramáveis a serem implementados. Eles se caracterizam por terem seus programas, quando submetidos, armazenados em disco ou fita, onde esperam para ser executados sequencialmente;
    • 49 Sistema de Tempo Compartilhado: também denominado multitasking, é uma extensão lógica da multiprogramação. Consiste basicamente em alternar entre diferentes processos de forma que o usuário tenha a percepção que todos os processos estão sendo executados simultaneamente, permitindo a interação com múltiplos processos em execução. Esta percepção é dada pela velocidade em que as trocas de tempos de execução em CPU ocorrem, sendo tão frequentes que se tornam não perceptíveis do ponto de vista do usuário; Sistemas Mainframe: Os sistemas operacionais desenvolvidos para mainframe são criados especialmente para a finalidade de cada modelo, por exemplo: para processar textos, bancos de dados, efetuar cálculos ou gerenciar dispositivos. Podemos citar sistemas baseados em sistemas próprios: z/OS, z/VSE, z/VM, z/TPF (da IBM), OS2200, MCP (da Unisys), GCOS (da Bull), e outros de empresas como Fujitsu, Hitachi e Amdhal; Sistema Desktop: Um sistema que oferece soluções com interface gráfica com o usuário (GUI) para operar um computador. O nome é derivado da metáfora de desktop, ou "tampo de mesa", hoje usado por essas interfaces. Um ambiente de desktop fornece ícones, pastas, barra de ferramentas, papéis de parede e habilidades como arrastar e soltar; Sistema Distribuído: Um sistema distribuído é aquele que é definido como um conjunto de unidades de processamento independentes, que através da troca de comunicação e gerenciamento de sincronização pode processar uma aplicação em diferentes localidades em sistemas com características próprias diferentes, dando a impressão ao usuário que toda a aplicação é gerenciada por um sistema único; Sistemas Handheld: Os sistemas handheld são adaptados para dispositivos móveis, como PDAs – Personal Digital Assistants e telefones celulares. Sua memória é limitada, processador mais lento e contém display de pequenas dimensões. O S.O e as aplicações são projetados para minimizar o uso do processador (redução do consumo da bateria). Podem utilizar tecnologias wireless, como Bluetooth, para acesso remoto a
    • 50 e-mail e navegação Web. Câmeras e MP3 players, são exemplos de acessórios que expandem a sua funcionalidade;  Sistemas Paralelos: São os sistemas que têm mais de uma CPU em comunicação direta, tais CPUS compartilham barramentos, memória e dispositivos periféricos assim podem fornecer maior produtividade e melhor confiabilidade;  Sistema de Tempo Real Crítico: Este sistema geralmente é utilizado em uma aplicação dedicada, pois tem limitações de tempo fixas, ou seja, o processamento precisa ser feito no dentro dos limites definidos ou o sistema falhará, já os sistemas de tempo real não crítico tem limitações de tempo menos rigorosas e não suportam escalonamento de prazos;  Sistema Embarcado: Este tipo de sistema da capacidade computacional dentro de um circuito integrado, equipamento ou sistema. É um sistema completo e independente, mas preparado para realizar apenas uma determinada tarefa. O usuário final não terá acesso ao programa que foi embutido no dispositivo, mas poderão interagir com o equipamento através de interfaces como teclado, displays, desde que o sistema tenha sido projetado para tanto;2.3.2 Tipos de Sistemas Operacionais Existem muitos tipos de Sistemas Operacionais, cuja complexidade varia e depende deque tipo de funções é provido, e para que computador esteja sendo usado. Alguns sistemas sãoresponsáveis pela gerência de muitos usuários, outros controlam dispositivos de hardware. Em um grande computador multiusuário, com muitos terminais, o SistemaOperacional é muito mais complexo. Tem que administrar e executar todos os pedidos deusuários e assegurar que eles não interferiram entre si. Tem que compartilhar todos osdispositivos que são seriais por natureza (dispositivos que só podem ser usados por umusuário de cada vez, como impressoras e discos) entre todos os usuários que pedem esse tipode serviço. O S.O poderia ser armazenado em disco, e partes dele serem carregadas namemória do computador (RAM) quando necessário. Utilitários são fornecidos para:
    • 51  Administração de Arquivos e Documentos criados por usuários;  Desenvolvimento de Programas;  Comunicação entre usuários e com outros computadores;  Gerenciamento de pedidos de usuários para programas, espaço de armazenamento e prioridade.2.3.3 Principais finalidades de um S.O. Segundo Silberschatz, Galvin, Gagne (2001) nem todos os sistemas operacionais têm amesma estrutura. No entanto, muitos sistemas modernos compartilham a meta de dar suporteaos componentes de sistema abaixo listados.  Gerência de processos - um processo é a unidade de trabalho de um sistema operacional, um sistema operacional é uma coleção de processos, alguns deles executam código de sistema operacional (processos de sistema operacional) e o restante executam código de usuário (processos de usuário). Todos esses processos podem ser executados concorrentemente. Em relação a gerência de processos os sistemas operacionais é responsável pelas seguintes atividades: Em relação a gerência de processos o sistema operacional é responsável pelas seguintes atividades: criar e excluir processos de usuários e de sistema; suspender e retomar processos; fornecer mecanismos para a sincronização; fornecer mecanismos para a comunicação; fornecer mecanismos para o tratamento de deadlocks.  Gerência de arquivos - o sistema operacional abstrai as propriedades físicas de seus dispositivos de armazenamento para definir uma unidade lógica de armazenamento, o arquivo. Os arquivos são mapeados e acessados no meio físico através dos dispositivos de armazenamento. Os arquivos são normalmente organizados em diretórios para facilitar seu uso. Quando vários usuários têm acesso aos arquivos, pode ser desejável controlar quem pode acessar e de que forma pode fazê-lo. Em relação a gerência de
    • 52 arquivos o sistema operacional é responsável pelas seguintes atividades: criar e excluir arquivos; criar e excluir diretórios; fornecer suporte a premissas para manipular arquivos e diretórios; mapear arquivos no armazenamento secundário; fazer backup de em meios de armazenamento estáveis. Gerência da memória principal - memória principal é um repositório de dados rapidamente acessíveis compartilhados pela CPU e dispositivos de I/O. Para que um programa seja executado ele deve ser carregado na memória. À medida que é executado ele acessa instruções e dados do programa a partir da memória e quando termina o espaço de memória que era ocupado passa a ficar disponível e o próximo programa pode ser executado. O sistema operacional é responsável pelas seguintes atividades em relação a gerência de memória: Manter o registro das partes da memória que estão sendo usadas no momento e por quem; decidir que processos deverão ser carregados na memória quando houver espaço disponível; alocar e desalocar espaço na memória conforme solicitado. Gerência de armazenamento secundário - os programas, quando executados devem estar na memória principal, ou armazenamento primário. Como a memória principal é muito pequena para acomodar todos os dados e programas e também porque a alocação de espaço na memória principal ocorre de forma dinâmica. De alguma maneira deve ser fornecido armazenamento secundário para dar suporte a memória principal. Os sistemas modernos utilizam discos como principal meio de armazenamento para dados e programas. A maioria dos programas são armazenados em um disco até serem carregados à memória principal e utilizam o disco como origem e destino de seu processamento. O sistema operacional é responsável pelas seguintes atividades em relação a gerência de disco: gerência de espaço livre; alocação de espaço; escalonamento de disco. Gerência de I/O - as principais atividades de um computador são entrada e saída (I/O) e processamento. O papel do sistema operacional em relação ao I/O do computador é gerenciar e controlar as operações e os dispositivos de I/O. A velocidade de entrada e saída está diretamente relacionada ao desempenho de SGBDs (Sistema de
    • 53 Gerenciamento de Banco de Dados), pois, os dados geralmente encontram-se armazenados em dispositivos externos. Como os SGBDs efetuam muitas consultas a sua base de dados a velocidade de acesso aos dispositivos de armazenamento tornam- se de extrema relevância no desempenho de bancos de dados;  Redes - um sistema distribuído reúne sistemas fisicamente separados e possivelmente heterogêneos em um único sistema coerente, oferecendo ao usuário acesso aos vários recursos mantidos pelo sistema. O acesso a um recurso compartilhado permite maior velocidade de computação, maior funcionalidade, maior disponibilidade de dados e melhor confiabilidade. Os sistemas operacionais geralmente generalizam o acesso à rede como uma forma de acesso a arquivos;  Sistemas de proteção - a proteção é qualquer mecanismo para controlar o acesso de programas, processos ou usuários aos recursos. Um sistema orientado a proteção fornece um meio para distinguir entre uso autorizado e não autorizado;  Sistema interpretador de comandos - interface entre o usuário e o sistema operacional. Os sistemas operacionais geralmente se diferenciam na área do shell (interface do usuário), com um interpretador de comandos amigável ao usuário tornando o sistema mais agradável. As instruções de comando lidam com a criação e gerência de processos, tratamento de I/O, gerência de armazenamento secundário. Atualmente existem diversos tipos e versões de Sistemas Operacionais no mundo,entre eles podemos citar as mais importantes e utilizados: Microsoft Windows em suasversões XP e 7 para Desktop e Server 2003 e 2008 para Servidores, GNU/Linux Debian,Ubuntu, Fedora e Suse, Netware, MacOS Snow Leopard, entre outros. O Sistema operacional escolhido para ser utilizado neste trabalho será umadistribuição do GNU/Linux chamada Red Hat Enterprise Linux 6. Isto por ser umadistribuição livre, é completamente baseado em Software Livre, a Red Hat torna disponível ocódigo fonte completo para a sua distribuição empresarial através de seu sítio FTP (FileTransfer Protocol - Protocolo de Transferência de Arquivos) para qualquer pessoa disposta aquerê-lo, além de também considerada uma versão corporativa do Red Hat Linux.
    • 542.3.4 Red Hat Enterprise Linux 6 O Red Hat Enterprise é uma distribuição GNU/Linux criada e mantida pela Red Hat,líder de mercado nos Estados Unidos. De acordo com o site da Red Hat (https://www.redhat.com/), em 1995 é fundada acompanhia Red Hat, uma empresa dedicada ao software livre e de fonte aberta, mas logo apósa sua fundação rapidamente ganhou espaço no mercado, por sua crescente melhoria nainterface gráfica de seus softwares, facilidade de instalação e também no seu suporte econsultoria através de produtos como o Red Hat Enterprise Linux. Em 2002, a Red Hat decidiu se tornar provedora de soluções OpenSource para omercado corporativo, a Red Hat dividiu sua distribuição Linux em duas distribuições: RedHat Enterprise Linux e Fedora. A Red Hat começou a concentrar-se na venda de serviços queincluíssem valor no atendimento ao cliente, como suporte técnico, consultoria,implementação, atualização de software, treinamentos, além de outras soluções quecomplementam o sistema operacional Linux, que continua sendo o principal produto daempresa. O que chama atenção da Red Hat é que seus serviços são vendidos com contratospara longos prazos, 1 a 3 anos e são comercializados sob o modelo de subscrição (umaassinatura de serviços essenciais para melhor aproveitamento do software). O Red Hat Enterprise Linux é lançado em versões de servidor para as plataformas x86,x86_64, Itanium, e IBM System z, e também são lançadas para versões Desktop para asplataformas x86 e x86_64. Quanto as principais características da ferramenta, de acordo como site da Red Hat (http://br.redhat.com/resourcelibrary/articles/articles-red-hat-enterprise-linux-6-server-technical-details-features-and-benefits), podemos citar:  Alta Tecnologia: O Red Hat Enterprise Linux 6 foi desenvolvido de acordo com os avanços de hardware, devido a esse desenvolvimento equiparado com o desenvolvimento de hardwares, o sistema reduz a utilização de energia, ganhando assim vantagem do hardware com um número bem elevado de recursos de processamento e de memória, e lidando melhor com as falhas do hardware, contém também um kernel agendador de tarefas que permite que todas as tarefas tenham um tempo mais justo de CPU reduzindo ainda mais o consumo de energia e aumentando a eficácia de todo hardware.
    • 55 Confiabilidade, Disponibilidade e Utilidade: Os recursos de RAS (Reliability, Availability and Serviceability), fornecidos pelo hardware e ativados pelo software permitem que os sistemas continuem a funcionar quando exigirem alterações de hardware ou encontrarem falhas. A execução em cluster fornece soluções de alta disponibilidade que mantêm, os sistemas funcionando diante de falhas localizadas, também isola aplicativos e nós que não respondem para que não corrompam dados corporativos críticos. Armazenamento: Contém alta disponibilidade de volume lógico, por espelhamento de metadados de sincronização. Um melhor gerenciamento de grandes alocações de memória otimizando assim consideravelmente o desempenho ao alocar memória cliente virtualizada, suporte para armazenamentos extensos com base em área de armazenamento em rede. Segurança: Controle de acesso, utilizando as políticas do SELinux (Security-Enhanced Linux – Segurança Linux Aprimorada) torna o Red Hat Enterprise mais seguro e resistente a falhas de segurança, protegendo o funcionamento e os dados do sistema, as permissões de arquivos e processo foram reduzidas para que seja possível diminuir o risco de encaminhamento privilegiado. Desenvolvimento: Com um sistema operacional escalável e robusto, opções de implantações flexíveis e segurança certificada em plataformas físicas e virtuais e uma grande variedade de linguagens de desenvolvimento com o apoio de excelentes ferramentas de depuração e ajuste, tornam o Red Hat Enterprise uma plataforma de desenvolvimento e implantação bastante atraente aos olhos dos grandes desenvolvedores. Virtualização: Com a virtualização integrada o Red Hat Enterprise se torna um excelente host de virtualização, apresenta virtualização com base no hypervisor KVM, integrado ao kernel.
    • 56  Interoperabilidade: Os serviços do Red Hat Enterprise Linux 6 têm acesso a serviços de arquivo e impressão do Microsoft Windows, e a servidores do Microsoft Exchange usando protocolos nativos. Uma comparação foi realizada pela própria Red Hat das versões do Red Hat Enterprisepara servidor, como podemos ver na tabela a seguir:TABELA 1 – COMPARAÇÃO ENTRE OS PRODUTOS RED HAT ENTERPRISE LINUX - RED HAT INC. FONTE: HTTP://BR.REDHAT.COM/PRODUCTS/ENTERPRISE-LINUX/SERVER/COMPARE.HTML A distribuição Red Hat Enterprise Linux está atualmente voltada para o mercadoempresarial. No entanto, mantém a sua vertente comunitária através do projeto Fedora Core,que é uma distribuição totalmente livre, gratuita, desenvolvida por inúmeros usuários destadistribuição e que tem como base o Red Hat Enterprise Linux.
    • 572.4 Software de Benchmark No início dos anos 80, os componentes de hardware custavam muito caro, o quemotivou a criação de benchmarks para a comparação de desempenho. Entretanto, com opassar dos anos, os fabricantes destes equipamentos começaram a otimizar seus componentesvisando especificamente a obtenção de bons resultados no benchmark, o que geravaresultados muitos distantes da realidade, ocasionando, assim, a perda de credibilidade por essetipo de técnica. Segundo ALMEIDA (2008, p. 32), esses fatos motivaram a criação de organizaçõesformadas por fabricantes de ferramentas de benchmarks, sendo as principais o TransactionProcessing Performance Council (TPC), responsável pelo desenvolvimento destas na área deSGBDs, e o Standard Performance Evaluation Corporation (SPEC), que é responsável pelodesenvolvimento de benchmarks para CPU, Java, Virtualização, Servidores Web, entreoutros. Além do desenvolvimento de benchmarks essas organizações auditam testesrealizados por fabricantes ou por outras entidades para garantir a validade dos resultadosapresentados.2.4.1 Definição De acordo com o dicionário para a língua inglesa The American Heritage, a expressãobenchmark significa mensurar algo de acordo com os padrões especificados com o intuito decomparar e melhorar um determinado produto, teoria, entre outros. Para COLLIN (2008), umbenchmark é um programa utilizado para testar a performance de software, hardware ou umsistema. Em ambientes computacionais, um benchmark é tipicamente um software que realizaum conjunto restrito e pré-definido de operações, a fim de avaliar a performance relativa deum objeto, e retorna um resultado em algum formato que descreve o comportamento dosistema. As métricas dos benchmarks computacionais podem medir rapidez (em qualvelocidade a carga de trabalho foi completada) ou vazão (quantas cargas de trabalho porunidade de tempo foram medidas). Ao executar essa técnica em múltiplos computadores, épossível realizar comparações (GRAY, 1993).
    • 582.4.2 Características As avaliações em sistemas são realizadas com a utilização de benchmarks, os quaisproporcionam padrões na avaliação de desempenho de sistemas. Segundo VIEIRA, DURÃESe MADEIRA (2005), os benchmarks devem possuir as seguintes características para seremconsiderados válidos:  Representatividade – Os benchmarks devem representar sistemas reais, ou seja, não devem ser aplicados em sistemas simulados;  Portabilidade - Os sistemas de benchmark devem ser compatíveis com diferentes plataformas, pois, assim, ele permite que os testes comparativos de desempenhos sejam realizados entre sistemas distintos;  Repetibilidade - Devem apresentar resultados semelhantes quando aplicados mais de uma vez sobre o mesmo ambiente;  Escalabilidade – Estes tipos de software devem realizar testes em ambientes com diferentes capacidades;  Não Intrusividade – Na necessidade de se avaliar outra plataforma, deve-se realizar o mínimo de alteração possível nesse novo ambiente;  Simplicidade - Os sistemas de benchmark devem ser de fácil implementação e utilização dos usuários que utilizarão da ferramenta. “Os procedimentos e regras que devem ser seguidos durante a execução do benchmarkdevem ser claramente definidos durante a sua especificação.” (VIEIRA, DURÃES eMADEIRA, 2005, p. 3).
    • 592.4.3 Tipos de Benchmark Segundo SENG, YAO e HEVNER (2005), os benchmarks podem ainda classificar-secomo sintéticos, que emulam aplicações típicas de um determinado domínio, tanto a nível deoperações como de testes, empíricos, no qual utilizam operações de testes e informações reaisou uma mistura entre ambos. Em outras palavras, benchmarks sintéticos são programas especialmente criados paraimpor o tipo de comportamento desejado no componente, e os empíricos, também conhecidoscomo benchmarks de aplicação, executam programas do “mundo real” no sistema. Embora normalmente os benchmarks de aplicação ofereçam uma melhor medida para aperformance no “mundo real” para um determinado sistema, benchmarks sintéticos ainda sãousados no teste de computadores individuais, como um disco rígido ou um dispositivo derede. Dentre os exemplos deste tipo de aplicativo podemos citar: SPEC, Lavalys EVEREST,CPU-Z, AS3AP, Wisconsin, Java Micro Benchmark, miniBench, Dhrystone, Nvidia, Geforce,entre outros.2.4.4 Utilização dos Benchmarks Este tipo de técnica pode ser empregado de diferentes maneiras e em diferentes ambientescomputacionais. Dentre eles, segundo MACIEL (2008, p. 20), podemos citar:  Teste de ambiente: Benchmarking são úteis para responder perguntas como “Qual o melhor ambiente que suportará minha carga de trabalho?”. Onde o ambiente pode ser caracterizado por: tipo da CPU, arquitetura do sistema, tamanho da memória, tipo do disco, tipo do sistema de arquivo, número de discos.  Ajustes de desempenho: Uma segunda abordagem para aplicações de benchmarking é quando se deseja fazer ajustes de desempenho de sistemas. O objetivo é identificar onde estão às contenções e então promover mudanças e/ou alterações na estrutura do sistema, com o propósito de solucionar tais contenções. Por exemplo: alterar parâmetros de memória, redimensionar a capacidade de armazenamento do disco, promover mudanças na configuração do SGBD.
    • 60  Comparação de Softwares, Hardwares e Sistemas: Outro tipo de utilização deste tipo de técnica está na comparação de ferramentas. Com isso, é possível analisar o desempenho de diferentes plataformas, que possuem um mesmo desígnio operacional, para descobrir qual destas possui uma melhor performance. Um exemplo prático são os SGBDs, que possuem diferentes tipos, nomes, fabricantes, versões, aplicações, entre outros, mas que são utilizados com a mesma funcionalidade de gerenciar banco de dados, e que, através do benchmarking, pode-se perceber qual a aplicação que possui um melhor tempo de resposta de uma requisição.2.4.5 Estratégias do Benchmark A maioria dos Benchmarks baseia a medida do desempenho no tempo requerido para suaexecução. Segundo RAMOS (2008), existem outras estratégias que podem ser empregadas emum benchmark. Elas podem ser divididas em três categorias:  Medida de tempo requerido para executar computação fixa de instruções;  Medida de quantidade de computação em um determinado tempo;  Híbrida, uma mistura das duas estratégias anteriores. Além destes fatores, outros dois devem ser levantados em conta no processo de avaliaçãode desempenho de um sistema, como o objetivo do estudo e as características do própriosistema. Um exemplo a ser citado que justifique a afirmação, segundo MARCIEL (2008),seria as diferenças de métricas usadas na comparação de desempenho de dois discos e de umsistema de banco de dados. Basicamente, quando se avalia o desempenho de sistemas computacionais, é comum autilização de algumas métricas, como:  Taxa de serviço: que é a quantidade de tarefas executadas pelo sistema por unidade de tempo;
    • 61  Tempo de resposta: que compreende o tempo entre a chegada da tarefa e a resposta do sistema;  Utilização: que representa o percentual de tempo que o sistema ficou ocupado realizando a tarefa. O recurso com maior utilização é dito ser o gargalo do sistema;  Disponibilidade: que é a porção do tempo em que o sistema fica à disposição dos usuários para atender às requisições.2.4.6 Erros do processo de Benchmarking O processo de benchmarking é uma tarefa complexa, de grande importância nasorganizações e que requerem um razoável número de passos para sua execução. Desse modo,estas atividades, objetivos, escolhas estão passiveis de erros. Portanto, MACIEL (2008)apresenta uma lista de erros comuns em um processo de benchmarking, sendo eles:  É comum que os analistas coletem muitos dados e não deem a atenção necessária ao processo de coleta, bem como a análise dos dados coletados. É importante que a equipe de analistas tenha conhecimentos sólidos relativos às métricas de desempenho, do sistema a ser estudado, e assim coletar realmente os dados que reflitam no desempenho do sistema;  Em muitas situações é comum o interesse pela obtenção de valores médios, como por exemplo, número médio de requisições de leitura e escrita em espera na fila de disco. Em determinados casos, é importante representar e analisar as variações do comportamento do sistema;  Geralmente, programas que simulam uma carga de trabalho têm uma série de parâmetros que podem ser alterados para variar a carga no sistema. Por exemplo, o número de usuários ou o número de transações por usuário. Um aumento no número de transações aumenta drasticamente a carga de trabalho, mas talvez não represente a carga real do sistema. Um aumento no número de usuários pode demandar mais recursos do sistema, por exemplo, maior número de máquinas clientes, consumo maior de memória, CPU mais rápido, entre outros.
    • 622.4.7 Análise dos dados Os dados coletados durante e após o término do processo de benchmarking devem seranalisados cautelosamente. Isto porque, de acordo com MARCIEL (2008), o nãoentendimento ou a má interpretação poderá causar efeitos não desejáveis de grande impactona organização. Os aspectos a serem levados em conta são:  Não desprezar o efeito da variabilidade: Métricas que apresentem um valor alto (por exemplo, tempo de resposta) por um razoável período de tempo podem estar causando degradações significativas à produtividade do sistema;  Métricas dependentes: Certas métricas precisam ser relacionadas e/ou comparadas entre si para que determinem algum comportamento ou problema no sistema;  Comportamentos diferentes, valores diferentes: Nem sempre parâmetros com altos valores indicam gargalos no sistema.2.4.8 Benchmarking do Servidor Proxy Como descrito no tópico 2.4.1., podemos entender o processo de Benchmarking comosendo a utilização de um programa para testar a performance de um software, hardware ouum sistema. Segundo RAMOS (2008), para medir a velocidade máxima de um carro é precisoque ele esteja em movimento. Da mesma maneira, para avaliar o desempenho de um sistemacomputacional, é necessário que um programa esteja em execução. A melhor e mais fácil maneira de avaliar o desempenho de um sistema é executá-lo noambiente de estudo, mas isto nem sempre é possível, pois o custo para isto pode não servantajoso. Ás vezes, a aplicação não existe e o desenvolvedor, por exemplo, precisa saber se épossível ou não desenvolver determinado tipo de aplicação para o sistema, podendo então,ocasionar custos que não terão o custo/benefício desejado. É neste contexto que surgem osprogramas de benchmarks, que realizam testes nos sistemas de acordo com o planejamentodos seus desenvolvedores. Como dito anteriormente, realizar um benchmark em um consiste em executar umasérie de cargas de trabalho com características bem definidas a fim de avaliar o desempenhodo mesmo levantado em questão. A fim de avaliar o desempenho do Servidor Proxy
    • 63Virtualizado, é necessário utilizar um software de benchmark, pois de acordo comROUSSKOV e WESSELS (2003), essa é a maneira mais apropriada de medir o desempenhode um servidor e muitas empresas no mundo todo a utilizam, por reduzir a necessidade dedeslocamento de uma equipe para realização das simulações.2.4.9 WebPolygraph O WebPolygraph é uma ferramenta de benchmark gratuita e de código aberto, baseadosobre a licença Apache License Version 2.0, desenvolvida para avaliação de Servidores Proxy.Esse software opera em servidores e clientes virtuais, manipulados de acordo com asespecificações criadas analisando o desempenho das mesmas. Dentre suas principais características, podemos citar a alta performance com clientes eservidores HTTP, gerador de tráfego real dos protocolos HTTP, FTP e SSL, suporte deautenticação no Proxy utilizando HTTP Básico e NTLM, simulação de conteúdo flexível,poderosa linguagem de configuração de domínio, implementação portátil OpenSource esuporte comercial amigável.2.4.9.1 Metas da ferramenta WebPolygraph Algumas características podem ser consideradas padrão para qualquer avaliação dedesempenho: cargas de trabalho, experiências repetidas, medidas significativas e abrangentes,e reprodutibilidade dos resultados. Segundo ROUSSKOV e WESSELS (2003), essascaracterísticas são bem compreendidas e criam a base do projeto do WebPolygraph, levandoassim a criação de um padrão industrial e o acréscimo de mais objetivos a mesma, como:  Escalabilidade: Ele deve ser capaz de testar qualquer unidade de cache web sem alterar os parâmetros da carga de trabalho, exceto para as requisições em níveis de pico e/ou capacidade do cache. Uma unidade individual de cache, em qualquer lugar, pode apoiar de dez a dez mil pedidos por segundo;  Flexibilidade: A ferramenta deve ser capaz de produzir uma ampla gama de carga de trabalho, desde micro até macro solicitações. Ela também deve dar suporte a novas cargas de trabalho relacionadas ao WebProxy, como por exemplo, servidores de aceleração, Proxy reverso e switches balanceadores de carga;
    • 64  Portabilidade: Deve ser utilizada em uma variedade de ambientes, como sistemas operacionais e plataformas de hardwares diferentes;  Eficiência: A ferramenta deve utilizar o hardware disponível da melhor maneira possível. Softwares de avaliação comparativa requerem quantidades excessivas de hardware a fim de gerar a carga suficiente para os testes, mas isso acaba limitando o número de usuários que podem executar seus próprios testes.2.4.9.2 Visão geral sobre a arquitetura De maneira geral, seu funcionamento ocorre da seguinte maneira: os clientes, ourobôs, geram solicitações simuladas de objetos HTTP. O WebPolygaph usa uma combinaçãoconfigurável de protocolos HTTP/1.0 e HTTP/1.1, opcionalmente com criptografia SSL ouTSL (Secure Sockets Layer - Segurança da Camada de Transporte). Então, esses pedidos sãoenviados para os servidores de destino através do WebProxy. Através das requisições, oWebPolygraph salva em arquivos de logs as estatísticas geradas através das realizações dassolicitações, permitindo, assim, uma análise detalhada destes após o termino dos testes. Sua estrutura principal se divide em:  Robôs: Os robôs do WebPolygraph são responsáveis pela geração do trafego da web do lado do cliente. Para ROUSSKOV e WESSELS (2003), inicialmente os robôs eram chamados de clientes e depois foram renomeados para usuários, mas estas denominações causaram maus entendimentos e confusões. Por isso foi escolhido robô como nome, pois é uma designação neutra e que não cria fortes associações enganosas. Estes robôs podem ser configurados individualmente ou coletivamente, estando dentro de um mesmo processo, sendo que um único processo do tipo polygraph-client pode gerenciar milhares de robôs. Dependendo da configuração, um robô pode emular, por exemplo, um usuário final navegando na web através de um navegador gerando assim centenas de solicitações HTTP por segundo e mantendo milhares de conexões concorrentes por hora. Através disto, pode-se simular cargas de trabalho reais, com centenas e até milhares de robôs atuando como usuários finais que navegam na web gerando cache das páginas solicitadas.
    • 65 Servidores: Os servidores do WebPolygraph geram respostas para as solicitações HTTP realizadas pelos robôs. O conteúdo suportado do tráfego web por essa ferramenta é muito amplo, sendo tais como tipos de conteúdos, distribuições de tamanhos, modificações de objetos e tempo de expiração destes, capacidade de cache e objetos incorporados. Os servidores são implementados como processos lógicos dentro de um processo do tipo polygraph-server. Como no caso dos robôs, é necessária a utilização de vários servidores lógicos dentro de um mesmo processo. Cada servidor individual se liga a um endereço de rede e portas específicas, de modo que a execução de milhares de servidores em uma única máquina não ocasione problemas. Entretanto, através da utilização do Servidor Proxy, o mesmo lida com uma parte da carga das solicitações direcionadas aos servidores, com isso, estes não ficam sobrecarregados e muitas das solicitações nunca chegam neles. WebProxy: A ferramenta de benchmarking WebPolygraph considera o cache do Servidor Proxy como uma “caixa preta”. Isso significa que todas as medições necessárias são feitas pela própria ferramenta. Através dessa abordagem, por exemplo, não podemos medir ou relatar os níveis de utilização de CPU e de disco para o Proxy cache em teste. A medição destes dois componentes pode ser realizada através de ferramentas de terceiros para extrair e registrar os dados de desempenho diretamente do Proxy. Em determinados casos, o mínimo de informação sobre a configuração do Proxy é necessária, pois, por exemplo, algumas cargas de trabalho exigem que o cache comecem completamente vazio para o WebPolygraph em si preenche-lo. Além do mais, isso requer o conhecimento prévio da capacidade de armazenamento de cache.
    • 66 3 INSTALAÇÃO DAS FERRAMENTAS Neste capítulo serão abordadas as instalações das ferramentas que serão utilizadas paraa realização deste trabalho. As ferramentas escolhidas citamos o VMware vSphere 5 ESXi,que é a ferramenta de virtualização, o Red Hat Linux Enterprise 6, sistema operacionalescolhido para criação do servidor, o Squid, ferramenta de WebProxy gratuita, e oWebPolygraph, que é a ferramenta de benchmark escolhida para a realização dos testes dedesempenho dos servidores.3.1 VMware vSphere ESXi 5.0 Algumas observações devem ser compreendidas antes de começar:  Esta ferramenta necessita de no mínimo um processador Dual Core de 64 bits;  A máquina precisa ter no mínimo 2 GB de RAM para que ocorra a instalação do VMware vSphere ESXi 5 e 2 placas de redes, sendo uma NIC (Network Information Center – Centro de Informação de Redes) e outra para a interface de gerenciamento;  É necessário que a placa-mãe tenha suporte à tecnologia de virtualização do processador (VT (Tecnologia de Virtualização Intel) no caso dos processadores Intel e AMD-V nos processadores AMD);  É preciso registrar-se no site da VMware para obter o número de série que será utilizado para ativar os programas instalados.
    • 673.1.1 Primeiros passos Para fazer o download das ferramentas, primeiramente vamos ao site da VMwareatravés do link https://my.VMware.com/web/VMware/registration e criamos nosso usuário.Após preencher os campos e aceitar os termos e condições do contrato conforme solicitadopelo site, seguimos para o próximo passo que é a verificação do email utilizado. Após esseprocedimento, fazemos o login através do email ou o nome de usuário utilizado mais arespectiva senha. Com isso, fazemos a solicitação da licença do VMware ESXi 5. Essasolicitação exige a verificação de dados pessoais, que podem ser realizados pelo linkhttps://my.VMware.com/web/VMware/registration?source=dwnp&p=free-esxi5. Logo após daliberação da licença, iniciamos o download do VMware vSphere Hypervisor 5 e do VMwarevSphere Client através do link https://my.VMware.com/group/VMware/evalcEnter?p=free-esxi5. Nesta mesma página também encontramos o código gerado pela própria VMware paraativação das ferramentas, conforme a imagem abaixo: FIGURA: 1 – INFORMAÇÕES DE DOWNLOAD E LICENCIAMENTO FONTE: ACERVO PESSOAL
    • 68 Após o termino dos downloads, gravamos a imagem ISO do VMware ESXi 5 no cd.Em outro cd, gravamos também o VMware vSphere Client, que é o software utilizado pararealizar a conexão ao servidor de virtualização, ou seja, a interface de gerenciamento.3.1.2 Instalando o VMware vSphere ESXi 5.0 Após realizar os passos anteriores, vamos para o processo de instalação da ferramenta.Antes de tudo, ativamos a funcionalidade de virtualização do processador. Para isso, bastaacessar a BIOS e ativar a tecnologia de virtualização. Logo após, colocamos o CD doVMware vSphere 5 no servidor e damos o boot, conforme a imagem abaixo: FIGURA: 2 – ESCOLHA DO BOOT FONTE: ACERVO PESSOAL Esperamos então o instalador carregar, o que pode demorar cerca de vários minutos.Após carregar todas as opções necessárias, aparecerá uma tela com algumas informaçõessobre a ferramenta. Pressione Enter para continuar:
    • 69 FIGURA: 3 – TELA DE INSTALAÇÃO DO VMWARE VSPHERE ESXI 5 FONTE: ACERVO PESSOAL Quando aparecer os termos de licenciamento, ou EULA, pressionamos “F11” paraaceitar a licença. A licença descrita acima corresponde ao licenciamento de utilização daferramenta VMWare vSphere ESXi 5.0, e repassa aos usuários informações que dizemrespeito, por exemplo, a cópia e distribuição dessa ferramenta. Logo após, o VMWaredetectará os discos do servidor. Em seguida, selecionamos o disco em que desejamos instalaro VMware ESXi, pressionamos Enter e aguardamos. Uma mensagem de confirmação do HDselecionado aparecerá, e para confirmar a escolha, pressione Enter. Entretanto, todos os dadoscontidos neste serão apagados. Portanto, caso não tenha feito o Backup dos dados, aperte“Esc” para abortar a instalação e faça o “backup” dos mesmos. Caso todas as informações descritas sejam realizadas, pode-se prosseguir com oprocesso de instalação da ferramenta VMWare vSphere ESXi 5.0.
    • 70 FIGURA: 4 – CONFIRMAÇÃO DE ESCOLHA DE DISCO FONTE: ACERVO PESSOAL Logo em seguida, selecione o tipo de teclado desejado e pressione Enter. Por padrão, aescolha é US Default. Na tela seguinte, escolha uma senha de no mínimo 7 caracteres para ousuário root e confirme-a, pressionando depois o Enter para continuar. FIGURA: 5 – DEFINIÇÃO DA SENHA DO ROOT FONTE: ACERVO PESSOAL
    • 71 Logo em seguida, se aparecer uma mensagem de erro, será necessário reiniciar oservidor, entrar na BIOS e ativar a opção de virtualização do processador. Caso não apareça oerro citado anteriormente, pressione F11 na tela de confirmação de instalação para instalar oVMware ESXi 5. Uma nova tela de instalação aparecerá. Aguarde até a conclusão desta, oque pode demorar alguns minutos. Depois de instalado, deve-se reiniciar o servidor,pressionando Enter para realizar esta operação. FIGURA: 6 – TELA DE REINICIO DO SERVIDOR APÓS INSTALAÇÃO DA FERRAMENTA FONTE: ACERVO PESSOAL Após reiniciar o servidor, alteramos o mesmo para iniciar o boot do disco em que oVMware ESXi 5 foi instalado. Após o boot, aguarde o carregamento do sistema. Na telaabaixo, pressione F2 para configurar o VMware. Logo após, digite o usuário root e a senhadefinida na instalação e pressione Enter.
    • 72 FIGURA: 7 – TELA DE LOGIN DO VMWARE VSPHERE ESXI 5 FONTE: ACERVO PESSOAL Selecione a opção “Configure Management Network” para configurar a rede doservidor e pressione Enter. Marque a opção “Set static IP address and network configuration”para definir como estático o endereço IP do servidor. Logo após, preencha os dados de acordocom as informações da rede e tecle Enter. As informações citadas correspondem, porexemplo, a faixa de IP distribuída pelo servidor DHCP da Rede de Computadores, a máscarade sub-rede, e o Gateway, endereço no qual o servidor irá direcionar suas requisições.
    • 73 FIGURA: 8 – DEFINIÇÃO DO ENDEREÇO IP FONTE: ACERVO PESSOAL Logo após configure as informações dos servidores DNS de acordo com asconfigurações da rede. FIGURA: 9 – DEFINIÇÃO DO SERVIDOR DNS FONTE: ACERVO PESSOAL
    • 74 Com isso a configuração do VMware vSphere ESXi 5 estará completa. Paraadministrar o sistema e criar máquinas, é necessária a instalação do VMware vClient.3.1.3 Instalação do VMware vSphere Client O VMware vSphere Client é um software de gerenciamento do VMware vSphereESXi 5. É através dele que administramos e criamos as máquinas virtuais no servidor devirtualização. Esse cliente pode ser instalado em plataformas que contenham como sistemaoperacional, no mínimo, o Microsoft Windows XP para Desktop ou o Microsoft WindowsServer 2000 para Servidores. Para realizar o download desta ferramenta, acessamos o link https://my.VMware.com/group/VMware/evalcEnter?p=free-esxi5. Após realizar o download do VMware vSphereClient, fazemos a instalação da mesma. Com um duplo clique no arquivo executável que foibaixado, é iniciada a extração dos arquivos. Na primeira tela que aparecer, escolhemos oidioma de instalação. Após essa escolha, clicamos em OK e prosseguimos. Na tela abaixoinforma que o software VMware vSphere Client 5.0 será instalado. Clicamos em Next paraprosseguir. FIGURA: 10 – TELA DE INÍCIO DE INSTALAÇÃO DO VMWARE VSPHERE CLIENT 5.0 FONTE: ACERVO PESSOAL
    • 75 Na tela seguinte é nos passado algumas informações sobre o VMware Client.Clicamos em Next para prosseguir. Em seguida temos os termos de contrato e licença. Paraaceitar os termos, marcamos a opção “I agree to the terms in the licence agreement" eclicamos em Next, conforme a figura abaixo. FIGURA: 11 – TERMOS DE CONTRATO E LICENÇA FONTE: ACERVO PESSOAL Na tela seguinte digitamos algumas informações sobre o usuário, como nomecompleto e organização a serem registradas. Após isso, clicamos em Next e prosseguimos.Logo após, nos é apresentado a pasta de destino onde o VMware vSphere Client seráinstalado. Para alterar, clicamos em Change e escolhemos o novo diretório. Clicamos em Nextpara continuar.
    • 76 FIGURA: 12 – ESCOLHA DA PASTA DE INSTALAÇÃO FONTE: ACERVO PESSOAL Em seguida clicamos em Install para instalar o produto. Aguardamos alguns minutospara concluir esse procedimento. Ao terminar a instalação, a seguinte tela aparecerá. Clicamosem Finish para concluir a instalação do VMware vSphere vClient 5.0 em nosso sistemaoperacional FIGURA: 13 – TELA DE FINALIZAÇÃO DE INSTALAÇÃO DO VMWARE VCLIENT FONTE: ACERVO PESSOAL
    • 77 Após a instalação, executamos o VMware vClient através do atalho criado na área detrabalho ou então pelo menu iniciar. Na tela inicial, digitamos o endereço IP ou nome doservidor, o usuário root e a senha cadastrada na configuração do mesmo. Para acessar oservidor pelo nome, é necessário ter o cadastro desse nome no servidor DNS da rede. FIGURA: 14 – CONEXÃO COM O VMWARE VSPHERE ESXI 5 FONTE: ACERVO PESSOAL Ao iniciar a conexão, uma mensagem aparecerá. Através desta um certificado deconexão SSL poderá ser instalado no servidor do VMware vSphere ESXi 5, no qualproporciona uma maior segurança nas conexões realizadas neste. Para instalar essecertificado, marcamos a opção de instalação do certificado, clicamos no botão de acesso a elee instalamos o certificado. Caso deseje ignorar esta parte, basta clicar em “Ignore” eprosseguir com o VMware vSphere vClient. Depois de logar, a tela inicial do clienteaparecerá, conforme imagem a seguir:
    • 78 FIGURA: 15 – TELA INICIAL DO VCLIENT FONTE: ACERVO PESSOAL Para criar uma máquina virtual, podemos utilizar o atalho “Ctrl” + “N” ou clicar com obotão direito do mouse sobre o servidor e selecionar a opção “New Virtual Machine”. Comuso uma nova tela para a criação da máquina virtual aparecerá. Selecionamos então o modode configuração, que neste caso será “Custom”, e clicamos em Next. FIGURA: 16 – CRIAÇÃO DE UMA MÁQUINA VIRTUAL FONTE: ACERVO PESSOAL
    • 79 Logo após selecionamos o nome da nova máquina virtual e clicamos em Next. Na telaseguinte selecionamos o local onde os dados serão armazenados e clicamos em Next. Depoisselecionamos a opção “Virtual Machine Version: 8” para escolher esta como a versão daMáquina Virtual. Clicamos em Next. FIGURA: 17 – ESCOLHA DA VERSÃO DA MÁQUINA VIRTUAL FONTE: ACERVO PESSOAL Escolhemos então o sistema operacional que será instalado na máquina virtual. OVMware vSphere ESXI 5 possui um amplo suporte aos mais diversos tipos de plataformas,podendo ser instalado na mesma diferentes versões de Windows, distribuições do Linux eoutros como Mac OS, FreeBSD, Oracle Solaris, IBM OS entre outros. Após a escolha dodevido S.O. que será utilizado na máquina virtual, clicamos em Next. Logo após selecionamosas opções relativas ao processador, sendo que estas variam de acordo com a CPU que oservidor possui. Clicamos em Next para avançar. Selecionamos depois a quantidade dememória RAM que a máquina utilizará e clicamos em Next. Na tela seguinte criamos asConexões de Rede da máquina virtual, que varia de acordo com o tipo serviço que seráoferecido pela mesma e a quantidade de placas de redes instaladas nesta. Clicamos em Nextpara prosseguir.
    • 80 FIGURA: 18 – DEFINIÇÃO DAS PLACAS DE REDE DA NOVA MÁQUINA VIRTUAL FONTE: ACERVO PESSOAL Depois selecionamos o controlador de disco da máquina virtual e clicamos em Next.Criamos então um disco virtual para máquina através da opção “Create a new virtual disk”.Next para prosseguir. Escolhemos então a capacidade do disco criado anteriormente. Clicamosem Next. Escolhemos então o ponto de montagem do disco e clicamos em Next. Na últimatela de criação da máquina virtual nos é demonstrado todas as configurações escolhidas nesseprocedimento. Para alterar alguma opção, marcamos a caixa de texto referente a edição damáquina virtual. Caso as configurações estejam corretas, clicamos em Finish para concluir acriação da máquina virtual. FIGURA: 19 – FINALIZAÇÃO DA CRIAÇÃO DA NOVA MÁQUINA VIRTUAL FONTE: ACERVO PESSOAL
    • 81 Na tela inicial do VMware vSphere Client, selecionamos a máquina virtual criada eentão temos acesso, através das abas referentes a ela, as opções oferecidas para administraçãoda máquina virtual. Clicando em “Edit virtual machine settings” podemos, na opçãoCD/DVD, por exemplo, referenciar o local por onde será dado o boot para instalação do S.O,sendo ele por CD, DVD ou até mesmo uma imagem ISO localizada no servidor ou em outrolocal de armazenamento. Para iniciar a máquina virtual, clicamos em “Power on the virtualmachine” e para ter acesso a interface gráfica da máquina virtual, selecionamos a aba“Console”. Outra maneira de conectar o driver de CD/DVD ou imagem ISO é através doícone em forma de CD encontrado no Menu de Opções, mas para utilizar esta opção, amáquina virtual deverá estar ligada. FIGURA: 20 – INICIANDO A MÁQUINA VIRTUAL CRIADA FONTE: ACERVO PESSOAL Depois que instalar o sistema operacional, é indispensável instalar o software VMwareTools para haver a comunicação entre Host VMware e a máquina virtual, bem como otimizaro uso de memória no host. Para instalar basta clicar com o botão direito do mouse na máquinavirtual e clicar na opção Install/Upgrade VMware Tools. Será aberta uma tela em que épossível instalar o software de modo interativo ou automático. Com isso, concluímos ainstalação e configuração do VMware vSphere ESXi 5 e do VMware vSphere Client.
    • 823.2 Red Hat Enterprise Linux 6 Para realizar a instalação do Red Hat Enterprise Linux 6, primeiramente realizamos ocadastro no site da Ret Hat através do link https://access.redhat.com/login. Após preenchertodos os dados solicitados, clicamos em Encaminhar para a criação da conta. Depois deverificar os dados pelo email digitado, basta clicar no link https://rhn.redhat.com/rhn/software/downloads/AllISOs.do e realizar o download da imagem ISO do Red Hat Enterprise Linux 6.Quando o download terminar, gravamos a imagem em um DVD e colocamos no servidor.3.2.1 Instalação Com o DVD do Red Hat 6 no seu devido lugar, damos o boot no servidor pelo mesmo.Com isso, teremos a tela inicial de instalação. Selecionamos a opção “Install or upgrade naexisting system” e apertamos Enter: FIGURA: 21 – TELA INICIAL DE INSTALAÇÃO DO RED HAT ENTERPRISE LINUX 6 FONTE: ACERVO PESSOAL
    • 83 Seguimos então para o próximo passo, que é um teste feito na mídia em que seencontra gravado o Red Hat 6. Selecionamos Skip e apertamos Enter para pular essaverificação. Com isso, uma tela do instalador gráfico do Red Hat aparecerá. Logo após seráoferecido diferentes opções de idioma, selecionamos a opção Português Brasil e clicamos emNext. FIGURA: 22 – ESCOLHA DO IDIOMA PADRÃO FONTE: ACERVO PESSOAL Logo em seguida, selecionamos a o teclado para o sistema, que neste caso seráPortuguês Brasileiro (ABNT 2) e clicamos em Avançar. Em seguida selecionamos os tipos dedispositivos que serão utilizados na instalação. Marcamos a opção “Dispositivos dearmazenamento básico” e clicamos em Avançar. Na tela seguinte escolhemos o nome damáquina, ou seja, como ela será identificada na rede. Digitamos o nome no lugar solicitado eclicamos em Avançar.
    • 84 FIGURA: 23 – ESCOLHA DO NOME DA MÁQUINA FONTE: ACERVO PESSOAL Logo após escolhemos a cidade correspondente ao fuso horário e clicamos emAvançar. Na próxima tela, é a vez de digitarmos a senha correspondente ao root. Depois dedigitar a senha e confirma-la, clicamos em Avançar. Logo em seguida escolhemos o tipo departição que será realizada no Disco Rígido. Caso seja apenas o servidor Red Hat que amáquina terá, escolhemos a opção “Utilize todo o espaço”. Caso o computador tenha ou forter mais algum S.O., criamos um particionamento personalizado.
    • 85 FIGURA: 24 – ESCOLHA DO PARTICIONAMENTO DE DISCO FONTE: ACERVO PESSOAL Depois de realizar o particionamento, é a vez de personalizar a instalação do Red HatEnterprise Linux 6. O mesmo, na parte superior, oferece modelos prontos, como ServidorBásico, Servidor de Banco de Dados, Desktop, Estação de Desenvolvimento entre outros, mastodos podendo ser adaptado de acordo com as necessidades. Na parte inferior temos osrepositórios adicionais que podem ser utilizados na instalação de programas. Marcamos asopções “Mínimo” na parte superior e “Red Hat Enterprise Linux” na parte inferior. Depoismarcamos a opção “Personalizar Agora” para escolher quais componentes serão instalados eclicamos em Avançar.
    • 86 FIGURA: 25 – PERSONALIZAÇÃO DA INSTALAÇÃO DO RED HAT ENTERPRISE LINUX 6 FONTE: ACERVO PESSOAL Com o intuito de deixar o Red Hat 6 com o maior desempenho possível para atuarcomo Servidor Proxy, marcamos apenas os pacotes “Desktop KDE”, “Plataforma Desktop” e“X Windows System“ correspondentes a opção “Desktops” e clicamos em Avançar, conformea imagem abaixo.
    • 87 FIGURA: 26 – DEFINIÇÃO DE INSTALAÇÃO DOS PACOTES ADICIONAIS FONTE: ACERVO PESSOAL A instalação do Red Hat Enterprise Linux 6 começará, podendo durar vários minutos.Ao término da instalação, será necessário reiniciar o sistema. FIGURA: 27 – TELA DE REINICIO DO SERVIDOR FONTE: ACERVO PESSOAL Com isso concluímos a primeira parte da instalação do Red Hat Enterprise Linux 6.
    • 883.2.2 Configuração Após reiniciar a máquina, damos o boot pelo HD para continuar o processo deinstalação do Red Hat 6. Com isso, uma tela de boas-vindas do mesmo aparecerá. Clicamosem Avançar para continuar. Na próxima tela é nos fornecido as informações da licença de usodo Red Hat Enterprise Linux 6. Para aceitar os termos e condições, marcamos a opção “Sim,Eu concordo com o Acordo de Licença” e clicamos em Avançar. Como a empresa Red Hat mantém um contrato de suporte com as empresas que pagampelos seus serviços, o Red Hat 6 solicita a ativação do produto. Mas isto não impede autilização do mesmo, pois podemos utiliza-lo normalmente, só que sem o suporte técnicoempresarial que a empresa oferece. Portanto, na tela de registro, basta clicar em Avançar paraprosseguir com a configuração do sistema. FIGURA: 28 – REGISTRO DO RED HAT ENTERPRISE LINUX 6 FONTE: ACERVO PESSOAL
    • 89 Logo após, nos é solicitado a criação de um usuário comum para o uso normal ou nãoadministrativo do sistema. Se quisermos criar este usuário, basta preencher todos os dadossolicitados. Caso contrário, ou seja, se quisermos manter apenas o usuário root, clicamos emAvançar. FIGURA: 29 – CRIAÇÃO DE NOVOS USUÁRIOS FONTE: ACERVO PESSOAL Logo em seguida configuramos a Data e a Hora do sistema. Clicamos em Concluirpara finalizar o processo de configuração. Na tela seguinte digitamos o Login e a Senha deusuário do sistema e pressionamos Enter para acessar o mesmo, conforme a tela abaixo.
    • 90 FIGURA: 30 – TELA INICIAL DE LOGIN FONTE: ACERVO PESSOALCom isso a configuração do Red Hat Enterprise Linux 6 estará completa.
    • 913.2.3 Registro do Red Hat Enterprise Linux 6 O registro do Red Hat Enterprise Linux 6, além de ser gratuito, garante ao sistema asatualizações do software. Para registrarmos este produto, basta ir ao menu Aplicativos, depoisno menu Administração e selecionar a opção de registro para atualizações do software, que éo registro do RHN. FIGURA: 31 – REGISTRO DO RED HAT ENTERPRISE LINUX 6 FONTE: ACERVO PESSOAL
    • 92 Uma tela de registro do Red Hat Network aparecerá. Clicamos então em “Avançar”para prosseguir. Na tela seguinte temos as opções de configuração da rede. Caso não tenha umProxy na rede, marcamos a primeira opção, caso contrário, marcamos a segunda opção.Depois de clicar em Avançar, fornecemos o Login e Senha da conta realizada no site da RedHat, conforme a imagem abaixo. FIGURA: 32 – LOGIN E SENHA PARA REGISTRAR O S.O. FONTE: ACERVO PESSOAL Clicando em Avançar, as informações são enviadas ao Red Hat Network. Logo apósaparecerá uma tela com os detalhes do sistema a ser registrado. Clicamos em Avançar paraprosseguir. Logo em seguida, nos é fornecido uma tela que faz uma breve explicação sobre asconfigurações de atualização do sistema.
    • 93 FIGURA: 33 – CONCLUSÃO DO REGISTRO FONTE: ACERVO PESSOAL Ao clicar em Concluir, estaremos finalizando o procedimento de registro do sistemaoperacional Red Hat Enterprise Linux 6.
    • 943.3 Squid A instalação do Serviço de WebProxy Squid pode ser realizada, principalmente, deduas formas: primeiramente através de comandos no terminal do sistema operacional, ouentão realizando o download do pacote através do link http://www.squid-cache.org/Versions/v3/3.2/. A alternativa que será utilizada neste trabalho será a primeiraopção. Para iniciar o processo de instalação do Squid, acessamos o terminal, que pode serencontrado no menu Aplicativos e depois na opção Sistema. Caso não esteja acessando omesmo como usuário ROOT, digitamos o comando “su –” e logo após a senha do super-usuário. Feito isso e com o devido acesso a Internet, digitamos o comando: #yum install squid Com isso, o processo de download e instalação do Squid será iniciado, conforme aimagem abaixo. Caso apareça alguma solicitação de confirmação, basta digitar a letra “y”para aceitar. FIGURA: 34 – TERMINAL CONTENDO AS INFORMAÇÕES DE INSTALAÇÃO DO SQUID 3.1 FONTE: ACERVO PESSOAL
    • 95 Para verificar os status do serviço, utilize o comando ainda como usuário ROOT: #service squid status Para criarmos o cache, temos que parar o serviço do Squid. Digitamos então ocomando caso o serviço esteja funcionando: #service squid stop Logo após criamos o cachê através do comando: #squid -z Reiniciamos então o serviço do squid através do comando: #service squid start Com isso o processo de instalação do Squid estará completo.3.4 WebPolygraph Para a instalação e realização dos testes com o software de benchmark WebPolygraph,utilizaremos uma máquina Desktop com o sistema operacional Ubuntu 12.04 PrecisePangolin. O procedimento de instalação do WebPolygraph pode ser realizado de três formasdistintas, sendo que a primeira é através do download do programa através do linkhttp://www.web-polygraph.org/downloads/, a segunda maneira através do Gerenciador deProgramas do Ubuntu, e o terceiro modo é pelo download do pacote de distribuição dosoftware destinado ao sistema operacional Ubuntu 12.04. Neste trabalho iremos utilizar aterceira opção devido a uma maior praticidade de instalação e utilização da mesma. Primeiramente acessamos o site http://www.ubuntuupdates.org/package/core/oneiric/universe/base/polygraph para realizar o download da ferramenta WebPolygraph 4.3.2, cujo opacote possui a extensão “.deb”.
    • 96 Após realizar o download, abrimos o Terminal pelo atalho do Painel Inicial. Então,como usuário ROOT, acessamos o diretório onde está o pacote do WebPolygraph que foibaixado e digitamos o comando para instalar a ferramenta, conforme descrito nas imagens aseguir: FIGURA: 35 – PÁGINA DE DOWNLOAD DO PACOTE DA FERRAMENTA WEBPOLYGRAPH FONTE: ACERVO PESSOAL Digitamos o comando para instalação da ferramenta: #dpkg -i polygraph_4.3.2-1_i386.deb Esse comando será responsável por desempacotar os dados do pacote da ferramentaWebPolygraph, e assim, posteriormente, através das configurações pré-definidas neste, serárealizado a instalação da ferramenta no Sistema Operacional Ubuntu 12.04.
    • 97FIGURA: 36 – TERMINAL CONTENDO O PROCESSO DE INSTALAÇÃO DO WEBPOLYGRAPH FONTE: ACERVO PESSOAL
    • 98 4 ESTUDO DE CASO O estudo de caso foi desenvolvido na Universidade Estadual de Goiás UnidadeUniversitária de Trindade, local este no qual o Trabalho de Conclusão de Curso serádefendido. Todas as informações apresentadas aqui são reais, baseadas em dados, estatísticase testes realizados na instituição. Para que fosse possível a realização deste estudo de caso, a instituição em questãodisponibilizou dois equipamentos de seu Laboratório de Informática para a instalação dasferramentas necessárias. Além do mais, a aprovação deste projeto se deve ao excelentealcance social e ao destaque da relevância do mesmo em aplicar um Servidor Proxy na UEGUnU Trindade, devido a mesma não possuir em operação esse tipo de serviço. A estruturação desta parte do trabalho foi baseada da seguinte forma: foram utilizadosdois computadores para a implementação das ferramentas necessárias. Em uma das máquinasfoi instalado fisicamente o Sistema Operacional Red Hat Enterprise Linux 6 e o Serviço deWebProxy Squid, conforme descrito nos capítulos 3.2 e 3.3 deste trabalho. Após as devidasconfigurações dos serviços, o Servidor Proxy ficou ativo na instituição por 7 dias com afinalidade de coletar dados suficientes para o estudo e a conclusão deste estudo de caso. Logo após este prazo, foi utilizada a segunda máquina disponibilizada pela UEG, noqual será instalado a ferramenta VMware ESXi 5, conforme descrito no tópico 3.1, para acriação da máquina virtual, e nesta máquina virtual será instalado o Sistema Operacional RedHat Enterprise Linux 6 e o Serviço de WebProxy Squid, sendo que as configuraçõesrealizadas nessa máquina serão semelhantes as alterações realizadas na primeira máquina.Com o propósito de coletar os dados, este serviço de WebProxy ficará operando por 7 dias, e,ao término do prazo, será feita a comparação dos resultados entre o primeiro com o segundoServidor Proxy.
    • 994.1 Projeção do estudo de caso Com a finalidade de que o resultado não tenha caráter duvidoso, foram utilizadas duasmáquinas idênticas, respeitando as devidas configurações destas. As mesmas possuem asseguintes especificações:  Processador Intel Pentium Dual Core E2180 de 2.0GHz  Placa Mãe PCWARE PW-945GCR  2 GB de Memória RAM 667 MHZ DDR2  HD Samsung 160 GB SATA  Gravadora de CD/DVD Samsung  2 Placas de Rede OffBoard Intelbras PCI Gigabit Ethernet PEG 132B Após a escolha do local onde as máquinas ficarão funcionando pelo prazodeterminado, foi iniciado o processo de instalação das ferramentas.4.2 Maquina 1 – Servidor Proxy Nativo Após a instalação do Sistema Operacional Red Hat Enterprise Linux 6 e do WebProxySquid, iniciamos o processo de configuração do servidor. A primeira configuração a ser feitaé com relação ao arquivo de configuração do Squid, o squid.conf, no qual ficará todas asregras necessárias para o funcionamento do serviço. O arquivo utilizado neste trabalho,localizado no diretório /etc/squid/, apresenta as seguintes especificações:########################################################################################### SCRIPT DE PROXY DO SQUID ## Autor: Marcus Winicius Oliveira Costa . ## Autor: Rayner Max Fernandes Lima . ## Orientador: Prof°.Esp. Antônio Cruvinel Borges Neto - 15/10/2012 ############################################################################################DEFININDO PORTA DE ACESSO
    • 100http_port 9090 transparent#DEFININDO NOME DO SERVIDORvisible_hostname proxynat#DEFININDO SERVIDORES DNS DE TESTEdns_nameservers 8.8.8.8dns_nameservers 8.8.4.4#DEFININDO POLITICA DE CACHEcache_mem 1280 MBmaximum_object_size 40 MBipcache_size 1024ipcache_low 90ipcache_high 95cache_swap_low 90cache_swap_high 95fqdncache_size 1024cache_replacement_policy lrumemory_replacement_policy lru#DETERMINANDO A ESTRUTURA DE DIRETORIOS, LOG E O ARMAZENAMENTO DE CACHEcache_dir ufs /var/spool/squid 2000 16 256coredump_dir /var/spool/squidcache_log /var/log/squid/cache.logcache_access_log /var/log/squid/access.logcache_store_log /var/log/squid/store.logpid_filename /var/run/squid.pidcache_effective_user squidcache_effective_group squidemulate_httpd_log onminimum_object_size 0 KBlogfile_rotate 7
    • 101#DETERMINANDO ATUALIZAÇÃO DOS ARQUIVOS DO CACHEhierarchy_stoplist cgi-bin ?refresh_pattern ^ftp: 1440 20% 10080refresh_pattern ^gopher: 1440 0% 1440refresh_pattern -i (/cgi-bin/|?) 0 0% 0refresh_pattern . 0 20% 4320refresh_pattern -i exe$ 0 50% 10080refresh_pattern -i zip$ 0 50% 10080refresh_pattern -i tar.gz$ 0 50% 10080refresh_pattern -i tgz$ 0 50% 10080#DEFININDO DE ACL POR PORTAacl manager proto cache_objectacl SSL_ports port 443 # httpsacl SSL_ports port 563 # https, snewsacl Safe_ports port 21 # ftpacl Safe_ports port 70 # gopheracl Safe_ports port 80 # httpacl Safe_ports port 210 # waisacl Safe_ports port 280 # http-mgmtacl Safe_ports port 443 # httpsacl Safe_ports port 488 # gss-httpacl Safe_ports port 563 # https, snewsacl Safe_ports port 591 # filemakeracl Safe_ports port 777 # multiling httpacl Safe_ports port 1025-65535 # unregistered portsacl CONNECT method CONNECTacl PURGE method PURGE#DEFININDO A FAIXA DE IP DA REDE INTERNA E DO LOCALHOSTacl redelocal src 192.168.1.0/24acl localhost src 127.0.0.1/32 ::1
    • 102acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1#BLOQUEANDO O USO DO IPV6acl to_ipv6 dst ipv6http_access deny to_ipv6 !all######################## DEFINICAO DE REGRAS ####################DEFININDO SITES QUE TODOS PODEM ACESSARacl siteslivres dstdomain "/etc/squid/regras/sites_livres"#DEFININDO SITES QUE TODOS PODEM FAZER DOWNLOADacl downloadliberado dstdomain "/etc/squid/regras/download"#DEFININDO SITES OU GRUPO DE ACESSO PADRAO QUE TODOS PODEM ACESSARacl acessopadrao url_regex -i "/etc/squid/regras/acesso_padrao"#DEFININDO SITES QUE NINGUEM PODE ACESSARacl sitesnegados dstdomain "/etc/squid/regras/sites_negados"#DEFININDO PALAVRAS QUE NINGUEM PODE ACESSARacl palavrasnegadas url_regex -i "/etc/squid/regras/palavras_negadas"#DEFININDO EXTENSÕES QUE SERÃO BLOQUEADAS OU LIBERADASacl download_geral urlpath_regex .ppt$ .pps$ .txt$ .doc$ .docx$ .pptx$ .ppsx$ .ppt?$ .pps?$ .txt?$.doc?$ .docx?$ .pptx?$ .ppsx?$ .pdf$ .pdf?$ .odt$ .odt?$ .ods$ .ods?$ .odp$ .odp?$acl bloqueiodownload urlpath_regex .cab$ .ocx$ .asf$ .wmv$ .mpg$ .mpeg$ .avi$ .mov$ .divx$ .ogm$.mp3$ .wma$ .rm$ .ram$ .com$ .scr$ .pif$ .bat$ .arj$ .ace$ .tar$ .gz$ .z$ .bin$ .lzh$ .lha$ .exe$.cab?$ .ocx?$ .asf?$ .wmv?$ .mpg?$ .mpeg?$ .avi?$ .mov?$ .divx?$ .ogm?$ .mp3?$ .wma?$ .rm?$.ram?$ .com?$ .scr?$ .pif?$ .bat?$ .arj?$ .ace?$ .tar?$ .gz?$ .z?$ .bin?$ .lzh?$ .lha?$ .exe?$ !siteslivresacl download_musica urlpath_regex .wav$ .asx$ .asf$ .wma$ .mp4$ .mp3$ .mp2$ .mp1$ .mpga$ .mpa$.midi$ .mid$ .cda$ .ogg$ .acp$ .sdp$ .au$ .wav?$ .asx?$ .asf?$ .wma?$ .mp4?$ .mp3?$ .mp2?$.mp1?$ .mpga?$ .mpa?$ .midi?$ .mid?$ .cda?$ .ogg?$ .acp?$ .sdp?$ .au?$acl download_video urlpath_regex .wtv$ .dvr-ms$ .3gp$ .vob$ .qt$ .mov$ .wmx$ .wvx$ .wax$ .wm$.wmv$ .mpeg$ .mpg$ .rv$ .rm$ .rmvb$ .avi$ .mov$ .divx$ .flv$ .wtv?$ .dvr-ms?$ .3gp?$ .vob?$ .qt?$.mov?$ .wmx?$ .wvx?$ .wax?$ .wm?$ .wmv?$ .mpeg?$ .mpg?$ .rv?$ .rm?$ .rmvb?$ .avi?$ .mov?$.divx?$ .flv?$acl download_executavel urlpath_regex .exe$ .bat$ .msi$ .pif$ .scr$ .dat$ .reg$ .com$ .exe?$ .bat?$.msi?$ .pif?$ .scr?$ .dat?$ .reg?$ .com?$
    • 103acl download_compactado urlpath_regex .zip$ .rar$ .7z$ .arj$ .cab$ .lha$ .lzh$ .targa$ .iso$ .xar$ .z$.zip?$ .rar?$ .7z?$ .arj?$ .cab?$ .lha?$ .lzh?$ .targa?$ .iso?$ .xar?$ .z?$#DEFININDO HORÁRIO DE EXPEDIENTEacl expediente time MTWHF 0:00-18:59acl fds time SA 8:00-11:59################## APLICACAO DAS REGRAS ########################http_access allow expedientehttp_access allow fdshttp_access deny managerhttp_access deny purgehttp_access deny !Safe_portshttp_access deny CONNECT !Safe_portshttp_access deny CONNECT !SSL_portshttp_access deny CONNECT sitesnegadoshttp_access deny CONNECT palavrasnegadashttp_access deny sitesnegadoshttp_access deny palavrasnegadashttp_access deny bloqueiodownloadhttp_access deny download_musicahttp_access deny download_videohttp_access deny download_executavelhttp_access deny download_compactadohttp_access allow redelocalhttp_access allow download_geralhttp_access allow downloadliberadohttp_access allow siteslivreshttp_access allow acessopadraohttp_access allow manager localhosthttp_access allow to_localhosthttp_access allow localhosthttp_access deny all
    • 104#E-MAIL DO ADMIN DO SERVIDORcache_mgr marcuswoc@gmail.com_ou_raynermaxfl@gmail.com#DIRETORIO PADRAO DAS TELAS DE ERROerror_directory /usr/share/squid/errors/pt-br/###############################FIM DO ARQUIVO SQUID.CONF############################## Após a edição do arquivo squid.conf, criamos a pasta “regras” dentro do diretório/etc/squid/ e dentro da pasta criada, criamos os arquivos “sites_livres”, “download”,“acesso_padrao”, “sites_negados” e “palavras_negadas”, que serão os arquivos que conterãoos sites ou palavras liberados ou bloqueados para acesso e download. Para a criação dosarquivos de Swap escolhido no arquivo de configuração, digitamos o comando “squid -z”como usuário ROOT. Para resolver problemas de proprietário e de permissões de escrita nosdiretórios de log e cache do squid, digitamos os comandos ainda como super usuário: #chown squid.squid /var/spool/squid #chmod -R 777 /var/spool/squid #chown squid.squid /var/log/squid #chmod -R 777 /var/log/squid Logo após, configuramos o squid para iniciar junto com o sistema. Para isso digitamoso comando “chkconfig squid on”. Desta maneira, na próxima reinicialização do sistema, osquid iniciará junto com o sistema. Como o serviço de firewall Iptables será utilizado pararedirecionamento dos pacotes, também habilitamo-lo para iniciar junto com o SistemaOperacional através do comando “chkconfig iptables on”. Para limpar as regras nativas, ativarmos o roteamento de pacotes da porta 80 para aporta 9090, porta em que o serviço irá trabalhar e que foi definida no squid.conf, e mascararas requisições pós-processadas à interface de conexão com a internet digitamos o seguintescomandos: #iptables -F #iptables -t nat -A PREROUTING -s 192.168.1.1/24 -p tcp --dport 80 -j REDIRECT --to-port 9090
    • 105 #iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE Para habilitar o modulo do NAT do iptables e os redirecionamentos, basta digitar oscomandos: #modprobe iptable_nat #echo 1 > /proc/sys/net/ipv4/ip_forward Toda vez que o sistema for reinicializado, qualquer alteração de regra realizada noiptables será perdida. Para que não seja refeita todas estas configurações, podemos adicionaras linhas acima no final do script de inicialização do iptables, localizado em/etc/init.d/iptables. Para resolver problemas de resolução de nomes DNS, adicionamos as seguintes linhasno arquivo /etc/resolv.conf: nameservers 192.168.167.254 nameservers 192.168.168.254 Algumas alterações são necessárias nas interfaces de rede, como por exemplo, iniciar aconexão automaticamente, definir um IP estático para as placas de rede e desativar asconexões usando o protocolo IPv6. No primeiro caso, digitamos os seguintes comandos ealteramos as propriedades Onboot de “off” para “on”: #vi /etc/sysconfig/network-scripts/ifcfg-eth0 #vi /etc/sysconfig/network-scripts/ifcfg-eth1 No segundo caso citado acima, para definir um IP estático para as placas de rede,digitamos os mesmos comandos acima e alteramos ou acrescentamos as seguintes linhas deacordo com cada placa de rede, sendo que cada placa recebe um IP diferente através dapropriedade “IPADDR”: BOOTPROTO=static IPADDR=192.168.1.1 NETMASK=255.255.255.0
    • 106 GATEWAY=192.168.1.73 DNS1=192.168.167.254 DNS2=192.168.168.254 No último caso, temos que seguir determinados passos. Primeiramente editamos oarquivo network localizado no diretório “/etc/sysconfig/” e alteramos a propriedade“NETWORKING_IPV6” de “yes” para “no”. Caso a propriedade não exista, acrescentamo-lacom a opção “no”. Logo após alteramos o arquivo modprobe localizado no diretório “/etc/” eacrescentamos as seguintes linhas abaixo no final do arquivo: alias net-pf-10 off alias ipv6 off Para desativar o serviço de IPv6 e remove-lo da inicialização automática, digitamos oscomandos “service ip6tables stop” e “chkconfig ip6tables off” como super usuário. Porúltimo, digitamos o comando /etc/sysctl.conf no terminal e acrescentamos as 4 linhasseguintes no final do arquivo: # IPv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 Com todas as devidas configurações realizadas, digitamos então os comandos abaixopara iniciar os serviços de placa de rede, Squid e Iptables: #service network restart #service squid start #service iptables restart Depois de reiniciar, caso não apareça nenhuma mensagem de erro, significa que todasas configurações dos serviços foram realizadas com sucesso. Após reiniciar os serviçosatravés dos comandos acima, digitamos o comando “cat
    • 107/proc/sys/net/ipv6/conf/all/disable_ipv6” para saber se o IPv6 foi desativado. Se o resultadodo comando for 1, então o serviço foi desabilitado. Desabilitamos então a interface gráfica, editando o arquivo inittab localizado nodiretório “/etc/”. A edição a ser feita é substituir a linha “id:5:initdefault:”., localizada nofinal do arquivo, por “id:3:initdefault:”. Reiniciamos então o servidor para finalizar asconfigurações. Após o reinício da máquina, digitamos o comando “squid -k rotate” parainiciar o processo de rotação dos arquivos de logs e assim finalizamos o processo deconfiguração do Servidor Proxy Squid.4.3 Maquina 2 – Servidor Proxy Virtualizado Inicialmente é realizada a instalação da ferramenta VMware vSphere ESXi 5,conforme descrito no tópico 3.1. Após a instalação desta, reiniciamos o servidor para iniciar aconfiguração do mesmo. Após recarregar todos os módulos necessários, apertamos a tecla F2,e digitamos o usuário ROOT e a senha pré-definida na instalação, e, com isso, entramos natela de configuração do sistema. Acessamos então a terceira opção e pressionamos Enter paraconfigurar as opções de rede. Na primeira opção alteramos a quantidade de placas de redesque serão conectadas no VMware vSphere ESXi 5. Depois acessamos a opção “IPConfiguration” para definir o IP da placa de rede que será acessada pelo VMware vSphereClient. Definimos então a opção de IP Estático e definimos os seguintes parâmetros de acordocom a rede de computadores: IP Address = 192.168.1.3 Subnet Mask = 255.255.255.0 Default Gateway = 192.168.1.73 Após teclar o Enter, acessamos a quinta opção e definimos os IPs dos servidores DNScomo estático ou automático, sendo esta configuração realizada de acordo com a rede, e, nestetrabalho, foi definido como: Primary DNS Server = 192.168.167.254 Alternate DNS Server = 192.168.168.254
    • 108 Após estas configurações iniciais, teclamos o “Esc” duas vezes para retornar a telainicial. Caso apareça alguma mensagem de aviso, basta pressionar o “y” para confirmar asalterações realizadas. Após isso, instalamos o VMware vSphere Client em um notebook, porexemplo, ou em alguma outra máquina que contenha o Sistema Operacional Windows XP,Vista, 7 ou Server 2003 ou Server 2008 para a criação da máquina virtual, conforme descritono tópico 3.1.3. Após a instalação, digitamos no campo “IP Address / Name” o IP definido naconfiguração acima: 192.168.1.10, o nome de usuário ROOT e a senha escolhida durante ainstalação do VMware vSphere ESXi 5. Caso apareça uma mensagem de segurança,marcamos a caixa de texto que relata sobre a instalação do certificado de segurança eclicamos em “Ignore” para prosseguir. Na janela que aparecer, selecionamos o IP do servidorVMware vSphere ESXi 5 e clicamos no menu “File”, opção “New” e depois em “VirtualMachine”. Criamos então a Máquina Virtual conforme o tópico 3.1.3, e clicamos no íconecorrespondente ao “Power on” para ativá-la, e navegamos até a aba “Console” para monitorara instalação do Red Hat Enterprise Linux 6. Após a instalação do Sistema Operacional Red Hat Enterprise Linux 6 e do WebProxySquid, iniciamos o processo de configuração do servidor. Com intuito de não ocorrerdivergências no processo de instalação, podendo assim gerar uma alteração ou uma fraude nosresultados, a instalação e configuração das duas ferramentas citadas serão realizadas conformeo tópico 4.2. Apenas uma alteração será realizada, que é no arquivo squid.conf, alterando onome do servidor de ProxyNat para ProxyVirt na linha “visible_hostname”. Desta formatemos dois Servidores Proxy trabalhando de maneira idêntica, sendo que um está instaladonativamente e o outro está instalado virtualmente.4.4 Configuração física e lógica da Rede de Computadores Com a finalidade de obter um melhor ambiente para a realização do estudo de caso, foinecessária uma modificação na estrutura lógica e física da rede de computadores daUniversidade Estadual de Goiás Unidade Universitária de Trindade. Inicialmente, foideparado com a situação descrita abaixo:
    • 109 FIGURA: 37 – ESTRUTURA INICIAL FONTE: ACERVO PESSOAL O acesso à internet é fornecido pela antena externa, segue via cabo Ethernet para oroteador wireless da marca TP-Link TL-WR340G, e o mesmo é distribuído à secretaria porum switch, para o laboratório de informática e para a biblioteca através de outro switch e viawireless para o restante dos usuários. O DHCP (Dynamic Host Configuration Protocol ouProtocolo de configuração dinâmica de host), que é a distribuição dos endereços IPs pela redede computadores, é feita automaticamente pelo mesmo roteador wireless. Após a análise da estrutura inicial descrita, almejava-se realizar as seguintes mudançasna Rede de Computadores e atingir os objetivos descritos a seguir:
    • 110 FIGURA: 38 – ESTRUTURA DESEJADA FONTE: ACERVO PESSOAL Na estrutura desejada, o acesso a internet é fornecido pela antena externa e segue viacabo Ethernet para a primeira placa de rede do Servidor Proxy. Com as configuraçõesrealizadas no mesmo, o acesso a internet sairia do Proxy para o primeiro switch e assim seriadistribuída para o laboratório de informática, à biblioteca, ao primeiro roteador wireless TP-Link TL-WR340G, que seria o DHCP principal da rede, e logo em seguida iria para osegundo switch e finalmente seria repassado para o segundo roteador wireless TP-Link TL-WR340G. Desta maneira, temos duas rede wireless, sendo a primeira denominada“Ueg_Trindade_01”, e a segunda “Ueg_Trindade_02”, que possuem senhas de acessosemelhantes e que, mesmo o segundo roteador wireless possuindo um DHCP próprio para asegunda rede wireless, o mesmo respondia ao acesso do Servidor Proxy. Conforme é possível de verificação no capítulo 4.5, não foi possível concretizar aestrutura desejada, pois a mesma apresentou uma série de problemas, sendo o principal delesa não possibilidade de conexão do Servidor Proxy com a antena de recepção do acesso ainternet.
    • 111 Devido a isto, foram realizadas algumas alterações no esboço esperado e foi definida,para realização dos testes de desempenho, a seguinte estrutura: FIGURA: 39 – ESTRUTURA OBTIDA FONTE: ACERVO PESSOAL Na estrutura obtida, o acesso a internet é fornecido pela antena externa e segue viacabo Ethernet para o primeiro roteador wireless. Através de uma configuração de gatewayrealizada neste, o roteador envia as requisições para o Servidor Proxy por um cabo conectadona primeira placa de rede, o Proxy realiza o controle de acesso, e então a requisição retornapela segunda placa de rede para o roteador. Com as configurações realizadas, o acesso ainternet é repassada para o primeiro switch e assim é distribuída para o laboratório deinformática, para a biblioteca, e logo em seguida para o segundo switch localizado nasecretaria e finalmente é repassado para o segundo roteador wireless. Desta maneira,continuamos tendo duas rede wireless, sendo a primeira denominada “Ueg_Trindade_01”, e asegunda “Ueg_Trindade_02” e que, mesmo o segundo roteador wireless possuindo um DHCPpróprio para a segunda rede wireless, o mesmo responde ao acesso do Servidor Proxy.
    • 1124.5 Utilizando o WebPolygraph Após a realização dos procedimentos de instalação do WebPolygraph descritos nocapítulo 3.4, utilizamos a mesma para realizar o processo de medição de desempenho ecomparação de resultados do Servidor Proxy Nativo e do Servidor Proxy Virtualizado.Conforme explicado no capítulo 2.4.9.2, a ferramenta trabalha criando e simulandorequisições em um servidor também criado por ela. Ou seja, através de comandos simples noterminal e arquivos de configuração, criamos um cliente que simula requisições à um servidorcriado na própria rede de computadores pelo próprio WebPolygraph passando essasrequisições pelo Servidor Proxy, sendo que o requisitante possui, como endereço, o IP damáquina e o servidor possui, além de uma porta específica, um endereço da rede que pode sertambém o IP do cliente ou então um outro IP, caso ele esteja funcionando em uma máquinadiferente ao do solicitante. Outras funcionalidades da ferramenta são quanto às solicitações fora da rede decomputadores local e também requisições reais. Em outras palavras, o WebPolygraph permitea criação de um ou vários clientes que realizem simulações a um servidor criado pelaferramenta localizada na Internet ou então a servidores reais localizadas na mesma, sendonecessário, neste último caso, o acréscimo de configurações de DNS no cliente. Entretanto,por problemas descritos no capítulo 4.5, estas funcionalidades não serão implementadas naanálise de desempenho. O arquivo de configuração do WebPolygraph possui como extensão “.pg”. Destaforma criamos dois arquivos de configuração, chamados “cliente.pg” e “server.pg” edefinimos nestes as configurações do cliente, do servidor, dos tipos de requisições, dosformatos das solicitação e IP/Porta no qual o servidor irá responder ao cliente, conformedescrito abaixo:/*Arquivo de Configuração do WebPolygraphAcadêmico: Marcus Winicius Oliveira CostaAcadêmico: Rayner Max Fernandes LimaOrientador: Prof° Esp. Antônio Cruvinel Borges Neto*/
    • 113//CONFIGURAÇÃO BÁSICABench benchConfig = { client_side = { max_host_load = 500/sec; max_agent_load = 0.5/sec; }; server_side = { max_host_load = client_side.max_host_load; max_agent_load = undef(); };};benchConfig.peak_req_rate = 100/sec;rate FillRate = 50%*benchConfig.peak_req_rate;size ProxyCacheSize = 20GB;float HitIfRepeat = 80%;//TEMPO DE VIDA DOS OBJETOSObjLifeCycle olcStatic = { length = const(2year); variance = 0%; with_lmt = 100%; expires = [nmt + const(0sec)];};ObjLifeCycle olcHTML = {
    • 114 length = logn(7day, 1day); variance = 33%; with_lmt = 100%; expires = [nmt + const(0sec)];};ObjLifeCycle olcImage = { length = logn(30day, 7day); variance = 50%; with_lmt = 100%; expires = [nmt + const(0sec)];};ObjLifeCycle olcDownload = { length = logn(0.5year, 30day); variance = 33%; with_lmt = 100%; expires = [nmt + const(0sec)];};ObjLifeCycle olcOther = { length = unif(1day, 1year); variance = 50%; with_lmt = 100%; expires = [nmt + const(0sec)];};
    • 115//TIPOS DE OBJETOSContent cntSimpleRequest = { size = unif(0KB, 8KB);};Content cntStatic = { kind = "Static"; // just a label mime = { type = undef(); extensions = []; }; size = exp(13KB); obj_life_cycle = olcStatic; cachable = 80%;};Content cntImage = { kind = "image"; mime = { type = undef(); extensions = [ ".gif", ".jpeg", ".png" ]; }; obj_life_cycle = olcImage; size = exp(4.5KB); cachable = 80%; checksum = 1%;};Content cntHTML = { kind = "HTML"; mime = { type = undef(); extensions = [ ".html" : 60%, ".htm" ]; };
    • 116 obj_life_cycle = olcHTML; size = exp(8.5KB); cachable = 90%; checksum = 1%; may_contain = [ cntImage ]; embedded_obj_cnt = zipf(13);};Content cntDownload = { kind = "download"; mime = { type = undef(); extensions = [ ".exe": 40%, ".zip", ".gz" ]; }; obj_life_cycle = olcDownload; size = logn(300KB, 300KB); cachable = 95%; checksum = 0.01%;};Content cntOther = { kind = "other"; obj_life_cycle = olcOther; size = logn(25KB, 10KB); cachable = 72%; checksum = 0.1%;};
    • 117PopModel popModel = { pop_distr = popUnif(); hot_set_frac = 1%; hot_set_prob = 10%; bhr_discrimination = 90%;};//DEFINIÇÃO DO SERVIDOR QUE IRÁ RECEBER AS REQUISIÇÕESServer S = { kind = "SERVER"; contents = [ cntImage: 50%, cntHTML: 30%, cntDownload: 5%, cntOther: 5%, cntStatic: 10% ]; direct_access = [ cntHTML, cntDownload, cntOther ]; xact_think = norm(2.5sec, 1sec); pconn_use_lmt = zipf(16); idle_pconn_tout = 15sec; abort_prob = 0.1%; addresses = [192.168.1.25:9091 ]; http_versions = [ "1.0" ];};//DEFINIÇÃO DO ROBO QUE IRÁ GERAR AS REQUISIÇÕESRobot R = { kind = "CLIENTE"; //NOME DO ROBÔ recurrence = 55% / 80%; embed_recur = 100%;
    • 118 pop_model = popModel; req_types = [ "Basic", "Ims200": 5%, "Ims304": 10%, "Reload" : 5% ]; req_methods = [ "GET", "POST" : 1.5%, "HEAD" : 0.1% ]; abort_prob = 0.1%; req_rate = benchConfig.client_side.max_agent_load; pconn_use_lmt = zipf(64); open_conn_lmt = 4; origins = S.addresses; addresses = [192.168.1.25 ]; http_versions = [ "1.0" ]; post_contents = [ cntSimpleRequest ];};//FASEStime platDur = 1hour;time rampDur = platDur/12;int clientHostCount = clientHostCount(benchConfig);float fillable_ratio = HitIfRepeat;rate peak_fill_rate = benchConfig.peak_req_rate * 0.45 * fillable_ratio;int wsc = int(peak_fill_rate * platDur);working_set_cap(wsc / clientHostCount);float smallFactor = 1.0/count(R.addresses);Phase phFRamp = { name = "framp"; goal.duration = rampDur;
    • 119 recur_factor_beg = 5%/55%; special_msg_factor_beg = 0.1; populus_factor_beg = smallFactor; populus_factor_end = FillRate/benchConfig.peak_req_rate;};Phase phFill = { name = "fill"; goal.fill_size = 2*ProxyCacheSize / clientHostCount; wait_wss_freeze = yes;};Phase phFExit = { name = "fexit"; goal.duration = rampDur; recur_factor_end = 1; special_msg_factor_end = 1; populus_factor_end = smallFactor;};Phase phInc1 = { name = "inc1"; goal.duration = rampDur; populus_factor_end = 1;};
    • 120Phase phTop1 = { name = "top1"; goal.duration = platDur; };Phase phDec1 = { name = "dec1"; goal.duration = rampDur; populus_factor_end = 0.1; };Phase phIdle = { name = "idle"; goal.duration = rampDur; };Phase phInc2 = { name = "inc2"; goal.duration = rampDur; populus_factor_end = 1.0; };Phase phTop2 = { name = "top2"; goal.duration = platDur; };Phase phDec2 = { name = "dec2"; goal.duration = rampDur; populus_factor_end = 0; synchronize = false; };StatsSample topSample = { capacity = 10000; };StatsSample fillSample = { capacity = int(10% * topSample.capacity); };phFill.stats_samples = [ fillSample ];phTop1.stats_samples = [ topSample ];phTop2.stats_samples = [ topSample ];schedule( phFRamp, phFill, phFExit, phInc1, phTop1, phDec1, phIdle, phInc2, phTop2, phDec2);use(S, R);use(benchConfig); Criamos então esses arquivos dentro do diretório “/usr/share/polygraph/workloads” ecopiamos as informações acima dentro de cada arquivo e salvamos. Após realizar asalterações necessárias nesses arquivos adaptando-os as especificações da rede computadores,
    • 121abrimos 2 terminais no Ubuntu 12.04, sendo que um será o cliente e o outro o servidor doWebPolygraph. Como usuário ROOT, digitamos o primeiro comando para criar o servidorque irá receber as solicitações: #polygraph-server --config /usr/share/polygraph/workloads/server.pg --verb_lvl 10 –log /var/log/server.log Sobre o comando, o “polygraph-server” diz a respeito ao tipo de função da ferramenta,“--config" ao arquivo de configuração, “--verb_lvl” ao nível de execução e “--log" para adefinição do local de armazenamento do arquivo de log, apesar de que os arquivos de log doservidor não serão utilizados de maneira prática, apenas para registrar as informações dostestes. Com relação ao cliente, deve-se analisar o tipo de Servidor Proxy a ser utilizado paraespecificar o comando. Caso o serviço de WebProxy seja feito de maneira transparente,conforme descrito no capítulo 2.2.2.1, o servidor do WebPolygraph deverá ficar localizadodentro da máquina do Servidor Proxy. Entretanto, pela estrutura definida pra realização dostestes, será necessário o acréscimo do IP e da porta do Proxy na linha de comando do clienteda ferramenta. Para a realização dos testes, digitamos o seguinte comando abaixo: #polygraph-client --config /usr/share/polygraph/workloads/cliente.pg --verb_lvl 10 --proxy 192.168.1.1:9090 --log /var/log/cliente.log Sobre o comando, “polygraph-client” diz a respeito ao tipo de função da ferramenta,“--config" ao arquivo de configuração do cliente, “--verb_lvl” ao nível de execução, “--proxy”ao endereço IP e a porta referente ao funcionamento do Proxy e “--log" para a definição dolocal de armazenamento do arquivo de log. Para a realização deste estudo de caso, visto que os testes serão realizados em umServidor Proxy Nativo e em um Servidor Proxy Virtualizado e em diferentes dias, foramnecessárias duas alterações no que diz respeito aos nomes dos arquivos de log: a primeira équanto ao log gerado das requisições ao Servidor Proxy Nativo, sendo alterado para“server_proxynat” e “cliente_proxynat”, e para registro das simulações ao Servidor ProxyVirtualizado, os nomes dos arquivos de log foram alterados para “server_proxyvirt” e“cliente_proxyvirt”. Quanto a segunda alteração, foi realizado uma numeração dos logs, ouseja, no primeiro dia dos Servidores Proxy Nativo e Virtualizado, o nome do log ficou sendo,
    • 122como por exemplo no caso dos clientes, “cliente_proxynat_0”, “cliente_proxyvirt_0” e assimsucessivamente para todos os dias e para o log gerado pelo cliente e pelo servidor. Com o intuito de obter os resultados mais reais e precisos possíveis, o WebPolygraphficou funcionando por 3 horas seguidas intercalado entre 7 dias úteis realizando as simulaçõesao Servidor Proxy Nativo e 7 dias úteis realizando as requisições ao Servidor ProxyVirtualizado. Ou seja, a ferramenta ficou fazendo as simulações das 19:00 horas às 22:00horas, horário correspondente ao período de aula da faculdade, e, nos primeiros 7 dias úteis,realizando solicitações ao Squid instalado nativamente, e nos outros 7 dias úteis, realizandorequisições ao Servidor WebProxy Virtualizado. Através dos logs gerados pelo WebPolygraph, a ferramenta permite a criação depáginas no formato HTML, HyperText Markup Language, que significa Linguagem deMarcação de Hipertexto, uma linguagem de programação destinada a criação de páginas paraWeb e que podem ser melhores visualizadas nos navegadores de internet. Para a criação degráficos, a mesma permite uma integração com outra ferramenta chamada Gnuplot. OGnuplot é uma ferramenta desenvolvida na linguagem C, que possibilita “plotar” gráficos defunções de uma ou duas variáveis (2D ou 3D) e outros conjuntos de dados. A ferramenta podeser executada na grande maioria dos Sistemas Operacionais (Linux, Windows, Mac-OS,Unix), além de poder gerar saídas diretamente na tela ou em vários formatos de arquivosgráficos como entre eles os mais conhecidos PNG e JPEG, podendo também gerar páginas emHTML. Para gerar então estas páginas HTML contendo as informações e os gráficos relativosao log do cliente da ferramenta WebPolygraph, digitamos o comando abaixo: #polygraph-reporter --label "Estudo_de_caso" --plotter gnuplot /var/log/cliente.log Sobre o comando, “polygraph-reporter” diz a respeito ao tipo de função da ferramenta,“--label" ao nome da pasta que será gerada no diretório /tmp/polyrep/, “--plotter” ao softwarede integração com o WebPolygraph para gerar gráficos, e /var/log/cliente.log para a definiçãodo local onde o foi feito o armazenamento do arquivo de log do cliente. A imagem a seguirexemplifica um momento da utilização da ferramenta:
    • 123 FIGURA: 40 – EXEMPLIFICAÇÃO DO WEBPOLYGRAPH FONTE: FERRAMENTA WEBPOLYGRAPH Analisando, por exemplo, a 2° linha da imagem, pode-se explicar que: “192.51” é otempo de execução total da ferramenta calculada em minutos, “i-fill” é o nome da fase atualem que a execução se encontra, “5688” significa o número total de respostas recebidas, “1.00”é a taxa média de respostas por segundo, “2895” constitui o tempo médio de resposta emmilissegundos, “0.00” é a taxa de erros durante a transação do intervalo de tempo e “4”significa o número de soquetes abertos, ou seja, quantidade de clientes realizando asrequisições. As alterações realizadas neste comando para adapta-lo em nosso estudo de caso foramquanto à mudança do nome do arquivo de log do cliente para “cliente_proxynat_x” e“cliente_proxyvirt_x”, nomes relacionados aos arquivos de log gerados pelas devidasrequisições ao Servidor Proxy Nativo e ao Servidor Proxy Virtualizado, sendo que o “x”corresponde ao número do log criado a cada dia de realização dos testes. Outra alteração estárelacionada com a opção “--label", no qual foram criadas pastas específicas para cada loggerado, sendo os nomes alterados para “Estudo_de_caso_proxyvirt_x” e“Estudo_de_caso_proxynat_x”, onde “x” refere ao número do log usado para criação daspáginas HTML. Para realizar uma sustentação dos resultados obtidos, foi realizada uma simulaçãocomplementar, no qual no arquivo de configuração foi definida uma sequência de endereçosIPs, com o intuito de realizar o procedimento descrito com uma maior carga de trabalho,simulando o acesso de 200 usuários simultâneos. Estes testes foram realizados durante 3 dias,realizando simulações ao Servidor Proxy Nativo e logo após, foi somado 3 dias ao ServidorProxy Virtualizado. Para isso, foi necessário simular as interfaces de rede com os IPdeterminados. Neste caso foi estabelecido IPs na seguinte faixa 192.168.1.25 até192.168.1.225, no qual o primeiro endereço IP da faixa escolhida foi o IP real da máquina.Para simular tais interfaces de rede, digitamos o seguinte comando: #polygraph-aka eth0 192.168.1.25-225
    • 124 Com relação ao arquivo de log gerado pelo comando “polygraph-client” para esseteste em específico, o mesmo foi definido como “200_clientes_proxynat.log” e“200_clientes_proxyvirt.log”. Para a pasta criada pela opção “--label” no comando“polygraph-reporter”, foi definido o nome “Estudo_de_caso_200_clientes_proxynat” e“Estudo_de_caso_200_clientes_proxyvirt”. Os resultados obtidos dos testes realizados serão descritos no capítulo 4.7.4.6 Problemas encontrados Durante o desenvolvimento deste estudo de caso, foi nos deparado com algunsproblemas e desafios para a realização e conclusão do mesmo. Dentre os principais, podemoscitar:  Documentação: Apesar de a ferramenta WebPolygraph possuir um site oficial e nele conter uma documentação referente a ferramenta, uma dificuldade encontrada no que diz respeito a essa foi a falta de outras informações e tutorias que expliquem e auxiliem a como utilizar o WebPolygraph. Outro fator correlacionado diz respeito a documentação do site oficial possuir uma linguagem mais técnica, o que exige um conhecimento prévio do leitor para que seja possível a compreensão da informação oferecida.  Problema de estrutura física e lógica: Como o acesso a internet da UEG UnU Trindade é realizado por uma antena externa de captação de sinal, conhecido também como Internet via Rádio, não foi possível realizar a conexão da mesma no Servidor Proxy por problemas de modulação e demodulação de sinal, que é o processo de conversão de dados em sinais elétricos.  Instabilidade elétrica: Por problemas elétricos enfrentados pela unidade, não foi possível o Servidor Proxy ficar operando em período integral, pois, caso ocorra algum pique de energia, o equipamento no qual o Proxy está funcionando é desligado, o que poderia ocasionar problemas de acesso à internet durante o horário de expediente dos funcionários.
    • 125  Inconstância do acesso à internet: Conforme descrito, o acesso a internet é realizado por uma antena externa captadora do sinal. Devido a problemas de interferência de sinal, distância da origem deste e baixa velocidade banda de internet, não foi possível a criação de um cliente que faça requisições reais que se encontram fora da rede local, pois, uma sobrecarga de acesso poderia gerar um tempo de resposta divergente do que se espera, pois o tempo de resposta não seria ocasionado pelo Servidor Proxy e sim pelo gargalo enfrentado pelo link de internet.4.7 Resultados obtidos Após os procedimentos de reestruturação da rede de computadores da UEG UnidadeTrindade, de instalação das ferramentas, configuração do Servidor Proxy Nativo e do ServidorProxy Virtualizado e também da simulação de requisições pela ferramenta WebPolygraph,conforme descrito no decorrer do capítulo 4, realizamos a comparação dos resultados obtidos. Após a criação das páginas em HTML realizada pelo WebPolygraph, acessamos odiretório em que os arquivos foram criados e abrimos o arquivo “index.html”, que é a páginainicial de informações geradas. Nela, encontramos algumas informações referentes àexecução do WebPolygraph, como por exemplo, tempo médio de resposta, erros, versão daferramenta, assim como links que redirecionam para as outras páginas criadas. A tabelaabaixo, construída através dos dados do arquivo “rptm.html”, mostra a variação dos conteúdosacessados pelo robô e seus devidos tempos de resposta referente ao Servidor Proxy Nativo: Média Média/Dia (msec) Tipo de Acesso Final Dia 1 Dia 2 Dia 3 Dia 4 Dia 5 Dia 6 Dia 7 Resultado Acertos 1,84 1,85 1,85 1,84 1,84 1,83 1,85 1,84 Erros 2554,21 2565,91 2555,63 2553,41 2554,02 2543,17 2554,98 2554,48 Erros e Acertos 2489,18 2508,21 2507,36 2481,66 2489,54 2478,49 2489,01 2491,92 Com Cache 2557,14 2570,36 2569,94 2556,19 2559,68 2544,07 2551,44 2558,40 Sem Cache 2101,03 2112,31 2111,96 2105,51 2102,33 2102,91 2103,10 2105,59 Com e Sem 2493,18 2506,20 2509,91 2490,33 2491,20 2471,69 2489,43 2493,13 Cache Reenviados 2645,09 2651,14 2649,94 2646,37 2645,50 2637,46 2645,56 2645,87 Preenchimento 2488,18 2498,77 2492,64 2488,61 2490,90 2475,19 2485,76 2488,58 do Cache Páginas HTML 7021,37 7038,81 7031,99 7022,60 7021,12 7001,15 7023,49 7022,93 Sem 2495,18 2505,10 2501,39 2499,01 2496,96 2481,75 2492,13 2495,93 Autenticação Soma Geral 26846,40 26958,66 26932,61 26845,53 26853,09 26737,71 26836,75 26858,68 TABELA 2 – RESULTADOS DO SERVIDOR PROXY NATIVO FONTE: FERRAMENTA WEBPOLYGRAPH (ADAPTADO)
    • 126 Como pode ser observado, por exemplo, o tempo médio de resposta das requisiçõesque obtiveram acesso direto ao servidor do WebPolygraph foi de 1,84 milissegundos ou0,0018 segundos. Quanto as taxas de erros, como bloqueio no Proxy do endereço gerado pelaferramenta, perca de pacotes e outros, o tempo médio de respostas foi de 2554,48milissegundos ou 2,55 segundos. Já no caso das requisições reenviadas, o tempo médio deresposta foi de 2645,87 milissegundos ou 2,65 segundos. Quanto ao Servidor Proxy Virtualizado, foi obtido os seguintes resultados: Média Média/Dia (msec) Tipo de Acesso Final Dia 1 Dia 2 Dia 3 Dia 4 Dia 5 Dia 6 Dia 7 Resultado Acertos 2,00 2,02 2,01 2,00 2,00 1,99 2,00 2,00 Erros 2774,16 2785,63 2779,81 2773,95 2774,40 2768,22 2774,69 2775,84 Erros e Acertos 2702,16 2708,96 2709,01 2704,43 2703,15 2698,64 2703,65 2704,29 Com Cache 2775,97 2784,61 2780,11 2774,48 2775,01 2772,75 2776,35 2777,04 Sem Cache 2281,74 2293,15 2292,59 2282,47 2282,09 2273,30 2282,73 2284,01 Com e Sem 2702,16 2710,91 2708,65 2703,56 2702,88 2698,45 2704,31 2704,42 Cache Reenviados 2863,34 2873,16 2875,45 2863,01 2862,99 2859,58 2863,30 2865,83 Preenchimento 2702,16 2711,65 2713,10 2704,43 2701,55 2698,15 2702,99 2704,86 do Cache Páginas HTML 7621,85 7634,14 7631,64 7620,11 7630,66 7602,24 7623,50 7623,45 Sem 2702,16 2711,51 2709,63 2705,91 2704,44 2698,52 2705,65 2705,40 Autenticação Soma Geral 29127,70 29215,74 29202,00 29134,35 29139,17 29071,84 29139,17 29147,14 TABELA 3 – RESULTADOS DO SERVIDOR PROXY VIRTUALIZADO FONTE: FERRAMENTA WEBPOLYGRAPH (ADAPTADO) Como pode ser observado, por exemplo, o tempo médio de resposta das requisiçõesque realizaram acesso direto ao servidor criado pelo próprio WebPolygraph obteve 2milissegundos ou 0,002 segundos. Quanto as taxas de erros, o tempo médio de respostas foide 2775,84 milissegundos ou 2,78 segundos. Já no caso das requisições reenviadas, o tempomédio de resposta sofreu totalizou 2865,83 milissegundos ou 2,87 segundos. Comparando os resultados obtidos, conforme discorrido nas tabelas 2 e 3 destecapítulo, foi atingido os seguintes resultados:
    • 127 Média Obtida (msec) Diferença Tipo de Acesso Proxy Proxy Tempo % Nativo Virtualizado (msec) Acertos 1,84 2,00 0,16 7,99% Erros 2554,48 2775,84 221,36 7,97% Erros e Acertos 2491,92 2704,29 212,36 7,85% Com Cache 2558,40 2777,04 218,64 7,87% Sem Cache 2105,59 2284,01 178,42 7,81% Com e Sem Cache 2493,13 2704,42 211,28 7,81% Reenviados 2645,87 2865,83 219,97 7,68% Preenchimento do Cache 2488,58 2704,86 216,28 8,00% Páginas HTML 7022,93 7623,45 600,52 7,88% Sem Autenticação 2495,93 2705,40 209,47 7,74% Soma Geral 26858,68 29147,14 2288,46 7,85% TABELA 4 – COMPARAÇÃO DE RESULTADOS FONTE: FERRAMENTA WEBPOLYGRAPH (ADAPTADO) Realizando uma comparação entre os resultados obtidos e fazendo uma média entre ostempos de resposta das requisições ao Servidor Proxy Virtualizado e ao Servidor ProxyNativo, a diferença obedece a uma variável estimada entre 7,68% e 8% maior em umambiente virtualizado. Com isso, podemos perceber que a perda de desempenho, apesar de serreal, possui um valor muito pequeno, o que não inviabiliza a utilização de um Servidor ProxyVirtualizado em uma empresa. Quanto ao teste realizado para sustentação dos resultados obtidos, conforme descritono capítulo 4.4, simulando requisições de 200 clientes, podemos descrever como demonstradonas tabelas abaixo, os tempos de resposta referente ao Servidor Proxy Nativo e ServidorProxy Virtualizado, respectivamente: Média/Dia (msec) Média Final Tipo de Acesso Dia 1 Dia 2 Dia 3 Resultado Acertos 27,61 27,91 27,62 27,71 Erros 2654,21 2655,08 2654,99 2654,76 Erros e Acertos 2589,18 2591,84 2590,13 2590,38 Com Cache 2657,14 2661,72 2658,92 2659,26 Sem Cache 2201,03 2202,52 2202,54 2202,03 Com e Sem Cache 2593,18 2597,91 2593,15 2594,75 Reenviados 2745,09 2749,16 2747,99 2747,41
    • 128 Preenchimento do Cache 2588,18 2592,32 2591,91 2590,80 Páginas HTML 7121,37 7123,84 7121,33 7122,18 Sem Autenticação 2595,18 2597,93 2596,84 2596,65 Soma Geral 27772,17 27800,23 27785,42 27785,94 TABELA 5 – RESULTADOS DO ACESSO DE 200 CLIENTES AO SERVIDOR PROXY NATIVO FONTE: FERRAMENTA WEBPOLYGRAPH (ADAPTADO) Média/Dia (msec) Média Final Tipo de Acesso Dia 1 Dia 2 Dia 3 Resultado Acertos 30,26 30,30 30,45 30,34 Erros 2904,21 2905,84 2908,00 2906,02 Erros e Acertos 2842,18 2844,39 2847,13 2844,57 Com Cache 2917,14 2919,28 2921,84 2919,42 Sem Cache 2411,03 2412,51 2415,28 2412,94 Com e Sem Cache 2848,18 2850,01 2852,83 2850,34 Reenviados 3010,09 3010,99 3015,59 3012,22 Preenchimento do Cache 2841,18 2843,34 2845,77 2843,43 Páginas HTML 7791,37 7793,15 7795,73 7793,42 Sem Autenticação 2835,18 2837,93 2838,02 2837,04 Soma Geral 30430,82 30447,74 30470,64 30449,73TABELA 6 – RESULTADOS DO ACESSO DE 200 CLIENTES AO SERVIDOR PROXY VIRTUALIZADO FONTE: FERRAMENTA WEBPOLYGRAPH (ADAPTADO) Analisando as tabelas acima, pode-se chegar aos resultados descritos na tabela abaixo: Média Obtida (msec) Diferença Tipo de Acesso Proxy Proxy Tempo % Nativo Virtualizado (msec) Acertos 27,71 30,34 2,62 8,65% Erros 2654,76 2906,02 251,26 8,65% Erros e Acertos 2590,38 2844,57 254,18 8,94% Com Cache 2659,26 2919,42 260,16 8,91% Sem Cache 2202,03 2412,94 210,91 8,74% Com e Sem Cache 2594,75 2850,34 255,59 8,97% Reenviados 2747,41 3012,22 264,81 8,79% Preenchimento do Cache 2590,80 2843,43 252,63 8,88% Páginas HTML 7122,18 7793,42 671,24 8,61% Sem Autenticação 2596,65 2837,04 240,39 8,47% Soma Geral 27785,94 30449,73 2663,79 8,75% TABELA 7 – COMPARAÇÃO DE RESULTADOS DA SIMULAÇÃO DE 200 CLIENTES FONTE: FERRAMENTA WEBPOLYGRAPH (ADAPTADO)
    • 129 Os gráficos a seguir representam os dados obtidos pelos testes realizados descritosacima: Tempo de resposta - 1 Cliente do WebPolygraph 8,10% 8,00% 7,90% 7,85% 7,80% 7,70% 7,60% 7,50% FIGURA: 41 – REPRESENTAÇÃO MÉDIA DE TEMPO DE RESPOSTA DE 1 CLIENTE FONTE: FERRAMENTA WEBPOLYGRAPH (ADAPTADO) Conforme dados obtidos, possibilitando a criação do gráfico acima, pode-se perceberque a perda de desempenho entre um Servidor Proxy Nativo e um Servidor ProxyVirtualizado com carga de trabalho de 1 cliente gerado pelo WebPolygraph, somado asrequisições dos usuários da Rede de Computadores da UEG Unu Trindade, variou entrevalores de 7,68% e 8%, gerando uma média de 7,85%, conforme pode ser observado pelaúltima coluna gerada pelo gráfico acima. O gráfico abaixo foi gerado com base na Tabela 7:
    • 130 Tempo de resposta - 200 Clientes do WebPolygraph 9,10% 9,00% 8,90% 8,80% 8,75% 8,70% 8,60% 8,50% 8,40% 8,30% 8,20% FIGURA: 42 – REPRESENTAÇÃO MÉDIA DE TEMPO DE RESPOSTA DE 200 CLIENTES FONTE: FERRAMENTA WEBPOLYGRAPH (ADAPTADO) Pode-se notar que a diferença de tempo de resposta entre um Servidor Proxy Nativo eum Servidor Proxy Virtualizado, com uma carga de trabalho de 200 clientes gerados pelaferramenta WebPolygraph, somado aos usuários reais do centro acadêmico, aumentou cercade 1% comparado a simulação de apenas um cliente juntamente com os acessos dos usuários,variando o tempo de resposta para um valor entre 8,47% e 8,97%. Este fato implica que,devido a fatores como limitação de hardware do próprio servidor, estrutura física e lógica darede de computadores, além da camada extra de software do processo de virtualização,ocorreu um aumento do tempo de resposta das requisições, apesar de ser uma diferençapequena em relação ao teste realizado com uma menor carga de trabalho.
    • 131 5 CONCLUSÃO Como foi apresentado no capítulo 2.1.3, o procedimento de virtualização, traz consigovantagens como a redução de gastos em equipamentos, espaço físico e refrigeração, umamaior segurança entre as máquinas virtuais - por estas trabalharem de maneira independente -,uma maior centralização dos serviços, que gera uma facilidade de manutenção dosequipamentos, além de proporcionar o conceito de Tecnologia Verde ao mundo empresarial. Através da técnica de virtualização, foram montados dois ambientes para realização detestes, visando à análise de desempenho do Servidor Proxy Nativo e do Servidor ProxyVirtualizado. Dessa forma, foi possível realizar uma comparação de resultados em relação aestes dois tipos de serviços. De acordo com o uso dos dois ambientes propostos - ambiente de um servidor nativo eambiente de um servidor virtualizado – e, realizando os testes, utilizando a ferramenta debenchmark WebPolygraph, foi sugerida uma resposta para o questionamento que norteou àrealização deste trabalho de conclusão de curso. Após a obtenção dos dados gerados pelos testes, foi retirada a média do tempo deresposta das requisições dos dois tipos de servidores, sendo assim, foi possível realizar umacomparação de tais médias e, após a comparação, foi notado que o servidor ProxyVirtualizado apresenta um tempo de resposta maior, que varia entre 7,5% a 8%, dasrequisições realizadas em relação ao servidor Proxy nativo. Conforme descrito no capitulo 4.1, os testes foram realizados utilizando máquinasidênticas e um ambiente semelhante, sendo a única diferença apresentada, o da utilização doServidor Proxy Nativo e do Servidor Proxy Virtualizado. Os testes realizados sugerem que ambos ambientes, real e virtualizado, são adequadospara serem implantados nas empresas de pequeno porte, pois, além dessas empresas,possuírem menos recursos financeiros e uma menor carga de trabalho, os Servidores Proxy,realizam o armazenamento de cache contribuindo assim, com o aumento da velocidade narede local e também com o controle de acesso da Internet. Conforme descrito anteriormente, durante os testes, o serviço oferecido pelo ServidorProxy Virtualizado, apresentou um pequeno atraso no atendimento das requisições solicitadas,porém, conforme recomendado, isso não inviabiliza a implementação do mesmo, pois a perdade velocidade do serviço de WebProxy Virtualizado, comparada ao custo beneficio daimplementação do Proxy Nativo, o torna viável a implementação nas pequenas empresas e até
    • 132em algumas destas de médio porte. Esta ferramenta pode possibilitar a redução de gasto, nãohavendo necessidade de aquisição de novos hardwares, bem como, a possibilidade de reduziros custos energia e espaço. Mesmo apresentando uma perda geral de aproximadamente 8% no tempo de respostadas requisições ao Servidor Proxy Virtualizado, esta aplicação, continua sendo uma propostaeficaz para a resolução de problemas, no que se refere aos resultados obtidos. Sua perda detempo nas requisições será transmitida de maneira transparente aos usuários da rede decomputadores, apresentando assim, a redução de custos, proposta por essa solução. Haja vistaque, o problema principal, que consistiria na diminuição da velocidade das respostas dasrequisições ao Proxy Virtualizado ou, se essa diminuição atrapalhasse nos trabalhosrealizados, este fato passaria despercebido aos funcionários ao longo do expediente daempresa, dado o seu pequeno percentual.
    • 133 6 TRABALHOS FUTUROS Através dos resultados e observações realizadas ao longo deste trabalho, as seguintessugestões podem ser apresentadas como possíveis trabalhos futuros:  Realizar os testes em um ambiente tecnológico maior do que foi proporcionado pela UEG, visando uma estrutura que contenha uma maior quantidade de usuários, o que proporcionaria uma maior quantidade de requisições simultâneas, e com isso, levantar e comparar os resultados da análise de desempenho de um Servidor Proxy Nativo e um Servidor Proxy Virtualizado em uma estrutura de TI em maior escala.  Alterar as ferramentas, com intuito de fazer uma nova comparação, com os resultados obtidos ao longo deste trabalho e verificar a diferença proporcionada por ambas as ferramentas.  Como já descrito, o acesso a internet foi realizado por uma antena externa receptora de sinal, o que não possibilitou, a implantação do Servidor Proxy como o gateway que recebe tal sinal de internet. Logo, uma possibilidade de trabalho futuro, seria alterar o link de acesso a internet, de forma a refazer os testes com a devida alteração realizada obtendo a estrutura física e lógica, desejada inicialmente neste trabalho.  Através dos logs criados pelo Servidor Proxy Nativo e Virtualizado, têm-se a possibilidade de fazer um levantamento dos comportamentos dos usuários, como os principais sites acessados, horários em que há um maior tráfego de informações, entre outros.
    • 134 7 REFERÊNCIAS BIBLIOGRÁFICAS- ALMEIDA, Gustavo Porto de. - Análise da utilização de SGBDs em servidoresvirtualizados no ambiente corporativo - Centro Universitário Feevale, Novo Hamburgo, 2008.- COLLIN, S. M. H. Dictionary of Information Technology, Third Edition, Peter CollinPublishing, 2002.– FAVACHO, Breno Inglis; MIRANDA, Daniele de Sousa; OLIVEIRA, Luiz Henrique dosSantos. Monografia Análise comparativa do desempenho da técnica de virtualização deservidor. Belém, 2008. <http://pt.scribd.com/doc/50908921/9/Virtualizacao-Completa>,Acesso em 26 de Maio de 2012.- GRAY, Jim. The Benchmark Handbook for Database and Transaction Systems, MorganKaufmann Publishers, Inc., 1993.– LAUREANO, Marcos Aurelio Pchek - Máquinas Virtuais e Emuladores: Conceitos,Técnicas e Aplicações - 1ª Ed, Editora Novatec, 2006.– LAUREANO, Marcos Aurelio Pchek; MAZIERO, Carlos Alberto. “Virtualização:Conceitos e Aplicações em Segurança“. Minicursos em VIII Simpósio Brasileiro emSegurança da Informação e de Sistemas Computacionais. Capítulo de livro (4). ISBN: 978-85-7669-191-4, páginas 139-187. Editora SBC – Porto Alegre, 2008.– CRAIG, Iain D. -Virtual Machine - 2ª Ed., Editora Springer, 2006.– LUNARDI, Marco Agisander - Squid: Prático e didático - 1ª Ed., Editora Ciência Moderna,2005.- MACIEL, Thiago Alencar - Metodologia para análise de desempenho de sistemas detransferência eletrônica de fundos - Universidade Federal De Pernambuco, Recife, 2008.– MATTOS, Diogo Menezes Ferrazani, 05 de Junho, 2008. Disponível em:< http://www.gta.ufrj.br/grad/08_1/virtual/artigo.pdf > Acesso em 13 de junho de 2012.
    • 135– MIGUEL, Ricardo, 06 de Setembro, 2009. Disponível em:<http://www.tecnologiadoglobo.com/2009/09/o-que-um-servidor-um-servidor-dedicado-e-um-mainframe/> Acesso em 20 de Fevereiro de 2012.– MOREIRA, Marcel Damásio, 24 de Abril, 2008. Disponível em:<http://damasio.wordpress.com/2008/04/24/funcionamento-vantagens-e-desvantagens/>Acesso em 12 de Maio de 2012.– REIS, Cristiano F.; RAIMUNDO, Gerson; CARMO, Gilberto T. Do. Monografia ProjetoSquid. Ibirapuera, 2006. <http://pt.scribd.com/doc/73873164/TCC-Projeto-Squid>, Acessoem 09 de Junho de 2012.- RAMOS, Nelson Azoubel – “Avaliação e comparação de desempenho de computadores:metodologia e estudo de caso.” Universidade Federal De Pernambuco, Recife, 2008.– RICCI, Bruno; MENDONÇA, Nelson - Squid: Solução Definitiva - 1ª Ed., Editora CiênciaModerna, 2006.- ROUSSKOV, Alex; WESSELS, Duane - “High Performance Benchmarking with WebPolygraph”, In: Software – Practice & Experience Journal, 1:1-10, p. 1-27, 2003.- SENG, Jia-Lang; YAO, S. Bing; HEVNER, Alan R. - "Requirements-driven databasesystems benchmark method." Decision Support Systems 629 - 648, 2005.- SILBERSCHATZ, Abraham; GALVIN, Peter B.; GAGNE, Greg. Sistemas operacionais:conceitos e aplicações. Rio de Janeiro: Campus, 2001. 585 p.– SILVA, Rodrigo, 17 de Dezembro, 2011 <http://www.meajuda.net/o-que-e-uma-maquina-virtual/> Acesso em 8 de Junho de 2012.- TANENBAUM, A. S.; WOODHULL, A. S. (2000). Sistemas Operacionais Projeto eImplantação. 2. ed. Porto Alegre: Bookman.
    • 136- VIEIRA, Marco; DURÃES, João; MADEIRA, Henrique - Especificação e Validação deBenchmarks de Confiabilidade para Sistemas Transaccionais. IEEE Latin AmericaTransactions, Jun. 2005.