NATANAEL RIBEIRO DA SILVA
APOSTILA – IFPI CARGO ANALISTA DE TECNOLOGIA DA INFORMAÇÃO
ANO DE 2014
Página |1
SUMÁRIO 1. SISTEMAS OPERACIONAIS WINDOWS E LINUX................................................................................................................ 03 1.1 Windows ......................................................................................................................................................................... 03 1.2 Linux ................................................................................................................................................................................ 02 1.3 Serviços de diretório: Active Directory e LDAP ............................................................................................................... 09 2. VIRTUALIZAÇÃO COM CITRIX XEN SERVER E VMWARE ESXI ........................................................................................... 12 2.1 Citrix XenServer ............................................................................................................................................................... 12 2.2 VMWare ESXi .................................................................................................................................................................. 12 2.3 Diferenças entre o Xen Server e VMware ESXi ............................................................................................................... 12 3. COMPUTAÇÃO EM NUVEM ............................................................................................................................................. 15 4. SERVIDORES HTTP APACHE ............................................................................................................................................. 19 5. LINGUAGEM DE PROGRAMAÇÃO PYTHON E FRAMEWORK DE DESENVOLVIMENTO WEB DJANGO ................................ 20 5.1 Framework de Desenvolvimento Web Django ............................................................................................................... 20 5.2 Linguagem Python........................................................................................................................................................... 21 6. BANCO DE DADOS ORACLE, POSTGRESQL E MYSQL ....................................................................................................... 29 6.1 Oracle .............................................................................................................................................................................. 29 6.2 PostgreSQL ...................................................................................................................................................................... 31 6.3 MySQL ............................................................................................................................................................................. 32 7. SERVIDORES SMTP POSTFIX E ZIMBRA............................................................................................................................ 32 7.1 Servidor POSTFIX ............................................................................................................................................................. 32 7.2 Servidor ZIMBRA ............................................................................................................................................................. 33 8. TOPOLOGIA TÍPICA DE AMBIENTES COM ALTA DISPONIBILIDADE E ESCALABILIDADE ................................................... 34 8.1 Balanceamento de carga ................................................................................................................................................. 34 8.2 Fail-over........................................................................................................................................................................... 38 9. TECNOLOGIAS E ARQUITETURA DE DATA CENTER .......................................................................................................... 38 9.1 Conceitos básicos ............................................................................................................................................................ 38 9.2 Serviços de armazenamento, padrões de disco e de interfaces ..................................................................................... 44 9.3 RAID.............................................................................................................................................................................. 48 10. TECNOLOGIAS DE BACKUP ............................................................................................................................................ 53 10.1 Conceitos Básicos .......................................................................................................................................................... 53 10.2 Deduplicação ................................................................................................................................................................. 57 10.3 ILM - Information Lifecycle Management ..................................................................................................................... 58 10.4 Software Livre para backup pessoal e corporativo ....................................................................................................... 60 11. ADMINISTRAÇÃO, MONITORAMENTO E CONTROLE ..................................................................................................... 61 11.1 Ferramentas automatizadas de gestão de infra-estrutura ........................................................................................... 61 11.2 Administração de aplicação para monitoramento de servidores e serviços ................................................................ 62 11.3 Configuração, administração e gerenciamento de serviços de rede Windows e Linux ................................................ 63 11.3.1 Serviço de compartilhamento de arquivos SAMBA ................................................................................................... 63 11.3.2 Serviço de compartilhamento CIFS ............................................................................................................................ 68 11.3.3 Serviço de compartilhamento NFS ............................................................................................................................. 69 11.4 Autenticação, autorização e auditoria .......................................................................................................................... 70 11.4.1 Protocolos AAA .......................................................................................................................................................... 70 11.4.2 Controles de Acesso baseado em Papeis ................................................................................................................... 71 11.4.3 Autenticação .............................................................................................................................................................. 72 11.5 Single sign-on ................................................................................................................................................................ 74 11.6 Captive Portal ................................................................................................................................................................ 76 12. TECNOLOGIAS E PROTOCOLOS DE REDES LOCAIS .......................................................................................................... 76 12.1 Padrões Ethernet .......................................................................................................................................................... 76 12.2 Endereçamento IP ......................................................................................................................................................... 86 12.3 Máscara de sub-rede..................................................................................................................................................... 87 12.4 Protocolos de Rede ....................................................................................................................................................... 92
Página |2 12.5 Cabeamento estruturado EIA/TIA 568 .......................................................................................................................... 105 12.6 Redes tipo campus ........................................................................................................................................................ 109 12.7 Modelo OSI .................................................................................................................................................................... 110 12.8 Redes de longa distância: PPP, ATM e MPLS ................................................................................................................ 113 12.8.1 Protocolo PPP ............................................................................................................................................................. 113 12.8.2 Protocolo ATM ........................................................................................................................................................... 115 12.8.3 Protocolo MPLS .......................................................................................................................................................... 116 12.9 Redes sem fio (wireless) ................................................................................................................................................ 119 12.10 Elementos de interconexão de redes de computadores ............................................................................................ 128 13. GERENCIAMENTO DE REDES DE COMPUTADORES ........................................................................................................ 132 13.1 Conceitos ....................................................................................................................................................................... 132 13.2 Qualidade de serviço (QoS) ........................................................................................................................................... 148 13.3 Voz sobre IP (VoIP): conceitos, arquiteturas e protocolos ............................................................................................ 155 13.4 Videoconferência: conceitos, arquiteturas e protocolos .............................................................................................. 161 13.5 Roteamento Multicast: conceitos e protocolos ............................................................................................................ 165 13.6 Instrução Normativa IN04 ............................................................................................................................................. 167
Página |3 1. SISTEMAS OPERACIONAIS WINDOWS E LINUX 1.1 Windows Microsoft Windows é uma família de sistemas operacionais criados pela Microsoft, empresa fundada por Bill Gates e Paul Allen. Antes da versão NT, era uma interface gráfica para o sistema operacional MS-DOS. O Windows é um produto comercial, com preços diferenciados para cada uma de suas versões. É o sistema operacional mais utilizado em computadores pessoais no mundo. O impacto deste sistema no mundo atual é muito grande devido ao enorme número de cópias instaladas. Conhecimentos mínimos desse sistema, do seu funcionamento, da sua história e do seu contexto são, na visão de muitos, indispensáveis, mesmo para os leigos em informática. A atual versão estável do Windows para desktops é o Windows 8.1, lançado em 17 de outubro de 2013. Para servidores o Windows Server 2012 é a versão mais recente e estável. A palavra windows em português significa janelas. A sua interface gráfica é baseada no padrão WIMP e utiliza o conceito WYSIWYG, previamente desenvolvido em Xerox PARC: possui janelas que exibem informações e recebem respostas dos utilizadores através de um teclado ou de cliques do mouse. O registro da marca Windows foi legalmente complicado, pelo fato dessa palavra ser de uso corrente em inglês ("windows" significa "janelas"). A Microsoft começou a desenvolver o Microsoft Windows em setembro de 1981. O Windows 1.01 era uma interface gráfica bidimensional para o MS-DOS e foi lançado em 20 de Novembro de 1985. Era necessário o MS-DOS 2.0, 256 KB RAM e um disco rígido. Naquela altura, o MS-DOS só conseguia suportar 1 MB de aplicações. Era uma primeira tentativa de criar um sistema multitarefa. Nessa época, instalado em computadores XTs que tinham apenas 512Kb de memória, ocupava praticamente toda a memória disponível. O Windows 1.01 não foi nenhum grande sucesso comparado com seus sucessores da década de 1990, devido à limitação do hardware da época. Inicialmente, ele foi lançado em quatro disquetes de 5.25 polegadas de 360 KB cada um. Continha o Reversi (jogo), um calendário, bloco de notas, calculadora, relógio, prompt de comando (uma janela direta para o DOS), Write, Control Painel, Paint e programas de comunicação. Permite a utilização de mouse, janelas e ícones. Nesta versão ainda não havia sobreposição de janelas. A versão 1.02 foi lançada internacionalmente em maio de 1986 e ganhou edições em várias línguas europeias. A versão 1.03 foi lançada em agosto de 1986 internacionalmente. A versão 1.04 foi lançada em abril de 1987 e ganhou gráficos VGA. O Windows só começa a ser tecnicamente considerado como um SO a partir da versão Windows NT, lançada em Julho de 1993. O que havia antes eram sistemas gráficos sendo executados sobre alguma versão dos sistemas compatíveis com DOS, como MS-DOS, PC-DOS ou DR-DOS. Somente o MS-DOS era produzido pela própria Microsoft. O MS-DOS é um sistema operativo que não dispõe de interface gráfica, funciona através de comandos de texto introduzidos no teclado pelo utilizador. O Windows surgiu inicialmente como uma interface gráfica para MS-DOS, que permitia correr programas em modo gráfico, o que permitiu a utilização do mouse, que até à altura era considerado supérfluo em computadores de tipo IBM-PC. Os primeiros Windows, como o 1.0, 2.0, são compatíveis apenas com partições formatadas em sistema de ficheiros FAT, ou como é chamado, FAT 16. O 3.x poderia ser instalado em FAT 32, porém necessita ser instalado o MS-DOS 7.10, que era incluido nos disquetes de inicialização do Windows 95 OSR2 e Windows 98, necessitando modificar alguns arquivos para permitir seu funcionamento. Ao mudar do 3.1 para o 95B (Windows 95 OSR 2/OSR 2.1), os HD's poderiam ser formatados em FAT 32. Inicialmente lançado com o Windows NT, a tecnologia NTFS é agora o padrão de fato para esta classe. Com a convergência de ambos sistemas, o Windows XP passou também a preferir este formato. A principal linguagem de programação usada para escrever o código-fonte das várias versões do Windows é o C e algumas partes com C++ e Assembly. Até a versão 3.11, o sistema rodava em 16 bits (apesar de poder instalar um update chamado Win32s para adicionar suporte a programas 32 bits), daí em diante, em 32 bits. As versões a partir do XP e Server 2003 estão preparadas para a tecnologia 64 bits.
Página |4 Os sistemas de 64 bits não possuem mais suporte para rodar nativamente aplicativos de 16 bits, sendo necessário uso de emuladores/máquinas virtuais. Os bits são relacionados ao volume de dados que um microprocessador é capaz de lidar. Se um processador tem uma 64 arquitetura de 64 bits, ele é capaz de lidar com dados na ordem de 2 , ou seja, 18446744073709552000. Só que para isso ser possível, é necessário que o sistema operacional seja de 64 bits, caso contrário ele trabalhará com somente com instruções de 32 bits (Se o sistema for de 32 bits). Sistemas operacionais de 64 bits também endereçam uma quantidade maior de RAM, suportando até 192GB (Windows 7 Ultimate) ou 128GB (Windows XP Professional), contra 3,2GB dos sistemas de 32 bits. Outra característica denominada de hearança maldita devido o fato de ter herdade essa regra do DOS é o fato de não se poder criar pastas com os determinado nomes: con, prn, aux, com1 e ltp1. Trata-se de uma antiga herança que os SOs Windows carregam do MS-DOS e são palavras reservadas para a comunicação interna do SO. Portanto, mesmo o mais recente sistema da Microsoft é incapaz de interpretar tais sentenças como simples nomes através do Windows Explorer. Através do Prompt de Comandos é possível criar pastas e arquivos com qualquer um dos nomes acima. Mas o sistema impede que os documentos sejam editado e excluídos pelo Windows Explorer. 1.2 Linux 1.2.1 História do Linux Linux é um termo utilizado para se referir a sistemas operacionais que utilizem o núcleo Linux. O núcleo Linux foi desenvolvido pelo programador finlandês Linus Torvalds, inspirado no sistema Minix. O seu código fonte está disponível sob a licença GPL (versão 2) para que qualquer pessoa o possa utilizar, estudar, modificar e distribuir livremente de acordo com os termos da licença. 1.2.2 Linux como Sistema Operacional Linux se refere ao Kernel. O conjunto de aplicativos que são executados no Kernel se chama distribuição. A função do Kernel (núcleo do sistema operacional) é ser a interface entre o Hardware e os sistemas de gerenciamento de tarefas e aplicativos. O Kernel do Linux é mais leve que o de outros sistemas operacionais para servidores. São 12 milhões de linhas de código, enquanto outras versões do Unix têm 30 milhões e o Windows NT, 50 milhões. ”Isso significa que o Linux é três vezes mais rápido que outros Unix e até cinco vezes mais rápido que o Windows NT”. 1.2.3 Principais características do Linux • • • • •
•
•
É um Software Livre (Open Source). O Windows é considerado um software proprietário. Licença de uso: GPL/GNU. GPL/GNU – significa Licença Pública geral, consiste na designação de licença para softwares livres. É um sistema operacional Multitarefa, assim como o Windows. Multitarefa – o sistema multitarefa executar mais de um aplicativo ao mesmo tempo. É um sistema operacional Multissessão, assim como o Windows. Multissessão – consiste em ter vários contas de usuários em um mesmo computador. É Preemptivo – permite a interrupção de processos. (É também característica do Windows). Preemptivo é a ideia de ter vários programas sendo processados ao mesmo tempo, e com isso, conseguimos alternar de um para o outro, interrompendo desta forma, o processo de um para executar outro. É um sistema Multiusuário. (também característica do Windows). Multiusuário é quando existe uma rede de computadores e um servidor (pode este ser usado tanto Linux como Windows), e com isso, os usuários podem ter acesso simultâneo ao sistema (vários usuários acessando o servidor ao mesmo tempo). Multiprocessamento (também característica do Windows). Multiprocessamento é um computador com mais de um processador.
Página |5 • •
• • • •
Sistema Monolítico (também característica do Windows). Sistema monolítico – todos processos em um só núcleo. Compartilhamento de bibliotecas (também característica do Windows). É o compartilhamento de recursos com os softwares instalados no computador. Exemplo: as fontes instaladas no computador podem ser utilizadas em vários programas como Word, Excel, Power Point, Photoshop e etc. Capacidade de processamento 32/ 64 bits (também característica do Windows) – Há versões de 32 e 64 bits. Pode ser instalado tanto em processadores de 32 bits, como de 64 bits. # Superusuário (também presente no Windows, mas com o nome de Administrador) é o usuário com controle total do computador. $ Usuário comum (também presente no Windows, mas com o nome de Usuário Limitado) é o usuário que não tem poder para manipular todos os recursos existentes no computador. Interface gráfica e Prompt de comando (também existente no Windows) – É possível interagir com o Linux de duas maneiras: Pela Interface Gráfica ou Prompt de Comando (Shell, bash sh, etc).
1.2.4 Sistemas de arquivos do Linux A lista de sistemas de arquivos suportados pelo Linux é muito grande mas, será mostrado somente os mais comuns. Atualmente, uma importante característica dos atuais sistemas de arquivos é o "journaling". Sistemas de arquivos que possuem essa característica são preferidos em detrimento aos que não possuem. Journaling é um recurso que permite recuperar um sistema após um desastre no disco (ex.: quando um disco está sujo) em uma velocidade muito maior que nos sistemas de arquivos sem journaling. Segue abaixo uma breve descrição sobre os sistemas de arquivos mais comuns disponíveis para o Linux: •
•
•
•
• •
•
Ext2: O sistema de arquivos ext2 é conhecido como "Second Extended FileSystem". Foi desenvolvido para ser mais "eficiente" que o sistema de arquivos "Minix", seu antecessor. O Minix era muito utilizado nas primeiras versões do Linux, e foi utilizado por muitos anos. O sistema de arquivos ext2 não possui journaling e foi substituído pelo ext3. Ext3: O sistema de arquivos ext3 é uma versão do ext2 com suporte a journaling. Portanto, o ext3 tem as mesmas características do ext2, mas com suporte journaling. Essa característica foi uma evolução e tornou o ext3 um sistema de arquivos muito estável e robusto. Como no ext3 só foi adicionado o suporte a journaling, podemos converter um sistema de arquivos ext2 para ext3, adicionado suporte a journaling, e também podemos converter um sistema de arquivos ext3 para ext2, removendo o suporte a journaling. ReiserFS: O sistema de arquivos ReiserFS foi criado recentemente. Mas atualmente quase todas as distribuições Linux o suportam. Sua performance é muito boa, principalmente para um número muito grande de arquivos pequenos. ReiserFS também possui suporte a journaling. XFS: O sistema de arquivos XFS também possui suporte a journaling. Foi desenvolvido originalmente pela Silicon Graphics e posteriormente disponibilizado o código fonte. O XFS é considerado um dos melhores sistemas de arquivos para banco de dados, pois é muito rápido na gravação. XFS utiliza muitos recursos de cache com memória RAM, e para utilizar XFS é recomendado utilizar sistemas que possuem redundância de energia. SWAP: SWAP é um espaço reservado para troca de dados com a memória RAM. Em alguns lugares ele não é mencionado como um Sistema de Arquivos, mas resolvi descrever aqui pois faz parte deste artigo. VFAT: O sistema de arquivos VFAT é também conhecido como FAT32 (M$ Windows). O sistema de arquivos VFAT não possui suporte a journaling. É utilizado normalmente para transferir dados entre sistemas M$ Windows e o Linux instalados no mesmo disco, pois pode ser lido e escrito por ambos os sistemas operacionais. O sistema de arquivos VFAT está longe de ser um sistema de arquivos utilizado para Sistemas Linux, exceto para compartilhamento/compatibilidade entre o M$ Windows e Linux. Se você utilizar VFAT no Linux, esteja certo de perder alguns atributos, tais como: permissão de execução, links simbólicos, entre outras coisas. Ambos os sistemas de arquivos ext3 e ReiserFS são maduros o bastante para serem utilizados como padrão no Linux. Esses dois são os mais utilizados pelas distribuições Linux. Ext4: é a evolução do sistema de arquivos mais usados no Linux, o Ext3. De muitas maneiras, Ext4 é uma profunda melhoria sobre o Ext3, sendo o Ext3, com muitas melhorias frente o Ext2. No Ext3 foi principalmente a adição de Journaling sobre o Ext2, mas Ext4 teve mudanças importantes na estrutura do sistema de arquivos
Página |6 destinado ao armazenamento de dados. O resultado é um sistema de arquivos com um designer aperfeiçoado, melhor performance, confiável e com muitos recursos. 1.2.5 Estrutura do Linux Kernel - É o próprio sistema operacional (é o núcleo essencial do sistema); - É a parte mais próxima do nível físico; - Composta de chamadas ao sistema, de acesso aos dispositivos E/S e gerência dos recursos da máquina. Shell - Representa uma camada entre o Kernel do sistema operacional e o usuário; - É o interpretador de comandos digitados que passa para o kernel e vice-versa. Os mais conhecidos são o Bourne Shell (bsh), o C Shell (csh), o Korn Shell (ksh) e o Bourne Again Shell (bash). Aplicativos Demais recursos de software que compõem a distribuição do Linux. 1.2.6 Distribuições do Linux O que é uma distribuição Ao "kernel" é freqüentemente acrescentado uma série de aplicações, formando um sistema ou distribuição Linux. Distribuição nada mais é que um pacote do kernel do sistema operacional mais os programas que o acompanham. Este pacote, incluindo as ferramentas necessárias para sua instalação, é chamado de distribuição. Uma distribuição atende a uma determinada necessidade. As distribuições podem ser produzidas em diferentes versões do Kernel, podem incluir diferentes conjuntos de aplicativos, utilitários, ferramentas e módulos de driver, e podem oferecer diferentes programas de instalação e atualização para facilitar o gerenciamento do sistema. Existem várias distribuições no mercado. Citaremos algumas: • • • • •
Red Hat: Famoso por suas ferramentas de instalação e atualização do sistema operacional e por seu sistema bem projetado de instalação, desinstalação e controle de pacotes de aplicativos de software. Slackware: Era a distribuição mais popular. Não vem com RPM. Ganha em performance, mas peca na interatividade. Usado mais para servidores de rede. Caldera OpenLink: O OpenLink 1.3 inclui o “K” Desktop Environment, uma licença não-comercial do StarOffice for Linux, Suporte Netware, uma licença do DR-DOS para compatibilidade DOS. S.u.S.E Linux: É uma conhecida distribuição de Linux, disponível principalmente na Europa e oferecida nas versões em inglês e alemão. Debian/GNU: Não possui uma organização comercial patrocinadora. É produzida por uma equipe de voluntários. Utiliza seu próprio sistema de gerenciamento de pacotes.
1.2.7 Gerenciadores de Inicialização São programas que permitem ao usuário gerenciar a inicialização dos SO's, podendo escolher qual deles carregar, caso haja mais de um em sua máquina. •
LILO: Linux Loader é um gerenciador modo texto, que gerencia o setor de Boot da MBR (Master Boot Record Primeiro setor de um HD que é lido na inicialização para dar partida no computador) do HD permitindo a
Página |7 inicialização seletiva do sistema operacional, ou seja, ele apresenta um menu de opções para que o usuário possa escolher um entre os sistemas operacionais disponpiveis para aquela inicialização. •
GRUB: Grand Unified Bootloader é um loader que trabalha com interface gráfica, logo na inicialização do computador, antes de carregar o SO.
1.2.8 Estrutura de Diretórios É a forma como são organizados os arquivos e as pastas no SO. No Linux, o diretório raiz está tomado pelas pastas de sistemas, enquanto as pastas e arquivos pessoais devem ficar armazenadas no diretório /home. Há uma padronização para os diretórios Linux, o Filesystem Hierarchy Standard - FHS, que especifica como é a organização de arquivos e diretórios em sistemas Unix/Linux. Segue abaixo:
Diretório Descrição dos arquivos contidos nesse diretório Diretório / /bin /boot /dev /etc /home /lib /mnt /proc /root /sbin /tmp /usr /var
Descrição dos arquivos contidos nesse diretório Diretório raiz do sistema de arquivos. É abaixo dele que se situam todos os outros. Arquivos executáveis de comandos essenciais. Nele ficam os executáveis e bibliotecas dos sistemas. Arquivos estáticos necessários a inicialização do sistema. Arquivos de dispositivos de hardware do sistema – discos rígidos, impressoras e etc Arquivos de configuração do sistema Lugar onde ficam os diretórios dos usuários Arquivos de biblioteca essências do sistema, utilizados pelos programas em /bin. Usualmente é o ponto de montagem de dispositivos de máquinas. CDs, DVSs e etc. Informações sobre o Kernel e os processos. Diretório local do superusuário Arquivos essências ao sistema. Normalmente só o superusuário tem acesso a estes arquivos. Diretório de arquivos temporários. Arquivos pertencentes aos usuários. (É a segunda maior hierarquia de diretório do Linux, só perdendo para o diretório raiz.) Diretório onde são guardadas informações variáveis sobre o sistema.
1.2.9 Principais comandos do Linux O Linux possui uma infinidade de comandos que podem ser explorados. Segue abaixo os principais: • • • • • • • • • • • • • •
apropos: permite localizar programas por assunto; info: é um sistema mais moderno de obtenção de ajuda sobre um comando; help: permite obter uma lista dos principais comandos suportados diretamente pelo shell; locate: localiza arquivos; man: mostra uma ajuda de um comando; whatis: exibe o que é determinando comando; whereis: localizar a página de ajuda (man page), código fonte, ou ficheiros binários, de um determinado programa; adduser: permite criação de novas contas de usuário; arch: informa a arquitetura do computador; exit: finaliza sessão atual. free: informa a utilização da memória; halt: utilizado pelo usuário root para desligar o sistema imediatamente; init: pode ser usado para desligar (0) ou reiniciar (6); last: informa o histórico de logs do usuário atual;
Página |8 • • • •
• • • • • • • • • • • • • •
• • • • • • • • • • • • • • • • • • • • • •
login: inicializa uma sessão; logname: mostra o login de um usuário; logout: finaliza a sessão atual; passwd: utilizado para alterar a senha. Parâmetros: (-e: faz com que a senha do usuáro expire, forçando-o a fornecer uma nova senha no próximo login; -k: permite a alteração da senha somente s esta estive expirada; -i: deixa a conta inativa, caso a senha tenha expirado; -l: bloqueia a conta do usuário; -u: desbloqueia uma conta; S: exibe o status da conta.); shutdown: também é útil para desligar o sistema. Parâmetros: (-r: reinicializa o computador; -h now: desliga o sistema imediatamente; -r +15: reiniciar em 15 minutos; -h +60: desligar em 60 minutos.); whoami: mostra o login do usuário atual; useradd: adiciona usuários ao sistema; userdel: apaga usuários do sistema; se for usada a tag "-f" até mesmo a pasta do usuário será removida. alias: possibilita a criação de apelidos para os comandos desejados; cal: exibe o calendário; cat: concatena ou mostra o conteúdo de pequenos arquivos de texto; cd: mudar o diretório; chown: permite alterar o dono e o grupo de um determinado arquivo, a tag "-R" permite a aplicação em todos os arquivos e subdiretórios; cp: copia arquivos e diretórios; cron: executar comandos agendados; du: informa o espaço ocupado pelos arquivos ou diretórios; find: procura arquivos; chmod: altera permissões de acesso de arquivos ou diretórios, o "+" acrescenta uma permissão e o "-" tira uma permissão. Parâmetros: (-u: referente ao dono; -g: referente ao grupo; -o: referenre a outros; -a: referente a todos; -r ou 4: leitura; -w ou 2: escrita/gravação; -x ou 1: execução; -0: sem permissão alguma.); df: informa os dados de ocupação do sistema de arquivo, mostra as partições usadas ou livres do HD; history: mostra os comandos que o usuário já digitou; kill: encerra um ou mais processos em andamento; ln: conecta arquivos e diretórios, ou seja, cria links para arquivos ou diretórios; mkdir: cria diretório; more: mostra conteúdo de um arquivo de texto; mount: permite fazer a montagem dos dispositivos; mv: move ou renomeia arquivos; ps: exibe os processos em execução; pwd: mostra o diretório atual; rm: apaga arquivos. Parâmetros: (-r: apara diretórios nao vazios se utilizar; -rf: apaga o diretório sem mostrar as confirmações de exclusão de arquivos.); rmdir: remove diretórios vazios; ls: lista o conteúdo de uma diretório, semelhante ao comando dir no MS-DOS; ipconfig: visualizar os ips da nossa máquina, entre outras funções relacionadas com IPs; clock: define a hora do processador; date: exibe a data e hora; su: é usado geralmente para alternar entre diferentes usuários dentro de um terminal virtual. tar: cria ou extrai arquivos, muito usado como programa de backup ou compressão de ficheiros; vi: editor de texto full-screen; vim: editor de texto full-screen melhorado; file: determina o tipo de ficheiro grep: procura um ficheiro por um padrão, sendo um filtro muito útil e usado, por exemplo um cat a.txt | grep ola irá mostrar-nos apenas as linhas do ficheiro a.txt que contenham a palavra “ola”.
Página |9 • • • • • • •
sort: ordena, une ou compara texto, podendo ser usado para extrair informações dos ficheiros de texto ou mesmo para ordenar dados de outros comandos como por exemplo listar ficheiros ordenados pelo nome; wc: conta linhas, palavras e mesmo caracteres num ficheiro; tail: funciona de forma inversa ao comando head, mostra-nos as últimas linhas de um ficheiro ou mesmo do output de outro comando, quando usado como filtro; bg: coloca um processo suspenso em background; fg: ao contrário do comando bg, o fg traz de volta um processo ao foreground; top: lista os processos que mais cpu usam, útil para verificar que processos estão a provocar um uso excessivo de memória, e quanta percentagem de cpu cada um usa em dado momento; wget: permite-nos fazer o download completo de páginas web, com todos os ficheiros, de forma fácil e não interactiva.
1.3 Serviços de diretório: Active Directory e LDAP AD - Active Directory O Active Directory é um sistema baseado em banco de dados que fornece autenticação, diretório, política e outros serviços em um ambiente Windows. Ele armazena informações sobre usuários, computadores e outros dispositivos existentes na rede. O diretório do Active Directory é composto por Objetos. Um objeto representa qualquer recurso que possuímos na rede. Uma conta de usuário que existe no Active Directory é um objeto, um grupo é um objeto, até uma impressora pode ser um objeto para o AD. Objetos Quando criamos um objeto no AD, por exemplo uma conta de usuário, a mesma possui certas propriedades, como por exemplo seu nome, seu nome de logon, telefone, endereço, entre outras. Essas propriedades são o que chamamos de atributos dos objetos. Os principais tipos de objetos que o Active Directory no Windows 2003 nos disponibiliza são: − Contas de usuários − Grupos − Contas de computadores − Pastas Compartilhadas − Impressoras − Contatos. Domínio O Active Directory é composto por domínios. Um domínio é uma unidade administrativa do Active Directory, que irá armazenar seus objetos. Qualquer Windows Server poderá ser o Controlador de Domínio, com exceção da versão Web Edition. Árvores A definição de uma árvore é “um arranjamento hierárquivo de domínios”. Quando criamos o nosso domínio, criamos também uma árvore. O nome de nossa árvore será o mesmo nome que configuramos para o nosso domínio. Através da arvore é possível criarmos subdomínios. Um subdomínio é um domínio que está abaixo de outro domínio na hierarquia da árvore (usamos também o termo “child domain” para o subdomínio). Florestas Uma floresta Windows 2003 é composta de por uma ou mais árvores de domínios Windows 2003 que não compartilham um namespace comum. Uma floresta é o limite mais externo do Active Directory. Se tivermos uma árvore e dois domínios, todos participam da mesma floresta. Mas para ter uma floresta eu preciso de pelo menos uma árvore e um
P á g i n a | 10 domínio certo? Sim! E quando a floresta é criada? Ela é criada quando criamos o nosso primeiro domínio. O nome da floresta é o nome do primeiro domínio criado, o qual também chamamos de “forest root domain”. Unidades Organizacionais Para podermos entender a utilização de Organizational Units, vamos pensar em um exemplo simples: você tem os seus arquivos, o qual você coloca em pastas para organizá-los melhor, certo? Você poderia colocá-los direto na raiz de sua unidade? (por exemplo, colocar todos os seus arquivos direto em C:) Sim, poderia. Isso iria funcionar? Sim, iria funcionar. Mas isso seria funcional? Com certeza não. Tudo bem, você saberia onde estão seus arquivos, mas e até você encontrar o que você precisa? Levaria muito mais tempo dessa maneira do que se eles estivesse organizados em pastas específicas. A idéia de Organizational Units, ou como são mais conhecidas “OUs”, é termos pastas para poder organizar melhor os objetos do domínio, poder aplicar configurações de segurança e delegar autoridade administrativa. Por exemplo, se na nossa empresa tivéssemos cinco departamentos com mais ou menos 70 funcionários em cada um deles. Poderíamos colocar todas as contas de usuários, grupos, impressoras, e computadores diretamente no domínio. Mas e se precisássemos aplicar um política de segurança só para os funcionários do departamento de vendas? Teríamos de aplicar a configuração no domínio e ela sobrecairia em todos os objetos do domínio, o que não era o desejado. Mas poderíamos criar uma OU para o departamento vendas, colocar todos os objetos respectivos ao departamento vendas na OU e aplicar a política de segurança na OU, o que nada afetaria os outros objetos do nosso domínio. Além disso, mesmo que não fosse necessário aplicar políticas de segurança específicas para os outros departamentos, poderíamos criar uma OU para cada departamento e colocar os objetos específicos nas OUs. Para visualizarmos as OU que existem em nosso domínio, utilizamos a feramente “Active Directory Users and Computers” que fica na pasta “Administrative Tools”. Resumindo... De forma resumida podemos dizer que os objetos são os usuários e os computadores cadastrados. As unidades organizacionais podem ser criadas para organizar estes usuários e computadores em estruturas para receber configurações da política de grupo (group policy). O domínio é a estrutura que centraliza as unidades organizacionais dentro da rede. As árvores de domínio reunem diversos controladores de domínio em uma estrutura empresarial. E as florestas organizam as árvores de domínios da empresa. Outros conceitos de AD RODC (Controladores de domínio somente leitura): um RODC (controlador de domínio somente leitura) é um novo tipo de controlador de domínio do sistema operacional Windows Server® 2008. Com um RODC, as organizações podem facilmente implantar um controlador de domínio em locais onde não é possível garantir a segurança física. Um RODC hospeda partições somente leitura do banco de dados dos Serviços de Domínio Active Directory® (AD DS). Função Active Directory Rights Management Services: o AD RMS, uma tecnologia agnóstica de aplicativo e formato, fornece serviços para permitir a criação de soluções de proteção de informações. O conteúdo que pode ser protegido pelo uso do AD RMS inclui sites de intranet, mensagens de email e documentos. O AD RMS foi criado para ajudar a tornar o conteúdo mais seguro, independentemente de o conteúdo protegido por direitos poder ser movido. O AD RMS depende dos Serviços de Domínio Active Directory (AD DS) para verificar se o usuário que está tentando consumir conteúdo protegido por direitos está autorizado a fazer isso. Função Serviços AD LDS: A função de servidor AD LDS (Active Directory® Lightweight Directory Services) é um serviço de diretório do protocolo LDAP. Ela oferece armazenamento e recuperação de dados para aplicativos habilitados em diretório, sem as dependências necessárias aos Serviços de Domínio Active Directory (AD DS). O AD LDS oferece grande parte da mesma funcionalidade que o AD DS (na verdade, ele foi criado em cima da mesma base de código), mas não requer a implantação de domínios ou controladores de domínio. Como o AD LDS foi desenvolvido para ser um serviço de diretório para aplicativos, é esperado que os aplicativos irão criar, gerenciar e remover objetos de diretório. LDAP - Lightweight Directory Access Protocol
P á g i n a | 11 O LDAP (Lightweight Directory Access Protocol) é um protocolo de aplicação para consultar e modificar itens de prestadores de serviços de diretório como o Active Directory, que suporta uma forma de LDAP. Sua função é atualizar e pesquisar diretórios rodando sobre TCP/IP. Ele foi criado como uma alternativa ao DAP (Directory Access Protocol) para navegar em diretórios no formato X.500. O LDAP permite manipular informações sobre pessoas, senhas, impressoras, recursos e serviços, unidades organizacionais, entre outros, e define as formas como essas informações podem ser consultadas, inseridas, removidas ou atualizadas. Uma versão segura desse protocolo, o LDAPS, também está disponível. O LDAP: • Centraliza, em um único local da rede, informações acerca de usuários, senhas e diretórios. • Permite acesso aos dados de forma segura usando SSL. • É independente de plataforma, podendo ser usado tanto no Active Directory do Windows como no Open LDAP do Linux. • Armazena as informações de forma hierárquica em uma estrutura de árvore. • Sofre mais consultas que atualizações. • Suporta tanto a autenticação por meio de certificados quanto o uso de TLS. Um cliente começa uma sessão de LDAP ligando-se a um servidor LDAP normalmente pela porta padrão TCP 389. Este envia requisições para o servidor, que devolve respostas das consultas e alterações. As operações básicas são divididas em três categorias, conforme a seguir: Categoria Autenticação e controle
Bind
Operação
Autenticação e controle Autenticação e controle Pesquisa e comparação
Abandon Unbind Search
Pesquisa e comparação
Compare
Atualização Atualização Atualização Atualização
Add Delete Modify Modify DN Start TLS Extended Operation
Descrição Autentica e especifica a versão do protocolo LDAP. Aborta uma requisição prévia. Fecha a conexão, não o inverso de Bind. Procura por e/ou recupera entradas dos diretórios. Testa se uma entrada tem determinado valor como atributo. Adiciona uma nova entrada. Apaga uma entrada. Modifica uma entrada. Move ou renomeia uma entrada. Protege a conexão com a Transport Layer Security (TLS). Operação genérica para definir outras operações.
A estrutura básica das informações LDAP é baseada em uma árvore conceitual, chamada de DIT (Directory Information Tree). Cada folha dessa árvore é um objeto identificado por um DN (Distinguished Name), que representa um endereço na estrutura LDAP sendo considerada. Os identificadores DN possuem uma utilização parecida com os sistemas de arquivo, com a diferença de que a parte mais significativa no LDAP aparece primeiro (ex: cn=Henrique,o=funcionário,ou=administrativo), enquanto nos endereços de arquivo acontece o contrário (ex: /home/user/arquivo). A identificação de elementos do LDAP é semelhante à estrutura utilizada no DNS, com a parte mais significativa aparecendo primeiro (mais à esquerda). Para cada objeto (folha da árvore) são definidos atributos. Alguns dos atributos que podem ser associados aos objetos são: Atributo c cn dc dn
Descrição country (País) common name domainComponent distinguished name (define uma entrada sem ambigüidades. É o caminho de registros que fica entre o registro a ser especificado e a raiz)
P á g i n a | 12 Givenname ou rdn sn uid
Primeiro nome organizationalUnitName relative distinguished name (identifica um registro em seu nível) surname (sobrenome) user ID
Registro: contém informações sobre o objeto armazenado (usuário, impressora, etc.). Object class: define quais atributos são obrigatórios e quais são opcionais em um registro. Um registro tem uma ou mais object class. Schema: conjunto de regras que define os tipos de dados possíveis (int, string, etc.) e organização desses dados. Busca manter a consistência dos dados no diretório LDAP. Modelos de abordagem do LDAP • • •
•
Modelo de informações: define o tipo de informação que pode ser armazenada em um diretório LDAP. Trata dos atributos, das object class, dos schemas, etc. Modelo de nomes: define como a informação no diretório LDAP pode ser organizada e referenciada. Trata da organização da DIT, como os RDNs e o DNs. Modelo funcional: define o que pode ser feito com a informação no diretório LDAP e como ela pode ser acessada e alterada. Descreve o que fazer com o diretório e através de quais ferramentas, como por exemplo, fazer autenticação, buscar no diretório, modificar dados, etc. Modelo de segurança: define como a informação no diretório LDAP pode ser protegida de acessos ou modificações não autorizadas. No LDAP, podemos ter vários usuários além do administrador. Na verdade, caso você deseje, o LDAP pode tratar cada registro da DIT como um usuário. Para dizer o que cada usuário terá permissão de fazer (ler ou modificar) e em quais registros ele poderá fazer isso (registros próprios dele ou dos outros), existem as ACLs (Access Control Lists). O modelo de segurança utiliza o TLS (criptografa a comunicação entre cliente e servidor) e a SASL – Simple Authentication and Secutiry Layer (método de negociação seguro de autenticação entre cliente e servidor para provar ao serviço que um cliente é válido).
Resposta curta: AD é um banco de dados de serviços de diretório, e LDAP é um dos protocolos que você pode usar para falar com ele. 2. VIRTUALIZAÇÃO COM CITRIX XEN SERVER E VMWARE ESXI Virtualização de servidores é uma tecnologia que permite, através do compartilhamento de hardware, que múltiplos sistemas operacionais possam ser executadas em um único servidor físico. Utilizando-se do Citrix XenServer ou VMWare ESXi cada máquina virtual é completamente isolada das outras máquinas virtuais. Com a virtualização cada máquina virtual configurada neste processo comporta-se como servidor completo, seguro e totalmente isolado como se fosse um servidor independente. 2.1 Citrix XenServer O XenServer é uma solução de classe empresarial comprovada para computação em nuvem e virtualização de servidores, que reduz drasticamente os custos do datacenter ao transformar os ambientes de TI estáticos e complexos em datacenters virtuais dinâmicos e fáceis de gerenciar. Oferece capacidades de gerenciamento avançadas para integrar e automatizar os datacenters virtuais por uma fração do custo de outras soluções. Requerimentos para instalação XenServer é executado diretamente no seu hardware, então não haverá nada entre o hardware e o XenServer. Em outras palavras, o XenServer funcionará literalmente como o sistema operacional. Ele vai falar diretamente com o hardware, incluindo a interface de rede (NIC) e controlador de armazenamento.
P á g i n a | 13
Ele requer uma CPU 64-bit com a tecnologia Intel VT ou AMD-V habilitado, isso é mais como uma especificação recomendada, não significa que XenServer não será instalado se o seu processador não possuir suporte a Intel VT ou AMD-V habilitado. Porém, ele terá seus recursos e funcionalidades bem limitadas. O XenServer é um hypervisor paravirtualizado, usa a técnica de paravirtualização. Portanto, requer que o processador existente em seu servidor físico possua suporte a tecnologia de virtualização para que você aproveite todas as funcionalidades e vantagens dessa tecnologia. É peciso de um mínimo de 2 GB de RAM só para instalar XenServer, mas o recomendado é de pelo menos 8 GB, especialmente se você pretende hospedar múltiplas máquinas virtuais. XenServer sozinho vai exigir 16 GB de espaço em disco. Mas, novamente, você vai precisar de mais para as máquinas virtuais caso deseje hospedá-las localmente. Pode-se instalar até 1 TB de RAM, 16 placas de rede, e 64 processadores lógicos em um host físico que executa o XenServer. Lembre-se que os processadores lógicos é uma combinação dos núcleos, o hyperthreading que está ativado, etc. Abaixo algumas características: •
•
•
•
• •
• • •
•
Console de gerenciamento Citrix XenCenter: O Citrix® XenCenter® oferece funções de monitoramento , gerenciamento e administração geral de VMs em uma única interface que permite à equipe de TI gerenciar facilmente centenas de máquinas virtuais a partir de um console de gerenciamento centralizado e altamente disponível, que pode ser instalado em qualquer desktop Windows®. Virtual Switching Distribuído: O XenServer possui todas as ferramentas necessárias para criar uma estrutura de rede virtual multi-tenant, extremamente flexível e isolada. Esta estrutura baseada em política assegura que a configuração de rede das máquinas virtuais siga a VM quando migra dentro de um pool de recursos. As políticas são definidas no nível da rede virtual garantindo que os requisitos de segurança de rede sejam atendidos independente das configurações da VM convidada. Balanceamento dinâmico da carga de trabalho: O XenServer aprimora o uso do sistema e a performance dos aplicativos ao balancear automaticamente as máquinas virtuais com base em políticas definidas pelos usuários dentro do pool de recursos, para colocação inicial e operações contínuas. Alta disponibilidade: O XenServer move e reinicializa automaticamente as máquinas virtuais se houver uma falha na máquina virtual, no hypervisor ou no servidor. Esta capacidade de auto reinicialização permite aos administradores protegerem todos os aplicativos virtualizados e proporciona níveis mais altos de disponibilidade para a empresa. Gerenciamento de energia: O XenServer aproveita os recursos do hardware para relocar VMs dinamicamente e ligar e desligar hosts conforme a demanda por recursos flutuar. Recuperação de desastres: O XenServer possui recursos de recuperação de desastres com um planejamento de recuperação de desastres de site-to-site e serviços para ambientes virtuais. Estes recursos são fáceis para configurar, rápidos para recuperar e têm a habilidade de testar frequentemente os planos de recuperação de desastres para garantir que permanecem sempre válidos. IntelliCache: O XenServer usa o armazenamento local como repositório para as imagens de boot e dados temporários reduzindo o volume de tráfego no Storage para instalações XenDesktop. Otimização de memória: O XenServer reduz os custos e melhora a performance e a proteção de aplicativos ao compartilhar a memória de servidores sem uso entre as máquinas virtuais no servidor host. Serviços de provisionamento: O Citrix Provisioning Services™ reduz os requisitos de armazenamento ao criar um conjunto de imagens padrão que podem ser transmitidas para servidores físicos e virtuais para que as instalações de aplicativos sejam mais rápidas, consistentes e confiáveis. Administração baseada em funções: A administração baseada em funções do XenServer aumenta a segurança e permite acesso delegado, controle e uso dos recursos do pool ao manter uma estrutura de acesso em camadas com níveis de permissão variáveis.
P á g i n a | 14 •
•
Citrix StorageLink: O Citrix® StorageLink™ oferece integração com as plataformas líderes de armazenamento de rede, o que permite aos gerentes de armazenamento aproveitarem as ferramentas existentes de gerenciamento de dados para manter os processos de gerenciamento consistentes em ambientes físicos e virtuais. Proteção e recuperação das máquinas virtuais: O XenServer protege contra a perda de dados em caso de falha nas máquinas virtuais ao tirar snapshots regularmente e arquivar as imagens em um local específico de armazenamento.
2.2 VMWare ESXi O VMware ESXi fornece a base para criação de uma infra estrutura de confiabilidade e dinamismo. Esta ferramenta abstrai os recursos de processador, memória, armazenamento e rede de uma só máquina passando para varias máquinas virtualizada,esta é a ferramenta de Virtualização mais implantada do mercado. O VMware ESXi é a ferramenta mais recente da VMware,ela possui grande arquitetura e não depende de um sistema operacional. O VMware ESXi criou um novo nível de segurança e confiabilidade, possui uma codificação menor, com menos código para corrigir menos erros , tornando esta ferramenta muito difícil de receber ataques. Este software pode ser integrado diretamente aos servidores x86, que é padrão do setor dos fabricantes líderes no mercado de fabricação , como Dell, IBM, HP e Fujitsu-Siemens. A ferramenta ESXi está disponível no site da fabricante gratuitamente para utilizações de servidores únicos. Assim,a área de Tecnologia da Informação utiliza de outra ferramenta gratuita, o VMware vShere client, para gerenciamento dos recursos. O VMware ESXi é instalado diretamente no hardware da máquina, inserindo a camada de Virtualização entre o hardware e o sistema operacional, com o controle geral da máquina, como os servidores que foram instalados, o armazenamento e a rede. As ferramentas VMware ESXi permitem que em um só espaço físico consigamos executar diversos aplicativos em diversas máquinas virtuais ao mesmo tempo. Abaixo algumas características: • • • • • • • • • • • •
Ocupa pouco espaço no disco após a instalação; Suporta Storages (SAN, NAS,...); Possibilita a criação de Redes Virtuais (switches virtuais); Suporte a VLAN, Traffic Shapping; Suporte a Paravirtualização; Suporte a multiprocessadores; Melhoria no gerenciamento de recursos( através da funcionalidade "Pool de Recursos"); Upgrades(para versões pagas) sem precisar de reinstalação; Snapshots do disco e da memória; Downloads e Uploads de VMs (download pode ser "a quente"); Priorização de I/O ao disco; Ordem de Boot e Shutdown.
2.3 Diferenças entre o Xen Server e VMware ESXi Funcionalidades Suporte a Vários Sockets (Processador Físico) Memória Ram no Host Tamanho máximo de Memória RAM na VM Instalação Bare-metal
Citrix XenServer 6
1 TB RAM no Host
VMware ESXi 5 Suporte a Somente 01 Socket (Processador Físico) 32 GB no Host
128 GB RAM
32 GB RAM
Gratuito
Gratuito
Sem restrições
P á g i n a | 15 Ferramentas de migração P2V e V2V Gratuitas Gerenciamento Múltiplo de Servidores Pools de Recursos (Cluster) e Storage Compartilhado Snapshots de máquinas virtuais (VM) Monitoramento de performance em tempo Real Migração a Quente (XenMotion) e Backup de VMs Incluso Quantidade de vCPU (Processador Virtual) por máquina Virtual Modo Manutenção Atualização do Hypervisor Templates VMs Clonar VMs Suporte a SNMP
Gratuito
Gratuito
Gratuito
Não possui. Gerenciamento Comprar vCenter Server
Gratuito. Para servidores com mesmo hardware
Não possui
Gratuito
Não possui
Grauito
Não possui
Gratuito
Não possui
Suporte a 16 vCPU para VMs Windows e suporte a 32 vCPU para VMs Linux Incluso Facilitado com Assistentes dentro do XenCenter Gratuito Gratuito Gratuito
8 vCPU para cada VM Não possui Linha de comando Não Possui Não Possui Não Possui
3. COMPUTAÇÃO EM NUVEM O conceito de computação em nuvem (em inglês, cloud computing) refere-se à utilização da memória e das capacidades de armazenamento e cálculo de computadores e servidores compartilhados e interligados por meio da Internet, seguindo o princípio da computação em grade. O armazenamento de dados é feito em serviços que poderão ser acessados de qualquer lugar do mundo, a qualquer hora, não havendo necessidade de instalação de programas ou de armazenar dados. O acesso a programas, serviços e arquivos é remoto, através da Internet - daí a alusão à nuvem. O uso desse modelo (ambiente) é mais viável do que o uso de unidades físicas. Num sistema operacional disponível na Internet, a partir de qualquer computador e em qualquer lugar, pode-se ter acesso a informações, arquivos e programas num sistema único, independente de plataforma. O requisito mínimo é um computador compatível com os recursos disponíveis na Internet. O PC torna-se apenas um chip ligado à Internet — a "grande nuvem" de computadores — sendo necessários somente os dispositivos de entrada (teclado, mouse) e saída (monitor). Empresas como Amazon, Google, IBM e Microsoft foram as primeiras a iniciar uma grande ofensiva nessa "nuvem de informação" (information cloud), que especialistas consideram uma "nova fronteira da era digital". Aos poucos, essa tecnologia vai deixando de ser utilizada apenas em laboratórios para ingressar nas empresas e, em breve, em computadores domésticos. O primeiro serviço na Internet a oferecer um ambiente operacional para os usuários—antigamente, disponível no endereço www.webos.org—foi criado por um estudante sueco, Fredrik Malmer, utilizando as linguagens XHTML e Javascript. Atualmente, o termo AJAX é adotado para definir a utilização dessas duas linguagens na criação de serviços na Internet. Em 1999, foi criada nos EUA a empresa WebOS Inc., que comprou os direitos do sistema de Fredrik e licenciou uma série de tecnologias desenvolvidas nas universidades do Texas, Califórnia e Duke. O objetivo inicial era criar um ambiente operacional completo, inclusive com API para o desenvolvimento de outros aplicativos. Tipologia
P á g i n a | 16 Atualmente, a computação em nuvem é dividida em sete tipos: • • •
• • •
•
IaaS: Infrastructure as a Service ou Infraestrutura como Serviço (em português): quando se utiliza uma percentagem de um servidor, geralmente com configuração que se adeque à sua necessidade. PaaS: Plataform as a Service ou Plataforma como Serviço (em português): utilizando-se apenas uma plataforma como um banco de dados, um web-service, etc. (p.ex.: Windows Azure e Jelastic). DevaaS: Development as a Service ou Desenvolvimento como Serviço (em português): as ferramentas de desenvolvimento tomam forma na computação em nuvem como ferramentas compartilhadas, ferramentas de desenvolvimento web-based e serviços baseados em mashup. SaaS: Software as a Service ou Software como Serviço (em português): uso de um software em regime de utilização web (p.ex.: Google Docs , Microsoft SharePoint Online). CaaS: Communication as a Service ou Comunicação como Serviço (em português): uso de uma solução de Comunicação Unificada hospedada em Data Center do provedor ou fabricante (p.ex.: Microsoft Lync). EaaS: Everything as a Service ou Tudo como Serviço (em português): quando se utiliza tudo, infraestrurura, plataformas, software, suporte, enfim, o que envolve T.I.C. (Tecnologia da Informação e Comunicação) como um Serviço. DBaas: Data Base as a Service ou Banco de dados como Serviço (em português): quando utiliza a parte de servidores de banco de dados como serviço.
Serviços oferecidos Os seguintes serviços atualmente são oferecidos por empresas: • • • •
Servidor Cloud Hospedagem de Sites em Cloud Load Balancer em Cloud Email em Cloud
Característica de computação em nuvem • • • • •
Provisionamento dinâmico de recursos sob demanda, com mínimo de esforço; Escalabilidade; Uso de "utilility computing", onde a cobrança é baseada no uso do recurso ao invés de uma taxa fixa; Visão única do sistema; Distribuição geográfica dos recursos de forma transparente ao usuário.
Modelo de implantação No modelo de implantação, dependemos das necessidades das aplicações que serão implementadas. A restrição ou abertura de acesso depende do processo de negócios, do tipo de informação e do nível de visão desejado. Percebemos que certas organizações não desejam que todos os usuários possam acessar e utilizar determinados recursos no seu ambiente de computação em nuvem. Segue abaixo a divisão dos diferentes tipos de implantação: •
•
Privado: As nuvens privadas são aquelas construídas exclusivamente para um único usuário (uma empresa, por exemplo). Diferentemente de um data center privado virtual, a infraestrutura utilizada pertence ao usuário, e, portanto, ele possui total controle sobre como as aplicações são implementadas na nuvem. Uma nuvem privada é, em geral, construída sobre um data center privado. Público: As nuvens públicas são aquelas que são executadas por terceiros. As aplicações de diversos usuários ficam misturadas nos sistemas de armazenamento, o que pode parecer ineficiente a princípio. Porém, se a implementação de uma nuvem pública considera questões fundamentais, como desempenho e segurança, a
P á g i n a | 17
•
•
existência de outras aplicações sendo executadas na mesma nuvem permanece transparente tanto para os prestadores de serviços como para os usuários. Comunidade: A infraestrutura de nuvem é compartilhada por diversas organizações e suporta uma comunidade específica que partilha as preocupações (por exemplo, a missão, os requisitos de segurança, política e considerações sobre o cumprimento). Pode ser administrado por organizações ou por um terceiro e pode existir localmente ou remotamente. Híbrido: Nas nuvens híbridas temos uma composição dos modelos de nuvens públicas e privadas. Elas permitem que uma nuvem privada possa ter seus recursos ampliados a partir de uma reserva de recursos em uma nuvem pública. Essa característica possui a vantagem de manter os níveis de serviço mesmo que haja flutuações rápidas na necessidade dos recursos. A conexão entre as nuvens pública e privada pode ser usada até mesmo em tarefas periódicas que são mais facilmente implementadas nas nuvens públicas, por exemplo. O termo computação em ondas é, em geral, utilizado quando se refere às nuvens híbridas.
Vantagens A maior vantagem da computação em nuvem é a possibilidade de utilizar softwares sem que estes estejam instalados no computador. Mas há outras vantagens:
Na maioria das vezes o usuário não precisa se preocupar com o sistema operacional e hardware que está usando em seu computador pessoal, podendo acessar seus dados na "nuvem computacional" independentemente disso; As atualizações dos softwares são feitas de forma automática, sem necessidade de intervenção do usuário; O trabalho corporativo e o compartilhamento de arquivos se tornam mais fáceis, uma vez que todas as informações se encontram no mesmo "lugar", ou seja, na "nuvem computacional"; Os softwares e os dados podem ser acessados em qualquer lugar, basta apenas que haja acesso à Internet, não são mais restritos ao ambiente local de computação, nem dependem da sincronização de mídias removíveis. O usuário tem um melhor controle de gastos ao usar aplicativos, pois a maioria dos sistemas de computação em nuvem fornece aplicações gratuitamente e, quando não gratuitas, são pagas somente pelo tempo de utilização dos recursos. Não é necessário pagar por uma licença integral de uso de software; Diminui a necessidade de manutenção da infraestrutura física de redes locais cliente/servidor, bem como da instalação dos softwares nos computadores corporativos, pois esta fica a cargo do provedor do software em nuvem, bastando que os computadores clientes tenham acesso à Internet; A infraestrutura necessária para uma solução de computação em nuvem é bem mais enxuta do que uma solução tradicional de hospedagem ou alojamento, consumindo menos energia, refrigeração e espaço físico e consequentemente contribuindo para a preservação e o uso racional dos recursos naturais.
Desvantagens A maior desvantagem da computação em nuvem vem fora do propósito desta, que é o acesso a internet. Caso você perca o acesso, comprometerá todos os sistemas embarcados.
Velocidade de processamento: caso seja necessário uma grande taxa de transferência, se a internet não tiver uma boa banda, o sistema pode ser comprometido. Um exemplo típico é com mídias digitais ou jogos; Assim como todo tipo de serviço, ele é custeado. Maior risco de comprometimento da privacidade do que em armazenamento off-line.
Gerenciamento da segurança da informação na nuvem Sete princípios de segurança em uma rede em nuvem: •
Acesso privilegiado de usuários: A sensibilidade de informações confidenciais nas empresas obriga um controle de acesso dos usuários e informação bem específica de quem terá privilégio de administrador, para então esse administrador controle os acessos
P á g i n a | 18 •
•
•
•
•
•
Compliance com regulamentação: As empresas são responsáveis pela segurança, integridade e a confidencialidade de seus próprios dados. Os fornecedores de computação em nuvem devem estar preparados para auditorias externas e certificações de segurança. Localização dos dados: A empresa que usa cloud provavelmente não sabe exatamente onde os dados estão armazenados, talvez nem o país onde as informações estão guardadas. O fornecedor deve estar disposto a se comprometer a armazenar e a processar dados em jurisdições específicas, assumindo um compromisso em contrato de obedecer os requerimentos de privacidade que o país de origem da empresa pede. Segregação dos dados: Geralmente uma empresa divide um ambiente com dados de diversos clientes. Procure entender o que é feito para a separação de dados, que tipo de criptografia é segura o suficiente para o funcionamento correto da aplicação. Recuperação dos dados: O fornecedor em cloud deve saber onde estão os dados da empresa e o que acontece para recuperação de dados em caso de catástrofe. Qualquer aplicação que não replica os dados e a infraestrutura em diversas localidades está vulnerável a falha completa. Importante ter um plano de recuperação completa e um tempo estimado para tal. Apoio à investigação: A auditabilidade de atividades ilegais pode se tornar impossível na computação em nuvem uma vez que há uma variação de servidores conforme o tempo onde estão localizados os acessos e os dados dos usuários. Importante obter um compromisso contratual com a empresa fornecedora do serviço e uma evidência de sucesso no passado para esse tipo de investigação. Viabilidade em longo prazo: No mundo ideal, o seu fornecedor de computação em nuvem jamais vai falir ou ser adquirido por uma empresa maior. A empresa precisa garantir que os seus dados estarão disponíveis caso o fornecedor de computação em nuvem deixe de existir ou seja migrado para uma empresa maior. Importante haver um plano de recuperação de dados e o formato para que possa ser utilizado em uma aplicação substituta.
Sistemas atuais Os sistemas operacionais para Internet mais utilizados são: •
•
•
•
•
•
Google Chrome OS: Desenvolvido pela Google, já incorporado nos Chromebooks, disponíveis desde 15 de junho de 2011. Trabalha com uma interface diferente, semelhante ao do Google Chrome, em que todas as aplicações ou arquivos são salvos na nuvem e sincronizados com sua conta do Google, sem necessidade de salvá-los no computador, já que o HD dos dois modelos de Chromebooks anunciados contam com apenas 16gb de HD. Joli Os: desenvolvido por Tariq Krim, o ambiente de trabalho chamado jolicloud usa tanto aplicativos em nuvem quanto aplicativos offline, baseado no ubuntu notebook remix, já tem suporte a vários navegadores como google chrome, safari, firefox, e está sendo desenvolvido para funcionar no android. YouOS: desenvolvido pela empresa WebShaka, cria um ambiente de trabalho inspirado nos sistemas operacionais modernos e utiliza a linguagem Javascript para executar as operações. Ele possui um recurso semelhante à hibernação no MS-Windows XP, em que o usuário pode salvar a área de trabalho com a configuração corrente, sair do sistema e recuperar a mesma configuração posteriormente. Esse sistema também permite o compartilhamento de arquivos entre os usuários. Além disso, possui uma API para o desenvolvimento de novos aplicativos, sendo que já existe uma lista de mais de 700 programas disponíveis. Fechado pelos desenvolvedores em 30 de julho de 2008; DesktopTwo: desenvolvido pela empresa Sapotek, tem como pré-requisito a presença do utilitário Flash Player para ser utilizado. O sistema foi desenvolvido para prover todos os serviços necessários aos usuários, tornando a Internet o principal ambiente de trabalho. Utiliza a linguagem PHP como base para os aplicativos disponíveis e também possui uma API, chamada Sapodesk, para o desenvolvimento de novos aplicativos. Fechado para desenvolvedores; G.ho.st: Esta sigla significa “Global Hosted Operating SysTem” (Sistema Operacional Disponível Globalmente), tem como diferencial em relação aos outros a possibilidade de integração com outros serviços como: Google Docs, Meebo, ThinkFree, entre outros, além de oferecer suporte a vários idiomas; eyeOS: Este sistema está sendo desenvolvido por uma comunidade denominada EyeOS Team e possui o código fonte aberto ao público. O objetivo dos desenvolvedores é criar um ambiente com maior compatibilidade com os
P á g i n a | 19
• •
•
•
•
aplicativos atuais, MS-Office e OpenOffice. Possui um abrangente conjunto de aplicativos, e o seu desenvolvimento é feito principalmente com o uso da linguagem PHP. iCloud: Sistema lançado pela Apple em 2011, é capaz de armazenar até 5 GB de fotos, músicas, documentos, livros e contatos gratuitamente, com a possibilidade de adquirir mais espaço em disco (pago). Ubuntu One: Ubuntu One é o nome da suíte que a Canonical (Mantenedora da distribuição Linux Ubuntu) usa para seus serviços online. Atualmente com o Ubuntu One é possível fazer backups, armazenamento, sincronização e compartilhamento de arquivos e vários outros serviços que a Canonical adiciona para oferecer mais opções e conforto para os usuários. IBM Smart Business: Sistema da IBM que engloba um conjunto de serviços e produtos integrados em nuvem voltados para a empresa. O portfólio incorpora sofisticada tecnologia de automação e autosserviço para tarefas tão diversas como desenvolvimento e teste de software, gerenciamento de computadores e dispositivos, e colaboração. Inclui o Servidor IBM CloudBurst server (US) com armazenamento, virtualização, redes integradas e sistemas de gerenciamento de serviço embutidos. Dropbox: Dropbox é um sistema de armazenamento em nuvem que inicia-se gratuitamente com 2gb e conforme indica amigos o espaço para armazenamento de arquivos cresce até 18gb. Também tem opções pagas com maior espaço. Skydrive: Serviço de armazenamento em nuvem da Microsoft com 7gb free e com a possibilidade de adquirir mais espaço. Tem serviços sicronizados com o windows 8, windows phone e Xbox.
4. SERVIDORES HTTP APACHE O servidor Apache (ou Servidor HTTP Apache, em inglês: Apache HTTP Server, ou simplesmente: Apache) é o mais bem sucedido servidor web livre. Foi criado em 1995 por Rob McCool, então funcionário do NCSA (National Center for Supercomputing Applications). Numa pesquisa realizada em dezembro de 2007, foi constatado que a utilização do Apache representa 47.20% dos servidores ativos no mundo. Em maio de 2010, o Apache serviu mais de 54,68% de todos os sites e mais de 66% dos milhões de sites mais movimentados. É a principal tecnologia da Apache Software Foundation, responsável por mais de uma dezena de projetos envolvendo tecnologias de transmissão via web, processamento de dados e execução de aplicativos distribuídos. O servidor é compatível com o protocolo HTTP versão 1.1. Suas funcionalidades são mantidas através de uma estrutura de módulos, permitindo inclusive que o usuário escreva seus próprios módulos - utilizando a API do software. Sua porta padrão é a 80. É disponibilizado em versões para os sistemas Windows, Novell Netware, OS/2 e diversos outros do padrão POSIX (Unix, Linux, FreeBSD, etc.). Para garantir segurança nas transações HTTP, o servidor dispõe de um módulo chamado mod_ssl, o qual adiciona a capacidade do servidor atender requisições utilizando o protocolo HTTPS. Este protocolo utiliza uma camada SSL para criptografar todos os dados transferidos entre o cliente e o servidor, provendo maior grau de segurança, confidencialidade e confiabilidade dos dados. A camada SSL é compatível com certificados X.509, que são os certificados digitais fornecidos e assinados por grandes entidades certificadoras no mundo. O servidor é configurado por um arquivo mestre nomeado httpd.conf e opcionalmente pode haver configurações para cada diretório utilizando arquivos com o nome .htaccess, onde é possível utilizar autenticação de usuário pelo próprio protocolo HTTP utilizando uma combinação de arquivo .htaccess com um arquivo .htpasswd, que guardará os usuários e senhas (criptografadas). Características do servidor Apache O Apache Server é um software livre, o que significa que qualquer um pode estudar ou alterar seu código-fonte, além de poder utilizá-lo gratuitamente. É graças a essa característica que o software foi (e continua sendo) melhorado ao passar dos anos. Graças ao trabalho muitas vezes voluntário de vários desenvolvedores, o Apache continua sendo o servidor Web mais usado no mundo. Além de estar disponível para o Linux (e para outros sistemas operacionais baseados no
P á g i n a | 20 Unix), o Apachetambém conta com versões para o Windows, para o Novell Netwar e para o OS/2, o que o torna uma ótima opção para rodar em computadores obsoletos (desde que este atenda aos requisitos mínimos de hardware). O servidor Apache é capaz de executa código em PHP, Perl, Shell Script e até em ASP e pode atuar como servidor FTP, HTTP, entre outros. Sua utilização mais conhecida é a que combina o Apache com a linguagem PHP e o banco de dados MySQL (combinação usada aqui no InfoWester, por exemplo). A exigência de hardware do Apache depende de sua aplicação, mas um PC Pentium com 64 MB de memória RAM é capaz de executá-lo tranqüilamente em um ambiente corporativo pequeno. No entanto, quando se trata de um site na internet, é interessante ter máquinas tão poderosas quanto o que exige o nível de acesso. Abaixo, segue um resumo com as principais características (extraído do Guia Foca Linux): • • • • • • • • • • • • • • •
Possui suporte a scripts cgi usando linguagens como Perl, PHP, Shell Script, ASP, etc; Suporte a autorização de acesso podendo ser especificadas restrições de acesso separadamente para cada endereço/arquivo/diretório acessado no servidor; Autenticação requerendo um nome de usuário e senha válidos para acesso a alguma página/subdiretório/arquivo (suportando criptografia via Crypto e MD5); Negociação de conteúdo, permitindo a exibição da página Web no idioma requisitado pelo Cliente Navegador; Suporte a tipos mime; Personalização de logs; Mensagens de erro; Suporte a virtual hosting (é possível servir 2 ou mais páginas com endereços/ portas diferentes através do mesmo processo ou usar mais de um processo para controlar mais de um endereço); Suporte a IP virtual hosting; Suporte a name virtual hosting; Suporte a servidor Proxy ftp e http, com limite de acesso, caching (todas flexivelmente configuráveis); Suporte a proxy e redirecionamentos baseados em URLs para endereços Internos; Suporte a criptografia via SSL,Certificados digitais; Módulos DSO (Dynamic Shared Objects) permitem adicionar/remover funcionalidades e recursos sem necessidade de recompilação do programa.
5. LINGUAGEM DE PROGRAMAÇÃO PYTHON E FRAMEWORK DE DESENVOLVIMENTO WEB DJANGO 5.1 Framework de Desenvolvimento Web Django Django é um framework para desenvolvimento rápido para web, escrito em Python, que utiliza o padrão MTV (model template - view). Foi criado originalmente como sistema para gerenciar um site jornalístico na cidade de Lawrence, no Kansas. Tornou-se um projeto de código aberto e foi publicado sob a licença BSD em 2005. O nome Django foi inspirado no músico de jazz Django Reinhardt. Django utiliza o princípio DRY (Don't Repeat Yourself), onde faz com que o desenvolvedor aproveite ao máximo o código já feito, evitando a repetição. Principais características: • Mapeamento Objeto-Relacional (ORM): com o ORM do Django você define a modelagem de dados através de classes em Python. Com isso é possível gerar suas tabelas no banco de dados e manipulá-las sem necessidade de utilizar SQL (o que também é possível). • Interface Administrativa: no Django é possível gerar automaticamente uma interface para administração para os modelos criados através do ORM. • Formulários: é possível gerar formulários automaticamente através dos modelos de dados. • URLs Amigáveis: no Django não há limitações para criação de URLs amigáveis e de maneira simples.
P á g i n a | 21 • • •
Sistema de Templates: o Django tem uma linguagem de templates poderosa, extensível e amigável. Com ela você pode separar design, conteúdo e código em Python. Sistema de Cache: o Django possui um sistema de cache que se integra ao memcached ou em outros frameworks de cache. Internacionalização: Django tem total suporte para aplicações multi-idioma, deixando você especificar strings de tradução e fornecendo ganchos para funcionalidades específicas do idioma.
5.2 Linguagem Python Python é uma linguagem de programação de alto nível , interpretada, imperativa, orientada a objetos, funcional, de tipagem dinâmica e forte. Foi lançada por Guido van Rossum em 1991. Atualmente possui um modelo de desenvolvimento comunitário, aberto e gerenciado pela organização sem fins lucrativos Python Software Foundation. Apesar de várias partes da linguagem possuírem padrões e especificações formais, a linguagem como um todo não é formalmente especificada. O padrão de facto é a implementação CPython. A linguagem foi projetada com a filosofia de enfatizar a importância do esforço do programador sobre o esforço computacional. Prioriza a legibilidade do código sobre a velocidade ou expressividade. Combina uma sintaxe concisa e clara com os recursos poderosos de sua biblioteca padrão e por módulos e frameworks desenvolvidos por terceiros. O nome Python teve a sua origem no grupo humorístico britânico Monty Python, criador do programa Monty Python's Flying Circus, embora muitas pessoas façam associação com o réptil do mesmo nome (em português, píton ou pitão). Construções Construções de Python incluem: estrutura de seleção (if, else, elif); estrutura de repetição (for, while), que itera por um container, capturando cada elemento em uma variável local dada; construção de classes (class); construção de subrotinas (def); construção de escopo (with), como por exemplo para adquirir um recurso. Tipos de dado A tipagem de Python é forte, pois os valores e objetos têm tipos bem definidos e não sofrem coerções como em C ou Perl. São disponibilizados diversos tipos de dados nativos: Tipo de dado
Descrição
Exemplo da sintaxe
str, unicode
Uma cadeia de caracteres imutável
'Wikipedia', u'Wikipedia'
list
Lista heterogênea mutável
[4.0, 'string', True]
tuple
Tupla imutável
(4.0, 'string', True)
set, frozenset
Conjunto não ordenado, não contém elementos duplicados
set([4.0, 'string', True]) frozenset([4.0, 'string', True])
dict
conjunto associativo
{'key1': 1.0, 'key2': False}
int
Número de precisão fixa, é 42 transparentemente convertido para long caso 2147483648L não caiba em um int.
float
Ponto flutuante
3.1415927
complex
Número complexo
3+2j
bool
Booleano
True ou False
Python também permite a definição dos tipos de dados próprios, através de classes. Instâncias são construídas invocando a classe (FooClass()), e as classes são instância da classe type, o que permite metaprogramação e reflexão. Métodos são definidos como funções anexadas à classe, e a sintaxe instância.método(argumento) é um atalho para
P á g i n a | 22 Classe.método(instância, argumento). Os métodos devem referenciar explicitamente a referência para o objeto incluindo o parâmetro self como o primeiro argumento do método. Antes da versão 3.0, Python possuía dois tipos de classes: "old-style" e "new-style". Classes old-style foram eliminadas no Python 3.0, e todas são new-style. Em versões entre 2.2 e 3.0, ambos tipos de classes podiam ser usadas. A sintaxe de ambos estilos é a mesma, a diferença acaba sendo de onde objeto da classe é herdado, direta ou indiretamente (todas classes new-style herdam de object e são instancias de type). As classes new-styles nada mais são que tipos definidos pelo usuário. Palavras reservadas O Python 2.5.2 define as seguintes 31 palavras reservadas:
Operadores Os operadores básicos de comparação como ==, <, >=, entre outros são usados em todos os tipos de dados, como números, cadeias de texto, listas e mapeamentos. Comparações em cadeia como a < b < c possuem o mesmo significado básico que na matemática: os termos são comparadas na ordem. É garantido que o processamento da expressão lógica irá terminar tão cedo o veredito é claro, o princípio da avaliação mínima. Usando a expressão anterior, se a < b é falso, c não é avaliado. Quanto aos operadores lógicos, até Python 2.2 não havia o tipo de dado booleano. Em todas as versões da linguagem os operadores lógicos tratam "", 0, None, 0.0, [] e {} como falso, enquanto o restante é tratado como verdadeiro de modo geral. Na versão 2.2.1 as constantes True e False foram adicionadas (subclasses de 1 e 0 respectivamente). A comparação binária retorna uma das duas constantes acima. Os operadores booleanos and e or também seguem a avaliação mínima. Por exemplo, y == 0 or x/y > 100 nunca lançará a exceção de divisão por zero. Interpretador interativo O interpretador interativo é uma característica diferencial da linguagem, porque há a possibilidade de testar o código de um programa e receber o resultado em tempo real, antes de iniciar a compilação ou incluí-las nos programas. Por exemplo: >>> 1+1 2 >>> >>> a = 1+1 >>> print a 2 >>> print(a) 2 >>>
P á g i n a | 23 Análise léxica No segundo capítulo do Manual de Referência da Linguagem Python é citado que a análise léxica é uma análise do interpretador em si, os programas são lidos por um analisador sintático que divide o código em tokens. Todo programa é dividido em linhas lógicas que são separadas pelo token NEWLINE ou NOVA LINHA, as linhas físicas são trechos de código divididos pelo caractere ENTER. Linhas lógicas não podem ultrapassar linhas físicas com exceção de junção de linhas, por exemplo: if resultado > 2 and \ 1 <= 5
and \
2 < 5: print ('Resultado: %f' % d)
ou MESES_DO_ANO = ['janeiro', 'fevereiro', 'março', 'abril',
'maio',
'junho',
'julho',
'agosto',
'setembro',
'outubro', 'novembro',
'dezembro']
Para a delimitação de blocos de códigos os delimitadores são colocados em uma pilha e diferenciados por sua indentação. Iniciando a pilha com valor 0 (zero) e colocando valores maiores que os anteriores na pilha. Para cada começo de linha, o nível de indentação é comparado com o valor do topo da pilha. Se o número da linha for igual ao topo da pilha, a pilha não é alterada. Se o valor for maior a pilha recebe o nível de indentação da linha e o nome INDENT (empilhamento) se o nível de indentação for menor, então é desempilhado até chegar a um nível de indentação recebendo o nome DEDENT (desempilhamento) e se não encontrar nenhum valor é gerado um erro de indentação. Abaixo um exemplo de permutação, retirado do capítulo 2.1 sobre Estrutura de linhas na Análise léxica do Manual de Referência da linguagem (Language Reference Manual):
def perm(l):
NOVA LINHA
INDENT
if len(l) <= 1:
NOVA LINHA
INDENT
return[1]
NOVA LINHA
DEDENT
INDENT
DEDENT INDENT DEDENT
r = [ ]
NOVA LINHA
for i in range(len(l)):
NOVA LINHA
s = l[:i] + l[i+1:]
NOVA LINHA
p = perm(s)
NOVA LINHA
for x in p: r.append(l[i:i+1]+x)
NOVA LINHA NOVA LINHA
return r
Indentação Python foi desenvolvido para ser uma linguagem de fácil leitura, com um visual agradável, frequentemente usando palavras e não pontuações como em outras linguagens. Para a separação de blocos de código, a linguagem usa espaços em branco e indentação ao invés de delimitadores visuais como chaves (C, Java) ou palavras (BASIC, Fortran, Pascal). Diferente de linguagens com delimitadores visuais de blocos, em Python a indentação é obrigatória. O aumento da indentação indica o início de um novo bloco, que termina da diminuição da indentação.
P á g i n a | 24
Usando um editor de texto comum é muito fácil existir erros de indentação, o recomendado é configurar o editor conforme a análise léxica do Python ou utilizar uma IDE. Todas as IDE que suportam a linguagem fazem indentação automaticamente. Indentação correta def valor1(): while True: try:
Indentação incorreta def valor1(): while True: try:
c = int(raw_input('Primeiro Valor: '))
c = int(raw_input('Primeiro Valor: '))
return c
return c
except ValueError: print 'Inválido!'
except ValueError: print 'Inválido!'
O código está correto para os dois exemplos, mas o analisador léxico verificará se a indentação está coerente. O analisador reconhecerá as palavras reservadas while, def, try, except, return, print e as cadeias de caracteres entre aspas simples e a indentação, e se não houver problemas o programa executará normalmente, senão apresentará a exceção: "Seu programa está com erro no bloco de indentação". Compilador de bytecode A linguagem é de altíssimo nível, como já dito, mas ela também pode compilar seus programas para que a próxima vez que o executar não precise compilar novamente o programa, reduzindo o tempo de carga na execução. Utilizando o interpretador interativo não é necessário a criação do arquivo de Python compilado, os comandos são executados interativamente. Porém quando um programa ou um módulo é evocado, o interpretador realiza a análise léxica e sintática, compila o código de alto nível se necessário e o executa na máquina virtual da linguagem. O bytecode é armazenado em arquivos com extensão .pyc ou .pyo, este último no caso de bytecode otimizado. Interessante notar que o bytecode da linguagem também é de alto nível, ou seja, é mais legível aos seres humanos que o código de byte do C, por exemplo. Para descompilar um código de byte é utilizado o módulo dis da biblioteca padrão da linguagem e existem módulos de terceiros que tornam o bytecode mais confuso, tornando a descompilação ineficaz. Normalmente, o Python trabalha com dois grupos de arquivos: 1. 2.
Os módulos do núcleo da linguagem, sua biblioteca padrão e os módulos independentes, criados pelo usuário. No núcleo do interpretador existe o analisador léxico, o analisador sintático que utiliza Estruturas de Objetos (tempo de execução), o Compilador que aloca memória (tempo de execução) e depois do Avaliador de código que modifica o estado atual do programa (tempo de execução), mostrando resultado para o usuário.
Polimorfismo O conceito de polimorfismo descreve como objetos podem ser manipulados e acessados usando atributos e comportamentos em comum sem considerar sua classe específica e indica a presença de late binding, permitindo sobrecarga e determinação de tipos em tempo de execução e verificação. Muitas linguagens orientadas a objeto utilizam assinaturas de função para determinar qual versão de um método sobrecarregado chamar. No entanto, as chamadas de função em Python são universais ou genéricas sem determinação de tipo. Por isso, sobrecarga não é suportada na linguagem.
Orientação a objetos
P á g i n a | 25 Python suporta a maioria das técnicas da programação orientada a objeto. Qualquer objeto pode ser usado para qualquer tipo, e o código funcionará enquanto haja métodos e atributos adequados. O conceito de objeto na linguagem é bastante abrangente: classes, funções, números e módulos são todos considerados objetos. Também há suporte para metaclasses, polimorfismo, e herança (inclusive herança múltipla). Há um suporte limitado para variáveis privadas. Na versão 2.2 de Python foi introduzido um novo estilo de classes em que objetos e tipos foram unificados, permitindo a especialização de tipos. Já a partir da versão 2.3 foi introduzido um novo método de resolução de ambiguidades para heranças múltiplas. Uma classe é definida com class nome:, e o código seguinte é a composição dos atributos. Todos os métodos da classe recebem uma referência a uma instância da própria classe como seu primeiro argumento, e a convenção é que se chame este argumento self. Assim os métodos são chamados objeto.método(argumento1, argumento2, ...) e são definidos iguais a uma função, como método(self, argumento1, argumento2, ...). Veja que o parâmetro self conterá uma referência para a instância da classe definida em objeto quando for efetuada esta chamada. Os atributos da classe podem ser acessados em qualquer lugar da classe, e os atributos de instância (ou variável de instância) devem ser declarados dentro dos métodos utilizando a referência à instância atual (self) (ver código contextualizado em anexo). Em Python não existe proteção dos membros duma classe ou instância pelo interpretador, o chamado encapsulamento. Convenciona-se que atributos com o nome começando com um _ são de uso privado da classe, mas não há um policiamento do interpretador contra acesso a estes atributos. Uma exceção são nomes começando com __, no caso em que o interpretador modifica o nome do atributo (ver código contextualizado em anexo). Python permite polimorfismo, que condiz com a reutilização de código. É fato que funções semelhantes em várias partes do software sejam utilizadas várias vezes, então definimos esta função como uma biblioteca e todas as outras funções que precisarem desta a chamam sem a necessidade de reescrevê-la (ver código contextualizado em anexo). Programação funciona Uma das construções funcionais de Python é compreensão de listas, uma forma de construir listas. Por exemplo, pode-se usar a técnica para calcular as cinco primeiras potências de dois. O algoritmo quicksort também pode ser expressado usando a mesma técnica (ver códigos contextualizados para ambos os casos em anexo). Em Python, funções são objetos de primeira classe que podem ser criados e armazenados dinamicamente. O suporte à funções anônimas está na construção lambda (cálculo Lambda). Não há disponibilidade de funções anônimas de fato, pois os lambdas contêm somente expressões e não blocos de código. Python também suporta clausuras léxicas desde a versão 2.2 (ver códigos contextualizados para ambos os casos em anexo). Já geradores foram introduzidos na versão 2.2 e finalizados na versão 2.3, e representam o mecanismo de Python para a avaliação preguiçosa de funções (ver códigos contextualizados para ambos os casos em anexo). Tratamento de exceções Python suporta e faz uso constante de tratamento de exceções como uma forma de testar condições de erro e outros eventos inesperados no programa. É inclusive possível capturar uma exceção causada por um erro de sintaxe. O estilo da linguagem apóia o uso de exceções sempre que uma condição de erro pode aparecer. Por exemplo, ao invés de testar a disponibilidade de acesso a um recurso, a convenção é simplesmente tentar usar o recurso e capturar a exceção caso o acesso seja rejeitado (recurso inexistente, permissão de acesso insuficiente, recurso já em uso, ...). Exceções são usadas frequentemente como uma estrutura de seleção, substituindo blocos if-else, especialmente em situações que envolvem threads. Uma convenção de codificação é o EAFP, do inglês, "é mais fácil pedir perdão que permissão". Isso significa que em termos de desempenho é preferível capturar exceções do que testar atributos antes de
P á g i n a | 26 os usar. Segue abaixo exemplos de código que testam atributos ("pedem permissão") e que capturam exceções ("pedem perdão"): Teste de atributo if hasattr(spam, 'eggs'): ham = spam.eggs else: handle_error()
Captura de exceção try: ham = spam.eggs except AttributeError: handle_error()
Ambos os códigos produzem o mesmo efeito, mas há diferenças de desempenho. Quando spam possui o atributo eggs, o código que captura exceções é mais rápido. Caso contrário, a captura da exceção representa uma perda considerável de desempenho, e o código que testa o atributo é mais rápido. Na maioria dos casos o paradigma da captura de exceções é mais rápido, e também pode evitar problemas de concorrência. Por exemplo, num ambiente multitarefa, o espaço de tempo entre o teste do atributo e seu uso de fato pode invalidar o atributo, problema que não acontece no caso da captura de exceções. Biblioteca padrão Python possui uma grande biblioteca padrão, geralmente citada como um dos maiores triunfos da linguagem,29 fornecendo ferramentas para diversas tarefas. Recentemente, a biblioteca Boost do C++ incluiu uma biblioteca para permitir a interoperabilidade entre as duas linguagens. Por conta da grande variedade de ferramentas fornecida pela biblioteca padrão, combinada com a a habilidade de usar linguagens de nível mais baixo como C e C++, Python pode ser poderosa para conectar componentes diversos de software. A biblioteca padrão conta com facilidades para escrever aplicações para a Internet, contando com diversos formatos e protocolos como MIME e HTTP. Também há módulos para criar interfaces gráficas, conectar em bancos de dados relacionais e manipular expressões regulares. Algumas partes da biblioteca são cobertas por especificações (por exemplo, a implementação WSGI da wsgiref segue o PEP 33330 ), mas a maioria dos módulos não segue. Comentários Python fornece duas alternativas para documentar o código. A primeira é o uso de comentários para indicar o que certo código faz. Comentários começam com # e são terminados pela quebra da linha. Não há suporte para comentários que se estendem por mais de uma linha; cada linha consecutiva de comentário deve indicar #. A segunda alternativa é o uso de cadeias de caractere, literais de texto inseridos no código sem atribuição. Cadeias de caracteres em Python são delimitadas por " ou ' para única linha e por """ ou ''' para múltiplas linhas. Entretanto, é convenção usar o métodos de múltiplas linhas em ambos os casos. Diferente de comentários, a cadeias de caracteres usadas como documentação são objetos Python e fazem parte do código interpretado. Isso significa que um programa pode acessar sua própria documentação e manipular a informação. Há ferramentas que extraem automaticamente essa documentação para a geração da documentação de API a partir do código. Documentação através de cadeias de caracteres também pode ser acessada a partir do interpretador através da função help(). Plataformas disponíveis A linguagem e seu interpretador estão disponíveis para as mais diversas plataformas, desde Unix (Linux, FreeBSD, Solaris, MacOS X, etc.), Windows, .NET, versões antigas de MacOS até consoles de jogos eletrônicos ou mesmo alguns celulares, como a série 60, N8xx(PyMaemo) da Nokia e palmtops.
P á g i n a | 27 Para algum sistema operacional não suportado, basta que exista um compilador C disponível e gerar o Python a partir do fonte. O código fonte é traduzido pelo interpretador para o formato bytecode, que é multiplataforma e pode ser executado e distribuído sem fonte original. Implementações A implementação original e mais conhecida do Python é o CPython, escrita em C e compatível com o padrão C89,31 sendo distribuída com uma grande biblioteca padrão escrita em um misto de Python e C. Esta implementação é suportada em diversas plataformas, incluindo Microsoft Windows e sistemas Unix-like modernos. Stackless Python é uma variação do CPython que implementa microthreads (permitindo multitarefa sem o uso de threads), sendo suportada em quase todas as plataformas que a implementação original. Existem também implementações para plataformas já existentes: Jython para a Plataforma Java e IronPython para .NET. Em 2005 a Nokia lançou um interpretador Python para os telefones celulares S60, chamado PyS60. Essa versão inclui vários módulos das implementações tradicionais, mas também alguns módulos adicionais para a integração com o sistema operacional Symbian. Uma implementação para Palm pode ser encontrada no Pippy. Já o PyPy, é a linguagem Python totalmente escrita em Python. Diversas implementações, como CPython, pode funcionar como um interpretador de comandos em que o usuário executa as instruções sequencialmente, recebendo o resultado automaticamente. A execução compilada do código oferece um ganho substancial em velocidade, com o custo da perda da interatividade. Desenvolvimento O desenvolvimento de Python é conduzido amplamente através do processo Python Enhancement Proposal ("PEP"), em português Proposta de Melhoria do Python. Os PEPs são documentos de projeto padronizados que fornecem informações gerais relacionadas ao Python, incluindo propostas, descrições, justificativas de projeto (design rationales) e explicações para características da linguagem. PEPs pendentes são revisados e comentados por Van Rossum, o Benevolent Dictator For Life (líder arquiteto da linguagem) do projeto Python. Desenvolvedores do CPython também se comunicam através de uma lista de discussão, python-dev, que é o fórum principal para discussão sobre o desenvolvimento da linguagem. Questões específicas são discutidas no gerenciador de erros Roundup mantido em python.org. O desenvolvimento acontece no auto-hospedado svn.python.org Licença Python possui uma licença livre aprovada pela OSI e compatível com a GPL, porém menos restritiva. Ela prevê (entre outras coisas) que binários da linguagem sejam distribuídos sem a necessidade de fornecer o código fonte junto. Módulos e frameworks Ao longo do tempo têm sido desenvolvidos pela comunidade de programadores muitas bibliotecas de funções especializadas (módulos) que permitem expandir as capacidades base da linguagem. Entre estes módulos especializados destacam-se: Módulos / Framework
Descrição
Campos de Atuação
CherryPy
Framework para aplicações web;
desenvolvimento web
Django
Framework para desenvolvimento ágil de aplicações web;
desenvolvimento web
Matplotlib - Matplotlib / Pylab
biblioteca para manipulação de gráficos 2D;
processamento de imagem
P á g i n a | 28
Numarray
Módulo para manipulação de vetores e computação científica.
computação científica
Plone
SGC - Sistema de gerenciamento de conteúdo;
desenvolvimento web
Pygame
Conjunto de módulos para o desenvolvimento de jogos eletrônicos, incluindo gráficos SDL;
desenvolvimento de jogos eletrônicos; computação gráfica
Pylons
Framework para desenvolvimento de aplicações web;
desenvolvimento web
PyOpenGL - Python OpenGL Binding
suporte multiplataforma ao OpenGL;
computação gráfica
PYRO - Python Remote Objects
Framework para o desenvolvimento de sistemas distribuídos;
computação distribuída
Python Imaging Library
biblioteca para manipulação de imagens digitais;
processamento de imagem
SQLObject
Mapeador objeto-relacional: traduz estruturas relacionais para objetos Python e manipula o banco de dados de forma banco de dados transparente;
TurboGears
Framework baseado em várias outras tecnologias existentes desenvolvimento web no mundo que gira em torno da linguagem Python;
Twisted
Framework para o desenvolvimento de aplicações de rede. Inclui módulos para servidor web, de aplicação, SSH e diversos outros protocolos;
desenvolvimento de software; desenvolvimento web
Visual Python
Framework 3D de alto nível;
computação gráfica
Web2py
Framework para aplicações web;
desenvolvimento web
ZODB
Sistema de persistência e banco de dados orientado a objetos;
banco de dados
Interfaces gráficas Exemplos de bibliotecas de GUI disponíveis para Python incluem: Etk
interface para a biblioteca EFL
PyGTK
interface para a biblioteca GTK
PyQT
interface para a biblioteca QT
Tkinter
Módulo padrão para GUI no Python
wxPython
interface para a biblioteca wxWidgets
Wax
Construído para simplificar o uso do wxPython
Ambientes de desenvolvimento integrado Existem vários ambientes de desenvolvimento integrado (IDE) disponíveis para Python: Ambiente
Desenvolvedor
Última Versão
Plataforma
Toolkit
Licença
Boa Constructor
Team
0.6.1
Independente
wxPython
GPL
Eric Python IDE
Detlev Offenbach
4.1.2
Independente
Qt
GPL
Geany
Team
1.23
Independente
GTK2
GPL
IDLE
Guido van Rossum et al.
3.0 / 2008
Independente
Tkinter
PSFL
P á g i n a | 29
IronPython Studio Clarius Labs
1.0 / 10 de dezembro de Windows 2007
VS2008 Shell Runtime
Microsoft Public License
Komodo
ActiveState
4.1.1 / junho de 2007
multiplataforma
Plataforma Mozilla Propretário
PyDev (Eclipse)
Fabio Zadrozny 1.3.13
multiplataforma
SWT
PyScripter
mmm-experts
1.7.2 / outubro de 2006 Windows
PythonCard
Alex Tweedly
0.8.2
multiplataforma
wxPython
Licença BSD
Stani's Python Editor
Stani
0.8.4c / 14 de fevereiro de 2008
Independente
wxPython
GPL
Wing IDE
Wingware
3.0.2-1 / 27 de novembro de 2007
Windows, Linux, OS PyGTK X
EPL MIT
Propretário
Aplicações Alguns dos maiores projetos que utilizam Python são o servidor de aplicação Zope, o compartilhador de arquivos Mnet, o sítio YouTube e o cliente original do BitTorrent. Grandes organizações que usam a linguagem incluem Google33 (parte dos crawlers), Yahoo! (para o sítio de grupos de usuários) e NASA.34 O sistema de gerenciamento de reservas da Air Canada também usa Python em alguns de seus componentes.35 A linguagem também tem bastante uso na indústria da segurança da informação. A linguagem tem sido embarcada como linguagem de script em diversos softwares, como em programas de edição tridimensional como Maya,36 Autodesk Softimage, TrueSpace e Blender.37 Programas de edição de imagem também a usam para scripts, como o GIMP.38 Para diversos sistema operacionais a linguagem já é um componente padrão, estando disponível em diversas distribuições Linux. O Red Hat Linux usa Python para instalação, configuração e gerenciamento de pacotes. Outros exemplos incluem o Plone, sistema de gerenciamento de conteúdo desenvolvido em Python e Zope e a Industrial Light & Magic,39 que produz filmes da série Star Wars usando extensivamente Python para a computação gráfica nos processos de produção dos filmes. 6. BANCO DE DADOS ORACLE, POSTGRESQL E MYSQL 6.1 Oracle O Oracle é um SGBD (sistema gerenciador de banco de dados) que surgiu no fim dos anos 70, quando Larry Ellison vislumbrou uma oportunidade que outras companhias não haviam percebido, quando encontrou uma descrição de um protótipo funcional de um banco de dados relacional e descobriu que nenhuma empresa tinha se empenhado em comercializar essa tecnologia. Ellison e os co-fundadores da Oracle Corporation, Bob Miner e Ed Oates, perceberam que havia um tremendo potencial de negócios no modelo de banco de dados relacional tornando assim a maior empresa de software empresarial do mundo. Além da base de dados, a Oracle desenvolve uma suíte de desenvolvimento chamada de Oracle Developer Suite, utilizada na construção de programas de computador que interagem com a sua base de dados. A Oracle também criou a linguagem de programação PL/SQL, utilizada no processamento de transações. Evolução das versões do SGBD Oracle Ao longo dos últimos 30 anos a Oracle vem aperfeiçoando seu principal produto e se mantém líder de mercado. A Oracle procura se destacar de seus concorrentes ao adicionar novas funcionalidade ao seu SGBD. Por exemplo, com a versão 8, lançado em 1997, foi adicionado a possibilidade de armazenamento de objetos no banco de dados. Já a versão 8i, lançada
P á g i n a | 30 em 1999, iniciou melhorias que colocaram o Oracle8i com foco no cenário da Internet. O Oracle8i iniciou a tradição de marketing da Oracle de adicionar uma letra como sufixo no nome da versão e o "i" presente no Oracle8i é para ressaltar seu foco na web. O Oracle8i realmente tem foco na web, foi o primeiro objeto de banco de dados relacional (ORDBMS) mas representa apenas um esboço de características para o então Oracle9i, lançado em 2000 (ano posterior ao de lançamento do Oracle8i) e considerado por publicações oficiais da própria Oracle (Oracle Press Books) como o primeiro banco de dados relacional (RDBMS) que oferece uma plataforma de suporte e desenvolvimento para a Internet. Além de oferecer toda infra-estrutura para o suporte ao modelo web, o Oracle9i inovou com uma ferramenta para Servidores Paralelos chamada Real Application Clusters, melhorou o suporte a documentos em XML e realizou melhorias fundamentais de performance e gerenciamento no SGBD para o trabalho via Internet. As versões 10g e 11g apresentam o "g" no lugar do sufixo "i", mas ao contrário do que ocorre tradicionalmente da indústria de software, não há nenhuma relação de precedência entre as letras, isto é, não há nenhuma versão anterior a Oracle 10g chamada Oracle 10f, por exemplo. As letras simplesmente representam um recurso de marketing para demonstrar o foco do produto em "Internet" ou "Grid". Muita controvérsia existe quanto à definição de qual foi, de fato, a primeira versão do Oracle a oferecer uma plataforma para suporte e desenvolvimento de aplicações web, com algumas referência indicando o pioneirismo à versão 9i, enquanto outras apontam a versão 8i. Apesar do pioneirismo do Oracle8i na introdução de características web (JServer e OAS), o Oracle9i foi responsável por oferecer um ambiente completo de desenvolvimento de aplicações voltadas para a web. Após o primeiro lançamento da versão 9i, a Oracle lançou releases e continuou aprimorando a sua plataforma de desenvolvimento. Ofereceu melhorias de performance a características de tolerância a falhas e melhorou o suporte ao formato XML. Edições Além das diferentes versões do software de gerenciamento de banco de dados Oracle, a Oracle Corporation subdivide seu produto em "edições" variáveis - aparentemente por razões de marketing e controle de licenças. •
•
•
•
• • •
Enterprise Edition (EE): inclui mais funcionalidades que a 'Standard Edition', especialmente nas áreas de performance e segurança. A Oracle Corporation licencia este produto na base de usuários ou de núcleos de processamento, normalmente para servidores com 4 ou mais UCPs. EE não tem limite de memória e pode utilizar clusterização usando o software Oracle RAC. Standard Edition (SE): contém a funcionalidade básica de banco de dados. A Oracle Corporation licencia este produto na base de usuários ou de sockets, normalmente para servidores com um à quatro UCPs. Se o número de UCPs exceder 4, o usuário deve migrar para a licença Enterprise. SE não possui limite de memória e pode utilizar clusterização com o Oracle RAC sem custo adicional. Standard Edition One: introduzido com o Oracle 10g, possui algumas restrições de funcionalidades adicionais. A Oracle Corporation comercializa-o para uso em sistemas com uma ou duas UCPs. Ela não possui limitações de memória. Express Edition ('Oracle Database XE'): introduzido em 2005, oferece o Oracle 10g livre para distribuição nas plataformas Windows e Linux (com um tamanho de apenas 150 MB e restrita ao uso de apenas uma UCP, um máximo de 4 GB de dados de usuário e 1 GB de memória). O suporte para esta versão é feito exclusivamente através de fóruns on-line, sem o suporte da Oracle. Oracle 11g Express Edition: lançado em 24 de setembro de 2011, pode suportar 11 GB de dados do usuário. Oracle Personal Edition: fornece a funcionalidade de "alto fim" da Enterprise Edition mas é comercializada (e licenciada) para desenvolvedores específicos que trabalham em estações de trabalho pessoais. Oracle Database Lite: destinada para rodar em dispositivos móveis. O banco de dados, localizado parcialmente no dispositivo móvel, pode sincronizar com uma instalação baseada em servidor.
Algumas características:
SGBD comercializado atualmente pela Oracle, que nasceu em 1979 e que foi o primeiro BD relacional comercializado no mundo;
P á g i n a | 31
Pode ser instalado em múltiplas plataformas desde 1985. Entre as principais, podemos citar: Unix, Linux, HP/UX, BIM AIX, IBM VMS e Windows; Possui ferramentas de administração com interface gráfica menos amigáveis que as do SQL Server. Isso vem mudando e melhorando a cada nova versão do Oracle. No 10G, o Enterprise Manager possui muitos recursos e sua interface gráfica evoluiu muito, mas ainda acho que as ferramentas da Microsoft são mais intuitivas e mais produtivas. No Oracle o DBA costuma gerenciar muitas atividades do BD através de conjuntos de scripts. Possui uma documentação muito bem detalhada, o que de início até assusta, mas permite que você conheça muito bem o BD e todos os seus recursos.
6.2 PostgreSQL O sistema gerenciador de banco de dados PostgreSQL teve seu início na Universidade de Berkeley, na Califórnia, em 1986. À época, um programador chamado Michael Stonebraker liderou um projeto para a criação de um servidor de banco de dados relacionais chamado Postgres, oriundo de um outro projeto da mesma instituição denominado Ingres. Essa tecnologia foi então comprada pela Illustra, empresa posteriormente adquirida pela Informix. Porém, mesmo diante disso, dois estudantes de Berkeley (Jolly Chen e Andrew Yu) compatibilizaram o Postgres à linguagem SQL. Este projeto recebeu o nome de Postgres95. Em 1996, quando o projeto estava estável, o banco de dados recebeu o nome de PostgreSQL. No entanto, enquanto ainda possuía o nome Postgres95, o banco de dados teve várias mudanças. O seu código foi totalmente revisado e a linguagem SQL foi definida como padrão. Tecnicamente falando, o PostgreSQL é um banco de dados relacional e orientado a objetos. Um de seus atrativos é possuir recursos comuns a banco de dados de grande porte, o que o deixa apto a trabalhar, inclusive, com operações de missão crítica. Além disso, trata-se de um banco de dados versátil, seguro, gratuito e de código aberto (disponível sob uma licença BSD). Entre suas características, tem-se:
Compatibilidade multi-plataforma, ou seja, executa em vários sistema operacionais, como Windows, Mac OS X, Linux e outras variantes de Unix; Compatibilidade com várias linguagens, entre elas, Java, PHP, Python, Ruby, e C/C++; Base de dados de tamanho ilimitado; Tabelas com tamanho de até 32 TB; Quantidade de linhas de até 1.6 TB ilimitada; Campos de até 1 GB; Suporte a recursos como triggers, views, stored procedures, SSL, MVCC, schemas, transactions, savepoints, referential integrity e expressões regulares; Instruções em SQL, como indica o nome; Consultas complexas; Chaves estrangeiras; Integridade transacional; Controle de concorrência multi-versão; Suporte ao modelo híbrido objeto-relacional; Ele tem facilidade de Acesso; Gatilhos; Visões; Linguagem Procedural em várias linguagens (PL/pgSQL, PL/Python, PL/Java, PL/Perl) para Procedimentos armazenados; Indexação por texto; Estrutura para guardar dados Georeferenciados PostGIS.
P á g i n a | 32 6.3 MySQL O MySQL é um dos sistemas de gerenciamento de banco de dados mais populares que existe e, por ser otimizado para aplicações Web, é amplamente utilizado na internet (inclusive aqui no InfoWester). É muito comum encontrar serviços de hospedagem de sites que oferecem o MySQL e a linguagem PHP, justamente porque ambos trabalham muito bem em conjunto. Outro fator que ajuda na popularidade do MySQL é sua disponibilidade para praticamente qualquer sistema operacional, como Linux, FreeBSD (e outros sistemas baseados em Unix), Windows e Mac OS X. Além disso, o MySQL é um software livre (sob licença GPL), o que significa que qualquer um pode estudá-lo ou alterá-lo conforme a necessidade. Entre as características técnicas do SGBD MySQL, estão:
Baixa exigência de processamento (em comparação como outros SGBD); Vários sistemas de armazenamento de dados (batabase engine), como MyISAM, MySQL Cluster, CSV, Merge, InnoDB, entre outros; Recursos como transactions (transações), conectividade segura, indexação de campos de texto, replicação, etc; Instruções em SQL, como indica o nome. Portabilidade (suporta praticamente qualquer plataforma atual); Compatibilidade (existem drivers ODBC, JDBC e .NET e módulos de interface para diversas linguagens de programação, como Delphi, Java, C/C++, C#, Visual Basic, Python, Perl, PHP, ASP e Ruby) Excelente desempenho e estabilidade; Pouco exigente quanto a recursos de novos hardware; Facilidade no manuseio; É um Software Livre com base na GPL (entretanto, se o programa que acessar o Mysql não for GPL, uma licença comercial deverá ser adquirida)7 ; Contempla a utilização de vários Storage Engines como MyISAM, InnoDB, Falcon, BDB, Archive, Federated, CSV, Solid… Suporta controle transacional; Suporta Triggers; Suporta Cursors (Non-Scrollable e Non-Updatable); Suporta Stored Procedures e Functions; Replicação facilmente configurável; Interfaces gráficas (MySQL Toolkit) de fácil utilização cedidos pela MySQL Inc.
O MySQL surgiu na Suécia pelas mãos de três colegas: Allan Larsson, David Axmark e Michael Monty Widenius. Trabalhando com base de dados, eles sentiram a necessidade de fazer determinadas conexões entre tabelas e usaram o mSQL para isso. Porém, não demorou para perceberem que essa ferramenta não lhes atendia conforme o necessário e passaram a trabalhar em uma solução própria. Surgia então o MySQL, cuja primeira versão foi lançada no ano de 1996. Um fato importante a ser destacado sobre o MySQL é que esse SGBD também possui uma licença comercial, isto é, paga. Neste caso, é possível obter suporte diferenciado dos desenvolvedores. Vale ressaltar também que, em fevereiro de 2008, o MySQL foi comprado pela Sun Microsystems, que pagou a quantia de 1 bilhão de dólares pela aquisição. Mais informações sobre essa transação neste link (em inglês). 7. SERVIDORES SMTP POSTFIX E ZIMBRA 7.1 Servidor POSTFIX O Postfix é um agente de transferência de emails (MTA), um software livre para envio e entrega de emails. Rápido e fácil e administrar, é uma alternativa segura ao Sendmail.
P á g i n a | 33 O Postfix é um MTA, com bastante robustez, desempenho e maior facilidade na manutenção e configuração. Além disso, Postfix é capaz de emular várias funções do Sendmail, evitando assim modificações nas aplicações que utilizam o Sendmail. Outra característica importante do Postfix é a sua construção modular, facilitando a manutenção do código e permitindo a implementação de novas funcionalidades mais facilmente. Pré-requisitos Para uma implementação bem-sucedida do Postfix é necessário:
uma interface de rede instalada e configurada; um servidor DNS instalado e configurado.
Funcionalidades nativas • • • • • • • •
Suporte a Ipv6; Suporte a MIME; Autenticação SASL; Canal seguro utilizando TLS; Suporte a diversos banco de dados: MySQL, PostgreSQL, LDAP, entre outros; Verificação a listas RBL Extenso suporte a filtros: suporte a expressões regulares, verificação de cabeçalho, e verificação no corpo da mensagem; Suporte a Greylisting e SPF através de plugins.
7.2 Servidor ZIMBRA O Zimbra, é uma suite colaborativa de e-mail muito poderosa, cujo foco é ser uma alternativa livre ao Microsoft Exchange. Com suas duas versões disponíveis, a versão Network Edition (NE) e a Open Source, ele consegue, no mínimo equiparar-se a solução oferecida pela Microsoft, tendo a sua versão NE voltada a empresas que precisam de suporte e ferramentas de backup mais avançadas. Atualmente, o Zimbra conta com muitas funções, dentre elas, podemos citar a integração com LDAP, clustering, entre outras, tudo isso disponível através de uma interface Web para administração, completa e funcional, onde você consegue efetuar todos os serviços do dia-a-dia, desde o cadastro de um novo e-mail, a aplicação de quotas e criação de aliases. Também, não podemos esquecer-nos dos webmails. O Zimbra possui um webmail em Ajax, extremamente completo, que não deixa nada a dever frente ao Microsoft Outlook, tendo desde um calendário a catálogo de e-mail (dentre muitas outras opções), até um sistema de Instant Messenger (isso me lembra Google). Um detalhe acerca do Calendário e do Catalogo de endereços, é a sua integração com o Zimbra Desktop (cliente de e-mail do Zimbra), ele é para o Zimbra o mesmo que o Microsoft Outlook é para o Exchange. Ainda contamos, na versão NE, com a integração com o próprio Microsoft Outlook, onde este atua como se fosse um Exchange. Ainda, com relação aos webmails, o Zimbra disponibiliza um em html, mais simples, voltado a conexões lentas, com praticamente todas as funcionalidades da versão full (em Ajax), particularmente, eu me dei por falta apenas do Instant Messenger nesta versão. E como se não bastasse, para quem deseja acessar seus e-mail a partir de um celular, existe um webmail para este fim disponível. Pré-requisitos:
Sistema atualizado;
P á g i n a | 34
Servidor DNS BIND configurado; iptables desabilitado; SELinux desabilitado; Servidor NTP instalado e configurado.
Características: • • • • • • • • •
•
Webmail baseado em Ajax: inclui e-mail, contatos, agenda, tarefas, mensagens instantâneas, disco virtual e editor de documentos. Compartilhamento via Web de agendas, documentos, pastas e disco virtual. Compatibilidade: sincronização com Outlook, Entourage, Apple Mail, Lista de endereços e iCal; suporte completo a protocolos IMAP/POP Backup e recuperação online: Backup e recuperação de caixas postais individuais ou em grupo e em determinada data. Zimbra para celulares: sincronização própria com dispositivos Iphone, Windows Mobile, Symbian e Palm, sem a necessidade de um servidor adicional. Para Blackberry, conector com o BES. Poderoso Webmail: Uma das principais vantagens do Zimbra é sua completa interface WEB, seu webmail é um dos mais completos além de ser totalmente Ajax Acesso Seguro: Todos os acessos ao Zimbra oferecem sistema de segurança, via web HTTPS, para envio de emails smtp autenticado e TLS, IMAPs e POPs Múltiplos Protocolos: SMTP, SMTP TLS, HTTP, HTTPS, POP3, IMAP4, POP3s e IMAP4s Painel de Controle: Painel de Controle permite ao administrador gerenciar suas contas, espaço em disco por conta, redirecionamentos, apelidos de e-mail, Listas de e-mail e contatos. Proteção Anti-Spam / Antivírus: Todos os e-mails e anexos recebidos são filtrados contra spam e vírus. Você também pode optar por incluir o serviço do IronPort que oferece duplo antivírus de entrada e 15 filtros antispam. Pastas públicas e compartilhamento de arquivos: Compartilhe arquivos, tarefas, calendários e contatos com toda a sua equipe utilizando as pastas públicas
8. TOPOLOGIA TÍPICA DE AMBIENTES COM ALTA DISPONIBILIDADE E ESCALABILIDADE 8.1 Balanceamento de carga Todo o hardware tem o seu limite, e muitas vezes o mesmo serviço tem que ser repartido por várias máquinas, sob pena de se tornar congestionado. Estas soluções podem-se especializar em pequenos grupos sobre os quais se faz um balanceamento de carga: utilização do CPU, de armazenamento, ou de rede. Qualquer uma delas introduz o conceito de clustering, ou server farm, já que o balanceamento será, provavelmente, feito para vários servidores. Em rede de computadores, o balanceamento de carga é uma técnica para distribuir a carga de trabalho uniformemente entre dois ou mais computadores, enlaces de rede, UCPs, discos rígidos ou outros recursos, a fim de otimizar a utilização de recursos, maximizar o desempenho, minimizar o tempo de resposta e evitar sobrecarga. Utilizando múltiplos componentes com o balanceamento de carga, em vez de um único componente, pode aumentar a confiabilidade através da redundância. Balanceamento de armazenamento (storage) O balanceamento do suporte de armazenamento permite distribuir o acesso a sistemas de ficheiros por vários discos (software/hardware RAID), pelo que derivam ganhos óbvios em tempos acesso. Estas soluções podem ser dedicadas ou existir em cada um dos servidores do cluster. Soluções: • RAID • Storage Area Network • Load Balancer - Cloud Computing oferecido como IaaS.
P á g i n a | 35 Load Balancer em Cloud É oferecido como serviço, não requer nenhum hardware, pois o serviço é prestado remotamente. Todo o tráfego é direcionado para um IP do provedor contratado e este é distribuido através da internet ou de rede local para os servidores de destino. Os IPs de destino podem estar tanto no datacenter do provedor quanto em outros datacenter. O serviço geralmente é cobrado por quantidade de requisições simultâneas e por GB de dados transferidos. Balanceamento de rede O balanceamento da utilização da rede passa sobretudo por reencaminhar o tráfego por caminhos alternativos a fim de descongestionar os acessos aos servidores. Este balanceamento pode ocorrer a qualquer nível da camada OSI. A Figura 1 sugere a existência de um mecanismo/dispositivo responsável pelo balanceamento (director). Na verdade, ele pode existir sob várias formas, dependendo do(s) serviço(s) que se pretende balancear. Este director serve também de interface entre o cluster de servidores e os clientes do(s) serviço(s) - tudo o que os clientes Figura 1 - Balanceamento de Carga (NAT) conhecem é o endereço semi-público deste servidor. Esta abordagem (clássica) é algo limitada, em termos de escalabilidade, ao número de tramas que o director consegue redireccionar, principalmente devido à velocidade dos buses das placas de rede. Existem, no entanto, outras soluções mais complexas que tiram melhor partido das características do protocolo TCP/IP em conjunto com routing especializado (NAT, IP Tunneling, Direct Routing). Um exemplo de um site a utilizar técnicas de balanceamento de carga é a própria Wikimedia Foundation e os seus projectos. Em Junho de 2004, a carga era balanceada usando uma combinação de: • Round robin DNS, que distribui os pedidos uniformemente para um dos três servidores de cache Squid; • Estes servidores de cache usam os tempos de resposta para distribuir os pedidos para cada um dos sete servidores de páginas. Em média, os servidores Squid já têm em cache páginas suficientes para satisfazer 75% dos pedidos sem sequer consultar os servidores de páginas; • Os scripts PHP que formam a aplicação distribuem a carga para um de vários servidores de base de dados dependendo do tipo do pedido, com as atualizações indo para um servidor primário e as consultas para um ou mais servidores secundários. Balanceamento de CPU Este tipo de balanceamento é efetuado pelos sistemas de processamento distribuído e consiste, basicamente, em dividir a carga total de processamento pelos vários processadores no sistema (sejam eles locais ou remotos). O Balanceamento de Carga (BC) pode também ser descrito como o processo de distribuição de solicitações de serviço por um grupo de servidores. Isso resolve uma série de exigências que se têm tornado cada vez mais importantes nas redes: •
•
•
Aumento da escalabilidade: Quando muitas aplicações de conteúdo intensivo crescem para além do ponto em que um único servidor pode fornecer poder de processamento adequado, é cada vez mais importante para ter a flexibilidade de adicionar mais servidores de forma rápida e transparente aos utilizadores finais; Alto desempenho: O melhor desempenho é alcançado quando o poder de processamento dos servidores é usado de forma inteligente. Uma infra-estrutura avançada de balanceamento de carga pode direccionar as solicitações de serviço ao utilizador final para os servidores que estão menos ocupadas e, portanto, capazes de fornecer o tempo de resposta mais baixo; Alta disponibilidade e recuperação de desastres: O terceiro benefício do balanceamento de carga é a sua capacidade de melhorar a disponibilidade das aplicações. Se uma aplicação ou servidor falha, o balanceamento de carga pode automaticamente redistribuir as solicitações de serviço do utilizador final para outros servidores dentro de um cluster de servidores ou para servidores noutro local.
P á g i n a | 36
O BC pode ser implementado com om hardware, software ou uma combinação de ambos sendo normalmente a principal razão para clusters de servidores de computador. Lembram-se Lembram se do quadro anterior com todas as principais soluções de Alta Disponibilidade?
Figura 2 - Balanceamento de Carga
Na Internet, as empresas cujos websites têm grande volume de tráfego normalmente usam o BC. Quando um único servidor Web não é suficiente para lidar com o tráfego num site então é altura de equacionar a instalação de uma Webfarm que usa sa várias máquinas na rede actuando como um único servidor. Numa webfarm, serviços ou aplicações podem ser instalados em vários servidores que estão configurados para partilhar a carga de trabalho. Este tipo de configuração é um cluster com balanceamento de carga em que a carga é dividida de modo a equilibrar o desempenho dos programas baseados em servidores, como um servidor Web, através da distribuição de pedidos de clientes por vários servidores. As tecnologias de balanceamento de carga, vulgarmente conhecidas conhecidas como balanceadores de carga, recebem os pedidos e redireccionam-nos nos para um host específico, se tal for necessário e os host do balanceamento de carga podem responder em simultâneo a vários pedidos do mesmo cliente, ou mesmo a vários pedidos do mesmo mesmo cliente. Por exemplo, um browser pode obter as múltiplas imagens duma única página web a partir de diferentes hosts no cluster. Isso distribui a carga, acelera o processamento, e encurta o tempo de resposta aos clientes. A figura ilustra os componentes básicos do Balanceamento de Carga:
As webfarms são uma escolha óbvia se já foram atingidos os limites do servidor isolado e o balanceamento de carga também pode trazer benefícios em cenário de sobrecarga. Geralmente, é mais barato resolver um problema de sobrecarga com máquinas de nível médio em vez de comprar uma máquina de topo de gama. Mesmo contando com licenças de servidor, várias máquinas de gama baixa podem fornecer uma solução mais eficiente.
P á g i n a | 37 O BC é também uma forma de garantir que a informação no servidor continua a ser fácil e eficientemente acessível, mesmo durante os períodos mais movimentados, permitindo que vários servidores respondam aos visitantes com o mesmo conteúdo, dependendo da carga que cada servidor tem no momento e assim, um utilizador não é afetado pelas exigências colocadas no servidor por outros utilizadores e isto é um aumento da fiabilidade de um site através do encaminhamento dos pedidos para outros servidores no cluster quando um dos servidores está muito ocupado ou falhou.
Existem outras abordagens para resolver os problemas de sobrecarga: • Replicação de Sites (site mirroring); • Servidores Proxy. Atualizar o hardware é certamente uma outra opção disponível especialmente tendo em conta que o hardware de hoje é extremamente capaz e deve ser suficiente para responder mesmo às mais exigentes aplicações Web num único servidor. Máquinas com múltiplos processadores são uma plataforma muito potente para correr aplicações Web mesmo tendo em conta que estas máquinas topo de gama são bastante caras. Se é verdade que os grandes sites empresariais não correm numa única máquina, a grande maioria das aplicações pode confortavelmente responder a um milhão de visitas por dia de num único servidor, mesmo com um único processador. Replicação de Sites Uma réplica de um site (mirror) é uma cópia exata de outro site ou datacenter que contém as mesmas informações que o original. Os mirrors são normalmente utilizados para oferecer fontes múltiplas da mesma informação, como backup para recuperação de desastres e ainda para equilibrar a carga de tráfego de vários pedidos de download na web. Esses mirrors são muitas vezes colocados em locais diferentes em toda a Internet com servidores de arquivos que contêm um conjunto duplicado de arquivos de outro servidor de arquivos partilhando assim a carga de distribuição para garantir a rápida disponibilização de dados quando há grande procura. Servidores Proxy Estes são servidores através dos quais todos os computadores na rede local têm que passar antes de aceder a informações na Internet. Ao utilizar um servidor proxy, uma organização pode melhorar o desempenho da rede e filtrar o que os utilizadores podem ou não aceder. Existem vários tipos de servidores proxy distintos, mas não é esse o tema deste artigo. No entanto, vou salientar que os servidores proxy tem duas finalidades principais: • Melhorar o desempenho: Um servidor proxy aumenta a velocidade de acesso à Internet a partir de uma rede, principalmente, utilizando um sistema de cache. A cache guarda os websites vistos recentemente, imagens e arquivos num disco rígido para que eles não tenham que ser retirados da web novamente; • Filtrar Pedidos: O outro objectivo principal de um servidor proxy é o de filtrar o que é permitido na rede. Embora possam ser filtrados vários protocolos, o HTTP é o mais comum e assim o servidor proxy pode limitar aquilo a que os utilizadores de websites podem aceder.
P á g i n a | 38 8.2 Fail-over O processo no qual uma máquina assume os serviços de outra, quando esta última apresenta falha, é chamado failover. O failover pode ser automático ou manual, sendo o automático o que normalmente se espera de uma solução de Alta Disponibilidade. Ainda assim, algumas aplicações não críticas podem suportar um tempo maior até a recuperação do serviço, e portanto podem utilizar failover manual. Além do tempo entre a falha e a sua detecção, existe também o tempo entre a detecção e o reestabelecimento do serviço. Grandes bancos de dados, por exemplo, podem exigir um considerável período de tempo até que indexem suas tabelas, e durante este tempo o serviço ainda estará indisponível. Para se executar o failover de um serviço, é necessário que as duas máquinas envolvidas possuam recursos equivalentes. Um recurso pode ser uma placa de rede, um disco rígido, ainda mais importante, os dados neste disco, e todo e qualquer elemento necessário à prestação de um determinado serviço. É vital que uma solução de Alta Disponibilidade mantenha recursos redundantes com o mesmo estado, de forma que o serviço possa ser retomado sem perdas. Dependendo da natureza do serviço, executar um failover significa interromper as transações em andamento, perdendoas, sendo necessário reiniciá-las após o failover. Em outros casos, significa apenas um retardo até que o serviço esteja novamente disponível. Nota-se que o failover pode ou não ser um processo transparente, dependendo da aplicação envolvida. 9. TECNOLOGIAS E ARQUITETURA DE DATA CENTER 9.1 Conceitos básicos Um Data Center é uma modalidade de serviço de valor agregado que oferece recursos de processamento e armazenamento de dados em larga escala para que organizações de qualquer porte e mesmo profissionais liberais possam ter ao seu alcance uma estrutura de grande capacidade e flexibilidade, alta segurança, e igualmente capacitada do ponto de vista de hardware e software para processar e armazenar informações. Com a finalidade de abrigar milhares de servidores e bancos de dados, e processar grandes quantidades de informação, os equipamentos geralmente são montados em racks ou armários metálicos. Possuem proteção contra incêndios, além de sistemas de resfriamento dos racks, para manter uma temperatura estável. Na maioria dos casos, ficam localizados em grandes galpões com acesso restrito de funcionários, por questões de segurança. Esses espaços são fundamentais para serviços e atividades de diversos setores da economia: energia, iluminação, telecomunicações, Internet, transportes, tráfego urbano, bancos, sistemas de segurança, saúde pública, entretenimento, e muitos outros. A vida na maioria das cidades depende do bom funcionamento e da disponibilidade de um ou vários Data Centers. Atualmente, eles têm capacidade de processamento quatro vezes maior do que os antigos DC’s, mesmo ocupando apenas 40% do espaço em comparação com os modelos mais antigos. Os Data Centers devem conter alguns componentes básicos para um bom funcionamento. Veja quais são eles: Infraestrutura de Rede O Data Center é um componente importante para qualquer departamento de TI. É, portanto, indispensável que seja concebido para oferecer os serviços de maneira flexível e dinâmica, acompanhando as tendências tecnológicas e de sustentabilidade que hoje são exigidas. Duas das características-chaves de um Data Center são a escalabilidade e flexibilidade. Elas são necessárias para quase todas as atividades corporativas feitas na Internet atualmente. Por isso, os projetos de Data Centers devem ser desenhados com a infraestrutura adequada para suportar os serviços e sistemas da empresa permitindo seu perfeito funcionamento, e prevendo um crescimento futuro, com sua adequação às tecnologias emergentes.
P á g i n a | 39 O gigantesco crescimento do tráfego IP, é um exemplo disso. Alimentado por aplicações de novas mídia e pela demanda dos clientes por mais interatividade, personalização, mobilidade e vídeo, novas soluções de Infraestrutura de Rede estão sendo criadas. Redes IP de Próxima Geração (IP Next Generation) ajudarão a oferecer total escalabilidade, resiliência e eficiência para os serviços das empresas. Essas soluções fornecem uma plataforma convergente para que o Data Center possa responder positivamente ao aumento da oferta de serviços. Além disso, as questões de infraestrutura incluem também o fornecimento de energia elétrica, ar-condicionado, rede de comunicação de dados, armazenamento, servidores e virtualização. Esses são outros pontos-chave para que o Data Center funcione com qualidade. Segurança Física A Segurança Física também é muito importante em um Data Center. Existem diversas diretrizes e boas práticas que devem ser consideradas. Veja algumas delas: − − −
− − −
Garanta a proteção física do local: construa as paredes, portas e janelas do Data Center a fim de proporcionar segurança extra até mesmo contra desastres naturais. Instale gaiolas e armários: com essas estruturas é possível garantir mais segurança para switches, roteadores, discos rígidos, entre outros componentes do DC. Instale sistemas de controle de acesso eletrônico: com isso, o acesso a todos os pontos do Data Center ficam protegidos por mecanismos de controle de acesso eletrônico, permitindo que apenas pessoas autorizadas entrem no estabelecimento. Crie um processo de provisionamento: qualquer indivíduo que solicitar acesso ao Data Center deve ser registrado em um sistema, para assegurar a segurança dos dados. Instale alarmes: todas as áreas de um Data Center devem possuir alarmes para prevenir possíveis invasões e maior efetividade na tomada de providências. Estabeleça uma equipe de segurança: defina uma equipe eficiente para realizar uma série de tarefas diariamente, tais como monitorar alarmes, treinar agentes de segurança para emergências, monitorar acessos não autorizados, ajudar todos os colaboradores que possuem acesso ao Data Center, controlar o acesso através da confirmação de identidade do colaborador, além de passar relatórios de monitoramento e responder a chamadas telefônicas e de rádio.
Refrigeração e Energia Bons sistemas de refrigeração e energia garantem o funcionamento adequado dos equipamentos e dos sistemas dentro de um Data Center. A refrigeração tem como função manter a temperatura do ambiente nos níveis corretos, para que tudo opere perfeitamente e sem oscilações muito grandes, o que é extremamente prejudicial para a operação do DC. Já com relação ao fornecimento de energia, é imprescindível que o abastecimento dessa fonte seja constante, pois se houver oscilações, a eficiência de trabalho do centro de dados diminuirá, o que pode causar transtornos às empresas que contrataram o serviço. Geralmente, para evitar danos e problemas com o provisionamento de energia, o sistema todo é composto por no-breaks e geradores, além de ser alimentado por mais de uma substação de energia. Isso garante rendimento e eficácia ao sistema. Tipos de Data Center Normalmente, os Data Centers são divididos em duas categorias principais: Data Center Privado (PDC)
P á g i n a | 40 Os DCs dessa categoria pertencem e são operados por corporações, instituições ou agências governamentais, com a finalidade de armazenarem dados de processamentos internos e também para serem utilizados em aplicações voltadas para a Internet, como por exemplo, manter um site governamental. Internet Data Center (IDC) É gerenciado por um provedor de serviços de telecomunicação. O objetivo principal desse Data Center é fornecer serviços de hospedagem de sites e de equipamentos de empresas, bem como serviços de conexão de Internet, armazenamento de conteúdo, entre outros. Um serviço bastante utilizado no IDC é o Co-location, que consiste na locação de um servidor exclusivo para o usuário, instalado e operado dentro da estrutura do provedor desse serviço. Esse formato proporciona alta escalabilidade, ou seja, em caso de necessidade de ampliação dos servidores ou equipamentos, essa ampliação pode ser feita instantaneamente pelo provedor, o que traz uma otimização de custos de operação e manutenção, monitoramento constante e um backup de dados, o que garante o bom funcionamento do serviço. Modelos de utilização Os Data Centers podem ser utilizados de diversas formas, mas três modelos se destacam: o Corporativo Monolítico, Corporativo Compartilhado e o ASP. Corporativo Monolítico − −
pertence a uma única empresa e não é compartilhado (Data Center da Cisco, por exemplo). terceiriza toda a infra-estrutura física e lógica, as operações e a gestão dos processos informatizados da empresa. O provedor de serviços é quem analisa quais ferramentas e recursos como sistema operacional, banco de dados, redes e aplicações atenderão melhor às necessidades da companhia.
Corporativo Compartilhado − −
se utiliza de uma infraestrutura comum a diversas empresas. terceiriza as operações e a gestão dos processos informatizados e as encaminha para o provedor de serviços, deixando-o responsável pelos processos operacionais da área de TI.
− −
se utiliza de toda a infraestrutura e sistemas através de um serviço alocado fora da empresa. a empresa utiliza toda e infraestrutura, sistemas e recursos por meio de prestação de serviços, locando aplicativos, softwares, espaço para armazenamento de dados, além de capacidade de processamento em servidores. Neste caso, a empresa não necessita de nenhum tipo de licenciamento de softwares, aplicativos, banco de dados ou sistemas operacionais, pois todos esses recursos são fornecidos pelo provedor como um serviço, alocado no espaço do próprio provedor.
ASP
As principais áreas presentes em um Data Center • •
•
Entrance Room (ER): A sala de entrada é um espaço de interconexão entre o cabeamento estruturado do Data Center e o cabeamento proveniente das operadoras de telecomunicação. Main Distribution Area (MDA): Inclui o cross-connect principal, que é um ponto principal de distribuição de um cabeamento estruturado de um Data Center, nesta área se faz as principais manobras do Data Center, é uma área crítica. Horizontal Distribution Area (HDA): É uma área utilizada para conexão com as áreas de equipamentos. Incluí o cross-connect horizontal (HC), e equipamentos intermediários.
P á g i n a | 41 •
•
Zone Distribution Area (ZDA): Ponto de interconexão opcional do cabeamento horizontal. Posicionado entre o HDA e o EDA permite uma configuração rápida e freqüente, geralmente posicionada embaixo do piso. Provê flexibilidade no Data Center. Equipment Distribution Area (EDA): Espaço destinado para os equipamentos terminais (Servidores, Storage) e os equipamentos de comunicação de dados ou voz (switches centrais “core”).
Como, então, garantir a construção de Data Centers que não param? A construção de Data Centers sempre foi baseada em recomendações de fabricantes de mainframes, de equipamentos de TI e na experiência dos próprios engenheiros e analistas que o projetavam. Mas agora, não mais. Há uma nova norma que regulamenta e padroniza a construção de novos Data Centers, a ANSI/TIA/EIA-942 – Telecommunications Infrastructure Standard for Datacenters. Inicialmente com abrangência apenas nos EUA, a ela logo se seguirão normas internacionais, da ISO, e nacionais, da ABNT. A TI-942 trata de quatro disciplinas intimamente relacionadas com o projeto de Data Centers: Arquitetura, Comunicações, Elétrica e Mecânica. Os projetos de cada uma delas devem ser muito bem coordenados para se obter como resultado um Data Center eficiente. A classificação Tier adotada em Data centers foi desenvolvida pelo Uptime Institute (www.uptimeinstute.org), nos EUA, e vem sendo usada desde 1995 em tem hoje reconhecimento e alcance mundial. Os níveis de disponibilidade associados às classificações Tier foram determinados por meio de resultados de análises de disponibilidade de Data centers reais, que apresentam valores entre 99,67% e 99,99%. A norma classifica ainda os Data Centers em quatro Tiers (níveis), numerados de um a quatro: Tier 1: Data Center básico. Tier 2: Data Center com componentes redundantes. Tier 3: Data Center que permite manutenção sem paradas. Tier 4: Data Center tolerante a falhas.
Figura 3 - Tipos de TIERs
Para cada uma das quatro disciplinas listadas acima, há um conjunto de requisitos obrigatórios para que se atinja cada um dos níveis. A classificação geral do Data Center é igual à classificação que recebeu o nível mais baixo. Os Data centers classificados como Tier I surgiram no início dos anos 60. Os sites Tier II datam dos anos 70 e os Tier III apareceram no final dos anos 80 e inicio dos anos 90. Finalmente os Data centers Tier IV surgiram em 1994. O Uptime Institute participou da organização dos conceitos de sites Tier III e foi pioneiro no desenvolvimento dos Data centers Tier IV. E qual o impacto que cada um desses quatro níveis pode ter na disponibilidade do Data Center? Segundo dados levantados pelo Uptime Institute®, um Data Center de nível quatro fica, em média, 26 minutos por ano “fora do ar”. A seguir, a tabela completa de disponibilidade: Disponibilidade dos Data Centers quanto ao seu nível/tier:
P á g i n a | 42 Tier
Disponibilidade
Downtime anual
1
99,971%
28,8 horas
2
99,749%
22,0 horas
3
99,982%
1,6 hora (95 minutos)
4
99,995%
0,4 hora (26 minutos)
Classificações TIER Tier I: Básico É um Datacenter sem componentes redundantes e com um ramo de distribuição (elétrica e outros sistemas e subsistemas) não redundante para atender os equipamentos de TI do site. Apropriado para Pequenos negócios onde a tecnologia de informação melhore principalmente os processos de negócios internos; Empresas cuja utilização principal de uma “presença na web” seja como uma ferramenta de marketing passivo e empresas baseadas na Internet sem compromissos de qualidade de serviço. Características: • Suscetível a interrupções por atividades planejadas e não planejadas; • Possui um ramo único de distribuição de alimentação elétrica, bem como para o sistema de climatização sem componentes redundantes; • Possui distribuição de alimentação elétrica para os equipamentos de TI e para o sistema de climatização; • Pode ter ou não UPS e grupos geradores, é um sistema de módulos simples e apresenta vários pontos individuais de falhas; • Anualmente a infraestrutura deve ser completamente desligada para realização de serviços de manutenção preventiva e corretiva; • Situações de emergência podem necessitar de shutdown mais freqüentes; e • Erros de operação e falhas espontâneas na infraestrutura do datacenter podem ocorrer e levarão à interrupção da operação do datacenter e indisponibilidade de serviços. Tier II: Componentes redundantes para infraestrutura do site São Data centers como componentes redundantes, porém com um ramo único de distribuição (elétrica e outros sistemas e subsistemas) para atender os equipamentos de TI. Apropriado para Pequenos negócios cujos requisitos de TI estejam em sua maioria limitados às horas de expediente tradicionais, permitindo o desligamento de sistema durante as “horas sem operação”; Empresas Comerciais de Pesquisa e Desenvolvimento tais como softwares que não possuam, de modo geral, obrigações de assistência “on-line” ou em “tempo real”, e empresas baseadas na Internet sem penalidades financeiras graves pelos compromissos de qualidade de serviço Características: • Uma falha em um componente pode causar impactos na operação dos equipamentos de TI; • Uma falha no ramo de distribuição elétrica causará o desligamento dos equipamentos de TI; • Sã sites suscetíveis a interrupções por atividades planejadas; • Módulos UPS redundantes e grupos geradores devem fazer parte da infraestrutura de alimentação elétrica desses ambientes;
P á g i n a | 43 • • • •
Anualmente, a infraestrutura do site deve ser totalmente desligada (shutdown) para serviços de manutenção preventiva e corretiva; Situações de emergência podem necessitar de (shutdown) mais freqüentes; Falhas na execução de serviços de manutenção aumentam os riscos de interrupções não planejadas assim como a seriedade das conseqüências das falhas; e Erros espontâneos de operação de componentes da infraestrutura do site podem causar interrupção dos serviços do datacenter.
Tier III: Manutenção simultânea São Data centers com componentes redundantes e vários ramos de distribuição (elétrica e outros sistemas e subsistemas) para atender os equipamentos de TI. Apropriado para Empresas que dão suporte 24×7 a clientes internos e externos, tais como centros de serviço e help desks, mas conseguem programar curtos períodos durante os quais é aceitável a prestação de assistência limitada; Negócios cujos recursos de tecnologia de informação suportam processos de negócios automatizados, de modo que os impactos no cliente de desligamento de sistema sejam contornáveis; Empresas com vários turnos de horários com clientes e funcionários em diversas áreas regionais Características: • Cada componente e elemento dos ramos de distribuição de alimentação elétrica e outros sistemas e subsistemas do site podem ser removidos conformeplanejado sem causar o desligamento de qualquer equipamento de TI; • O site é suscetível a interrupções por atividade não planejadas; • A manutenção da infraestrutura do site pode ser realizada com capacidades de componentes redundantes e dos ramos de distribuição para trabalhos isolados nos equipamentos remanescentes; • Todos os equipamentos de TI precisam de fontes de alimentação redundantes para realização de manutenção simultânea nos sistemas de distribuição elétrica crítica entre os UPS e os equipamentos de TI; • Durante as atividades de manutenção, o risco de interrupção pode ser elevado; e • Erros de operação ou falhas espontâneas de componentes da infraestrutura do site podem causar a interrupção dos serviços do datacenter. Os Data centers Tier III são normalmente planejados para serem convertidos em Tier IV. Tier IV: Infraestrutura do site tolerante a falhas São Data centers tolerantes a falhas com sistemas redundantes e vários ramos de distribuição (elétrica e outros sistemas e subsistemas) que atendem simultaneamente, os equipamentos de TI. Todos os equipamentos de TI devem ter fontes de alimentação redundantes a ser instalados de acordo com a topologia e arquitetura do site. Apropriado para Empresas com uma presença de mercado internacional que prestam serviços 24h x 365d em um mercado altamente competitivo direcionado ao cliente; Negócios baseados em comércio eletrônico, transações de mercado ou processos de liquidação financeira; e grandes empresas globais com vários turnos de horários onde o acesso do cliente a aplicações e à utilização de recursos de tecnologia de informação pelos funcionários seja uma vantagem competitiva Características: • Uma falha única de qualquer sistema, componente ou elemento de distribuição não causará a interrupção dos serviços do datacenter; • Componentes e elementos de distribuição podem ser removidos (ou retirados se serviço) de forma planejada sem causar o desligamento (shutdown) dos equipamentos de TI;
P á g i n a | 44 •
• • • •
Sistemas complementares e ramos de distribuição de serviços elétricos (e outros) devem ser separados fisicamente para prevenir que eventos isolados causem impactos em ambos os sistemas ou ramos simultaneamente; A manutenção da infraestrutura do site pode ser realizada com as capacidades dos componentes redundantes e dos ramos de distribuição para serviços isolados nos equipamentos remanescentes; Durante as atividades de manutenção o risco de interrupção dos serviços pode ser elevado; A operação de alarme contra incêndio, a supressão de fogo ou o desligamento do site em caso de emergência podem causar a interrupção dos serviços; e A infraestrutura é mais compatível com os conceitos de alta disponibilidade de tecnologia da informação, que emprega clusters de servidores, conjuntos redundantes de discos independentes (RAID – Reduntant Array of Independent Disk) para armazenamento de acessodireto (DASD – Direct Access Storage Devide), bem como sistemas de telecomunicações redundantes para garantir a confiabilidade e disponibilidade de serviços.
A seguir, alguns exemplos de requisitos e os respectivos níveis onde são exigidos: Cabos ópticos com armadura do tipo interlock (nível 4) Software de gerenciamento da planta física (nível 3) Backbones redundantes, sendo um ativo e outro passivo, por caminhos diferentes (nível 3) Backbones redundantes, ambos ativos, por caminhos diferentes (nível 4) Duas salas de entrada de operadoras (nível 3) Equipamentos de telecomunicações com fontes redundantes (nível 2) Patch cords etiquetados com a identificação das portas onde estão conectados (nível 2) Um projeto de Data Centers tornou-se uma Ciência. E como tal, deve ser estudado, planejado e cuidadosamente implantado e mantido. 9.2 Serviços de armazenamento, padrões de disco e de interfaces Tecnologia de armazenamento em disco Como escolher entre DAS, NAS ou SAN? O storage (dispositivo onde são armazenados os dados) é hoje um componente crítico da infra-estrutura de TI. A necessidade de suportar o crescimento da massa de dados digital e ao mesmo tempo a necessidade de aumentar a confiabilidade do dados devido a aspectos regulatórios e a operações cada vez mais baseadas em 24 por 7 o tornam o ponto focal de muitos projetos de atualização de infra-estrutura de TI. Quase sempre o crecimento do orçamento de TI não consegue acompanhar o crescimento da demanda por storage devido a rápida adoção de processos organizacionais cada vez mais dependentes de dados e informação. Sim, mas como armazenar os dados no storage? Existem diversas maneiras de armazenar os dados no storage. As principais opções são o armazenamento interno, storage diretamente conectado ao host (DAS) e redes de storage (SAN e NAS) conforme ilustram as figuras abaixo em diferentes perspectivas (host vs aplicação).
P á g i n a | 45
O armazenamento interno é simples e barato, mas não permite escalabilidade e esta sempre vinculado a um único host. Os requisitos de disponibilidade também não são atendidos pois o simples fato do host que esta vinculado ao storage quebrar faz com que não se tenha acesso aosa dados armazenados . Gerenciar este tipo de armazenamento para grandes quantidades de dados é um problema. Em muitas situações, em uma determinada rede, certos servidores precisam de aumentar o espaço em disco e outros possuem espaço em disco sobrando e como o armazenamento é interno não se pode fazer quase nada . Segue as principais opções de armazenamento: •
O armazenamento do tipo DAS (direct attached storage): funciona como uma extensão lógica do armazenamento interno consistindo de um rack de discos rígidos externos utilizados por um host (ou alguns hosts) para expandir a sua capacidade nominal de discos. Em geral a solução tipo DAS melhora a escalabilidade e a diponibilidade quando comparado a solução interna de discos. As melhorias introduzidas pelos fabricantes como a possibilidade de utiliza-lo em cluster e a opção por diversas interfaces de disco prolongaram a vida deste tipo de armazenamento. Além do desempenho que normalmente nesta configuração é elevado quando comparado a soluções baseadas em rede de storage. Mas a limitação do número de hosts conectados ainda é o principal fator impeditivo para o uso deste tipo de solução.
•
O armazenamento do tipo NAS (network attached storage): é baseado em redes de storage e primariamente utlizado para compartilhamento de arquivos. Quando comparado ao armazenamento interno ou ao DAS é mais escalável e possui melhor disponibilidade, além de ser mais fácil de gerenciar. Normalmente requer maior investimento inicial e conhecimento mais especializado. Neste caso os protocolos de transporte mais utilizados são o NFS (LINUX) e o CIFS (WINDOWS).
•
O armazenamento do tipo SAN (storage area network): é baseado em redes de storage dedicadas que conectam hosts e dispositivos de armazenamento usualmente no nível de bloco (dados de aplicação). O protocolo Fibre Channel (FC) é de longe o protocolo mais usado nas redes do tipo SANs e atende os requisitos de performance e confiabilidade necessários, sendo implementado em cinco camadas. Recentemente o padrão iSCSI (internet SCSI) que utiliza o Ethernet passou a ser uma opção. O armazenamento do tipo SAN também possui maior escalabilidade e melhor disponibilidade que soluçõe baseadas em armazenamento interno ou em DAS.
Padrões de disco Durante anos, a interface paralela tem sido amplamente utilizado no armazenamento de sistemas. A necessidade de maior largura de banda e flexibilidade nos sistemas de armazenamento fez os SCSI e ATA padrões uma opção ineficiente. Uma interface paralela é um canal capaz de transferir a data em modo paralelo - que é a transmissão de bits múltiplos
P á g i n a | 46 simultaneamente. Quase todos os computadores pessoais vêm com pelo menos uma interface paralela. As interfaces paralelas comuns incluem SCSI e ATA. Os padrões de interface de disco atualmente utilizados no storage são SAS , SATA e FC. O SAS (Serial SCSI) é a evolução natural do SCSI (Ultra-SCSI 3). Existe uma tremenda confusão em relação ao uso destes padrões. Uma coisa é a interface de disco utilizada pelo storage, outra coisa é o protocolo de rede utilizado para a conexão do host ao storage. O fator limitante de banda normalmente são os dispositivos utilizados na rede vinculados a este protocolo e não a interface em si. Por exemplo em uma rede SAN com padrão FC de 4Gb/s e interface de disco do tipo SAS a banda máxima permitida não será de 1200MB/s e sim de 400MB/s.Em uma rede iSCSI (internet SCSI) com discos SATA o que limitará a banda da conexão ao storage serão os dispositivos Ethernet (1Gb/s) utilizados na rede iSCSI e não a interface de disco. Na figura abaixo são comparados as diversas bandas existentes por tipo de interface incluindo a banda permitida para o padrão iSCSI:
Vamos detalhar os padrões: •
Advanced Technology Attachment (ATA): também conhecido como Parallel ATA ou Ultra DMA, a ATA é geralmente a interface de disco rígido mais barata; muitas placas-mãe de computadores incluem controladoras e conectores de cabos ATA, que geralmente controlam a unidade "C" que contém o sistema operacional. No entanto, a ATA é uma interface de unidade ligeiramente lenta, por isso é usada principalmente em aplicativos de computador monousuário ou em sistemas RAID econômicos. Essa interface é também chamada IDE, de Integrated Drive Electronics; ATA é a designação padrão oficial do ANSI (American National Standard Institute). É usado para conectar discos rígidos, drives de CD-ROM e periféricos semelhantes e suporta a interface 8/16-bit que transferir até 8,3 MB / s para ATA-2 e até 100MB / s (ATA-6).
•
Small Computer Systems Interface (SCSI): é amplamente usado em workstations e servidores de médio a alto desempenho. O SCSI oferece taxas de transferência mais rápidas do que a ATA/IDE, a interface mais comumente usada em PCs desktop. Em geral, a ATA/IDE é considerada mais fácil e mais econômica de implementar do que o SCSI, mas não oferece tantos recursos. Por exemplo, o SCSI pode dar suporte a até 16 dispositivos em um único barramento (a IDE oferece dois), geralmente oferece um throughput mais rápido, usa menos capacidade de CPU durante a operação e é, portanto, mais eficiente em aplicativos de vários iniciadores, para vários usuários e usos. Isso é significativo, porque permite que o processador execute mais comandos ao mesmo tempo, obtendo assim uma maior eficiência.
•
Fibre Channel - Arbitrated Loop (FC-AL): é uma interface padrão da indústria, com largura de banda excepcionalmente alta, orientada principalmente para servidores de topo de linha, para aplicativos similares de grande demanda e sistemas de armazenamento de dados. O FC-AL usa cabos de fibra óptica em uma configuração em loop para produzir velocidades de transferência máxima de 200 MB/segundo e é projetado para conectar até 127 dispositivos a distâncias de até 10 quilômetros, permitindo o armazenamento de dados
P á g i n a | 47 em locais remotos e seguros, distantes do servidor. Dispositivos FC-AL podem ter portas duplas, fornecendo duas sessões de I/O, o que dobra o throughput máximo, e o FC-AL permite "hot swapping", de forma que você pode adicionar ou remover discos rígidos sem interromper a operação do sistema, uma opção importante em ambientes de servidor. •
Serial ATA (SATA): é projetada para transpor as barreiras de desempenho das tecnologias atuais de Parallel ATA, mantendo a economia da Parallel ATA. Comparado com a Parallel ATA, o throughput de dados mais rápido, a maior largura de banda e o desempenho aprimorado prometem acelerar o movimento da indústria em direção a uma integração futura de chipset e de componentes de silício. Isso amplia ainda mais o alcance dos sistemas RAID, especialmente das unidades ATA econômicas. A Serial ATA permite o uso de cabos flexíveis finos e com poucos pinos. Permite também um gerenciamento de roteamento de cabos mais fácil e mais flexível, e o uso de conectores menores do que é possível com a tecnologia Parallel ATA atual. Sua conexão é serial - um único cabo com um mínimo de quatro fios cria uma conexão ponto-a-ponto entre os dispositivos. As taxas de transferência de Serial ATA começar em 150 MB/s.
•
Serial Attached SCSI (SAS): é a evolução tecnológica que veio para atender a demanda das necessidades das empresas e data center´s. Ela reúne o melhor dos dois mundos: A confiabilidade e utilidade do protocolo SCSI com a performance e a flexibilidade da tecnologia serial. Como resultado, temos meios de transmissão de baixo custo, full-duplex (transmite e recebe dados ao mesmo tempo) e com taxas de transferência de 3Gbps (gigabits por segundo) em cada meio utilizado. Abreviado como SAS, Serial Attached SCSI, uma evolução do SCSI paralelo em uma interface periférica serial ponto-a-ponto em que os controladores estão ligados diretamente a unidades de disco. SAS é uma melhoria de desempenho ao longo do tradicional SCSI porque SAS permite que vários dispositivos (até 128), de diferentes tamanhos e tipos para ser ligado em simultâneo com cabos mais finos e mais longos, a sua transmissão de sinal full-duplex suporta 3,0 Gb/s. Além disso, unidades SAS pode ser hot-plug.
Segue abaixo uma tabela comparativa do SATA versus SAS versus Fibre Channel:
SATA
SAS
FIBRE CHANNEL
Half-Duplex
Full-Duplex
Full-Duplex
150Mbps / 300Mbps
300Mbps / 600Mbps (em teste)
200Mbps / 400Mbps (em teste)
Cabo interno de 1m
Cabo externo de até 6m
Cabo externo de até 15m
1 dispositivo por interface
Até 128 dispositivos, ou 16.000 conexões físicas com o uso de expander´s.
Até 127 dispositivos interligados em loop
Apenas SATA
SAS e SATA
Apenas Fibre Channel
HD´s de única porta SATA
HD´s com duas portas (SAS e SATA)
HD´s com 2 portas (SAS ou SCSI e Fibre Channel
Conexão simples ponto-a-ponto
Multi-origem ponto-a-ponto
Multi-origem em meio compartilhado ou ponto-a-ponto
Performance
Conectividade
Interfaces
Os benefícios do SAS e SATA em Armazenamento Interfaces seriais oferecem uma melhoria sobre mais velho SCSI paralelo (com uma versão de série) em aplicações de armazenamento e ambientes. Esses benefícios incluem melhor desempenho, melhor escalabilidade, e também melhorar a confiabilidade como as interfaces paralelas estão em seus limites de velocidade com as transferências de dados confiáveis. SAS e SATA também pode operar em um mesmo ambiente, enquanto SCSI e ATA não pode. Por exemplo, usando drives SAS mais rápidos para o armazenamento primário e descarregamento de dados mais antigos para os discos mais baratos SATA no mesmo subsistema, algo que não poderia ser alcançado com SCSI e ATA.
P á g i n a | 48 9.3 RAID Raid é um conjunto de dois ou mais discos que têm como finalidade ganhar segurança e desempenho, temos dois recursos que promovem a confiança e a agilidade dessa técnica: a primeira é o Striping (Raid 0) e o segundo Mirroring (Raid 1), Este produz o espelhamento de dados, isto é, o backup dos arquivos e aquele produz a divisão de dados. Vantagens do uso do Raid: 1. Ganho de desempenho no acesso. 2. Redundância em caso de falha em um dos discos. 3. Uso múltiplo de várias unidades de discos. 4. Facilidade em recuperação de conteúdo "perdido". O Raid pode ser controlado vias hardware ou software: Via Software - Na implementação via software, o Sistema Operacional gerencia o Raid através da controladora de Discos, sem a necessidade de um controlador de RAIDs, tornando-a mais barata. Nesse tipo de implementação, todo o processamento necessário para o gerenciamento é feito pela CPU (Unidade Central de Processamento). Toda a movimentação de dados (leitura e escrita) é feita por uma camada de software que faz a abstração entre a operação lógica (Raid) e os discos físicos, e é controlada pelo Sistema Operacional que precisa ser implementado no próprio núcleo a utilização de RAIDs via software. É possível criar RAIDs via Software no Mac OS X, Linux, FreeBSD e no Windows (versão Server). Via Hardware- Controladoras RAID em hardware usam layouts de disco proprietários (e diferentes). Por isso, normalmente não é possível misturar controladoras de fabricantes diferentes. Eles não utilizam recursos do processador. A BIOS pode iniciar (dar boot) por ela, e uma integração maior com o driver de dispositivo pode oferecer um melhor tratamento de erros. Uma implementação de RAID em hardware requer pelo menos uma controladora especialmente dedicada para isso. Em uma estação de trabalho (PC comum) isso pode ser uma placa de expansão PCI, PCI-e ou uma placa integrada à placa-mãe. Controladoras utilizando a maioria dos tipos de drive podem ser usadas - IDE/ATA, SATA, SCSI, SSA, Fibre Channel, e às vezes uma combinação. A controladora e os discos utilizados devem estar isolados. Podem estar conectados diretamente ao computador, ou conectados via SAN. A controladora gerencia os drives e faz os cálculos de paridade necessários pelo nível de RAID escolhido. A maioria das implementações em hardware provêem cache de leitura e escrita, o que (dependendo da carga de I/O) melhora a performance. Na maioria dos casos, o cache de escrita é não-volátil (protegido por bateria), e portanto, escritas pendentes não são perdidas no caso de uma falha no suprimento de energia. Implementações em hardware promovem performance garantida, não sobrecarregam o processador e podem suportar vários sistemas operacionais, já que a controladora apresentará ao sistema operacional um disco simples. A maioria das implementações em hardware também suporta o "hot-swapping", permitindo que discos com falha sejam substituídos enquanto o sistema está sendo executado. O que é Fake Raid? A implementação via software geralmente não possui uma fácil configuração. Já via hardware o preço das controladores é elevado. Então é possível obter uma solução mais favorável utilizando a combinação de funções especiais na Bios da placa e os drivers instalados no Sistema Operacional. Comparação entre a Arquiteturas via Software e Hardware Ao compararmos RAIDs por software e por hardware percebe-se que os implementados através de software são mais flexíveis que os via hardware. Por outro lado, os primeiros exigem da CPU mais tempo de processamento. Comparando os dispositivos de blocos, os em software também são flexíveis podendo ser usados em discos inteiros, partições ou outro dispositivo de bloco.
P á g i n a | 49 Níveis de Raid RAID 0 A Leitura e/ou Escrita ocorre ao mesmo tempo. No striping, ou distribuição, os dados são subdivididos em segmentos consecutivos (stripes, ou faixas) que são escritos seqüencialmente através de cada um dos discos de um array, ou conjunto. Cada segmento tem um tamanho definido em blocos. A distribuição, ou striping, oferece melhor desempenho comparado a discos individuais, se o tamanho de cada segmento for ajustado de acordo com a aplicação que utilizará o conjunto, ou array.
Vantagens: - Acesso rápido as informações (até 50% mais rápido). - Custo baixo para expansão de memória. Desvantagens: - Caso algum dos setores de algum dos HD’s venha a apresentar perda de informações, o mesmo arquivo que está dividido entre os mesmos setores dos demais HD’s não terão mais sentido existir, pois uma parte do arquivo foi corrompida, ou seja, caso algum disco falhe, não tem como recuperar. - Não é usado paridade. RAID 1 A escrita é feita em pares de unidades, enquanto a leitura ocorre em todas as unidades ao mesmo tempo. É o nível de RAID que implementa o espelhamento de disco, também conhecido como mirror. Para esta implementação são necessários no mínimo dois discos. O funcionamento deste nível é simples: todos os dados são gravados em dois discos diferentes; se um disco falhar ou for removido, os dados preservados no outro disco permitem a não descontinuidade da operação do sistema. Vantagens: - Caso algum setor de um dos discos venha a falhar, basta recuperar o setor defeituoso copiando os arquivos contidos do segundo disco. - Segurança nos dados (com relação a possíveis defeitos que possam ocorrer no HD). Desvantagens: - Custo relativamente alto se comparado ao RAID 0. - Ocorre aumento no tempo de escrita. - Não é usado paridade.
P á g i n a | 50 RAID 2 É similar ao RAID 4, mas armazena informação ECC (Error Correcting Code), que é a informação de controle de erros, no lugar da paridade. Este fato possibilita uma pequena protecção adicional, porém o RAID 2 ficou obsoleto pelas novas tecnologias de disco já possuírem este tipo de correcção internamente. O RAID 2 origina uma maior consistência dos dados se houver queda de energia durante a escrita. Baterias de segurança e um encerramento correto podem oferecer os mesmos benefícios
Vantagem: - Usa ECC; Desvantagem: - Hoje em dia há tecnologias melhores para o mesmo fim. RAID 3 Escrita e Leitura ocorre em todas as unidades. Mas diminui o tempo de transferência de dados. É uma versão simplificada do RAID nível 2. Nesse arranjo, um único bit de paridade é computado para cada palavra de dados e escrito em um drive de paridade. À primeira vista, pode parecer que um único bit de paridade dá somente detecção de erro, não correção de erro. Para o caso de erros aleatórios não detectados, essa observação é verdadeira. Todavia, para o caso de uma falha de drive, ela provê correção total de erros de um bit, uma vez que a posição do bit defeituoso é conhecida. Se um drive falhar, o controlador apenas finge que todos os seus bits são "zeros". Se uma palavra apresentar erro de paridade, o bit que vem do drive extinto deve ter sido um "um", portanto, é corrigido. A fim de evitar o atraso em razão da latência rotacional, o RAID 3 exige que todos os eixos das unidades de disco estejam sincronizados. A maioria das unidades de disco mais recentes não possuem a opção de sincronização do eixo, ou se são capazes disto, faltam os conectores necessários, cabos e documentação do fabricante.
Vantagens: - Leitura rápida - Escrita rápida - Possui controle de erros Desvantagem:
P á g i n a | 51 - Montagem difícil via software RAID 4 Funciona com dois ou mais discos iguais. Um dos discos guarda a paridade (uma forma de soma de segurança) da informação contida nos discos. Se algum dos discos avariar, a paridade pode ser imediatamente utilizada para reconstituir o seu conteúdo. Os discos restantes, usados para armazenar dados, são configurados para usarem segmentos suficientemente grandes (tamanho medido em blocos) para acomodar um registro inteiro. Isto permite leituras independentes da informação armazenada, fazendo do RAID 4 um array perfeitamente ajustado para ambientes transacionais que requerem muitas leituras pequenas e simultâneas. O RAID 4 assim como outros RAID's, cuja característica é utilizarem paridade, usam um processo de recuperação de dados mais envolvente que arrays espelhados, como RAID 1. Este nível também é útil para criar discos virtuais de grande dimensão, pois consegue somar o espaço total oferecido por todos os discos, exceto o disco de paridade. O desempenho oferecido é razoável nas operações de leitura, pois podem ser utilizados todos os discos em simultâneo. Sempre que os dados são escritos no array, as informações são lidas do disco de paridade e um novo dado sobre paridade deve ser escrito para o respectivo disco antes da próxima requisição de escrita ser realizada. Por causa dessas duas operações de I/O, o disco de paridade é o factor limitante do desempenho total do array. Devido ao fato do disco requerer somente um disco adicional para protecção de dados, este RAID é mais acessível em termos monetários que a implementação do RAID 1. Vantagens: - Taxa de leitura rápida; - Possibilidade do aumento de área de discos físicos. Desvantagens: - Taxa de gravação lenta. - Em comparação com o RAID 1, em caso de falha do disco, a reconstrução é difícil, pois o RAID 1 já tem o dado pronto no disco espelhado. - Tecnologia não mais usada por haver melhores para o mesmo fim. RAID 5 Escrita precisa de paridade atualizada e leitura que pode ser feita em todas as unidades ao mesmo tempo. É frequentemente usado e funciona similarmente ao RAID 4, mas supera alguns dos problemas mais comuns sofridos por esse tipo. As informações sobre paridade para os dados do array são distribuídas ao longo de todos os discos do array , ao invés de serem armazenadas num disco dedicado, oferecendo assim mais desempenho que o RAID 4, e, simultaneamente, tolerância a falhas. Para aumentar o desempenho de leitura de um array RAID 5, o tamanho de cada segmento em que os dados são divididos pode ser optimizado para o array que estiver a ser utilizado. O desempenho geral de um array RAID 5 é equivalente ao de um RAID 4, exceto no caso de leituras sequenciais, que reduzem a eficiência dos algoritmos de leitura por causa da distribuição das informações sobre paridade. A informação sobre paridade é distribuída por todos os discos; perdendo-se um, reduz-se a disponibilidade de ambos os dados e a paridade, até à recuperação do disco que falhou. Isto causa degradação do desempenho de leitura e de escrita.
P á g i n a | 52
Vantagens: - Maior rapidez com tratamento de ECC. - Leitura rápida (porém escrita não tão rápida). Desvantagem: - Sistema complexo de controle dos HDs. RAID 6 É um padrão relativamente novo, suportado por apenas algumas controladoras. É semelhante ao RAID 5, porém usa o dobro de bits de paridade, garantindo a integridade dos dados caso até 2 dos HDs falhem ao mesmo tempo. Ao usar 8 HDs de 20 GB cada um em RAID 6, teremos 120 GB de dados e 40 GB de paridade. Vantagem: - Possibilidade falhar 2 HDs ao mesmo tempo sem perdas. Desvantagens: - Precisa de N+2 HDs para implementar por causa dos discos de paridade. - Escrita lenta. - Sistema complexo de controle dos HDs. RAID 0 (ZERO) + 1 O RAID 0 + 1 é uma combinação dos níveis 0 (Striping) e 1 (Mirroring), onde os dados são divididos entre os discos para melhorar o rendimento, mas também utilizam outros discos para duplicar as informações. Assim, é possível utilizar o bom rendimento do nível 0 com a redundância do nível 1. No entanto, é necessário pelo menos 4 discos para montar um RAID desse tipo. Tais características fazem do RAID 0 + 1 o mais rápido e seguro, porém o mais caro de ser implantado. No RAID 0+1, se um dos discos vier a falhar, o sistema vira um RAID 0. Vantagens: - Segurança contra perda de dados. - Pode falhar metade dos HDs ao mesmo tempo, porém deixando de ser RAID 0 + 1. Desvantagens: - Alto custo de expansão de hardware (custo mínimo = 2N HDs). - Os drives devem ficar em sincronismo de velocidade para obter a máxima performance. O RAID 1+0, OU 10 Exige ao menos 4 discos rígidos. Cada par será espelhado, garantindo redundância, e os pares serão distribuídos, melhorando desempenho. Até metade dos discos pode falhar simultaneamente, sem colocar o conjunto a perder, desde
P á g i n a | 53 que não falhem os dois discos de um espelho qualquer — razão pela qual usam-se discos de lotes diferentes de cada ‘lado’ do espelho. É o nível recomendado para bases de dados, por ser o mais seguro e dos mais velozes, assim como qualquer outro uso onde a necessidade de economia não se sobreponha à segurança e desempenho.
Vantagens: - Segurança contra perda de dados. - Pode falhar um ou dois dos HDs ao mesmo tempo, dependendo de qual avaria. Desvantagens: - Alto custo de expansão de hardware (custo mínimo = 2N HDs). - Os drivers devem ficar em sincronismo de velocidade para obter a máxima performance. RAID 50 É um arranjo híbrido que usa as técnicas de RAID com paridade em conjunção com a segmentação de dados. Um arranjo RAID-50 é essencialmente um arranjo com as informações segmentadas através de dois ou mais arranjos. temos alguns discos rígidos que possuem o Raid 5 e o Raid 0 terá a função de dividir os dados. Vantagens: - Alta taxa de transferência. - Ótimo para uso em servidores. Desvantagens: - Alto custo de implementação e expansão de memória. RAID 100 Basicamente é composto do RAID 10+0. Normalmente ele é implementado utilizando uma combinação e software e hardware, ou seja, implementa-se o RAID 0 via software sobre o RAID 10 via Hardware. 10. TECNOLOGIAS DE BACKUP 10.1 Conceitos Básicos Topologia de Backup O utilitário de backup oferece suporte a cinco métodos para backup de dados no computador ou na rede. •
Backup de cópia: um backup de cópia copia todos os arquivos selecionados, mas não os marca como arquivos que passaram por backup (ou seja, o atributo de arquivo não é desmarcado). A cópia é útil caso você queira fazer backup de arquivos entre os backups normal e incremental, pois ela não afeta essas outras operações de backup.
P á g i n a | 54 •
•
•
•
Backup diário: um backup diário copia todos os arquivos selecionados que foram modificados no dia de execução do backup diário. Os arquivos não são marcados como arquivos que passaram por backup (o atributo de arquivo não é desmarcado). Backup diferencial: um backup diferencial copia arquivos criados ou alterados desde o último backup normal ou incremental. Não marca os arquivos como arquivos que passaram por backup (o atributo de arquivo não é desmarcado). Se você estiver executando uma combinação dos backups normal e diferencial, a restauração de arquivos e pastas exigirá o último backup normal e o último backup diferencial. Backup incremental: um backup incremental copia somente os arquivos criados ou alterados desde o último backup normal ou incremental. e os marca como arquivos que passaram por backup (o atributo de arquivo é desmarcado). Se você utilizar uma combinação dos backups normal e incremental, precisará do último conjunto de backup normal e de todos os conjuntos de backups incrementais para restaurar os dados. Backup normal: um backup normal copia todos os arquivos selecionados e os marca como arquivos que passaram por backup (ou seja, o atributo de arquivo é desmarcado). Com backups normais, você só precisa da cópia mais recente do arquivo ou da fita de backup para restaurar todos os arquivos. Geralmente, o backup normal é executado quando você cria um conjunto de backup pela primeira vez.
O backup dos dados que utiliza uma combinação de backups normal e incremental exige menos espaço de armazenamento e é o método mais rápido. No entanto, a recuperação de arquivos pode ser difícil e lenta porque o conjunto de backup pode estar armazenado em vários discos ou fitas. Hardwares para backup Dispositivos de armazenamento por meio magnético; são os mais antigos e mais utilizados atualmente, por permitir uma grande densidade de informação, ou seja, armazenar grande quantidade de dados em um pequeno espaço físico. São mais antigos, porém foram se aperfeiçoando no decorrer do tempo. Os dispositivos de armazenamento magnéticos que possuem mídias removíveis normalmente não possuem capacidade e confiabilidade equivalente aos dispositivos fixos, pois sua mídia é frágil e possui capacidade de armazenamento muito pequena se comparada a outros tipos de dispositivos de armazenamento magnéticos. Dispositivos de armazenamento por meio óptico: são os mais utilizados para o armazenamento de informações multimídia, sendo amplamente aplicados no armazenamento de filmes, música, etc. Apesar disso também são muito utilizados para o armazenamento de informações e programas, sendo especialmente utilizados para a instalação de programas no computador. Exemplos de dispositivos de armazenamento por meio óptico são os CD-ROMs, CD-RWs, DVD-ROMs, DVD-RWs etc. Dispositivos de armazenamento por meio eletrônico: Este tipo de dispositivo é o mais recente e é o que mais oferece perspectivas para a evolução do desempenho na tarefa de armazenamento de informação. Esta tecnologia também é conhecida como memórias de estado sólido ou SSDs (solid state drive) por não possuírem partes móveis, apenas circuitos eletrônicos que não precisam se movimentar para ler ou gravar informações. Podem ser encontrados com as mais diversas aplicações, desde Pen Drives, até cartões de memória para câmeras digitais, e, mesmo os discos rígidos possuem certa quantidade desse tipo de memória funcionando como buffer. Os dispositivos tem a vantagem de possuir um tempo de acesso muito menor que os dispositivos por meio magnético, por não conterem partes móveis. O principal ponto negativo desta tecnologia é o seu custo ainda muito alto, portanto dispositivos de armazenamento por meio eletrônico ainda são encontrados com pequenas capacidades de armazenamento e custo muito elevado se comparados aos dispositivos magnéticos.
P á g i n a | 55 RAID: Sigla que vem do inglês para Redundant Array of Inexpensive Disk em português fica "conjunto redundande de discos independentes. RAID é usado para combinar no mínimo 2 ou mais discos rígidos trabalhando juntos para aumentar desempenho ou segunrança de dados(Redundância). Uma RAID pode ser feita tanto via hardware quanto via software. A RAID por software é mais dinâmica não exige uma controladora física, é possivel criar uma RAID a partir das partições de disco, já implantação via hardware é mais robusta e confiavel mas exige uma controladora física. Essa controlodarora física é uma placa que irá gerenciar a RAID a cnoexão dessa placa é por barramento SATA,SCSI ou IDE. É importante lembrar antes de mais nada que para a implantação de RAIDs é recomendável que todos os discos possuam o mesmo tamanho, pois caso o contrário será usada a área do disco menor . Também é aconselhável a mesma velocidade para ter um desempenho bom, senão o sistema usará o disco mais lento. Alguns exemplos de RAID: RAID 0(fracionamento): está RAID não oferece nenhuma segurança aos dados ela na verdade divide os dados ao meio e envia para dois discos rígidos ou mais dependendo da máquina seu principal objetivo é aumentar o desempenho na operação de ler e gravar dados. RAID 1(espelhamento): é a RAID mais comum, ela envia os dados para um disco rígido e replica no outro sendo assim caso um seja danificado os dados estarão igualmente no outro a desvantagem dessa RAID é que 50% da capacidade máxima de armazenamento será perdido. Existe também a fake RAID que é utilizada uma combinação de funções adicionais no BIOS da placa e um driver que roda no sistema operacionaç. no final, tudo é processado via software, de forma que não existe ganho de desempenho em relação a utilizar RAID via software. apenas a configuração é simplicada. Softwares Existem muitos programas para backup, um tipo de aplicativo dedicado à restauração das suas imagens, músicas, textos e arquivos em geral como o cobian backup, o Norton Ghost que fazem o serviço automaticamente diária ou semanalmente ou manualmente. Além disso, e possível enviar estes arquivos compactados diretamente para um servidor. Também se pode configurar seu próprio servidor para receber seus arquivos compactados de backup Uma alternativa cada vez mais popular é a utilização de um serviço de backup on-line que guarda os dados em servidores na nuvem. Você não precisa de nenhum hardware adicional, dezenas de empresas vendem serviços de backup on-line. Eles têm características mais automáticas, e, além de restaurar os arquivos para o computador hosteado, muitos (embora não todos) permitem recuperar arquivos armazenados por meio de smartfones ou tablets ou ainda a partir de um e-mail enviado a um amigo. Também e possível armazenar arquivos na conta de e-mail, como anexos de imagens, vídeos, textos e diversos formatos de arquivos. Assim é possível baixar dados e também enviar para terceiros. Backup na nuvem Com a utilização dos computadores e o uso da internet tornaram-se ultimamante parte da vida das pessoas, hoje em dia ter acesso a internet se tornou algo mais comum e rotineiro o que é um cenário perfeito para popularização do cloud computing(Computação na nuvem), embora pouco conhecido por usuários leigos. Com a computação na nuvem arquivos de um usuário não necessitam mais estar guardados em seu computador, eles ficam armazenados na "nuvem", ou seja em um servidor virtual, não necessitando de um computador veloz e sim um simples computador com internet já é possivel armazenar e puxar arquivos da "nuvem".O usuário não precisa se
P á g i n a | 56 preocupar com a execução dos arquivos o controle de segurança,backup e manutenção fica a cargo do fornecedor do aplicativo. O objetivo o cloud computing é simples uma pessoa com acesso a internet guardas seus arquivos na nuvem e poder puxa-los em outro computador em outro lugar a desvantagem é que sempre será necessário que o outro computador tenha também acesso a internet caso não tenha obviamente não é possivel usufruir deste aplicativo. Alguns profissionais da área de T.I se preocupam com o crescimento desse sistema pelo fato de que no futuro poderá haver não mais ataques a computadores pessoais mas sim ataques aos grandes datacenters que são a "nuvem". Um email como o Gmail ou hotmail também pode ser considerado uma espécie de cloud computing já que as empresas fornecem um espaço de armazenamento o Gmail por exemplo oferece até 10Gb de espaço para o usuário. Equipamentos para backup Existem muitas formas de fazer backup das suas informações e são diversos meios para que você possa armazenar fora do seu computador aqueles documentos que precisam estar seguros. Ao optar por um meio de armazenamento externo é sempre bom lembrar da praticidade e das vantagens de ter uma grande quantidade de informação centralizada em um hardware removível, que pode ter uma capacidade de armazenamento gigantesca. Confira algumas das unidades de armazenamento externo disponíveis: •
•
•
•
•
•
Pen drive: uma das unidades de armazenamento mais conhecidas e utilizadas por clientes domiciliares é o pen drive. Geralmente, quem busca um disco removível para fazer backups contenta-se com uma memória de até 32GB. Embora muitos desconheçam, os pen drives podem vir com uma opção de segurança com a utilização de senha. Assim, é criado como que um “usuário” que vai dispor de um espaço de armazenamento previamente estabelecido por você. Então se você emprestar o seu hardware para outra pessoa, ela terá disponível somente uma parte da memória e não poderá acessar o conteúdo que você protegeu, um recurso superinteressante. HD externo: o HD externo é uma alternativa boa para pequenas e médias empresas. Exitem HDs com cerca de 320 GB, bastante espaço para beckups. Clientes domiciliares que jogam ou baixam filmes pode ser interessante ter em casa um HD externo, os demais normalmente conseguem resolver o problema muito bem com pen drives. Também existem HDs com a opção de senha para garantir a segurança dos seus dados. HD acoplado a gavetas: esse é o próprio HD interno que é acoplado em uma “gaveta”, como se fosse um gabinetezinho, e que pode ser conectado no computador através de uma entrada USB. É uma alternativa mais barta em relação ao HD externo e com a mesma sistemática de uso. A gaveta é comprada separadamente do HD e as pessoas conseguem acoplar o harware em casa. Unidades fita DAT: as unidades de fitas DAT são drives externos, que gravam em mídias como as antigas fitas cassete. Usado mais frequentemente há 10 anos as unidades são ideais para quem precisa fazer grandes backups. A utilização do recurso é comum em empresas de médio a grande porte e empresas como editoras gráficas. A capacidade pode ficar em torno de 30 a 40GB. Cartões de memória: a maioria das pessoas usa o cartão de memória apenas para passar as fotos da máquina digital para o computador. Entretanto, a mídia pode, tranquilamente, ser usada como unidade de armazenamento externo. Quando você conecta o cartão no leitor de memória ou na entrada direta do PC é possível não só transferir as informações contidas nele para o computador, mas também o inverso pode ser feito. O único problema é que nem todos os PCs e portáteis têm entrada para cartões de memória, por isso, tenha sempre com você um adaptador de SD ou micro SD. Gravador de DVD externo: o gravador de DVD externo é superútil porque é fácilmente conectado ao computador via USB. Se você vai usar esse recurso para fazer backups, saiba que a sistemática é a mesma do PC com gravador interno, é possível salvar suas informações no DVD usando programas como o Nero. Para quem possui netbook, além de poder utilizar o recurso para gravações, pode utilizá-lo para rodar filmes. O mesmo também pode ser utilizado em videogames como o Nintendo Wii, que quando bloqueado não roda filmes caseiros, por exemplo.
P á g i n a | 57 10.2 Deduplicação Apesar de não existir em Português, a palavra deduplicação (tradução aportuguesada da palavra inglesa deduplication) é utilizada para descrever o processo de eliminação de dados duplicados. Esta tecnologia está a ser adoptada com grande sucesso por diversas soluções de storage e de backups (entre outras), tendo como objectivo a redução do espaço físico ocupado pelos dados. O seu método é usado para reduzir as necessidades de armazenamento através da eliminação de dados redundantes, de modo que, ao longo do tempo, seja guardada apenas uma cópia da informação em disco. O algoritmo de deduplicação efectua a análise em tempo real do fluxo de informação que entra na appliance, verificando se existem blocos de dados iguais. Se forem encontrados blocos duplicados, é guardado um apontador para o bloco original, em vez de se guardar uma nova cópia da informação. No entanto, é guardada uma indexação dos blocos originais, de forma que a informação possa ser "reidratada" sempre que os dados sejam necessários. A deduplicação pode ser utilizada a nível de ficheiros, blocos ou bytes e uma explicação pouco técnica poderá ser descrita como: para eliminar dados redundantes, essa técnica guarda uma única cópia de dados idênticos e substitui todas as outras por indicadores que apontam para essa cópia. Para efectuar esta tarefa toda a informação tem uma assinatura (checksum) e através da comparação dessa identificação o “software” verifica a existência de informação duplicada e substitui-a por um apontador. Nas soluções de backup para disco é possível obter ainda mais vantagens com a deduplicação federada, que consiste na utilização do algoritmo de deduplicação em toda a organização: a deduplicação é aplicada desde a fonte (onde os dados são criados) até ao destino (onde os dados de backup são armazenados), permitindo uma grande redução da janela de backup, da utilização de processamento nos clientes de backup e da largura de banda na rede local. Não se tratando de uma tecnologia nova, existindo pelo menos desde 2003, só agora é que os fornecedores de storage, sistemas operativos, soluções de backup e outros softwares começam a elevar esta tecnologia para o nível enterprise ready. Poderíamos pensar que esta tecnologia não seria bem recebida pelos fornecedores de storage, porque afinal de contas podemos estar a falar em reduções da informação física que podem chegar a 1/10 do tamanho ocupado “tradicionalmente” (valor muito variável dependendo do nível da deduplicação e do tipo de informação que estejamos a falar), mas a maioria dos players tem visto nesta tecnologia uma forma de vender mais, publicitando o “guarde mais com o mesmo espaço físico” e “reduza a duplicação de dados”, “reduza o tempo o tempo de backup”, etc. Claro que nem tudo são vantagens, e esta tecnologia tem os seus problemas, podendo até dizer-se que a deduplicação reduz a redundância! Eliminação da duplicação Backup Insira os vários níveis de tecnologia de duplicação baseada em disco. Em um nível básico, que pode ser dividido em três tipos: única instância, a nível de bloco e nível de Byte. Algumas das primeiras tecnologias deduplicação saiu o segmento de serviços de arquivo de área ampla. Redução de dados permitiu maior utilização de largura de banda e minimizado a despesa das redes de área ampla. Vejamos: •
Backup de eliminação da duplicação de única instância: um exemplo de aplicativo de e-mail é a melhor maneira de descrever a deduplicação de instância única. Se você enviar um anexo de 10 MB para 100 funcionários em sua empresa, que pode equivaler a 1.000 MBs de dados. Neste caso, uma única instância do arquivo anexado é armazenada. Outros destinatários recebem o e-mail com um “ponteiro” para esse arquivo. Isso reduz o armazenamento no servidor de e-mail original de 10 mg. Agora, vamos dizer, todo mundo adora o arquivo e todos eles salve-o no seu diretório pessoal em um servidor. Agora você tem 1.000 MBs em seu servidor de arquivos. Uma solução de backup que usa a única instância ou eliminação de ficheiros comuns armazenará apenas uma única cópia do arquivo. Isso reduz sua janela de backup, o tráfego de rede e o armazenamento de
P á g i n a | 58 backup de 1.000 MBs para 20MBc. Todas as outras referências para esse arquivo são armazenadas como ponteiros. Eles ainda estão disponíveis para recuperação, mas não usam quase nenhum armazenamento. Esse método também elimina a necessidade de backup de arquivos comuns como sistemas operacionais e aplicativos ao fazer backups de servidor completo. Desde que eu estou usando um exemplo baseado em disco para disco, todo o “qual fita tem qual versão” é eliminada e controlada nos metadados da solução de backup. •
Backup de nível de bloco deduplicação: deduplicação de dados de nível de bloco atribui um algoritmo de hash exclusivo para cada bloco de dados. Bloco tamanho varia dependendo da aplicação, variando de 4 KB a 56 KB. Alguns aplicativos usam um tamanho de bloco fixo, enquanto outros usam um dimensionamento de bloco variável. Geralmente, um menor tamanho de blocos irá encontrar mais comunalidade e reduzir dados por uma quantidade maior. Deduplicação de nível de bloco pode ser aplicada globalmente em muitos conjuntos de backup. Uma compensação ao menor tamanho de blocos é o maior processamento e sobrecarga de I/O. Quebrando um bloco de 100GB de dados em blocos de 8K produz 12 milhões de blocos de dados. Reconstruir todos estes blocos de dados atrasos restaurar vezes. Algumas tecnologias têm configurações para aumentar o desempenho de restauração através da produção de “sub mestres” dentro do conjunto de dados. Isto permite restaurações mais rápidas mas exige armazenamento adicional. Você deve considerar a sobrecarga adicional quando a avaliação dos métodos de eliminação da duplicação.
•
Nível de byte Deduplicatiion Backup: deduplicação de dados de nível de byte executa uma comparação byte a byte os fluxos de dados atual com os bytes que tem visto antes. Esta é uma comparação muito mais precisa e produz uma semelhança muito maior em conjuntos de dados. Mais abordagens de eliminação da duplicação de nível de byte são conteúdo consciente. Isto significa que é projetado especificamente para entender o fluxo de dados do aplicativo de backup para que ele possa identificar informações como nome do arquivo, tipo de arquivo e carimbo de data/hora.
Porque as comparações a este nível são recurso intensivo, geralmente é feita após o backup ocorre, chamado de pósprocessamento, versus em linha, que é a norma com deduplicação de nível de bloco. Isto significa que os backups completo com desempenho de disco cheio, mas exigem armazenamento adicional para armazenar em cache os backups, enquanto eles são processados. Além disso, o processo de eliminação da duplicação de nível de byte é normalmente limitado a um único backup definido e não é geralmente aplicado globalmente através de conjuntos de backup. Em muitos casos, o nível de byte tecnologia mantém a geração mais recente como um mestre. Isso melhora significativamente os tempos de restauração. Noventa por cento de todas as restaurações são da mais recente geração. Tempos de restauração são uma consideração importante ao considerar qualquer solução de backup. Todos os vendedores têm sua própria abordagem para a eliminação da duplicação. Alguns usam dispositivos de armazenamento, outros têm apenas soluções de software, e ainda outros têm substitutos de-to-end completos para soluções de backup existentes. 10.3 ILM - Information Lifecycle Management Gerenciamento do ciclo de vida da informação As empresas modernas precisam que seus dados estejam protegidos e disponíveis em tempo integral. Os data centers podem conseguir isso com o uso otimizado e apropriado da infraestrutura de armazenamento. Uma política eficaz de gerenciamento de informações é necessária para dar suporte a esta infraestrutura e potencializar seus benefícios. O gerenciamento do ciclo de vida da informação (ILM, Information Lifecycle Management) é uma estratégia pró-ativa que permite a uma organização de TI gerenciar de modo eficaz os dados por todo o seus ciclo de vida, baseada em políticas de negócio preestabelecidas. Uma estratégia de ILM deve incluir seguintes características: −
Centrada no negócio: deve estar integrada com os processos, aplicativos e iniciativas-chave do negócio para poder lidar tanto com o crescimento atual quanto com o futuro das informações.
P á g i n a | 59 − − − −
Gerenciada centralmente: todas as informações de um negócio precisam estar sob a supervisão da estratégia de ILM. Baseada em políticas: a implementação do ILM não deve ficar restrita a alguns departamentos. O ILM deve ser implantado como uma política e abranger todos os aplicativos, processos e recursos da empresa. Heterogênea: uma estratégia de ILM precisar levar em consideração todos os tipos de plataformas de armazenamento e sistemas operacionais. Otimizada: devido à variação no valor das informações, uma estratégia de ILM deve considerar os diferentes requisitos de armazenamento e alocar recursos de armazenamento baseada no valor das informações para a empresa.
Armazenamento Hierárquico O armazenamento hierárquico é uma abordagem para definir diversos níveis de armazenamento com o objetivo de reduzir os custos totais. Cada camada possui diferentes níveis de proteção, desempenho, freqüência de acesso aos dados e outras considerações. As informações são armazenadas e movidas entre as diferentes camadas com base no seu valor com o decorrer do tempo. Por exemplo, informações de missão crítica e mais acessadas podem ser armazenadas na Camada 1, que consiste em um meio de alto desempenho com maior nível de proteção. Dados com acesso intermediário em termos de freqüência e outros dados importantes são armazenados na Camada 2, que pode ser um meio não tão oneroso, com desempenho e proteção moderados. Informações raramente acessadas ou específicas a eventos podem ser armazenadas em camadas inferiores. Implementação de ILM O processo de desenvolvimento de uma estratégia de ILM inclui quatro atividades - classificação, implementação, gerenciamento e organização: − − − −
Classificação dos dados e aplicativos com base nas regras e políticas do negócio para permitir o tratamento diferenciado das informações. Implementação de políticas através do uso de ferramentas de gerenciamento de informações, começando pela criação de dados e terminando como sua eliminação. Gerenciamento do ambiente usando ferramentas integradas para reduzir a complexidade operacional. Organização dos recursos de armazenamento hierárquico para alinhar os recursos com as classes de dados e armazenar as informações no tipo correto de infraestrutura com base no seu valor atual.
A implementação do ILM por uma empresa é um processo contínuo. A figura 1-8 ilustra um mapa com três etapas para ILMs que abragem toda a empresa. As etapas 1 e 2 têm como objetivo implementar o ILM de uma forma limitada a partir de alguns aplicativos críticos para a empresa. Na etapa 1, o objetivo é implantar um ambiente de rede de armazenamento. Arquiteturas de armazenamento oferecem níveis variáveis de proteção e desempenho e isso serve com base para o futuro gerenciamento das informações baseado em políticas das etapas 2 e 3. O valor das plataformas de armazenamento hierárquico pode ser explorado pela alocação de recursos de armazenamento apropriados para os aplicativos com base no valor das informações processadas. A etapa 2 leva o ILM ao próximo nível, com a aplicação ou classificação detalhada dos dados e a conexão da infraestrutura de armazenamento com as políticas de negócio. Estas classificações e as políticas resultantes podem ser executadas automaticamente, por meio de ferramentas para um ou mais aplicativos, resultando em um melhor gerenciamento e alocação otimizada dos recursos de armazenamento. A etapa 3 da implementação é automatizar mais os aplicativos ou a classificação de dados e atividades de gerenciamento de políticas para atingir uma conjunto maior de aplicativos corporativos.
P á g i n a | 60
Figura 4 - Implementação de ILM
Vantagens do ILM Implementar uma estratégia de ILM apresenta as seguintes vantagens que abordam diretamente os desafios do gerenciamento de informações: − − − − −
Utilização avançada pelo uso de plataformas de armazenamento hierárquico e maior visibilidade de todas as informações da empresa. Gerenciamento simplificado pela integração de etapas do processo e interfaces com ferramentas individuais e pelo aumento na automação. Maior variedade de opções para cópias de segurança e recuperação com o objetivo de equilibrar a necessidade de continuidade do negócio. Compatibilidade na manutenção, sabendo-se quais dados precisam ser protegidos por qual período de tempo. Menor custo total de propriedade (TCO, Total Cost of Ownership) alinhando os custos de infraestrutura e gerenciamento com o valor da informação. Como conseqüência, não há desperdício de recursos ou complexidade no gerenciamento de dados de baixo valor com o custo de dados de alto valor.
10.4 Software Livre para backup pessoal e corporativo Backup é a cópia de dados de um dispositivo de armazenamento a outro para que possam ser restaurados em caso da perda dos dados originais, o que pode envolver apagamentos acidentais ou corrupção de dados. Segue abaixo os dois principais softwares livres para backup pessoal e corporativo. 10.4.1 Sistema de Backup Bacula Bacula é uma excelente ferramenta livre (licença GPL) de backup em rede. Roda em estrutura cliente/servidor, possui estrutura modular independente( todos os componentes ou módulos, podem sem instalados em locais separados, inclusive em S.O.s diferentes), possui suporte a maioria dos dispositivos storages do mercado, possui baixo requisito de hardware, 100% compatível com esquema GFS, dentre outras vantagens tornando-o uma poderosa e robusta ferramenta para backup em rede.
P á g i n a | 61 Principais Características: - Estrutura cliente/servidor (permitindo backup centralizado em uma máquina, por exemplo) - Estrutura modula independente (director, client, database, administration console). - GPL - economia de custos com licenças, conhecimento e possibilidade de customizção da ferramenta. - Inúmeros canais de suportes pela comunidade (mailing lists, foruns, IRC channel, etc.) - Farta documentação disponível na Internet. - Portabilidade (módulos para diferentes sistemas operacionais – Windows, Linux, MAC, etc. - são compatíveis). - Infinidade de recursos para a customização de backups. - Funcionalidade que permite a execução de scripts (ou executáveis) antes/depois do início de jobs (backup/restore), tanto no cliente quanto servidor Bacula. - Existência de ferramenta de operação via linha de comando ou GUI (inclusive, com diferentes interfaces web desenvolvidas pela comunidades. Destaque: bacula-web – ferramenta de visibilidade gerencial, com gráficos, etc) - Suporte a maioria dos dispositivos de storage do mercado (inclusive mídias ópticas). - Funcionalidade customizável para o envio de mensagens de log dos trabalhos de backup/restore ou ainda instruções para o operador de backup (diferentes perfis). - 100% compatível com o esquema GFS. - Única ferramenta de backup multi-banco-de-dados. - Possuí uma versão corporativa que conta com diversos plugins exclusivos. 10.4.2 Sistema de Backup Amanda O Amanda (Advanced Maryland Automatic Network Disk Archiver) é um sistema de backup gratuito que permite ao administrador de sistemas configurar implantar um servidor de backup centralizado, podendo utilizar o mesmo para realizar o backup dos demais hosts da rede (FreeBSD,Linux,AIX,Solaris,Win95,Win98,NT 4.0,etc). Uma das vantagens do Amanda é que as midias são gravadas utilizando-se o gnutar/ufsdump permitindo a recuperação dos dados mesmo sem a utilização do Amanda. Principais características - É Free; - Roda em uma variedade de Unix/Linux; - Backup em rede. - Gerenciamento próprio dos dados. - Pode gravar dados de Windows File Systems utilizando o samba. 11. ADMINISTRAÇÃO, MONITORAMENTO E CONTROLE 11.1 Ferramentas automatizadas de gestão de infra-estrutura São ferramentas de gerenciamento de Ativos de Redes e de toda a Infraestrutura de TI da empresa. Além disso, exercem a função de monitoração dos mesmos e auxiliam na resolução de alguns problemas. Só para citar alguns exemplos: - HP Openview: é um ambiente de gerenciamento de sistemas da Hewlett-Packard Company, constituído por um conjunto de softwares que proporcionam o gerenciamento integrado de redes e soluções de gerenciamento de sistemas em ambientes de computação distribuída. Alguns dos principais módulos do HP Open View são: Kit do Desenvolvedor e Plataforma SNMP; Agente TCP/IP; Agente SNMP Extensível; Gerenciamento Distribuído; Gerência de Nodos da Rede; Gerência de Recursos/UNIX e Sun. - BMC Patrol: é uma ferramenta de monitoração e gerenciamento pró-ativos de aplicações, bancos de dados relacionais, servidores e redes.
P á g i n a | 62 - Microsoft Systems Center: é uma plataforma de gerenciamento abrangente que a ajuda a gerenciar data center, dispositivos clientes e ambientes de TI de nuvem híbrida de forma fácil e eficiente. - IBM Tivoli: uma ferramenta automatizada de gestão de Infraestrutura de rede, tal como o IBM Tivoli, possibilita a redução de tempo de diagnóstico de problemas com a rede e de implementação de soluções para esses problemas. - WBEM: oferece suporte para a gerência unificada de todos os sistemas e redes de uma organização. Ela é compatível com os protocolos de gerência SNMP, DMI e CMIP. 11.2 Administração de aplicação para monitoramento de servidores e serviços São ferramentas utilizadas para monitorar um servidor ou serviço ativo na rede. Testam portas, serviços ativos, quanto tempo um determinado serviço está em funcionamento, entre outros. Conheça abaixo algumas ferramentas gratuitas que podem ajudar você a monitorar seu servidor,cluster ou rede. Monit: não apenas monitora seu servidor como também tenta solucionar problemas executando ações prédefinidas para certas situações. Por exemplo, se seu banco de dados travar, o Monit pode reiniciar o serviço automaticamente se esta for a ação que você deseja executar (e geralmente é). Além disso se você tiver mais de um servidor para monitorar, você pode usar o M/Monit, uma versão do Monit com recursos para monitorar múltioplos servidores. 2. Ganglia: quando você tem um cluster com várias máquinas, é difícil saber qual o estado do cluster como um todo. E é aí que entra o Ganglia, já que com ele você tem uma visão geral de todo o cluster. 3. Munin: monitora e exibe um gráfico da performance do sistema. Ele pode produzir gráficos de performance diários, semanais, mensais, anuais e relatórios com diversas informações importantes. Ele pode monitorar recursos como memória, espaço em disco, uso de CPU e aplicações para servidores como MySQL, Apache e Squid. Um destaque do Munin é que com apenas algumas linhas de código você pode criar um plugin para o monitoramento de praticamente qualquer coisa. 4. Cacti: é simular ao Munin em vários aspectos, mas o que o torna diferente é que ele permite o redimensionamento dos gráficos e a visualização de dados em um intervalo específico (de 2 em 2 horas, por exemplo). 5. Nagios: pode ser um pouco complicado para instalar e usar, mas seu grande número de recursos supera muitas outras ferramentas voltadas para administradores de TI. O programa suporta o monitoramento de múltiplos hosts e pode enviar alertas via e-mail, pager ou SMS. 6. Zabbix: é uma ferramenta de monitoramento repleta de recursos. Ele suporta visualizações personalizadas, zoom e mapeamento. Além disso ele também pode enviar alertas por e-mail, SMS, mensagem instantânea e também pode emitir alertas sonoros, o que é bom para quando você não estiver perto da máquina monitorada. 7. ObserverNMS: é voltado para o Linux, BSD e redes Cisco. O programa suporta a descoberta automática da infraestrutura de rede, oferece gráficos detalhados e pode ser usado em conjunto com o Nagios. Ele também se integra bem ao Collectd caso você queira uma interface mais robusta. 8. Zenoss: é uma versão com código aberto da ferramenta comercial para monitoramento de servidores chamada Zenoss Enterprise. Ele foi criado inteiramente em Python, suporta o formato de plugins do Nagios e sua interface é simples e fácil de usar. 9. Collectd: é similar ao Munin e ao Cacti. A diferença é que o Collectd foi desenvolvido com foco na portabilidade e performance. O programa pode coletar dados a cada 10 segundos sem interferir nos processos do seu servidor. Você pode criar extensões para ele em C, Perl ou Java. 10. Argus: o foco é o monitoramento dos serviços de rede e suporta os protocolos IPv4 e IPv6. Seu sistema de alertas é bem interessante: se ele enviar um alerta sobre um problema para você e este problema não for resolvido em um intervalo pré-definido, um outro alerta será enviado para outra pessoa. 1.
P á g i n a | 63 11.3 Configuração, administração e gerenciamento de serviços de rede Windows e Linux: serviço de compartilhamento de arquivos SAMBA, LDAP, CIFS e NFS. 11.3.1 Serviço de compartilhamento de arquivos SAMBA Redes Microsoft Windows A necessidade de compartilhar arquivos e impressoras motivou o aparecimento das primeiras redes de computadores (ainda na década de 70) e continua sendo uma necessidade comum. Mesmo para fazer um simples backup armazenado remotamente, é necessário configurar algum tipo de compartilhamento de arquivos. Existem diversas formas de disponibilizar arquivos através da rede, incluindo o NFS, o FTP, o SFTP e até mesmo um servidor web, que pode ser usado para compartilhar a pasta contendo os arquivos e aceitar uploads através de um script em PHP, por exemplo. Entretanto, quando falamos em redes locais, o protocolo mais usado é o CIFS (Common Internet File System), que é o protocolo usado para compartilhar arquivos e impressoras em redes Microsoft. O nome "CIFS" pode soar estranho à primeira vista, mas ele nada mais é do que a mais nova versão do protocolo SMB, usada a partir do Windows 2000. A história do SMB e do CIFS começa em 1984, quando a IBM criou o protocolo NetBIOS (Network Basic Input Output), um protocolo para troca de mensagens entre micros PC ligados em rede, originalmente desenvolvido para servir como uma extensão do BIOS da placa-mãe, oferecendo recursos de rede. Em 1985, o protocolo foi expandido, dando origem ao protocolo NetBEUI, que foi durante muito tempo o principal protocolo usado em redes locais, antes da popularização do TCP/IP. O SMB (Server Message Block) veio mais tarde, junto com o Windows 3.11. O protocolo SMB governa o compartilhamento de arquivos e impressoras em redes Microsoft, incluindo a navegação na rede, o estabelecimento de conexões e a transferência de dados. Ele utiliza o NetBIOS para a troca de mensagens entre os hosts e inclui uma versão atualizada do protocolo, que roda sobre o TCP/IP. Acessando as propriedades do protocolo TCP/IP dentro das configurações de rede de uma máquina com o Windows XP, você pode ver que ele (NetBIOS) continua presente, com o objetivo de manter compatibilidade com as versões anteriores do Windows. O problema com o NetBIOS é que ele depende do uso intensivo de pacotes de broadcast e de pacotes UDP. O CIFS é a evolução natural do SMB, que inclui diversos novos recursos, abandona o uso do NetBIOS e passa a utilizar uma única porta TCP (445) no lugar das três portas (137 UDP, 138 UDP e 139 TCP) utilizadas pelo SMB. O Samba é justamente uma implementação das mesmas funções para sistemas Unix, incluindo não apenas o Linux, mas também o BSD, Solaris, OS X e outros primos. Ele começou como uma implementação do protocolo SMB e foi então sucessivamente expandido e atualizado, de forma a incorporar suporte ao CIFS e a se manter atualizado em relação aos recursos oferecidos pelas versões mais recentes do Windows. Samba Para permitir a integração de redes Microsoft a ambientes UNIX vem sendo desenvolvido desde 1991 um sistema chamado Samba, que permite o acesso de clientes Windows a recursos (impressoras, arquivos, etc) em servidores UNIX e vice-versa. O sistema Samba é open-source e de uso gratuito. Ele executa em uma grande variedade de sistemas UNIX e até mesmo em mainframes. O uso mais frequente do Samba é substituir servidores de arquivos e/ou impressão Microsoft por servidores UNIX, com os seguintes objetivos: • • • •
Redução de custos, ao usar um ambiente UNIX livre (Linux, FreeBSD, etc); Maior confiabilidade (robustez contra falhas e problemas de segurança); Melhor desempenho em cargas elevadas; Integração de redes Windows, Unix e Mac OSX usando um só protocolo.
O sistema Samba é composto por cliente e servidor. Um servidor Samba oferece os seguintes serviços, de forma transparente:
P á g i n a | 64 • • • • • •
compartilhar diretório(s) do servidor; compartilhar impressora(s) instalada(s) no servidor ou em outro local da rede; auxiliar a navegação de rede dos clientes (network browsing); autenticar clientes solicitando entrada em um domínio Windows; prover ou auxiliar o serviço de resolução de nomes WINS; Emular outros serviços Windows, como sincronização de tempo, etc.
Por outro lado, o cliente Samba ”smbclient” permite a uma máquina UNIX acessar serviços disponíveis em servidores Microsoft (ou servidores Samba). Configuração do Samba O serviço Samba é implementado basicamente por dois processos (daemons): smbd: manipula compartilhamentos de arquivos e impressoras e provê autenticação e autorização para clientes SMB. nmbd: suporta os serviços de nomes NETBIOS e implementa o servidor WINS. Também auxilia os clientes na navegação no ambiente de rede. Esses dois daemons podem operar em modo autônomo, lançados pelo script de inicialização do Samba, ou através do Inetd - Internet Daemon (inetd/xinetd). Os arquivos de configuração do Samba normalmente ficam no diretório /etc/samba/. O arquivo smb.conf contém os principais parâmetros de configuração de um servidor Samba, que estão detalhadas na página de manual smb.conf. Esse arquivo possui uma seção com definições gerais, comuns a todos os serviços, e definições específicas para cada compartilhamento (exemplo, página de manual). O formato desse arquivo é o seguinte: # este é um comentário ; este também é um comentário [global] tag_name = tag_value tag_name = tag_value ... [share_1] tag_name = tag_value tag_name = tag_value ... [share_2] tag_name = tag_value tag_name = tag_value ... ...
Os principais parâmetros de configuração global do servidor são os seguintes:
Parâmetro e exemplo de valor
Significado
workgroup = RSS04
Nome de domínio ou de grupo de trabalho
server string = “Meu servidor”
Descrição do servidor
netbios name = VIRTSERV
Nome NetBios deste servidor
interfaces = 20.0/16
Indica as interfaces de rede que o servidor deve atender
P á g i n a | 65 hosts allow = 20.0. 10.26. 127.
Permite limitar o acesso somente a IPs autorizados
printcap name = /etc/printcap
carrega as informações de impressoras disponíveis no servidor e as compartilha
load printers = yes
automaticamente
printing = cups
Indica qual o sub-sistema de impressão UNIX a ser usado
guest account = pcguest
Habilita uma conta guest (usa a conta nobody por default)
log file =
Localização do arquivo de log
/var/log/samba/%m.log max log size = 0
Limite do arquivo de log em Kb (0 remove o limite)
security = share
Modo de segurança a ser usado
local master = yes
Controle de browsing (manutenção das informações do “ambiente de rede”)
domain master = yes
Indica que este servidor será o mestre de browsing deste domínio
domain logons = yes
Para o servidor ser o servidor de domínio da rede local
logon script = script.bat
Script a executar pelos clientes ao entrar no domínio
wins support = yes
Habilita o Samba como servidor WINS
wins server = w.x.y.z
Habilita o Samba como cliente WINS
Em cada compartilhamento podem ser definidos vários parâmetros, dos quais os mais relevantes são:
Parâmetro e exemplo de valor
Significado
comment = “Diretório comum”
Descrição do compartilhamento
valid users =
Usuários (ou grupos) que podem acessar este recurso
valid users = joao, jose, maria valid users = marcos, @prof writeable = yes
Permite-se a escrita ou somente a leitura?
browseable = yes
Aparece nas listas do “Ambiente de Rede”
path = /home/comum
Caminho do recurso dentro do servidor
force user = nobody
Para forçar o acesso como sendo de um dado usuário local
force group = nobody
Para forçar o acesso como sendo de um dado grupo local
guest ok = yes
permite o acesso da conta guest
create mode = 0700
Permissões para criação de arquivos no UNIX
printable = yes
Este recurso é uma impressora
hide files = /.*/
Arquivos a ocultar (expressão regular)
O arquivo de configuração permite a utilização de variáveis, que são substituidas por seus valores quando ocorre a conexão de cada cliente. As principais variáveis utilizadas são:
P á g i n a | 66 Variável
Significado
%U
nome de login do usuário
%G
grupo do usuário
%h
nome Internet (FQDN) do servidor Samba
%L
nome NETBIOS do servidor Samba
%M
nome Internet (FQDN) da máquina cliente
%m
nome NETBIOS da máquina cliente
%I
endereço IP da máquina cliente
%d
PID do processo servidor
%T
data e hora atual
%D
nome do domínio ou grupo de trabalho do usuário corrente
%S
nome do serviço corrente
%P
diretório do serviço corrente
Eis um exemplo mínimo de arquivo de configuração, com apenas um compartilhamento publico: [global] workgroup = MEUGRUPO netbios name = FILESERV security = share log file = /var/log/samba/%m.log [comum] comment = Area publica de arquivos path = /home/comum read only = no guest ok = yes
Outro exemplo, no qual cada usuário tem acesso a seu diretório pessoal (homes), a um diretório público (comum) e às impressoras instaladas no sistema: # Global parameters [global] workgroup = MEUGRUPO netbios name = FILESERV printcap name = cups printing = cups # Esta entrada compartilha automaticamente o diretório HOME de # cada usuário registrado no Samba. # (o nome do compartilhamento recebe o nome de login do usuário) [homes] comment = Home Directories valid users = %S read only = No browseable = No [comum]
P á g i n a | 67 comment = Public data path = /home/comum force user = nobody force group = nobody guest ok = Yes [printers] comment = All Printers path = /var/spool/samba printer admin = root create mask = 0600 guest ok = Yes printable = Yes use client driver = Yes browseable = No
Outras configurações básicas de exemplo, além de informações mais detalhadas sobre a instalação e uso do Samba, podem ser obtidas no documento Samba HowTo. Alguns utilitários são fornecidos junto com o Samba, para facilitar seu uso: • • •
smbpasswd: para editar entradas na base de usuários do Samba (arquivo smbusers) testparm: para testar o arquivo de configuração smb.conf. smbclient: para acessar serviços SMB em servidores remotos Windows ou Samba.
Modos de segurança O parâmetro de configuração global ”security” permite definir o modo de operação do servidor Samba em relação à autenticação de usuários. Os valores possíveis e seus significados são: •
•
•
• •
security = share: O cliente não precisa se logar no servidor para conhecer a lista de compartilhamentos (shares). A autenticação usuário/senha é efetuada quando o cliente tenta acessar um dado compartilhamento. Como clientes Windows mais antigos não enviam sempre um nome de usuário para acessar um compartilhamento, o Samba deve tentar “adivinhar” o usuário a utilizar para autenticação. security = user: Modo default de operação. Neste modo, cada cliente deve “se logar” no servidor com nome/senha válidos antes de poder acessar os compartilhamentos. Este modo permite o uso de senhas cifradas. A lista de compartilhamentos só é visível aos clientes autenticados. security = domain: Neste modo o Samba irá validar usuários/senhas em um controlador de domínio externo, primário ou backup (o servidor Samba deve ter sido previamente registrado no domínio). Do ponto de vista do cliente, este modo é equivalente ao anterior. security = server: O Samba irá validar as senhas em outro servidor SMB; em caso de falha, ele reverte ao modo security = user. security = ads: Neste modo, o Samba irá se comportar como um membro de um domínio ADS (Active Directory Service). Para funcionar, o suporte ao serviço Kerberos deve estar instalado na máquina onde o Samba executa.
Deve-se observar que os usuários apresentados pelos clientes Samba para acesso ao servidor devem ser usuários válidos do sistema UNIX onde está o servidor. Além disso, esses usuários (e suas senhas) devem ser registrados junto ao Samba através do utilitário ”smbpasswd”: server:~> smbpasswd -a teodoro New SMB password: ***** Retype new SMB password: ******
P á g i n a | 68 Swat O Samba possui uma interface Web para administração, disponibilizada através de um software externo chamado SWAT – Samba Web Administration Tool. O Swat permite configurar a maioria dos parâmetros de operação de um servidor Samba através de uma interface Web, usando um navegador padrão:
Como o Swat implementa seu próprio servidor Web interno, não é necessário instalar o servidor Apache. Ele é normalmente ativado através do Internet daemon, ouvindo na porta TCP 901. Para gerenciar o servidor Samba através do Swat é necessário: 1. 2. 3. 4.
Instalar os softwares xinetd e swat Configurar o lançamento do Swat (editar o arquivo /etc/xinetd.d/swat) Reiniciar o Internet daemon (service xinetd restart) Apontar um navegador para http://servidor-samba.domain:901
Importante: para usar o SWAT com segurança através da Internet, deve-se empregar SSL (por exemplo, usando um tunel SSH ou o software stunnel). 11.3.2 Serviço de compartilhamento CIFS Sempre precisamos realizar backup dos nossos servidores Linux em máquinas que rodam sistema operacional Windows. Existe "N" motivos para isso acontecer, ou não temos verbas para adquirir uma unidade de fita ou normalmente temos algum software para Windows que realiza o backup. Estarei apresentando aqui uma maneira de acessar os compartilhamentos Windows em um servidor Linux. Esse tutorial ajudará muitos a acessarem pasta com diversos conteúdos, como vídeos, MP3, fotos entre outros. Demonstrarei montagens de compartilhamento Windows por meio do cliente CIFS de sistemas de arquivos virtual. 1° passo é criar um ponto de montagem local. Usualmente utilizamos o /mnt, mas fica a critério de suas necessidades. # mkdir /mnt/backup/
No arquivo /etc/fstab podemos adicionar a seguinte linha: //192.168.0.250/backup /mnt/backup cifs username=administrator,password=S3nH@,user,dir_mode=0777,file_mode=0777
0
0
P á g i n a | 69
• • •
• •
//192.168.0.250/backup - É o IP e a pasta que está compartilhada na máquina Windows; /mnt/backup - Ponto de montagem local no servidor Linux; username=administrator,password=S3nH@ - Especifica o nome de usuário e senha para se conectar ao servidor. Esse usuário não precisa ser exclusivamente o administrador do Windows. Pode se criar um usuário que tenha acesso a pasta; dir_mode - Se o servidor não suporta extensões CIFS Unix, sobrepõe o modo padrão para esse diretório. No caso 777, que dá permissão de leitura, escrita e gravação para todos; file_mode - Se o servidor não suporta a extensão CIFS, irá sobrescrever o arquivo para esse modo, no caso 777.
Com a alteração feita no arquivo fstab, o compartilhamento será montado automaticamente no boot. Se for o caso de não querer montar automaticamente, pode-se usar a opção "noauto" na linha que inserimos no fstab. Daí para montar o seu mapeamento basta usar o comando abaixo: # mount /mnt/backup
Podemos observar que existe uma pequena falha de segurança que é deixar exposta a senha do administrador ou do usuário que tem permissão na pasta. Utilizaremos então a opção "credentials": //192.168.0.250/backup /mnt/backup cifs credentials=/root/pwd.txt,user,dir_mode=0777,file_mode=0777
0
0
Temos que criar o arquivo pwd.txt dentro de /root, pode ser em qualquer outra pasta. O arquivo contém um nome de usuário e senha no seguinte formato: username=administrador password= S3nH@
Outra recomendação é dar permissão 600 ao arquivo. 11.3.3 Serviço de compartilhamento NFS O que é NFS Umas das maiores facilidades disponibilizadas pelos serviços de rede é o compartilhamento de arquivos e este é realizado através de sistemas de arquivos em rede. No Linux, o sistema de arquivos em rede padrão é o NFS (Network File System), que foi desenvolvido pela Sun. Com um sistema de arquivos em rede, qualquer operação com arquivos executada por um programa em uma máquina, é enviada pela rede para outro computador. Esse procedimento faz o programa “pensar” que todos os arquivos encontramse no mesmo equipamento onde ele está sendo executado. Isso torna o compartilhamento de informações muito simples, já que não requer nenhuma modificação nos programas utilizados. Configurando o servidor Primeiro instale alguns pacotes com os comandos abaixo: # # # #
apt-get apt-get apt-get apt-get
install install install install
portmap nfs-common nfs-kernel-server nfs-user-server
P á g i n a | 70 Agora edite o arquivo /etc/exports, nele deverão ser colocados o diretório do servidor que vai ser compartilhado com a máquina cliente, o número do IP da máquina que estará acessando o servidor e por fim as opções de segurança. Use seu editor de textos preferido e vamos ao exemplo: # nano /etc/exports #Conteúdo do Arquivo /pasta_compartilhada 192.168.254.2(rw)
Traduzindo: • /pasta_compartilhada: é o diretório do servidor que vai ser compartilhado com a máquina cliente. • 192.168.254.2: é o IP da máquina cliente. • (rw): é a permissão dada à maquina cliente, no caso read and write. Agora salve o arquivo e saia. Em seguida digite: # exportfs
Com esse comando, seu arquivo de configuração /etc/exports será lido e o kernel atualizado com as mudanças realizadas. Reinicie os servidor: # /etc/init.d/nfs-kernel-server restart
Configurando o Cliente Crie um diretório como no exemplo a seguir, no caso utilizando um diretório com o nome de público (você pode nomear com um nome de sua preferência): # mkdir /arquivos_da_rede
Neste caso foi criado o diretório /publico. Agora vamos montar o diretório a ser compartilhado: # mount -t nfs 192.168.254.1:/pasta_compartilhada
/arquivos_da_rede
Traduzindo: • /pasta_compartilhada: é o diretório do servidor que vai ser compartilhado com a máquina cliente. • 192.168.254.1: é o IP da máquina servidora Pronto, o diretório já está montado, agora é só acessá-lo: $ cd /arquivos $ ls
O servidor NFS está funcionando e pronto para ser usado. 11.4 Autenticação, autorização e auditoria 11.4.1 Protocolos AAA Em segurança da informação, o termo protocolos AAA (Authentication, Authorization and Accounting) é uma referência aos protocolos relacionados com os procedimentos de autenticação, autorização e auditoria. A autenticação verifica a identidade digital do usuário de um sistema, a autorização garante que um usuário autenticado somente tenha acesso aos recursos autorizados e, por fim, a auditoria refere-se a coleta de informações sobre o uso dos recursos de um sistema pelos seus usuários.
P á g i n a | 71 Autenticação A autenticação é uma referência ao procedimento que confirma a validade do usuário que realiza a requisição de um serviço. Este procedimento é baseado na apresentação de uma identidade junto com uma ou mais credenciais. As senhas e os certificados digitais são exemplos de credenciais. Autorização A autorização é a concessão de uso para determinados tipos de serviço, dada a um usuário previamente autenticado, com base na sua identidade, nos serviços que requisita e no estado atual do sistema. A autorização pode ser baseada em restrições, que são definidas por um horário de permissão de acesso ou localização física do usuário, por exemplo. A autorização determina a natureza do serviço cujo acesso é permitido a um usuário. Como exemplos de tipos de serviços temos: filtragem de endereço IP, atribuição de endereço, atribuição de rota, serviços diferenciados por QoS, controle de banda/gerenciamento de tráfego, tunelamento compulsório para determinado endpoint e criptografia. Auditoria O procedimento de auditoria é uma referência à coleta da informação relacionada à utilização de recursos de rede pelos usuários. Esta informação pode ser utilizada para gerenciamento, planejamento, cobrança e etc. A auditoria em tempo real ocorre quando as informações relativas aos usuários são trafegadas no momento do consumo dos recursos. Na auditoria em batch as informações são gravadas e enviadas posteriormente. As informações que são tipicamente relacionadas com este processo são a identidade do usuário, a natureza do serviço entregue, o momento em que o serviço se inicia e o momento do seu término. 11.4.2 Controles de Acesso baseado em Papeis Um controle baseado em papéis (RBAC) é uma abordagem para restringir o acesso a usuários autorizados. Controles de acesso baseados em papéis (roles) definem os direitos e permissões baseados no papel que determinado usuário desempenha na organização. Esta estratégia simplifica o gerenciamento das permissões dadas aos usuários. Permissões de acesso e direitos sobre objetos são dados para qualquer grupo ou, em adição, indivíduos. Os indivíduos podem pertencer a um ou mais grupos. Os indivíduos podem adquirir permissões cumulativas ou desqualificado para qualquer permissão que não faz parte de todo grupo a qual ele pertence. O controle de acesso – mecanismo responsável pela liberação ou não de recursos, operações ou informações a um usuário autenticado – é parte integrante da grande maioria dos sistemas computacionais. Ele é responsável por cruzar as informações do usuário, da operação desejada (por exemplo, “incluir”, “visualizar”, “alterar” ou “excluir”) e do recurso computacional em questão e decidir se o acesso é permitido ou não. Com origem nos sistemas militares, os estudos sobre modelos, métodos e técnicas de implementação de controle de acesso vêm, desde os anos 70, se aprimorando e estendendo-se aos sistemas civis e comerciais. Muitos modelos – dentre os quais destacam-se o DAC (do inglês Discretionary Access Control), o MAC (do inglês Mandatory Access Control) e o RBAC (do inglês Role-Based Access Control) – foram formulados e estão hoje implementados em diversos dos sistemas que conhecemos e utilizamos. O modelo RBAC tem seu funcionamento baseado na definição de “papéis” (ou perfis), que representam níveis funcionais hierárquicos dentro de uma organização, e “recursos” que são objetos ou componentes do sistema. Cada usuário deverá estar associado a um ou mais papéis (relações Usuário-Papel) e estes, por sua vez, estarão relacionados às “autorizações” (relações Permissão-Papel), que definem o tipo de acesso (leitura, execução, criação, modificação, exclusão etc.) permitido a cada recurso cadastrado.
P á g i n a | 72 Em situações reais, na maioria das vezes, as políticas de controle de acesso são mais complexas do que simplesmente definir papéis e a eles associar permissões. Há casos em que há restrições de domínio como, por exemplo, em uma agência bancária: há vários gerentes, todos no mesmo nível hierárquico; no entanto, cada um deles é responsável por um conjunto de clientes e não deve ter acesso aos dados das contas-correntes de outros clientes (aqueles que não estão em seu rol de administração). 11.4.3 Autenticação Autenticação (do grego: αυθεντικός = real ou genuíno, de 'authentes' = autor) é o ato de estabelecer ou confirmar algo (ou alguém) como autêntico, isto é, que reivindica a autoria ou a veracidade de alguma coisa. A autenticação também remete à confirmação da procedência de um objeto ou pessoa, neste caso, frequentemente relacionada com a verificação da sua identidade. Gestão da Informação É de grande relevância no processo de gestão da informação a proteção dos dados e dos recursos envolvidos nele, de modo a garantir a acesso, alteração e liberação apenas por pessoas devidamente autorizadas. Segurança da informação A segurança da informação está fortemente relacionada a administração moderna representando um bem que por sua vez precisa ser protegido, visando minimizar riscos no tocante ao extravio de informação, apoiando os retornos envolvidos de modo a garantir a continuidade dos negócios. Em segurança da informação, a autenticação é um processo que busca verificar a identidade digital do usuário de um sistema, normalmente, no momento em que ele requisita um log in (acesso) em um programa ou computador. A autenticação normalmente depende de um ou mais "fatores de autenticação". O termo "autorização" é muitas vezes confundido com o termo autenticação, mas apesar de serem relacionados, o significado de ambos é muito diferente. A autenticação é o processo que verifica a identidade de uma pessoa, por sua vez, a autorização verifica se esta pessoa possui permissão para executar determinadas operações. Por este motivo, a autenticação sempre precede a autorização. Controle de acesso O controle de acesso é um exemplo comum de adoção de mecanismos de autenticação. Um sistema computacional, cujo acesso é permitido apenas a usuários autorizados, deve detectar e excluir os usuários não autorizados. O acesso é controlado por um procedimento que estabelece a identidade do usuário com algum grau de confiança (autenticação), e só então concede determinados privilégios (autorização) de acordo com esta identidade. Alguns exemplos de controle de acesso são encontrados em sistemas que permitem: • • •
saque de dinheiro de um caixa eletrônico; comunicação com um computador através da Internet; navegação em um sistema de Internet banking.
Ambientes Afetados Os Ambientes Afetados São todos os frameworks de aplicações web são vulneráveis a furos de autenticação e de gerência de sessão. Vulnerabilidade
P á g i n a | 73 Os Furos da Vulnerabilidade no mecanismo principal de autenticação não são incomuns, mas falhas são geralmente introduzidas a partir de funções menos importantes de autenticação como logout, gerência de senhas, timeout, recordação de dados de logon, pergunta secreta e atualização de conta. Verificação de Segurança A Verificação de Segurança são abordagens automatizadas ferramentas de localização de vulnerabilidade têm dificuldade em esquemas de autenticação e de sessão personalizados. As ferramentas de análise estáticas provavelmente não detectarão problemas em códigos personalizados para autenticação e gerência de sessão. Abordagens Manuais Essas Abordagens Manuais é pra ser feito com revisão de código e testes, especialmente combinados, são muito efetivos para a verificação de autenticação, gerência de sessão e funções secundárias estão todas implementadas corretamente. Implementação dos Mecanismos 1. Autenticação baseada no conhecimento – Login e senha • • • • • • • •
Remove caracteres indevidos que são utilizados em ataques como os de SQL Injection; Verificar se a variável login está preenchida; Validar formulários, de acordo com as regras definidas; Não permitir que as variáveis login e senha estejam em branco; Senha seja criptografada; Verifica se o usuário existe no banco de dados e se a senha confere. Se a senha estiver correta, a aplicação lista os privilégios deste e salva as informações em variáveis de sessão, Libera o acesso e redirecionando para a página inicial do sistema.
2. Autenticação baseada na propriedade – Login, senha e token • • • • •
Utiliza um token, além do convencional login e senha; Durante o cadastro de cada usuário, são cadastrados no banco de dados os tokens; Estes tokens são gerados de forma randômica por meio da função rand() do PHP; Na tela de autenticação é solicitado ao usuário seu login, sua senha e uma chave; Após a verificação correta, o acesso é liberado.
3. Autenticação baseada na característica – Digital • • • • • •
Cada usuário tem em seu cadastro no banco de dados uma imagem de sua digital, ou várias; Além disso, é necessário um hardware que faça a leitura da digital; Um aparelho que possui um software interno recebe as imagens das digitais cadastradas no banco de dados e faz a comparação; Com a digital em leitura no momento, retornando o usuário; Caso haja confirmação da digital, o seu acesso ao sistema é liberado. Cada mecanismo possui suas vantagens e desvantagem, devendo ser os mesmos aplicados de modo a atender a necessidade do negócio visando garantir a autenticidade das entidades envolvidas. O que vai definir qual dos métodos será o adotado é o valor da informação a ser protegida para as entidades envolvidas, cujo o risco deverá ser aceito em níveis aceitáveis.
P á g i n a | 74 Proteção A Proteção da Autenticação depende da comunicação segura de armazenamento de credenciais. Primeiramente, assegure-se de que o SSL é a única opção para todas as partes autenticadas do aplicativo e que todas as credenciais estão guardadas de uma forma encriptada ou em Hash. Fatores de autenticação Os fatores de autenticação para humanos são normalmente classificados em três casos: •
• •
aquilo que o usuário é (impressão digital, padrão retinal, sequência de DNA, padrão de voz, reconhecimento de assinatura, sinais elétricos unicamente identificáveis produzidos por um corpo vivo, ou qualquer outro meio biométrico). aquilo que o usuário tem (cartão de identificação, security token, software token ou telefone celular) aquilo que o usuário conhece (senha, frase de segurança, PIN)
Frequentemente é utilizada uma combinação de dois ou mais métodos. A Secretaria da Receita Federal, por exemplo, pode requisitar um certificado digital (o que se possui) além da senha (o que se sabe) para permitir o acesso a uma declaração de imposto de renda, neste caso o termo "autenticação de dois fatores" é utilizado. 11.5 Single sign-on Single Sign-On é um conceito bastante utilizado em grandes organizações, permitindo aos utilizadores fazerem login apenas uma vez e terem esta autenticação propagada para todos os serviços a que estão autorizados a aceder. Mas o SSO (Single Sign On) não se restringe somente a isso. Na verdade vai além do simples login, com usuário e senha. É o aproveitamento do acesso identificado de usuários. Aqui podemos mencionar a tríade da segurança neste quesito que é: 1. O que você é (biometria por íris, face, dedos, etc…) 2. O que você tem (tokens, como cartões de identificação) 3. O que você sabe (senhas, contas de acesso, etc…) Entra em cena também a chamada “tríade de ouro”: 1. Autenticação (identificação que o usuário existe) 2. Autorização (permissão de determinados tipos de acesso) 3. Auditoria (acompanhamento dos acessos). O SSO é parte integrante de uma disciplina da segurança da informação chamada Gerenciamento de Acesso e Identidades, na qual o ciclo de vida do usuário passa pelo aprovisionamento, reconciliação, respeitando a tríade de ouro mencionada acima, em que toda uma análise técnica deve ser realizada para formação da arquitetura de solução adequada ao negócio, com toda uma definição dos requisitos funcionais, operacionais e de negócio, até mesmo para facilitar uma melhor justificativa do ROI. E justificar questões qualitativas, geralmente, será menos difícil do que a quantitativa. Pois nem sempre o SSO poderá ser de fato, eficiente ao ponto de atender de maneira que realmente agregue valor ao ambiente em que o aplica. Utilizar – por exemplo – o SSO para flexibilizar o acesso do usuário/cliente dentro do portal de serviços da empresa, com o qual poderá aproveitar o mesmo login de acesso utilizado para emissão da sua fatura, assim como para consultar seu extrato de lançamentos futuros e ainda numa outra janela, frame, applet, conseguir efetuar uma compra de produtos, é uma forma em que o SSO efetivamente poderia contribuir otimizando as tarefas, facilitando a interação cliente-empresa. Mas sempre com cuidados com a segurança, forçando, por exemplo, a troca periódica com senha forte para seu acesso, assim como a expiração de sessão por tempo de inatividade.
P á g i n a | 75 Existem diferentes formas de aplicabilidade do SSO, seja por intermédio de recursos on-line – via Web – como no exemplo acima citado, ou via Out Of The Box – local/desktop. Em um ambiente empresarial típicamente heterogêneo, pode haver um número de aplicações decorrentes de uma infinidade de sistemas e máquinas de usuários que podem ter acesso a uma base de dados diária (ao qual deverá ser segura), para, por exemplo, criar um usuário individual para todas essas aplicações, o que de certa forma, toma tempo para cada sistema e sua atribuição de controle de acesso pode ser problemática e repetitiva. Além disso, um modelo distribuído significa uma lentidão no tempo de resposta, como para pedidos de helpdesk, com overheads desnecessários no atendimento dessas solicitações e assim uma ineficiência por parte dos usuários.
As diferenças entre um sistema de SSO padrão e de uma empresa/fornecedor para solução de SSO são principalmente nos requisitos de escalabilidade, disponibilidade e integrações com o legado. Por causa do impacto maior na base de usuários, as implementações na empresa poderão ter muitos grupos de diferentes perfis, cada qual com seus requisitos. Os grupos mais importantes seriam de: • Segurança • Contratos • Hardware de Sistema e suporte de software • Gestão • Financeiro Neste contexto, para implementações de uma solução de SSO, é extremamente importante a preocupação com o treinamento dos usuários, com o qual, sem dúvida, algumas rotinas comumentes empregadas serão alteradas ou completamente remodeladas. O que podemos concluir é: a implementação de uma solução Single Sign-on é um esforço intenso e que requer tempo e custos empregados para seu investimento para qualquer tipo de organização. Não somente os usuários devem ficar satisfeitos, mas, sobretudo, os muitos outros grupos envolvidos (normas de segurança, gerenciamento, atendimento ao cliente, suporte a aplicativos) Em uma última análise, podemos constatar que os chamados compromissos do SSO estão entre: • A segurança que os usuários irão aceitar; • O nível de segurança desejado; • O que pode de fato ser implementado tecnicamente; • A capacidade de implementação das equipes de apoio; • Tamanho do orçamento.
P á g i n a | 76 11.6 Captive Portal Captive portal é um programa de computador responsável por controlar e gerenciar o acesso a Internet em redes públicas, de forma "automatizada". Ao digitar o endereço de qualquer sítio no navegador o usuário é interceptado pelo sistema do captive portal e redirecionado para uma interface que solicita a autenticação. 12. TECNOLOGIAS E PROTOCOLOS DE REDES LOCAIS 12.1 Padrões Ethernet Embora as redes Wi-Fi também sejam redes Ethernet, o termo "Ethernet" é geralmente usado apenas em relação às redes cabeadas, enquanto as redes sem fio são mais popularmente chamadas de "redes wireless", "redes Wi-Fi", ou ainda "redes 802.11g" ou "redes 802.11n" (nesse caso indicando um padrão específico). Não seria errado dizer "minha rede wireless Ethernet", mas provavelmente a pessoa com quem estivesse falando iria achar estranho. Vou então adotar esta convenção no restante do livro, usando o termo "Ethernet" para as redes cabeadas e "Wi-Fi" quando quiser me referir às redes wireless 802.11 de uma forma geral. Como tudo na informática, as redes Ethernet passaram por uma série de evoluções desde a criação do padrão na década de 1970. Os três padrões mais importantes são o 10BASE-T, o 100BASE-TX e o 1000BASE-T, que correspondem aos padrões de 10, 100 e 1000 megabits para cabos de par trançado que usamos no dia-a-dia. Mas, além deles, existem diversos outros padrões Ethernet que é importante conhecer. Além dos padrões para cabos de par trançado, existem padrões para cabos de fibra óptica e até para cabos twinax. Padrões de 10 megabits Depois do padrão Ethernet original (de 2.94 megabits), surgiram os padrões 10BASE-5, 10BASE-2, 10BASE-T e 10BASE-F, todos padrões de 10 megabits, diferenciados pelo cabeamento usado. Como vimos na introdução, o 10BASE-5 e o 10BASE-2 são baseados em cabos coaxiais. O 10BASE-5 ganha tanto em alcance (500 metros, contra 185) quanto no número máximo de estações em cada segmento de rede (100 contra 30), mas perde no fator mais importante, que é o fator custo, de forma que, uma vez finalizado, o 10BASE-2 se tornou rapidamente o padrão mais popular. Em seguida temos o 10BASE-T, que é o primeiro padrão baseado no uso de cabos de par trançado (o "T" vem de twistedpair). Na época, os cabos cat 5 ainda eram caros, de forma que o padrão permitia o uso de cabos cat 3, que eram mais comuns, já que eram utilizados também em instalações telefônicas de aparelhos de PABX. O comprimento máximo do cabo é de 100 metros, ainda menos que no 10BASE-2, mas os sinais são retransmitidos pelo hub, de forma que é possível usar cabos de até 100 metros até o hub e mais 100 metros até o micro seguinte, totalizando 200 metros. É possível também estender o alcance da rede usando repetidores adicionais (o próprio hub atua como um repetidor, de forma que é possível simplesmente interligar vários hubs, usando cabos de até 100 metros), estendendo a rede por distâncias maiores. Existiu ainda o padrão 10BASE-F ("F" de fiber optic) que utilizava cabos de fibra óptica. Ele foi pouco popular devido ao custo do cabeamento, mas oferecia como vantagem um alcance de 2000 metros por segmento, que também podiam ser estendidos com a ajuda de repetidores. As placas de 10 megabits foram as únicas que foram produzidas em versão ISA, já que a taxa de transferência efetiva do barramento ISA (devido aos tempos de espera e ao overhead da sinalização) é de pouco mais de 5 MB/s, o que é lento demais para uma placa de 100 megabits, que precisa de um barramento capaz de transmitir a pelo menos 12.5 MB/s.
P á g i n a | 77 Lembre-se de que um byte tem 8 bits, logo 12.5 MB (megabytes, com o B maiúsculo) correspondem a 100 megabits (Mb, com o b minúsculo), 125 MB correspondem a 1000 megabits e assim por diante. Ao contrário das taxas de transferência de outros componentes, que são geralmente medidas em megabytes por segundo, as taxas de transferência das redes e das conexões web são quase sempre medidas em megabits, o que às vezes causa uma certa confusão. É muito comum ver usuários reclamando que não conseguem fazer downloads a mais do que cento e poucos kbytes no ADSL de 1 megabit ou que o ponto de acesso 802.11g transmite a no máximo 3 MB/s, quando na verdade as taxas estão corretas e o problema é apenas de interpretação. Fast Ethernet Em 1995 foi finalizado o padrão Fast Ethernet (802.3u), que multiplicou por 10 a velocidade de transmissão, atingindo 100 megabits. O Fast Ethernet é composto por três padrões distintos: O mais usado é o 100BASE-TX, que é o padrão para cabos de par trançado categoria 5, utilizado em mais de 80% das instalações atuais. No 100BASE-TX foi mantida a distância máxima de 100 metros, mas foi adicionado o suporte ao modofull duplex, onde as estações podem enviar e receber dados simultaneamente (100 megabits em cada direção), desde que seja usado um switch. Como os cabos categoria 5 atendem a especificação com folga, foi possível fazer tudo usando apenas dois dos quatro pares de cabos (os pares laranja e verde), sendo um par usado para enviar e o outro para receber. É justamente devido ao uso de apenas dois dos pares de cabos que algumas placas de rede 10/100 possuem apenas 4 contatos, eliminando os que não são usados no 100BASE-TX, como você pode ver nessa placa da Encore:
Como você pode imaginar, é possível usar os 4 pares do cabo para crimpar dois cabos separados, cada um com dois pares. Isso não é previsto no padrão e não é recomendável, mas não deixa de ser uma curiosidade. Para isso, você usaria o par laranja nos pinos 1 e 2 e o verde nos pinos 3 e 6 do primeiro cabo, com o par azul nos pinos 1 e 2 e o par marrom nos pinos 3 e 6 do segundo cabo. O uso de duas transmissões separadas vai gerar interferência, reduzindo o alcance da transmissão, de forma que isso só funciona em cabos relativamente curtos. Além disso, o cabo deixa de ser utilizável em redes gigabit (veja detalhes a seguir), de forma que a economia não justifica as desvantagens. Existe uma idéia bastante enraizada no meio técnico de que redes de 10 megabits exigem cabos de 10 MHz, redes de 100 megabits exigem cabos de 100 MHz e assim por diante. Esta é uma explicação simples e aparentemente lógica, mas que é incorreta. Pense que se as coisas funcionassem assim, precisaríamos de cabos de 1000 MHz para as redes gigabit e de 10.000 MHz para as redes 10G, o que seria impossível com tecnologia atual. Para evitar isso, os padrões Ethernet de 100, 1000 e 10000 megabits utilizam sistemas complicados de modulação, de forma a reduzir a freqüência efetiva da transmissão e, assim, aproveitar melhor os recursos do cabo. Um paralelo poderia ser traçado com relação ao ADSL, que consegue transmitir dados a longas distâncias e a até 8 megabits, utilizando um único par de cabo telefônico, originalmente projetado para transportar apenas o sinal de voz.
P á g i n a | 78 Na realidade, o padrão 100BASE-TX utiliza uma freqüência efetiva de apenas 31.25 MHz. Como se não bastasse, o 1000BASE-T (o padrão de 1000 megabits para cabos de par trançado) conseguiu multiplicar por 10 a taxa de transmissão, aumentando a freqüência para apenas 62.5 MHz efetivos. É por isso que ambos os padrões suportam cabos de par trançado categoria 5, que são certificados para freqüências de apenas 100 MHz. Se você achou pouco, saiba que os cabos de categoria 6 (certificados para até 250 MHz) oferecem suporte também ao 10GBASE-T, que é o padrão de 10.000 megabits. Se você era adepto do mito dos 100 MHz, isso deve ter dado um nó na sua cabeça. Vamos então entender como estes aparentes milagres foram obtidos. Em primeiro lugar, um padrão de rede de 100 megabits não transmite apenas 100 megabits por segundo, pois junto com os dados é necessário transmitir o conjunto de informações de controle que possibilita a conexão. Para transmitir 100 megabits de dados úteis, a placa precisa transmitir um pouco mais do que isso. No 100BASE-TX é usada uma sinalização de 125 megabauds, utilizando o sistema 4B/5B, onde cada grupo de 4 bits é transmitido usando um grupo de 5 bauds, cada um deles enviando um bit zero ou um. Como bem sabemos, 5 bits correspondem a 32 combinações, o que permite enviar os 4 bits (16 combinações) e mais um bit adicional, usado para transmitir informações de controle e de redundância, que garantem a confiabilidade da conexão. Com isso, os 125 milhões de bauds resultam na transmissão de 100 megabits de dados "úteis". Como a construção dos frames Ethernet e dos pacotes TCP/IP exigem o uso de mais alguns bits adicionais (veja mais detalhes no capítulo 4), os 100 megabits transmitidos pela placa de rede resultam em taxas efetivas de transmissão progressivamente menores a cada camada, fazendo com que, a taxa de transferência "real" da rede (ao transferir um arquivo, por exemplo) acabe sendo mais baixa. Entretanto, é graças a essas "perdas" que as redes são confiáveis. Continuando, 125 megabauds equivaleriam, a princípio, a uma freqüência de 125 MHz, o que ficaria acima dos 100 MHz suportados pelos cabos categoria 5 e categoria 5e. Para evitar isso, foi adotado o sistema de codificação MLT-3, onde são utilizadas três tensões diferentes (+1, 0 e -1) e os bits são transmitidos através de transições entre os níveis. No MLT-3, um bit 1 é transmitido chaveando para o próximo estágio de tensão, enquanto um bit 0 é transmitido mantendo o mesmo estágio anterior. Por exemplo, para a sequência binária "1111" os sinais transmitidos seriam "+1, 0, 1, 0" e, para a sequência "0101", seria "+1, 0, 0, -1":
Esta sinalização mais simples permite "pegar carona" com o sinal de clock (que se comporta como uma onda), realizando 4 transferências por ciclo de clock. Isso reduz a freqüência real de 125 para apenas 31.25 MHz, de forma que a rede pode funcionar tranquilamente dentro dos 100 MHz oferecidos pelos cabos de categoria 5. Em seguida temos o padrão de 100 megabits para cabos categoria 3, o 100BASE-T4, que elimina o modo full-duplex e utiliza todos os quatro pares do cabo, reduzindo, assim, a taxa de sinalização.
P á g i n a | 79 O 100BASE-T4 utiliza uma sinalização mais complexa onde um dos pares envia dados da estação para o hub, outro envia do hub para a estação e os outros dois são alocados para uma direção ou outra, de acordo com quem está transmitindo, de forma que apenas três dos pares são usados para transmitir dados simultaneamente. Como os cabos de categoria 3 suportam freqüências de até 16 MHz, mais de 6 vezes menos que os de categoria 5, foi necessário criar um sistema complicado de codificação, que utiliza uma sinalização ternária, com o uso de três sinais diferentes (em vez de dois, como no sistema binário). Com três combinações por par e três pares de cabo, temos um total de 27 combinações possíveis por ciclo, suficiente para transmitir 4 bits (16 combinações), combinados com sinais adicionais de redundância. Este sistema, baseado no uso do 8B6T e da codificação PAM-3 permite reduzir a taxa de sinalização para apenas 25 megabauds. Utilizando um sistema de sinalização similar ao usado no 100BASE-TX, são transmitidos 2 bauds em cada ciclo de clock, resultando em uma freqüência efetiva de apenas 12.5 MHz, o que ainda está dentro do suportado pelos cabos de categoria 3. Apesar disso, o 100BASE-T4 foi relativamente pouco usado, de forma que muitas placas de rede sequer oferecem suporte a ele, como no caso das placas com apenas 4 pinos. Existiu ainda o 100BASE-FX, o padrão de 100 megabits para cabos de fibra óptica multimodo. Assim como o 10BASE-F, ele foi pouco usado, mas oferecia a possibilidade de criar links de longa distância, com cabos de até 2 km e a possibilidade de usar repetidores para atingir distâncias maiores. Existia a possibilidade de usar um único cabo de fibra em modo half-duplex, mas nesse caso a distância máxima era de apenas 400 metros (devido à necessidade de detectar colisões), o que eliminava a maior parte das vantagens práticas sobre o 100BASE-TX, onde os 100 metros máximos podem ser estendidos com a ajuda de repetidores. Embora inicialmente fossem caras, as placas 100BASE-TX em versão PCI caíram assustadoramente de preço durante a vida útil do padrão. As placas mais baratas, de fabricantes como a Encore e a LG, chegaram a ser vendidas no atacado, em países da Ásia, por menos de 3 dólares. Isso aconteceu devido à concorrência acirrada entre os fabricantes e ao avanço das técnicas de fabricação, que tornou a fabricação dos chipsets de rede cada vez mais barato. Como todas as placas-mãe passaram a vir com placas de rede onboard, a demanda por placas offboard passou a ser cada vez menor, o que gradualmente levou os fabricantes a produzir apenas placas de padrões mais recentes, que permitem a eles trabalhar com margens de lucro um pouco maiores. Com isso, as placas de rede PCI baratas que nos acostumamos a ver começaram a se tornar cada vez mais difíceis de encontrar, dando lugar às placas gigabit. Placas de rede PCI geralmente possuem um soquete para a instalação de um chip de boot, usado em clientes de boot remoto, como no LTSP. É possível obter ROMs de boot em diversos formatos no http://rom-o-matic.org e gravá-las usando um gravador de EPROM, mas isso está entrando em desuso, pois as placas-mãe incorporam imagens de boot no próprio BIOS, permitindo que a placa de rede onboard seja usada para dar boot via rede diretamente. Gigabit Ethernet Depois dos padrões de 10 e 100 megabits, o passo natural para as redes Ethernet seria novamente multiplicar por 10 a taxa de transmissão, atingindo 1000 megabits. E foi justamente o que aconteceu. O padrão Gigabit Ethernet começou a ser desenvolvido pelo IEEE em 1995, assim que o padrão de 100 megabits foi ratificado (como muitos dizem, antes mesmo que a tinta tivesse tempo de secar) e acabou sendo ratificado em 1998, dando origem ao 802.3z, composto por quatro padrões diferentes. O 1000BASE-LX é o padrão mais caro, que suporta apenas cabos de fibra óptica. Até o 100BASE-FX, os transmissores de rede para fibra óptica podiam utilizar LEDs, que são uma tecnologia muito mais barata. O problema é que os LEDs não são capazes de mudar de estado rápido o suficiente para atenderem os requisitos do sistema de modulação adotado no gigabit Ethernet, de forma que a única saída foi adotar a tecnologia long-wave laser, com o uso de lasers de 1300 nanômetros.
P á g i n a | 80
Em troca, o 1000BASE-LX oferece um alcance muito maior do que o oferecido pelos padrões anteriores. Oficialmente, usando cabos de fibra óptica monomodo com núcleo de 9 mícrons, o sinal é capaz de percorrer distâncias de até 2 km, mas na prática o sinal é capaz de atingir distâncias muito maiores, o que fez com que muitos fabricantes anunciassem produtos baseados no 1000BASE-LX com alcance de até 10 km. Isso tornou o padrão atrativo para uso em backbones, interligando diferentes segmentos de rede no campus de uma universidade ou em prédios próximos, por exemplo. É possível também utilizar cabos multimodo com núcleo de 50 ou 62.5 mícrons (que são os cabos mais baratos), mas nesse caso o sinal percorre apenas 550 metros. O segundo padrão é o 1000BASE-SX, que também utiliza cabos de fibra óptica, mas utiliza uma tecnologia de transmissão mais barata, chamada short-wave laser, que é uma derivação da mesma tecnologia usada em CD-ROMs, com feixes de curta distância. Justamente por já ser utilizado em diversos dispositivos, esta tecnologia é mais barata, mas em compensação o sinal é capaz de atingir distâncias menores. Utilizando cabos multimodo com núcleo de 50 microns a distância máxima é de 500 metros e usando cabos com núcleo de 62.5 microns a distância máxima é de 275 metros (sinalização de 200 MHz) ou 220 metros (sinalização de 160 MHz). Foi criado também um padrão para distâncias curtas, o 1000BASE-CX, que ao invés de fibra óptica utiliza dois pares de cabo de par trançado blindado STP ou SSTP (de forma similar ao 100BASE-TX, onde são também utilizados apenas dois pares do cabo). Embora pouco usados, são suportados também cabos twinax, que são um tipo de cabo coaxial duplo, também blindado. O problema é que no 1000BASE-CX o alcance é de apenas 25 metros, o que limita bastante o seu uso. Ele é usado em alguns modelos de blade servers e outros produtos destinados ao uso em datacenters (onde vários servidores são instalados no mesmo rack e a distância a cobrir é pequena), mas ele praticamente desapareceu depois que o padrão 1000BASE-T foi finalizado. Inicialmente, parecia impossível desenvolver um padrão Gigabit Ethernet para cabos de par trançado sem blindagem, que fosse capaz de atingir os 100 metros oferecidos pelo padrão Fast Ethernet, já que o 100BASE-TX já havia explorado grande parte do potencial dos cabos categoria 5. Mas, contra todas as expectativas, o grupo de trabalho conseguiu finalizar o padrão 1000BASE-T (802.3ab) em 1999, abrindo uma nova fronteira para as redes domésticas. O 1000BASE-T, também chamado de GoC ou "Gigabit over Copper", permite utilizar os mesmos cabos de par trançado categoria 5 que as redes de 100 megabits. Isso representa uma enorme economia, não apenas por eliminar a necessidade de trocar os cabos atuais por cabos mais caros, mas também nas próprias placas de rede, que passam a ser uma evolução das atuais e não uma tecnologia nova. O alcance continua sendo de 100 metros e os switches compatíveis com o padrão são capazes de combinar nós de 10, 100 e 1000 megabits, sem que os mais lentos atrapalhem os demais. Toda esta flexibilidade torna a migração para o 1000BASE-T bastante simples, uma vez que você pode aproveitar o cabeamento já existente. A solução para conseguir multiplicar por 10 a taxa de transmissão, mantendo o uso de cabos cat 5 foi adotar um sistema de sinalização mais complexo, que utiliza todos os 4 pares do cabo (de forma similar ao 100BASE-T4, que utilizava um artifício similar para conseguir transmitir 100 megabits utilizando cabos cat 3). Em primeiro lugar, é usado o sistema PAM-5 de modulação (diferente dos outros padrões gigabit, onde é usado o 8B10B) que consiste no uso de 5 sinais distintos (em vez de apenas dois), que permitem o envio de 2 bits por baud, junto com informações de controle. Com o uso dos 4 pares de cabos, é possível enviar então 8 bits por baud, o que resulta em uma taxa de sinalização de apenas 125 megabauds. Aplicando um sistema similar ao usado no 100BASE-TX, é possível reduzir a freqüência efetiva para apenas 62.5 MHz, transmitindo 2 bauds por ciclo. A freqüência é o dobro da usada no 100BASETX, mas ainda fica dentro dos limites dos cabos de categoria 5. Esta idéia de transmitir vários bits por baud, utilizando vários níveis de sinal distintos, é uma técnica antiga, que foi usada ao limite nos modems discados para obter taxas de transferências mais altas usando o sistema telefônico comutado. Um
P á g i n a | 81 modem V92 de 56k, por exemplo, transmite 7 bits por baud, de forma a fazer seu trabalho transmitindo apenas 8.000 bauds por segundo. Entretanto, esta tecnologia exige uma modulação mais complexa, o que aumenta o processamento necessário para realizar a transmissão. É por isso que ela passou a ser usada em redes apenas quando as limitações do cabeamento se tornaram evidentes. Continuando, temos o segundo "milagre" do 1000BASE-T, que é o suporte ao modo full-duplex. Como você deve lembrar, o 100BASE-TX obtinha full-duplex utilizando dois pares de cabos, um para transmitir e outro para receber. Como o 1000BASE-T utiliza todos os 4 pares ao mesmo tempo, transmitir e receber simultaneamente parecia impossível. Para resolver o problema, foi desenvolvido um sistema engenhoso, que permite que os mesmos pares de cabos sejam usados para enviar e receber dados simultaneamente. Enviar duas transmissões ao mesmo tempo, no mesmo cabo, faz com que as duas transmissões colidam, gerando um eco que é a combinação das duas. Como cada estação tem armazenado na memória o conteúdo da transmissão que acabou de fazer, é capaz de subtrair sua própria transmissão do sinal recebido, obtendo assim o sinal enviado pelo interlocutor. Com isso, é possível transmitir 1 gigabit em cada direção permitindo que, em situações onde a estação envie e receba um grande volume de dados simultaneamente, seja possível atingir 2 gigabits somando o tráfego nas duas direções. Entretanto, o mais comum é uma relação assimétrica, com uma falando e a outra apenas enviando os pacotes de confirmação, cenário em que o uso do full-duplex traz um ganho marginal. Apesar disso, alguns fabricantes tiram proveito do full-duplex para anunciar suas placas gigabit como placas de "2 gigabits", assim como alguns vendiam placas fast Ethernet como sendo placas de "200 megabits", novamente em alusão ao modo full-duplex. Continuando, o uso dos 4 pares e o sistema de sinalização mais complexo tornam o 1000BASE-T muito mais exigente com relação à qualidade do cabeamento que os padrões anteriores. Por exemplo, as placas 100BASE-TX utilizam apenas dois pares do cabo, de forma que a rede pode funcionar com cabos mal crimpados, ou mesmo com cabos com alguns dos fios internos rompidos, desde que os dois pares usados para transmitir dados estejam intactos, mas você não teria a mesma sorte com o 1000BASE-T. O sistema mais simples de sinalização também torna a rede menos sensível a interferência, ao uso de cabos de baixa qualidade, ou ao uso de cabos mais longos que os 100 metros permitidos. No 1000BASE-T, todos estes problemas saltam à vista, reduzindo a velocidade da rede (devido às retransmissões), tornando-a instável, ou simplesmente impedindo seu funcionamento. Mesmo detalhes como o comprimento da parte destrançada do cabo ao crimpar o conector acabam fazendo diferença, de forma que é necessário redobrar o cuidado ao crimpar os cabos. Outro fator digno de nota é que, como em quase todo novo padrão, as placas 1000BASE-T eram originalmente muito mais caras que as de 100 megabits, já que o maior processamento necessário tornava o design da placa muito mais complexo, demandando o uso de dois ou mais controladores complexos. No entanto, com a miniaturização dos componentes, logo surgiram soluções integradas em um único chip e o maior volume de produção fez com que os preços fossem caindo progressivamente. Hoje em dia, a maioria das placas-mãe já trazem chipsets de rede gigabit onboard e os switches gigabit também estão cada vez mais acessíveis, de forma que muitos acabam migrando para o novo padrão sem sequer perceber, enquanto atualizam os equipamentos de rede. Assim como no caso das placas de 100 megabits, existe um grande número de placas Gigabit Ethernet em versão PCI. O problema é que, por um conjunto de fatores, o barramento PCI oferece, na prática, pouco mais de metade da taxa teórica de transmissão. Com isso, embora os 133 MB/s sejam suficientes para uma placa de rede gigabit, na prática as placas gigabit em versão PCI acabam sendo limitadas pelo barramento, oferecendo taxas de transmissão de 500 a 700 megabits, variando de acordo com a placa e o chipset usados. Além das placas offboard, muitas placas gigabit onboard são internamente ligadas ao barramento PCI do chipset e têm por isso sua taxa de transmissão limitada de forma similar.
P á g i n a | 82 Com isso, tivemos a terceira migração de barramento na história das placas de rede (sem contar as placas em versão PCIX, destinadas a servidores), que passaram a utilizar o barramento PCI-Express, que oferece 250 MB/s em cada direção, por linha de dados (um slot PCI Express pode ter de uma a 16 linhas de dados), o que permite que mesmo um slot x1 atenda com folga uma placa Gigabit Ethernet. A próxima fronteira são as placas de 10 Gigabits, que em teoria precisam de um slot PCI Express x8 (com oito linhas de dados, ou seja, 2 GB/s) para mostrarem todo o seu potencial. Continuando, assim como as placas de 100 megabits, as placas gigabit são completamente compatíveis com os padrões anteriores. Você pode até mesmo ligar uma placa Gigabit Ethernet a um hub 10/100 se quiser, mas a velocidade terá de ser nivelada por baixo, respeitando a do ponto mais lento. A exceção fica por conta de alguns switches nível 3 (modelos mais inteligentes e caros, que incorporam recursos dos roteadores), que são capazes de "rotear" pacotes de diversas estações operando a 100 megabits, agrupando-os em um único link de 1 gigabit ligado ao servidor. Neste caso, você poderia ter (em teoria) 10 estações baixando arquivos a 100 megabits cada, simultaneamente, a partir de um único servidor com uma placa gigabit. Todos esses padrões de Gigabit Ethernet são intercompatíveis a partir da camada 2 (link de dados) do modelo OSI. Abaixo desse nível está apenas a camada física da rede, que inclui o tipo de cabos e o tipo de modulação usado pela placa de rede para transmitir dados através deles. Os dados transmitidos, incluindo camadas de correção de erro, endereçamento, etc. são idênticos em qualquer um dos padrões. Assim como muitos hubs antigos permitiam juntar redes que utilizavam cabo de par trançado e cabo coaxial, é muito simples construir dispositivos que interliguem esses diferentes padrões. Isso permite conectar facilmente segmentos de rede com cabos de par trançado e segmentos com fibra óptica, que podem ser usados para interligar redes distantes entre si. 10 Gigabit Ethernet Com o lançamento do padrão 1000BASE-T, em 1999, os membros do grupo de trabalho 802.3 ficaram livres para iniciar os trabalhos no padrão seguinte. Mantendo a tradição, decidiram desenvolver um padrão capaz de atingir taxas de transferência 10 vezes maiores que o anterior, dando origem ao 10 Gigabit Ethernet (10G), que transmite a espantosos 10 gigabits por segundo. Aumentar por 10 a taxa de transferência a cada novo padrão de rede pode parecer um exagero, mas como a migração para novos padrões de redes é bem mais lenta do que para novos processadores ou novas tecnologias de memória, por exemplo, passos maiores acabam sendo necessários, caso contrário poucos se dariam o trabalho de atualizar os equipamentos. Como previsto na célebre lei de Moore, o poder de processamento dos processadores e controladores em geral dobra em média a cada 18 meses, sendo que o custo continua mais ou menos constante. Com isso, em um período de 54 meses temos controladores 8 vezes mais rápidos, e assim por diante, o que torna a tarefa de desenvolver novos padrões de rede relativamente simples. O maior problema é que o cabeamento não evolui na mesma velocidade dos controladores, o que obriga o comitê a levar os cabos popularmente usados até o limite antes de jogar a toalha e migrar para um padrão de cabos mais caros e de melhor qualidade. Um exemplo disso são os cabos de par trançado categoria 5, que foram desenvolvidos para o uso em redes de 100 megabits, mas que acabaram tendo sua vida útil estendida com o padrão 1000BASE-T graças à adoção de um sistema mais sofisticado de modulação e ao uso dos quatro pares do cabo.
P á g i n a | 83 Assim como no Gigabit Ethernet, o desenvolvimento do 10 Gigabit Ethernet começou nos cabos de fibra óptica, que oferecem um desafio técnico menor, com o padrão para cabos com fios de cobre sendo finalizado por último. Muitos julgavam que seria impossível criar um padrão 10G para cabos de par trançado (afinal, estamos falando de uma taxa de transmissão 1000 vezes maior que a do padrão 10BASE-T original), mas no final acabaram conseguindo, embora com algumas baixas. Os padrões 10G para cabos de fibra óptica se dividem em duas categorias: os padrões de longa distância, que utilizam cabos de fibra monomodo e os padrões de curta distância, que utilizam cabos de fibra multimodo e transmissores mais baratos. O objetivo dos padrões de longa distância é complementar os padrões de 100 e 1000 megabits, oferecendo uma solução capaz de interligar redes distantes com uma velocidade comparável ou superior a dos backbones DWDM e SONET, tecnologias muito mais caras, utilizadas atualmente nos backbones da Internet. Suponha, por exemplo, que você precise interligar 5.000 PCs, divididos entre a universidade, o parque industrial e a prefeitura de uma grande cidade. Você poderia utilizar um backbone 10 Gigabit Ethernet para os backbones principais, unindo os servidores dentro dos três blocos e ligando-os à Internet, usar uma malha de switches Gigabit Ethernet para levar a rede até as salas de aula e departamentos e, finalmente, usar switches baratos de 100 megabits para levar a rede aos alunos e funcionários, complementando com pontos de acesso 802.11b/g para oferecer também uma opção de rede sem fio. Isso estabelece uma pirâmide, onde os usuários individuais possuem conexões relativamente lentas, de 11, 54 ou 100 megabits, interligadas entre si e entre os servidores pelas conexões mais rápidas e caras, formando um sistema capaz de absorver várias chamadas de videoconferência simultâneas, por exemplo. Outra aplicação em destaque é o próprio uso em backbones de acesso à Internet. Usando o 10G, um único cabo de fibra óptica transmite o equivalente a mais de 600 linhas T1 (de 1.5 megabits cada), cada uma suficiente para atender uma empresa de médio porte, um prédio residencial ou mesmo um pequeno provedor de acesso via rádio, ou seja, com um único link 10G temos banda suficiente para atender com folga a uma cidade de médio porte. Entre os padrões de longa distância temos o 10GBASE-LR (Long Range) que utiliza laseres de 1310 nm e oferece um alcance de até 10 km (com a possibilidade de atingir distâncias maiores utilizando cabos de alta qualidade), o 10GBASE-ER (Extended Range), que utiliza laseres de 1550 nm e é capaz de cobrir distâncias de até 40 km e o novo 10GBASE-ZR, desenvolvido de forma independente pela Cisco e outros fabricantes, que estende o alcance máximo para incríveis 80 km. Nos três casos, a distância máxima pode ser estendida usando amplificadores de sinal e repetidores, de forma o que o link pode ser estendido a distâncias muito grandes, criando backbones e interligando redes. Em seguida temos os padrões de curta distância, destinados ao uso em datacenters e em redes locais. Como citei, eles são baseados em fibras multimodo, que ao contrário das fibras monomodo usadas nos padrões de longa distância, já são bastante acessíveis. Atualmente temos apenas dois padrões: o 10GBASE-SR (Short Rage) utiliza a tecnologia short-wave laser, similar à utilizada no 1000BASE-SX e é capaz de atingir até 300 metros, dependendo da qualidade do cabo usado, enquanto o 10GBASE-LRM permite o uso de fibras com núcleo de 62.5 microns, um tipo de fibra de baixa qualidade, tipicamente usadas em redes 100BASE-FX. Quando usadas no 10GBASE-SR, estas fibras suportam distâncias muito curtas (até 26 metros), mas no 10GBASE-LRM elas suportam até 220 metros, daí a sigla LRM, de "Long Reach Multimode".
P á g i n a | 84
Figura 5 - Placa 10GBASE-SR em versão PCI-X
Tradicionalmente, o mais comum é que os padrões de fibra óptica de curta distância sejam usados para criar backbones, interligando os switches e roteadores em diferentes segmentos da rede, enquanto os padrões para cabos de cobre, sejam usados nos pontos individuais. Assim como fez no Gigabit Ethernet, o grupo de trabalho começou desenvolvendo um padrão para cabos de cobre de curta distância para uso em datacenters. Surgiu então o 10GBASE-CX4, que utiliza quatro pares de cabos twinax para transmitir dados a até 15 metros. Os cabos 10GBASE-CX4 utilizam um conector especial, similar ao utilizado no InfiniBand, uma tecnologia de rede utilizada em clusters e SANs. Não é possível crimpar os cabos CX4; eles são comprados já no comprimento desejado. Aqui temos uma placa PCI-Express x8 e o detalhe do conector:
O 10GBASE-CX4 é um padrão mais barato que os baseados em cabos de fibra, já que não é necessário usar o transceiver (um componente bastante caro, que contém os transmissores e receptores ópticos). Mas, como era de se esperar, ele entrou em desuso com a popularização do padrão 10GBASE-T (ou 802.3an), que é o padrão baseado em cabos de par trançado. Inicialmente, falou-se no uso de cabos categoria 7 combinados com conectores TERA e no possível suporte a cabos de categoria 5a no padrão 10GBASE-T, mas ambas as idéias acabaram sendo descartadas em favor dos cabos categoria 6 e categoria 6a. Usar cabos categoria 5e no 10G não seria impossível, mas exigiria um sistema de modulação muito complexo, que encareceria excessivamente as placas e os switches. Além disso, a distância seria muito curta (possivelmente algo próximo dos 15 metros do 10GBASE-CX4), o que acabaria com a utilidade prática do padrão. Para entender a dificuldade em criar um padrão 10G para cabos cat 5e, nada melhor do que entender um pouco melhor como o 10GBASE-T funciona. Se você achou as explicações sobre o 100BASE-TX e sobre o 1000BASE-T complicadas, se prepare, pois esta é ainda mais indigesta. :) Você deve lembrar que no 1000BASE-T é usado o sistema PAM-5 de modulação, onde 5 sinais distintos são usados para transmitir 2 bits por baud (combinados com informações de controle). Com isso, os 1000 megabits são transmitidos em apenas 500 megabauds, ou seja, 125 megabauds em cada um dos 4 pares de cabos. O 10GBASE-T adota um sistema de modulação bem mais complexo, o PAM-16 que, como o nome sugere, é baseado no uso de 16 sinais distintos em cada par, cada um representado por um nível de tensão diferente. Para efeito de
P á g i n a | 85 comparação, no 100BASE-TX existe uma diferença de 1V entre cada nível, no 1000BASE-T a diferença cai para apenas 0.5V e no 10GBASE-T cai para apenas 0.13V, o que torna a questão do cabeamento progressivamente mais crítica:
Originalmente, 16 estados permitiriam o envio de 4 bits por baud, por par. Mas, como de praxe, é necessário enviar também informações de controle, de forma que são transmitidos o equivalente a 3.125 bits por baud (3 bits e mais um bit adicional a cada 8 bauds), o que permite que os 10.000 megabits sejam transmitidos em apenas 3200 megabauds. Como os 4 pares de cabos são usados simultaneamente, temos então 800 megabauds por par de cabos. Assim como no 1000BASE-T, cada baud demora apenas meio ciclo para ser transmitido, o que reduz a freqüência de transmissão. Mesmo assim, os 800 megabauds resultam em uma freqüência de 400 MHz, muito além dos 100 MHz suportados pelos cabos cat 5. Os próximos da lista são os cabos de categoria 6, que suportam freqüências de até 250 MHz e são construídos dentro de normas muito mais estritas com relação à atenuação do sinal e ao crosstalk. Apesar da freqüência ser mais baixa que o exigido, foi possível incluir suporte a eles dentro do padrão, mas apenas para distâncias curtas, de apenas 55 metros. Isso acontece porque a freqüência suportada pelo cabo não é um valor exato, mas sim a freqüência para a qual ele é certificado para transmissão a 100 metros. Um cabo cat 5 poderia transportar sinais a mais de 100 MHz, mas a atenuação faria com que eles não chegassem ao final dos 100 metros com uma qualidade aceitável. Reduzindo o comprimento do cabo, reduzimos a atenuação, o que permite que os cabos suportem a transmissão de sinais de freqüência mais alta, mas apenas a distâncias curtas. No caso dos cabos cat 6, foi comprovado que eles são capazes de transmitir os sinais de 400 MHz do 10GBASE-T, mas apenas a até 55 metros, daí a especificação. Na prática, alguns cabos cat 5e que excedem a especificação também suportam a freqüência de 400 MHz em distâncias mais curtas. Se você tiver sorte, pode ter sucesso usando um cabo de 10 ou 20 metros, por exemplo. Entretanto, padrões precisam funcionar "sempre" e não "às vezes" e justamente por isso os cat 5e foram removidos da especificação final. Para que fosse possível o uso de cabos de até 100 metros, como nos padrões anteriores, foi criado o padrão cat 6a, que suporta freqüências de até 500 MHz e é baseado em normas ainda mais estritas. Embora ainda sejam mais caros, os cabos cat 6a tendem a cair de preço conforme a tecnologia for se popularizando, permitindo uma migração gradual. A partir do momento em que a diferença de preço não for um impedimento, vale à pena passar a utilizar cabos categoria 6a em todas as novas instalações, mesmo nas destinadas a redes de 100 e 1000 megabits, já que o padrão superexcede o padrão cat5e e o cat6. Atualmente, ainda estamos assistindo à migração do Fast Ethernet para o Gigabit Ethernet, por isso a migração para o padrão 10G nas redes domésticas ainda deve demorar. As placas 10GBASE-T do início de 2008 ainda custam acima de 1000 dólares, além de consumirem muita energia (muitas consomem mais de 25 watts), o que restringe seu uso aos servidores. Mesmo que a lei de Moore continue em vigor ao longo dos próximos anos, ainda vai demorar até que sejam desenvolvidos controladores 10G compactos e baratos o suficiente para serem integrados às placas-mãe, como no caso dos chips Gigabit Ethernet.
P á g i n a | 86 Além disso, existe a questão prática. Como a maioria das redes são usadas para acessar a web e transferir arquivos entre os PCs e os servidores da rede, existe pouca demanda por um padrão de rede mais rápido, pois mesmo o Gigabit Ethernet raramente tem chance de mostrar seu potencial, já que é gargalado pelo desempenho dos HDs e outros periféricos. De nada adianta uma interface de rede mais rápida, se o HD o servidor do servidor é capaz de ler os dados a apenas 60 MB/s, por exemplo. A médio prazo, as redes locais continuarão sendo baseadas em interfaces de 100 e 1000 megabits e o 10G passará a ser utilizado para interligar os switches da rede, evitando o gargalo causado pelo uso de um único link gigabit para interligar switches com 24 ou 48 clientes cada um. Só bem adiante é que devemos assistir à popularização do 10G nos desktops. O 10G representa também o fim dos hubs, dos repetidores e dos links half-duplex, que foram substituídos pelo uso exclusivo de links full-duplex ponto a ponto, entre as estações, switches e roteadores da rede. Com isso, deixa de ser usado também o CSMA/CD, o sistema de detecção de colisões que é utilizado desde os primeiros padrões Ethernet. Embora você ainda possa ligar vários switches em cascata, com cabos cat 6a de 100 metros cada um para obter distâncias maiores, a idéia é que você utilize um dos padrões de cabos de fibra óptica quando precisar atingir distâncias maiores. Com os 10 km oferecidos pelo 10GBASE-LR e os 40 km oferecidos pelo 10GBASE-ER, cobrir grandes distâncias deixou de ser um problema. 12.2 Endereçamento IP Um endereço IP é o número que identifica exclusivamente um dispositivo conectado à uma rede TCP/IP. Esse endereço é formado por uma sequência de números compostos de 32 bits, divididos em 4 grupos de 8 bits que recebem o nome de octeto, porque cada um deles tem oito posições quando visualizados na forma binária. Com 8 bits são permitidos até 256 combinações diferentes, e para que a configuração seja facilitada, são utilizados os números de 0 a 255 para representar cada octeto, isto porque é mais fácil formar números como 74.86.238.241 que utilizar números binários como 01001010.01010110.11101110.11110001. Através do endereço IP, podemos identificar a região ou país do qual um computador está conectado à internet. Não se deve confundi-lo com endereço MAC (Endereço físico), que é um número hexadecimal fixo atribuído pelo fabricante da placa de interface de rede, e operam na camada 2 do modelo OSI, enquanto que o endereço IP pode ser fixo (IP estático) como também mudar a cada conexão (IP dinâmico), atuando na camada 3 do modelo OSI, permitindo que um computador possa localizar outro computador na rede. O endereçamento IP é dividido em duas partes, sendo a primeira responsável por identificar a rede à qual o computador está conectado, e a segunda é utilizada para identificar os Hosts que pertencem à rede. Para permitir uma maior gama de endereços IP, o endereçamento foi dividido em cinco classes diferentes, que utilizam a nomenclatura A, B, C, D e E para identificá-las. As classes D e E não são utilizadas e foram desenvolvidas para utilizações futuras. Cada classe reserva um número diferente de octetos para seu endereçamento de rede e diferenciam pequenas, médias e grandes redes. Em uma rede de classe A, o primeiro octeto é atribuído para identificar a rede e os três últimos identificam os Hosts. Nesta classe o primeiro octeto é um número entre 1 e 126. O endereço pertencente à classe A foi projetado para suportar redes de grandes dimensões, sendo possível endereçar até 16.777.214 hosts. Na classe B, os dois primeiros octetos identificam a rede e os dois últimos identificam os hosts. Nesta classe o primeiro octeto está entre os números 128 e 191. O endereço de classe B foi concebido para satisfazer as necessidades das redes de moderada a grande porte, sendo possível endereçar até 65.534 hosts Já na classe C, os três primeiros octetos identificam a rede e o último octeto identifica os hosts. Nesta classe o primeiro octeto está entre os número 192 e 223. É possível endereçar até 254 hosts sendo este endereço projetado para suportar redes pequenas.
P á g i n a | 87 12.3 Máscara de sub-rede A máscara de sub-rede indica qual parte do endereço é usada para endereçar a rede e qual parte é usada para endereçar o host dentro dela. Na designação tradicional, com as três classes de endereços, a máscara acompanha a classe do endereço IP. Em um endereço de classe A, a máscara será 255.0.0.0, indicando que o primeiro octeto se refere à rede e os três últimos ao host; em um endereço classe B, a máscara padrão será 255.255.0.0, onde os dois primeiros octetos referem-se à rede e os dois últimos ao host, enquanto em um endereço classe C, a máscara padrão será 255.255.255.0, onde apenas o último octeto refere-se ao host. Se converter o número "255" para binário, você verá que ele corresponde ao binário "11111111", enquanto o número 0 corresponde ao binário "00000000". Eles são usados na composição das máscaras justamente porque indicam que todos, ou que nenhum dos bits do octeto correspondente são usados para endereçar a rede. Se as máscaras simplesmente acompanham a classe do endereço, você poderia se perguntar qual é a real necessidade delas. A resposta é que apesar das máscaras padrão acompanharem a classe do endereço IP, é possível "mascarar" um endereço IP, mudando as faixas do endereço que serão usadas para endereçar a rede e o host. Veja, por exemplo, o endereço "192.168.0.1". Por ser um endereço de classe C, sua máscara padrão seria 255.255.255.0, indicando que o último octeto se refere ao host, e os demais à rede. Porém, se mantivéssemos o mesmo endereço, mas alterássemos a máscara para 255.255.0.0, apenas os dois primeiros octetos (192.168) continuariam representando a rede, enquanto o host passaria a ser representado pelos dois últimos (e não apenas pelo último). O endereço "192.168.0.1" com máscara 255.255.255.0 é diferente de "192.168.0.1" com máscara 255.255.0.0. Enquanto no primeiro caso temos o host "1" dentro da rede "192.168.0", no segundo caso temos o host "0.1" dentro da rede "192.168". A moral da história é que dentro da rede você deve configurar sempre todas as estações para usarem a mesma máscara de sub-rede, seguindo a faixa de endereços escolhida. Se você está usando a faixa 192.168.0.x, então a máscara de subrede vai ser 255.255.255.0 para todas as estações. CIDR e Máscaras de tamanho variável Muito do que vimos até aqui já foi abordado nos capítulos anteriores. Optei por começar com um resumo geral para chamá-lo de volta ao tema, já que esta questão dos endereçamentos é um assunto complicado. Vamos então às novidades. A divisão tradicional, com as classes A, B e C de endereços IP fazia com que um grande número de endereços fossem desperdiçados. Um provedor de acesso que precisasse de 10.000 endereços IP, por exemplo, precisaria ou utilizar uma faixa de endereços classe B inteira (65 mil endereços), o que geraria um grande desperdício, ou utilizar 40 faixas de endereços classe C separadas, o que complicaria a configuração. Existia ainda o problema com as faixas de endereços classe A, que geravam um brutal desperdício de endereços, já que nenhuma empresa ou organização sozinha chega a utilizar 16 milhões de endereços IP. A solução para o problema foi a implantação do sistema CIDR (abreviação de "Classless Inter-Domain Routing", que pronunciamos como "cider"), a partir de 1993 (leia o RCF no http://tools.ietf.org/html/rfc1519). Entender as classes de endereços A, B e C é importante para compreender o uso das máscaras de sub-rede e por isso elas ainda são muito estudadas, mas é importante ter em mente que, na prática, elas são uma designação obsoleta. Naturalmente, ainda existem muitas redes que utilizam faixas de endereços de classe A, B e C (já que as faixas alocadas
P á g i n a | 88 no passado não podem ser simplesmente revogadas de uma hora para a outra), mas as faixas alocadas atualmente utilizam quase sempre o novo sistema. No CIDR são utilizadas máscaras de tamanho variável (o termo em inglês é VLSM, ou Variable-Length Subnet Mask), que permitem uma flexibilidade muito maior na criação das faixas de endereços. Se são necessários apenas 1000 endereços, por exemplo, poderia ser usada uma máscara /22 (que permite o uso de 1022 endereços), em vez de uma faixa de classe B inteira, como seria necessário antigamente. Outra mudança é que as faixas de endereços não precisam mais iniciar com determinados números. Uma faixa com máscara /24 (equivalente a uma faixa de endereços de classe C) pode começar com qualquer dígito e não apenas com de 192 a 223. O CIDR permite também que várias faixas de endereços contínuas sejam agrupadas em faixas maiores, de forma a simplificar a configuração. É possível agrupar 8 faixas de endereços com máscara 255.255.255.0 (classe C) contínuas em uma única faixa com máscara /21, por exemplo, que oferece um total de 2045 endereços utilizáveis (descontando o endereço da rede, endereço de broadcast e o endereço do gateway). As faixas de endereços são originalmente atribuídas pela IANA às entidades regionais. Elas dividem os endereços em faixas menores e as atribuem aos carriers (as operadoras responsáveis pelos links), empresas de hospedagem, provedores de acesso e outras instituições. Estas, por sua vez, quebram os endereços em faixas ainda menores, que são atribuídas aos consumidores finais. Revisando, a máscara de subrede determina qual parte do endereço IP é usada para endereçar a rede e qual é usada para endereçar os hosts dentro dela. No endereço 200.232.211.54, com máscara 255.255.255.0 (/24), por exemplo, os primeiros 24 bits (200.232.211.) endereçam a rede e os 8 últimos (54) endereçam o host. Quando usamos máscaras simples, podemos trabalhar com os endereços em decimais, pois são sempre reservados 1, 2 ou 3 octetos inteiros para a rede e o que sobra fica reservado ao host. Esta é a idéia usada nas faixas de endereços classe A, B e C. Quando falamos em máscaras de tamanho variável, entretanto, precisamos começar a trabalhar com endereços binários, pois a divisão pode ser feita em qualquer ponto. Imagine, por exemplo, o endereço "72.232.35.108". Originalmente, ele seria um endereço de classe A e utilizaria máscara "255.0.0.0". Mas, utilizando máscaras de tamanho variável, ele poderia utilizar a máscara "255.255.255.248", por exemplo. Nesse caso, teríamos 29 bits do endereço dedicados à endereçar a rede e apenas os 3 últimos bits destinados ao host. Convertendo o endereço para binário teríamos o endereço "01001000.11101000.01100000.01101100", onde o "01001000.11101000.01100000.01101" é o endereço da rede e o "100" é o endereço do host dentro dela. Como temos 29 bits dedicados à rede, é comum o uso de um "/29" como máscara, no lugar de "255.255.255.248". À primeira vista, esse conceito parece bastante complicado, mas na prática não é tão difícil assim. A primeira coisa a ter em mente é que as máscaras de tamanho variável só fazem sentido quando você converte o endereço IP para binário. O número decimal 255 (equivalente a 11111111) indica que todos os 8 números binários do octeto se referem à rede, enquanto o decimal 0 (correspondente a 00000000) indica que todos os 8 dígitos binários do octeto se referem ao host. Em uma rede com máscara 255.255.255.0 temos:
Decimal:
255
255
255
0
P á g i n a | 89
Binário:
11111111
11111111
11111111
00000000
rede
rede
rede
host
As máscaras de tamanho variável permitem fazer a divisão em outros pontos do endereço. No endereço "72.232.35.108" com máscara "255.255.255.248" que citei a pouco, teríamos:
Decimal:
255
255
255
248
Binário:
11111111
11111111
11111111
11111 000
rede
rede
rede
rede host
Imagine o caso de um pequeno provedor de acesso, que possui um backbone com uma faixa de endereços com máscara 255.255.255.0 (/24) e precisa dividí-lo entre dois clientes, onde cada um deles deve ter uma faixa completa de endereços. O backbone do provedor utiliza a faixa de endereços 203.107.171.x onde o 203.107.171 é o endereço da rede e o "x" é a faixa de endereços de que eles dispõem para endereçar os micros das duas empresas. Como endereçar ambas as redes, se não é possível alterar o "203.107.171" que é a parte do seu endereço que se refere à rede? A solução seria justamente utilizar máscaras de tamanho variável. Veja que podemos alterar apenas dos últimos 8 bits do endereço IP:
Decimal:
203
107
171
x
Binário:
11001011
11010110
10101011
????????
Usando uma máscara 255.255.255.0, são reservados todos os 8 bits para o endereçamento dos hosts, e não sobra nada para diferenciar as duas redes. Usando uma máscara de tamanho variável, é possível "quebrar" os 8 bits do octeto em duas partes, usando a primeira para diferenciar as duas redes e a segunda para endereçar os hosts:
Decimal:
203
107
171
x
Binário:
11001011
11010110
10101011
???? ????
rede
rede
rede
rede host
P á g i n a | 90 Para tanto, ao invés de usar a máscara de sub-rede 255.255.255.0 que, como vimos, reservaria todos os 8 bits para o endereçamento do host, usaremos uma máscara 255.255.255.240 (/28) (corresponde ao binário 11111111.111111.11111111.11110000). Veja que em uma máscara de sub-rede os números binários "1" referem-se à rede e os números "0" referem-se ao host. Na máscara 255.255.255.240 temos exatamente esta divisão: quatro bits 1 e quatro bits 0:
Decimal:
255
255
255
240
Binário:
11111111
11111111
11111111
1111 0000
rede
rede
rede
rede host
Temos agora o último octeto dividido em dois endereços binários de 4 bits cada. Cada um dos dois grupos representa agora um endereço distinto, e deve ser configurado independentemente. Como fazer isso? Veja que 4 bits permitem 16 combinações diferentes (de 0 a 15). Se você converter o número 15 em binário terá "1111" e, se converter o decimal 0, terá "0000". Se converter o decimal 11 terá "1011" e assim por diante. Neste caso, é possível usar endereços de 1 a 14 para identificar os hosts e as redes separadas. Note que os endereços 0 e 15 não podem ser usados, pois assim como os endereços 0 e 255, eles são reservados para pacotes de broadcast:
Decimal:
203
107
171
12 _ 14
Binário:
11111111
11111111
11111111
1100 1110
rede
rede
rede
rede host
Estabeleça um endereço de rede para cada uma das duas sub-redes disponíveis e um endereço diferente para cada micro da rede, mantendo a formatação do exemplo anterior. Por enquanto, apenas anote em um papel os endereços escolhidos, junto como seu correspondente em binários. Na hora de configurar o endereço IP nas estações, configure primeiro a máscara de sub-rede como 255.255.255.240 e, em seguida, converta os endereços binários em decimais, para ter o endereço IP de cada estação. No exemplo da ilustração anterior, havíamos estabelecido o endereço 12 para a rede e o endereço 14 para a estação; 12 corresponde a "1100" e 14 corresponde a "1110". Juntando os dois temos "11001110", que corresponde ao decimal "206". O endereço IP da estação será então 203.107.171.206, com máscara 255.255.255.240. Se tivesse escolhido o endereço 10 para a rede e o endereço 8 para a estação, teríamos "10101000" que corresponde ao decimal 168. Neste caso, o endereço IP da estação seria 203.107.171.168. Nesse primeiro exemplo dividimos a faixa de endereços em 14 redes distintas, cada uma com 14 endereços. Isso permitiria que o provedor de acesso do exemplo fornecesse links para até 14 empresas diferentes, desde que cada uma não precisasse de mais do que 14 endereços. É possível criar diferentes combinações, reservando números diferentes de bits para a rede e o host:
P á g i n a | 91
Máscara
Bits da rede
Bits do host
Número de redes
Número de hosts
255.255.255.0 (/24)
nenhum
00000000
nenhuma
254 endereços (do 1 ao 254)
255.255.255.192 (/26)
11
000000
2 endereços (2 e 3)
62 endereços (de 1 a 62)
255.255.255.224 (/27)
111
00000
6 endereços (de 1 a 6)
30 endereços (de 1 a 30)
255.255.255.240 (/28)
1111
0000
14 endereços (de 1 a 14)
14 endereços (de 1 a 14)
255.255.255.248 (/29)
11111
000
30 endereços (de 1 a 30)
6 endereços (de 1 a 6)
255.255.255.252 (/30)
111111
00
62 endereços (de 1 a 62)
2 endereços (2 e 3)
Em qualquer um dos casos, para obter o endereço IP basta converter os dois endereços (rede e estação) para binário, "juntar" os bits e converter o octeto para decimal. Usando uma máscara de sub-rede 192, por exemplo, e estabelecendo o endereço 2 (ou "10" em binário) para a rede e 47 (ou "101111" em binário) para o host, juntaríamos ambos os binários obtendo o octeto "10101111" que corresponde ao decimal "175". Se usássemos a máscara de sub-rede 248, estabelecendo o endereço 17 (binário "10001") para a rede e o endereço 5 (binário "101") para o host, obteríamos o octeto "10001101" que corresponde ao decimal "141". Na hora de escrever o endereço e a máscara (como ao criar uma regra de firewall, ou ajustar um determinado arquivo com permissões de acesso), você pode tanto escrever a máscara por extenso, como em "192.168.0.0/255.255.255.0", quanto escrever usado a notação abreviada, como em "192.168.0.0/24". Essa possibilidade é usada ao extremo pelas empresas de hospedagem, que dividem as faixas de endereços disponíveis em diversas faixas menores, com apenas 4 ou 8 endereços, que são atribuídas aos servidores dedicados hospedados em seus data-centers. Ao usar a máscara 255.255.255.248, por exemplo, apenas 3 bits do endereço são reservados ao endereçamento dos hosts (convertendo 255.255.255.248 para binário, você teria 11111111.11111111.11111111.11111000), permitindo que uma faixa de endereços originalmente de classe A (16 milhões de hosts) seja dividida em 2.080.768 pequenas redes, uma para cada servidor dedicado que for locado. Três bits permitem 8 combinações, mas o primeiro e o último endereço são reservados ao endereço da rede e ao endereço de broadcast, fazendo com que apenas 6 endereços possam realmente ser utilizados. Destes, mais um é sacrificado, pois é atribuído ao gateway (sem o gateway o servidor não acessa a Internet), de forma que no final apenas 5 endereços ficam realmente disponíveis.
P á g i n a | 92 Imagine, por exemplo, que você locou um servidor dedicado que tem disponível uma faixa de endereços que vai do 72.232.35.106 até o 72.232.35.110 (com máscara 255.255.255.248), sendo que o endereço 72.232.35.105 é o gateway da rede. Originalmente, a faixa de endereços iria do 72.232.35.104 ao 72.232.35.111, mas como o primeiro endereço é reservado à rede, o último aos pacotes de broadcast e mais um endereço precisa ficar reservado ao gateway da rede, ficamos no final com apenas 5 endereços válidos, como citei. Convertendo os endereços para binário, teríamos: 72.232.35.104 = 01001000 . 11101000 . 00100011 . 01101 000 72.232.35.105 = 01001000 . 11101000 . 00100011 . 01101 001 72.232.35.106 = 01001000 . 11101000 . 00100011 . 01101 010 72.232.35.107 = 01001000 . 11101000 . 00100011 . 01101 011 72.232.35.108 = 01001000 . 11101000 . 00100011 . 01101 100 72.232.35.109 = 01001000 . 11101000 . 00100011 . 01101 101 72.232.35.110 = 01001000 . 11101000 . 00100011 . 01101 110 72.232.35.111 = 01001000 . 11101000 . 00100011 . 01101 111 Como pode ver, os 8 endereços esgotam todas as possibilidades possíveis dentro da faixa, já que temos apenas 3 bits disponíveis para o host. Os 29 primeiros bits do endereço se referem à rede e por isso são sempre iguais e apenas os três últimos se referem ao host. Este processo de converter os endereços para binário é um pouco trabalhoso, mas ajuda a entender melhor a estrutura dos endereços no CIDR. Você pode se perguntar qual é a necessidade de ter uma faixa com 5 endereços utilizáveis se o servidor é apenas um. Existem diversos motivos para isso. A primeira é que, ao configurar um servidor dedicado, você precisa de uma faixa de endereços inteira para poder configurar o DNS reverso, um pré-requisito para que seus e-mails não sejam rotulados como spam por outros servidores. Ao registrar um domínio, você precisa fornecer os endereços de dois servidores DNS, que responderão por ele. Em vez de ter dois servidores, você pode utilizar outro dos seus 5 endereços disponíveis para criar um alias (apelido) para a placa de rede do seu servidor dedicado e assim poder configurá-lo para responder simultaneamente como servidor DNS primário e secundário, eliminando assim a necessidade de utilizar dois servidores separados. Novamente, essa configuração é possível apenas caso o servidor possua uma faixa de endereços própria. No final, a configuração de rede de um servidor dedicado acaba sendo algo similar a isto: Endereço IP: 72.232.35.106 Máscara: 255.255.255.248 Gateway: 72.232.35.105 Endereço da rede: 72.232.35.104 Endereço de broadcast: 72.232.35.111 Alias da placa de rede (para o DNS secundário): 72.232.35.107 Endereços vagos: 72.232.35.108, 72.232.35.109 e 72.232.35.110 12.4 Protocolos de Rede Protocolo IP é o protocolo responsável para permitir que haja comunicação e encaminhamento de dados entre duas máquinas. Tanto no Modelo TCP/IP quanto no Modelo OSI, este protocolo encontra-se na cama de rede. É através do IP que duas máquinas são localizadas na internet, e com isso a comunicação entre elas torna-se possível. O serviço de datagramas oferecido pelo Protocolo IP não é confiável, todavia, é conhecido por um serviço de melhor esforço, ou seja, ele faz de tudo para que os pacotes cheguem ao destino com sucesso, entretanto, se não for possível nada é feito a respeito para que o problema seja resolvido. Caso a aplicação queira uma maior confiabilidade, essa garantia ocorre na camada de transporte, utilizando o protocolo TCP, em vez de UDP. O IP foi descrito no RFC 791 da IETF, e sua publicação ocorreu em
P á g i n a | 93 setembro de 1981. O documento faz uma descrição do protocolo. Existem duas versões do protocolo IP: o IPv4 é a versão atual, na qual se utiliza na grande maioria das situações, enquanto que a versão IPv6 é uma atualização, que prevê uma quantidade de IPs exponencialmente maior e deve substituir gradativamente o IPv4. O protocolo IP determina o destinatário da mensagem graças a 3 campos: • • •
O campo dirige IP: endereço da máquina. O campo máscara de subrede: uma máscara de subrede permite ao protocolo IP determinar a parte do endereço IP que se refere à rede. O campo ponte estreita por defeito: Permite ao protocolo Internet saber a que máquina entregar o datagrama, se por acaso a máquina de destino não está na rede local.
Os datagramas Os dados circulam na Internet sob a forma de datagramas (fala-se também de pacotes). Os datagramas são dados encapsulados, isto é, são dados aos quais se acrescentaram cabeçalhos que correspondem a informações sobre o seu transporte (como o endereço IP de destino). Os dados contidos nos datagramas são analisados (e eventualmente alterados) pelos switchs que permitem o seu trânsito.
<--
32 bits
Versão (4 bits)
Comprimento de cabeçalho (4 bits)
Tipo de serviço (8 bits)
Comprimento total (16 bits)
Identificação (16 bits) Duração de vida (8 bits)
-->
Bandeira (3 bits) Protocolo (8 bits)
Desfasamento fragmento (13 bits) Soma de controlo cabeçalho (16 bits)
Endereço IP fonte (32 bits) Endereço IP destino (32 bits) Dados
Eis o significado dos diferentes campos: • Versão (4bits): trata-se da versão do protocolo IP que se utiliza (actualmente utiliza-se a versão 4 IPv4) para verificar a validade do datagrama. É codificada em 4 bits. • Comprimento de cabeçalho, ou IHL para Internet Header Length (4 bits): trata-se do número de palavras de 32 bits que constituem o cabeçalho (nota: o valor mínimo é 5). Este campo é codificado em 4 bits. • Tipo de serviço (8 bits): indica a maneira segundo a qual o datagrama deve ser tratado. • Comprimento total (16 bits) : indica a dimensão total do datagrama em bytes. A dimensão deste campo de 2 bytes, a dimensão total da datagrama não pode exceder 65536 bytes. Utilizado conjuntamente com a dimensão do cabeçalho, este campo permite determinar onde estão situados os dados. • Identificação, bandeiras (flags) e deslocação de fragmento são campos que permitem a fragmentação dos datagramas, e que serão explicados abaixo. • Duração de vida chamada também TTL, para Time To Live (8 bits): este campo indica o número máximo de switchs através através dos quais o datagrama pode passar. Assim este campo é reduzido a cada passagem em
P á g i n a | 94
•
•
• •
switch, quando este atinge o valor crítico de 0, o switch destrói o datagrama. Isto evita o congestionamento da rede pelos datagramas perdidos. Protocolo (8 bits): este campo, em notação decimal, permite saber de que protocolo procede o datagrama − ICMP : 1 − IGMP : 2 − TCP : 6 − UDP : 17 Soma de controlo do cabeçalho ou, em inglês, header checksum (16 bits) : este campo contém um valor codificado de 16 bits, que permite controlar a integridade do cabeçalho a fim de determinar se este não foi alterado durante a transmissão. A soma de controlo é o complemento de todas as palavras de 16 bits do cabeçalho (campo soma de controlo excluído). Isto faz-se para que, quando se faz a soma dos campos do cabeçalho (soma de controlo incluída), se obtenha um número com todos os bits posicionados a 1. Endereço IP fonte (32 bits) : Este campo representa o endereço IP da máquina emissora, permite ao destinatário responder Endereço IP destino (32 bits) : endereço IP do destinatário da mensagem
A fragmentação dos datagramas IP Como vimos anteriormente, a dimensão máxima de um datagrama é de 65536 bytes. Contudo, este valor nunca é atingido porque as redes não têm uma capacidade suficiente para enviar pacotes assim tão grandes. Além disso, as redes na Internet utilizam diferentes tecnologias, de modo que a dimensão máxima de um datagrama varia de acordo com o tipo de rede. A dimensão máxima de uma trama chama-se MTU (Maximum Transfer unit), que provocará a fragmentação do datagrama se este tiver uma dimensão maior do que a MTU da rede.
Tipo de rede MTU (em bytes) Arpanet
1000
Ethernet
1500
FDDI
4470
A fragmentação de um datagrama faz-se a nível dos switchs, ou seja, durante a transição de uma rede cuja MTU é considerável para uma rede cuja MTU é mais fraca. Se o datagrama for demasiado grande para passar na rede, o switch vai fragmentá-lo, quer dizer, recortá-lo em fragmentos de dimensões inferiores ao MTU da rede e de modo a que a dimensão do fragmento seja um múltiplo de 8 bytes.
O switch vai seguidamente enviar estes fragmentos de maneira independente e reencapsulá-los (acrescentar um cabeçalho a cada fragmento) de maneira a ter em conta a nova dimensão do fragmento. Além disso, o switch acrescenta informações para que a máquina de destino possa remontar os fragmentos na boa correcta. Nada nos diz, contudo, que os fragmentos chegarão pela boa ordem, já que são encaminhados independentemente uns dos outro. Para ter em conta a fragmentação, cada datagrama possui vários campos que permitem a sua remontagem : •
Campo deslocação de fragmento (de 13 bits): campo permitindo conhecer a posição do início do fragmento no datagrama inicial. A unidade de medida deste campo é de 8 bytes (o primeiro fragmento que tem um valor de zero).
P á g i n a | 95 • • •
Campo identificação (16 bits): número atribuído a cada fragmento a fim de permitir a sua remontagem. Campo comprimento total (16 bits): é calculado novamente para cada fragmento. Campo bandeira (3 bits): é composto de três bits : − O primeiro não é utilizado. − O segundo (chamado DF: Don' t Fragment) indica se o datagrama pode ser fragmentado ou não. Se por acaso um datagrama tem este bit posicionado em 1 e o switch não pode encaminhá-lo sem o fragmentar, então o datagrama é rejeitado com uma mensagem de erro − O último (designado MF : More Fragments, em portuguêsMais fragmentos) indica se o datagrama for um fragmento de dado (1). Se o indicador estiver a zero, isso indica que o fragmento é o último (por conseguinte , que o switch deveria estar na posse dos fragmentos precedentes) ou que o datagrama não foi alvo de uma fragmentação.
Protocolo ARP O protocolo ARP tem um papel fundamental entre os protocolos da camada Internet da sequência TCP/IP, porque permite conhecer o endereço físico de uma placa de rede (conhecido por MAC) que corresponde a um endereço IP; é para isto que se chama Protocolo de resolução de endereço (em inglês ARP significa Address Resolution Protocol). Cada máquina ligada à rede possui um número de identificação de 48 bits. Este número é um número único que é fixado a partir do fabrico da placa em fábrica. Contudo, a comunicação na Internet não se faz directamente a partir deste número (porque seria necessário alterar o endereçamento dos computadores cada vez que se alterasse uma placa de rede), mas a partir de um endereço dito lógico, atribuído por um organismo: o endereço IP. Assim, para fazer a correspondência entre os endereços físicos e os endereços lógicos, o protocolo ARP interroga as máquinas da rede para conhecer o seu endereço físico, seguidamente cria uma tabela de correspondência entre os endereços lógicos e os endereços físicos numa memória secreta. Quando uma máquina deve comunicar com outra, consulta a tabela de correspondência. Se por acaso o endereço pedido não se encontra na tabela, o protocolo ARP emite um pedido na rede. O conjunto das máquinas da rede vai comparar este endereço lógico ao seu. Se uma dentre elas se identificar com esse endereço, a máquina vai responder à ARP que vai armazenar o par de endereços na tabela de correspondência e a comunicação vai então poder ter lugar. Resumidamente, o ARP funciona da seguinte forma: 1. 2. 3. 4.
Quando uma máquina A quer falar com uma máquina B e não sabe seu endereço físico, envia um pacote ARP de request em modo broadcast. Todas as máquinas em operação recebem o pedido, mas somente a máquina B responde, pois ela reconhece que o endereço pedido é o seu. A Guarda o endereço físico de B FB em cache. A envia mensagem para FB.
Cache ARP Em uma rede de grande porte e ocupada, o envio de pacotes em broadcasting interromperá todos os hosts para que eles processem cada pacote da rede. Essa interrupção prejudicará de maneira significativa a eficiência da rede e a tornaria mais lenta. Para reduzir os broadcasts, os hosts de redes que necessitam utilizar o ARP mantêm uma lista de endereços IP e Ethernet que correspondem a eles obtidos por solicitações anteriores. Isto é listado como Cache ARP e é atualizado sempre que uma solicitação for enviada. Depois de algum tempo o endereço no ARP Cache é removido, independentemente de estar sendo usado ou não. Isto é chamado de Aging.
P á g i n a | 96 O protocolo RARP O protocolo RARP (Reverse Address Resolution Protocol) é muito menos utilizado e significa Protocolo ARP invertido, trata-se por conseguinte de uma espécie de anuário invertido dos endereços lógicos e físicos. Na realidade, o protocolo RARP é utilizado essencialmente para as estações de trabalho que não têm disco duro e que desejam conhecer o seu endereço físico… O protocolo RARP permite a uma estação conhecer o seu endereço IP a partir de uma tabela de correspondência entre endereço MAC (endereço físico) e endereços IP alojados por uma ponte (gateway) situada na mesma rede local (LAN). Para tal, é necessário que o administrador defina os parâmetros do gateway (switch) com a tabela de correspondência dos endereços MAC/IP. Com efeito, ao contrário do ARP, este protocolo é estático. É necessário, por isso, que a tabela de correspondência esteja sempre actualizada para permitir a conexão de novas placas de rede. O RARP sofre de numerosas limitações. Necessita muito tempo de administração para manter tabelas importantes nos servidores. Isto é ainda mais evidente quando a rede é grande. Tal facto coloca o problema do recurso humano, necessário para a manutenção das tabelas de correspondência, e das capacidades dos materiais que alojam a parte servidor do protocolo RARP. Com efeito, o RARP permite a vários servidores responder pedidos, embora não preveja mecanismos que garantam que todos os servidores são capazes de responder, nem mesmo que respondam de maneira idêntica. Assim, neste tipo de arquitectura não se pode ter confiança num servidor RARP para saber se um endereço MAC poder ser vinculado a um endereço IP, porque outros servidores ARP podem ter uma resposta diferente. Uma outra limitação de RARP é que um servidor pode servir apenas um LAN. Para paliar os dois primeiros problemas de administração, o protocolo RARP pode ser substituído pelo protocolo DRARP, que é uma versão dinâmica. Uma outra abordagem, consiste em utilizar um servidor DHCP, que lhe permite uma resolução dinâmica dos endereços. Além disso, o DHCP é compatível com o protocolo BOOTP. Funciona apenas com IP. Protocolo ICMP O protocolo ICMP (Internet Control Message Protocol) é um protocolo que permite gerir as informações relativas aos erros ns máquinas conectadas. Dado os poucos controlos que o protocolo IP realiza, permite não corrigir estes erros mas dá-los a conhecer aos protocolos das camadas vizinhas. Assim, o protocolo ICMP é utilizado por todos os switchs, que o utilizam para assinalar um erro (chamado Delivery Problem). As mensagens de erro ICMP são transportadas na rede sob a forma de datagrama, como qualquer dado. Assim, as mensagens de erro podem elas mesmas estar sujeitas a erros. Contudo, no caso de erro num datagrama que transporta uma mensagem ICMP, nenhuma mensagem de erro é emitida para evitar um efeito “bola de neve” no caso de incidente sobre a rede. Eis o aspecto de uma mensagem ICMP encapsulada num datagrama IP:
Rubrica
Mensagem ICMP Tipo Código (8 bits) (8 bits)
Checksum (16 bits)
Mensagem (dimensão variável)
O mecanismo de controle que emite mensagens quando acontece algum erro é a função principal do protocolo ICMP. O ICMP permite aos gateways enviar mensagens de erros ou de controle a outros gateways ou hosts. ICMP provê comunicação entre os software de IP numa máquina e o software de IP numa outra máquina.
P á g i n a | 97 ICMP somente reporta condições de erros à fonte original. A fonte deve relatar os erros aos programas de aplicação individuais e tomar ação para corrigir o problema. Uma das mensagens que o ICMP pode enviar é: Destination Unreachable, o qual, por sua vez pode ser dos seguintes tipos: - Network Unreachable (rede não alcançável) - Host Unreachable (host não alcançável) - Port Unreachable (port não alcançável) - Destination Host Unknown (Host destino desconhecido) - Destination Network Unknown (rede destino desconhecida) Protocolo UDP O protocolo UDP (User Datagram Protocol) é um protocolo não orientado para a conexão da camada transporte do modelo TCP/IP. Este protocolo é muito simples já que não fornece controlo de erros (não está orientado para a conexão). A rubrica do segmento UDP é por conseguinte muito simples: Porta Fonte (16 bits)
Porta Destino (16 bits)
Comprimento (16 bits)
Soma de controlo (16 bits) Dados (comprimento variável)
Significado dos diferentes campos •
• •
•
Porta Fonte: trata-se do número de porta que corresponde à aplicação emissora do segmento UDP. Este campo representa um endereço de resposta para o destinatário. Assim, este campo é opcional, isto significa que se não se precisar a porta fonte, as 16 bits deste campo serão postas a zero, neste caso o destinatário não poderá responder (isto não é necessariamente necessário, nomeadamente para mensagens unidireccionais. Porta Destino: Este campo contém a porta que corresponde à aplicação da máquina destinatário à qual nos dirigimos. Comprimento: Este campo precisa o comprimento total do segmento, incluindo o cabeçalho, ora o cabeçalho tem um comprimento de 4 x 16 bits (são 8 x 8 bits), então o campo comprimento é necessariamente superior ou igual a 8 bytes. Soma de controlo: Trata-se de uma soma de controlo realizada de maneira a poder controlar a integridade do segmento.
Protocolo TCP O TCP (que significa Transmission Control Protocol, em português: Protocolo de Controle de Transmissão) é um dos principais protocolos da camada de transporte do modelo TCP/IP. Ele permite, a nível das aplicações, gerir os dados em proveniência da (ou com destino à) camada inferior do modelo (ou seja, o protocolo IP). Quando os dados são fornecidos ao protocolo IP, este encapsula-os em datagramas IP, fixando o campo protocolo em 6 (para saber que o protocolo ascendente é o TCP...). O TCP é um protocolo orientado para a conexão, isto é, ele permite a duas máquinas comunicantes, controlar o estado da transmissão. As principais características do protocolo TCP são: • •
TCP entrega ordenadamente os datagramas provenientes do protocolo IP TCP verifica a onda de dados para evitar uma saturação da rede
P á g i n a | 98 TCP formata os dados em segmentos de comprimento variável para "entregá-los" ao protocolo IP TCP permite o multiplex dos dados, quer dizer, faz circular, simultaneamente, as informações que proveem de fontes (aplicações, por exemplo) distintas numa mesma linha TCP permite a início e o fim de uma comunicação de maneira educada.
• • •
O objetivo do TCP Graças ao protocolo TCP, as aplicações podem comunicar de forma segura (graças ao sistema de avisos de recepção do protocolo TCP), independentemente das camadas inferiores. Isto significa que os roteadores (que trabalham na camada Internet) teem como único papel o encaminhamento dos dados sob a forma de datagramas, sem se preocuparem com o controle dos dados, porque este é realizado pela camada de transporte (mais concretamente pelo protocolo TCP). Durante uma comunicação através do protocolo TCP, as duas máquinas devem estabelecer uma conexão. A máquina emissora (a que pede a conexão) chama-se cliente, enquanto a máquina receptora se chama servidor. Diz-se então que estamos num ambiente Cliente-Servidor. As máquinas em tal ambiente comunicam em modo ligado, ou seja, que a comunicação é feita nos dois sentidos. Para permitir o bom desenrolar da comunicação e de todos os controles que a acompanham, os dados são encapsulados, isto é, juntamos ao pacote de dados um cabeçalho que vai sincronizar as transmissões e assegurar a sua recepção. Outra particularidade do TCP é poder controlar o débito dos dados graças à sua capacidade para emitir mensagens de dimensão variável: estas mensagens são chamadas de "segmentos". Formato dos dados em TCP
Significado dos diferentes campos: •
Porta Fonte (16 bits): Porta relativa à aplicação corrente na máquina fonte
•
Porta de Destino (16 bits): Porta relativa à aplicação corrente na máquina de destino
•
Número de ordem (32 bits): Quando a bandeira SYN é 0, o número de ordem é o da primeira palavra do segmento corrente.
Quando SYN é 1, o número de ordem é igual ao número de ordem inicial utilizado para sincronizar os números de sequência (ISN) •
Número de aviso de recepção (32 bits): O número de aviso de recepção, igualmente chamado número de pagamento, corresponde ao número (de ordem) do próximo segmento esperado, e não o número do último segmento recebido.
•
Defasagem dos dados (4 bits) : localiza o início dos dados no pacote. A defasagem é essencial aqui porque o campo de opções é de dimensão variável
P á g i n a | 99 •
Reservada(6 bits): Campo inutilizado atualmente, mas previsto para o futuro
•
As bandeiras(flags) (6x1 bit): representam informações suplementares: − URG: se esta bandeira estiver em 1 o pacote deve ser tratado urgentemente. − ACK: se esta bandeira estiver em 1 o pacote é um aviso de recepção. − PSH (PUSH): se esta bandeira estiver em 1, o pacote funciona de acordo com o método PUSH. − RST: se esta bandeira estiver em 1, a conexão é reiniciada. − SYN: A Bandeira TCP SYN indica um pedido de estabelecimento de conexão. − FIM: se esta bandeira estiver em 1, a conexão é interrompida.
•
Janela (16 bits): Campo permitindo conhecer o número de bytes que o receptor quer receber, sem aviso de recepção.
•
Soma de controle: (Checksum ou CRC): A soma de controle é realizada fazendo a soma dos campos de dados do cabeçalho, para poder verificar a integridade do cabeçalho.
•
Ponteiro de emergência (16 bits): Indica o número de ordem a partir do qual a informação se torna urgente.
•
Opções (Dimensão variável): Opções diversas
•
Preenchimento: Preenche-se o espaço que fica após as opções com zeros, para ter um comprimento múltiplo de 32 bits.
Protocolo FTP FTP significa File Transfer Protocol (Protocolo de Transferência de Arquivos), e é uma forma bastante rápida e versátil de transferir arquivos, sendo uma das mais usadas na Internet. Pode referir-se tanto ao protocolo quanto ao programa que implementa este protocolo (Servidor FTP, neste caso, tradicionalmente aparece em letras minúsculas, por influência do programa de transferência de arquivos do Unix). A transferência de dados em redes de computadores envolve normalmente transferência de arquivos e acesso a sistemas de arquivos remotos (com a mesma interface usada nos arquivos locais). O FTP (RFC 959) é baseado no TCP, mas é anterior à pilha de protocolos TCP/IP, sendo posteriormente adaptado para o TCP/IP. É o padrão da pilha TCP/IP para transferir arquivos, é um protocolo genérico independente de hardware e do sistema operacional e transfere arquivos por livre arbítrio, tendo em conta restrições de acesso e propriedades dos mesmos. Visão geral do protocolo O protocolo é especificado na RFC 959, resumida logo a seguir. Um cliente realiza uma conexão TCP para a porta 21 do servidor. Essa conexão, chamada de conexão de controle, permanece aberta ao longo da sessão enquanto uma segunda conexão, chamada conexão de dados, é estabelecida na porta 20 do servidor e em alguma porta do cliente (estabelecida no diálogo entre ambos) como requisitado para a transferência de arquivo. A conexão de controle é utilizada para administração da sessão (comandos, identificação, senhas)2 entre cliente e servidor utilizando um protocolo semelhante ao Telnet. Por exemplo, "RETR filename" iria transferir o arquivo especificado de um servidor para um cliente. Devido a essa estrutura de duas portas, FTP é considerado out-of-band, ao contrário de protocolos in-band, tal como HTTP . O servidor responde na conexão de controle com três dígitos de código de estado em ASCII com uma mensagem de texto opcional. Por exemplo, "200" ou "200 OK" significa que o último comando obteve sucesso. Os números representam o número do código e o texto opcional representa as explicações ou parâmetros necessários . Uma transferência de arquivo em progresso, sobre uma conexão de dados, pode ser abortada utilizando uma mensagem de interrupção enviada sobre a conexão de controle. FTP pode ser executado em modo ativo ou passivo, os quais determinam como a conexão de dados é estabelecida. No modo ativo, o cliente envia para o servidor o endereço IP e o número da porta na qual ele irá ouvir e então o servidor inicia a conexão TCP. Em situações onde o cliente está atrás de um firewall e inapto para aceitar entradas de conexões TCP, o modo passivo pode ser utilizado. O cliente envia um comando PASV para o servidor e recebe um endereço IP e um número de porta como resposta, os quais o cliente utiliza para abrir a conexão de dados com o servidor.1 Ambos os
P á g i n a | 100 modos foram atualizados em Setembro de 1998 para adicionar suporte ao IPv6 e feitas algumas mudanças no modo passivo, tornando-o modo passivo estendido. Durante a transferência de dados sobre a rede, quatro representações de dados podem ser utilizadas: Modo ASCII: usado para texto. Dado é convertido, se necessário, da representação de caracteres do host remetente para 8-bit em ASCII antes da transmissão, e (novamente, se necessário) para a representação de caracteres do host destinatário. Como consequência, esse modo é inapropriado para arquivos que contenham dados numéricos em binário, ponto flutuante ou forma decima codificada em binário. • Modo imagem (normalmente chamada de modo binário): a máquina remetente envia cada arquivo byte a byte e como tal, o destinatário armazena o fluxo de bytes conforme ele os recebe (o suporte ao modo imagem tem sido recomendado para todas as implementações de FTP). • Modo EBCDIC: utilizado para texto simples entre hosts utilizando o conjunto de caracteres EBCDIC. • Modo local: permite que dois computadores com configurações idênticas enviem dados em um formato proprietário sem a necessidade de convertê-los para ASCII. Para arquivos texto, são fornecidas opções para diferentes controles de formato e estrutura de registros. Esses recursos foram projetados para suporte à formatação Telnet ou ASA. •
A transferência de dados pode ser feita em qualquer um dos três modos a seguir: •
• •
Modo fluxo: dado é enviado como um fluxo contínuo, liberando FTP de fazer algum processamento. Ao invés disso, todo processamento é deixado para o TCP. Nenhum indicador de fim de arquivo é necessário, a menos que o dado esteja dividido dentro de registros. Modo de bloqueio: FTP quebra o dado dentro de vários blocos( bloco de cabeçalho, contagem de byte e campo de dado) e então passa-o para o TCP. Modo comprimido: dado é comprimido utilizando um algoritmo simples.
Como ocorre a transferência de arquivos A transferência de arquivos dá-se entre um computador chamado "cliente" (aquele que solicita a conexão para a transferência de dados) e um servidor (aquele que recebe a solicitação de transferência). O utilizador, através de software específico, pode selecionar quais arquivos enviar ou receber do servidor. Para existir uma conexão ao servidor,caso o servidor exija,o utilizador informa um nome de utilizador (ou username, em inglês) e uma senha password, bem como o nome correto do servidor ou seu endereço IP. Se os dados foram informados corretamente, a conexão pode ser estabelecida. Acesso aos servidores FTP O acesso a servidores FTP pode ocorrer de dois modos: através de uma interface ou através da linha de comando, tanto usuários UNIX como usuários Windows podem acessar através dos dois modos. O modo linha de comando está presente em qualquer distribuição UNIX-like e Windows, através do telnet. A partir de qualquer browser credenciado (Internet Explorer, Firefox, ou mesmo no Windows Explorer), conforme a norma RFC1738 também é possível aceder a um servidor FTP digitando na barra de endereço: ftp://[username]:[password]@[servidor] ou ftp://[username]:[password]@[servidor]:[porta] Comandos do cliente FTP
P á g i n a | 101 Os servidores de FTP raramente mudam, mas novos clientes FTP aparecem com bastante regularidade. Estes clientes variam no número de comandos que implementam, a maioria dos clientes FTP comerciais implementam apenas um pequeno subgrupo de comandos FTP. Mesmo que o FTP seja um protocolo orientado a linha de comandos, a nova geração dos clientes FTP esconde esta orientação num ambiente gráfico, muitas vezes, muito desenvolvido. A interface cliente do FTP do BSD UNIX é um padrão por si mesma, possuindo muitos comandos arcaicos como tenex ou carriage control, que hoje não têm uso. Os comandos mais usados são o cd, dir, ls,get e put. O FTP tem particularidades que são hoje pouco comuns. Depois da ativação do ftp, é estabelecida uma conexão ao host remoto. Esta conexão envolve o uso da conta do usuário no host remoto, sendo que alguns servidores FTP disponibilizam anonymous FTP. Certos comandos são os que fazem a transferência bidirecional de arquivos, são eles: • •
get do servidor FTP para o host local (mget para mais que um arquivo) put para o servidor FTP a partir do host local (mput para mais que um arquivo)
Lista de Comandos FTPs Os comandos abaixo podem ser executados no FTP através da linha de comando. Os comandos do FTP podem ser abreviados, desde que não formem expressões ambíguas. Os comandos podem estar abreviados. Seguem os comandos: • • • • • • • • • • • • • • • • • • • • • • • • • • •
!: Executa o comando na máquina local. ?: Semelhante a help. append: Adiciona dados a um arquivo existente. ascii: Configura o tipo de transferência de arquivos para ASCII. bell: Emite um bip quando um comando é executado. binary: Configura o tipo de transferência de arquivos para binário. bye: Encerra a sessão FTP. cd: Seguido de caminho/diretório muda para o diretório informado. delete: Apaga um arquivo. Para mais de um arquivo usa-se mdelete. debug: Estabelece a modalidade de depuração. dir: Mostra o conteúdo do diretório servidor atual. disconnect: Semelhante a bye. get: Obtêm um arquivo do servidor. Para mais de um arquivo usa-se mget. glob: Seleciona a expansão para nomes de arquivo. hash: Demonstra cada bloco do arquivo durante a transferência. Cada bloco compõe-se de 1024 bytes. help: Lista sumariamente todos comandos disponíveis. literal: Permite enviar comandos arbitrários. ls: Mostra uma lista abreviada do conteúdo do diretório servidor.Para mais de uma pasta usa-se *mls. mkdir: Cria um diretório ou subdiretório no servidor. prompt: Ativa/desativa o modo interativo. put: Envia um arquivo ao servidor. Para enviar mais de um arquivo usa-se mput. pwd: Mostra o diretório de trabalho. quit: Finaliza a sessão FTP. quote: Envia subcomandos do servidor FTP, como se encontram no servidor. recv: Similar a get. remotehelp: Solicita ajuda do servidor FTP remoto. rename: Renomeia um arquivo.
P á g i n a | 102 • • • • • •
send: Semelhante a put. status: Obtem informações de estado do servidor. trace: Demonstra o caminho percorrido pelo arquivo na transferência. type: Especifica o tipo de representação. user: Iniciar a sessão no servidor. verbose: Ativa/desativa a modalidade literal.
Protocolo SMTP O protocolo SMTP (Simple Mail Transfer Protocol, que se pode traduzir por Protocolo Simples de Transferência de Correio) é o protocolo standard que permite transferir o correio de um servidor a outro em conexão ponto a ponto. Trata-se de um protocolo que funciona em modo conectado, encapsulado numa trama TCP/IP. O correio é entregue diretamente ao servidor de correio do destinatário. O protocolo SMTP funciona graças a comandos textuais enviados ao servidor SMTP (por defeito, para a porta 25). Cada um dos comandos enviados pelo cliente (validados pela cadeia de caracteres ASCII CR/LF, equivalente a um clique na tecla ENTER) é seguido de uma resposta do servidor SMTP composta de um número e de uma mensagem descritiva. Eis um cenário de pedido de envio de mail a um servidor SMTP 1.
2. 3. 4.
Quanto da abertura da sessão SMTP, o primeiro comando a enviar é o comando HELO seguido de um espaço (notado
) e o nome de domínio da sua máquina (para lhe dizer "bom dia, sou a máquina tal"), seguidamente validar por entrada (notado ). Desde Abril de 2001, as especificações do protocolo SMTP, definidas no RFC 2821, impõem que o comando HELO seja substituído pelo comando HELO. O segundo comando é "MAIL FROM" seguido do endereço de correio eletrônico do remetente. Se o comando for aceite, o servidor devolve a mensagem "250 OK" O comando seguinte é "RCPT TO: " seguido do endereço de correio eletrônico do destinatário. Se o comando for aceite, o servidor devolve a mensagem "250 OK" AO comando DATA é a terceira etapa do envio. Anuncia o início do corpo da mensagem. Se o comando for aceite, o servidor reenvia uma mensagem intermédia numerada 354, que indica que o envio do corpo do mail pode começar e considera o conjunto das linhas seguintes até ao fim da mensagem localizada por uma linha que contém unicamente um ponto. O corpo do mail contém eventualmente alguns dos cabeçalhos como: Date, Subject, Cc, Bcc e From.
Se o comando for aceite, o servidor devolve a mensagem "250 OK" Eis um exemplo de transação entre um cliente (C) e um servidor SMTP (S) S: C: S: C:
220 smtp.kioskea.net SMTP Ready EHLO machine1.kioskea.net 250 smtp.kioskea.net MAIL FROM:
S: 250 OK C: RCPT TO: S: 250 OK C: RCPT TO: S: 550 No such user here C: DATA S: 354 Start mail input; end with . C: Subject: Petit Bonjour
P á g i n a | 103 C: Salut Meandus, C: comment ca va? C : C: A bientot! C: . S: 250 OK C: QUIT R: 221 smtp.kioskea.net closing transmission. As especificações de base do protocolo SMTP exigem que todos os caracteres transmitidos sejam codificados em código ASCII de 7 bits 7 e que o oitavo bit esteja explicitamente a zero. Assim, para enviar caracteres acentuados, é necessário recorrer a algoritmos que integrem as especificações MIMO : • base64 para os anexos • quoted-printable (de abbréviation QP) para os caracteres especiais contidos no corpo da mensagem É assim possível enviar um correio graças a um simples Telnet na porta 25 do servidor SMTP : telnet smtp.kioskea.net 25 Eis um sumário dos principais comandos SMTP:
Comando HELO (doravanteEHLO)
MAIL FROM:
RCPT TO:
Exemplo
EHLO 193.56.47.125
MAIL FROM: [email protected] RCPT TO: [email protected]
Descrição Identificação com a ajuda do endereço IP ou do nome de domínio do computador remetente
Identificação do endereço do remetente
Identificação do endereço do destinatário
DATA
DATA message
Corpo do mail
QUIT
QUIT
Saída do servidor SMTP
HELP
HELP
Lista dos comandos SMTP suportados pelo servidor
Protocolo VRRP Redundância de Rota Padrão (Default Gateway) Hoje é muito comum verificar-se a presença de redundância no núcleo (core) da rede. Múltiplos caminhos, normalmente redundantes em camada 2 (enlace) ou em camada 3 (rede), incluindo protocolos como RSTP, STP, OSPF, RIPv2, BGP, EIGRP, etc. Na parte mais interna da rede, principalmente nas zonas demilitarizadas (DMZ), é possível ver que os servidores também possuem boa redundância (placas de rede, RAID de discos, coolers e fontes adicionais, etc), porém continuam com um único default-gateway.
P á g i n a | 104 O default gateway indisponível pode levar a falha e queda de dezenas ou centenas de servidores, causando enorme prejuízo para os clientes Vale lembrar que em servidores (como DNS, Webservers, Bancos de dados, etc), o endereço IP é fixo e o default-gateway também é inserido manualmente, tornando a troca de endereço em dezenas de locais uma tarefa impraticável no dia-adia. Uma vez que normalmente cada equipamento possui apenas 1 default gateway, sendo assim aqui estariam soluções IMPRÓPRIAS: • • • •
Dois equipamentos com IPs diferentes; Dois equipamentos com o mesmo IP; Scripts que trocam IPs de equipamentos ou scripts que alteram a rota padrão; Rodar protocolos de roteamento dinâmico em todos os computadores;
Hoje é possível com uso de protocolos próprios para esse fim, implantar uma tecnologia que transporta o IP virtual de um roteador para outro em caso de falha! A tecnologia chamada VRRP (Protocolo de Redundância de Roteador Virtual ou Virtual Router Redundancy Protocol) é um protocolo não proprietário de redundância descrito na RFC 3768 criado para garantir alta disponibilidade da rota padrão (default gateway) de hosts na mesma subnet. Isso é feito divulgando-se um “roteador virtual” como o default gateway dessa rede, onde esse roteador virtual é criado através de mais de um roteador (normalmente na configuração master/slave) como se fossem apenas 1 roteador. Ainda existe um outro protocolo chamado HSRP (Protocolo de Roteador de Standby a Quente - Hot Standby Router Protocol) que possui a mesma tarefa com a diferença que o HSRP é proprietário dos produtos Cisco. Tanto o HSRP, quanto o VRRP, usam configuração ativo/backup, onde um roteador está ativo e outro está em backup. O CARP (Common Address Redundacy Protocol), usado nos roteadores baseados na distribuição BSD, também pode desempenhar a tarefa de redundância e traz a vantagem de ser possível o balanceamento, além da redundância. Implantar o VRRP necessita de conhecimento. Se um roteador falhar por completo (travar ou ser desligado por acidente) o VRRP funciona normalmente. Porém conhecimento é importante principalmente para evitar o problema da “rua sem saída”. Imagine dois roteadores, com duas interfaces cada um, roteando IP’s válidos. Se o cabo de rede externo do roteador 1 falhar, o roteador 2 (backup) assume apenas o papel de “master” do lado externo, onde ocorreu a falha, enquanto o roteador 1 continua ativo (master) do lado interno. Os hosts encaminharão os dados para o roteador 1, que não consegue enviar para os hosts externos (como a Internet), pois há uma falha na rede externa, onde ele é “backup” neste instante. Os pacotes saem, aparentando que há uma rota válida, porém logo depois ele cai em um problema da “rua sem saída”, devido os pacotes que chegam pela interface externa não terem como sair. Felizmente essas e muitas outras falhas (switches defeituosos, falhas de hardware, problema da “rua sem saída”, falha de interface de rede (NIC), etc) possuem soluções! Resumindo... O VRRP permite que 2 ou mais roteadores atuem como um único Roteador Virtual – na visão das máquinas de uma rede local – atuando de forma redundante em caso de falha no Roteador que é o default gateway das estações. O protocolo é bem simples. Os Roteadores elegem um equipamento para ser o MASTER que é o responsável por encaminhar o tráfego e atuar como gateway para as máquinas da LAN, enquanto os outros Roteadores monitoram as mensagens geradas pelo
P á g i n a | 105 MASTER e atuam como um Roteador Backup para em caso de falha do equipamento principal. Atuação principal do Roteador Master é responder as requisições ARP das máquinas da rede local sobre o endereço MAC do Gateway e consequentemente processar o trafego encaminhado. Em caso de falha do equipamento Master, um dos Roteadores Backup será eleito como novo Master para o grupo VRRP. O protocolo é descrito pelo IETF na RFC 3768 e permite a configuração entre equipamentos de diferentes fabricantes. Não esqueça: • Caso não seja configurada a prioridade do grupo VRRP em um Roteador, o mesmo atribuirá o valor padrão (100) para o equipamento. • Se o endereço IP do Roteador for o mesmo do IP virtual, o equipamento será o MASTER. • Se o Roteador principal falhar, o novo Master será o Roteador com maior prioridade. 12.5 Cabeamento estruturado EIA/TIA 568 Cabeamento estruturado é a disciplina que estuda a disposição organizada e padronizada de conectores e meios de transmissão para redes de informática e telefonia, de modo a tornar a infraestrutura de cabos autônoma quanto ao tipo de aplicação e de layout, permitindo a ligação a uma rede de: servidores, estações, impressoras, telefones, switches, hubs e roteadores. O Sistema de Cabeamento Estruturado utiliza o conector RJ45 e o cabo UTP como mídias-padrão para a transmissão de dados, análogo ao padrão da tomada elétrica que permite a alimentação elétrica de um equipamento independentemente do tipo de aplicação. O cabeamento estruturado remonta às tecnologias de redes dos anos 1980, período em empresas de telecomunicações e computação, como AT&T, Dec e IBM criam seus próprios sistemas proprietários de cabeamento. Nos anos 1990, o cabeamento estruturado progride enormemente por meio da introdução do cabo de par trançado. Nesse sentido, a criação das normas EIA/TIA e ISO ajudam a padronizar cabos, conectores e procedimentos. O conceito de Sistema de Cabeamento Estruturado se baseia na disposição de uma rede de cabos com integração de serviços de dados e voz que facilmente pode ser redirecionada por caminhos diferentes, no mesmo complexo de Cabeamento, para prover um caminho de transmissão entre pontos da rede distintos. Um Sistema de Cabeamento Estruturado EIA/TIA-568-B (ver a norma brasileira equivalente: NBR 14.565) é formado por sete subsistemas. 1 - Entrada do Edifício 2 - Sala de Equipamentos 3 - Cabeação Backbone 4 - Armário de Telecomunicações 5 - Cabeação Horizontal 6 - Área de Trabalho 7 - Norma 606 "Administração do Sistema" A NORMA EIA/TIA 568 A norma EIA/TIA-568-B classifica o sistema de cabeamento em categorias levando em consideração aspectos de desempenho, largura de banda, comprimento, atenuação e outros fatores de influência neste tipo de tecnologia. No final dos anos 80, as companhias dos setores de telecomunicações e informática estavam preocupadas com a falta de uma padronização para os sistemas de fiação de telecomunicações em edifícios e campus. Em 1991, a associação EIA/TIA (Electronic Industries Association / Telecommunications Industry Association) propôs a primeira versão de uma norma de padronização de fios e cabos para telecomunicações em prédios comerciais, denominada de EIA/TIA-568 cujo objetivo básico era:
P á g i n a | 106 Implementar um padrão genérico de cabeação de telecomunicações a ser seguido por fornecedores diferentes; Estruturar um sistema de cabeação intra e inter predial, com produtos de fornecedores distintos; Estabelecer critérios técnicos de desempenho para sistemas distintos de cabeação. Até então, o mercado dispunha de tecnologias proprietárias, utilizando cabeação tradicional, baseado em aplicações, conforme ilustrado na Figura 1. Assim, os prédios possuíam cabeação para voz, dados, sistemas de controle, eletricidade, segurança, cada qual com uma padronização proprietária. Eram fios e cabos por toda parte, cabo coaxial, par trançado, cabo blindado. Neste cenário, alguns problemas surgiram para desestimular essa forma de cabeação não estruturada: I. II. III. IV. V. VI. VII.
Mudança rápida de tecnologia: microcomputadores (PCs) mais velozes, serviços integrados de voz e dados, redes locais de alta velocidade; Infra-estrutura de telefonia privada inadequada para novas tecnologias; Rápida saturação de dutos, canaletas e outros suportes de cabeação; Inflexibilidade para mudanças; Cabeação não reaproveitável com novas tecnologias; Suporte técnico dependente de fabricantes; Aumento de custo.
Figura 6 - Cabeação com Sistemas de Fiação Separados
Em janeiro de 1994, a EIA/TIA publicou a norma EIA/TIA 568A revisada, incluindo as especificações para cabeação categoria 4 e 5 (UTP - Unshielded Twisted Pair). Atualmente, a associação ISO/IEC (International Standards Organization/International Electrotechnical Commission) desenvolve um padrão de cabeação internacional denominado de Cabeação Genérica para Instalação do Cliente (Generic Cabling for Customer Premises), denominado de ISO/IEC 11801. A norma ISO/IEC 11801 é equivalente à EIA/TIA 568A reeditada pela ISO. SISTEMA DE CABEAÇÃO ESTRUTURADA O conceito de Sistema de Cabeação Estruturada baseia-se na disposição de uma rede de cabos, com integração de serviços de dados e voz, que facilmente pode ser redirecionada por caminhos diferentes, no mesmo complexo de cabeação, para prover um caminho de transmissão entre pontos da rede distintos. Um Sistema de Cabeação Estruturada EIA/TIA 568A é formado por seis subsistemas conforme ilustrado na Figura e descritos a seguir.
P á g i n a | 107 Legenda: 1-Entrada do Edifício 2-Sala de Equipamentos 3-Cabeação Backbone 4-Armário de Telecomunicações 5-Cabeação Horizontal 6- Área de Trabalho
ENTRADA NO EDIFÍCIO As instalações de entrada no edifício fornecem o ponto no qual é feita a interface entre a cabeação externa e a cabeação intra-edifício e consistem de cabos, equipamentos de conexão, dispositivos de proteção, equipamentos de transição e outros equipamentos necessários para conectar as instalações externas ao sistema de cabos local. A norma associada EIA/TIA 569 define a interface entre a cabeação externa e a cabeação interna do prédio. SALA DE EQUIPAMENTOS A Sala de Equipamentos é o local propício para abrigar equipamentos de telecomunicações, de conexão e instalações de aterramento e de proteção. Ela também contém a conexão cruzada principal ou a conexão secundária, usada conforme a hierarquia do sistema de Cabeação Backbone. A Sala de Equipamentos é considerada distinta do Armário de Telecomunicações devido à natureza ou complexidade dos equipamentos que elas contém. Qualquer uma ou todas as funções de um Armário de Telecomunicações podem ser atendidas por uma Sala de Equipamentos. A norma associada EIA/TIA-569 define, também, o projeto da Sala de Equipamentos. SUBSISTEMA DE CABEAÇÃO BACKBONE O subsistema de Cabeação Backbone ou Cabeação Vertical, ilustrado na Figura 3, consiste nos meios de transmissão (cabos e fios), conectores de cruzamento (cross-connects) principal e intermediários, terminadores mecânicos, utilizados para interligar os Armários de Telecomunicações, Sala de Equipamentos e instalações de entrada.
Figura 7 - Subsistema de Cabeação Backbone
Os cabos homologados na norma EIA/TIA 568A para utilização como Backbone são: • • • •
Cabo UTP de 100 Ohms (22 ou 24 AWG): 800 metros para voz (20 a 300 MHz); 90 metros para dados (Cat. 3,4 e 5). Cabo STP (par trançado blindado) de 150 Ohms: 90 metros para dados. Fibra óptica multimodo de 62,5/125 m: 2.000 metros para dados. Fibra óptica monomodo de 8,5/125 m: 3.000 metros para dados.
P á g i n a | 108 Para os cabos UTP de 100 Ohms e STP de 150 Ohms, o alcance da cabeação depende da aplicação. A distância de 90 metros para dados em STP é aplicada para largura de banda de 20 a 300 MHz. Por outro lado, na transmissão de dados numa largura de banda de 5 a 16 MHz, o cabo UTP, categoria 3, tem sua distância reduzida de 800 para 90 metros. A distância de 90 metros é aplicada, também, para as categorias 4 e 5 em larguras de banda de 10 a 20 MHz e 20 a 100 MHz, respectivamente. O subsistema de Cabeação Backbone define, também, outros requisitos de projeto, tais como: a. b. c. d. e.
Topologia em estrela; Não possuir mais de dois níveis hierárquicos de conectores de cruzamento (cross-connect); Os cabos que ligam os cross-connect não podem ultrapassar 20 metros; Evitar instalações em áreas onde existam interferências eletromagnéticas e rádio freqüência; As instalações devem ser aterradas seguindo a norma EIA/TIA 607.
ARMÁRIO DE TELECOMUNICAÇÕES O Armário de Telecomunicações é o local, dentro de um prédio, onde são alojados os elementos de cabeação. Dentro do Armário de Telecomunicações são encontrados terminadores mecânicos, conectores de cruzamento (cross-connects), terminadores para os sistemas de Cabeação Horizontal e Vertical (patch panel). SUBSISTEMA DE CABEAÇÃO HORIZONTAL O subsistema de Cabeação Horizontal, ilustrado na Figura 5, compreende os cabos que vão desde a Tomada de Telecomunicações da Área de Trabalho até o Armário de Telecomunicações. O subsistema de Cabeação Horizontal possui os seguintes elementos: a. b. c. d.
Cabeação Horizontal; Tomada de Telecomunicações; Terminações de Cabo; Cross-Connections.
ÁREA DE TRABALHO A norma EIA/TIA 568A estabelece que os componentes de cabeação entre a Tomada de Telecomunicações e a Estação de Trabalho devem ser simples, baratos e permitam flexibilidade de deslocamento, sem comprometer a conexão física. Os componentes da Área de Trabalho são: a. b. c.
Equipamento da estação: computadores, terminais de dados, telefone, etc.; Cabos de ligação - cordões modulares, cabos de adaptação, jumpers de fibra; Adaptadores.
DESEMPENHO DO HARDWARE E MEIOS DE TRANSMISSÃO A norma EIA/TIA 568 classifica o sistema de cabeação em categorias levando em consideração aspectos de desempenho, largura de banda, comprimento, atenuação e outros fatores de influência neste tipo de tecnologia. A seguir, serão apresentadas as categorias de cabeação com tecnologia de par trançado UTP e STP e de fibra óptica. CABEAÇÃO UTP Os cabos UTPs são compostos de pares de fios trançados não blindados de 100 Ohms. Este tipo de cabo, nos dias de hoje, são projetados para alto desempenho na transmissão de dados ou voz.
P á g i n a | 109 Tipos de Cabo UTP O cabo UTP pode ser classificado em três categorias como mostrado abaixo: a. b. c.
Categoria 3 - Utiliza cabos com pares de fios trançados sólidos de bitola 24 AWG. Os fios AWG24 apresentam uma impedância típica de 100 Ohms, a 16 MHz. Estes cabos são utilizados para transmissão de sinais até 16 MHz. Categoria 4 - Utiliza cabos com pares de fios trançados sólidos de bitola 22 ou 24 AWG, com impedância de 100 Ohms a 20 MHz. Este cabos são utilizados para transmissão até uma largura de banda de 20 MHz; Categoria 5 - Utiliza cabos com pares de fios trançados sem blindagem de bitola 22 ou 24 AWG e impedância de 100 Ohms a 100 MHz. Este tipo de categoria é recomendável para aplicações com taxa de transmissão elevada, por exemplo, para transmissão de imagens e dados a 100 Mbps.
Desempenho: A atenuação é comumente derivada da medida do sinal de varredura da frequência na saída de um cabo de comprimento maior ou igual a 100 metros (328 ft), ou seja, é a perda de potência do sinal no meio, em função da distância a uma determinada freqüência. CABEAÇÃO STP Quando as especificações para cabeação STP (Shielded Twisted Pair) de 150 Ohms foram publicadas na norma EIA Interim Standard Omnibus Specification NQ-EIA/IS-43, as características de transmissão aceitavam sinais de até 20 MHz. Estas especificações têm sido adequadas até o presente momento para faixas de freqüências usadas em ambientes de trabalho. Entretanto, como a velocidade das LAN’s e suas freqüências aumentaram, as especificações originais dos cabos STP de 150 Ohms foram aumentadas de modo a prover um critério de desempenho estável para valores altos de freqüência aplicados. Um cabo de especificação melhorada e um novo conector, acoplado ao conector original foi introduzido para atender as especificações originais. Os cabos STP são de fios em pares trançados blindados de 150 Ohms. Para a Cabeação Horizontal e a Backbone são utilizados os tipos 1A e o tipo 6A da IBM para cabos de conexão, cujas características são as seguintes: a. b. c.
Cabo STP-A utiliza 2 pares de fios, modelo 22 AWG rígido e possui impedância característica de 150 Ohms + 10% (3 MHz - 300 MHz); O conector de dados STP-A de 150 Ohms; A atenuação balanceada do Cabo de Ligação STP-A de 150 Ohms é aproximadamente igual a 1,5 vezes a do cabo STP-A Horizontal ou Backbone (4 MHz - 300 MHz).
FIBRA ÓPTICA A fibra óptica pode ser utilizada tanto para a Cabeação Horizontal como para a Vertical. A fibra para Cabeação Horizontal é do tipo multimodo de 62,5/125m m com um mínimo de duas fibras. A Cabeação Vertical ou Backbone utiliza fibras dos tipos multimodo de 62,5/125m m e monomodo formados em grupos de 6 ou 12 fibras. As premissas para uma Cabeação Backbone com fibra ópticas, têm sido e continuam a ser baseadas em fibras multimodo de 62,5/125m m, devido à possibilidade de uso de transmissores ópticos com LED nessas fibras. Com o rápido crescimento dos requisitos de largura de banda, atualmente, tem-se instalado fibras ópticas monomodo em adição às fibras multimodo, para atender os requisitos atuais e futuros. Sistemas de fibras monomodo atendem tanto maiores bandas de freqüências como também têm maior capacidade para longas distâncias do que as fibras ópticas multimodo. 12.6 Redes tipo campus Redes de campus (em inglês: Campus Area Network, CAN) são redes que usam ligações entre computadores localizados em áreas de edifícios ou prédios diferentes, como em campus universitários ou complexos industriais.
P á g i n a | 110 Deve também usar links (ligações) típicos de LANs (Local Area Networks) ou perde-se seu caráter de CAN para tornar-se uma MAN ou WAN, dependendo de quem seja o dono do link usado. 12.7 Modelo OSI Modelo OSI é uma referência de como os dados são transportados de um computador a outro, vindos desde sua camada física até as aplicações (softwares). Ao longo do percurso, os bits vão se transformando em pacotes de dados e vice-versa, sendo transportados de um ponto a outro, realizando assim a comunicação entre as máquinas. O nome OSI significa Open System Interconection. Veja a figura abaixo e vamos entender como é a organização das camadas e o que acontece em cada uma delas para que haja a comunicação.
Camada 7 – Aplicação É nesta camada que nós trabalhamos, utilizando os software através de interações, enviando e recebendo dados. Entenda que as aplicações aqui são algo como navegador de internet, mensageiros instantâneos, e qualquer outro aplicativo que utilize a rede para se comunicar. Entenda que ao enviar uma requisição para a rede, esta camada é a responsável por iniciar o processo de comunicação, onde passará até a camada mais baixa, que é a 1 – Física, e ela finaliza quando recebe a sua resposta novamente aqui na camada 7. Esta camada não se preocupa como os dados serão transportados até o destino, mas quer que seja entregue e que ele receba também o que for para ele. Protocolos: HTTP, SMTP, FTP, SSH, RTP, Telnet, SIP, RDP, IRC, SNMP, NNTP, POP3, IMAP, BitTorrent, DNS, Ping, etc. O PDU aqui é chamado de mensagem. Camada 6 – Apresentação Esta camada atua como se fosse um intérprete entre redes diferentes, por exemplo, uma rede TCP/IP e outra IPX/SPX, traduzindo e formatando os dados de comunicação, exercendo também esta função entre a camada de Aplicação (7) e a camada de Sessão (5). Ela nem sempre é utilizada. A camada 6 adicionará suas próprias informações de controle ao pacote recebido da camada superior e envia o novo pacote para a camada 5, agora contendo o dado original, informações de controle adicionadas pela camada 7 mais informações de controle adicionadas pela camada 6 e assim por diante. Na recepção dos dados o processo inverso é feito: cada camada removerá as informações de controle de sua responsabilidade. A camada de apresentação também é responsável por outros aspectos da representação dos dados, como criptografia e compressão de dados. Alguns exemplos de protocolos que utilizam esta camada são os túneis encriptados do SSH. Eles fazem com que os dados sejam transmitidos de forma encriptada pela rede, aumentando a
P á g i n a | 111 segurança de forma transparente tanto para o aplicativo quanto para o sistema operacional. Alguns dispositivos atuantes na camada de Apresentação são o Gateway, ou os Traceivers, sendo que o Gateway no caso faria a ponte entre as redes traduzindo diferentes protocolos, e o Tranceiver traduz sinais por exemplo de cabo UTP em sinais que um cabo Coaxial entenda. Protocolos: SSL; TLS, XDR. Camada 5 – Sessão Ao receber as solicitações da camada superior, o sistema operacional abre uma sessão, sendo esta responsável por iniciar, gerenciar e finalizar as conexões entre os hosts, e por se preocupar com a sincronização entre eles, para que a sessão aberta entre eles mantenha-se funcionando. Seu funcionamento se baseia em que ao enviar uma solicitação, abrese uma sessão e ela só será fechada quando ele receber a resposta dessa solicitação. Ele fornece dois tipos principais de diálogos: o half-duplex e o full-duplex. Uma sessão permite transporte de dados de uma maneira mais refinada que o nível de transporte em determinadas aplicações. Uma sessão pode ser aberta entre duas estações a fim de permitir a um usuário se logar em um sistema remoto ou transferir um arquivo entre essas estações. Os protocolos desse nível tratam de sincronizações (checkpoints) na transferência de arquivos. Neste nível ocorre a quebra de um pacote com o posicionamento de uma marca lógica ao longo do diálogo. Esta marca tem como finalidade identificar os blocos recebidos para que não ocorra uma recarga, quando ocorrer erros na transmissão. Camada 4 – Transporte Sua preocupação nesta camada é com a qualidade da transmissão dos dados, tanto no envio como no recebimento. Depois que os pacotes vem da camada 3, é a hora de transportá-los de forma confiável, assegurando o sucesso deste transporte. Um serviço bastante utilizado aqui é o QoS (Quality of Service). É nesta camada que os dados são realmente transportados de um host ao outro, agindo como se fosse um “carteiro”, transportando (Camada de Transporte – 4) a carta dos Correios (Camada de Rede – 3) para o seu destino final. Protocolos: TCP, UDP, RTP, SCTP, SPX. Dispositivos: Roteadores. Dentre suas características podemos citar o controle de fluxo, ordenação dos pacotes e a correção de erros, enviando para o transmissor uma mensagem de recebimento e informando que o pacote foi recebido com sucesso. O objetivo final desta camada é proporcionar um serviço eficiente, confiável e de baixo custo. A ISO define o protocolo de transporte para operar em dois modos: orientado à conexão e não orientado. Como exemplo de protocolo orientado à conexão, tem-se o TCP, e de não-orientado, o UDP. É obvio que o protocolo de transporte não orientado à conexão é menos confiável, pois não garante a entrega das mensagens, nem tampouco a ordenação das mesmas. Entretanto, onde o serviço da camada de rede e das outras camadas inferiores é bastante confiável - como em redes locais - o protocolo de transporte não orientado à conexão pode ser utilizado, sem o overhead inerente a uma operação orientada à conexão. O PDU aqui é chamado de segmento. Camada 3 – Rede Esta camada é responsável pelo endereçamento dos pacotes de rede, também conhecidos por “datagramas”, associando endereços lógicos (IP) em endereços físicos (MAC), de forma que os pacotes de rede consigam chegar corretamente ao destino. Também é decidido o melhor caminho para os dados, assim como o estabelecimento das rotas, baseada em fatores como condições de tráfego da rede e prioridades. Essa camada é usada quando a rede possui mais de um segmento e, com isso, há mais de um caminho para um pacote de dados percorrer da origem ao destino. Ela entende o endereço físico (MAC) da camada de Enlace (2) e converte para endereço lógico (IP). Quando a camada de Rede (3) recebe a unidade de dados da camada de Enlace (2), chamado de “quadro”, transforma em sua própria PDU com esse endereço lógico, que será utilizado pelos roteadores para encontrar os melhores caminhos de dados. Esta unidade de dados é chamada de “Pacote”. Os principais protocolos desta camada são: • IP – recebe segmentos de dados da camada de transporte e os encapsula em datagramas; é um protocolo não confiável por não exigir confirmação.
P á g i n a | 112 • • • •
ICMP (Internet Control Message Protocol) – estabelece os padrões de cada protocolo com o ICMP para relatar erros e trocar informações de situação e controle. ARP (Address Resolution Protocol) - permite que um computador se comunique com outro em rede quando somente o IP é conhecido pelo destinatário. RARP (Reverse Address Resolution Protocol) – faz o contrário do ARP, ao invés de obter o endereço MAC da máquina, o protocolo RARP requisita o endereço IP. IGMP (Internet Group Management Protocol) – usado por hosts para reportar seus participantes de grupos de hosts a roteadores vizinhos.
Funções da Camada: • Selecionar melhores rotas e rotear pacotes a partir de sua fonte original até seu destino através de um ou mais enlaces; • Definir como dispositivos de rede descobrem uns aos outros e como os pacotes são roteados até seu destino final; • Detectar erros, controlar congestionamentos, fluxos e sequência de pacotes. Um dos principais dispositivos desta camada é o roteador (router), equipamento usado para fazer a comutação de protocolos, interconexão entre diferentes redes e a comunicação entre computadores distantes entre si. Sua principal função é selecionar a rota mais apropriada para encaminhar os pacotes. ou seja, escolher o melhor caminho disponível na rede para um determinado destino. Outros protocolos da camada: ICMP, IP, IPX, ARP, IPSEC, RIP, OSPF, BGP. O PDU aqui é chamado de Pacote. Camada 2 – Enlace Esta camada recebe os dados formatados da camada Física (1), os bits, e trata os mesmos, convertendo em sua unidade de dados (pacotes) para ser encaminhado para a próxima camada, a de Rede (3). Esta camada detecta e, opcionalmente, corrige erros que possam acontecer no nível físico. É responsável pela transmissão e recepção (delimitação) de quadros e pelo controle de fluxo. Aqui encontramos o endereço físico, o MAC (Media Access Control ou Controle de Acesso a Mídia). Esta camada foi dividida em dois subníveis para os protocolos de LAN: controle de ligação lógica ou LLC (Logic Link Control), que fornece uma interface para camada superior (rede), e controle de acesso ao meio físico ou MAC, que acessa diretamente o meio físico e controla a transmissão de dados. Em resumo, a função desta camada é ligar os dados de um host a outro, fazendo isso através de protocolos definidos para cada meio específico por onde os dados são enviados. Protocolos: PPP, Ethernet, FDDI, ATM, Token Ring, LAPB, NetBios. Dispositivos: Switches, Placa de Rede, Interfaces. O PDU aqui é chamado de Quadro. Camada 1 – Física Esta camada só entende sinais de bits, chegando até ela como pulsos elétricos que são 0 (tensão negativa) ou 1 (tensão positiva). Ela contém os equipamentos de cabeamento ou outros canais de comunicação que se comunicam diretamente com o controlador da interface de rede. É aqui que são definidas as utilizações dos cabos e conectores, bem como o tipo de sinal (pulsos elétricos – coaxial; pulsos de luz – ótico). Basicamente a sua função é receber os dados e iniciar o processo (ou o inverso, inserir os dados e finalizar o processo). Dispositivos: Cabos, Conectores, Hubs. O PDU aqui é chamado de bits.
P á g i n a | 113
RESUMO
12.8 Redes de longa distância: PPP, ATM e MPLS 12.8.1 Protocolo PPP Os protocolos PPP e SLIP A maior aior parte das pessoas, que não têm em casa uma linha (cabo ou ethernet) ligada diretamente à Internet, é obrigada a utilizar as linhas telefônicas (a rede mais usada) para se ligar à Internet. A conexão fazfaz-se graças a um modem, um aparelho capaz de converter rter os dados numéricos do computador em sinais analógicos (podendo circular na linha telefônica por modulação de amplitude ou de frequência, assim como a voz quando utiliza o telefone). Já que só dois computadores comunicam e que o débito de uma linha telefônica telefônica é fraco em relação ao de uma rede local, é necessário utilizar um protocolo que permite uma comunicação standard entre as diferentes máquinas que utilizam um modem, sobrecarregando a linha telefônica. Estes protocolos chamam-se chamam se protocolos modem. Noção de ligação ponto a ponto Pela linha telefônica clássica, dois computadores, no máximo, podem comunicar por modem, assim como não é possível ligar simultaneamente para duas pessoas pela mesma linha telefônica. Diz-se Diz se então que se tem uma ligação ponto pon a ponto, quer dizer uma ligação entre duas máquinas reduzida à sua mais simples expressão: não é preciso partilhar a linha entre várias máquinas, cada uma fala e responde por sua vez.
P á g i n a | 114 Assim, foram criados numerosos protocolos de modem. Os primeiros dentre eles permitiam uma simples transmissão de dados entre duas máquinas, seguidamente alguns foram dotados de um controlo de erro, e com o aumento da Internet, foram dotados da capacidade de dirigir máquinas. Desta maneira, existem doravante dois grandes protocolos de modem: • •
SLIP: um protocolo antigo, fraco em controles. PPP: o protocolo mais utilizado para os acessos à Internet por modem, autoriza um endereçamento das máquinas.
O protocolo SLIP SLIP significa Serial Line Internet Protocol, que se pode traduzir por protocolo Internet de ligação em série. O SLIP é o resultado da integração dos protocolos modens que precedem a sequência de protocolos TCP/IP. Trata-se de um protocolo de ligação Internet simples, que não efetua nem controla endereço, nem controlo de erro, e esta é a razão pela qual rapidamente ficou obsoleto em relação ao PPP. A transmissão de dados com o SLIP é muito simples: este protocolo envia uma trama composta unicamente dos dados a enviar seguidos de um caráter de fim de transmissão (o caráter END, cujo código ASCII é 192). Uma trama SLIP assemelhase então a isto: Dados a transmitir END
O protocolo PPP PPP significa Point to Point Protocol, (protocolo ponto a ponto). Trata-se de um protocolo muito mais elaborado que o SLIP (é a razão pela qual o suplantou), na medida em que transfere dados suplementares, melhor adaptados à transmissão de dados na Internet (a adição de informações numa trama deve-se em grande parte ao aumento da banda concorrida). O PPP é realmente um conjunto de três protocolos: • • •
um protocolo encapsulado de datagramas. um protocolo de controlo de ligação (LCP, Link Control Protocol), permitindo controlos de teste e configuração da comunicação. um conjunto de protocolos de controlo de rede (NCP, Network Control Protocol), permitindo controlos de integração PPP em protocolos de camadas superiores.
Os dados encapsulados numa trama PPP chama-se pacotes (ou packets, em inglês). Estes pacotes são geralmente datagramas, mas pode acontecer que sejam outros (daí a denominação específica de pacote, em vez de datagrama). Assim, um campo da trama é reservado ao tipo de protocolo ao qual o pacote pertence. Uma trama PPP assemelha-se a isto:
Protocolo (1-2 bytes) Dados a transmitir Dados de enchimentos Os dados de enchimentos servem para adaptar o comprimento da trama para certos protocolos. Uma sessão PPP (da abertura ao encerramento) desenrola-se do seguinte modo: • Aquando da conexão, um pacote LCP é enviado.
P á g i n a | 115 •
• • •
No caso de pedido de autenticação por parte do servidor, um pacote que corresponde a um protocolo de autenticação pode ser enviado (PAP, Senha Autenticação Protocol, ou CHAP, Challenge Handshake Autentication Protocol ou Kerberos) uma vez a comunicação estabelecida, o PPP envia informações de configuração graças ao protocolo NCP. Os datagramas a enviar são transmitidos sob a forma de pacotes. No momento da desconexão, um pacote LCP é enviado para terminar a sessão.
12.8.2 Protocolo ATM O ATM é uma tecnologia de comunicação de dados de alta velocidade usada para interligar redes locais, metropolitanas e de longa distância para aplicações de dados, voz, áudio, e vídeo. É uma tecnologia de rede recente, que, contrariamente à ethernet, token ring, e FDDI, permite transferir simultaneamente numa mesma linha dados e voz. O ATM foi criado no CEM. Contrariamente às redes síncronas (como as redes telefônicas), onde os dados são emitidos de maneira sincrônica, ou seja, a banda concorrida é repartida (multiplexado) entre os utilizadores de acordo com um corte temporal, a rede ATM transfere os dados de maneira assíncrona, o que significa que transmite assim que pode fazÊ-lo. Enquanto as redes sincrônicas não emitem nada quando um utilizador não tem nada para emitir, a rede ATM vai utilizar estes vazios para transmitir outros dados, garantindo assim uma melhor banda concorrida! A tecnologia ATM utiliza o processo de comutação de pacotes, que é adequado para o envio assíncrono de informações com diferentes requisitos de tempo e funcionalidades, aproveitando-se de sua confiabilidade, eficiência no uso de banda e suporte a aplicações que requerem classes de qualidade de serviço diferenciadas. Além disso, as redes ATM emitem unicamente pacotes sob a forma de células de um comprimento de 53 bytes (5 bytes de rubrica e 48 bytes de dados) e compreendendo identificadores que permitem conhecer designadamente a qualidade de serviço (QOS, Quality Of Service). A qualidade de serviço representa um indicador de prioridade dos pacotes de acordo com o débito actual da rede. O ATM permite assim transferir dados a uma velocidade que vai de 25 Mbps a mais de 622 Mbps (é mesmo suposto obter mais 2Gbps com fibra óptica). Os equipamentos necessários para redes ATM são caros, estes são utilizados essencialmente pelos operadores de telecomunicação em linhas de longa distância. Uma rede ATM é composta por: • Equipamentos de usuários (PCs, estações de trabalho, servidores, computadores de grande porte, PABX, etc.) e suas respectivas aplicações; • Equipamentos de acesso com interface ATM (roteadores de acesso, hubs, switches, bridges, etc.); • Equipamentos de rede (switches, roteadores de rede, equipamentos de transmissão com canais E1 / T1 ou de maior banda, etc.). • A conversão dos dados para o protocolo ATM é feita pelos equipamentos de acesso. Os frames gerados são enviados aos equipamentos de rede, cuja função é basicamente transportar esse frames até o seu destino, usando os procedimentos roteamento próprios do protocolo. A rede ATM é sempre representada por uma nuvem, já que ela não é uma simples conexão física entre 2 pontos distintos. A conexão entre esses pontos é feita através de rotas ou canais virtuais (virtual path / channel) configurados com uma determinada banda. A alocação de banda física na rede é feita célula a célula, quando da transmissão dos dados. A figura a seguir apresenta uma rede ATM.
P á g i n a | 116
Vantagens e Restrições A tecnologia ATM oferece vários benefícios, quando comparada com outras tecnologias: • Emprega a multiplexação estatística, que otimiza o uso de banda; • Faz o gerenciamento dinâmico de banda; • O custo de processamento das suas células de tamanho fixo é baixo; • Integra vários tipos diferentes de tráfego (dados, Voz e vídeo); • Garante a alocação de banda e recursos para cada serviço; • Possui alta disponibilidade para os serviços; • Suporta múltiplas classes de Qualidade de Serviço (QoS); • Atende a aplicações sensíveis ou não a atraso e perda de pacotes; • Aplica-se indistintamente a redes públicas e privadas; • Pode compor redes escaláveis, flexíveis e com procedimentos de recuperação automática de falhas; • Pode interoperar com outros protocolos e aplicações, tais como Frame Relay, TCP/IP, DSL, Gigabit Ethernet. tecnologia wireless, SDH / SONET, entre outros. Entretanto, sua utilização irrestrita tem encontrado alguns obstáculos: • Outras tecnologias tais como Fast Ethernet, Gibabit Ethernet e TCP/IP, têm sido adotadas com grande freqüência em redes de dados; • O uso de interfaces ATM diretamente aplicadas em PC’s, estações de trabalho e servidores de alto desempenho não tem sido tão grande como se esperava a princípio. 12.8.3 Protocolo MPLS No contexto das redes de computadores e telecomunicações, o Multi Protocol Label Switching (MPLS) é um mecanismo de transporte de dados pertencente à família das redes de comutação de pacotes. O MPLS é padronizado pelo IETF Internet Engineering Task Force através da RFC-3031 e opera numa camada OSI intermediária às definições tradicionais do Layer 2 (Enlace) e Layer 3 (Rede), pelo que se tornou recorrente ser referido como um protocolo de "Layer 2,5".
O label é um identificador curto, de tamanho fixo e significado local. Todo pacote ao entrar numa rede MPLS recebe um label. Este pode ser pensado como uma forma abreviada para o cabeçalho do pacote. Desta forma os roteadores só analisam os labels para poder encaminhar o pacote. O cabeçalho MPLS deve ser posicionado depois de qualquer
P á g i n a | 117 cabeçalho da camada 2 e antes do cabeçalho da camada 3, ele é conhecido como Shim Header e está apresentado na figura desta página. Descrições dos campos do Label O campo Label contém ntém o valor atual deste: • O campo TC(rfc5462) - Traffic Class -,, anteriormente chamado EXP, define classes de serviços, e pode ser usado para indicar níveis de prioridade, para suportar DiffServ na rede MPLS, entre outros. • O campo S (stack) suporta o enfileiramento enfileiramento de labels. Caso o pacote receba mais de um label. • O campo TTL (Time to Live) tem o mesmo papel que no cabeçalho IP, contar por quantos roteadores o pacote passou, num total de 255. No caso do pacote viajar por mais de 255 roteadores, ele é descartado descar para evitar possíveis loops. Como o MPLS foi concebido para permitir um serviço unificado de transporte de dados para aplicações baseadas em comutação de pacotes ou comutação circuitos ele pode ser usado para transportar vários tipos de tráfego, como pacotes IP, ATM, SONET ou mesmo frames Ethernet. O MPLS pode utilizar as seguintes redes de acesso: 1. 2. 3. 4. 5. 6.
Acesso xDSL (Digital Subscriber Line): Acesso que utiliza à rede de acesso ADSL das operadoras. Geralmente opera com velocidades simétricas de 128 a 512 kbps kbps (sem garantia de banda mínima). Frame Relay: Utiliza como acesso as redes Frame legada e nas velocidades de 64 a 2048 kbps. ATM (Asynchronous Transfer Mode): Opera nas velocidades de 2 a 622 Mbps. TDM (Time Division Multiplex): Utiliza acessos determinísticos determinísticos nas velocidades de 1,544 Mbps (T1) a 274,176 Mbps(T4), Sistema Americano ou nas velocidades de 2,048 Mbps (E1) a 139,264 Mbps (E4), Sistema Europeu. Rede Metro Ethernet: Utiliza como acesso à rede IP MPLS da Operadora, a rede Metro Ethernet nas velocidades velo de 1Mbps a 1Gbps (restrito aos locais atendidos pela rede Metro-ethernet Metro ethernet da Operadora ou via projeto especial). Acessos Wireless: Pode ser fornecido através de rádios digitais (tecnologia pré WiMAX), distância até 16 Km e velocidade até 54 Mbps.
O MPLS permite que os operadores de uma determinada rede tenham alto desempenho no desvio de tráfego de dados em situações críticas, tais como de falhas e gargalos (ou congestionamentos). O MPLS permite assegurar que a transmissão de determinados pacotes tenham perdas ou atrasos imperceptíveis em função da capacidade de uma gestão de tráfego mais eficaz, possibilitando assim maior qualidade dos serviços e conseqüentemente maior confiabilidade. É normalmente utilizado em empresas de telecomunicações responsáveis responsáveis por backbones que se utilizam de BGP4, QoS e SLA para aumentar sua credibilidade quanto à disponibilidade de seus serviços. Características MPLS, ou MultiProtocol Label Switching, é uma tecnologia de encaminhamento de pacotes baseada em rótulos (labels) (la que funciona, basicamente, com a adição de um rótulo nos pacotes de tráfego (O MPLS é indiferente ao tipo de dados transportado, pelo que pode ser tráfego IP ou outro qualquer) à entrada do backbone (chamados de roteadores de borda) e, a partir daí, todo o encaminhamento pelo backbone passa a ser feito com base neste rótulo. Comparativamente ao encaminhamento IP, o MPLS torna-se se mais eficiente uma vez que dispensa a consulta das tabelas de routing.
P á g i n a | 118 Este protocolo permite a criação de Redes Virtuais Privadas garantindo um isolamento completo do tráfego com a criação de tabelas de "labels" (usadas para roteamento) exclusivas de cada VPN. Além disso é possível realizar QoS (Quality of Service) com a priorização de aplicações críticas, dando um tratamento diferenciado para o tráfego entre os diferentes pontos da VPN. QoS cria as condições necessárias para o melhor uso dos recursos da rede, permitindo também o tráfego de voz e vídeo. Os produtos que as operadoras utilizam baseados em MPLS permitem que elas possam agregar valor ao seus produtos, pois passam a não oferecer apenas banda, mas um tráfego diferenciado com: Multimídia (Voz, Vídeo e Dados) e aplicações críticas, com garantias aplicáveis de QoS, através das seguintes classes de serviço: • Multimídia: priorização de tráfego dos pacotes multimídia (ex.: vídeo conferência, etc.). • Voz: priorização de tráfego dos pacotes de voz (ex.: interligação de PABX, telefonia IP, etc.). • Dados Expressos: priorização de tráfego de dados de aplicações críticas (ex.: SAP, GVCollege, etc.). • Dados: tráfego de dados sem priorização (Best Effort). O MPLS foi concebido para satisfazer as necessidades de infraestrutura de comunicação segura e economicamente viável entre: - Escritórios de uma mesma empresa em diferentes localidades; - Força de trabalho em constante deslocamento; - Empresa, clientes, fornecedores. O produto baseado em MPLS, oferecidos pelas operadoras, permite que ele possa ser utilizado nas seguintes situações: 1. acesso corporativo a servidores de aplicações centralizadas como sistemas corporativos, e-mail e Intranet; 2. formação de redes para compartilhamento de arquivos; 3. integração de sistemas de telefonia; 4. formação de sistemas de videoconferência; 5. acesso remoto aos sistemas corporativos. Vantagens • Melhor desempenho no encaminhamento de pacotes; • Criação de caminhos (Label Switching Paths) entre os roteadores; • Possibilidade de associar requisitos de QoS, baseados nos rótulos carregados pelos pacotes. Redes de infra-estrutura suportados Devido ao alinhamento do MPLS relativamente ao tipo de dados em trânsito, é possível encapsular o tráfego de tecnologias anteriores, como: • Frame Relay. • ATM. • PPP. • Packet Over Sonet/SDH. • Ethernet. • Token Ring. • FDDI. • Comutação ótica (MPλS). • Combinação de abordagens precedentes. Funções de MPLS • Mecanismos para o tratamento de fluxos de dados entre hardware, ou mesmo aplicações, distintas. • Independência em relação aos protocolos das camadas OSI 2 (enlace) e 3 (rede). • Mapeamento entre os endereços IP e labels, para envio de pacotes. • Interfaces com protocolos de roteamento, como OSPF.
P á g i n a | 119 •
Suporta IP, ATM e frame-relay.
12.4 Redes sem fio (wireless) A IEEE 802 é uma norma que tem como objetivo definir uma padronização para redes locais e metropolitanas das camadas 1 e 2 (Física e Enlace) do modelo OSI para padrão de redes. As normas cuidam de diversos tipos de redes como Ethernet, rede sem fio, fibra ótica dentre outros. Definições • IEEE 802.1 - Gerência de rede. • IEEE 802.2 - LLC (Logical Link Control). • IEEE 802.3 - Ethernet e específica a sintaxe e a semântica MAC (Media Access Control). • IEEE 802.4 - Token Bus. • IEEE 802.5 - Token Ring. • IEEE 802.6 - Redes Metropolitanas. • IEEE 802.7 - MANs de Banda Larga. • IEEE 802.8 - Fibra óptica. • IEEE 802.9 - Integração de Redes Loca] • IEEE 802.10 - Segurança em Redes Locais. • IEEE 802.11 - LAN sem fio (Wireless LAN). • IEEE 802.15 - Wireless Personal Area Network (Bluetooth). • IEEE 802.16 - Broadband Wireless Access (WiMAX). • IEEE 802.20 - Mobile Broadband Wireless Access (MobileFi). • IEEE 802.22 - Wireless Regional Area Network (WRAN). 12.4.1 – Introdução O que é Wi-Fi? Wi-Fi é um conjunto de especificações para redes locais sem fio (WLAN - Wireless Local Area Network) baseada no padrão IEEE 802.11. O nome "Wi-Fi" é tido como uma abreviatura do termo inglês "Wireless Fidelity", embora a Wi-Fi Alliance, entidade responsável principalmente pelo licenciamento de produtos baseados na tecnologia, nunca tenha afirmado tal conclusão. É comum encontrar o nome Wi-Fi escrito como WiFi, Wi-fi ou até mesmo wifi. Todas estas denominações se referem à mesma tecnologia. Com a tecnologia Wi-Fi, é possível implementar redes que conectam computadores e outros dispositivos compatíveis (smartphones, tablets, consoles de videogame, impressoras, etc) que estejam próximos geograficamente. Estas redes não exigem o uso de cabos, já que efetuam a transmissão de dados por meio de radiofrequência. Este esquema oferece várias vantagens, entre elas: permite ao usuário utilizar a rede em qualquer ponto dentro dos limites de alcance da transmissão; possibilita a inserção rápida de outros computadores e dispositivos na rede; evita que paredes ou estruturas prediais sejam furadas ou adaptadas para a passagem de fios. A flexibilidade do Wi-Fi é tão grande que se tornou viável a implementação de redes que fazem uso desta tecnologia nos mais variados lugares, principalmente pelo fato de as vantagens citadas no parágrafo anterior muitas vezes resultarem em diminuição de custos. Assim sendo, é comum encontrar redes Wi-Fi disponíveis em hotéis, aeroportos, rodoviárias, bares, restaurantes, shoppings, escolas, universidades, escritórios, hospitais, etc. Para utilizar estas redes, basta ao usuário ter um laptop, smartphone ou qualquer dispositivo compatível com Wi-Fi. Funcionamento do Wi-Fi
P á g i n a | 120 Ao chegar neste ponto do texto, é natural que você esteja querendo saber como o Wi-Fi funciona. Como você já sabe, a tecnologia é baseada no padrão IEEE 802.11, no entanto, isso não quer dizer que todo produto que trabalhe com estas especificações seja também Wi-Fi. Para que um determinado produto receba um selo com esta marca, é necessário que ele seja avaliado e certificado pela Wi-Fi Alliance. Esta é uma maneira de garantir ao usuário que todos os produtos com o selo Wi-Fi Certified seguem normas de funcionalidade que garantem a interoperabilidade com outros equipamentos. Todavia, isso não significa que dispositivos que não ostentam o selo não funcionarão com aparelhos que o tenham (mesmo assim, é preferível optar produtos certificados para diminuir os riscos de problemas). Assim sendo e considerando que toda a base do Wi-Fi está no padrão 802.11, as próximas linhas darão explicações sobre este último como se ambos fossem uma coisa só (e, para fins práticos, são mesmo!). O padrão 802.11 estabelece normas para a criação e para o uso de redes sem fio. A transmissão deste tipo de rede é feita por sinais de radiofrequência, que se propagam pelo ar e podem cobrir áreas na casa das centenas de metros. Como existem inúmeros serviços que podem utilizar sinais de rádio, é necessário que cada um opere de acordo com as exigências estabelecidas pelo governo de cada país. Esta é uma maneira de evitar problemas, especialmente interferências. Há, no entanto, alguns segmentos de frequência que podem ser usados sem necessidade de aprovação direta de entidades apropriadas de cada governo: as faixas ISM (Industrial, Scientific and Medical), que podem operar, entre outros, com os seguintes intervalos: 902 MHz - 928 MHz; 2,4 GHz - 2,485 GHz e 5,15 GHz - 5,825 GHz (dependendo do país, esses limites podem sofrer variações). Como você verá a seguir, são justamente estas duas últimas faixas que o Wi-Fi utiliza, no entanto, tal característica pode variar conforme a versão do padrão 802.11. SSID (Service Set Identifier) Vamos conhecer as versões mais importantes do 802.11, mas antes, para facilitar a compreensão, é conveniente saber que, para uma rede deste tipo ser estabelecida, é necessário que os dispositivos (também chamados de STA - de "station") se conectem a aparelhos que forneçam o acesso. Estes são genericamente denominados Access Point (AP). Quando um ou mais STAs se conectam a um AP, tem-se, portanto, uma rede, que é denominada Basic Service Set (BSS). Por questões de segurança e pela possibilidade de haver mais de um BSS em determinado local (por exemplo, duas redes sem fio criadas por empresas diferentes em uma área de eventos), é importante que cada um receba uma identificação denominada Service Set Identifier (SSID), um conjunto de caracteres que, após definido, é inserido no cabeçalho de cada pacote de dados da rede. Em outras palavras, o SSID nada mais é do que o nome dado a cada rede sem fio. 12.4.1.1 - Padrões Como WLANs usam o mesmo método de transmissão das ondas de radio AM/FM, as leis que as regem são as mesmas destes. O FCC (Federal Comunications Comission), regula o uso dos dispositivos WLAN. O IEEE ( Institute of Eletrical and Eletronic Engineers) é responsável pela criação e adoção dos padrões operacionais. Citamos os mais conhecidos: Padrão 802.11 ("original") A primeira versão do padrão 802.11 foi lançada em 1997, após 7 anos de estudos, aproximadamente. Com o surgimento de novas versões (que serão abordadas mais adiante), a versão original passou a ser conhecida como 802.11-1997 ou, ainda, como 802.11 legacy (neste texto, será chamada de "802.11 original"). Por se tratar de uma tecnologia de transmissão por radiofrequência, o IEEE (Institute of Electrical and Electronic Engineers) determinou que o padrão operasse no intervalo de frequências entre 2,4 GHz e 2,4835 GHz, uma das já mencionadas faixas ISM. Sua taxa de transmissão de dados é de 1 Mb/s ou 2 Mb/s (megabits por segundo) e é possível usar as técnicas de transmissão Direct Sequence Spread Spectrum (DSSS) e Frequency Hopping Spread Spectrum (FHSS).
P á g i n a | 121 Estas técnicas possibilitam transmissões utilizando vários canais dentro de uma frequência, no entanto, a DSSS cria vários segmentos da informações transmitidas e as envia simultaneamente aos canais. A técnica FHSS, por sua vez, utiliza um esquema de "salto de frequência", onde a informação transmitida utiliza determinada frequência em certo período e, no outro, utiliza outra frequência. Esta característica faz com que o FHSS tenha velocidade de transmissão de dados um pouco menor, por outro lado, torna a transmissão menos suscetível à interferências, uma vez que a frequência utilizada muda constantemente. O DSSS acaba sendo mais rápido, mas tem maiores chances de sofrer interferência, uma vez que faz uso de todos os canais ao mesmo tempo. Padrão 802.11b Em 1999, foi lançada uma atualização do padrão 802.11 que recebeu o nome 802.11b. A principal característica desta versão é a possibilidade de estabelecer conexões nas seguintes velocidades de transmissão: 1 Mb/s, 2 Mb/s, 5,5 Mb/s e 11 Mb/s. O intervalo de frequências é o mesmo utilizado pelo 802.11 original (entre 2,4 GHz e 2,4835 GHz), mas a técnica de transmissão se limita ao DSSS, uma vez que o FHSS acaba não atendendo às normas estabelecidas pela Federal Communications Commission (FCC) quando operada em transmissões com taxas superiores a 2 Mb/s. Para trabalhar de maneira efetiva com as velocidades de 5.5 Mb/s e 11 Mb/s, o 802.11b também utiliza uma técnica chamada Complementary Code Keying (CCK). A área de cobertura de uma transmissão 802.11b pode chegar, teoricamente, a 400 metros em ambientes abertos e pode atingir uma faixa de 50 metros em lugares fechados (tais como escritórios e residências). É importante frisar, no entanto, que o alcance da transmissão pode sofrer influência de uma série de fatores, tais como objetos que causam interferência ou impedem a propagação da transmissão a partir do ponto em que estão localizados. É interessante notar que, para manter a transmissão o mais funcional possível, o padrão 802.11b (e os padrões sucessores) pode fazer com que a taxa de transmissão de dados diminua até chegar ao seu limite mínimo (1 Mb/s) à medida que uma estação fica mais longe do ponto de acesso. O contrário também acontece: quanto mais perto do ponto de acesso, maior pode ser a velocidade de transmissão. O padrão 802.11b foi o primeiro a ser adotado em larga escala, sendo, portanto, um dos responsáveis pela popularização das redes Wi-Fi. Padrão 802.11a O padrão 802.11a foi disponibilizado no final do ano de 1999, quase na mesma época que a versão 802.11b. Sua principal característica é a possibilidade de operar com taxas de transmissão de dados no seguintes valores: 6 Mb/s, 9 Mb/s, 12 Mb/s, 18 Mb/s, 24 Mb/s, 36 Mb/s, 48 Mb/s e 54 Mb/s. O alcance geográfico de sua transmissão é de cerca de 50 metros. No entanto, a sua frequência de operação é diferente do padrão 802.11 original: 5 GHz, com canais de 20 MHz dentro desta faixa. Por um lado, o uso desta frequência é conveniente por apresentar menos possibilidades de interferência, afinal, este valor é pouco usado. Por outro, pode trazer determinados problemas, já que muitos países não possuem regulamento para essa frequência. Além disso, esta característica pode fazer com que haja dificuldades de comunicação com dispositivos que operam nos padrões 802.11 original e 802.11b. Um detalhe importante é que em vez de utilizar DSSS ou FHSS, o padrão 802.11a faz uso de uma técnica conhecida como Orthogonal Frequency Division Multiplexing (OFDM). Nela, a informação a ser trafegada é dividida em vários pequenos conjuntos de dados que são transmitidos simultaneamente em diferentes frequências. Estas são utlizadas de forma a impedir que uma interfira na outra, fazendo com que a técnica OFDM funcione de maneira bastante satisfatória. Apesar de oferecer taxas de transmissão maiores, o padrão 802.11a não chegou a ser tão popular quanto o padrão 802.11b.
P á g i n a | 122 Padrão 802.11g O padrão 802.11g foi disponibilizado em 2003 e é tido como o "sucessor natural" da versão 802.11b, uma vez que é totalmente compatível com este. Isso significa que um dispositivo que opera com 802.11g pode "conversar" com outro que trabalha com 802.11b sem qualquer problema, exceto o fato de que a taxa de transmissão de dados é, obviamente, limitava ao máximo suportado por este último. O principal atrativo do padrão 802.11g é poder trabalhar com taxas de transmissão de até 54 Mb/s, assim como acontece com o padrão 802.11a. No entanto, ao contrário desta versão, o 802.11g opera com frequências na faixa de 2,4 GHz (canais de 20 MHz) e possui praticamente o mesmo poder de cobertura do seu antecessor, o padrão 802.11b. A técnica de transmissão utilizada nesta versão também é o OFDM, todavia, quando é feita comunicação com um dispositivo 802.11b, a técnica de transmissão passa a ser o DSSS. Padrão 802.11n O desenvolvimento da especificação 802.11n se iniciou em 2004 e foi finalizado em setembro de 2009. Durante este período, foram lançados vários dispositivos compatíveis com a versão não terminada do padrão. E, sim, estamos falando do sucessor do 802.11g, tal como este foi do 802.11b. O 802.11n tem como principal característica o uso de um esquema chamado Multiple-Input Multiple-Output (MIMO), capaz de aumentar consideravelmente as taxas de transferência de dados por meio da combinação de várias vias de transmissão (antenas). Com isso, é possível, por exemplo, usar dois, três ou quatro emissores e receptores para o funcionamento da rede. Uma das configurações mais comuns neste caso é o uso de APs que utilizam três antenas (três vias de transmissão) e STAs com a mesma quantidade de receptores. Somando esta característica de combinação com o aprimoramento de suas especificações, o padrão 802.11n é capaz de fazer transmissões na faixa de 300 Mb/s e, teoricamente, pode atingir taxas de até 600 Mb/s. No modo de transmissão mais simples, com uma via de transmissão, o 802.11n pode chegar à casa dos 150 Mb/s. Em relação à sua frequência, o padrão 802.11n pode trabalhar com as faixas de 2,4 GHz e 5 GHz, o que o torna compatível com os padrões anteriores, inclusive com o 802.11a (pelo menos, teoricamente). Cada canal dentro dessas faixas possui, por padrão, largura de 40 MHz. Sua técnica de transmissão padrão é o OFDM, mas com determinadas alterações, devido ao uso do esquema MIMO, sendo, por isso, muitas vezes chamado de MIMO-OFDM. Alguns estudos apontam que sua área de cobertura pode passar de 400 metros. Padrão 802.11ac 5G WiFi O "sucessor" do 802.11n é o padrão 802.11ac, cujas especificações foram desenvolvidas quase que totalmente entre os anos de 2011 e 2013, com a aprovação final de suas características pelo IEEE devendo acontecer somente em 2014 ou mesmo 2015. A principal vantagem do 802.11ac está em sua velocidade, estimada em até 433 Mb/s no modo mais simples. Mas, teoricamente, é possível fazer a rede superar a casa dos 6 Gb/s (gigabits por segundo) em um modo mais avançado que utiliza múltiplas vias de transmissão (antenas) - no máximo, oito. A tendência é que a indústria priorize equipamentos com uso de até três antenas, fazendo a velocidade máxima ser de aproximadamente 1,3 Gb/s. Também chamada de 5G WiFi - há até um site criado para promover esta especificação: www.5gwifi.org -, o 802.11ac trabalha na frequência de 5 GHz, sendo que, dentro desta faixa, cada canal pode ter, por padrão, largura de 80 MHz (160 MHz como opcional).
P á g i n a | 123
O 802.11ac possui também técnicas mais avançadas de modulação - mais precisamente, trabalha com o esquema MUMUMO (Multi-User MIMO), que permite transmissão e recepção de sinal de vários terminais, como se estes trabalhassem de maneira colaborativa, na mesma frequência. Se destaca também o uso de um método de transmissão chamado Beamforming (também conhecido como TxBF), que no padrão 802.11n é opcional: trata-se de uma tecnologia que permite ao aparelho transmissor (como um roteador) "avaliar" a comunicação com um dispositivo cliente para otimizar a transmissão em sua direção. Outros padrões 802.11 O padrão IEEE 802.11 teve (e terá) outras versões além das mencionadas anteriormente, que não se tornaram populares por diversos motivos. Um deles é o padrão 802.11d, que é aplicado apenas em alguns países onde, por algum motivo, não é possível utilizar alguns dos outros padrões estabelecidos. Outro exemplo é o padrão 802.11e, cujo foco principal é o QoS (Quality of Service) das transmissões, isto é, a qualidade do serviço. Isso torna esse padrão interessante para aplicações que são severamente prejudicadas por ruídos (interferências), tais como as comunicações por VoIP. Há também o padrão 802.11f, que trabalha com um esquema conhecido como handoff que, em poucas palavras, faz com que determinado dispositivo se desconecte de um AP (lembrando, um Access Point - ponto de acesso) de sinal fraco e se conecte em outro, de sinal mais forte, dentro da mesma rede. O problema é que alguns fatores podem fazer com que esse procedimento não ocorra da maneira devida, causando transtornos ao usuário. As especificações 802.11f (também conhecido como Inter-Access Point Protocol) fazem com que haja melhor interoperabilidade entre os APs para diminuir estes problemas. Também merece destaque o padrão 802.11h. Na verdade, este nada mais é do que uma versão do 802.11a que conta com recursos de alteração de frequência e controle do sinal. Isso porque a frequência de 5 GHz (usada pelo 802.11a) é aplicada em diversos sistemas na Europa. Há ainda o 802.11i, que será explicado no tópico a seguir (você verá o porquê). Há vários outras especificações, mas a não ser por motivos específicos, é conveniente trabalhar com as versões mais populares, preferencialmente com a mais recente. Resumo dos principais padrões
IEEE 802.11
IEEE 802.11b
IEEE 802.11ª
IEEE 802.11g
• • • • • • • • • • • • • • • • • • •
Criado em 1994, foi o padrão original. Oferecia taxas de transmissão de 2 Mbps. Caiu em desuso com o surgimento de novos padrões. Taxas de transmissão de 11Mbps. Largamente utilizada hoje em dia. Opera em 2.4Ghz Alcance de até 100m indoor e 300m outdoor Mais voltado para aplicações indoor Tende a cair em desuso com a popularização do 802.11g. Taxas de transmissão de 54Mbps. Alcance menor do que a 802.11b. Opera em 5Ghz Alcance de até 60m indoor e 100m outdoor Mais voltado para aplicações indoor Seu maior problema é a não compatibilidade com dispositivos do padrão b , o que prejudicou e muito sua aceitação no mercado. Taxas de transmissão de 54Mbps podendo chegar em alguns casos a 108Mbps. Opera em 2.4Ghz Mais voltado para aplicações indoor. Reúne o melhor dos mundos a e b. (alcance x taxa).
P á g i n a | 124
IEEE 802.16a
• • • • •
Criado em 2003. Popularmente conhecido como Wi-Max Voltado exclusivamente para aplicações outdoor Alcance de até 50Km Taxas de transmissão de até 280Mbps.
12.4.1.2 – Técnicas de Transmissão WLANs usam uma técnica de transmissão conhecida como difusão de espectro (Spread Spectrum). Essa técnica se caracteriza por larga largura de banda e baixa potência de sinal. São sinais dificeis de detectar e mesmo interceptar sem o equipamento adequado. Existem dois tipos de tecnologias de Spread Spectrum regulamentadas pelo FCC: Direct Sequence Spread Spectrum (DSSS) e Frequency Hopping Spread Spectrum (FHSS).
DSSS
• • • • •
FHSS
• • • • •
Menos resistente a interferência Compatibilidade com equipamentos de padrões anteriores Taxa de Transmissão de 11 Mbps Menor segurança Possui 11 canais, mas destes somente 3 são não-interferentes e os efetivamente usados para transmissão – Canais : 1, 6 e 11 Mais resistente a interferência Não possui compatibilidade com equipamentos de padrões anteriores Taxa de transmissão de 2Mbps Maior segurança 79 canais disponíveis para transmissão
12.4.1.3 – Elementos de Hardware Na tabela a seguir descrevemos os componentes de uma WLAN
PC Card
Placas PCI
Adaptadores USB
Pontos de Acesso
• • •
Usado somente em notebooks Serve para conectar o notebook a rede wireless Possui antena interna imbutida
• • •
Usado somente em desktops Serve para conectar o desktop a rede wireless Possui antena externa acoplada a saída da placa
• • •
Pode ser usado em notebooks ou desktops Serve para conectar o notebook ou desktop a rede wireless Possui antena interna imbutida
• • • • •
Concentra todo o tráfego da rede wireless além das conexões oriundas dos clientes. Possui um identificador que identifica a rede chamado SSID. Interface entre a rede wireless e a rede cabeada por possuir porta UTP 10 ou 100Mbps Possui antena interna imbutida Suporta a conexão de antenas externas, na maioria dos casos
• •
Agrupa vários clientes LAN e transforma essa LAN em único cliente WLAN. Recomendado em situações em que um pequeno grupo de usuários necessita de acesso a rede principal. O número máximo de estações que pode ser conectado está compreendido entre 8 e 128, dependendo do fabricante.
• Pontes Wireless Workgroup
P á g i n a | 125
Pontes Wireless
• • •
Conecta duas ou mais redes Compreende 4 modos de operação: Root, Non-Root, Access Point e Repeater. Possui a capacidade de formação de backbone wireless através de 2 PC Cards.
• •
Conecta um pequeno número de dispositivos wireless a internet ou outra rede Possui uma porta WAN e várias portas LAN. Geralmente tem um hub ou switch embutido e possui as funcionalidades de um Ponto de Acesso.
•
Podem ser conectadas a pontos de acesso ou a máquinas clientes para aumentar o ganho do sinal e assim melhorar a transmissão de dados. Podem ser direcionais ou omni-direcionais.
Gateways
• Antenas 12.4.1.4 – Tipos de WLAN
Uma WLAN pode ser utilizada tanto na forma Indoor quanto na forma Outdoor » Indoor Dizemos que uma WLAN é indoor quando o sinal está sendo transmitido em ambiente fechado normalmente na presença de muitos obstáculos, um escritório é um bom exemplo. Não há necessidade de visada direta entre as antenas para que haja comunicação. Alcance pequeno em torno de até 300 metros. Podem ter a presença de um Ponto de Acesso ou não.
ADHOC
Infraestrutura
• • • • • • • • •
Não existem Pontos de Acesso (AP) Comunicação feita cliente – cliente Não existe canalização do tráfego Performance diminui a medida que novos clientes são acrescentados Suporta no máximo 5 clientes para uma performance aceitável com tráfego leve Necessidade de um Ponto de Acesso (AP) Comunicação cliente – cliente não é permitida. Toda a comunicação é feita com o AP. Centralização do tráfego. Todo o tráfego da Rede passa pelo AP. Compreende dois modos de operação: BSS (Basic Service Set), ESS (Extended Service Set)
BSS – Consiste de um Ponto de Acesso ligado a rede cabeada e um ou mais clientes wireless. Quando um cliente quer se comunicar com outro ou com algum dispositivo na rede cabeada deve usar o Ponto de Acesso para isso. O BSS compreende uma simples célula ou área de RF e tem somente um identificador (SSID). Para que um cliente possa fazer parte da célula ele deve estar configurado para usar o SSID do Ponto de Acesso.
P á g i n a | 126
Figura 8 - Sistema BSS
ESSS – São 2 sistemas BSS conectados por um sistema de distribuição, seja ele LAN, WAN, Wireless ou qualquer outro. Necessita portanto de 2 Pontos de Acesso. Permite roaming entre as células. Não necessita do mesmo SSID em ambos os BSS.
Figura 9 - Sistema ESS
» Outdoor Dizemos que uma WLAN é outdoor quando o sinal está sendo transmitido ao ar livre, uma comunicação entre dois prédios é um bom exemplo. As antenas ficam nos topos dos prédios e para que haja comunicação é necessário haver visada direta entre elas. Possui longo alcance podendo chegar a vários quilômetros. As categorias de redes sem fio Distinguem-se habitualmente várias categorias de redes sem fio, de acordo com o perímetro geográfico que oferece uma ligação (chamado zona de cobertura):
P á g i n a | 127 12.4.1.5 Segurança: WEP, WPA, WPA2 e WPS Se você tem uma rede Ethernet com dez pontos de acesso onde todos estão em uso, não será possível adicionar outro computador, a não ser que mais um cabo seja disponibilizado. Nas redes Wi-Fi, isso já não acontece, pois basta a qualquer dispositivo ter compatibilidade com a tecnologia para se conectar à rede. Mas, e se uma pessoa não autorizada conectar um computador à rede de maneira oculta para aproveitar todos os seus recursos, inclusive o acesso à internet? É para evitar problemas como estes que as redes sem fio devem contar com esquemas de segurança. Um deles é o Wired Equivalent Privacy (WEP). O WEP existe desde o padrão 802.11 original e consiste em um mecanismo de autenticação que funciona, basicamente, de forma aberta ou restrita por uso de chaves. Na forma aberta, a rede aceita qualquer dispositivo que solicita conexão, portanto, há apenas um processo de autorização. Na forma restrita, é necessário que cada dispositivo solicitante forneça uma chave (combinação de caracteres, como uma senha) pré-estabelecida. Esta mesma chave é utilizada para cifrar os dados trafegados pela rede. O WEP pode trabalhar com chaves de 64 bits e de 128 bits. Naturalmente, esta última é mais segura. Há alguns equipamentos que permitem chaves de 256 bits, mas isso se deve a alterações implementadas por algum fabricantes, portanto, o seu uso pode gerar incompatibilidade com dispositivos de outras marcas. A utilização do WEP, no entanto, não é recomendada por causa de suas potenciais falhas de segurança (embora seja melhor utilizá-lo do que deixar a rede sem proteção alguma). Acontece que o WEP faz uso de vetores de inicialização que, com a aplicação de algumas técnicas, fazem com que a chave seja facilmente quebrada. Uma rede utilizando WEP de 64 bits, por exemplo, tem 24 bits como vetor de inicialização. Os 40 bits restantes formam uma chave muito fácil de ser vencida. Mesmo com o uso de uma combinação de 128 bits, é relativamente fácil quebrar todo o esquema de segurança. Diante deste problema, a Wi-Fi Alliance aprovou e disponibilizou em 2003 outra solução: o Wired Protected Access (WPA). Tal como o WEP, o WPA também se baseia na autenticação e cifragem dos dados da rede, mas o faz de maneira muito mais segura e confiável. Sua base está em um protocolo chamado Temporal Key Integrity Protocol (TKIP), que ficou conhecido também como WEP2. Nele, uma chave de 128 bits é utilizada pelos dispositivos da rede e combinada com o MAC Address (um código hexadecimal existente em cada dispositivo de rede) de cada estação. Como cada MAC Address é diferente do outro, acaba-se tendo uma sequência específica para cada dispositivo. A chave é trocada periodicamente (ao contrário do WEP, que é fixo), e a sequência definida na configuração da rede (o passphrase, que pode ser entendido como uma espécie de senha) é usada, basicamente, para o estabelecimento da conexão. Assim sendo, é expressamente recomendável usar WPA no lugar de WEP. Apesar de o WPA ser bem mais seguro que o WEP, a Wi-Fi Alliance buscou um esquema de segurança ainda mais confiável. Foi aí que surgiu o 802.11i, que em vez de ser um padrão de redes sem fio, é um conjunto de especificações de segurança, sendo também conhecido como WPA2. Este utiliza um padrão de criptografia denominado Advanced Encryption Standard (AES) que é muito seguro e eficiente, mas tem a desvantagem de exigir bastante processamento. Seu uso é recomendável para quem deseja alto grau de segurança, mas pode prejudicar o desempenho de equipamentos de redes não tão sofisticados (geralmente utilizados no ambiente doméstico). É necessário considerar também que equipamentos mais antigos podem não ser compatíveis com o WPA2, portanto, sua utilização deve ser testada antes da implementação definitiva. A partir de 2007, começou a aparecer no mercado dispositivos wireless que utilizam Wi-Fi Protected Setup (WPS), um recurso desenvolvido pela Wi-Fi Alliance que torna muito mais fácil a criação de redes Wi-Fi protegidas por WPA2. Com o WPS é possível fazer, por exemplo, com que uma sequência numérica chamada PIN (Personal Identification Number) seja atribuída a um roteador ou equipamento semelhante. Basta ao usuário conhecer e informar este número em uma conexão para fazer com que seu dispositivo ingresse na rede.
P á g i n a | 128 No final de 2011, tornou-se pública a informação de que o WPS não é seguro e, desde então, sua desativação em dispositivos compatíveis passou a ser recomendada. Dicas de segurança Ao chegar a este ponto do artigo, você certamente já conhece as vantagens de se ter uma rede Wi-Fi e, de igual forma, sabe que entre as suas desvantagens estão alguns problemas de segurança. No entanto, medidas preventivas podem fazer com que você nunca enfrente transtornos. Eis algumas dicas importantes: 1.
2.
3.
4.
5. 6. 7. 8.
Habilite a encriptação de sua rede, preferencialmente com WPA ou, se possível, com WPA2. Em ambientes com muitas estações, pode-se utilizar WPA ou WPA2 com um servidor de autenticação RADIUS (Remote Authentication Dial In User Service), um esquema conhecido como WPA-RADIUS; Ao habilitar o WPA ou o WPA2, use uma passphrase - isto é, uma sequência que servirá como uma espécie de senha - com pelo menos 20 caracteres. Note que em sua rede Wi-Fi esses itens podem estar com os nomes WPA Pre-Shared Key e WPA2 Pre-Shared Key ou WPA-PSK e WPA2-PSK; Altere o SSID, isto é, o nome da rede, para uma denominação de sua preferência. Se mantiver o nome estabelecido de fábrica, um invasor pode ter a impressão de que o dono da rede não se preocupa com os aspectos de segurança; Também pode ser importante desativar o broadcast do SSID (um recurso que faz com uma determinada estação detecte a rede pelo seu nome automaticamente), pois isso impede que dispositivos externos enxerguem a rede e tentem utilizá-la (embora existam técnicas avançadas que conseguem enxergar redes ocultas). Vale frisar, no entanto, que ao fazer isso, você deverá informar o SSID manualmente, se quiser adicionar uma estação à rede. Há um campo apropriado para isso no aplicativo que faz a conexão; Mude a senha padrão do roteador ou do access point. Muitos invasores conhecem as senhas aplicadas pelos fabricantes e, podem, portanto, acessar as propriedades de uma rede cuja senha não foi alterada; Sempre que possível, habilite as opções de firewall; Diminua a intensidade do sinal, caso sua rede tenha a finalidade de servir a uma área pequena. Para isso, alguns aparelhos permitem regular a emissão do sinal ou desativar uma antena extra; Por fim, leia o manual do aparelho e siga todas as orientações de segurança recomendadas pelo fabricante.
Estas e outras configurações normalmente são feitas por meio de de uma interface em HTML fornecida pelo roteador ou por um dispositivo equivalente. Como exemplo, o roteador 3Com apresentado em uma foto acima tem a sua interface acessível pelo endereço IP 168.192.1.1 (este é um IP local, não válido na internet). Ao digitar esse endereço no navegador de internet, o roteador mostrará uma página em HTML com campos de login. Quando o login é efetuado, o usuário pode então acessar e alterar as configurações do aparelho. 12.10 Elementos de interconexão de redes de computadores (switches, roteadores, balanceadores de carga) Hoje não faz muito sentido criar uma LAN isolada do resto do mundo. A necessidade de transferência de dados fruto da redução de custos e da dinamicidade do mundo moderno praticamente impõe esta conexão. Para simplificar o nosso estudo, vamos trabalhar com cinco ativos de rede: repetidores, hubs, switches (2-layer e 3-layer) e roteadores.
Figura 10 - Relação entre dispositivos e camadas
P á g i n a | 129 12.10.1 Repetidor Dispositivo que opera apenas na camada física recebendo um sinal de entrada, regenerando-o e enviando para a porta de saída. Com o objetivo de manter a inteligibilidade dos dados, o repetidor é um regenerador de sinais (não um amplificador), pois refaz os sinais originais (deformados pela atenuação/ruído) tentando anular a interferência do ruído. Por definição, não efetua nenhum tipo de filtragem. Sua utilização requer estudos relacionados ao padrão do meio físico e a susceptibilidade do ruído neste.
Figura 11 - Funcionamento básico de um repetidor
12.10.2 Hub Um hub consiste num repetidor multiportas, ou seja, ao receber a informação de uma porta, ele distribui por todas as outras. Com um hub é possível fazer uma conexão física entre diversos computadores com a topologia estrela.
Figura 12 - Hierarquia entre HUBs
Assim, um Hub permite apenas que os utilizadores compartilhem Ethernet e todos os nós do segmento Ethernet irão partilhar o mesmo domínio de colisão. Na figura acima são vistos 3 hubs interconectando seis estações. Os dois hubs que estão ligando diretamente as estações, são chamados de departamentais, pois geralmente são utilizados para agrupar as conexões de uma sla/departamento. Já o dispositivo superior é chamado de hub de backbone, pois interliga departamentos com conexões ponto-a-ponto. Hubs não tem a capacidade de prover VLANs para portas individuais, e as VLANs não podem ser estendidas além das portas dos dispositivos de ponta, mesmo que um switch tenha suporte a VLAN esteja conectado. Domínio de colisão - Um domínio simples de colisão consiste em um ou mais Hubs Ethernet e nós conectados entre eles. Cada aparelho dentro do domínio de colisão partilha a banda de rede disponível com os outros aparelhos no mesmo domínio. Switches e Bridges são utilizados para separar domínios de colisão que são demasiado grandes de forma a melhorar a performance e a estabilidade da rede. Os hubs são considerados dispositivos da camada 1 do modelo OSI porque apenas geram novamente o sinal e o transmitem para suas portas (conexões da rede). Suas velocidades podem variar de 10, 10/100 ou 1000Mbps e a maioria dos modelos possibilita a interligação dos equipamentos sob duas formas básicas: o empilhamento e o cascateamento. Cascateamento
P á g i n a | 130 No cascateamento, a interligação se dá através de uma porta de um equipamento com a outra porta de outro equipamento, sendo a largura de banda limitada à velocidade da porta (10/100/1000Mbps). As regras para o cascateamento dependem das especificações dos dispositivos porque neste tipo de ligação, à medida que vai se “cacasteando”, a performance da rede vai caindo. Alguns fabricantes limitam em cinco metros o comprimento máximo do cabo UTP que conecta os hubs com velocidades até 100Mbps. Também dentro das limitações impostas por cada fabricante, é possível interligar equipamentos distintos e de marcas distintas, obedecendo-se à regra 5-4-3 para hubs. Esta regra limita em distância o número de segmentos ponto a ponto de uma rede em 5 (100 metros por segmento e um máximo de 500 metros), o número de repetidores existentes (no máximo 4), sendo um repetidor para cada par de segmentos e apenas 3 segmentos podem conter hosts. O cascateamento é muito prático e barato, mas pode ocupar portas que poderiam ser usadas para conectar outros equipamentos da rede. O número de portas utilizadas para o cascateamento pode ser obtido pela seguinte expressão: 2n-2, onde n é o número de hubs usados no cascateamento. Empilhamento Já no empilhamento, a interligação ocorre através de uma porta específica para empilhamento (stack) e cada fabricante possui um tipo de interface própria a qual possui velocidade transmissão maior que a velocidade das portas de conexão. Nesse caso, o empilhamento pode ser feito apenas entre equipamentos de um mesmo fabricante e não ocorre a incidência da regra 5-4-3 na pilha de hubs. Desta forma, os hubs assim empilhados tornam-se um único repetidor. O empilhamento é mais eficiente do que o cascateamento porque não ocupa as portas frontais para conexão, aumentando com isso a quantidade de portas disponíveis para os equipamentos da rede. Pode-se empilhar até quatro equipamentos, sempre considerando as observações e limitações de cada fabricante. 12.10.3 Bridges (Pontes) Este dispositivo trabalha na camada física e na camada de enlace, agregando a função de verificar o MAC address da estação que receberá o frame. Com a bridge é possível fazer uma filtragem de entrega, pois ao verificar o MAC address, ela determina que interface receba o frame enviado. O ideal é que as estações não tomem conhecimento da existência da bridge para que as configurações de rede se tornem mais simples. Para isso foi criado o conceito da bridge transparente (IEEE 802.1d) que deve obedecer aos critérios: 1. Os frames devem ser enviados diretamente entre as estações. 2. A tabela de encaminhamento deve ser aprendida e atualizada pela bridge. 3. O sistema não deve conter loop.
Filtragem Capacidade de um dispositivo determinar se um frame (quadro ou pacote) deve ser repassado para alguma interface ou deve ser descartado. A filtragem e o repasse são feitos através de uma tabela de comutação. 12.10.4 Switchs Switch Camada 2 Um switch de camada 2 corresponde a uma bridge multiportas projetado para melhorar a performance da rede uma vez que reduz os domínios de colisão. Com o switch, as estações não brigam para ver quem vai utilizar o meio de transmissão. Um ponto importante deve ser visto no projeto de um switch, a especificação do seu backbone. Imagine um switch de 16 portas de 100Mbps todas transmitindo intensamente. Agora pense que você tem dois switchs, um “Xingli-ling” e um bom switch (3Com, Dell ou IBM), onde o primeiro vem com um manual de uma folha, enquanto o segundo especifica o backbone de 1Gbps. Com um backbone mais largo, o switch terá capacidade de efetuar uma maior vazão sem descartar frames, possibilitando uma rede mais rápida e redizindo as colisões dentro do dispositivo. Assim como o hub, o switch também está associado a topologia estrela.
P á g i n a | 131 Switch Camada 3 Quando alguém lhe perguntar até que camada atua um switch responda: Tradicionalmente até a camada de enlace! Há alguns anos a Cisco criou o conceito de switch three-level com todas as funções de um switch camada dois gerenciável permitindo ainda: • Correção de falhas de transmissão entre nós; • Roteamento e encaminhamento dos pacotes, selecionando o melhor caminho; • Suporte para mais de 500 estações. Se utilizado em LANs, um switch camada 3 pode ser utilizado para segmentar as redes através de endereçamento IP (veremos no próximo capítulo) e muitos deles ainda possuem servidor DHCP para distribuição automática de endereços IP. Por permitir a interligação de segmentos de diferentes domínios e broadcast, os switches de camada 3 são particularmente recomendados para a segmentação de LAN’s muito grandes, onde a simples utilização de switches de camada 2 provocaria uma perda de performance e eficiência da LAN, devido à quantidade excessiva de broadcasts. Se combinado com um roteador tradicional baseado em software, um switch camada 3 pode-se reduzir consideravelmente a carga de trabalho sobre o roteador e aumentar a taxa de transferência entre sub-redes para milhões de pacotes por segundo. Atualmente o grande problema destes switchs são: a falta de suporte em redes que possuam tráfego não IP (IPX, AppleTalk, DECnet) e seu seu alto custo. 12.5.5 Roteadores Um roteador é um dispositivo que opera na camada de rede e sua principal função é selecionar o caminho mais apropriado entre as redes e repassar os pacotes recebidos. Ou seja, encaminhar os pacotes para o melhor caminho disponível para um determinado destino. Com base na máscara de sub-rede o protocolo TCP/IP determina se o computador de origem e o de destino estão na mesma rede local. Com base em cálculos binários, o TCP/IP pode chegar a dois resultados distintos: • O computador de origem e o computador de destino estão na mesma rede local: Neste caso os dados são enviados para o barramento da rede local. Todos os computadores da rede recebem os dados. Ao receber os dados cada computador analisa o campo Número IP do destinatário. Se o IP do destinatário for igual ao IP do computador, os dados são capturados e processados pelo sistema, caso contrário são simplesmente descartados. Observe que com este procedimento, apenas o computador de destino é que efetivamente processa os dados para ele enviados, os demais computadores simplesmente descartam os dados. • O computador de origem e de destino não estão na mesma rede local: Neste caso os dados são enviados o equipamento com o número IP configurado no parâmetro Default Gateway (Gateway Padrão). Ou seja, se após os cálculos baseados na máscara de sub-rede, o TCP/IP chegar a conclusão que o computador de destino e o computador de origem não fazem parte da mesma rede local, os dados são enviados para o Default Gateway, o qual será encarregado de encontrar um caminho para enviar os dados até o computador de destino. Esse “encontrar o caminho“ é tecnicamente conhecido como Rotear os dados até o destino (ou melhor, rotear os dados até a rede do computador de destino). O responsável por “Rotear” os dados é o equipamento que atua como Default Gateway o qual é conhecido como Roteador. Quando ocorre um problema com o Roteador, tornando-o indisponível, você consegue se comunicar normalmente com os demais computadores da sua rede local, porém não conseguirá comunicação com outras redes de computadores, como por exemplo a Internet. Existem basicamente dois tipos de roteadores: • •
Estáticos: este tipo é mais barato e é focado em escolher sempre o menor caminho para os dados, sem considerar se aquele caminho tem ou não congestionamento; Dinâmicos: este é mais sofisticado (e conseqüentemente mais caro) e considera se há ou não congestionamento na rede. Ele trabalha para fazer o caminho mais rápido, mesmo que seja o caminho mais longo. De nada adianta utilizar o menor caminho se esse estiver congestionado. Muitos dos roteadores dinâmicos são capazes de fazer compressão de dados para elevar a taxa de transferência. Os roteadores são capazes de interligar várias redes e geralmente trabalham em conjunto com hubs e switchs. Ainda, podem ser dotados de recursos extras, como
P á g i n a | 132 firewall, por exemplo. Um Gateway, ou porta de ligação, é uma máquina intermediária geralmente destinado a interligar redes, separar domínios de colisão, ou mesmo traduzir protocolos. Exemplos de gateway podem ser os routers (ou roteadores) e firewalls (corta-fogos), já que ambos servem de intermediários entre o utilizador e a rede. Um proxy também pode ser interpretado como um gateway (embora a outro nível, aquele da camada em que opere), já que serve de intermediário também. Política de Roteamento Store-and-forward O comutador recebe e armazena os dados até possuir completamente o pacote em um buffer de entrada. Após, efetua verificação por erros cíclicos e outros, passa o pacote para o buffer de saída e retransmite o pacote para o outro comutador ou o terminal. Caso ele encontre algum erro, descarta o pacote. Este tipo de comutador é mais robusto e eficiente, porém devido ao grande número de requisições geralmente ocorrem muitos choques de pacotes a atrasos. A implementação mista do store-and-forward e do cut-through é a configuração mais utilizada. • Pacote seja dividido em células, as quais serão transferidas a cada ciclo de comunicação da rede; • Todas as células de um pacote devem ser recebidas por um nó intermediário para que o pacote comece a ser repassado para o nó seguinte. Cut-through Este comutador recebe e armazena apenas parte do cabeçalho (6 primeiros bytes), para saber qual receptor do pacote, e já encaminha os dados diretamente. A princípio, há um enorme ganho em velocidade. No entanto, por não haver nenhuma verificação de erros (neste caso a verificação ocorre nos terminais), frequentemente é necessário o reenvio do pacote. Na prática é muito pouco utilizado sozinho. • Semelhante a um pipeline; • Tão logo uma célula seja recebida por um nó intermediário, ela pode ser repassada para o nó seguinte; • Diferentes células de um pacote circulam simultaneamente por diferentes nós da rede de conexão. Fragment-free O funcionamento deste comutador é muito semelhante ao cut-through, porém ele armazena os 64 primeiros bytes antes de enviar. Esta implementação é baseada em observações estatísticas: a grande maioria dos erros, bem como todos os choques de pacotes, ocorrem nos primeiros 64 bytes. 13. GERENCIAMENTO DE REDES DE COMPUTADORES 13.1 Conceitos Gerência de redes ou gerenciamento de redes é o controle de qualquer objeto passível de ser monitorado numa estrutura de recursos físicos e lógicos de uma rede e que podem ser distribuídos em diversos ambientes geograficamente próximos ou não. O gerenciamento de uma rede de computadores torna-se uma atividade essencial para garantir o seu funcionamento contínuo assim como para assegurar um elevado grau de qualidade dos serviços oferecidos. Diversos modelos foram criados para possibilitar o gerenciamento de redes, dados e telecomunicações dos quais se destacam o FCAPS (Fault, Configuration, Accounting, Performance and Security) por servir de base para os demais modelos, assim como o SNMP e o modelo TMN por serem os modelos mais utilizados na prática. Portanto, as tarefas básicas desta gerência, resumidamente, são: obter as informações da rede, tratá-las para diagnosticar possíveis problemas e encaminhar as soluções destes problemas. Para cumprir estes objetivos, funções de gerência devem ser embutidas nos diversos componentes da rede, possibilitando detectar, prever e reagir aos problemas que por ventura possam ocorrer.
P á g i n a | 133 Um sistema de gerenciamento é composto de uma coleção de ferramentas para monitorar e controlar a rede, integradas da seguinte forma: • Uma única interface de operador, com um poderoso e amigável conjunto de comandos, para executar as tarefas de gerenciamento da rede; • Uma quantidade mínima de equipamentos separados, isto é, que a maioria do hardware e software necessário para o gerenciamento da rede seja incorporado nos equipamentos de usuários existentes. O software usado para realizar as tarefas de gerenciamento, reside nos computadores hospedeiros (estações de trabalho) e nos processadores de comunicação (switches, roteadores). Um software de gerenciamento genérico é composto por elementos gerenciados, agentes, gerentes, bancos de dados, protocolos para troca de informações de gerenciamento, interfaces para programas aplicativos e interfaces com o usuário. A arquitetura do software de gerenciamento residente no gerente e nos agentes, varia de acordo com a funcionalidade da plataforma adotada. Genericamente, o software pode ser dividido em software de apresentação (interface), de gerenciamento (aplicação) e de suporte (base de dados e comunicação). Em cada rede gerenciada, deverá haver pelo menos uma estação que atuará como gerente, sendo responsável pelo monitoramento e controle dos dispositivos gerenciáveis, denominados de agentes. O agente é um software existente nos dispositivos gerenciáveis (switches, roteadores, estações de trabalho) da rede e tem como tarefa o monitoramento e o controle dos dispositivos do ambiente em que estão instalados. Os gerentes realizam requisições aos agentes que respondem às requisições com as informações solicitadas. Gerentes e agentes atuam mutuamente na rede. Quanto à distribuição dos gerentes dentro do ambiente a ser gerenciado, classifica-se em: gerência centralizada - onde todo o controle do gerenciamento é realizado por uma única estação e indicada para redes que ocupam uma área geográfica não muito extensa (LANs) - e a gerência distribuída – onde o controle do gerenciamento é realizado por diversas estações espalhadas pela rede e mais indicada para WANs. Na gerência centralizada, uma única estação (gerente), é responsável por todo o controle do gerenciamento, enviando requisições aos dispositivos gerenciáveis da rede (agentes), que responderão a estas solicitações, gerando um tráfego extra de gerência nos diversos enlaces desta rede. Na gerência distribuída, todo o controle é feito de forma descentralizada, em cada domínio de gerência, que são regiões de rede bem definidas, controladas por um gerente. O gerente de cada domínio é responsável pelas informações e decisões dentro do seu domínio e, aquelas que são pertinentes ao ambiente global da rede, são repassadas para o gerente dos gerentes, seguindo uma hierarquia entre estes vários domínios. Com a evolução das redes de computadores, e consequentemente o aumento de sua importância para as corporações, fez-se necessário definir critérios que possibilitassem gerenciar de maneira eficiente estas redes. Devido a grande diversidade de equipamentos e protocolos, fortemente dependentes de seus fabricantes e desenvolvedores, uma variedade de frameworks de gerência se tornava necessário, ficando cada vez mais evidente a necessidade de se estabelecer padrões de gerência que permitissem uma maior interoperabilidade entre um maior número de dispositivos. Estes padrões de gerência começaram a amadurecer e, dentre os mais difundidos, destacam-se o CMISE/CMIP (Commom Management Information Service Element / Commom Management Information Protocol), o RMON (Remote Monitoring), o SNMP e o TMN (Telecommunications Management Network). Apesar dos vários padrões de gerência existentes, a técnica de sniffing também se tornou bastante útil nas atividades de gerência. Com o uso de sniffers (ou probes) no monitoramento de redes, as faltas que alguns dos padrões apresentam quando se trata da obtenção de informações ligadas às camadas mais altas do modelo OSI foram supridas. O sniffer é um programa residente numa máquina conectada a um segmento de rede que “escuta” todo o tráfego que flui neste segmento. Possuem ferramentas conhecidas como analisadores de protocolos, que os habilitam a capturar e interpretar as informações sobre aquilo que trafega em cada segmento de rede. A necessidade de uma arquitetura de gerenciamento capaz de atender à enorme diversidade de elementos gerenciáveis existentes em uma rede e que tivesse características de integração, simplicidade, segurança e flexibilidade fez com que a
P á g i n a | 134 ISO apresentasse um esquema básico de arquitetura de gerenciamento de rede OSI, complementando o modelo de referência OSI. Assim foi idealizada uma arquitetura genérica de gerência de redes, constituída de seis entidades principais: objeto gerenciável, processo gerente, processo agente, base de informações, primitivas e protocolos de gerência.
Figura 13 - Arquitetura genérica de gerência
Qualquer dispositivo de rede que tenha a capacidade de computar, armazenar e disponibilizar informações relevantes à gerência de rede é denominado dispositivo gerenciável. O processo gerente, que normalmente é realizado por um software presente numa determinada estação, denominada estação gerente, possibilita a obtenção e o envio de informações de gerenciamento junto aos dispositivos gerenciados. Um único processo gerente pode controlar vários processos agentes, que por sua vez o podem fazer, cada um, diversos objetos gerenciáveis em um ou mais dispositivos gerenciáveis. As informações de gerenciamento podem ser obtidas através de requisições disparadas pelo gerente ao agente ou mediante envio automático pelo agente a um determinado gerente. O processo agente inclui um software presente nos dispositivos gerenciados. Suas funções principais são o atendimento das requisições e o envio automático de informações de gerenciamento ao processo gerente, indicando a ocorrência de um evento previamente programado. A SMI (Structure Management Information) proposta pela ISO define a estrutura da informação de gerenciamento a ser armazenada em uma base de dados, as operações que podem ser efetuadas sobre estas informações e as notificações que podem ser emitidas em decorrência destas operações. Na definição desta estrutura, a ISO utilizou uma abordagem orientada a objetos, caracterizando os recursos do sistema como objetos gerenciados definidos através de seus atributos, das operações a que podem ser submetidos e das notificações que podem ser emitidas. O conjunto de objetos gerenciados com seus respectivos dados dentro de um sistema aberto define a base de informações de gerenciamento, denominada MIB. Na definição destes objetos gerenciáveis é utilizada a linguagem ASN. (Abstract Syntax Notation One), que possibilita definir a estrutura destes dados sem a necessidade de se considerar a estrutura nem as restrições do dispositivo de rede no qual será implementada. Os dados dos objetos e seu padrão de organização devem ser amplamente conhecidos por agentes e gerentes, para permitir a troca de informações entre eles. O estabelecimento de um padrão para a MIB garante a proteção contra erros de interpretação ou falta de compatibilidade entre os dados trocados. O processo gerente deve conhecer toda MIB de sua rede para poder controlar e interagir com todos os agentes presentes. Um processo agente, por sua vez, pode se limitar a conhecer apenas a uma fração da MIB que comporte os objetos gerenciáveis que ele controla. Os objetos gerenciáveis de uma MIB se relacionam através de uma estrutura hierárquica em árvore, vista a seguir.
P á g i n a | 135
Figura 14 - Estrutura hierárquica de uma MIB
O nome de um objeto, nesta hierarquia, será dado pela sequência de rótulos numéricos dos nós, ao longo de um caminho, da raiz até este objeto. Por exemplo, o nome 1.3.6.1.2.1.4.3 identifica o objetoipInReceives, que no modo textual é identificado por iso.org.dod.internet.mgmt.mib.ip.ipInReceives. Basicamente, são definidos quatro tipos de MIBs: MIB I (RFC 1066), MIB II (RFC 1213), MIB experimental (RFC 1239) e MIB privada. As MIBs do tipo I e II fornecem informações gerais de gerenciamento sobre um determinado equipamento, sem levar em conta as características específicas deste equipamento, sendo a MIB II considerada uma evolução da MIB I. Através destas MIBs é possível obter informações como: tipo e status de uma interface, número de pacotes transmitidos, número de pacotes com erros, protocolo de transmissões, entre outras. As MIBs experimentais são aquelas que estão em fase de testes, com a perspectiva de serem adicionadas ao padrão e que, em geral, fornecem características mais específicas sobre a tecnologia dos meios de transmissão e equipamentos. As privadas, também denominadas MIBs proprietárias, fornecem informações específicas dos equipamentos gerenciados, possibilitando que detalhes peculiares a um determinado equipamento possam ser obtidos. Primitivas de gerência são funções padronizadas utilizadas pelos gerentes e agentes de uma rede com o intuito de promover a troca de informações de gerência. São típicas em qualquer padrão ou sistema de gerência as seguintes primitivas: • GET – usado pelo gerente para requisitar uma informação ao agente. • SET – usado pelo gerente para requisitar ao agente a alteração do valor de um objeto gerenciável. • RESPONSE – usado pelo agente para responder a uma requisição de informação feita pelo gerente. • REPORT_EVENT – usado pelo agente para reportar ao gerente a ocorrência de um evento predeterminado. O protocolo de gerência é responsável por encapsular primitivas de gerência e seus respectivos parâmetros, gerando PDUs (Protocol Data Unit) padronizadas, garantindo assim uma perfeita comunicação entre agente e gerente. É importante observar que o protocolo de gerência em si não gerencia a rede, mas permite aos agentes e gerentes a troca de informações para o gerenciamento. De acordo com a ISO (ISO 7498-4), a gerência de redes pode ser classificada em cinco áreas funcionais: gerência de falhas, gerência de contabilização, gerência de configuração, gerência de desempenho e gerência de segurança. Embora esta classificação, geralmente referenciada como FCAPS (Fault, Configuration, Accounting, Performance and Security), tenha sido desenvolvida para o modelo OSI, houve uma grande aceitação desta por parte dos fabricantes de hardware e software de rede, tanto em tecnologias padronizadas como em proprietárias.
P á g i n a | 136 O FCAPS serve de base por definir áreas funcionais da gerência de redes: • Gerência de falhas: detecta, isola, notifica e corrige operações anormais no funcionamento dos recursos de rede; • Gerência de configuração: responsável pelo registro, manutenção dos parâmetros de configuração dos serviços da rede e implementação de facilidades para atualização ou modificação dos recursos de rede, tais como versões de hardware e de software; • Gerência de contabilização: registra o uso da rede por parte de seus usuários com objetivo de cobrança ou regulamentação, isto é, implementa facilidades para alocação dos recursos e definição de métricas para uso dos mesmos; • Gerência de desempenho: responsável pela medição e disponibilização das informações de desempenho dos serviços de rede. Estes dados são usados para garantir que a rede opere em conformidade com a qualidade do serviço acordado com os seus usuários e para análise de tendência; • Gerência de segurança: restringe o acesso à rede e impede o uso incorreto por parte de seus usuários, de forma intencional ou não, protegendo a operação dos recursos de rede. Gerência de Falhas (Fault) Falhas não são o mesmo que erros. Uma falha é uma condição anormal cuja recuperação exige ação de gerenciamento e normalmente é causada por operações incorretas ou um número excessivo de erros. Por exemplo, se uma linha de comunicação é cortada fisicamente, nenhum sinal pode passar através dela. Um grampeamento no cabo pode causar distorções que induzem a uma alta taxa de erros. Certos erros como, por exemplo, um bit errado em uma linha de comunicação, podem ocorrer ocasionalmente e normalmente não são considerados falhas [6]. Para controlar o sistema como um todo, cada componente essencial deve ser monitorado individualmente para garantir o seu perfeito funcionamento. Quando ocorre uma falha, é importante que seja possível, rapidamente: • Determinar o componente exato onde a falha ocorreu; • Isolar a falha do resto da rede, para que ela continue a funcionar sem interferências; • Reconfigurar ou modificar a rede para minimizar o impacto da operação sem o componente que falhou; • Reparar ou trocar o componente com problemas para restaurar a rede ao seu estado anterior. A gerência de falhas tem, portanto, três grandes responsabilidades: o monitoramento dos estados dos recursos da rede, a manutenção de cada um dos objetos gerenciados e as decisões que devem ser tomadas para restabelecer as unidades do sistema que possam apresentar problemas. O ideal é que, as falhas que possam ocorrer, sejam detectadas antes que os seus efeitos sejam percebidos. O impacto e a duração do estado de falha podem ser minimizados pelo uso de componentes redundantes e rotas de comunicação alternativas, para dar à rede um maior grau de tolerância às falhas. Gerência de Configuração (Configuration) O gerenciamento de configuração está relacionado à inicialização da rede e com uma eventual desabilitação de parte ou de toda a rede. Também está relacionado às tarefas de manutenção, adição e atualização de relacionamentos entre os componentes e da situação dos componentes durante a operação da rede [6]. O gerente da rede deve ser capaz de, identificar os componentes da rede e definir a conectividade entre eles, além de modificar a configuração em resposta às avaliações de desempenho, recuperação de falhas, problemas de segurança, atualização da rede ou para atender às necessidades dos usuários. Gerência de Contabilização (Accounting) Mesmo que nenhuma cobrança interna seja feita pela utilização dos recursos da rede, o administrador da rede deve estar habilitado para controlar o uso dos recursos por usuário ou grupo de usuários, com o objetivo de [6]: • Evitar que um usuário ou grupo abuse de seus privilégios de acesso e monopolize a rede, em detrimento de outros usuários; • Evitar que usuários façam uso ineficiente da rede, assistindo-os na troca de procedimentos e garantindo a desempenho da rede; • Conhecer as atividades dos usuários com detalhes suficientes para planejar o crescimento da rede.
P á g i n a | 137 O gerente da rede deve ser capaz de especificar os tipos de informações de contabilização que devem ser registrados em cada nó, o intervalo de entrega de relatórios para nós de gerenciamento de mais alto nível e os algoritmos usados no cálculo da utilização. Gerência de desempenho (Performance) O gerenciamento do desempenho consiste na monitoração das atividades e controle dos recursos através de ajustes e trocas, possibilitando a obtenção de informações para avaliar o comportamento dos recursos da rede através de determinados parâmetros como: nível de utilização, perfil de tráfego, vazão (throughput), existência de gargalos, tempo de resposta, latência (atrasos), jitter, disponibilidade, níveis de QoS (em redes MPLS), perdas de pacotes, entre outros [6]. Para tratar estas questões, o gerente deve focalizar um conjunto inicial de recursos a serem monitorados, a fim de estabelecer níveis de desempenho. Isto inclui associar métricas e valores apropriados aos recursos de rede que possam fornecer indicadores de diferentes níveis de desempenho. Muitos recursos devem ser monitorados para se obter informações sobre o nível de operação da rede. Colecionando e analisando estas informações, o gerente da rede pode ficar mais capacitado no reconhecimento de indicadores de degradação de desempenho. As redes de computadores hoje são constituídas de uma variedade de dispositivos, de diferentes padrões, implementando diferentes protocolos, oferecendo diferentes níveis de serviço, e que devem se intercomunicar e compartilhar dados e recursos. Na maioria dos casos, a eficiência da aplicação que faz uso destes recursos está altamente relacionada ao bom desempenho da rede. Estatísticas de desempenho podem ajudar no planejamento, administração e manutenção de grandes redes. Estas informações podem ser utilizadas para reconhecer situações de gargalo antes que elas causem problemas para o usuário final. Ações corretivas podem ser executadas, tais como: trocar tabelas de roteamento para balancear ou redistribuir a carga de tráfego durante horários de pico, priorizar tráfego/aplicações, ou ainda indicar a necessidade de expansão de links, roteadores e servidores. O gerenciamento de desempenho, portanto, é importante não só para garantir a qualidade de serviço necessária às aplicações, como também para assegurar que ela possa ser atingida com os menores custos. Pode-se por meio do gerenciamento de desempenho adequar os meios de comunicação utilizados pelos usuários às suas reais necessidades, auxiliando o gerente da rede a antecipar-se aos usuários na manutenção dos níveis de desempenho dos serviços oferecidos. Dentre as atividades mais importantes da gerência de desempenho de redes, pode-se citar: monitoramento do desempenho, caracterização de carga de trabalho (perfil de tráfego ou workload), ajuste de parâmetros do sistema, identificação de gargalos, comparação de desempenho entre sistemas alternativos, dimensionamento de componentes do sistema, previsão de crescimento e tendências. Gerência de Segurança (Security) O gerenciamento da segurança provê facilidades para proteger recursos da rede e informações dos usuários, que devem estar disponíveis apenas para usuários autorizados. É necessário que a política de segurança seja robusta e efetiva e que o sistema de gerenciamento da segurança seja, ele próprio, seguro [6]. O gerenciamento de segurança trata de questões como: • Geração, distribuição e armazenamento de chaves de criptografia; • Manutenção e distribuição de senhas e informações de controle de acesso; • Monitoração e controle de acesso à rede ou parte dela e das informações obtidas dos nós da rede; • Coleta, armazenamento e exame de registros de auditoria e logs de segurança, bem como ativação e desativação destas atividades. Monitoração X Controle de Rede As funções de gerenciamento de rede podem ser agrupadas em duas categorias: monitoração e controle de rede. A monitoração da rede está relacionada à tarefa de observação e análise do estado e configuração de seus componentes, sendo basicamente uma função de “leitura”. O controle da rede é uma função de “escrita” e está relacionada com a tarefa de alteração de parâmetros e execução de determinadas ações.
P á g i n a | 138 Monitoração A monitoração consiste na observação de informações relevantes ao gerenciamento, que podem classificadas em três categorias: • Estática: caracteriza os elementos na atual configuração, como o número e identificação das portas em um roteador; • Dinâmica: relacionada aos eventos na rede, como a transmissão de um pacote; • Estatística: pode ser derivada de informações dinâmicas como a média de pacotes transmitidos por unidade de tempo em um determinado sistema. A informação de gerenciamento é coletada e armazenada por agentes e repassada para um ou mais gerentes. Duas técnicas podem ser utilizadas na comunicação entre agentes e gerentes: polling e event-reporting (ou relatório de evento). A técnica de polling consiste em uma interação do tipo request/response entre um gerente e um agente. O gerente pode solicitar a um agente (para o qual ele tenha autorização), o envio de valores de diversos elementos de informação. O agente responde com os valores constantes em sua MIB. No event-reporting a iniciativa é do agente. O gerente fica na escuta, esperando pela chegada de informações. Um agente pode gerar um relatório periodicamente para fornecer ao gerente o seu estado atual. A periodicidade do relatório pode ser configurada previamente pelo gerente. Um agente também pode enviar um relatório quando ocorre um evento significativo ou não usual. Tanto o polling quanto o event-reporting são usados nos sistemas de gerenciamento, porém a ênfase dada a cada um dos métodos difere muito entre os sistemas. em sistemas de gerenciamento de redes de telecomunicações, a ênfase maior é dada para o método de relatório de evento. O SNMP dá pouca importância ao relatório de evento. O modelo OSI fica entre estes dois extremos. A escolha da ênfase depende de um número de fatores: • Quantidade de tráfego gerada por cada método e de processamento nos equipamentos gerenciados; • Robustez em situações críticas; • Tempo entre a ocorrência do evento e a notificação ao gerente; • Transferência confiável versus não confiável; • As aplicações de monitoração suportadas pela de rede; • As considerações caso um equipamento falhe antes de enviar um relatório. Controle de Rede Esta parte do gerenciamento de rede diz respeito à modificação de parâmetros e à execução de ações em um sistema remoto. Todas as cinco áreas funcionais de gerenciamento (falhas, desempenho, contabilização, configuração e segurança), envolvem monitoração e controle. No entanto, a ênfase nas três primeiras destas áreas, tem sido na monitoração, enquanto que nas duas últimas, o controle tem sido mais enfatizado. O controle de configuração inclui as seguintes funções: • Definição da informação de configuração - recursos e seus atributos sujeitos ao gerenciamento; • Atribuição e modificação de valores de atributos; • Definição e modificação de relacionamentos entre recursos/componentes da rede; • Inicialização e terminação de operações de rede; • Distribuição de software; • Exame de valores e relacionamentos; • Relatórios de status de configuração. O controle de segurança refere-se à segurança dos recursos sob gerenciamento, incluindo o próprio sistema de gerenciamento. Os principais objetivos em termos de segurança estão relacionados à confidencialidade, integridade e disponibilidade. As principais ameaças à segurança referem-se à interrupção, interceptação, modificação e mascaramento. As funções de gerenciamento de segurança podem ser agrupadas em três categorias: manutenção da informação de segurança, controle de acesso aos recursos e controle do processo de criptografia.
P á g i n a | 139 Com o aumento da dependência das redes, negligenciar o gerenciamento de seus elementos (hardware,software, aplicações e meios de comunicação) pode ser extremamente arriscado e causar prejuízos econômicos irreparáveis às empresas. A crescente unificação dos ambientes computacionais torna cada vez mais necessária a integração dos sistemas de informação e unidades de trabalho dentro das empresas. Este imenso conjunto de facilidades criadas pelas redes corporativas, possibilita aos seus usuários e provedores de serviços o estabelecimento de uma relação mais dinâmica em termos de requisitos de qualidade para os vários serviços demandados e ofertados. Entretanto, este crescimento em dimensão, complexidade, capacidade e o surgimento de gargalos, juntamente com a necessidade de integração de diversos serviços, trazem situações inéditas para os gestores de redes, como: • Garantir o nível de qualidade de serviços da atual infraestrutura de rede, priorizando tráfego de aplicações de missão crítica; • Avaliar o impacto da entrada de um novo sistema de informação para auxílio à tomada de decisões na rede da empresa; • Analisar o desempenho da atual estrutura com a implantação de um sistema de videoconferência ou telefonia IP; • Planejar upgrades de banda, links e equipamentos para suportar o crescimento de tráfego na rede e expansão da empresa; • Identificar e controlar os dispositivos que mais apresentaram problemas nos últimos meses e que devem ser substituídos; • Conhecer a configuração e localização física dos elementos da rede. A gerência de redes pode melhorar significativamente a atuação dos administradores, pois consiste em observar e controlar os eventos em um ambiente de informação, permitindo que sejam adotadas soluções que garantam a prestação dos serviços pela rede corporativa, dentro dos requisitos de qualidade acordados. A figura a seguir ilustra um cenário típico da gerência de redes em um ambiente corporativo. Nele, observar-se a presença de um servidor corporativo, um servidor web para acesso à Internet, equipamentos destinados ao gerenciamento de rede (estação e probe de gerenciamento), além dos recursos a serem gerenciados (estações cliente, servidores, dispositivos e segmentos de rede).
Figura 15 - Topologia típica de gerenciamento
Em uma rede corporativa, os grandes desafios dos gerentes e administradores destes ambientes, são: alinhar o desempenho da rede às necessidades de negócios, minimizar o impacto de mudanças, eventuais quedas de desempenho e interrupções nos elementos destas redes nas empresas.
P á g i n a | 140 Gerenciar a rede é, em última instância, gerenciar o negócio e, transformar as áreas de tecnologia da informação e telecomunicações – normalmente vistas como “custos” – em unidades de negócios, geradoras de receitas e direcionadoras da organização.
Figura 16 - Hierarquia de gerenciamento
A Importância da Gerência de Desempenho Um ambiente corporativo suporta um conjunto de serviços com demanda aleatória, onde cada um pode requerer um grau de qualidade e utilizar recursos por um determinado período. A utilização inadequada destes recursos pode acarretar na degradação dos parâmetros de QoS e, consequentemente, levar a rede a um comportamento insatisfatório, tanto do ponto de vista do usuário (tempo de resposta), quanto da aplicação (recursos disponíveis) [3]. Faz-se necessário, então, um estudo mais apurado do ambiente a fim de caracterizar o seu comportamento e, através da gerência de desempenho, adequá-lo aos limites aceitáveis. Por meio da gerência de desempenho, é possível adequar os recursos utilizados pelos usuários às suas reais necessidades, auxiliando a área responsável pela rede a tomar ações antecipadas relativas à manutenção dos níveis de desempenho dos serviços oferecidos como, por exemplo, o tempo de resposta. Conforme mencionado anteriormente, a gerência de desempenho é a área funcional da gerência de redes responsável por monitorar e controlar a utilização dos recursos compartilhados em uma rede. Assim, para o entendimento da relação entre a gerência de desempenho e o perfeito funcionamento da rede, faz-se necessário definir alguns conceitos, sob o ponto de vista dos serviços prestados pela rede. Serviço Conjunto de procedimentos computacionais e de telecomunicações que permitem a um usuário realizar uma determinada tarefa, como: correio eletrônico, impressão, armazenamento seguro de arquivos, entre outros. Ocupação de Recursos e Caracterização de Serviços Para a realização de uma determinada instância de um serviço, um ou mais recursos computacionais serão ocupados por um determinado período. A natureza dos recursos ocupados e o período desta ocupação caracterizam o comportamento do serviço. Indicadores de Qualidade de Serviço São os parâmetros que revelam a qualidade corrente dos serviços fornecidos aos usuários. Cada tipo de serviço requer parâmetros mínimos de operação, tais como: tempo de resposta, velocidade de transmissão, taxa de erros, etc. Caso estes requisitos mínimos não sejam atendidos, o serviço sofrerá degradação, acarretando, até mesmo, a não execução da tarefa desejada.
P á g i n a | 141 Demanda de Serviços É a medida da utilização ou tentativa de utilização de um determinado serviço por um ou mais usuários. Trata-se de um parâmetro aleatório, pois na grande maioria das vezes, não se sabe com exatidão quando um ou mais usuários farão uso de um determinado serviço. É possível estabelecer probabilidades de que determinados serviços serão utilizados por um número de usuários, durante certo tempo. Pode-se notar intuitivamente que para um número maior de usuários, maiores serão as probabilidades de utilização dos serviços oferecidos a estes usuários. Isto implica que, quanto maior o número de usuários, maior será a demanda pelos serviços oferecidos. Principais Atividades da Gerência de Desempenho A prática da gerência de desempenho se faz pela realização de diferentes atividades, onde as mais importantes são: monitoramento do desempenho, caracterização de carga de trabalho (workload), ajuste de parâmetros do sistema, identificação de gargalos, comparação de desempenho entre sistemas alternativos, dimensionamento de componentes do sistema e previsão de crescimento. Tais atividades podem ser classificadas em três categorias: monitoramento de eventos relevantes ao desempenho de sistemas, análise de desempenho e planejamento de capacidade. Monitoramento de Eventos Relevantes ao Desempenho do Sistema Coleta sistemática de informações que possam revelar os indicadores correntes de qualidade do serviço da rede ou caracterizar a carga de trabalho para uma instância de serviço. Estas atividades visam, basicamente, o monitoramento do desempenho e a caracterização da carga de trabalho. Monitoramento para Verificação de Desempenho Esta atividade exige a coleta de informações que possam, de maneira clara e objetiva, apontar se o desempenho do sistema encontra-se dentro de limites aceitáveis. para isso, é necessário o conhecimento dos padrões de qualidade de serviço de cada um dos serviços oferecidos pela rede. dependendo das ferramentas de monitoramento utilizadas, nem sempre é possível a coleta destes indicadores diretamente. Muitas vezes se faz necessário coletar um conjunto de dados relacionados ao indicador pretendido para se extrair as informações desejadas. A frequência com que se realiza este monitoramento é um parâmetro essencial na definição do tipo de gerência que se deseja realizar: gerência reativa ou proativa, que é a mais indicada. Neste caso, o monitoramento deve ser feito, se não continuamente, com uma frequência relativamente alta. Monitoramento para Caracterização de Carga de Trabalho A caracterização da carga de trabalho constitui uma atividade fundamental para a análise de desempenho e planejamento de capacidade; consiste em levantar as características de um serviço, apontando como é, estatisticamente, a demanda sobre o mesmo e quanto um usuário típico consome de recursos da rede. Para a realização desta atividade faz-se necessário monitorar os eventos de interesse para determinado serviço, coletando os dados relevantes deste comportamento. depois, aplicam-se as ferramentas estatísticas convenientes, sumarizando as informações obtidas. Na prática, a caracterização de carga de trabalho de um determinado serviço não é nada trivial, tratando-se quase de uma arte, pois deve se definir exatamente o que é o serviço analisado, seus usuários e como eles utilizam este serviço. Como exemplo, numa determinada situação, um sistema de banco de dados pode ser considerado como serviço. Porém, em outra situação, o acesso ao disco do servidor de banco de dados pode ser considerado como o alvo do estudo. Neste último caso, diversos “serviços macro” (serviços mais complexos em termos de utilização de recursos) utilizarão este serviço básico. Isto implica em diferenças consideráveis no trabalho de caracterização. Estando definido o serviço que se deseja caracterizar, a linha mestra para a caracterização de carga de trabalho é associar os dados coletados referentes à utilização dos recursos deste serviço, com o número de usuários presentes no sistema no período em que se fez a coleta. Caso o resultado obtido nesta caracterização de carga de trabalho apresente um comportamento estatístico muito variante, recomenda-se dividir os usuários do serviço em classes de comportamento. para isso, não existem fórmulas
P á g i n a | 142 prontas. O ideal é escolher dois ou mais recursos de grande importância para o serviço em estudo e classificar os usuários em grupos que apresentem as mesmas características de utilização destes recursos. Análise de Desempenho Nesta área estão agrupadas as atividades que têm como função avaliar a capacidade instalada da rede (nós, enlaces e demais equipamentos) e, fazendo uso da carga de trabalho já caracterizada para os serviços suportados pela mesma, identificar os possíveis gargalos (recursos responsáveis pela degradação dos serviços). Planejamento de Capacidade Tomando como base os resultados obtidos na análise de desempenho, o planejamento de capacidade tem como função indicar, quantitativa e qualitativamente, as possíveis alterações para que o sistema forneça a qualidade de serviço desejada, ou apontar a capacidade excedente do mesmo. Assim, fica possível ao administrador, estabelecer um cronograma de alterações na capacidade em função de uma previsão de crescimento, conhecendo de antemão, o comportamento do sistema em cada uma destas alterações. Na maioria das vezes, o planejamento de capacidade é usado como complemento à análise de desempenho, quando constatado algum ponto falho no sistema (por exemplo, a falta de capacidade instalada). Principais Alvos da Gerência de desempenho A gerência de desempenho pode ser aplicada em diferentes níveis de atuação e em diferentes elementos de um ambiente de computação ou de telecomunicações. Tomando-se como exemplo um ambiente de computação distribuída, pode-se conduzir o estudo de desempenho nas facilidades de transmissão (enlaces, repetidores, comutadores, roteadores, etc.) paralelamente ao estudo de desempenho de um servidor de banco de dados, ou ainda, de uma estrutura de acesso ao backbone da rede. Assim, em um ambiente distribuído, muitos são os parâmetros que podem ser alvos da gerência de desempenho, classificados em três grupos de estudo: tráfego, serviços, servidores e equipamentos. Estudo de Tráfego De maneira geral, pode-se dizer que a missão básica de uma rede é permitir o escoamento do tráfego entre origem e destino. Assim, é evidente a importância do estudo de desempenho sobre os elementos que formam as chamadas facilidades de transmissão. Alguns dos parâmetros de tráfego mais abordados neste estudo são: • Taxa de erros físicos - Os erros físicos são causados por perturbações elétricas ou eletromagnéticas, durante o percurso da informação pelo sistema de comunicação. Nas redes digitais, quando um único bit sofre alterações indevidas, é possível que todo um conjunto de dados tenha que ser retransmitido, ocupando novamente os recursos de rede e, consequentemente, acarretando atraso na operação total. • Utilização de banda passante - A banda passante dos meios de comunicação talvez seja um dos recursos mais críticos de um ambiente de rede. Além disso, na maioria das vezes, um grande número de equipamentos é dimensionado em função deste recurso. A falta de banda passante acarreta sobrecarga na operação dos nós da rede, provocando filas de espera e possibilidade de descarte de dados. • Disputa pelo meio - Algumas tecnologias de redes utilizam métodos de acesso aos recursos de transmissão que preveem disputas por estes recursos, por exemplo, a rede local Ethernet, que faz uso do método de acesso CSMA/CD (Carrier Sense Multiple Access/Collision detected). Estes métodos, geralmente simplificam os algoritmos envolvidos, porém, podem provocar tempos de ociosidade do meio de comunicação, mesmo havendo alguma informação a ser transmitida. para redes com grandes volumes de dados, este tempo ocioso ocasionado por estas disputas, deve ser o mais baixo possível. • Descarte de dados em buffers dos nós da rede - Quando, por algum motivo, as filas de espera dos nós da rede atingem seus limites de armazenamento, um procedimento de segurança promove o descarte de pacotes que chegam a este nó. A análise da seriedade e da localização dos problemas de descarte de dados é importante para revelar possíveis problemas de dimensionamento de partes do ambiente de rede. • Throughput dos nós da rede - O throughput diz respeito à capacidade de envio de dados por um determinado período de tempo, relacionando-se ao desempenho do nó da rede. Além do problema de descarte de informações, outros fatores podem influenciar no desempenho deste nó. A baixa vazão entre a entrada e a saída pode ser causada por problemas de capacidade de processamento, das memórias de trabalho ou capacidade dos discos, entre outras.
P á g i n a | 143 •
•
•
Latência do sistema - Todo sistema de telecomunicações tem, como consequência das escolhas de tecnologia e de dimensionamento, um tempo de latência, ou atraso mínimo para entrega da informação de um ponto de origem a um ponto de destino qualquer. Quando a demanda do sistema supera as premissas do projeto original, quando a taxa de erros físicos aumenta significativamente, ou ainda quando novos componentes são agregados ao sistema ou substituem os originais, esta grandeza pode sofrer alterações. Isto implica na modificação dos padrões de qualidade de serviço oferecidos pelo ambiente. Volume de tráfego cursado e caracterização de tráfego -Algumas vezes, os elementos de uma rede são dimensionados para dar vazão a certo volume de tráfego por unidade de tempo. Assim, os nós da rede devem suportar este volume de tráfego, abstraindo-se dos detalhes de capacidade individual de cada componente do nó. Um dos elementos mais importantes nesta visão, é a caracterização do volume de tráfego entre os pontos de origem e destino e, consequentemente, os elementos da rede que intermediarão esta comunicação. Matriz de interesse de tráfego - É a matriz que concentra as informações de interesse de tráfego entre os diversos pontos de uma rede. Nesta matriz, está registrado o comportamento do tráfego cursado entre os diferentes nós terminais da rede (origem/destino), dando uma visão geral da demanda sobre os recursos de transmissão.
Estudo de Serviços Muitas vezes, a visão do tráfego bruto não é adequada para se tratar problemas mais específicos, uma vez que os diferentes tipos de serviços utilizados em uma rede são os responsáveis pela ocupação dos recursos desta, e, como já mostrado anteriormente, cada tipo serviço exige condições mínimas de funcionamento (requisitos de qualidade). O tráfego é um dos mais importantes aspectos envolvidos na prestação de um serviço em uma rede, porém, não é o único. Cada serviço é utilizado com diferentes graus de intensidade, o que reflete a demanda sobre cada um deles. Sob este ponto de vista, se o foco do estudo de desempenho for voltado para os serviços, pode-se querer avaliar formas mais eficientes de utilização dos serviços prestados. É possível, também, estabelecer políticas de utilização (horários, permissões, etc.) para cada um destes serviços. A análise dos serviços revela também alguns aspectos da demanda sobre os recursos computacionais não diretamente ligados ao escoamento de tráfego. Sistemas de arquivos e de bancos de dados também são exemplos de recursos utilizados pelos serviços. Alguns dos principais alvos do estudo são: Protocolos Envolvidos Os protocolos de comunicação e de interoperação dos serviços de uma rede são baseados em regras de cooperação bem definidas. para a cumprirem sua missão, informações extras são adicionadas aos dados dos usuários, a fim de garantir a entrega destes dados no seu destino. A esta informação extra, dá-se o nome de cabeçalho (header). A relação entre o montante de dados transmitidos e a parcela destes dados que fazem parte do cabeçalho é conhecida como eficiência do protocolo. Uma das principais tarefas da gerência de desempenho é garantir uma alta eficiência dos protocolos que suportam os serviços da rede. Além disso, parâmetros de configuração são criados para permitir uma melhor adequação de um protocolo ao serviço que ele está suportando. Portanto, a escolha do protocolo mais adequado para cada serviço deve ser cuidadosamente estudada, fazendo-se os ajustes necessários, para uma maior eficiência do protocolo e um melhor desempenho. Caracterização de um Serviço A caracterização de um serviço busca levantar, qualitativa e quantitativamente, através do uso de modelos estatísticos, a ocupação dos recursos do ambiente de rede, em relação ao número de usuários deste serviço. Então, de posse das características básicas de um serviço, é possível fazer inferências estatísticas sobre o comportamento do ambiente caso o número de usuários do serviço (demanda) ou a capacidade do sistema se modifiquem. Matriz de Serviços É a matriz que revela as características de todos os serviços de um ambiente de rede em relação aos seus usuários. Assim como na matriz de interesse de tráfego, na matriz de serviços pode se ter uma visão do comportamento global da demanda de cada serviço. Tempo de Resposta
P á g i n a | 144 Sabe-se que diferentes serviços utilizam diferentes recursos da rede e podem exigir diferentes requisitos de atraso máximo. em um ambiente de telecomunicações, o aumento da demanda sobre seus recursos geralmente implica em degradações em seu tempo de resposta, sendo que determinados serviços são mais sensíveis a estas degradações. Assim, torna-se necessário analisar o tempo de resposta de cada serviço presente no ambiente em estudo. Estudo de Servidores e Equipamentos Os dispositivos que prestam um determinado serviço são denominados servidores, e, juntamente com as facilidades de transmissão (os meios), representam a capacidade instalada da rede. São basicamente máquinas, chamadas de ativos de rede, que exercem funções específicas. Portanto, devem ser analisadas quanto ao desempenho de suas tarefas. Os principais elementos a serem observados são: CPU (Central Processor Unit) A CPU é o elemento responsável por todo o processamento da máquina, sendo vital para a execução de suas tarefas, devendo ser controlado o grau de utilização da CPU em relação ao tempo. Assim, seu grau de utilização se torna um parâmetro importante, pois CPUs ociosas implicam, geralmente, em desperdício de investimento, enquanto CPUs sobrecarregadas implicam, geralmente, em tempos de resposta altos. Para que a CPU atenda aos requisitos de qualidade desejados, é necessário atribuir uma fração de sua utilização ou uma medida de poder de processamento, MIPS (Million Instructions Per Second) por exemplo, a cada processo, transação ou tarefa realizada por ela. desta forma, pode-se inferir seu comportamento diante da alteração da demanda de processamento. Memória Sendo o elemento onde são armazenados os dados e os aplicativos, é um componente indispensável para o processamento destes, devendo, portanto, ter sua utilização monitorada e controlada. São dois os papéis principais deste elemento: buffer e memória principal. No caso da memória atuando como buffer, é importante monitorar e controlar sua taxa de ocupação e o fenômeno de estouro, responsável pela perda de dados. O sistema deve ter seus buffers dimensionados para que o estouro seja minimizado. Como memória principal, além do problema de ocupação, devem ser analisados também os parâmetros de velocidade de acesso e controle de erro. O desempenho desta memória afetará diretamente o desempenho da CPU. Quanto mais rápido o acesso às informações, menos tempo a CPU espera para realizar sua tarefa. Disco O sistema de disco tem importância significativa quando a máquina trabalha com grandes quantidades de dados. Ele recebe requisições da CPU e as atende, devolvendo para a memória principal os dados requisitados. Como todo sistema de tratamento de requisições, o sistema de disco possui fila de espera e a possibilidade de tratamento simultâneo de requisições. A velocidade de rotação e o diâmetro do disco, o tempo de recuperação de um bloco, um setor, ou um cilindro e a quantidade de buffer de requisições, são parâmetros determinantes no desempenho total do sistema de disco. Portas de Comunicação As portas de comunicação, em muitas máquinas, podem ser vistas como sistemas independentes, possuindo buffers, registradores de deslocamento, codificadores e controladores de fluxo. As interfaces de rede podem ser classificadas neste grupo de elementos. O desempenho do sistema pode ser influenciado por vários fatores: o modo como os dados são transmitidos (simplex, half-duplex ou full-duplex), o tamanho dos buffers, a taxa de transmissão/recepção, o atraso introduzido pelo codificador. Todos os subsistemas de uma máquina ou equipamento podem ser tratados como um sistema independente para se observar o throughput, tempo de resposta e demais parâmetros investigáveis pela teoria de filas e demais ferramentas. Muitas vezes um subsistema é dependente de outro, tornando o estudo mais complexo.
P á g i n a | 145 Estudo das Aplicações É fundamental conhecer quais são as aplicações que mais consomem largura de banda da rede e que tipos de serviços de informações os usuários mais utilizam. Nos dias de hoje, é comum pensarmos que o maior tráfego dentro da rede seja gerado pelos serviços de informação disponíveis via “www”. Entretanto, nada nos diz com certeza de que este serviço seja o maior devorador de largura de banda. Outros serviços essenciais como TELNET, FTP e e-mail estão sendo utilizados a todo o momento. As ferramentas de gerenciamento tradicionais somente são capazes de obter informações sobre o tráfego total de cada máquina, com detalhamento dos protocolos de transporte e de níveis inferiores. Existem no mercado produtos que conseguem dar o tráfego recebido e enviado pelos serviços executados nas máquinas servidoras, mas isto não é suficiente. Nem sempre o usuário está acessando máquinas servidoras da própria rede da organização. Portanto, medir tráfego nos servidores não mostra todo o tráfego das aplicações dos usuários pois, parte deste tráfego é direcionada para servidores em outras redes. O gerenciamento de cada máquina cliente da rede poderia fornecer informações sobre o que o usuário está usando e dentro de cada rede seria possível se ter uma noção dos padrões de tráfego das aplicações. Desta forma, o gerenciamento de aplicações de rede pode ter dois enfoques: • Gerenciamento das estações servidoras de aplicações (enfoque nos serviços): para esta situação já existe uma tentativa, proposta em janeiro de 1994 sob a forma da RFC 1565 [Kil 94] - Network Services Monitoring MIB. Esta proposta consiste de um módulo de MIB, em conformidade com a SMIv2, e que acrescenta 24 novos objetos para a monitoração de serviços de rede; • Gerenciamento das estações clientes, com enfoque nas atividades dos softwares clientes: não existe ainda nenhuma proposta no IETF neste sentido, mas boa parte do trabalho pode ser aproveitada da RFC 1565, que diz que, o gerenciamento efetivo de serviços deve satisfazer dois requisitos: monitorar um grande número de componentes (tipicamente para uma grande organização) e o monitoramento de aplicações deve ser integrado ao gerenciamento de redes tradicional. Para satisfazer a estes dois requisitos, o módulo MIB proposto na RFC 1565 não inclui nenhum objeto que permita o controle dos serviços de rede em execução, para que a implementação seja facilitada. O monitoramento dos serviços de rede está integrado ao gerenciamento tradicional através do uso do SNMP. Entretanto, o gerenciamento de aplicações dos usuários de rede pode exigir funções de controle. Assim, um agente construído para este fim deve ser capaz de: identificar as aplicações clientes de rede em execução, monitorar as conexões ativas das aplicações, coletar estatísticas de conexões e informações relacionadas, controlar o estado operacional das conexões e de cada aplicação (possibilidade de suspender uma aplicação, restaurá-la ao estado normal e abortá-la) e ser programado para reportar a ocorrência de eventos relativos às conexões de rede. Um agente SNMP com estas características estaria envolvido em três áreas funcionais (segundo o modelo OSI) do gerenciamento de redes: • Desempenho: a coleta de estatísticas através das funções de monitoração permite o conhecimento do uso que os usuários fazem da rede; • Configuração: as funções de controle permitem que sejam configurados nas máquinas clientes os serviços de rede que podem ou não ser utilizados. Tais configurações têm efeito no desempenho da rede; • Segurança: através das funções de controle e de reporte de eventos, a estação de gerenciamento pode ser notificada da tentativa de uma estação cliente conectar a hosts considerados não seguros, por exemplo. RESUMO – GERENCIAMENTO DE REDES Tipos de Gerência de Redes • Gerência Centralizada: Um centro de gerência controla o processo. Os problemas com os modelos centralizados de gerenciamentos de redes tornam-se mais críticos na proporção em que a rede cresce. • Gerência Descentralizada: Na gerência descentralizada as atividades são distribuídas pois há vários nós responsáveis pelo gerenciamento. Permite que o trabalho seja feito de forma hierárquica, ou seja, cada nó é responsável por determinado tipo de atividade gerencial.
P á g i n a | 146 • •
Gerência Reativa: Neste modelo os administradores de rede eram alertados de problemas ocorridos na infraestrutura e passavam a atuar em sua solução. Gerência Pró-Ativa: O aumento exponencial das redes de computadores tem exigido uma gerência mais eficaz das mesmas, no sentido de tentar evitar a interrupção de seus serviços.
Etapas da Gerência da Rede Usualmente a gerência de redes é dividida em três etapas: • Balanço de dados: É um processo, em geral automático, que consiste de monitoração sobre os recursos gerenciados e que também são armazenados em arquivos de log. • Diagnóstico de valores e sitio onde o empregar: Esta etapa consiste no tratamento e análise realizados a partir dos dados coletados. Também é feito a detecção da causa do problema no recurso gerenciado. O computador de gerenciamento executa uma série de procedimentos manuais ou automáticos (por intermédio de um operador ou não) com o intuito de determinar a causa do problema representado no recurso gerenciado. • Ação (fora de teoria): Uma vez diagnosticado o problema cabe uma ação ou controle, sobre o recurso. Elementos de um Sistema de Gerência de Redes Um sistema de gerência de redes genérico é constituído por quatro elementos básicos conforme descrito a seguir. • Gerente: Um computador conectado a rede que executa o software de protocolo de gerenciamento que solicita informações dos agentes. O sistema de gerenciamento também é chamado de console de gerenciamento. • Agente: Um processo (software) que executa em um recurso, elemento ou sistema gerenciado, que exporta uma base de dados de gerenciamento (MIB) para que os gerentes possam ter acesso as informações. • MIB: Management Information Base – Base de dados de gerenciamento – é uma tabela onde são armazenados os dados de gerenciamento coletados que serão enviados ao gerente. • Protocolo de gerenciamento: Fornece os mecanismos de comunicação entre o gerente e o agente. Modelo FCAPS Com o desenvolvimento do modelo OSI pela ISO, foram definidos os conceitos de áreas funcionais, modelos de informação para representar recursos de rede e protocolos para transferência de informações sobre gerências de rede. A partir do conceito de áreas funcionais foi criado o modelo FCAPS, sigla formada a partir das iniciais de cada área de gerenciamento (em inglês). Este modelo serve de base para todos os demais por definir as áreas funcionais da gerência de redes, que são: • Gerência de falhas (Fault): Gerência responsável pela detecção, isolamento, notificação e correção de falhas na rede. • Gerência de configuração (Configuration): Gerência responsável pelo registro e manutenção dos parâmetros de configuração dos serviços da rede. Tais como informações sobre versões de hardware e de software. • Gerência de contabilidade (Accounting): Gerência responsável pelo registro do uso da rede por parte de seus usuários com objetivo de cobrança ou regulamentação de uso. • Gerência de desempenho (Performance): Gerência responsável pela medição e disponibilização das informações sobre aspectos de desempenho dos serviços de rede. Estes dados são usados para garantir que a rede opere em conformidade com a qualidade de serviço acordados com seus usuários. Também são usados para análise de tendência. • Gerência de segurança (Security): Gerência responsável por restringir o acesso à rede e impedir o uso incorreto por parte de seus usuários, de forma intencional ou não.
P á g i n a | 147 Modelo TMN (Telecommunications Management Network) É um modelo de gerenciamento de redes de telecomunicações padronizado pela ITU-T, que tem a finalidade de fornecer um conjunto de funções que permitem realizar a gerência e a administração de uma rede de telecomunicações, que compreende: planejamento, provisionamento, instalação, manutenção, operação e administração. O objetivo do modelo TMN é fornecer uma arquitetura organizada que permita interligar diversos tipos de sistema de operação de gerência de equipamentos e telecomunicação pelo uso de interfaces, protocolos e mensagens padronizadas. Com isso é possível interligar elementos e sistemas heterogêneos de diversos fabricantes, fazendo com que todos os elementos, tais como redes locais, redes de longa distância, redes metropolitanas, pabx, dispositivos de telefonia móvel, sendo todos gerenciados de forma integrada. O modelo TMN é empregado principalmente por operadores de serviços de telecomunicações. Outros Modelos de Gerência de Redes OAM&P: Operation, Administration, Maintenance and Provisioning é um modelo de gerência para operações de rotina em um ambiente de rede que detecta, diagnostica e corrige falhas, mantendo o funcionamento do sistema. A administração envolve o planejamento da rede em longo prazo, dados estatísticos, estratégia e tendências. A manutenção envolve: atualizações, correções, backup, equipamentos, tarefas que provocam a paralisação da rede por um certo período, necessitando de um planejamento para não gerar um impacto maior. O provisionamento refere-se a remoção ou criação de estabelecimento de serviços e envolve instalações de equipamentos. • TOM: Telecom Operations Map É um modelo de gerência de redes criado pelo Telemanagement Fórum, para substituir o modelo Telecommunication Network Management (TMN). O TOM define modelos de processos para criação de novos sistemas e softwares integrando padrões comerciais para criação de serviços. Sua estrutura é dividida em processos: operacionais, estratégicos, infra-estrutura, produto e gestão empresarial. • CMIP/CMIS: Common Management Information Protocol / Common Management Information Service. É um modelo de gerência de redes usado pelos principais operadores de telecomunicação, criando um mapa de projeto do sistema de gerência da rede. CMIP/CMIS é um modelo originário da arquitetura OSI. O CMIS define o gerenciamento dos serviços e o CMIP define a forma de transmissão e a sintaxe do gerenciamento dos serviços. Comparativo dos Modelos de Gerência de Redes •
A tabela apresentada a seguir relaciona modelos de gerência de redes e suas principais características. Modelo de gerência
Órgão responsável
FCAPS
ISO
TMN
ITU-T
OAM&P
Provedores de Serviço
TOM
TeleManagement Forum
CMIP/CMIS
ISO
Desempenho, falhas, configurações
Desenvolvimento limitado, baseado em redes no modelo OSI.
SNMP
IETF
Desempenho, falhas
Amplamente utilizado em redes de especialmente em redes baseada no TCP/IP.
Tipo de gerenciamento Falhas, configurações, contabilidade, segurança.
desempenho,
Negócios, serviços, redes e elementos.
Utilização Estrutura conceitual popular para gerência de redes. Estrutura conceitual popular para gerência de redes, voltada para provedores de serviços de telecomunicações.
Operação, manutenção, administração, Utilizado em redes de grandes provedores de provisionamento. serviços. Redes e sistemas, desenvolvimento de serviços e operações, atendimento ao Ainda em estágio conceitual. usuário
dados,
P á g i n a | 148 Softwares para Gerenciamento de Redes Administrar uma rede hoje em dia não é um trabalho muito fácil, quando se fala de redes de altas taxas de tráfegos, com muitos acessos, onde não pode haver indisponibilidades e problemas de sobre cargas afetando o desempenho dos usuários, podendo causar quedas, travamentos e outros problemas. Porém também temos softwares que utilizamos para controlar os acessos na rede, a sites impróprios, conseguir identificar algum pico de tráfego ou algo do tipo. •
•
•
Wireshark: O Wireshark é um programa com suporte a várias plataformas (Windows, Linux, Solaris e outras) que tem como principal objetivo monitorar todo o tráfego que entra e sai de um computador conectado na rede local, de um servidor conectado através de um hub ou um switch. Ele analisa o tráfego da rede, separando eles por protocolo para facilitar o entendimento e realizar analises. Nagios: Um aplicativo que pode ser utilizado em diversas plataformas, o Nagios é um software para monitoramento de redes, onde além de monitorar hosts, ele monitora serviços de redes também. Além de gerenciar serviços de redes tais como SMTP, POP3, HTTP e outros, ele gerencia e gera logs também da parte do hardware, como uso do processador, disco rígido e etc. Cableware: O Cableware é um switch de aplicativos voltados para camada física da rede, onde além de manter a base dados atualizada, em tempo real, com todas as conexões ativas e não ativas. A ferramenta contribui para a administração de redes corporativas gerando transparência e agilidade nas informações com melhora nos índices de disponibilidade e segurança da rede.
Traz juntamente consigo a facilidade na criação de plug-ins em diversas linguagens de programação para atender as suas necessidades específicas, da forma que você quiser gerenciar. Ele tem alerta quando aparece um problema, quando está perto de acontecer um ou quando algum problema que existia for solucionado, pode enviar mensagens SMS para alertar o administrador de rede e outras funções. Gerência de Redes na Prática Para a Gerência de Redes, é essencial utilizar ferramentas para analisar as atividades, procedimentos e outros dados essenciais para a continuidade dos serviços. As empresas que geralmente utilizam tais ferramentas são as de médio e grande porte, devido ao alto custo, necessidade de monitoração e até mesmo de fazer com que o serviço volte a operar normalmente e de forma automática. Os elementos da rede a serem gerenciados variam de uma empresa para outra, pois o que é importante para uma, pode não ser algo significativo para outra. O mercado dispõe de várias ferramentas para gerenciamento de redes, porém, as ferramentas mais conhecidas e de maior utilização são Global Crossing uMonitor, HP Open View, WhatsUp, IBM Tivoli e a EITM da Computer Associates. Além dessas, existem também ferramentas de gerenciamento gratuitas como o Nagios, Cacti, Zabbix e outros. Os modelos de gerencia de redes mais empregados são o FCAPS, o SNMP - Simple Network Management Protocol (Protocolo de Gerência Simples de Rede) para redes Ethernet e a TMN - Telecommunications Management Network (Rede de Gerência de Telecomunicações) em redes de telecomunicações. 13.2 Qualidade de serviço (QoS): conceitos (filas, filas prioritárias, descarte), arquiteturas. Qualidade de Serviço Qualidade de serviço (QoS) é a capacidade de melhorar os serviços trafegados na rede sobre tecnologias de comunicação de redes de dados, como, Frame Relay, MPLS, Ethernet, ATM (Asynchronous Tranfer Mode, também é um protocolo de comunicação entre redes WAN), e qualquer outra que utiliza do protocolo IP. Tem como sua principal característica, dar prioridade, reserva de banda, controle de jitter (variação de atraso) e latência (figura 6), garantindo um bom desempenho das aplicações.
P á g i n a | 149
Figura 17 - Diagrama simplificado dos mecanismos de QoS
Veja o que diz Cisco Systems: O objetivo da QoS é fornecer serviço de rede melhor e mais previsível, fornecendo largura de banda dedicada, jitter controlado e latência, e perda de características melhoradas. QoS atinge esses objetivos, fornecendo ferramentas para gerenciar o congestionamento da rede, formação de rede tráfego, utilizandose de maneira ampla área de links de forma mais eficiente, e definindo políticas de tráfego em toda a rede. QoS oferece serviços de rede inteligente que, quando corretamente aplicadas, ajudam a fornecer desempenho consistente e previsível. (CISCO SYSTEMS, 2006). O conceito de Qualidade de Serviço serve para mensurar a qualidade dos serviços oferecidos por uma rede de comunicações, ou seja, refletir o quanto ela é capaz de atender às expectativas de seus usuários através dos serviços que a mesma os oferecem. Esse conceito, inicialmente focado na rede, evoluiu para uma noção mais ampla, contemplando as múltiplas camadas da interação usuário-sistema. Os parâmetros de confiabilidade, retardo, flutuação (jitter) e largura de banda estão sendo mostrados na tabela abaixo: APLICAÇÃO
CONFIABILIDADE
RETARDO
FLUTUAÇÃO
LARG. DE BANDA
Correio eletrônico
Alta
Baixa
Baixa
Baixa
Transf. de Arquivos
Alta
Baixa
Baixa
Média
Acesso a Web
Alta
Média
Baixa
Média
Login remoto
Alta
Média
Média
Baixa
Áudio por demanda
Baixa
Baixa
Alta
Média
Vídeo por demanda
Baixa
Baixa
Alta
Alta
Telefonia
Baixa
Alta
Alta
Baixa
Videoconferência
Baixa
Alta
Alta
Alta
Portanto QoS é o conjunto de regras que descrevem e determinam a qualidade de um aplicativo ou recurso, delimitando sua largura de banda, prioridade, utilização de CPU (unidade central de processamento), etc. Temos dois princípios básicos para aplicarmos uma política de qualidade de serviço adequada em redes IP, sendo eles: • Serviços integrados (Intserv); • Serviços diferenciados (Diffserv). Serviços integrados (Intserv)
P á g i n a | 150
O Intserv é uma arquitetura de qualidade de serviço, que tem o propósito de garantir níveis de qualidade de serviço fim a fim, através de recursos reservados e estabelecimento de chamada. Ele utiliza-se do protocolo RSVP (Resource Reservation Protocol, protocolo de reserva de recursos) para sinalizar as necessidades de QoS para cada dispositivo ao longo da rede, permitindo que vários transmissores enviem os dados para vários grupos de receptores, eliminando o congestionamento da rede. Veja o que diz Tanenbaum: O principal protocolo da IETF (Internet Engeneering Task Force, é uma comunidade aberta a desenvolvedores de recursos para a Internet) para a arquitetura de serviços integrados é o RSVP, descrito na RFC 2205 e em outras. Esse protocolo é empregado para fazer as reservas; outros protocolos são usados para transmitir os dados. O RSVP permite que vários transmissores enviem os dados para vários grupos de receptores, torna possível receptores individuais mudarem livremente de canais e otimiza o uso da largura de banda ao mesmo tempo que elimina o congestionamento. (TANENBAUM, 2003, p. 317).
Figura 18 - Estabelecimento de chamada RSVP
Os serviços integrados (Intserv) possuem duas classes de serviços: serviço de carga garantido e serviço de carga controlada. • Serviço de carga garantido: estabelece limites rígidos (que podem ser provados matematicamente) para atrasos de fila que um pacote sofrerá em um roteador, definida no RFC 2212. • Serviço de rede de carga controlada: tem como foco as aplicações multimídia, permitindo com que pacotes com taxas muito altas passem pelo roteador sem que haja descarte de pacotes, por outro lado, não a garantias de desempenho. Portanto a um bom funcionamento apenas quando a rede está descongestionada, definida no RFC 2211. Serviços diferenciados (DiffServ) É baseado no tratamento diferenciado de classes, podendo manipular diferentes tipos de classes de varias maneiras dentro da rede. Este tratamento é repetido nó a nó, ou seja, os pacotes de uma aplicação prioritária quando chegam a um nó (roteador) são separados e recebem um tratamento diferenciado. Veja o que diz Falsarella: (...) tudo começa no byte ToS (Type of Service) que fica dentro do cabeçalho do IPv4. Como o ToS é um byte, ele é obviamente composto de 8 bits, sendo que apenas 6 bits são utilizados propriamente para formação do DS Field (Campo dos Serviços Diferenciados) e os outros dois bits são tidos como reservados. O DS Field é quem define o tal do DSCP que significa DiffServ Code Point. Como ele é composto de 6 bits, temos em decimal então uma permutação de 2 elevado a 6 que é 64 valores possíveis, variando portanto de 0 a 63.
P á g i n a | 151 Essa faixa de valores é que define literalmente a marcação dos pacotes. De antemão, todo pacote BestEffort (BE) ou Melhor Esforço é tratado como DSCP 0 ou em binário 000000. (FALSARELLA, 2009, p. 1). Para obter serviços diferenciados, a rede tenta entregar um determinado tipo de serviço com base no QoS especificado por cada pacote, sendo assim, classificados, marcados, policiados, priorizados, descartados, e enviados pelo roteador de origem, até o roteador de destino.
Figura 19 - Classificação dos pacotes e policiamento
Classificações, Marcação, e Policiamento A classificação identifica os grupos de pacotes que receberão um determinado tratamento. Eles podem ser classificados de acordo com critérios variados, onde os roteadores realizam a marcação dos pacotes, e separam os pacotes que entram na rede através de diversas classes de serviço (EF, AF, Default, etc.), onde são classificados com base nas portas TCP dos aplicativos.
Figura 20 - Classes de serviço
O DiffServ também são identificados pelos roteadores através de valores decimais, onde cada valor representa uma classe de serviço. Estes valores são derivados dos 6 bits do campo do DiffServ. O policiamento analisa e gerencia a capacidade total de largura de banda na rede, sendo que, quando a ultrapassem do limite de tráfego contratado, ocorre o descarte ou remarcação dos pacotes não identificados em nem uma das classes.
P á g i n a | 152
Figura 21 - Policiamento de pacotes
Compressões de cabeçalho A tecnologia de compressão de cabeçalho possui características de otimizar a rede, diminuído congestionamentos ocorrentes. Este recurso tem a principal finalidade de comprimir cabeçalhos de protocolos em varias camadas do modelo OSI (Open Systems Interconnection), alguns exemplos são: TCP, RTP (Real-time Transport Protocol protocolo utilizado em aplicações de tempo real), IP, UDP, reduzindo o tamanho (frame) dos dados que circulam na rede.
Figura 22 - Compressão de cabeçalho RTP
A compressão de cabeçalho é normalmente utilizada em redes que trafegam voz e vídeo, onde necessitam de largura de banda, e são serviços que utilizam protocolo de tempo real (figura 11). “Portanto, o uso do cRTP (compressão de cabeçalho) não é sugerido em enlaces de alta velocidade, uma vez que a relação custo versus benefício pode não compensar” (SILVA, 2000, p. 1). Fragmentações e Interleaving Os pacotes de voz e vídeo são extremamente sensíveis a atraso, portanto devem ser intercalados, e fragmentados, dentro de uma rede de dados. Veja o que diz Cisco Systems: (...) um pacote VoIP pode precisar esperar até 187,5 ms antes de poder ser enviado se o atraso ocorrer atrás de um único pacote de 1500 bytes em uma ligação de 64 kbit/s. Os pacotes VoIP são normalmente enviados a cada 20 ms. Com um orçamento de atraso de ponta a ponta de 150 ms e requisitos de variação de sinal estrita, uma lacuna de mais de 180 ms é inaceitável. É necessário um mecanismo que garanta que o tamanho de uma unidade de transmissão seja menor que 10 ms. Qualquer pacote que tenha um atraso de serialização maior que 10 ms precisam ser fragmentado em blocos de 10 ms. Um bloco ou fragmento de 10 ms é o número de bytes que pode ser enviado pela ligação em 10 ms. (CISCO SYSTEMS, 2006).
P á g i n a | 153 Para que haja a necessidade de fragmentar e intercalar um pacote, o mesmo deve ser maior do que o valor total de capacidade do link (Tabela abaixo: Velocidade do link e tamanho da fragmentação). VELOCIDADE DOLINK (KBIT/S) 56 64 128 256 512 768 1024 1536
TAMANHO DA FRAGMENTAÇÃO (BYTES) 70 80 160 320 640 960 1280 1920 (Não é exigida fragmentação se o tamanho da fragmentação for maior do que o tamanho do link.)
Conformidades de tráfego (Traffic Shaping) O Traffic Shaping tem o objetivo de adequar o tráfego da rede ao perfil contratado pelo cliente, através de buffers de saída que armazenam as maiores rajadas de trafego, e os transmitem dentro dos limites de capacidade do link.
Figura 23 - Conformidade de tráfego (Traffic Shape)
Portanto o objetivo principal do recurso de QoS Traffic Shaping, é evitar que pacotes sejam descartados na rede, colocando–os em uma fila de espera, até que possam ser enviados.
Algoritmos de Enfileiramento de Pacotes Congestionamentos podem ocorrer em qualquer lugar dentro de uma rede, ocorrendo desigualdades de velocidade, falta de prioridades, etc. Portanto este fato é causado pelo alto fluxo de dados que às vezes ultrapassa a capacidade do canal de transmissão (link) por onde passa as aplicações (figura 24). Veja o que diz Mauricio: (...) em qualquer rede de comunicação, cada aplicação compete com outras pela largura de banda que ela precisa para obter uma ótima performance. Além de assegurar-se que há largura de banda suficiente, uma performance aceitável depende que os requisitos de largura de banda para cada aplicação também sejam satisfeitos. As soluções com esse fim incluem segregar o tráfego em links individuais ou usar mecanismos de QoS para designar níveis de largura de banda variáveis para cada aplicação, dentro de um link. (MAURICIO, 2008).
Figura 24 - QoS em aplicações multimídia
P á g i n a | 154 Qualidade de serviço (QoS), é composta por vários componentes (algoritmos), que associados, trabalham em prol da administração e prevenção de congestionamento. Estes componentes foram projetados para servir necessidades diferentes de trafego, através de filas bem projetadas. Alguns exemplos de algoritmos de enfileiramento são: • First In, First Out (FIFO) - armazena os pacotes em uma fila única de acordo com a ordem de chegada na fila (figura 25), até que o envio de dados seja disponibilizado nas interfaces de Roteadores e switches (equipamento responsável pelo encaminhamento de pacotes a diversos pontos dentro de uma rede local).
Figura 25 - Funcionamento filas FIFO
•
Priority Queuing (PQ) – são atribuídos prioridades (baixa, normal, media, alta) aos pacotes, e em seguida, são adicionados as filas com suas respectivas características prioritárias (figura 26), onde os pacotes não marcados serão classificados como de prioridade normal (default).
Figura 26 - Funcionamento filas Priority Queuing
•
Weighted Fair Queueing – os pacotes são alocados a uma classe (voz, e-mail, etc.), e em seguida, após serem classificados de acordo com sua precedência, recursos, e indicadores, os mesmos são enviado à rede de destino. Este algoritmo proporciona uma justa distribuição de banda na rede, melhorando o seu desempenho. Este algoritmo tem a capacidade de fazer com que fluxos que estejam enfrentando congestionamento, por exemplo, possam ser atendidos com uma menor frequência em relação aos outros (figura 27).
Figura 27 - Funcionamento filas Weighted Fair Queueing
P á g i n a | 155 Segundo Gimenes (2003) diferentes técnicas de escalonamento (redução ou compactação de processos) podem ser utilizadas conforme o tipo de tráfego a ser transmitido, de forma a suprir a necessidades específicas de diferentes usuários. Codecs Um componente de estrema importância para a transmissão de voz em uma rede de dados são os áudioscodec. Eles possuem a função de codificar e decodificar um sinal (exemplo: voz, vídeo), ou seja, transformar sinal analógico em um sinal digital. Existem vários tipos de codec, onde cada um possui características diferentes de qualidade de voz (mos score), consumo de banda (bit rate), delay. Listas de Acesso (Access-Lists) As Listas de acesso ou lista de controle de acesso têm a finalidade de permitir, ou negar, um serviço, por exemplo, um determinado IP, servidores, impressora, aplicativo, ou seja, qualquer dispositivo na rede. Estes parâmetros de filtragem de pacotes são normalmente implementados em roteadores e switches, principalmente em grandes redes que utilizam qualidade de serviço. (QoS). IOS (Internet Operating System) O Internet Operating System (IOS) é um software proprietário da empresa Cisco Systems, utilizado em roteadores e switches para interpretar comandos e características básicas de protocolos de rede. O Cisco IOS é um software que contém instruções que controlam e gerenciam as atividades de um roteador e switch. Seus recursos são disponibilizados de acordo com suas versões operacionais, onde cada versão oferece serviços diferenciados, como: QoS, VoIP, Segurança, Correção de bugs, entre outros. Portando a escolha da melhor versão de IOS a ser utilizado nos roteadores e switches, irá depender da necessidade de cada rede. 13.3 Voz sobre IP (VoIP): conceitos, arquiteturas, protocolos (RTP, RTPC, SRTP, SIP, H.323). Telefonia IP ou VoIP: O que é? Conceito A Comunicação de Voz em Redes IP, chamada de VoIP, consiste no uso das redes de dados que utilizam o conjunto de protocolos das redes IP (TCP/UDP/IP) para a transmissão de sinais de Voz em tempo real na forma de pacotes de dados. A sua evolução natural levou ao aparecimento da Telefonia IP, que consiste no fornecimento de serviços de telefonia utilizando a rede IP para o estabelecimento de chamadas e comunicação de Voz. Nessas redes são implementados protocolos adicionais de sinalização de chamadas e transporte de Voz que permitem a comunicação com qualidade próxima àquela fornecida pelas redes convencionais dos sistemas públicos de telefonia comutada ou de telefonia móvel. Digitalização de Sinais de Voz Nos sistemas tradicionais o sinal de Voz utiliza uma banda de 4 kHz, e é digitalizado com uma taxa de amostragem de 8 kHz para ser recuperado adequadamente (Princípio de Nyquist). Como cada amostra é representada por um byte (8 bits, com até 256 valores distintos), cada canal de Voz necessita de uma banda de 64 kbit/s (8.000 amostras x 8 bits). Esta forma de digitalização do sinal de Voz atende a recomendação ITU-T G.711 - Pulse code modulation (PCM) of voice frequencies. Nos sistema de transmissão de Voz sobre IP, onde a demanda por banda é crítica, torna-se necessário utilizar também algoritmos de compressão do sinal de Voz. Esses algoritmos têm papel relevante pela economia de banda que proporcionam.
P á g i n a | 156 O seu uso tem sido possível graças ao desenvolvimento dos processadores de sinais digitais (DSP’s), cuja capacidade de processamento tem crescido vertiginosamente. Estas necessidades incentivaram o desenvolvimento de tecnologias mais complexas para a digitalização e compressão de Voz, e que foram registradas através de recomendações do ITU-T. Estas recomendações são apresentadas na tabela abaixo, com algumas características relevantes. Recomendação ITU-T
Algoritmo
Bit rate (kbit/s)
Atraso típico fim-a-fim (ms)
Qualidade de Voz
G.711
PCM
48; 56; 64
<<1
Excelente
G.722
Sub-banda ADPCM
48; 56; 64
<<2
Boa
G.723.1
ACELPMP-MLQ
5,36,3
67-97
Razoável Boa
G.726
ADPCM
16; 24; 32; 40
60
Boa (40) Razoável (24)
G.727
AEDPCM
16; 24; 32; 40
60
Boa (40) Razoável (24)
G.728
LD-CELP
16
<<2
Boa
G.729
CS-ACELP
8
25-35
Boa
G.729 Anexo A
CS-ACELP
8
25-35
Boa
Requisitos para a Telefonia IP O objetivo da telefonia em redes IP é prover uma forma alternativa aos sistemas tradicionais, mantendo, no mínimo, as mesmas funcionalidades e qualidade similar, e aproveitando a sinergia da rede para o transporte de Voz e dados. Os principais requisitos para a Telefonia sobre redes IP de modo a permitir uma comunicação inteligível, interativa e sem falhas são: • Transmissão de Voz em tempo real com tempo de latência (atraso) menor que 300 ms; • Existência de Procedimentos de Sinalização para o estabelecimento e controle de chamadas, e para o fornecimento de serviços adicionais (conferência, chamada em espera, identificador de chamadas, etc.); • Existência de Interfaces com os sistemas públicos de telefonia comutada e móvel. Telefonia sobre o Protocolo IP O transporte de Voz sobre o protocolo IP levou ao desenvolvimento de um conjunto de novos protocolos para viabilizar a comunicação com as mesmas características das redes tradicionais. Nas redes IP os pacotes de dados com informação de Voz são enviados de forma independente, procurando o melhor caminho para chegar ao seu destino, de forma a usar com maior eficiência os recursos da rede. Os pacotes de dados associados a uma única origem de comunicação de Voz podem, portanto, seguir caminhos diferentes até o seu destino, ocasionando atrasos, alteração de seqüência e mesmo perda desses pacotes. A tecnologia desenvolvida para a comunicação VoIP, implementada através dos novos protocolos, assegura a reordenação dos pacotes de dados e a reconstituição do sinal original, compensando o eco decorrente do atraso fim-afim dos pacotes de dados, o jitter e a perda de pacotes.
P á g i n a | 157 Estes novos protocolos funcionam como aplicações específicas sobre o protocolo IP para prover comunicação em tempo real e sinalização de chamadas para as aplicações de Voz. Esses protocolos são executados por máquinas existentes nas redes IP (roteadores, switches) e por novos elementos funcionais que complementam a arquitetura dos sistemas de Telefonia IP. Telefonia IP: Arquitetura Na telefonia tradicional, a rede é hierárquica, ou seja, é baseada em grandes centrais telefônicas interligadas de forma hierárquica e que detém a inteligência da rede. Além disso, os terminais são desprovidos de inteligência e o seu endereçamento depende da geografia da área de abrangência da rede (ver tutorial do Teleco “Telefonia Fixa no Brasil”). Na telefonia IP, a rede é plana, não hierárquica, especializada no roteamento e transporte de pacotes de dados, e pode oferecer vários tipos de serviços. Os terminais são inteligentes, seu endereçamento independe de sua localização geográfica, e o processamento e a realização das chamadas ocorrem em vários equipamentos que podem estar localizados em qualquer parte da rede. A figura a seguir apresenta a arquitetura típica de rede para a telefonia IP.
Figura 28 - Arquitetura típica VoIP
Apresenta-se a seguir cada um dos elementos desta arquitetura. •
Rede IP: É a rede de dados que utiliza os protocolos TCP/IP. Sua função básica é transportar e rotear os pacotes de dados entre os diversos elementos conectados a rede. Conforme o seu porte, pode ter um ou mais segmentos de rede. Sistema de Telefonia Fixa Comutada (STFC). É o sistema público convencional de comunicação de Voz, que interliga empresas e residências em âmbito nacional e internacional. O sistema de telefonia móvel atual também pode ser considerado convencional, para os serviços de comunicação de Voz.
•
PABX: É o equipamento de uso corporativo empregado para executar os serviços privados de Voz nas empresas. Geralmente são sistemas digitais, e se interligam ao STFC (ou aos sistemas de telefonia móvel) para realizar as comunicações externas.
•
Terminal Telefônico Convencional (Tel): É o telefone convencional usado em residências e empresas. Em alguns sistemas digitais mais modernos (públicos ou privados), os telefones também são digitais, para permitir um maior número de funcionalidades adicionais à comunicação de Voz convencional.
P á g i n a | 158 •
Terminal Telefônico IP (Tel IP): É o telefone preparado para a comunicação de Voz em redes IP. Tem todas as funcionalidades e protocolos necessários instalados para suportar comunicação bidirecional de Voz em tempo real e a sinalização de chamadas. As funcionalidades adicionais integradas dependem da finalidade e do custo do terminal.
•
Terminal Multimídia (TM): São computadores preparados para a comunicação de Voz em redes IP. Assim como o Tel IP, eles têm todas as funcionalidades e protocolos necessários instalados para suportar comunicação bidirecional de Voz em tempo real e a sinalização de chamadas. Esses terminais podem ser utilizados para aplicações mais complexas, tais como Postos de Atendimento de Call Centers e estações para conferência multimídia, entre outras.
•
Gateway (GW): É o equipamento responsável pela interoperabilidade entre a rede IP e o STFC (e/ou sistemas de telefonia móvel). Ele executa a conversão de mídia em tempo real (Voz analógica x Voz digital comprimida) e a conversão de sinalização para as chamadas telefônicas. Para simplificar o GW, o controle efetivo das chamadas em andamento é executado pelo
•
Gateway Controller: Em sistemas de maior porte as funcionalidades de mídia e sinalização podem ser separadas em equipamentos distintos, chamados de Media Gateway (MGW) e Signalling Gateway (SGW).
•
Gateway Controller (GC): É o equipamento responsável pelo controle das chamadas em andamento realizadas pelos GW. Também chamado de Call Agent, o GC utiliza e gera as informações de sinalização e comanda os GW para iniciar, acompanhar e terminar uma chamada entre 2 terminais distintos. Em sistemas de maior porte as funcionalidades de controle de mídia e sinalização podem ser separadas em equipamentos distintos, chamados de Media Gateway Controller (MGC) e Signalling Gateway Controller (SGC).
•
Multipoint Control Unit (MCU): É o equipamento responsável pelos serviços de conferência entre 3 ou mais terminais. É composto por um Controlador Multiponto (MC - multipoint controller), responsável pela sinalização das chamadas, e por um Processador Multiponto (MP - multipoint processor), responsável pelo processamento dos pacotes de dados dos sinais de Voz dos terminais envolvidos na conferência.
•
Gatekeeper (GK): É o equipamento responsável pelo gerenciamento de um conjunto de equipamentos dedicados a telefonia IP, quais sejam: Tel IP, TM, GW, GC e MCU. Suas principais funções são: executar a tradução de endereçamento dos diversos equipamentos, controlar o acesso dos equipamentos à rede dentro de sua Zona, e controlar a banda utilizada. Outras funcionalidades opcionais podem ser adicionadas, entre elas: autorização de chamadas, localização de GW, gerenciamento de banda, serviços de agenda telefônica (lista) e serviços de gerenciamento de chamadas. Na figura 29 acima cada GK é responsável por um conjunto de terminais. A comunicação entre 2 GK’s distintos normalmente é feita durante a realização de chamadas de longa distância, através de protocolos específicos para esse fim, onde são trocadas informações relativas aos terminais de cada área de atuação dos GK’s.
•
Zona: Zona é um conjunto de terminais, GW’s e MCU’s gerenciados por um único GK. Uma zona deve ter pelo menos 1 terminal, e pode ou não conter GW’s ou MCU’s. Entretanto, uma zona tem apenas 1 GK. Fisicamente a Zona pode ser composta por um ou mais segmentos de rede interligados através de roteadores ou outros equipamentos semelhantes. Comparada com os sistemas telefônicos convencionais, uma Zona corresponde a uma área com um determinado código de localidade, ou seja, uma cidade ou um conjunto de cidades conforme o tamanho e número de terminais.
Telefonia IP: Protocolos A comunicação entre dois terminais na telefonia IP ocorre através de 2 processos simultâneos: Sinalização e Controle de Chamadas
P á g i n a | 159
Estabelecimento da chamada (call setup): ocorre entre 2 ou mais terminais e envolve um ou mais GK’s, para obtenção da informação dos terminais de uma mesma zona ou de zonas distintas. Pode envolver também os GC’s e GW’s, caso incluam terminais do STFC, ou os MCU’s, caso seja estabelecida uma conferência. Estabelecida a chamada, são criados canais virtuais de controle entre todos equipamentos envolvidos. Acompanhamento da chamada (call handling): é feito através dos canais de controle no decorrer da chamada para identificar perda de conexão e outros eventos relevantes e dependentes dos serviços adicionais permitidos pelos terminais, quais sejam: atendimento simultâneo, chamada em espera, e etc. Finalização da chamada (call termination): libera os terminais e outros equipamentos envolvidos, libera os canais de controle e atualiza o status dos terminais junto aos equipamentos da rede.
Processamento de Voz Controle do transporte de Voz (transport control): estabelecida a chamada, os terminais (e GW’s ou MCU’s, conforme o caso) iniciam um processo de definição do mecanismo de transporte de Voz onde é eleito um mestre, identifica-se o tipo de mídia a ser transportada (Voz) e são criados os canais virtuais de controle e de mídia. Transporte de mídia (media stream transport): inicia-se o transporte bidirecional em tempo real de mídia (Voz) entre os terminais envolvidos através dos canais virtuais criados na fase anterior. São usados recursos dos pacotes UDP da rede IP para minimizar o overhead do protocolo, otimizando o uso da rede. Protocolos A telefonia IP utiliza os protocolos TCP/UDP/IP da rede como infra-estrutura para os seus protocolos de aplicação que participam dos processos descritos acima. A figura a seguir apresenta a estrutura em camadas dos principais protocolos.
Apresenta-se a seguir a descrição de cada um destes protocolos. H.323 Packet Based Multimedia Communications Systems O padrão H.323 é um conjunto de protocolos verticalizados para sinalização e controle da comunicação entre terminais que suportam aplicações de áudio (Voz), vídeo ou comunicação de dados multimídia. É uma recomendação guarda-chuva do ITU-T que define padrões para comunicação multimídia através de redes que não oferecem Qualidade de Serviço (QoS) garantida, como é o caso das redes do tipo LAN, IP e Internet. Os padrões utilizados do conjunto H.323 e suas aplicações para os sistemas de Telefonia IP são descritos a seguir. H.255.0 Call Signalling Protocols and Media Stream Packetization for Packet-based Multimedia Communication Systems Esta recomendação estabelece padrões para sinalização e empacotamento de mídia (Voz) para chamadas em sistemas baseados em redes de pacotes. Suas principais aplicações são:
P á g i n a | 160 •
•
• •
Sinalização de chamadas: define um conjunto de mensagens que usa o formato da recomendação Q.931 sobre os pacotes TCP da rede IP, com a finalidade de estabelecer e finalizar chamadas. Estas mensagens são trocadas entre os equipamentos envolvidos na chamada: terminais, GC e MCU’s. Controle de equipamentos na rede (Zona): define um conjunto de mensagens para a funcionalidade RAS, responsável pelo registro, admissão e status dos equipamentos na rede. As mensagens são trocadas entre o GK e os terminais, GW, GC e MCU’s para o controle de uma determinada Zona. Estas mensagens usam como suporte os pacotes UDP da rede IP. Comunicação entre Gatekeepers (anexo G): define um conjunto de mensagens para a Sinalização Gatekeepergatekeeper, que estabelece o processo de sinalização e controle para chamadas entre Zonas distintas. Transporte de mídia (Voz): esta recomendação baseia-se no uso dos protocolos RTP e RTCP como padrão para o transporte de mídia.
H.245 Control Protocol for Multimedia Communication Esta recomendação estabelece padrões para a comunicação entre terminais, para o processo de controle do transporte de Voz (transport control). Estas mensagens usam como suporte os pacotes TCP da rede IP, e são trocadas entre os terminais, GW e MCU’s envolvidos em chamadas do tipo ponto-a-ponto e ponto-multiponto. H.235 Security and Encryption for H-Series (H.323 and other H.245-based) Multimedia Terminals Esta recomendação estabelece padrões adicionais de Autenticação e Segurança (Criptografia) para terminais que usam o protocolo H.245 para comunicação ponto-a-ponto e multiponto. H.450.X Generic Functional Protocol for the Support of Supplementary Services Conjunto de recomendações que estabelece padrões de Sinalização para serviços adicionais para terminais, tais como transferência e redirecionamento de chamadas, atendimento simultâneo, chamada em espera, identificação de chamadas, entre outros. Estas mensagens usam como suporte os pacotes TCP da rede IP, e são trocadas entre os terminais, GW e MCU’s envolvidos em chamadas do tipo ponto-a-ponto e ponto-multiponto que possuam as funcionalidade dos serviços adicionais. Session Initiation Protocol (SIP) O protocolo SIP, definido através da recomendação RFC 2543 do IETF, estabelece o padrão de sinalização e controle para chamadas entre terminais que não utilizam o padrão H.323, e possui os seus próprios mecanismos de segurança e confiabilidade. Estabelece recomendações para serviços adicionais tais como transferência e redirecionamento de chamadas, identificação de chamadas (chamado e chamador), autenticação de chamadas (chamado e chamador), conferência, entre outros. Sua utilização é similar ao conjunto H.323 descrito, embora utilize como suporte para as suas mensagens os pacotes UDP da rede IP. Media Gateway Control Protocol (MGCP) O protocolo MGCP, definido através de recomendação RFC 2705 do IETF, é usado para controlar as conexões (chamadas) nos GW’s presentes nos sistemas VoIP. O MGCP implementa uma interface de controle usando um conjunto de transações do tipo comando – resposta que criam, controlam e auditam as conexões (chamadas) nos GW’s. Estas mensagens usam como suporte os pacotes UDP da rede IP, e são trocadas entre os GC’s e GW’s para o estabelecimento, acompanhamento e finalização de chamadas. Media Gateway Control Protocol (MEGACO) O protocolo Megaco é resultado de um esforço conjunto do IETF e do ITU-T (Grupo de Estudo 16). O texto da definição do protocolo e o mesmo para o Draft IETF e a recomendação H.248, e representa uma alternativa ao MGCP e outros protocolos similares. Este protocolo foi concebido para ser utilizado para controlar GW’s monolíticos (1 único
P á g i n a | 161 equipamento) ou distribuídos (vários equipamentos). Sua plataforma aplica-se a gateway (GW), controlador multiponto (MCU) e unidade interativa de resposta audível (IVR). Possui também interface de sinalização para diversos sistemas de telefonia, tanto fixa como móvel. Real-Time Transport Protocol (RTP) O protocolo RTP, definido através da recomendação RFC 1889 do IETF, é o principal protocolo utilizado pelos terminais, em conjunto com o RTCP, para o transporte fim-a-fim em tempo real de pacotes de mídia (Voz) através de redes de pacotes. Pode fornecer serviços multicast (transmissão um para muitos) ou unicast (transmissão um para um). O RTP não reserva recursos de rede e nem garante qualidade de serviço para tempo real. O transporte dos dados é incrementado através do RTCP (protocolo de controle) que monitora a entrega dos dados e provê funções mínimas de controle e identificação. No caso das redes IP este protocolo faz uso dos pacotes UDP, que estabelecem comunicações sem conexão. Real-Time Transport Control Protocol (RTCP) O protocolo RTCP, definido também através da recomendação RFC 1889 do IETF, é baseado no envio periódico de pacotes de controle a todos os participantes da conexão (chamada), usando o mesmo mecanismo de distribuição dos pacotes de mídia (Voz). Desta forma, com um controle mínimo é feita a transmissão de dados em tempo real usando o suporte dos pacotes UDP (para Voz e controle) da rede IP. 13.4 Videoconferência: conceitos, arquiteturas, protocolos (SIP, H.323) Videoconferência é uma tecnologia que permite o contacto visual e sonoro entre pessoas que estão em lugares diferentes, dando a sensação de que os interlocutores encontram-se no mesmo local. Permite não só a comunicação entre um grupo, mas também a comunicação pessoa-a-pessoa. Arquitetura Essa comunicação é feita em tempo real e existem vários sistemas interpessoais de videoconferência que possibilitam isso. Além da transmissão simultânea de áudio e vídeo, esses sistemas oferecem ainda recursos de cooperação entre os usuários, compartilhando informações e materiais de trabalho. Em geral os equipamentos de videoconferência (terminais ou CODECs) disponíveis no mercado possuem capacidade de estabelecer uma comunicação ponto a ponto, e para que vários pontos se conectem simultaneamente é preciso utilizar um equipamento denominado MCU (Multiponto Control Unit). O funcionamento da MCU assim como de outros componentes necessários a videoconferência são especificados pelo padrão H.323 e SIP. Também é possível estabelecer uma conexão entre varios pontos utilizando a tecnologia de conexão Multicast. O Multicast é pouco utilizado por ser uma tecnologia de rede que não esta presente na Internet apenas em redes privadas e fechadas. Um ambiente comum de videoconferência é composto de uma sala dotada de uma câmera especial e alguma facilidade tecnológica para a apresentação de documentos. Atualmente, com o avanço dos processadores (cada vez mais rápidos) e a compressão de dados, surgiu um novo tipo de videoconferência, a conferência desktop. Nela não é necessário salas especiais e muito menos equipamentos ultra modernos: a interação é feita por uma webcam e um microfone simples. A compressão/descompressão e todo o resto são efetuados por software que deve estar instalado em uma máquina padrão. Vantagens • • •
Economia de tempo, evitando o deslocamento físico para um local especial; Economia de recursos, com a redução dos gastos com viagens; Mais um recurso de pesquisa, já que a reunião pode ser gravada e disponibilizada posteriormente.
P á g i n a | 162 Além destes aspectos, os softwares que apoiam a realização da videoconferência, em sua maioria, permitem também, através da utilização de ferramentas de compartilhamento de documentos:
Visualização e alteração pelos integrantes do diálogo em tempo real; Compartilhamento de aplicações; Compartilhamento de informações (transferência de arquivos).
Padrão H.323 O padrão H.323 é parte da família de recomendações ITU-T (International Telecommunication Union Telecommunication Standardization sector) H.32x, que pertence a série H da ITU-T, e que trata de "Sistemas Audiovisuais e Multimédia". A recomendação H.323 tem o objetivo de especificar sistemas de comunicação multimédia em redes baseadas em pacotes e que não provêem uma Qualidade de Serviço (QoS) garantida. Além disso, estabelece padrões para codificação e decodificação de fluxos de dados de áudio e vídeo, garantindo que produtos baseados no padrão H.323 de um fabricante interopere com produtos H.323 de outros fabricantes. Redes baseadas em pacotes incluem as redes IP (Internet Protocol) como a Internet, redes IPX (Internet Packet Exchange), as redes metropolitanas, as redes de longa distância (WAN) e ainda conexões discadas usando PPP. O padrão H.323 é completamente independente dos aspectos relacionados à rede. Dessa forma, podem ser utilizadas quaisquer tecnologias de enlace, podendo-se escolher livremente entre as que dominam o mercado atual como Ethernet, Fast Ethernet, FDDI, ou Token Ring. Também não há restrições quanto à topologia da rede, que pode consistir tanto de uma única ligação ponto a ponto, ou de um único segmento de rede, ou ainda serem complexas, incorporando vários segmentos de redes interconectados. O padrão H.323 especifica o uso de áudio, vídeo e dados em comunicações multimédia, sendo que apenas o suporte à mídia de áudio é obrigatório. Mesmo sendo somente o áudio obrigatório, cada mídia (áudio, vídeo e/ou dados), quando utilizada, deve seguir as especificações do padrão. Pode-se ter uma variedade de formas de comunicação, envolvendo áudio apenas (telefonia IP), áudio e vídeo (videoconferência), áudio e dados e, por fim, áudio, vídeo e dados. Implementação do H.323 A comunicação por meio do H323 emprega quatro tipos de elementos básicos que juntos possibilitam a comunicação multimédia: • Terminais: Temos que entender que os fluxos de informações em um sistema H.323 são em geral originados por (ou destinados a) terminais. Um terminal H.323 pode ser um telefone IP ou uma aplicação executando em um PC com recursos multimídia, um softphone, por exemplo. A recomendação não especifica dispositivos específicos de captura e apresentação de mídias a serem providos pelos terminais, mas somente os padrões de codificação para essas mídias a serem providos pelos terminais, aos quais esses terminais devem dar obrigatoriamente suporte. Como exemplo de padrões de codificação (também denominadas CODECs – Codificadores) podemos citar os de vídeo: H.261, H.263, etc., áudio (G.711) e controles (H.221, H.225, H.245, etc.). Alguns fabricantes fornecem terminais com MCUs incorporadas para possibilitar múltiplas conexões simultaneamente. • Gateways: Componente opcional que possibilita a comunicação de terminais H.323 com outros padrões, tais como H.310, H.321 e H.322. • Gatekeeper: Componente opcional que centraliza os pedidos de chamada e gerencia a banda empregada pelos participantes para evitar que sobrecarreguem a rede com taxas de transmissão muito elevadas. • MCU (Multi Control Unit): Componente que centraliza os pedidos de chamada, possibilitando a conexão de 3 ou mais participantes simultaneamente. Nesse esquema, os únicos componentes realmente indispensáveis são os terminais. Todos os componentes dispõem de interfaces LAN (Fast-Ethernet) e ISDN, sendo essa última empregada para conexão com terminais de outras empresas. Nesse caso, normalmente uma operadora de telecomunicações fornece o serviço de conexões ISDN para realização de
P á g i n a | 163 conexões entre as empresas. Uma empresa de pequeno porte pode ter apenas um terminal, realizando vídeoconferências com outras empresas remotas. Uma empresa de grande porte pode ter vários terminais, e os componentes opcionais que se fizerem necessários, normalmente um de cada. O H.323 tem por objetivo o estabelecimento de sessões áudio visual em redes de pacotes. É constituído por uma miríade de protocolos que permitem a sinalização de chamadas, gerência dos equipamentos da rede, criptografia e transferência de voz e vídeo, bem como serviços de transferência e identificação de chamadas. A especificação do protocolo H.323 inclui uma série de especificações, a saber: O modo como os terminais escolhem o codificador comum a ser usado na comunicação de áudio ou vídeo. O protocolo H.323 aceita diversos codificadores de áudio ou vídeo e os usuários precisam utilizar o mesmo codificador comum. O modo como os pacotes de áudio e vídeo serão encapsulados e passados pela rede. O H.323 impõe o uso do protocolo RTP. O modo como os terminais interagem com os gatekeepers. Gatekeepers são entidades semelhantes aos servidores de registro do SIP. O modo como os telefones IP interagem com os telefones comuns, conectados através da rede telefônica de comutação de circuitos, através de gateways. Gateways são entidades que convertem os sinais entre diferentes meios. Os terminais H.323 devem ser capazes de suportar, no mínimo, chamadas de voz utilizando o protocolo G.711, que utiliza codificação PCM. A compatibilidade com vídeo é opcional e, por isso, os fabricantes podem oferecer dispositivos apenas com voz e com áudio e vídeo. Apesar de ser opcional, se um terminal suportar vídeo, ele deve ser, no mínimo, suportar o padrão QCIF H.261 (176 x 144 pixels). O H.323 ainda determina um protocolo de controle, o H.245, um protocolo de sinalização, o Q.931, e um protocolo RAS (Registration, Admission and Status) para registro no gatekeeper. Padrão SIP O SIP (Session Initiation Protocol) é um protocolo de controle para criação, modificação e finalização de sessões multimídia e chamadas telefônicas com um ou mais participantes. Os participantes podem ser convidados para sessões do tipo unicast e multicast. O SIP pode convidar usuários para participar de uma nova sessão ou para uma sessão multimídia já existente. Ele também incorpora o conceito de números de portas fixas para todos os dispositivos e permite o uso de servidores Proxy, com a preocupação de segurança da rede interna. O SIP é baseado em texto o que permite sua fácil implementação com linguagens como: Java, Pearl e outras. O SIP tem arquitetura similar ao protocolo HTTP (Cliente/Servidor), ou seja, todas as requisições geradas pelos clientes são enviadas ao servidor. O servidor processa as requisições e então envia as respostas aos clientes. Os serviços do SIP para o estabelecimento e encerramento de sessões incluem: • Localização de Usuário: como um usuário pode se movimentar por toda a rede, ele precisa ser localizado antes de efetivamente iniciar uma comunicação. Este procedimento determina a localização do usuário e a viabilidade dele ser usado para a comunicação; • Capacidades do Usuário: este procedimento é utilizado para determinar as capacidades de mídia dos usuários envolvidos na comunicação e para determinar os parâmetros de mídia que devem ser usados; • Disponibilidade do Usuário: após um usuário ser localizado, é necessário saber se ele está disponível para uma nova comunicação. Este procedimento determina se o usuário possui recursos disponíveis para iniciar uma nova comunicação; • Configuração de Chamada: é o processo de definição dos parâmetros que serão utilizados para o estabelecimento da chamada; • Controle da Chamada: é o processo de gerenciamento da chamada, incluindo processos de transferência e encerramento de ligações.
P á g i n a | 164 O SIP é implementado através das seguintes entidades: • UA (User Agent): um agente de usuário é um sistema-fim que age em nome de um usuário. Ele consiste de duas partes: um cliente e um servidor; • UAC (User Agent Client): é a porção cliente do UA que é responsável pelo inicio da comunicação entre um cliente e o servidor. Esta comunicação se inicia através de uma solicitação, mensagem do tipo REQUEST, que estabelece o inicio de uma transação SIP; • UAS (User Agent Server): é a porção do servidor UA que é responsável por processar uma mensagem do tipo REQUEST enviado pelo UAC; • Multimedia Session: uma sessão multimídia é a troca de fluxos de informações entre transmissores e receptores multimídias; • Server: é aplicação que é responsável em receber as mensagens do tipo REQUEST dos usuários e enviar mensagens do tipo RESPONSE. Na prática o Server é um hardware que implementa funções de proxy server, redirect server e a parte UAS.
Figura 29 - Entidades SIP – Destaque: UA
O Proxy Server é um servidor proxy que pode atuar como um Servidor ou um Cliente. Ele é responsável por receber mensagens e encaminhar para outros Servidores, e é capaz de fazer a tradução de endereços, reescrever uma mensagem antes de encaminhá-la, aplicar regras de segurança e até rotear as mensagens. O Redirect Server é responsável por fornecer a um cliente a lista de endereços possíveis para alcançar um cliente destino. Ele é capaz de fazer o mapeamento de um endereço em nenhum, ou em outros novos endereços, para alcançar o cliente de destino.
Figura 30 - Entidades SIP – Destaque: Redirect Server
O Registrar (ou Registration) Server é um servidor que recebe e aceita mensagens de registro, que são utilizadas para armazenar o local corrente dos usuários. Essas informações são compartilhadas com outros servidores da rede. O SIP define dois tipos de mensagens: REQUEST e RESPONSE. Uma mensagem do tipo REQUEST é enviada de um cliente a um servidor e apresenta o formato indicado a seguir:
P á g i n a | 165
As mensagens REQUEST podem ter vários métodos (Method), e cada método representa uma ação requerida, conforme os exemplos apresentados a seguir: • REGISTER: uma mensagem com este método envia informações sobre identificação e localização do usuário; • INVITE: este método é utilizado quando se deseja convidar um novo participante para uma sessão já existente ou para uma nova sessão; • BYE: método utilizado para encerrar a participação numa sessão; • ACK: Uma mensagem com este método é enviada por um usuário que mandou um INVITE para avisar que uma mensagem do tipo RESPONSE foi recebida. Portanto, para toda mensagem com um ACK deve existir uma mensagem anterior com INVITE. O campo REQUEST URL é um SIP URL e é usado dentro da mensagem para indicar quem originou a mensagem (From), qual o destino corrente da mensagem (Request URL) e qual o destino final (To). Alguns exemplos de SIP URL: • sip:usuá[email protected] • sip:usuá[email protected] • sip:[email protected];transport=udp O campo SIP version é utilizado para indicar qual versão de SIP que está sendo usada, para garantir a interpretação correta da mensagem SIP.
Figura 31 - Mensagem do tipo REQUEST com o método INVITE
Uma mensagem do tipo RESPONSE é enviada após uma mensagem do tipo REQUEST ter sido recebida e processada, e apresenta o formato indicado a seguir:
O campo SIP version da mensagem RESPONSE possui a mesma função da mensagem REQUEST. Portanto, garante a interpretação correta das mensagens SIP. O campo Status code possui um número inteiro que identifica o resultado do processamento da mensagem REQUEST a qual a mensagem RESPONSE se refere. Esse campo apresenta as seguintes informações: • INFORMATIONAL: informa que a mensagem REQUEST foi recebida e esta sendo processada; • SUCCESS: informa que a mensagem foi recebida, entendida, processada e aceita; • CLIENT ERROR: informa que o servidor não pode processar a mensagem REQUEST, devido algum problema interno; • GLOBAL FAILURE: informa que a mensagem REQUEST não pode ser processada em nenhum servidor disponível. O campo Reason phrase é uma frase textual com o objetivo de informar de forma resumida o significado do valor do campo Status code. 13.5 Roteamento Multicast: conceitos, protocolos (IGMP, PIM, MOSPF) Roteamento Multicast O objetivo principal dos algoritmos de roteamento multicast é entregar pacotes a partir de um nodo da rede para vários outros, mas não todos. Este tipo de operação é utilizada por aplicações que estão separadas, mas trabalham em
P á g i n a | 166 cooperação. Bons exemplos são algoritmos distribuídos ou clientes de um serviço de rede específico, como por exemplo vídeo sob demanda ou vídeo-conferência. A distribuição de pacotes pode ser feita através de conexões com todos os destinos. Esta é uma boa abordagem para um número pequeno de nodos. Quando esse número cresce esta estratégia deixa de ser viável. Outra abordagem também possível é flooding mas esta não é a abordagem mais eficiente, já que nem todos os nodos têm interesse na mensagem e, em redes grandes, o flooding pode causar problemas de congestionamento. Uma abordagem comum para roteamento multicast é associar o nodo através de um endereço multicast a um grupo multicast. Este grupo multicast é formado pelos nodos que têm interesse em um determinado conjunto de mensagens. Um host pode entrar ou sair do grupo de multicast a qualquer momento, mas precisa comunicar a operação a um servidor. Assim, os servidores podem informar a qualquer momento os nodos que fazem parte ou não de cada grupo. O nodo deve também ser capaz de gerar pacotes para serem enviados em árvores de distribuição. Árvores de distribuição é a forma como os nodos são organizados logicamente pelo algoritmo. O principal objetivo das árvores de distribuição é ter certeza que existe apenas uma cópia de cada pacote, num determinado tempo, em cada sub-rede. Se existirem vários destinos em um mesmo ramo da árvore de distribuição, é enviado apenas uma cópia do pacote de dados para esse ramo da árvore. Protocolos Multicast Open Shortest Path First (MOSPF) A extensão multicast para o protocolo de roteamento IP Open Shortest Path First (OSPF) é denominada Multicast Open Shortest Path First (MOSPF) [MOY 94][MOY 94a]. O protocolo OSPF é baseado no estado dos enlaces, diferente do RIP, que é baseado na contagem dos nodos. Uma rede de roteadores utilizando MOSPF pode enviar pacotes multicast diretamente, enviando não mais que uma cópia por cada enlace, e sem a necessidade de túneis. O MOSPF transmite os datagramas IP multicast da origem para os vários membros do grupo sem formar laços, gerando uma árvore. Esta árvore tem como raiz o nodo origem do datagrama, e todos os “braços” terminam em membros do grupo. Seguindo a filosofia multicast, o datagrama é replicado apenas quando surge uma divisão, um braço, na árvore. Este esquema de roteamento, onde o caminho dos datagramas depende da origem e dos destinos, já que a árvore possui raiz na origem, é denominado source/destination routing. Ele é diferente da maioria dos algoritmos de roteamento unicast, incluindo o OSPF, que se baseiam somente no destino do datagrama ao fazer o roteamento. A necessidade de considerar a origem para tomar as decisões do roteamento causa maior quantidade de cálculos de roteamento, porém resulta em melhores caminhos em termos de utilização da rede e atraso para membros individuais do grupo. No MOSPF, os datagramas são marcados com a sua classificação do Type of Service (TOS), baseada em um dos cinco valores mutuamente exclusivos minimize delay, maximize throughput, maximize reliability, minimize monitary cost e normal service. O caminho do datagrama multicast no MOSPF pode variar de acordo com a classificação TOS utilizada. Por exemplo, um tráfego multicast sensitivo ao delay(retardo) pode seguir rotas diferentes de uma aplicação multicast de alto throughput (vazão). A classificação TOS no protocolo MOSPF é, como no OSPF, opcional, e roteadores que a suportam podem ser misturados livremente como os que não a suportam. Algumas implementações do protocolo MOSPF incluem a implementação do protocolo DVMPR, utilizado na maioria dos roteadores pertencentes ao Mbone, e possibilitam que as informações de roteamento sejam passadas entre os dois protocolos de roteamento multicast. Desta forma, os Sistemas Autônomos executando o MOSPF podem fazer parte do MBone. Protocol Independent Multicast (PIM) Quando membros de um grupo e transmissores para este grupo estão distribuídos esparsamente numa ampla área, o esquema utilizado pelo DVMRP e pelo MOSPF não são muito eficientes. O tráfego de dados multicast (no DVMRP) ou o
P á g i n a | 167 relatório de informação dos membros do grupo (no MOSPF) são periodicamente enviados sobre muitos enlaces que não conduzem a clientes do grupo. Além disso, estes esquemas de roteamento foram desenvolvidos para uso dentro de regiões onde um grupo é amplamente representado, ou vasta largura de banda é disponível. Existe um protocolo que foi desenvolvido com o objetivo de estar apto para rotear pacotes multicast sem ser dependente dos esquemas de roteamento IP unicast básicos como o DVMRP (baseado no RIP) e o MOSPF (baseado no OSPF): o Protocol Independent Multicasting (PIM). Recente desenvolvimento do IETF Network Working Group, o PIM trata também algumas das questões de escalabilidade relacionadas à distribuição esparsa de amplas áreas usado no MBone. Ele possui dois modos: o Sparse Mode PIM, um protocolo de difusão seletiva que é otimizado para um grupo que está distribuído em diferentes regiões da Internet, e o Dense Mode PIM, que é otimizado para grupos com membros próximos. Alguns vendedores de roteadores IP, como a Cisco Systems e a 3Com Corporation, estão à frente de um grupo de desenvolvimento e distribuição de roteadores multicast baseados em PIM no Mbone. Estes roteadores entendem pacotes IP multicast no seu modo natural, além de que túneis não são mais necessários para rotear tráfego entre eles. O uso de túneis será utilizado apenas quando forem integrados roteadores DVMRP. Internet Group Management Protocol (IGMP) O protocolo de gerenciamento de grupo (IGMP - Internet Group Management Protocol) é usado por hosts para reportar seus participantes de grupos de hosts a roteadores multicast vizinhos. É um protocolo assimétrico e é especificado aqui do ponto de vista de um host, ao invés do de um roteador multicast. Como o ICMP, IGMP é uma parte integral do IP. É um requisito básico de implementações a todos os hosts que desejem enviar e receber pacotes multicast. As mensagens IGMP são encapsuladas em datagramas IP, com um número de protocolo IP igual a 2. Todas as mensagens importantes do ponto de vista do host possuem o seguinte formato:
Figura 32 - Formato das mensagens de protocolo IGMP
Vejamos os campos: Versão: este tutorial especifica a versão 1 do IGMP. A versão 0 é especificada na RFC-988 e está obsoleta; Tipo: há dois tipos de mensagens que devem ser levadas em consideração: o Host Membership Query o Host MemberShip Report Não-Usado: campo não utilizado, zerado quando enviado e ignorado quando recebido; Checksum; Endereço de grupo: em uma mensagem Host Membership Query, o campo de endereço de grupo é zerado quando enviado e ignorado quando recebido. Por outro lado, em uma mensagem Host Membership Report, este campo contém o endereço de grupo do grupo sendo reportado. 13.6 Instrução Normativa IN04 INSTRUÇÃO NORMATIVA Nº 04, DE 19 DE MAIO DE 2008 - DOU DE 20/05/2008 Dispõe sobre o processo de contratação de serviços de tecnologia da informação pela administração pública federal direta, autárquica e fundacional. O SECRETÁRIO DE LOGÍSTICA E TECNOLOGIA DA INFORMAÇÃO, no uso de suas atribuições que lhe conferem o Decreto o n 6.081, de 12 de abril de 2007, revigorado pelo Decreto nº 6.222, de 4 de outubro de 2007, e tendo em vista o disposto
P á g i n a | 168 na Lei nº 8.666, de 21 de junho de 1993, na Lei nº 10.520, de 17 de julho de 2002, no Decreto nº 1.048, de 21 de janeiro de 1994, e no Decreto nº 2.271, de 07 de julho de 1997, no Decreto nº 3.555, de 8 de agosto de 2000, no Decreto nº 3.931, de 19 de setembro de 2001, e no Decreto 5.450, de 31 de maio de 2005; resolve: Art. 1º As contratações de serviços de Tecnologia da Informação pelos órgãos e entidades integrantes do Sistema de Administração dos Recursos de Informação e Informática - SISP serão disciplinadas por esta Instrução Normativa. CAPÍTULO I DAS DISPOSIÇÕES GERAIS Art. 2º Para fins desta Instrução Normativa, considera-se: I - Requisitante do Serviço: qualquer unidade administrativa que demande a contratação de um serviço de Tecnologia da Informação; II - Área de Tecnologia da Informação: unidade setorial ou seccional do SISP, bem como área correlata, responsável por gerir a Tecnologia da Informação do órgão ou entidade; III - Gestor do Contrato: servidor com capacidade gerencial, técnica e operacional relacionada ao objeto da contratação; IV - Solução de Tecnologia da Informação: todos os serviços, produtos e outros elementos necessários que se integram para o alcance dos resultados pretendidos com a contratação; V - Software: sistema ou componente constituído por um conjunto de programas, procedimentos e documentação desenvolvido para atendimento de necessidades específicas do órgão ou entidade, bem como aqueles previamente desenvolvidos e disponíveis no mercado para utilização na forma em que se encontram ou com modificações; VI - Requisitos: conjunto de especificações necessárias para definir a Solução de Tecnologia da Informação a ser contratada; VII - Recebimento: declaração formal do Gestor do Contrato de que os serviços prestados atendem aos requisitos estabelecidos no contrato; VIII - Critérios de aceitação: parâmetros objetivos e mensuráveis utilizados para verificar um serviço ou produto quanto à conformidade aos requisitos especificados; IX - Gestão: atividades superiores de planejamento, coordenação, supervisão e controle, relativas aos serviços, objeto de contratação, que visam a garantir o atendimento dos objetivos da organização; e X - Plano Diretor de Tecnologia da Informação - PDTI: instrumento de diagnóstico, planejamento e gestão dos recursos e processos de Tecnologia da Informação que visa a atender às necessidades de informação de um órgão ou entidade para um determinado período. Art. 3º As contratações de que trata esta Instrução Normativa deverão ser precedidas de planejamento, elaborado em harmonia com o Plano Diretor de Tecnologia da Informação - PDTI, alinhado à estratégia do órgão ou entidade. Art. 4º Em consonância com o art. 4º do Decreto nº 1.048, de 1994, o órgão central do SISP elaborará, em conjunto com os órgãos setoriais e seccionais do SISP, a Estratégia Geral de Tecnologia da Informação para a Administração Pública, revisada anualmente, para subsídio à elaboração dos PDTI dos órgãos e entidades integrantes do SISP. Parágrafo único. A Estratégia Geral de Tecnologia da Informação deverá abranger, pelo menos, os seguintes elementos: I - proposta, elaborada em conjunto com os demais órgãos e entidades competentes, que contemple as demandas de recursos humanos das Áreas de Tecnologia da Informação necessárias para elaboração e gestão de seus PDTI; II - plano de ação, elaborado em conjunto com os demais órgãos e entidades competentes, para viabilizar a capacitação dos servidores das Áreas de Tecnologia da Informação; III - modelo para elaboração dos PDTI que contemple, pelo menos, as seguintes áreas: necessidades de informação alinhada à estratégia do órgão ou entidade, plano de investimentos, contratações de serviços, aquisição de equipamentos, quantitativo e capacitação de pessoal, gestão de risco; e IV - orientação para a formação de Comitês de Tecnologia da Informação que envolvam as diversas áreas dos órgãos e entidades, que se responsabilizem por alinhar os investimentos de Tecnologia da Informação com os objetivos do órgão ou entidade e apoiar a priorização de projetos a serem atendidos. Art. 5º Não poderão ser objeto de contratação: I - todo o conjunto dos serviços de Tecnologia da Informação de um órgão ou uma entidade em um único contrato; II - mais de uma Solução de Tecnologia da Informação em um único contrato; e III - gestão de processos de Tecnologia da Informação, incluindo gestão de segurança da informação.
P á g i n a | 169 § 1º O suporte técnico aos processos de planejamento e avaliação da qualidade dos serviços de Tecnologia da Informação poderão ser objeto de contratação, desde que sob supervisão exclusiva de servidores do órgão ou entidade. § 2º O disposto neste artigo não se aplica nos casos em que o serviço for prestado por empresas públicas de Tecnologia da Informação que tenham sido criadas para este fim específico, devendo acompanhar o processo a justificativa da vantajosidade para a administração. Art. 6º É vedado: I - estabelecer vínculo de subordinação com funcionário dos fornecedores; II - prever em edital a remuneração dos funcionários dos fornecedores; III - indicar pessoas para compor o quadro funcional dos fornecedores; IV - demandar aos funcionários dos fornecedores execução de tarefas fora do escopo do objeto da contratação; V - reembolsar despesas com transporte, hospedagem e outros custos operacionais, que devem ser de exclusiva responsabilidade dos fornecedores; e VI - prever em edital exigências que constituam intervenção indevida da Administração Pública na gestão interna da contratada. CAPÍTULO II DO PROCESSO DE CONTRATAÇÃO Art. 7º As contratações de serviços de Tecnologia da Informação deverão seguir três fases: Planejamento da Contratação, Seleção do Fornecedor e Gerenciamento do Contrato. SEÇÃO I PLANEJAMENTO DA CONTRATAÇÃO Art. 8º A fase de Planejamento da Contratação deve contemplar os serviços, produtos e outros elementos que compõem a Solução de Tecnologia da Informação que irá gerar o resultado esperado. Art. 9º A fase de Planejamento da Contratação consiste nas seguintes etapas: I - Análise de Viabilidade da Contratação; II - Plano de Sustentação; III - Estratégia de Contratação; e IV - Análise de Riscos. Art. 10. A Análise de Viabilidade da Contratação, observado o disposto nos arts. 11 e 12 desta instrução normativa, compreende as seguintes tarefas: I - avaliação da necessidade por parte do Requisitante do Serviço, com apoio da Área de Tecnologia da Informação, considerando os objetivos estratégicos e as necessidades corporativas da instituição; II - explicitação da motivação da contratação da Solução de Tecnologia da Informação por parte do Requisitante do Serviço; III - especificação dos requisitos, a partir de levantamento de: a) demandas dos potenciais gestores e usuários do serviço; b) soluções disponíveis no mercado; e c) análise de projetos similares realizados por outras instituições; IV - identificação por parte da Área de Tecnologia da Informação, com participação do Requisitante do Serviço, das diferentes soluções que atendam às necessidades, considerando: a) disponibilidade de solução similar em outro órgão ou entidade da Administração Pública Federal; b) soluções existentes no Portal do Software Público Brasileiro (http://www.softwarepublico.gov.br); c) capacidade e alternativas do mercado, inclusive a existência de software livre ou software público; d) observância às políticas, premissas e especificações técnicas definidas pelos Padrões de Interoperabilidade de Governo Eletrônico - e-PING e Modelo de Acessibilidade em Governo Eletrônico - e-MAG, conforme as Portarias Normativas SLTI nº 5, de 14 de julho de 2005, e nº 3, de 07 de maio de 2007; e) aderência às regulamentações da Infra-estrutura de Chaves Públicas Brasileira - ICP-Brasil, conforme a Medida Provisória nº 2.200-2, de 24 de agosto de 2001, quando houver necessidade de utilização de certificação digital; e
P á g i n a | 170 f) custo financeiro estimado; V - justificativa da solução escolhida, por parte da Área de Tecnologia da Informação, que contemple, pelo menos: a) descrição sucinta, precisa, suficiente e clara da Solução de Tecnologia da Informação escolhida, indicando os serviços que a compõem; b) alinhamento em relação às necessidades; e c) identificação dos benefícios que serão alcançados com a efetivação da contratação em termos de eficácia, eficiência, efetividade e economicidade. Parágrafo único. A Análise de Viabilidade da Contratação será aprovada e assinada pelo Requisitante do Serviço e pela Área de Tecnologia da Informação. Art. 11. Compete ao Requisitante do Serviço definir os seguintes requisitos, quando aplicáveis: I - de software, que independem de arquitetura tecnológica e definem os aspectos funcionais do software; II - de treinamento, com o apoio da Área de Tecnologia da Informação, que definem a necessidade de treinamento presencial ou à distância, carga horária e entrega de materiais didáticos; III - legais, que definem as normas às quais a Solução de Tecnologia da Informação deve respeitar; IV - de manutenção, que independem de configuração tecnológica e definem a necessidade de serviços de manutenção preventiva, corretiva, evolutiva e adaptativa; V - de prazo, que definem a prioridade da entrega da Solução de Tecnologia da Informação contratada; VI - de segurança, com o apoio da Área de Tecnologia da Informação; e VII - sociais, ambientais e culturais, que definem requisitos que a Solução de Tecnologia da Informação deve atender para respeitar necessidades específicas relacionadas a costumes e idiomas, e ao meio-ambiente. Art. 12. Compete à Área de Tecnologia da Informação definir, quando aplicáveis, os seguintes requisitos tecnológicos, em adequação àqueles definidos pelo Requisitante do Serviço: I - de arquitetura tecnológica, composta de hardware, softwares básicos, padrões de interoperabilidade, linguagem de programação e interface; II - de projeto, que estabelecem o processo de desenvolvimento de software, técnicas, métodos, forma de gestão e de documentação; III - de implantação, que definem o processo de disponibilização da solução em produção; IV - de garantia e manutenção, que definem a forma como será conduzida a manutenção e a comunicação entre as partes envolvidas; V - de treinamento, que definem o ambiente tecnológico de treinamentos ministrados e perfil do instrutor; VI - de experiência profissional; VII - de formação, que definem cursos acadêmicos e técnicos, certificação profissional e forma de comprovação; e VIII - de metodologia de trabalho. Art 13. O Plano de Sustentação, a cargo da Área de Tecnologia da Informação, com o apoio do Requisitante do Serviço, abrange: I - segurança da informação; II - recursos materiais e humanos; III - transferência de conhecimento; IV - transição contratual; e V - continuidade dos serviços em eventual interrupção contratual. Art. 14. A Estratégia da Contratação, elaborada a partir da Análise de Viabilidade da Contratação, compreende as seguintes tarefas: I - indicação, pela Área de Tecnologia da Informação, do tipo de serviço, considerando o mercado e as soluções existentes no momento da licitação; II - indicação, pela Área de Tecnologia da Informação com o apoio do Requisitante do Serviço, dos termos contratuais, observado o disposto nos parágrafos 1º e 2º deste artigo, sem prejuízo do estabelecido na Lei nº 8.666, de 1993, relativos a:
P á g i n a | 171 a) fixação de procedimentos e de critérios de mensuração dos serviços prestados, abrangendo métricas, indicadores e valores; b) definição de metodologia de avaliação da adequação às especificações funcionais e da qualidade dos serviços; c) quantificação ou estimativa prévia do volume de serviços demandados, para comparação e controle; d) regras para aplicação de multas e demais sanções administrativas; e) garantia de inspeções e diligências, quando aplicável, e sua forma de exercício; f) definição de direitos autorais e de propriedade intelectual; g) termo de compromisso, contendo declaração de manutenção de sigilo e ciência das normas de segurança vigentes no órgão ou entidade, a ser assinado pelo representante legal do fornecedor e seus empregados diretamente envolvidos na contratação; h) cronograma de execução física e financeira; i) forma de pagamento, que deverá ser efetuado em função dos resultados obtidos; e j) definição de mecanismos formais de comunicação a serem utilizados para troca de informações entre a contratada e a Administração; III - definição, pela Área de Tecnologia da Informação, da estratégia de independência do órgão ou entidade contratante com relação à contratada, que contemplará, pelo menos: a) forma de transferência de tecnologia; e b) direitos de propriedade intelectual e direitos autorais da Solução de Tecnologia da Informação, documentação, modelo de dados e base de dados, justificando os casos em que tais direitos não vierem a pertencer à Administração Pública; IV - indicação, pela Área de Tecnologia da Informação, do Gestor do Contrato; V - definição, pela Área de Tecnologia da Informação, das responsabilidades da contratada, que não poderá se eximir do cumprimento integral do contrato no caso de subcontratação; VI - elaboração, pela área competente, com apoio da Área de Tecnologia da Informação, do orçamento detalhado, fundamentado em pesquisa no mercado, a exemplo de: contratações similares, valores oficiais de referência, pesquisa junto a fornecedores ou tarifas públicas; VII - indicação, pelo Requisitante do Serviço, da fonte de recursos para a contratação e a estimativa do impacto econômico financeiro no orçamento do órgão ou entidade; e VIII - definição, pela Área de Tecnologia da Informação, dos critérios técnicos de julgamento da proposta para a fase de Seleção do Fornecedor, observando o seguinte: a) utilização de critérios correntes no mercado; b) a Análise de Viabilidade da Contratação; c) vedação da indicação de entidade certificadora, exceto nos casos previamente dispostos em normas do governo federal; d) o fator desempenho não pode ser pontuado com base em atestados relativos à duração de trabalhos realizados pelo licitante; e) quando necessário para a comprovação da aptidão, pode se considerar mais de um atestado relativo ao mesmo quesito de capacidade técnica; f) vedação da pontuação progressiva de mais de um atestado para o mesmo quesito de capacidade técnica; e g) os critérios de pontuação devem ser justificados em termos do benefício que trazem para o contratante. § 1º A aferição de esforço por meio da métrica homens-hora apenas poderá ser utilizada mediante justificativa e sempre vinculada à entrega de produtos de acordo com prazos e qualidade previamente definidos. § 2º É vedado contratar por postos de trabalho alocados, salvo, excepcionalmente, mediante justificativa devidamente fundamentada. Neste caso, é obrigatória a comprovação de resultados compatíveis com o posto previamente definido. § 3º Nas licitações do tipo técnica e preço, é vedado: I - incluir critérios de pontuação técnica que não estejam diretamente relacionados com os requisitos da Solução de Tecnologia da Informação a ser contratada ou que frustrem o caráter competitivo do certame; e II - fixar os fatores de ponderação das propostas técnicas e de preço sem justificativa. § 4º Nas licitações do tipo técnica e preço, deve-se: I - incluir, para cada atributo técnico da planilha de pontuação, sua contribuição percentual com relação ao total da avaliação técnica; e II - proceder a avaliação do impacto de pontuação atribuída em relação ao total, observando se os critérios de maior peso são de fato os mais relevantes e se a ponderação atende ao princípio da razoabilidade.
P á g i n a | 172
§ 5º A Estratégia de Contratação deverá ser aprovada e assinada pelo Requisitante do Serviço e pela Área de Tecnologia da Informação. Art. 15. A Estratégia da Contratação será entregue ao Gestor do Contrato para subsidiar a Análise de Riscos da contratação. Art. 16. A Análise de Riscos deverá ser elaborada pelo Gestor do Contrato, com o apoio da Área de Tecnologia da Informação e do Requisitante do Serviço, observando o seguinte: I - identificação dos principais riscos que possam comprometer o sucesso do processo de contratação; II - identificação dos principais riscos que possam fazer com que os serviços prestados não atendam às necessidades do contratante, podendo resultar em nova contratação; III - identificação das possibilidades de ocorrência e dos danos potenciais de cada risco identificado; IV - definição das ações a serem tomadas para amenizar ou eliminar as chances de ocorrência do risco; V - definição das ações de contingência a serem tomadas caso o risco se concretize; e VI - definição dos responsáveis pelas ações de prevenção dos riscos e dos procedimentos de contingência. Parágrafo único. Em decisão fundamentada a partir da Análise de Riscos poderá o Gestor do Contrato propor à Área de Tecnologia da Informação a revisão da Estratégia da Contratação. Art. 17. O Termo de Referência ou Projeto Básico será construído, pelo Gestor do Contrato, com apoio do Requisitante do Serviço e da Área de Tecnologia da Informação, a partir da Estratégia de Contratação, e conterá, no mínimo, as seguintes informações: I - definição do objeto; II - fundamentação da contratação; III - requisitos do serviço; IV - modelo de prestação dos serviços; V - elementos para gestão do contrato; VI - estimativa de preços; VII - indicação do tipo de serviço; VIII - critérios de seleção do fornecedor; e IX - adequação orçamentária. Art. 18. O Termo de Referência ou Projeto Básico, a critério do Requisitante do Serviço, será disponibilizado em consulta ou audiência pública para que se possa avaliar a completude e a coerência da especificação dos requisitos e a adequação e a exeqüibilidade dos critérios de aceitação. SEÇÃO II SELEÇÃO DO FORNECEDOR Art. 19. A fase de Seleção do Fornecedor observará as normas pertinentes, incluindo o disposto na Lei nº 8.666, de 1993, na Lei nº 10.520, de 2002, no Decreto nº 2.271, de 1997, no Decreto nº 3.555, de 2000, no Decreto nº 3.931, de 2001 e no Decreto Nº 5.450, de 2005. SEÇÃO III GERENCIAMENTO DO CONTRATO Art. 20. A fase de Gerenciamento do Contrato visa acompanhar e garantir a adequada prestação dos serviços durante todo o período de execução do contrato e envolve as seguintes tarefas: I - início do contrato, que abrange: a) elaboração, pelo Gestor do Contrato, de um plano de inserção da contratada que contemple: 1. o repasse de conhecimentos necessários para a execução dos serviços à contratada; e 2. a disponibilização de infra-estrutura à contratada, quando couber;
P á g i n a | 173 b) reunião inicial entre o Gestor do Contrato, Área de Tecnologia da Informação, Requisitante do Serviço e a contratada, cuja pauta observará, pelo menos: 1. assinatura do termo de compromisso de manutenção de sigilo e ciência das normas de segurança vigentes no órgão ou entidade; e 2. esclarecimentos relativos a questões operacionais e de gerenciamento do contrato; II - encaminhamento formal de demandas pelo Gestor do Contrato ao preposto da contratada por meio de Ordens de Serviço, que conterão: a) a definição e a especificação dos serviços a serem realizados; b) o volume de serviços solicitados e realizados segundo as métricas definidas; c) resultados esperados; d) o cronograma de realização dos serviços, incluídas todas as tarefas significativas e seus respectivos prazos; e) a avaliação da qualidade dos serviços realizados e as justificativas do avaliador; e f) identificação dos responsáveis pela solicitação, avaliação da qualidade e ateste dos serviços realizados, que não podem ter vínculo com a empresa contratada; III - monitoramento da execução, a cargo do Gestor do Contrato, com apoio do Requisitante do Serviço e da Área de Tecnologia da Informação, que consiste em: a) recebimento mediante análise da avaliação dos serviços, com base nos critérios previamente definidos; b) ateste para fins de pagamento; c) identificação de desvios e encaminhamento de demandas de correção; d) encaminhamento de glosas e sanções; e) verificação de aderência às normas do contrato; f) verificação da manutenção da necessidade, economicidade e oportunidade da contratação; g) verificação da manutenção das condições classificatórias, pontuadas e da habilitação técnica; h) manutenção do Plano de Sustentação; i) comunicação às autoridades competentes sobre a proximidade do término do contrato, com pelo menos 60 (sessenta) dias de antecedência; j) manutenção dos registros de aditivos; k) encaminhamento às autoridades competentes de eventuais pedidos de modificação contratual; e l) manutenção de registros formais de todas as ocorrências da execução do contrato, por ordem histórica; IV - encerramento e transição contratual, que deverá observar o Plano de Sustentação. Parágrafo único. O registro das tarefas mencionadas neste artigo deverá compor o Histórico de Gerenciamento do Contrato. Art 21. Os softwares resultantes de serviços de desenvolvimento deverão ser catalogados pelo Gestor do Contrato e disponibilizados no Portal do Software Público Brasileiro de acordo com regulamento do órgão central do SISP. CAPÍTULO III DAS DISPOSIÇÕES FINAIS Art. 22. Aplica-se subsidiariamente às contratações de que trata esta norma o disposto na Instrução Normativa nº 02, de 30 de abril de 2008, que disciplina as contratações de serviços gerais. Art. 23. As Áreas de Compras, Licitações e Contratos dos órgãos e entidades apoiarão as atividades do processo, de acordo com as suas atribuições regimentais. Art. 24. A Secretaria de Logística e Tecnologia da Informação poderá expedir instrumentos complementares a esta Instrução Normativa. Art. 25. Esta Instrução Normativa entra em vigor em 2 de janeiro de 2009, não se aplicando aos contratos em andamento e seus aditivos.
P á g i n a | 174
EU VOU PASSAR!!! \o/