Fazer o
Transcrição
Fazer o
CENTRO UNIVERSITÁRIO DO TRIÂNGULO INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO INTERNET PROTOCOLO VERSÃO 4 PARA INTERNET PROTOCOLO VERSÃO 6 ALESSANDRA BOAVENTURA RABELO Uberlândia, Dezembro/1998 CENTRO UNIVERSITÁRIO DO TRIÂNGULO INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO ALESSANDRA BOAVENTURA RABELO INTERNET PROTOCOLO VERSÃO 4 PARA INTERNET PROTOCOLO VERSÃO 6 Monografia apresentada ao Curso de Ciência da Computação do Centro Universitário do Triângulo, como requisito básico à obtenção do grau de Bacharel em Ciência da Computação, sob a orientação do Prof. Henrique Barbosa Leite Uberlândia, Dezembro/1998 INTERNET PROTOCOLO VERSÃO 4 PARA INTERNET PROTOCOLO VERSÃO 6 ALESSANDRA BOAVENTURA RABELO Monografia apresentada ao Curso de Ciência da Computação do Centro Universitário do Triângulo, como requisito básico à obtenção do grau de Bacharel em Ciência da Computação. Henrique Barbosa Leite, Msc. (Orientador) Marcos Rezende, Msc. (Coordenador) Marcelo Rodrigues de Sousa, Msc. Aléx Dias, Msc. (Avaliador) (Avaliador) Uberlândia, Dezembro/1998 SUMÁRIO Resumo.......................................................................................................................................................... 1. Introdução.......................................................................................................................................... 2. Arquitetura Internetworking............................................................................................. 2.1 Breve história da Internet....................................................................................................... 2.2 Protocolos da Internet e seus padrões........................................................................... 2.3 Conceitos e aplicações da arquitetura internet..................................................... 2.4 Arquiteturas TCP/IP e as demais.......................................................................................... 2.5 O Internet Protocol (IP)............................................................................................................. 2.6 IP Riscos de Segurança............................................................................................................... 2.7 Conclusão.......................................................................................................................................... 3. Endereçamento internet.......................................................................................................... 3.1 Intercomunicabilidade............................................................................................................. 3.1.1 Centro de Informação de Rede................................................................................................... 3.2 Classes do endereçamento..................................................................................................... 3.2.1 Rede de Classe A........................................................................................................................... 3.2.2 Rede de Classe B........................................................................................................................... 3.2.3 Rede de Classe C........................................................................................................................... 3.2.4 Rede de Classe D........................................................................................................................... 3.2.5 Rede de Classe E........................................................................................................................... 3.3 Sub-redes............................................................................................................................................. 3.4 Endereços Unicast......................................................................................................................... 3.5 Endereços Multicast.................................................................................................................. 3.6 Endereços Broadcasting........................................................................................................... 3.7 Desvantagens do Endereçamento IP................................................................................. 3.8 Conclusão.......................................................................................................................................... 4. Protocolo IPv4.............................................................................................................................. 4.1 Encapsulamento de datagrama........................................................................................ 4.2 Unidade máxima de transmissão...................................................................................... 4.3 Fragmentação e montagem do datagrama IP......................................................... 4.4 Roteamento de datagramas IP........................................................................................... 4.4.1 Inconvenientes das tabelas de roteamento.............................................................................. 4.4.2 Internet Message Control Protocol ( ICMP ).......................................................................... 4.4.2.1 Principais tipos de mensagens de erro........................................................................................ 4.5 Conclusão.......................................................................................................................................... 5. A nova versão do protocolo IP......................................................................................... 5.1 Objetivos da nova versão........................................................................................................ 5.2 Tipos de endereços........................................................................................................................ 5.2.1 Endereços Unicast........................................................................................................................ 5.2.2 Endereços Anycast........................................................................................................................ 5.2.3 Endereços Multicast..................................................................................................................... 5.3 Novo formato................................................................................................................................. 5.3.1 Formato da base do cabeçalho IPv6........................................................................................ 5.3.2 Descrição dos campos.................................................................................................................. 5.4 Novas Funcionalidades............................................................................................................ 5.4.1 Autoconfiguração......................................................................................................................... 5.4.2 Qualidade de serviços.................................................................................................................. 5.4.3 Prioridade...................................................................................................................................... 5.5 Cabeçalhos de Extensão.......................................................................................................... 5.5.1 Cabeçalhos Hop-by-Hop e destino............................................................................................ 5.5.2 Cabeçalho de fragmentação....................................................................................................... 5.5.3 Cabeçalho genérico de roteamento.......................................................................................... 5.5.4 Cabeçalho de roteamento tipo 0............................................................................................... 5.5.5 Segurança...................................................................................................................................... 5.5.6 Autoconfiguração......................................................................................................................... 5.5.7 Autenticação.................................................................................................................................. 5.5.8 Roteamento IPv6........................................................................................................................... 5.5.9 Suporte a serviços em tempo real.............................................................................................. 5.5.10 Suporte a multiprotocolos e mobilidade............................................................................... 5.6 Protocolo de Controle de Mensagens Internet........................................................ 5.7 Conclusão.......................................................................................................................................... 6. Considerações para a migração....................................................................................... 6.1 Transição IPv4 / IPv6...................................................................................................................... 6.2 Mecanismos desenvolvidos para a migração........................................................... 6.3 Conclusão.......................................................................................................................................... 7. Conclusão......................................................................................................................................... Bibliografia.......................................................................................................................................... Referências Bibliografias.......................................................................................................... Apêndice A................................................................................................................................................ Apêndice B................................................................................................................................................ Resumo O Internet Protocol (IP) é um protocolo que faz a entrega de datagramas sem conexão, não garantindo a entrega, nem a ordem de envio. Possibilita a comunicação entre máquinas completamente diferentes, ou seja com hardwares e softwares distintos. O datagrama IP atual (IPv4), não necessita de conexão, não possibilita qualquer garantia de entrega através de mecanismos internos. E apesar de não garantir a segurança é o protocolo mais utilizado atualmente, adotado comercialmente por diversos ambientes e aceito por vários seguimentos da sociedade. O crescimento exponencial apresentado pela rede Internet, uma estrutura cliente-servidor muito robusta, leva seus projetistas a novos estudos para melhorar, oferecer melhores serviços, novas tecnologias são incluídas e as antigas ou se adaptam a elas ou tornam-se obsoletas. O uso da nova versão do protocolo (IPv6 - Internet Protocol Versão 6) é que dará suporte ao crescimento da rede Internet, ao aumento das funcionalidades e a novas aplicações. E de certa forma lança um enorme desafio, que é a interoperabilidade entre as duas versões, abrindo um vasto campo de investigação e desenvolvimento tecnológico. O estudo de mecanismos e protocolos de endereçamento, encaminhamento, qualidade de serviço, segurança e gestão é feito visando o funcionamento em ambientes IPv6. A avaliação do desempenho e funcionalidade de diferentes soluções, a capacidade de acomodar o crescimento das redes, o aumento do leque de aplicações, e a transição entre protocolos altamente utilizados e novos e ainda em desenvolvimento, constitui um desafio técnico-científico que será, alvo de uma grande e importante pesquisa científica e técnica internacional. Este trabalho tem como principal objetivo mostrar o protocolo mais usado atualmente, e o seu possível sucessor. 1. Introdução “A comunicação é uma das maiores necessidades da sociedade humana desde os primórdios de sua existência. Conforme civilizações se espalhavam, ocupando áreas cada vez mais dispersas geograficamente, a comunicação a longa distância se tornava cada vez mais uma necessidade e um desafio. Formas de comunicação através de sinais de fumaça ou pombos-correio foram as maneiras encontradas por nossos ancestrais para tentar aproximar as comunidades distantes.” (Soares, Lemos e Colcher, 1995). Com o passar dos tempos o sistema de comunicação foi mudando, ou seja modernizando-se e atualmente a mesma é feita de uma forma nunca imaginada pelos nossos ancestrais. Primeiro foram os telégrafos utilizados no século XIX, que codificavam mensagens em cadeias de símbolos binários, e então eram transmitidas manualmente por um operador através de um dispositivo gerador de pulsos elétricos. Desde esta época a comunicação sofreu muita evolução dando origem a dispositivos como: telefone, rádio, televisão. Esta evolução deu-se também de uma forma surpreendente, nos equipamentos de processamento e armazenamento de informações. E a conjunção entre estas duas tecnologias - comunicação e processamento de informação - abriu definitivamente as portas para as novas formas de comunicação existentes atualmente. Com o advento da computação obteve-se muitas facilidades, que gerarão ao mesmo tempo grandes dificuldades e limitações tecnológicas. Usávamos sistemas computacionais centralizados que apresentavam uma grande dificuldade de interligação entre os diferentes ambientes. A técnica de comunicação de dados a distância (teleprocessamento), veio para difundir as facilidades computacionais, mas continuávamos com o problema de interligação entre as diversas tecnologias. Temos dois aspéctos importantes no que diz respeito a evolução tecnológica, o primeiro foi o lançamento do Personal Computer (PC), que contou na época com uma demanda de usuários surpreendente. O segundo foi o advento das Redes Locais (LANs), que necessitavam de interconexão entre si ou entre ambientes de grande porte. Em resposta as necessidades de comunicação e troca de dados, deu-se o inicio ao projeto da Internet, pela Agência de Projetos e Pesquisas Avançadas de Defesa, que desenvolveu um conjunto de protocolos para tratar informações transportadas, sem dependência do tipo de hardware, dados roteados entre as redes e com transparência quanto ao tipo de aplicação. Eis que surge então a tecnologia Internetworking, que veio com intuito de interconectar diversas redes físicas, com diferentes características, de forma transparente e com uma arquitetura não proprietária. Os protocolos responsáveis pela flexibilidade e operacionalidade da arquitetura são o TCP (Transmission Control Protocol) e o IP (Internet Protocol), conhecidos como arquitetura TCP/IP, arquitetura atualmente adotada comercialmente por vários ambientes como UNIX, NOVELL, WINDOWS NT, OS/2 e aceita pelos vários segmentos da sociedade. Arquitetura esta que permite o compartilhamento de informações e interligando milhares de organizações militares, educacionais, científicas e comerciais que compartilham dados, correio eletrônico (e-mail), e outros serviços, fazendo com que muitas pessoas e organizações dependam desta tecnologia. Com uma estrutura cliente-servidor (client-server) muito robusta, especialmente em se tratando de WAN (wide-area network ou redes de longo alcance), inclui uma série de padrões que especificam como os computadores vão se comunicar, cria convenções para a interconexão de redes e para o roteamento através dessas conexões. “A implementação de redes corporativas nas empresas é um assunto complexo, devido à grande quantidade de componentes e diversas tecnologias existentes. A escolha da melhor tecnologia, para atender uma determinada necessidade, requer análises, projetos e testes daqueles que são responsáveis por áreas tecnológicas. Considerando que a integração entre as empresas, através de redes de telecomunicações aplicadas à informática, é fundamental no contexto atual de globalização de mercado.” (Sousa, 1996). Com este trabalho tenho o objetivo de mostrar o protocolo mais usado atualmente para este fim. Na Internet, um mundo muito dinâmico, onde novas tecnologias são incluídas e as antigas ou se adaptam a elas ou tornam-se obsoletas, o protocolo usado atualmente é o IPv4, que conseguiu acomodar todas as mudanças, tornando-se cada vez mais popular. Em 1991, membros do IETF (Internet Engineering Task Force), concluem que o crescimento exponencial apresentado pela rede esgotaria em breve os endereços disponíveis. Deu-se o início dos estudos para desenvolver um sucessor para o IPv4. Após avaliações são selecionados três possíveis candidatos, a partir destas três propostas são selecionados os pontos positivos e gerarada a recomendação para a versão 6 do IP. De lá para cá várias Drafts, RFCs foram publicadas, e já existem algumas implementadas ou em funcionamento. O fenômeno do crescimento exerce uma pressão muito grande e constante sobre a infra-estrutura da Internet. Obrigando uma reestruturação, melhora de desempenho, segurança, facilidades para o usuário na configuração e administração de redes. Com a implementação da nova versão do protocolo teremos mais espaço de endereçamento, mais níveis de hierarquia, maior número de nodos endereçáveis, autoconfiguração destes nodos, compatibilidade e interoperabilidade com a antiga versão. Uma das características obrigatórias para a implementação do novo protocolo é a chamada flexibilidade que permite a inclusão de cabeçalhos de suporte para autenticação, integridade de dados e confiabilidade. Estas características, possibilitam facilidades muito grandes no que se refere a implementações futuras. A nova versão do protocolo reflete o amadurecimento da tecnologia de redes, e o novo protocolo tem em vista uma verdadeira rede mundial com múltiplos usos. Acredita-se atualmente que o uso do novo protocolo e uma reestruturação da Internet solucione boa parte dos problemas atualmente enfrentados pelos usuários. Estima-se que o processo de migração seja simples e claro para os usuários da rede. Mas quando consideramos o número de usuários que dependem desta rede encontramos um ponto muito sério no que diz respeito a migração. Notamos que o número de nodos conectados torna impossível e inviável uma migração simultânea total, pois para que isto ocorra seria preciso que a rede ficasse totalmente fora do ar por um determinado tempo. Os usuários não estão dispostos a este sacrifício, o que é totalmente compreensível, se considerarmos que alguns dependem totalmente desta rede. Fica mas fácil visualizar a migração ao considerarmos a compatibilidade disponibilizada pela nova versão. Mas devemos considerar também que uma alteração no protocolo pode trazer problemas para as aplicações pré existentes. Solucionando-se estes problemas temos atualmente duas formas interessantes para a migração do protocolo, que são: manter as duas versões e o uso de túneis de endereçamento. Roteadores e máquinas podem atualizar seu protocolo, sem obrigar todos os usuários da rede a fazerem o mesmo. Com a única restrição de que os servidores de DNS tenham sua versão atualizada antes. A popularidade do atual protocolo pode trazer sérios problemas no que se refere a uma migração, pois isto contribui para que uma substituição seja encarada como algo perigoso, ou seja podem ocorrer críticas, ou até mesmo boicotes. Tem uma frase que reflete perfeitamente este sentimento: Se está funcionando, não devíamos mudar. Espera-se que novas funcionalidades, facilidades e serviços venham para extinguir estes pensamentos. Acredita-se que o chamado custo benefício tende a ser um bom estímulo para a migração. Benefícios como: suporte a bilhões de hosts, redução das tabelas de roteamento, possibilidade de expansão (cabeçalhos de extensão), garantias de segurança (autenticação e privacidade), permissão de multicast, autoconfiguração, permissão para que uma máquina mude de lugar fisicamente e não altere seu endereço, criação do conceito de cabeçalhos opcionais, suporte a serviços em tempo real, etc. A autoconfiguração é uma melhoria que deve ser levada em conta, pois ao possibilitar plug-and-play de máquinas a nova versão minimiza a intervenção humana no processo de configuração da rede, o que serve para minimizar ou até extinguir a possibilidade de ocorrência de erros. Esta autoconfiguração será de grande importância no que diz respeito a computação móvel. Este trabalho tem como objetivo mostrar a evolução sofrida pelo Protocolo Internet (IP), desde a sua criação até os dias de hoje dando ênfase aos seus pontos fortes e fracos, bem como mostrando alterações sofridas pelo mesmo. Mostra também o porque de uma nova versão que solucione problemas relacionados às limitações encontradas. O que serve de suporte às grandes mudanças é acreditar que estas serão válidas, não se pode melhorar se não tentamos. As mudanças seriam inúteis e incoerentes se não estivéssemos dispostos a aceitá-las e adotá-las. Este trabalho se encontra dividido em seis capítulos, sumarizados a seguir: Capítulo 2 - Arquitetura Internetworking - Breve introdução a internet, seus protocolos e problemas enfrentados. Capítulo 3 - Endereçamento Internet - Modos de endereçamento de datagramas (pacotes) usados na internet, dificuldades, facilidades, vantagens e desvantagens deste endereçamento. Capítulo 4 - Protocolo IPv4 - Atual arquitetura adotada comercialmente por diversos ambientes e aceita por vários seguimentos da sociedade, descrito detalhadamente. Capítulo 5 - A nova versão do protocolo IP - Detalha o possível protocolo a substituir o atual, mostrando que o custo benefício apresentado é favorável à migração. Capítulo 6 - Considerações para a migração - Antes de se pensar em mudança devemos considerar alguns fatores que são levantados neste capítulo. 2. Arquitetura Internetworking Este capítulo nos mostra uma breve história sobre a internet, os protocolos que a sustentam, seus pontos fracos e fortes, o modo em que afetam a comunicação e a troca de dados e informações usando esta rede que cresce de forma assustadora e requer uma atenção cada vez mais especial. 2.1 Breve história da Internet Ao falarmos da história da Internet, temos que dar ênfase ao crescimento exponencial apresentado por esta rede mundial, que tem levado diferentes segmentos da sociedade à obtenção de muitas facilidades e ao mesmo tempo grandes dificuldades e limitações relacionadas a esta explosão de crescimento tecnológico. Inicialmente sistemas computacionais eram centralizados e havia uma grande dificuldade para interligar os diferentes ambientes. Com o surgimento do teleprocessamento, técnica de comunicação de dados a distância, obteve-se uma difusão das facilidades computacionais. Mas ainda encontrávamos uma grande dificuldade para interligar divers[m1] as redes de teleprocessamento com seus diversos protocolos e diferentes arquiteturas. Um aspecto muito importante no que diz respeito a esta evolução tecnológica, foi o lançamento do Personal Computer (PC), que contou com uma demanda de usuários surpreendente. Outro aspécto muito importânte foi o advento das Redes Locais (LANs), que necessitavam de interconexão entre si ou entre ambientes de grande porte. Em resposta as necessidades de comunicação e troca de dados, deu-se o início do projeto da Internet, pela Agência de Projetos e Pesquisas Avançadas de Defesa (DARPA - Defence Advanced Reserch Projects Agency, órgão do departamento de defesa dos EUA). O DARPA desenvolveu um conjunto de protocolos para tratar informações transportadas, sem dependência do tipo de hardware, dados roteados entre as redes e com transparência quanto ao tipo de aplicação. Temos então o surgimento da tecnologia Internetworking (Internetting), que vem fazer a interconexão de diversas redes físicas com características diferentes. Esta interconexão é feita de forma transparente ao usuário, com especificações públicas e genéricas permitindo a implementação por vários fabricantes, ou seja sem compromisso com fabricante específico (arquitetura não proprietária). Isto faz com que do ponto de vista do usuário a Internet seja vista como um conjunto de softwares aplicativos que lhe possibilita a comunicação com vários sistemas computacionais, sem se preocupar se são compatíveis ou não. Os protocolos responsáveis pela flexibilidade e operacionalidade da arquitetura são o TCP (Transmission Control Protocol) e o IP (Internet Protocol), conhecidos como arquitetura TCP/IP. Esta arquitetura é atualmente adotada comercialmente por vários ambientes como UNIX, NOVELL, WINDOWS NT, OS/2 e aceita pelos vários segmentos da sociedade, permitindo assim o compartilhamento de informações e interligando milhares de organizações militares, educacionais, científicas e comerciais que compartilham dados, correio eletrônico (e-mail), e outros serviços. O que faz com que atualmente muitas pessoas e organizações dependam desta tecnologia. A mesma possui uma estrutura cliente-servidor (client-server) muito robusta, especialmente em se tratando de WAN (wide-area network ou redes de longo alcance). Incluindo uma série de padrões que especificam como os computadores vão se comunicar, cria convenções para a interconexão de redes e para o roteamento através dessas conexões. 2.2 Protocolos da Internet e seus padrões Protocolos e padrões da Internet são propostos através de iniciativas individuais de organizações ou profissionais, que submetem suas propostas através de RFCs (Request for Comments - Pedido para comentários). Estas RFCs passariam por um avaliação/estudo minucioso e de acordo com os resultados a mesma poderia até virar um padrão. A primeira RFC considerada padrão foi a RFC733. Logo caso tenhamos alguma idéia para melhorar o protocolo ou uma tecnologia nova para o beneficio desta rede mundial, a Internet, devemos submeter a mesma como RFC, dependendo de diversos fatores isto pode ou não se tornar um padrão adotado mundialmente. O órgão responsável pela moderação com relação ao lançamento de RFCs é o RFCEditor. O Apêndice A mostra as RFCs mais usadas atualmente na Internet. 2.3 Conceitos e aplicações da arquitetura internet Através da arquitetura TCP/IP são disponibilizados alguns serviços aos usuários. Possibilitando também o uso de outras ferramentas que existem no mercado, não criando nenhuma restrição quanto ao uso. Alguns dos serviços oferecidos estão relacionados abaixo, bem como seus objetivos: a) Correio eletrônico - tem como objetivo viabilizar o envio de mensagens para um usuário ou grupos de usuários com interesses comuns, sinalizando ao destinatário a recepção de correspondência. O principal aplicativo utilizado para executar este serviço em redes TCP/IP é o SMTP (Simple Mail Transfer Protocol). b) Transferência de arquivos - quando se trata de arquivos pequenos e rápidas mensagens o próprio correio se encarrega de enviá-las. Mais ao se transferir arquivos maiores pode-se usar FTP (File Transfer Protocol), para o transporte, compatibilizando assim as diferentes aplicações e garantindo integridade dos dados (tabelas de banco de dados, imagens, programas, etc.). c) Login remoto - para que uma máquina local conecte-se a uma outra remota, usa-se o telnet, que estabelece uma sessão interativa entre as mesmas. Dando ao usuário a impressão de que o seu terminal, faz parte do sistema remoto ao qual está conectado, como em uma conexão local, ou seja de forma totalmente transparente para o usuário. d) Serviços internet a nível de transporte de rede • Serviços de entrega de dados sem conexão - entrega de mensagens através de rotas baseadas no endereçamento implementado em cada segmento, sendo que a integridade dos dados não é garantida em nenhum momento, ou seja um serviço sem qualidade, o que pode ser proporcionado por ferramentas auxiliares, sem nenhuma restrição. A grande vantagem‚ para se usar esta ferramenta é a simplicidade na interface com o hardware utilizado, representando uma alta flexibilidade de uso em diversas plataformas de hardware diferentes. O IP é o protocolo responsável por este serviço. • Serviços de transporte de dados confiáveis – este serviço é fornecido por um nível superior (transporte), além de prestar este serviço deve também controlar fluxo de dados, estabelecer conexões entre aplicações remotas, permitindo assim a troca de dados de maneira confiável. O TCP é o responsável por estes serviços. 2.4 Arquiteturas TCP/IP e as demais A unidade de transferência de dados (datagrama) pode ser encapsulada em diversos protocolos de nível inferior (enlace do OSI e físico para a internet), com simplicidade na interface entre ambos o que gera uma independência completa do IP com relação ao nível inferior. O IP provê um endereçamento distinto (universal) para cada host conectado à internet, incluso ao datagrama e usado na escolha da melhor rota entre origem e destino, ou seja um endereço único para cada nodo. Provê também a implementação de um conjunto de facilidades para o usuário como correio eletrônico (SMTP - Simple Mail Transfer Protocol), FTP (File Transfer Protocol), telnet, etc. O TCP implementa um controle de fluxo entre diversas canalizações lógicas e respectivas aplicações, bem como um controle de erros que implementa confirmações dos dados recebidos pelo destino. O endereçamento internet visa interconectar redes virtualmente, mantendo transparência quanto a suas finalidades, tipo de equipamento, modelo ou fabricante, mantendo o padrão e interoperalidade. 2.5 O Internet Protocol (IP) O Internet Protocol é a base do Transmission Control Protocol/Internet Protocol (TCP/IP), ou seja um conjunto de protocolos criados para possibilitar a comunicação entre computadores em ambientes de redes locais e remotas. Para contactar outras máquinas usamos conexões IP que são controladas através de endereços IP, ou melhor números únicos que identificam o nodo na rede. Conexões estas que possibilitam qualquer máquina comunicar-se com outra, bastando para isto que exista um caminho entre as duas. O IP é sem dúvida o protocolo de rede mais usado por corporações, governos e Internet. Apoia várias aplicações pessoais, técnicas, empresariais, de correio eletrônico e transferência de dados, voz e imagens. O envio de datagramas IP não requer uma rota predefinida, o mesmo é redirecionado para um nodo mais próximo do destino. Quando um nodo recebe um datagrama este verifica se ele próprio não é o destino, após esta verificação o pacote é aceito ou redirecionado a um nodo mais próximo ainda do destino. Procedimento este que se repete até que o destino seja encontrado, possibilitando assim o redirecionamento no caso de recurso não disponível. No caso de datagramas com endereços locais, os mesmos são diretamente entregues. Ao trabalharmos com datagramas muito grandes deparamos com uma limitação, pois de acordo com o hardware usado tem-se um tamanho máximo possível para transmissão (Maximum Transfer Unit MTU). Caso este tamanho seja excedido, o datagrama necessita ser fragmentado em pacotes menores, possibilitando assim o seu envio. Um datagrama fragmentado sofre um reagrupamento dos fragmentos quando chega ao destino, respeitando a ordem. 2.6 IP Riscos de Segurança Atualmente o IP não se preocupa em cuidar, internamente de certas questões como: segurança, autenticação, confiabilidade, etc. Quando se pensou inicialmente em uma rede com alcance mundial, não se imaginava a explosão de crescimento, e nem a qualidade de serviço. Algumas funcionalidades são oferecidas por ferramentas à parte, um exemplo são os firewalls. Soluções relacionadas com segurança de protocolos baseados em IP, que se encontram disponíveis em larga escala no mercado. Atualmente, nesta área temos dois tipos de soluções, as comerciais e as de uso livre. E mesmo contando com inúmeras ferramentas para segurança disponíveis na internet, é difícil ou impossível manter os hackers a distância. Um problema grave enfrentado nesta área é que da mesma forma que existem ferramentas que garantem a segurança, existem produtos comerciais capazes de enganar (burlar) os softwares de segurança. Como exemplo podemos citar o watcher (guarda de IP), que é capaz de capturar conexões IP. O uso deste possibilita aos administradores (hackers) observar, encerrar e controlar (seqüestrar, monitorar) sessões de Internet. O usuário é colocado em estado de espera permanente e o administrador (hacker) assume o controle da conexão. Outra situação perigosa enfrentada por todos os que usam a Internet é que, ao usarmos algum aplicativo e por algum motivo necessitamos disponibilizar informações administrativas, contatos técnicos de organizações com telefones, endereços eletrônicos (e-mail) e físicos, estamos ao mesmo tempo nos protegendo e fornecendo informações preciosas aos hakers, que usam freqüentemente estes dados básicos nos ataques as redes. 2.7 Conclusão Esta rede chamada Internet, projetada para fazer uma comunicação quase que restrita, atualmente é de acesso global e vem apresentando um enorme crescimento o que da origem a vários problemas. Um dos problemas considerados críticos atualmente é que os endereços disponíveis estão a cada dia mas escassos, este é discutido mas profundamente no próximo capítulo. 3. Endereçamento internet “O endereçamento internet visa interconectar Redes de forma virtual, com o cuidado de manter transparência quanto a: finalidades, tipo do equipamento, modelo ou fabricante, desde que se mantenha o padrão comum do endereçamento internet.” (Gasparini, 1993). Para um melhor entendimento tomaremos como exemplo a atual versão usada (versão 4). 3.1 Intercomunicabilidade A intercomunicabilidade (Serviço de Comunicação Universal), ou seja facilidade de se ter uma comunicação de forma transparente entre vários Hosts de diferentes tipos, modelos e fabricantes, LANs, WANS, Microcomputadores, etc. Para que isto ocorra faz-se necessário estabelecer regras e métodos padronizados (protocolos), com eficiência comprovada e aceitação global. Hosts podem ser identificados por nomes, endereços, ou rotas de acesso, por isto necessitamos classificar as identificações de forma comum. O TCP/IP é um padrão de endereçamento compacto e eficiente que possibilita esta intercomunicabilidade. O IP um protocolo que não necessita de conexão, é configurado e parametrizado via software. A versão atual define um string de 32 bits para endereçamento de cada HOST, cada campo pode assumir valores de 0 a 255 (o que corresponde a um byte do endereço IP na forma de bits). Um ponto básico neste tipo de endereçamento é que cada HOST deve ter seu endereço único para qualquer tipo de comunicação, e este deve ser conhecido pelos demais HOSTs envolvidos. O órgão que define este endereço de rede é o chamado InterNIC, e o número do equipamento pelo administrador de rede responsável. Abaixo temos um exemplo de endereço IP: Figura 3.1.1 - Endereço IP O IP consiste basicamente em NetID que identifica a rede que o HOST pertence, e o HOST ID que identifica o HOST da rede. Portanto em se tratando de uma mesma rede todos os HOSTs tem o mesmo NetID. 3.1.1 Centro de Informação de Rede O Centro de informação de rede (Network Information Center - NIC), tem como objetivo assegurar a intercomunicabilidade entre as diversas redes, evitando repetição de endereços bem como as suas conseqüências delegando endereços IP aos vários usuários. Devemos padronizar os endereços IP através do NIC para preservar a interoperabilidade com os vários sistemas e redes distintas. 3.2 Classes do endereçamento As redes à serem conectadas tem tamanhos diferentes, podendo ser desde redes locais de computadores de pequeno porte, até redes públicas interligando milhares de hosts. Para atender melhor as necessidades de organizações, bem como aproveitar melhor os endereços disponíveis, dividiu-se endereços em classes, que serão detalhadas a seguir. 3.2.1 Rede de Classe A Nas redes de classe A, o primeiro byte varia em valor decimal de 1 à 126, sendo que cada rede tem a capacidade de endereçar cerca de 16 milhões de hosts, 7 bits para NetID e 24 bits para HOST ID. Geralmente usado em redes de grande porte, como universidades. Atualmente não existem mais endereços de classe A disponíveis. Nesta classe o endereço da rede corresponde, somente ao primeiro byte. Temos então o endereço IP 50.100.240.10, que corresponde à máquina 100.240.10 na rede 50.0.0.0. Abaixo temos um esboço do que vem a ser um endereço de classe A: O 8 16 24 31 O Fixo Livre Livre Livre Tabela 3.2.1.1 - Rede de Classe A 3.2.2 Rede de Classe B Nas redes de classe B, os dois primeiros bytes variam em valor decimal de 128.1 à 191.255, sendo que cada rede tem a capacidade de endereçar cerca de 65 mil hosts, 14 bits para Net ID e 16 bits para HOST ID. Endereçamento geralmente usado em redes de médio à grande porte. Nesta classe o endereço da rede, corresponde aos dois primeiros bytes. Temos então o endereço IP 150.80.20.200 que corresponde à máquina 20.200 na rede 150.80.0.0. Abaixo temos um esboço do que vem a ser um endereço de classe B: O 1 0 8 Fixo 16 Livre 24 Livre 31 Livre Tabela 3.2.2.1 - Rede de Classe B 3.2.3 Rede de Classe C Nas redes de classe C, os três primeiros bytes variam em valor decimal de 192.1 à 223.254.254, sendo que cada rede endereça cerca de 254 hosts, 21 bits para Net ID e 8 bits para HOST ID. Nesta classe o endereço da rede, corresponde aos três primeiros bytes. Temos então o endereço IP 192.200.135.75 que corresponde à máquina 75 na rede 192.200.135.0. Abaixo temos um esboço do que vem a ser um endereço de classe C: O 8 1 1 o Fixo 16 Livre 24 Livre 31 Livre Tabela 3.2.3.1 - Rede de Classe C 3.2.4 Rede de Classe D Nas redes de classe D, os quatro primeiros bytes variam em valor decimal de 223 à 239 para a classe D. O endereço da rede corresponde aos quatro primeiros bytes. Utilizado para transmissão simultânea de pacotes para um grupo multicast, que é um conjunto de um ou mais equipamentos identificados por um endereço especial de destino (endereço multicast). Abaixo temos um esboço do que vem a ser um endereço de classe D: O 8 1 1 1 0 16 24 31 Multicast Address Tabela 3.2.4.1 - Rede de Classe E 3.2.5 Rede de Classe E Nas redes de classe E, o valor do primeiro byte é maior que 240, e estes endereçamentos estão reservados para uso futuro. Abaixo temos um esboço do que vem a ser um endereço desta classe: O 8 1 1 1 1 16 24 31 Uso futuro Tabela 3.2.5.1 - Rede de Classe E Obs.: Endereços 0.0.0.0 e 127.0.0.0, são reservados para funções especiais e nunca utilizados. Com exceção do endereço de rede 127.0.0.0, que é utilizado para Loopback (facilidade de teste), ou seja um datagrama com este endereço‚ é utilizado pelo HOST para testar sua interface de comunicação, o mesmo retorna a origem antes de passar pela rede. As demais classes reservam seu último endereço para Loopback. Endereços para Loopback vão ser melhor explicados mais para frente. Esta divisão dos endereços IP em classes pode ser entendida mais claramente na tabela abaixo, que é chamada Tabela Comparativa de Classes. Classe Endereços de rede Endereços de Exemplo equipamentos endereço A 1-126 (*) 0.0.1-255.255.254 (**) 25.2.3.15 B 128-191.255 0.0.1-255.254 (**) 130.26.58.2 C 192.0.0-223.255.255 1-254 (**) 200.21.235.68 D 224.0.0.0-239.255.255.255 (***) E reservado para uso futuro de 226.35.45.21 Tabela 3.2.5.1 - Tabela Comparativa de Classes. (*) redes reservadas 0.x.x.x usado para indicar que o endereço de origem é desconhecido. 127.x.x.x reservado para endereço loopback (127.0.0.1 próprio equipamento) (**) em cada rede existem endereços reservados: x.0.0.0 indica a própria rede de classe A x.x.0.0 indica a própria rede de classe B x.x.x.0 indica a própria rede de classe C x.255.255.255 broadcast da rede de classe A x.x.255.255 x.x.x.255 broadcast da rede de classe B broadcast da rede de classe C (***) endereçamento de multicast Em algumas organizações endereços da classe C não são suficientes, por causa do número de estações oferecidas e já os de classe B seriam pouco utilizados. Este mesmo raciocínio pode nos levar a má utilização de endereços da classe A isto porque não existem identificações para redes de pequeno e médio porte. 3.3 Sub-redes As sub-redes são necessárias nos casos onde temos que subdividir a rede em redes menores, um exemplo muito claro a ser citado é o caso de endereços pertencentes à classe A, que tem a capacidade de endereçar 16 milhões de equipamentos, como montar e administrá-los? Geralmente quando temos um problema muito grande, para resolver, dividimos o mesmo em pequenos módulos, transformando-o em vários problemas menores. É exatamente isto que ocorre no caso de redes deste tamanho. Para dividir uma rede em sub-redes criou-se a máscara de rede (subnet mask), que especificam quantos bits são usados para: endereço de rede e endereço do equipamento. Além do endereço IP, cada máquina tem uma máscara com o mesmo formato. No caso da não utilização de máscaras informa-se a default de acordo com a classe da rede, conforme mostra a tabela abaixo. Classe Máscara Número de Bytes Número de Bytes de Rede de Equipamento A 255.0.0.0 1 3 B 255.255.0.0 2 2 C 255.255.255.0 3 1 Tabela 3.3.1 - Máscara default para classes de redes Para entender melhor máscaras de redes, temos abaixo alguns exemplos de classes e suas devidas subredes. 1. Se dividíssemos uma rede de classe A em 256 sub-redes teríamos: rede: 15.0.0.0 com máscara 255.255.0.0 sub-redes: 15.0.0.0, 15.1.0.0, 15.2.0.0, 15.3.0.0, 15.4.0.0, ..., 15.255.0.0 2. Se dividíssemos uma rede de classe C em 4 sub-redes teríamos: rede: 200.254.29.0 com máscara 255.255.255.192 sub-redes: 200.254.29.0, 200.254.29.64, 200.254.29.128, 200.254.29.192 Analisemos também a tabela abaixo que relaciona as possíveis máscaras de rede, para a subdivisão de uma rede classe C, mostrando o número de sub-redes, e o número de equipamentos que cada máscara permite endereçar. Máscara 255.255.255 0 128 192 224 240 248 252 Número de sub-redes 1 2 4 8 16 32 64 Número de endereços total 256 128 64 32 16 8 4 Número de endereços válidos 254 126 62 30 14 6 2 Tabela 3.3.2 - Subdivisão de uma rede, classe C Levando-se em consideração o quadro acima, se dividíssemos uma rede de classe C em 6 sub-redes de 15 equipamentos. A solução seria usar a máscara 255.255.255.224 que divide uma rede de classe C em 8 sub-redes com até 30 endereços válidos cada. Obs.: A máscara pode ser representada com o número de bits que se pretende endereçar após o endereço IP (endereço_IP/número_de_bits). Esta notação é conhecida como CIDR - Classless Inter-Domain Routing. Exemplo: Endereço IP: 200.245.235.65 3.4 Máscara: 255.255.255.0 ou 200.245.235.65/24 Endereço IP: 200.245.235.65 Máscara: 255.255.255.240 ou 200.245.235.65/28 Endereços Unicast Um endereço unicast é usado para transmitir dados para um único destino, o mesmo identifica um endereço de interface de rede específico. Logo os dados são enviados diretamente para a interface associada ao endereço. 3.5 Endereços Multicast Endereços multicast são usados para transferir datagramas para um grupo de hosts configurados como membros de um grupo multicast e que possivelmente, encontram-se em sub-redes geograficamente dispersas. Não é orientado a conexão, e não garante que o datagrama será entregue a todos os membros do grupo, ou que vá chegar na mesma ordem relativa a outros datagramas. A diferença de um datagrama IP unicast e um multicast é a presença de um endereço de grupo no campo de endereço destino no cabeçalho IP. Ao invés de um endereço classe A, B, C, multicasting emprega um endereçamento de classe D, com o formato (224.0.0.0 - 239.255.255.255). Membros individuais podem associar-se ou deixar um grupo multicast a qualquer momento. Não existindo nenhuma restrição, nem mesmo com relação de localização física ou número de membros nos grupos. Um host pode ser membro de um ou mais grupos e para enviar mensagens para membros do grupo não precisa ser membro do mesmo. Os grupos podem ser permanentes ou transientes e também ter até zero no número de membros. Endereços multicast tem seus quatro bits de maior ordem igual a 1110, seguido de um identificador de grupos de 28 bits, e variam de 224.0.0.0 até 239.255.255.255. O endereço base 224.0.0.0 não pode ser usado de modo algum, o bloco de endereços 224.0.0.1 … 224.0.0.255 são reservados para uso de roteadores e outros protocolos de baixo nível, que realizam tarefas de manutenção e descoberta de topologias. Os grupos restantes de 224.0.1.0 … 239.255.255.255 são designados a aplicações multicast ou permanecem disponíveis. 3.6 Endereços Broadcasting O endereços broadcasting são maneiras de se mandar mensagens para todos os usuários da rede, isto é feito preenchendo-se o HOST ID com bits 1. Embora esta seja uma poderosa ferramenta temos que tomar cuidado, visto que qualquer sistema remoto pode enviar mensagens em broadcasting para qualquer rede. Estas mensagens podem ocasionar congestionamentos insuportáveis na rede. 3.7 Desvantagens do Endereçamento IP Uma das desvantagens mais claras de se usar o endereçamento IP é o que se refere ao deslocamento físico do equipamento, que apresenta problemas, visto que o endereço IP refere-se à conexão com a rede e não com o HOST. Logo quando queremos trocar o HOST de uma rede para outra devemos trocar seu endereço. Este fato ocasiona um transtorno muito grande principalmente quando tratamos usuários de HOSTs portáteis. Um computador portátil não podendo ficar conectado permanentemente à mesma rede, não pode ter um endereço fixo, pois o mesmo identifica a localização física da rede. Na escolha da classe de endereçamento, não temos como prever se a rede vai se expandir ou não. Por este motivo ao se implantar uma rede as empresas não preocupam-se em nenhum momento com um possível crescimento futuro, fato este que pode nos trazer sérios transtornos. Tomemos como exemplo o caso de uma empresa X adota um endereço de classe C, pois que não se esperava mais de 254 HOSTs, depois de um determinado tempo este número de HOSTs ultrapassa os 254. Para resolver o problema desta empresa teríamos que mudar o endereçamento para a classe A ou B. Com esta mudança supostamente fácil seria necessário mudar todos os endereços de máquinas e reaprender a usá-los. Devemos levar em consideração também a complexidade do NetID, que aumenta proporcionalmente com o crescimento da complexidade da rede. A administração da rede ficaria bem mais complexa. O caminho de um determinado datagrama endereçado ao HOST X da rede Y é especificado no endereço IP, logo a eficiência desta comunicação esta diretamente ligada com este caminho definido. Ao analisarmos este caminho verificamos que este é composto por vários endereços IP e a ausência ou desconhecimento de certos endereços pode inviabilizar a comunicação. 3.8 Conclusão As mudanças sofridas pelo protocolo IP conseguiram acomodar ou solucionar, mesmo que temporariamente, os problemas visualizados diretamente relacionados com o protocolo. Um exemplo é o que se refere a quantidade de endereços disponíveis, problema este que foi solucionado temporariamente com a criação das classes de endereços, e que atualmente estão novamente perto de acabar. O capítulo a seguir mostra mais detalhadamente a atual versão do protocolo usada, para que possamos entender melhor a necessidade de uma nova versão. 4. Protocolo IPv4 O protocolo IPv4, como já foi dito anteriormente é o principal protocolo adotado pela Internet. O datagrama IP atual não necessita de conexão, e não garante a entrega através de mecanismos internos. Mesmo não garantindo a segurança continua sendo o protocolo mais utilizado atualmente. Atualmente um datagrama IPv4 contém campos que se encontram dispostos como mostrado na tabela abaixo (Gonçalves e Niles, 1997): VERS HLEN SERVICE TYPE IDENTIFICATION TIME TO LIVE TOTAL LENGTH FLAGS PROTOCOL FRAGMENT OFFSET HEADER CHECKSUM SOURCE IP ADDRESS DESTINATION IP ADDRESS IP OPTIONS (IF ANY) PADDING DATA ... Tabela 4.1 - Datagrama IPv4 Descrição dos principais campos que compõem um datagrama IPv4. Vers (versão) - com um tamanho de 4 bits, estabelece um acordo entre fonte, destino e qualquer Gateway por onde o datagrama passa. Quando uma máquina recebe um datagrama com a versão incompatível com a sua, descarta o mesmo para evitar interpretação errônea. Versão adotada atualmente do IP é a 4. Hlen - com o tamanho de 4 bits é responsável por especificar o comprimento do cabeçalho do datagrama. Total Length - com o tamanho de 16 bits, especifica o comprimento do datagrama IP em octetos (bytes), incluindo cabeçalho e dados. Logo o tamanho máximo é 216 (65.535 octetos). Service Type - com o tamanho de 8 bits, especifica a maneira de se lidar com o datagrama, e subdividi-se em cinco campos. Apesar de que a maioria das máquinas (Hosts ou gateways) ignorarem este campo ele é usado por algoritmos de roteamento na tomada de decisões. A disposição dos campos no Service Type é mostrada na tabela a seguir: Precedence D T R UNUSED Tabela 4.2 - Campos do Service Type ♦ Precedence - três primeiros bits indicam precedência do datagrama, e o valor 0 indica uma precedência normal e o valor 7 indica controle de rede, permitindo assim aos remetentes a priorização da transmissão de datagramas. ♦ Bit D - quando setado (1), solicita o mínimo de atraso na transmissão. ♦ Bit T - quando setado, solicita alto throughput na transmissão. ♦ Bit R - quando setado, solicita alta confiabilidade. Redes podem não atender os pedidos dos bits D, T, R por uma impossibilidade operacional (tráfego, volume, velocidade, etc.), os bits setados não significam regras e sim sugestões que podem ser ou não obedecidas. Identification - com o tamanho de 16 bits, número único para cada datagrama, permite ao destinatário saber a que datagrama pertence o fragmento. A cada datagrama gerado copia-se o contador para o identification e incrementa o contador, garantindo assim que cada datagrama enviado tenha um número diferente. Flags - contém 3 bits, e cada um com uma função para controle de fragmentação. • Flag setado com: 1 sem fragmentação, ou seja com restrição à fragmentação. • Flag setado em 2 significa que o fragmento pertence ao meio do datagrama, e 3 que o fragmento é o último. Estes flags são utilizados na remontagem do datagrama original. • O primeiro fragmento‚ sinalizado com o campo fragment offset setado com 0. Fragment Offset - tamanho de 13 bits usados para identificar a posição original do fragmento. Time To Live (TTL) - tamanho de 8 bits e contém o tempo que o datagrama permanece na rede, este campo é decrementado cada vez que passa por uma máquina em cada segundo. Caso o campo seja zerado o datagrama é descartado, e é gerado uma mensagem ao seu criador. Protocol - tamanho de 8 bits, especifica o protocolo usado para gerar a informação contida nos dados. Por exemplo UDP ou TCP. Header Checksum - tamanho de 16 bits, usado para garantir a integridade dos dados contidos no cabeçalho IP. Não garante a integridade dos dados. Source IP Address - tamanho de 32 bits, endereço de origem. É dividido em dois componentes NetID e HostID, cujos valores dependem da classe utilizada. Destination IP Address - tamanho de 32 bits, endereço de destino. É dividido em dois componentes NetID e HostID, cujos valores dependem da classe utilizada. IP Options - tamanho variável e o campo não é obrigatório. Pode existir apenas um octeto ou vários sendo que não há separação entre eles. Todas as operações São precedidas de um octeto que compõe o código da operação. Padding - com o tamanho de 8 bits é usado como complemento do campo options. Data - possui um tamanho variável e múltiplo de 8 bits e contém os dados. 4.1 Encapsulamento de datagrama O limite atual do datagrama é de 216 ou seja 65.535 octetos. Este limite pode ser aumentado em versões futuras de acordo com a demanda tecnológica, mas existe o limite dos frames que deve ser respeitado. O ideal é termos o tamanho do datagrama compatível com o tamanho do campo dados do frame garantindo assim o transporte do mesmo de forma distinta, aumentando a eficiência da transmissão. Ao carregarmos um datagrama em um frame estamos encapsulando o mesmo (Gonçalves e Niles, 1997). A seguir temos uma tabela mostrando este encapsulamento. Campo de dados Cabeçalho Físico Datagrama IP (cabeçalho IP + Dados) FRAME Tabela 4.1.1 - Encapsulamento de datagramas 4.2 Unidade máxima de transmissão Devemos assumir um formato único como Tamanho Máximo de Transferência (Maximum Transfer unit MTU), tal que o datagrama sempre utilize um único frame. Ao tamanho máximo de transferência damos o nome de unidade máxima de transmissão. A situação ideal para a transmissão de um datagrama através da rede está no encapsulamento do mesmo. Como o protocolo TCP/IP tem como objetivo a transparência dos protocolos de níveis inferiores e o projetista ou usuário da rede não devem preocupar-se com o tamanho do datagrama, deve-se deixar que a fonte escolha o tamanho de acordo com as necessidades e a rede fragmente-os e reagrupe-os conforme as necessidades apresentadas pelos nodos por onde o mesmo vai passar até chegar ao seu destino. 4.3 Fragmentação e montagem do datagrama IP A arquitetura TCP/IP foi projetada para interligar redes com as mais diversas tecnologias, logo o tamanho máximo dos datagramas varia de acordo com a tecnologia usada. Por isto faz-se necessário a fragmentação de datagramas muito grandes, ou que excedam o tamanho máximo aceito pela máquina. Estes fragmentos são transmitidos e remontados ao chegar ao destino. Tomemos um HOST A que trabalha com MTU (Maximum Transfer Unit) de 1400 octetos, e envia um datagrama ao HOST B, e o Gateway fragmenta o mesmo em 3 partes conforme mostra a figura abaixo (Gonçalves e Niles, 1997). A fragmentação de datagramas é mostrado nas figuras abaixo: Cabeçalho dados 1 dados 2 dados 3 IP 600 octetos 600 octetos 200 octetos Tabela 4.3.1 - Datagrama a ser fragmentado Cabeçalho dados 1 fragmento 1 600 octetos Tabela 4.3.2 - Primeiro Fragmento (offset 0) Cabeçalho dados 2 fragmento 2 600 octetos Tabela 4.3.3 - Segundo Fragmento (offset 600) Cabeçalho dados 3 fragmento 3 200 octetos Tabela 4.3.4 - Terceiro Fragmento (offset 1200) A maior parte do cabeçalho é replicado, exceto os campos Flags, Fragment Offset, sendo que o primeiro serve para indicar se houve ou não fragmentação e caso exista o segundo auxilia na remontagem indicando posição no datagrama original. Temos algumas desvantagens com a fragmentação de datagramas: • Uma máquina com MTU (Maximum Transfer Unit) de capacidade maior, após a fragmentação será subtilizada em sua capacidade de vazão de dados. • Depois de receber o primeiro fragmento, o destinatário inicializa um temporizador e vai decrementando o tempo, quando ele se esgotar e se faltar algum fragmento que não tenha chegado ainda, descarta-se os recebidos. • A probabilidade de perda de datagrama aumenta ao utilizar-se de fragmentação, isto fica bem claro se pensarmos que ao invés de um datagrama seriam vários. 4.4 Roteamento de datagramas IP Mesmo quando se trata de envio de datagramas para uma máquina que se encontra na mesma rede é necessário uma tabela para decidir a interface a ser usada. O roteamento de um datagrama pode ser direto, viabiliza a comunicação entre Hosts alocados em uma mesma rede física ou indireto, conexão entre dois Hosts alocados em redes distintas. No roteamento indireto cada Gateway processa o datagrama, define a rota, encapsula o mesmo no frame da rede que utilizar para envio ao próximo Gateway. Tendo em vista este processo podemos deparar com um loop de roteamento, e o campo TTL (Time To Live) do datagrama tem por função impedir que um datagrama circule na rede eternamente. A cada roteador que o datagrama passa o TTL (Time To Live) é decrementado, e quando atinge zero envia uma mensagem de erro para a origem. 4.4.1 Inconvenientes das tabelas de roteamento Temos dois inconvenientes graves das tabelas de roteamento um deles é o caminho único, e o outro é se algum destino se encontra fora do ar. No primeiro caso datagramas gerados de uma fonte A para um destino B, vai sempre seguir o mesmo caminho sem se preocupar com as múltiplas opções, atrasos, Throughput, etc. E no segundo caso só saberemos se o Host de destino está operacional ou não quando o último Gateway tenta enviar o datagrama, e o Gateway final tem que enviar uma mensagem para a fonte (origem). 4.4.2 Internet Message Control Protocol ( ICMP ) A necessidade de interpretar as mensagens de erro deu origem a este protocolo, e embora este protocolo opere sobre o IP, ele é parte indispensável e integrante do mesmo. Devido a natureza do endereçamento IP, só é possível enviar mensagens de erros à origem. 4.4.2.1 Principais tipos de mensagens de erro Echo Request: geralmente implementado como comando ping, a máquina que recebe deve responder Echo Reply. Esta é uma importante ferramenta para depuração. Source Quench: mecanismo para avaliação de congestionamentos, opera principalmente em redes de velocidades diferentes. Como pacotes excedentes normalmente são armazenados em memória, quando os mesmos estão esgotando, a perda de pacotes é evitada envidando-se uma mensagem orientando à origem para diminuir a taxa de transmissão. Quando a máquina origem para de receber estas mensagens ela pode voltar a operar normalmente. Source Route Failed (Redirect): permite alteração na tabela de saída de datagramas da máquina, somente usada entre roteadores e máquinas para informar a saída mais indicada da rede. Unreachable Destinations: gerada sempre que há impossibilidade de entrega do datagrama. Time Exceeded For a Datagram: gerado sempre que o TTL (Time To Live) chegar a zero. 4.5 Conclusão Conhecendo melhor o IP, um protocolo aceito comercialmente por diversos seguimentos da sociedade, seus pontos fortes e fracos, para que possamos expressar melhor a favor da migração. O próximo capítulo mostra o protocolo que deve se tornar a nova versão usada na internet. Protocolo este que vai tornar a Internet uma verdadeira rede mundial. 5. A nova versão do protocolo IP A Internet é um mundo muito dinâmico, novas tecnologias são incluídas e as antigas ou se adaptam a elas ou tornam-se obsoletas, a nova versão herda da atual algumas características interessantes, e o resto é deixado de lado. A versão usada atualmente, ou seja IPv4, conseguiu acomodar todas as mudanças, tornando-se cada vez mais popular, mesmo não tendo sido projetada para dar suporte a uma rede universal, isto contribui para que uma possível atualização seja considerada criticada, e até mesmo sujeita a boicotes. Em 1991, membros do IETF (Internet Engineering Task Force), notando que o crescimento exponencial apresentado pela rede levaria a um esgotamento dos endereços disponíveis ao final do ano de 1994. Isto se as tabelas de roteamento não esgotassem toda a capacidade dos hardwares de roteamento da época. Foi então adotado o CIDR (Classes Inter-Domain Routing), que consistia em dar blocos de endereços de classe C contíguos a regiões do planeta, estas regiões dividiam seus endereço em blocos menores, mais contíguos, até que todas as redes tivessem seus endereços. Através do uso de máscara de rede, que é usada pelo roteador no endereçamento de todo um bloco de endereços o que sem dúvida diminui a tabela de roteamento. Atualmente uma parte do endereço IP identifica uma rede específica na inter-rede e a outra identifica um host dentro da mesma. Um endereço IP identifica uma conexão à inter-rede, logo um gateway conectado a n redes tem n endereços IP, um para cada conexão. Esta solução encontrada resolveria o problema no momento, uma solução definitiva e sólida teria que ser projetada. Deu-se então início a esforços para escolher um sucessor para o IPv4, várias equipes começaram então a pesquisar em paralelo. Em 1993 o IESG (Internet Engineering Steering Group), cria um grupo de trabalho, o IPngWG (IP next Generation working group) para investigar as várias propostas e recomendações aplicáveis à nova versão do protocolo IP. Este grupo selecionou três possíveis candidatos, depois de estudá-los decidiu por selecionar os pontos positivos dos três e gerar a recomendação para a versão 6 do IP em novembro de 1994. A versão 5 já havia sido alocada para o protocolo ST (stream), protocolo experimental para suportar serviços em tempo real em paralelo com o IP. De lá para cá várias Drafts, RFCs foram publicadas, e já se tem algumas implementadas ou em funcionamento. Desde a introdução do TCP/IP, para o ARPANET (criada em 1969 pelo ARPA - Advanced Research Projects Agency - órgão do departamento de defesa dos EUA), em 1973, ao qual até o momento se encontravam conectados 250 sites e 750 computadores, com especificações públicas e genéricas, permitindo a implementação por diversos fabricantes, com o passar dos anos a internet tem crescido tremendamente e encontram-se conectados hoje mais de 60 milhões de usuários no mundo. Atuais projetos estimam a existência de centenas de milhares de sites e milhões de computadores conectados. O fenômeno do crescimento exerce uma pressão muito grande e constante sobre a infra-estrutura da Internet. Obrigando uma reestruturação, melhora de desempenho, segurança, facilidades para o usuário na configuração e administração de redes. Com a nova versão do protocolo teremos mais espaço de endereçamento (de 32 para 128 bits), mais níveis de hierarquia, maior número de nodos endereçáveis, auto-configuração destes nodos, compatibilidade e interoperabilidade com a antiga versão. Alguns campos do cabeçalho IPv4 foram mantidos como opcionais, ou retirados para diminuir o tempo de processamento, ou retirada de funções não muito interessantes ou obsoletas. Ao analisarmos a situação friamente a tendência é pensar que quanto maior o tamanho do cabeçalho maior será o tempo de processamento, o que na realidade não é uma verdade, apesar do endereço IPv6 ser 4 vezes maior que o IPv4, seu cabeçalho é somente 2 vezes maior, e o tempo de processamento pode ser até menor. A nova versão implementa também a flexibilidade de inclusão de opções no cabeçalho, possibilitando a inclusão de extensões. Permite a inclusão de cabeçalhos de suporte para autenticação, integridade de dados e confiabilidade. Esta é uma das características obrigatórias para a implementação do novo protocolo. Outra capacidade foi adicionada para permitir que, ao transmitir um pacote fosse possível a escolha de um fluxo especial para o mesmo, ou seja uma qualidade de serviço. Esta opção nos permite dar mais prioridade a um pacote que por exemplo tenha transmissão continua em relação a um que não tem este fluxo. Podemos dizer que o IPv6 é composto de dois cabeçalhos o básico e os opcionais. Em um exemplo poderíamos ter dois datagramas um contendo dados de vídeo conferência (mais prioritário) e outro contendo um documento texto (menos prioritário). Os 16 octetos disponíveis com a nova versão do protocolo IP, nos daria cerca de 340.282.366.920.938.463.463.374.607.431.768.211.456 endereços possíveis, o que nos daria 665.570.793.348.866.943.898.599 endereços por metro quadrado da superfície do planeta. Levando em consideração que o aproveitamento dos endereços não é total teríamos aproximadamente cerca de 1564 endereços por metro quadrado e em uma estimativa otimista onde teríamos cerca de 3.911.873.538.269.506.102 endereços por metro quadrado. A nova versão nos possibilitara levar um laptop para todos os locais desejados e lá conectá-lo a rede. Além de laptops e desktops, há inúmeros dispositivos que usamos em rede como: Personal Data Assistants (PDA), telefones móveis com capacidade de processamento de dados e máquinas de escritório como copiadoras. Bem como novos dispositivos que são lançados no mercado a cada dia, aumentando o leque de produtos, indo do escritório à residência e que podem ser conectados a rede. Cada dispositivo deste necessita de um endereço IP e vai poder se autoconfigurar com ajuda de um roteador local IPv6 ao qual estiver conectado. Não haverá necessidade de alteração de endereço IP toda vez que trocarmos de provedor. A nova versão reflete o amadurecimento da tecnologia de redes, tendo em vista que a mesma não só acrescenta características a anterior como também descarta as que se revelaram desnecessárias ou obsoletas. O novo protocolo tem em vista uma verdadeira rede mundial com múltiplos usos. Outra mudança muito importante é que endereços são alocados de forma hierárquica para nomear nodos, sistema este que garante nodos com maior autoridade para subdivisão de endereços e distribuição para os nodos de mais baixa autoridade, e estes podem subdividirem e assim por diante, até que todos nodos tenham seus endereços alocados. Não existe uma alocação central, mas temos endereços com um prefixo diferenciado destinados aos provedores de rede. Falaremos mais detalhadamente sobre o assunto nos próximos tópicos. 5.1 a) Objetivos da nova versão Suporte a bilhões de hosts conseguido através da expansão do espaço de endereçamento e uma hierarquia mais versátil. b) Redução da tabela de roteamento. c) Possibilidade de expansão do protocolo, viabilizado pela inclusão de cabeçalhos de extensão opcionais no cabeçalho base. d) Simplificação do cabeçalho, diminuindo o tempo de processamento na análise dos mesmos, por parte de roteadores e hosts. e) Garantia de segurança (autenticação e privacidade), com relação a versão anterior. f) Inclusão de um campo de suporte a mecanismos de controle de qualidade de serviço. g) Permissão de multicasting, através de especificação de escopos de sessões multicasting. h) Melhorias no roteamento, inclusive no que se refere a hosts móveis. i) Permissão para máquinas mudarem fisicamente de lugar sem alterar o endereço IP. j) Possibilidade de autoconfiguração ( plug-and-play ). k) Inclusão de um novo tipo de endereçamento chamado Anycast . l) Coexistência das duas versões, ou seja possibilidade de comunicação entre uma máquina com IPv4 e outra com IPv6. 5.2 Tipos de endereços O IPv6 tem a capacidade de endereçar 3.4 x 1038 nodos . Abandona totalmente o conceito de classes de endereços, e baseia-se nos prefixos do IPv4 com alterações nas suas funções. A tabela abaixo mostra estes prefixos, do IPv6, sua alocação e as frações de endereçamento (Gonçalves e Niles, 1997). Prefixo Alocação Frações de endereçamento 0000 0000 Reservado ( incluindo IPv4 ) 1/256 0000 0001 não usado 1/256 0000 001 Reservado para OSI, NSAP 1/128 0000 010 Reservado para Novel, NetWare IPX 1/128 0000 011 não usado 1/128 0000 1 não usado 1/32 0001 não usado 1/16 001 não usado 1/8 010 Provider-based unicast 1/8 011 não usado 1/8 100 Geographic-based unicast 1/8 101 não usado 1/8 110 não usado 1/8 1110 não usado 1/16 1111 0 não usado 1/32 1111 10 não usado 1/64 1111 110 não usado 1/128 1111 1110 0 não usado 1/512 1111 1110 10 Link Local Use 1/1024 1111 1110 11 Site Local Use 1/1024 1111 1111 Multicast 1/256 Tabela 5.2.1 - Prefixos IPv6 Atualmente temos duas formas de transição IPv4 para IPv6. A primeira garante aos hosts e roteadores um túnel IPv6 para datagramas com infra-estrutura IPv4, este tipo de endereço é chamado IPv4 compatível com endereços IPv6. Endereços com noventa e seis zeros seguido pelo endereço IPv4. A Segunda forma são endereços de mapeamento IPv4 que tem 80 zeros no início, e são reservados para suportar endereçamento a antiga versão. Os 16 bits seguintes suportarão datagramas IPv6 que trafeguem em uma estrutura ainda baseada em IPv4. Duas porções são reservadas para encapsulamento de protocolos que não são IP, como OSI, NSAP (Network Service Access Point) e Novel IPX (Internal Packet e Xchange). Aos provedores de acesso à internet (provider-based) é‚ reservada uma grande parcela do espaço de endereçamento, permitindo uma divisão hierárquica para distribuição dos endereços. O formato do endereço baseado em provedor permite uma distribuição flexível a cada nível da hierarquia da administração de endereços, apoiando a alta demanda dos mesmos. A tabela abaixo mostra esta distribuição de endereços. 3 n bits m bits x bits y bits x-y bits Registry ID Provider ID Subscriber ID Sbnet ID Interface ID bits 010 Tabela 5.2.2 - Divisão para distribuição de endereços Os primeiros três bits identificam o prefixo e o próximo campo identifica o registro de um provedor especifico na internet, que é indicado pelo provedor ID. Já o campo subscriber ID identifica os assinantes daquele provedor. O Sbnet ID serve para identificar uma sub-rede, uma ligação física específica. O último campo, interface ID identifica a interface ligada na rede (host). No prefixo geographic-based, os provedores não alocam grandes espaços, este indica a posição geográfica da rede. Endereços de uso local (link e site) usados localmente, para que as máquinas possam se autoconfigurar ao serem conectadas. O formato do link local, e do site local são mostrados nas tabelas abaixo: 10 bits n bits 118-n bits 1111111010 0 Interface ID Tabela 5.2.3 - Formato do link local 10 bits n bits m bits 118-n-m bits 1111111010 0 Subnet ID Interface ID Tabela 5.2.4 - Formato do site local Em se tratando de link local e site local o campo Interface ID deve ser único e o Subnet ID serve para identificar uma sub-rede dentro de um domínio. Este tipo de endereçamento é útil para construção de intranets, onde pode construir uma rede baseada em TCP/IP sem se ter endereços alocados. 5.2.1 Endereços Unicast Endereços unicast identificam uma interface única, o uso do mesmo garante que o pacote é enviado diretamente para a interface associada ao endereço. Temos vários tipos de endereços unicast: a) Global Provider-based, (baseado no provedor global), provê endereçamento global a todos os hosts conectados. É um endereçamento globalmente utilizado, e seu plano inicial de alocação baseia-se no CIDR (Classless InterDomain Routing). Para identificação possui um prefixo de 3 bits (010) e cinco campos: registry ID: registro da parte alocada ao provedor provider ID: identifica um provedor específico subscriber ID: identifica os assinantes conectados a um provedor infrasubscriber: parte utilizada por cada assinante b) Unspecified, identifica a ausência de um endereço e não deve ser usado em nenhum nodo (0:0:0:0:0:0:0:0 ou "::"), estações ainda não inicializadas ou seja que ainda não sabem seu endereço, podem fazer uso destes. c) Loopback, endereçamento utilizado somente quando um nodo envia uma mensagem para si mesmo (0:0:0:0:0:0:0:1 ou "::1"), esta mensagem nem mesmo chega a rede. d) IPv4-based (baseado em IPv4), ou seja endereço IPv6 com um endereço IPv4 embutido. Para isto inclui-se um prefixo nulo (96 bits zero) a um endereço IPv4 (::172.16.25.32), este tipo de endereço foi incluído como mecanismo de transição para hosts e roteadores que tutelarem pacotes IPv6 sobre roteamento IPv4. Para hosts sem suporte IPv6 foi definido outro tipo de endereço (IPv4mapped IPv6) da forma: ::FFFF:172.16.25.32. e) NSAP (Network Service Access Point), são utilizados em sistemas OSI, com 121 bits e identificados pelo prefixo 0000001. f) IPX (Internal Packet e Xchange), utilizado em redes Netware e Novel, com 121 bits e identificados pelo prefixo 0000010. g) Link-local, definido para uso interno num único link, ou seja para endereçamento com um vínculo único (rede física) ou subnetwork (subrede), identificado por um prefixo de 10 bits (1111111010), estações que poderão utilizar um endereço link-local são as não configuradas, as com endereço provider-based, ou as com um site-local. h) Site-local, este de tipo endereçamento é definido para uso interno em organizações que não vão acessar a internet, e identificados pelo prefixo de 10 bits (1111111011). Os roteadores não podem repassar pacotes cujos endereços origem sejam endereços site-local. Com o uso da nova versão teremos 12,5% do espaço total de endereçamento IPv6, reservado a endereços que serão distribuídos geograficamente (geographic-based). 5.2.2 Endereços Anycast Endereços anycast identificam um grupo de interfaces com nodos diferentes, os pacotes com este tipo de endereçamento são enviados para a um único destino. Destino este que é geralmente o mais próximo de acordo com a medida de distância do protocolo de roteamento. O que torna este caminho mais eficiente pois o próprio endereço pode especificar os nodos intermediários sem precisar de um roteador para a determinação da rota a ser seguida. Endereços anycast são alocados a partir de endereços unicast, usando um dos seus tipos de formatos. Um endereço atribuído a mais de um nodo deve ser configurado para tornar-se anycast. Inicialmente este endereço será pouco utilizado. Não pode ser usado como endereço de origem de um pacote IPv6, nem ser configurado num host IPv6, deve ser associado apenas a roteadores. Este tipo de endereço será bastante útil para uma busca rápida de um determinado servidor ou serviço. Podemos por exemplo definir um grupo de servidores de nomes configurados com um endereço anycast; o host acessará o servidor de nomes mais próximo utilizando este endereço. Endereços anycast são usados principalmente por um conjunto de roteadores: a) pertencentes a um provedor de internet particular b) pertencentes a uma sub-rede particular c) que provê a entrada de roteadores em um domínio particular. 5.2.3 Endereços Multicast Endereços multicast são usados para transferir datagramas para um grupo de hosts configurados como membros de um grupo multicast, possivelmente, encontram-se em sub-redes geograficamente dispersas. Quando se envia um datagrama a um endereço multicast, o protocolo entrega o mesmo a todas as interfaces identificadas pelo endereço. No caso do IPv4 para se ter as funcionalidades do multicast precisava implementar-se túneis MBONE, com a nova versão todos os hosts e roteadores deverão suportar multicasting. Estes endereços tem o seguinte formato (Gonçalves e Niles, 1997): 8 bits 4 bits 4 bits 112 bits 11111111 flags scop group ID Tabela 5.2.3.1 - Formato de endereços multicast Os oito primeiros bits indentificam o prefixo, os próximos três bits estão reservados para uso futuro, e o quarto bit é usado da seguinte forma: 0 - endereço permanente 1 - endereço provisório alocado temporariamente por terceiros. Scop - limita o escopo do grupo dentro da rede, organização, etc... O escopo E indica todo o planeta, F reservado para indicar a galáxia ou sistema solar. Os valores setados nestes campos são os mostrados na tabela abaixo, com seu devido uso: 0 reservado 1 nodo-local 2 link-local 3 não usado 4 não usado 5 site-local 6 não usado 7 não usado 8 organização-local 9 não usado A não usado B não usado C não usado D global E reservado Tabela 5.2.3.2 -Formato do link local Obs.: O IPv6 não implementa endereçamento broadcast, pois o mesmo é substituído perfeitamente pelo multicast. Exemplos de endereços multicast: 5.3 FF02::0 / FF02::FFFF Novo formato Um aspécto muito importante do novo formato é que endereços IPv6 estão relacionados com a interface e não com o nodo como era o caso da versão 4. Um endereço unicast se refere a uma única interface, que pode estar relacionada com vários endereços de quaisquer tipos. A figura abaixo mostra o novo formato, simplificado do protocolo IPv6. Cabeçalho Cabeçalho .......... Cabeçalho Dados... Base Extensão 1 Extensão N Tabela 5.3.1 - Formato IPv6 O IPv6 acaba definitivamente com as classes de endereços possibilitando um método mais simples de auto-configuração. Temos três maneiras de representação do endereço IPv6. a) A forma mais usada é‚ x:x:x:x:x:x:x:x, onde x são números hexadecimais, o endereço esta dividido em oito pares de 16 bits. Exemplo: 1080:0000:0000:0000:0008:0800:200C:417A 47CD:1234:4422:6633:AC04:0044:A008:0124 Somente 15% de toda a capacidade de endereçamento está previamente alocada, o restante, ou seja 85%‚ é destinado ao uso futuro. Desta forma teremos longas seqüências de bits 0, que podem ser substituídos pela string "::", esta substituição só pode ser feita uma única vez, como mostramos no exemplo abaixo (Gonçalves e Niles, 1997). Endereço Forma completa Forma simplificada Unicast 1080:0:0:0:8:800:200C:417A 1080::8:800:200C:417A Multicast FF01:0:0:0:0:0:0:43 FF01::43 Loopback 0:0:0:0:0:0:0:1 ::1 Unspecified 0:0:0:0:0:0:0:0 :: Tabela 5.3.1 - Exemplos de representação de formas de endereçamentos c) A terceira opção e mais conveniente para ambientes mistos com nodo IPv4 e IPv6, x:x:x:x:x:x:d.d.d.d, onde x são números hexadecimais com 16 bits e d são números decimais com 8 bits, referentes à representação padrão bem conhecida do IPv4. Temos um exemplo abaixo (Gonçalves e Niles, 1997). Forma completa Forma simplificada 0:0:0:0:0:0:192.168.20.30 ::192.168.20.30 0:0:0:0:0:0:200.205.14.10 ::100.205.14.10 0:0:0:0:0:0:251.168.179.10 ::251.168.179.10 Tabela 5.3.2 - Exemplos de formas de representação de endereços IPv4. 5.3.1 Formato da base do cabeçalho IPv6 A tabela abaixo mostra como estão dispostos os campos do cabeçalho no novo formato do IPv6 (Gonçalves e Niles, 1997). VERS FLOW LABEL PLAYLOAD LENGTH Next Header SOURCE ADDRESS DESTINATION ADDRESS Tabela 5.3.1.1 - Cabeçalho IPv6 Hop Limit 5.3.2 Descrição dos campos Um datagrama IPv6 tem um cabeçalho base e zero ou mais cabeçalhos de extensão seguido dos dados. O mesmo é composto apenas de seis campos que estão descritos abaixo: Version: tamanho de 4 bits, indica a versão do protocolo. Priority: tamanho de 4 bits, identifica a prioridade. Flow label: tamanho de 24 bits, informações de caminho associando a prioridade e velocidade ao datagrama para os roteadores, qualidade de serviço. Playload length: tamanho de 16 bits, identifica o tamanho do datagrama, excluindo-se o cabeçalho, limitado a 64 kbytes como o IPv4. Next header: tamanho de 8 bits, indica a existência de um ou mais cabeçalhos encadeados e seu tipo. A tabela abaixo mostra os valores setados no campo e seu significado. Valor Significado 00 Não tem cabeçalhos de extensão 01 Descarte o datagrama 10 descarte o pacote mesmo que o endereço de destino venha a ser um endereço de multicast, envie uma mensagem de erro ICMP, codifique 2, para o pacote mensagem. Endereço fonte, apontando ao Tipo de Opção não reconhecido. 11 descarte o pacote caso o endereço de destino não seja um endereço multicast, envie uma mensagem de erro ICMP, codifique 2, para o pacote mensagem. Endereço fonte, apontando ao Tipo de Opção não reconhecido. Tabela 5.3.2.1 - Next Header Hop limit: tamanho de 8 bits, indica o número máximo de hosts que o datagrama pode passar antes de ser descartado. Quando o valor atinge 0 o pacote é descartado. Não tem relação com limite de tempo para permanência em um roteador. Source address: tamanho de 128 bits, indica o endereço de origem do datagrama. Destination address: tamanho de 128 bits, indica o endereço de destino do datagrama. Este nem sempre é o endereço final. Pode indicar um endereço intermediário. Em se tratando da nova versão do Internet Protocol, as modificações mais consideráveis são tamanho fixo do cabeçalho, não necessitando assim da checagem de cabeçalho e remoção dos procedimentos de segmentação. Ao analisar percebe-se que a cada salto de um pacote IPv6, os roteadores não precisam se preocupar com o cálculo do tamanho do cabeçalho (fixo) e nem com tarefas de fragmentação que são realizadas pelos hosts, o que aumenta substancialmente o desempenho dos roteadores. Alguns elementos opcionais podem ser obtidos através dos cabeçalhos de extensão (extension headers), anexados ao cabeçalho principal. 5.4 Novas Funcionalidades Esta nova versão apresenta funcionalidades muito importantes para um posterior desenvolvimento, crescimento, facilidade de operação, popularidade. Tem como principal objetivo tornar a Internet uma rede mundial, com múltiplos e infinitos usos. A intensa utilização da Internet para tráfego de informações sensíveis, como números de cartão de crédito, correspondência oficial de empresas e acesso a informações sigilosas, tais como saldos bancários, entre outras aplicações, demandaram a criação de mecanismos especiais para segurança no tráfego de pacotes IP (Internet Protocol). Juntamente com isso, são cada vez mais usuais e poderosos os computadores portáteis, do tipo laptop, onde seus proprietários conservam valiosas informações sem as quais não tomam certas decisões, como compra e venda de aviões, por exemplo. O suporte para a mobilidade a nível IP passa então a ser uma necessidade para todos os nós, móveis ou não, de maneira transparente, eficiente e segura para seus usuários. Conexões a nível de transporte devem ser mantidas, e não prescindir de alterações na configuraçao do nodo. 5.4.1 Autoconfiguração A autoconfiguração permite a operação plug-and-play, ou seja, assim que se instala uma estação numa rede Netware, automaticamente é associado um endereço IP à sua interface de rede. A necessidade de configuração manual vai ser quase que totalmente eliminada, minimizando a possibilidade de ocorrências de erro, pois a interferência humana na configuração será eliminada. Com esta mudança as máquinas vão poder mudar de rede com mais facilidade. Podemos ter duas formas de um host se autoconfigurar usando IPv6 a) statefull: quando há um servidor de configuração, com o qual o host se comunica. b) stateless: o host constrói seu endereço IP a partir do seu endereço de interface de rede, que é único e com base no seu endereço de placa mãe. Para descobrir o prefixo a ser usado temos mais duas formas: no caso de redes não conectadas podemos usar prefixo local e quando se tratar de redes conectadas o roteador da rede deve informar aos hosts o prefixo da mesma. O suporte a mobilidade eficiente, necessita da criação de dispositivos seguros que permitam que o roteamento seja feito em função da localização do nodo, e não pelo endereço de sua sub-rede original. Solução disponibilizada na nova versão do DHCP (DHCPV6). 5.4.2 Qualidade de serviços A qualidade de serviço (Quality of Service - QoS), são características e soluções para que uma rede entregue os datagramas de uma forma satisfatória. Estas características estão diretamente ligadas a largura de banda e atraso. A QoS possibilitou o aumento de aplicativos multimídia, pois as mesmas requerem segurança e performance nas transmissões, caso contrário haveriam perdas como espera, qualidade, ou cortes, no que se refere aos usuários. Infelizmente mesmo com a QoS, os caminhos percorridos pelos pacotes podem apresentar níveis mais baixos de protocolos, e com o manuseio podem ocorrer perdas, atrasos, cortes. Isto ocorre pois para chegar ao destino os datagramas passam por vários ou nenhum nodos que o examinam e o redirecionam, e é neste momento que podem ocorrer os problemas, um datagrama pode ser corrompido e nunca mais redirecionado. Muitas aplicações suportam este tipo de serviço, mas quando se trata de aplicações multimídia envolvendo vídeo e/ou voz, o tráfego tem que ser constante e sem perdas, caso contrário a mensagem pode ser perdida. O maior desafio aqui é manter o alto desempenho e disponibilidade da rede. Os campos Flow Label e Priority existentes no cabeçalho da nova versão servem para identificar os datagramas que precisam de atenção especial. Estes campos foram criados especialmente para facilitar o desenvolvimento de protocolos para controle de trafego em tempo real como o RSVP (Resource Reservation Protocol), protocolo de reserva de seleção na internet, permitindo a implementação de aplicações multimidia e com integração de serviços de dados, voz e vídeo em tempo real, aplicações que requerem alta velocidade de transmissão. Várias das novas aplicações requerem um acesso diferenciado para roteamento e alocação de recurso genérico de dados e aplicações. O uso do efetivo do campo Flow Label poderá aumentar a performance do datagrama, o que pode ser afetado por exigências de serviços especiais dos roteadores ao longo do caminho. Esta exigências podem serem referentes a prioridade, estado de espera (delay), largura de banda, etc. Todos os datagramas devem ter estas informações para assegurar este serviço com relação aos roteadores intermediários. Tal fato é claramente explicado pelo fato de que na transmissão de vídeos devemos limitar o trafego ou evitar congestionamento na rede. Podemos citar como exemplo de QoS, o campo Flow Label, 24 bits que podem ser usados para identificar um fluxo de dados (uma conexão ou circuito virtual). Os fluxos podem ser de dois tipos, o orientado que demanda muitos pacotes e o não orientado que não demanda muitos pacotes. O uso deste campo não é explicitamente definido, acredita-se que um fluxo orientado necessita mais prioridade que o não orientado. Dentro de cada categoria haveria um identificador de fluxo que iria sugerir o tratamento para aquele caso, mostrados na tabela abaixo (Gonçalves e Niles, 1997). Tráfego orientado Tráfego não orientado FTP DNS Telnet SMTP HTTP NTP Multimidia POP SNMP Tabela 5.4.2.1 - Identificador de fluxo Com o uso do IPv6, em um fluxo podem estar uma ou múltiplas conexões TCP, e uma única aplicação pode gerar um fluxo único (páginas de textos) ou múltiplos fluxos (audio/video conferência). Pacotes compartilham Flow Label, caminho, recurso, descartam exigências, importância e segurança. E o Flow Label é definido antes da transmissão, e pode melhorar a performance identificando os pacotes que necessitam de um tratamento especial. Esta performance pode ser afetada no início da migração, isto é explicado quando temos servidores IPv6 servindo de túnel para endereços IPv4. O RSVP (Resource Reservation Protocol) é um protocolo fim-a-fim compatível com o TCP/IP capaz de acomodar as mudanças e prover serviços de qualidade especiais para aplicações multimídia e outros, e ao mesmo tempo conviver com a atual estrutura. Componentes do RSVP: • remetente - o remetente faz com que o receptor saiba se há dados a serem enviados e a qualidade de serviço requerida. • receptor - o receptor envia uma advertência aos hosts e roteadores para que os mesmos possam se preparare para a chegada dos dados. • hosts ou roteadores - os roteadores ou hosts tem como objetivo por de lado todos os recursos formais. Após estas etapas o remetente pode enviar a mensagem (datagrama). Principais conceitos contidos no RSVP: • fluxo - o fluxo é caracterizado por tráfego de um remetente e um ou mais receptores, identificado no cabeçalho IPv6 pelo flow label. Antes de enviar o fluxo, o remetente envia uma mensagem destinada ao receptor, contendo o IP de origem, o de destino e um flowspec. Este flowspec é composto por taxa e atraso de saltos de fluxo, que é a QoS requerida pelo fluxo. O caminho percorrido pela mensagem é roteado do receptor para o host e roteadores ao longo do mesmo. • reservas - o receptor provê o caminho percorrido pela mensagem, e é responsável por fazer a reserva, permitindo assim maior flexibilidade no controle de fluxo multicast. O modelo baseado no receptor permite uma solução distribuída que possibilita os receptores fazer reservas para controle de suas necessidades. • modelo baseado no receptor - modelo que permite uma solução distribuída que habilita os receptores heterogêneos a fazerem reservas necessárias. • protocolos baseados no receptor - este protocolo é mais eficaz quando se trata de redes heterogêneas. Também serve para assegurar reservas para redes móveis ou alterada que continua considerando a reserva, o RSVP incorpora uma aproximação de estado chamada suave. Termo usado por caminhos RSVP e reservas são consideradas tentativas, isto é, se o fluxo não é recebido em um determinado tempo o recurso é liberado. 5.4.3 Prioridade Identifica a prioridade de um datagrama com relação a outros de mesma origem. Todos os pacotes de um fluxo têm que ter a mesma prioridade, logo estes dois campos têm que ser usados em conjunto. O uso efetivo deste recurso dá-se quando a rede está congestionada. Valores de 0 à 7 lidam com transmissões (geralmente TCP) e podem ser retardadas em caso de congestionamento. Valores de 8 à 15 são aplicações com tráfego constante e um atraso significaria perda de informações. Abaixo temos uma tabela de valores e o seu significado (Gonçalves e Niles, 1997). Valor Significado 0 Tráfego não caracterizado 1 Filler trafic (usnet news) 2 Transferência de dados automática (mail) 3 Reservado 4 Transferência de dados em blocos interativa (FTP,NFS,HTTP) 5 Reservado 6 Tráfego interativo (Telnet, X) 7 Tráfego de protocolos de controle (SNMP), tráfego sem controle de congestionamento, tráfego de real time. 8 Datagramas com mais possibilidades de serem descartados. (vídeo) 7 à 14 Aplicações com tráfego constante 15 Datagramas com mais possibilidades de serem descartados. (áudio) Tabela 5.4.3.1 - Prioridades de execução 5.5 Cabeçalhos de Extensão A nova versão tem um cabeçalho fixo e outros extras, que são opcionais usados de acordo com a necessidade, tornando a versão genérica e eficiente. Estes cabeçalhos são mecanismos de suporte a fragmentação, autenticação, etc. O protocolo codifica estas informações em cabeçalhos separados (independentes), ou seja temos um cabeçalho básico que é obrigatório e vários cabeçalhos de extensão que são opcionais. Estes cabeçalhos estão dispostos da seguinte forma: cabeçalho base + cabeçalho de extensão + dados. Levando em consideração que os cabeçalhos de extensão podem ter de zero a n ocorrências. Os cabeçalhos básicos tem um campo Next Header que identifica a existência de um ou mais cabeçalhos encapsulados. No caso de um datagrama apresentar cabeçalhos de extensão, recomenda-se que os mesmos sigam a ordem abaixo. I. II. cabeçalho IPv6 básico cabeçalho com opções Hop-by-Hop III. cabeçalho com opções de destino, que significa o primeiro destino do datagrama e os demais são dados pelo cabeçalho de roteamento. IV. V. cabeçalho de roteamento cabeçalho de fragmentação VI. cabeçalho de autenticação VII. encapsulating security playload header VIII. cabeçalho de destino IX. cabeçalho de camada superior Nos próximos tópicos teremos uma explicação mais detalhada de alguns destes cabeçalhos de extensão. 5.5.1 Cabeçalhos Hop-by-Hop e destino Os cabeçalhos Hop-by-Hop e destination (destino) carrega informações importantes, isoladas e simples, que por si só não necessitam de um cabeçalho de extensão especifico. Informações estas usadas por nodos intermediários, ou seja os que estão entre o nodo origem e o destino. Portanto todos os nodos ao longo do caminho percorrido pelo datagrama vão examinar este cabeçalho. Este cabeçalho se encontra dividido da seguinte forma (Gonçalves e Niles, 1997). 8 bits 8 bits n bits Type Lenght Value Tabela 5.5.1 - Cabeçalho hop-by-hop e destination Type identifica o tipo de opção, caso o tipo de opção contenha dados, então o tamanho dos dados é armazenado no Lenght e o valor no Value. Os cinco bits de mais baixa ordem em type indicam opção, e o terceiro bit de mais alta ordem indica se os dados da opção podem mudar durante o trajeto do pacote. Caso algum nodo não reconheça a opção os dois bits de mais alta ordem indicam a ação a ser tomada (Gonçalves e Niles, 1997). Bit Ação 00 Ignore esta opção, continue o processamento de cabeçalhos 01 Descarte datagrama, mas não envie mensagem ICMP 10 Descarte datagrama, e envie mensagem ICMP para a origem 11 Descarte datagrama, e envie mensagem ICMP para a origem se o destino não for endereço multicast. Tabela 5.5.2 - Valores assumidos pelo campo type 5.5.2 Cabeçalho de fragmentação A fragmentação é usada como forma de transmissão de datagramas muito grandes, ou seja com tamanho maior que o permitido (MTU - Maximum Transfer Unit - unidade máxima de transmissão), permitido pela rede utilizada. Esta é toda feita na origem do datagrama, que realiza um Path MTU discovery (descoberta de MTU mínimo) identificando assim o tamanho dos fragmentos. O tamanho do fragmento deve ser múltiplo de 8 octetos, e conter um cabeçalho, este deve indicar se há ou não outro fragmento pertencente ao mesmo datagrama. Todo datagrama é fragmentado na origem e remontado no destino, usando as informações contidas no campo flag do cabeçalho. Este cabeçalho se encontra disposto nos seguintes campos. a) Next Header (8 bits): indica o próximo cabeçalho b) Reserved (8 bits): reservado para uso futuro c) Fragment Offset (13 bits): indica a ordem do fragmento d) Res (2 bits): reservado para uso futuro e) M Flag (1 bit): indica se há mais fragmentos (1), ou se é o último (0) f) Identification (32 bits): identificação do pacote original; que deve ser única durante a transmissão Um problema que pode ocorrer é que em alguns casos os datagramas podem ser fragmentados e montados durante a transmissão, quando isto ocorre um novo datagrama é montado com o outro sendo encarado como dado. Espera-se que esta situação não ocorra com freqüência. Caso isto aconteça com freqüência a performance apresentada pela rede será altamente prejudicada. 5.5.3 Cabeçalho genérico de roteamento O cabeçalho genérico de roteamento contém uma lista de um ou mais nodos intermediários pelos quais o datagrama deve passar em sua rota desde a origem até o destino. Os cabeçalhos de roteamento começam com um bloco de 32 bits que estão dispostos em 4 campos, com tamanho de 8 bits cada. a) Next Header (8 bits): identifica o próximo cabeçalho b) Header extension length (8 bits): identifica o tamanho do cabeçalho em unidades de 64 bits, não incluindo o próprio cabeçalho c) Routing type (8 bits): identifica um tipo de roteamento, onde o datagrama segue um caminho e se ao longo deste se o destino não for encontrado, o datagrama é descartado d) Segments left (8 bits): número de nodos intermediários que devem ser visitados antes do destino 5.5.4 Cabeçalho de roteamento tipo 0 O cabeçalho de roteamento tipo 0 é definido por 8 bits reservados, inicializados com zero na transmissão e ignorados na recepção, e 24 bits de strict/loose campos Bit Map, usados para a tomada de decisão. Os bits são numerados da esquerda para a direita, cada um corresponde a um hop, indicando se o próximo destino deve ser um vizinho deste (1 = strict) ou não (0 = loose). O campo strict é o endereço de destino do cabeçalho IPv6 no pacote original e identifica um vizinho. E o campo loose é usado quando o endereço de destino inicial não é um vizinho nem um endereço multicast. Quando se usa roteamento do tipo 0, o destino é o último endereço e a origem o primeiro endereço listado no cabeçalho de roteamento. 5.5.5 Segurança Com o crescimento da Internet exige-se, cada vez mais, segurança na transmissão e recepção dos dados. Até agora a segurança era oferecida somente com a adição de aplicações auxiliares e ou serviços extras. Para a nova versão foram projetados mecanismos de proteção, encapsulamento, um diferencial que vêm para garantir a segurança autenticação, criptografia e qualidade de serviço. Opções que podem ser usadas em conjunto ou separadamente, de acordo com a necessidade do usuário. Ou seja a segurança é disponibilizada em vários níveis, tendo em vista que usuários e aplicações diferentes tem necessidades de segurança distintas. Quando encontramos o valor 50 setado no Next Header, identificamos a utilização do cabeçalho de segurança. Uma palavra-chave quando se fala em segurança é a associação, ou seja relacionamento unidirecional entre transmissor e receptor. Quando dois nodos de uma conexão vão transmitir, são necessárias duas associações, cada uma identificada por um endereço de destino e um Security Parameter Index (SPI), presente nos cabeçalhos destinados a segurança. Geralmente parâmetros que definem uma associação de segurança são algoritmos de autenticação e/ou criptografia e sua (s) chave (s). O encapsulamento do IP nos permite a autenticação dos dados encapsulados no pacote IP, através do algoritmo de criptografia DES (Data Encryption Standard). A autenticação garante a integridade dos dados e o encapsulamento provê a integridade e confidencialidade do datagrama. Estes mecanismos utilizam o conceito de associação de segurança entre transmissor e receptor, que devem concordar com uma chave secreta e com parâmetros relacionados à segurança, conhecidos somente pelos membros da associação. 5.5.6 Autoconfiguração Ao se instalar uma estação cliente em uma rede, um endereço IP será automaticamente gerado para a mesma. Característica também chamada stateless autoconfiguration, presente na nova versão para eliminar a necessidade de configuração manual das estações de rede. Permite que nodos gerem endereços únicos, concatenando o endereço da conexão local e um número seqüencial de interface interna. Para fazer o controle de grandes redes os administradores podem usar o chamado stateful autoconfiguration, opção disponibilizada pela DHCPv6. Permite que servidores dinâmicos destinem endereços únicos a computadores que solicitem o mesmo, estes adquirem estes endereços com base em um banco de dados central. 5.5.7 Autenticação A autenticação assegura ao destinatário que os dados IP são realmente do remetente indicado no endereço de origem, e que o conteúdo foi entregue sem modificações. O acesso ao pacote é negado se o remetente não é reconhecido e aceito caso contrário, garantindo assim que o conteúdo do pacote não foi alterado ao longo do caminho percorrido. Garante a integridade e a autenticação dos dados de um datagrama IP, porém não garante a confidência das informações. O valor 51 no Next Header identifica a autenticação. Esta é composta conforme mostramos a seguir. • Length (8 bits): tamanho do campo de dados em palavras de 32 bits • Reserved (16 bits): reservado para uso futuro • Security parameters index (32 bits): identifica uma associação de segurança para o datagrama, se não existe nenhuma associação de segurança este campo é setado com valor zero. • 5.5.8 Authenticacation data (variável): dados, em palavras de 32 bits Roteamento IPv6 Inicialmente a nova versão necessitava solucionar três problemas básicos: escassez de números de rede, explosão das tabelas de roteamento e escassez de endereços globais de rede. Os 128 bits do IPv6, resolvem a escassez de números e de endereços globais de rede. Para resolver o problema da explosão das tabelas de roteamento precisamos agregar várias entradas de rota, criar um domínio de rota, o que implica em uma criação de uma hierarquia para os endereços. O roteamento IPv6 é baseado nos cabeçalhos descritos anteriormente, principalmente no tipo 0. Temos uma lista de nodos por onde o datagrama deve passar até chegar ao seu destino. Um exemplo disto esta descrito abaixo. Considerando uma rede, onde o Host1 quer enviar uma mensagem ao Host2. A lista dos cabeçalhos de roteamento deve conter, de forma simples: H1, H2. A resposta teria o cabeçalho H2, H1. Se o Host1 resolvesse enviar a mensagem passando por um provedor teríamos: H1, P1, H2 e a resposta seria H2, P1, H1. Em uma rede complexa os caminhos podem ser requeridos através de endereços anycast, após a descoberta do MTU (Maximum Transfer Unit) mínimo desejado. A performance está diretamente relacionada com a rota percorrida pelo datagrama, e sendo que o tráfego na rede esta cada dia mais intenso, os roteadores precisam executar suas funções e processos de envio de datagramas cada vez mais rapidamente. Tráfego este que vem aumentando tanto pelo aumento do número de usuários e dos serviços oferecidos, principalmente quando se trata de serviços gráficos. Apesar da nova versão ter um cabeçalho bem maior que a atual, quando consideramos que não temos o checksum do cabeçalho e o uso de cabeçalhos opcionais melhora consideravelmente a performance. Além de que os opcionais não são checados ao longo do caminho, e são bem mais fáceis de serem adicionados tornando a nova versão bem mais flexível. O fato do cabeçalho IPv6 ter menos campos que o IPv4, aumenta consideravelmente a velocidade da transmissão, apesar da existência dos cabeçalhos de extensão. O que é explicado pelo fato de que a maioria destes não são examinados ou processados pelos roteadores ao longo do caminho percorrido pelo datagrama. O que torna o header IPv6 mais simples, flexível e rápido. A velocidade das LANs, VANs e MANs também aumentaram em centenas de megabits por segundo, e com a possibilidade de aumento desta velocidade para gigabits por segundo em um futuro bem próximo. Mesmo assim roteadores precisam executar suas funções de processo e envio de datagramas IP bem mais rápido a cada dia. A fragmentação somente será feita no host de origem, reduzindo assim o trabalho dos hosts intermediários e aumentando a performance, pois a cada nodo que o datagrama passa o mesmo não precisa ser montado e refragmentado novamente. Quando todos os nodos estiverem com a nova versão do MTU (Maximum Transmission Units - unidade máxima de transmissão) será padronizada em 576 bytes ou maior que isto para todos os hosts. O IETF (Internet Engineering Task Force), juntamente com outras organizações, tem feito um esforço enorme com relação a melhoria de performance do IPv6. Estão sendo desenvolvidos algoritmos de mapeamento de endereços IPv6 e outros ambientes, provendo assim uma comunicação sem restrições entre roteadores e sub-redes. 5.5.9 Suporte a serviços em tempo real A atual versão encontra sérios problemas relacionados ao tempo de resposta e qualidade de serviço, problemas estes que serão solucionados, ou seja minimizados com o uso da nova versão. O fluxo (flow) é uma seqüência de pacotes de uma determinada origem para um determinado destino (unicast e multicast), a origem requer um tratamento especial pelos roteadores. Os campos priority e flow label, foram criados principalmente para facilitar o desenvolvimento de protocolos para controle de tráfego em tempo real, permitindo assim a implementação de uma internet com aplicações multimidia, com integração de dados, voz e vídeo em tempo real. 5.5.10 Suporte a multiprotocolos e mobilidade O IPv6 suportará automaticamente o tráfego de redes OSI e de rede Netware/Novel. E uma grande parcela do endereço se encontra reservada para uso futuro. Posição esta que poderá ser ocupada por protocolos que se tornem padrões no futuro. O suporte à comunicações móveis, ainda se encontra em estudo, para que no estabelecimento inicial de uma sessão, um host IPv6 descubra dinamicamente através de um agente central, localizado na estação móvel. 5.6 Protocolo de Controle de Mensagens Internet O Protocolo de Controle de Mensagens Internet (ICMP - Internet Control Message Protocol), está sendo totalmente revisado/reestruturado para suportar as alterações do Internet Protocolo. O ICMPv6 são usados por nodos IPv6, para informar os erros encontrados no processamento de datagramas, ou em outras funções na Internet. O ICMPv6 é parte integrante do IPv6 e deve ser implementado por todo nodo que use esta versão. Todas as mensagens tem um formato geral que inclui um tipo, um código, um checksum e um corpo de tamanho variável. Estas mensagens se encontram divididas em dois grupos, ou seja, mensagens de erro e de informação. Mensagens de erro são aquelas onde o tipo é setado de 0 à 127, e as mensagens que tem o tipo setado de 128 à 255. Abaixo mostramos uma tabela contendo alguns códigos de erros, e seus significados para um melhor entendimento (Gonçalves e Niles, 1997). Tipo Descrição 1 Destination Unreachable 2 Packet Too Bif 3 Time Exceeded 4 Parameter Problem 128 Echo Request 129 Echo Reply 130 Group Membership Query 131 Group Membership Report 132 Group Membership Termination 133 Router Solicitation 134 Router Advertisement 135 Neighbor Solicitation 136 Neighbor Advertisement 137 Redirect Tabela 5.6.1 Mensagens de erro Na nova versão cada código tem uma função especial, abaixo citaremos algumas: • Os códigos 133, 134, 135,136 e 137 são usados na descoberta de vizinhos e em procedimentos de autoconfiguração. • O código 128 e o 129 define o equivalente da função PING (ou seja verifica se o servidor esta no ar). • 5.7 Os códigos 130, 131 e 132 são usados em procedimentos de membros de grupos. Conclusão Considerando que a atual versão do protocolo IP apresenta problemas e limitações, apresentamos uma nova versão, que reflete o amadurecimento da tecnologia de redes, visto que a nova versão do protocolo acrescenta características a atual e descarta as que se tornaram desnecessárias ou obsoletas. Tendo em vista uma verdadeira rede mundial com múltiplos usos. O próximo capítulo tem como objetivo resaltar os pontos a serem considerados no momento da migração, bem como as maneiras disponíveis para se fazer a mesma. 6. Considerações para a migração Há pouco mais de um ano as estimativas sobre a complementação foram de 70% do projeto concluídas até 1997. Estima-se que o processo de migração ao final de 1998. (news generation - v 1). Espera-se que a interoperabilidade e a compatibilidade entre as duas versões minimize os impactos trazidos pela mudança. Muitos nodos necessitam de manter uma compatibilidade com a antiga versão por um bom tempo. As aplicações existentes vão ter que sofrer uma reestruturação visando suportar as mudanças ocorridas no protocolo. Estas tem que serem capazes de suportar as duas versões sem restrições. Permitindo uma internet totalmente operante durante o processo de migração, e depois do mesmo. Administradores de redes precisam ficar familiarizados com as alterações sofridas pelo protocolo para garantir assim uma transição clara e simples aos usuários. É necessário que se siga uma ordem na hora da migração, ou seja, é como se considerássemos a Internet como uma árvore. Onde os nodos que devem ser migrados primeiro são os de menor ordem. Com isto temos os servidores de DNS como os primeiros a serem migrados. 6.1 Transição IPv4 / IPv6 Até o presente momento todos concordam que a migração trará vários benefícios e tornará a internet realmente uma rede global. O número de nodos conectados à Internet atualmente torna impossível e inviável a migração total, seria preciso parar toda a rede por um determinado tempo. Nenhum usuário está disposto a esperar o tempo necessário para uma migração total, o que é totalmente compreensível, levando-se em consideração que várias pessoas e empresas dependem totalmente desta rede. Por isto levantou-se a possibilidade de migração nodo a nodo. Um grande desafio a ser enfrentado, desafio este que fica mais tranqüilo quando levamos em conta a compatibilidade embutida na nova versão. Apesar disto devemos considerar que alterações no protocolo podem trazer problemas para as aplicações existentes, estas devem migrar ou até mesmos serem implementadas novamente para que seja assegurada uma transição clara e sem problemas. A primeira palavra chave neste processo é a interoperação, ou seja, as duas versões devem poder permanecer na rede simultaneamente, se comunicando e endereçando. A segunda palavra é facilidade, deve ser fácil a atualização (upgrade) de softwares da versão 4 para a versão 6. Esta facilidade deve ser oferecida para todos os usuários independente do mesmo ser um administrador de rede, técnico ou usuário final. Podemos também optar pela implementação do TCP/IP com pilha dupla (IPv4 , IPv6), nos hosts e roteadores. A possibilidade de autoconfiguração deve ajudar muito, pois elimina a intervenção humana na configuração do sistema. Apesar da nova versão ter sido totalmente reestruturada ela mantém características da atual. Podemos citar como exemplo o fato da nova versão suportar endereços com versão 4. Temos também o fato de que endereços IPv6 podem ser encapsulados em endereços IPv4, garantindo assim a comunicação entre as duas versões, pelo menos enquanto elas coexistirem. A compatibilidade entre as versões e o conhecimento global da atual versão pode levar alguns usuários a encararem com receio a atualização de versão. Receio este que aumenta quando tomamos conhecimento que todos nós, direta ou indiretamente dependemos deste recurso que é a Internet. Mas como a nova versão apresenta benefícios que excedem o custo da migração, isto nos leva a crer que todos vão querer migrar. Considerando que a migração afetará milhões de dispositivos de rede, fica bem claro para todos que haverá um período estendido de coexistência das duas versões. Coexistência esta já considerada no desenvolvimento da nova versão. Devem ser incluídos recursos para que pacotes IPv6 trafeguem em redes IPv4, e pacotes IPv4 trafeguem em redes IPv6, permitindo que organizações com IPv4, tenham a opção de não migrarem para o IPv6, bem como as com IPv6 tenham as melhorias oferecidas, sem perder a comunicação com as redes que ainda não migraram. Outras questões muito importantes a serem observadas na migração são: planejamento e alocação de endereços, requisitos de software, requisitos de hardware, velocidade das ligações (links), recursos financeiros, etc. As alterações sofridas pelo novo protocolo são bem significativas, e já era de se esperar um impacto sobre os demais padrões usados na internet. Estima-se que mais de 50% dos padrões usados precisará de revisão para o convívio com a nova versão. Os novos projetos e propostas de padrões (PSProposed Standard) também estão sendo afetados. Revisões estão sendo feitas em textos PS (Proposed Standard), protocolos, formatos de pacotes. Em muitos casos chega-se a conclusão que não haverá nenhum problema, e em outros são feitos os ajustes necessários para a migração. Roteadores e máquinas devem ter seus programas de rede trocados, sem obrigar que todos os usuários do mundo tenham que mudar ao mesmo tempo. O único pré-requisito é que servidores de DNS tenham sua versão trocada antes. Quando as máquinas sofrerem atualizações os roteadores podem manter seus endereços IPv4, nodos IPv6 devem comunicar com nodos IPv6 mesmo que a estrutura entre eles seja IPv4. 6.2 Mecanismos desenvolvidos para a migração Foram criados dois mecanismos de transição permitindo assim uma garantia de flexibilidade aos administradores de redes, com relação a como e quando a migração vai ser feita nos hosts e roteadores. Dual-stack: nodos IPv6 devem ter, inicialmente duas pilhas TCP/IP internas (versão 4 e versão 6), através do campo versão o protocolo decide qual irá ser usada. Esta opção permite a comunicação entre nodos já atualizados com IPv6 e nodos IPv4, bem como realizar roteamento de pacotes a nodos que usem somente o IPv4. Se considerarmos que atualmente a maioria dos routers usados pelas várias empresas já apoiam atualmente múltiplos protocolos, esta solução não deve ser crítica. Muitas Workstations usam uma combinação de protocolos IPv4, IPX (Internal Packet e Xchange), Apple Talk, NetBIOS, SNA, DECnet, e outros protocolos. Logo a inclusão de mais um não é um ponto crítico. Tunneling: consiste em transmitir um datagrama IPv6 como pacote de dados de um datagrama IPv4, permitindo a comunicação com nodos que só aceitam IPv4. A rede IPv4 é vista como um túnel, o endereço do nodo final deste túnel é o endereço de destino do datagrama. O pacote IPv6 trafega normalmente até o seu destino, neste caso o nodo final deve ter a pilha que suporte endereços IPv6. 6.3 Conclusão Com o objetivo de resaltar os fatores que devem ser considerados na migração, evitando assim surpresas desagradáveis, discutimos as soluções oferecidas, para que a migração seja feita de maneira transparente e objetiva, não causando mais transtornos que os absolutamente necessários ou inevitáveis. 7. Conclusão O IP é um protocolo que faz a entrega de datagramas sem conexão, o mesmo não garante que os datagramas chegarão ao destino e nem que serão recebidos na mesma ordem que foram enviados. Sendo que a característica muito forte deste é a possibilidade de comunicação entre máquinas completamente diferentes, ou seja com hardwares e softwares distintos. O crescimento exponencial apresentado pela rede chamada Internet, uma estrutura cliente-servidor muito robusta, leva seus projetistas a novos estudos para melhorar e oferecer melhores serviços a este mundo, que se mostra muito dinâmico onde, novas tecnologias são incluídas e as antigas ou se adaptam a elas ou tornam-se obsoletas. O protocolo usado atualmente, ou seja, IPv4 conseguiu acomodar todas as mudanças, tornando-se cada vez mais popular. Mas temos que considerar que o fenômeno do crescimento exerce uma pressão enorme e constante sobre a infra-estrutura da Internet, obrigando uma reestruturação, melhora de desempenho, segurança, facilidades para o usuário na configuração e administração de redes. E um problema ainda mas grave é que os endereços disponíveis se esgotariam muito brevemente, isto se as tabelas de roteamento não esgotassem a capacidade dos hardwares de roteamento antes. Com a nova proposta de versão do protocolo (IPv6), teremos mais espaço de endereçamento, mais níveis de hierarquia, maior número de nodos endereçáveis, auto-configuração destes nodos, compatibilidade e interoperabilidade com a antiga versão. A mudança de 4 para 16 octetos, vem para permitir o endereçamento de mais de um bilhão de hosts. A chamada flexibilidade é uma das características obrigatórias para a implementação do novo protocolo permitindo a inclusão de cabeçalhos de suporte para autenticação, integridade de dados e confiabilidade, e também facilitando implementações futuras. Esta versão reflete o amadurecimento da tecnologia de redes, e o novo protocolo tem em vista uma verdadeira rede mundial com múltiplos usos. Acredita-se atualmente que o uso do novo protocolo e uma reestruturação da Internet solucione boa parte dos problemas atualmente enfrentados pelos usuários. Estima-se que o processo de migração seja simples e claro para os usuários da rede. Fica mas fácil visualizar a migração ao considerarmos a compatibilidade encontrada na nova versão, mas devemos considerar que uma alteração no protocolo pode trazer problemas para as aplicações existentes. Outro problema que pode ser enfrentado diz respeito a popularidade do atual protocolo, que pode trazer sérios problemas no que se refere a uma migração, pois isto contribui para que uma substituição seja encarada como algo perigoso, ou seja podem ocorrer críticas, ou até mesmo boicotes. O que se espera é que as novas funcionalidades, facilidades e serviços venham para extinguir estes pensamentos. Acredita-se que o chamado custo benefício seja um bom estímulo a migração. Percebe-se agora que com a adoção do novo protocolo muita coisa irá mudar: nova terminologia, novas e muitas características interessantes, novo processo de roteamento, etc. Para se continuar trabalhando satisfatoriamente com esta rede, uma adaptação a esta nova tecnologia será em breve inevitável. Devemos começar a pensar neste fato em breve, pois pelo que pudemos perceber ao longo deste trabalho, as mudanças não param e se nós não nos adaptarmos a elas estamos fora, sem ao menos uma possibilidade de segunda chance. Depois de todas estas questões levantadas podemos pensar, mas porque devemos preocupar com isto, eu não seremos afetados. Pensamento totalmente equivocado, todas as pessoas o serão, pois atualmente é quase que inacreditável o número de pessoas e empresas que se encontram totalmente dependentes desta rede. Conseguentemente mesmo que o problema não nos afete diretamente, ele vai acabar, mais cedo ou mais tarde, por nos prejudicar indiretamente. Bibliografia LIVROS SOARES, LEMOS E COLCHER, L. F. G., LEMOS, G. e S., Das LANs, MANs e WANs as redes ATM, segunda edição, 1995. SOUSA, L. B., Redes Transmissão de dados, voz e imagem, Primeira edição, Editora Erica Ltda., 1996. GASPARINI, A. F. L., TCP/IP Conceitos e Funcionamento, Telecon Consultoria e Treinamento em Telemática Ltda., 1993. GONÇALVES, M., e NILES, K., Ipv6 Networks, Ed. McGraw-Hill, 1997. Referências Bibliografias LIVROS CERVO e BERVIAN, A. L. e, P., Metodologia científica para uso de estudantes universitários, Terceira edição, Aso Paulo, Mc Graw Hill do Brasil, 1983. COMMER, E. D., Internet with TCP/IP, volume I, Principles and Architecture Third Edition. COMMER, D., Internetworking With TCP/IP, vol. I, Prentice Hal Inc., 1991. BARRELA e GASPARINI, F. E. e A. F. L., TCP/IP Solução para conectividade, Editora Erica Ltda., 1993. COMMER e SERVENS, D. L., Internetworking With TCP/IP, vol. II, Prentice Hal Inc., 1991. DALA e SUNSHINE, Y. e c, Connection Management in Transport Protocols, Computer Networks, vol. 2, Edição 6, 1978. MANUAIS Gartner-Group - Seminários de Tendências Tecnológicas - 1994. Cyclades-PathRouter - Roteador IP - Segunda versão - 1997. Apostila TCP/IP - Rio Datacentro - PUC/Rio DNS & BIND - Paul Albirtz & Cricket Liu - O’Reilly & Associates. Routing in the Internet - Christian Huitema TCP/IP Network Administration - First - Craig Hunt - O’Reilly & Associates. Curso de Redes de Computadores - Modelo TCP/IP - 1997. PÁGINAS INTERNET Robert M. Hinden, "IP Next Generation http://playground.sun.com/ipng/INET-IPng-Paper.html. Overview", 14 Maio de 1995, Morgan Kaufmann Publishers, "Next Generation IP", http://literary.com/mkp/new/3689/book/node53.html. Nierle HomePage, "Internet Protocol Version 6", 13 Junho de 1996, http://www.stl.nps.navy.mil/~jenierle/chapt6.html. Nierle HomePage, "Migration Internet Protocol Version 6", 13 Junho de 1996, http://www.stl.nps.navy.mil/~jenierle/chapt8.html R&D Home Page, "Next-Generation IP Protocol", http://info.hgs.cae.ntt.jp/RD/ACT/RD_act_2/next.html William Stallings, "IPv6: The New Internet Protocol", http://www.ieee.org/comsoc/stallings.html. http://penta.ufrgs.br:80/redes296/IPv6/ A. Torminaga, O. Nakamura, F. Teraoka, J. Murai. "Problems and Solucions of DHCP: Experiences with DHCP implementation an Operation", 10 Maio de 1997, http://info.isoc.org/HMP/PAPER/127/html/paper.html. Wobus, Jonh. "DHCP FAQ", http://web.syr.edu/~jmwobus/comfaqs/dhcp.faq.html, 17 maio de 1997. RFCs [RFC-791] Postel, J., "Internet Protocol", STD 5, RFC 791, USC/Information Sciences Institute, Setembro 1981. [RFC-792] Postel, J., "Internet Control Message Protocol", STD 5, RFC 792, USC/Information Sciences Institute, Setembro 1981. [RFC-822] M.R. Horton, "Standard for the Format of ARPA Internet Text Messages", June 1983 ( Obsoleted by RFC 1036 ). [RFC-850] M.R. Horton, "Standard For Interchange of Usenet Messages", June 1983 ( Obsoleted by RFC 1036 ). [RFC-1036] M.R. Horton and R. Adams, "Standard For Interchange of Usenet Messages", December 1987. [RFC-1058] Hedrick, C., "Routing Information Protocol", RFC 1058, Rutgers University, Junho 1988. [RFC-1112] Deering, S., "Host Extensions for IP Multicasting", STD 5, RFC 1112, Stanford University, Agosto 1989. [RFC-1122] Braden, R., "Requirements for Internet Hosts - Communication Layers", STD 3, RFC 1122, USC/Information Sciences Institute, Outubro 1989. [RFC-1191] Mogul, J., and S. Deering, "Path MTU Discovery", RFC 1191, DECWRL, Stanford University, Novembro 1990. [RFC1326] Tsuchiya, P., "Mutual Encapsulation Considered Dangerous", RFC 1326, Maio 1992. [RFC-1529] Fuller, V., Li, T., Yu, J. e Varadahan, K., "Classes Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy", RFC 1529, BARRNet, Cisco, MERIT e OARnet, Setembro 1993. [RFC1629] Colella, R., Callon, R., Gardner, E., and Y. Rekhter, "Guidelines for OSI NSAP Allocation in the Internet", RFC 1629, Maio 1994. [RFC-1661] Simpson, W., Editor, "The Point-to-Point Protocol (PPP)", STD 51, RFC 1661, Daydreamer, Julho 1994. [RFC-1700] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1700, USC/Information Sciences Institute, Outubro 1994. [RFC-1723] Malkin, G., "RIP Version 2 - Carrying Additional Information", RFC 1723, Xylogics, Inc., Novembro, 1994. [RFC1825] Atkinson, R., "Security Architecture for the Internet Protocol", RFC 1825, Naval Research Laboratory, Agosto 1995. [RFC-1826] Atkinson, R., "IP Authentication Header", RFC 1826, Naval Research Laboratory, Agosto 1995. [RFC-1827] Atkinson, R., "IP Encapsulating Security Payload (ESP)", RFC 1827, Naval Research Laboratory, Agosto 1995. [RFC-1828] Metzger, P. e Simpsom, W., "IP Authentication using Keyed MD5", RFC 1828, Piermont e Daydreamer, Agosto 1995. [RFC-1829] Karn, P., Metzger, P. e Simpson, W., "The ESP DESC-CBC Transform", RFC 1829, Piermont e Daydreamer, Agosto 1995. [RFC1883] Deering, S., and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 1883, Xerox PARC e Ipsilon Networks, Dezembro 1995. [RFC1884] Hinden, R., and S. Deering, "IP Version 6 Addressing Architecture", RFC 1884, Ipsilon Networks e Xerox PARC, Dezembro 1995. [RFC-1885] Conta, A., and S. Deering, "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification", RFC 1885, Digital Equipment Corporation, Xerox PARC, Dezembro 1995. [RFC-1886] Tomson S., e Huitema, C. "DNS Extensions to suport IP version 6", RFC 1886,Bellcore e INRIA, Dezembro 1995. [RFC-1887] Rekhter, Y. e Li, T., "An Architecture for IPv6 Unicast Address Allocation", RFC 1887,Cisco Systems, Dezembro 1995. [RFC-1897] Hinden R. e Postel J., " IPv6 Testing Address Allocation", RFC 1897, Ipsilon Networks e ISI, Janeiro 1996. [RFC-1924] Elz, R., "A Compact Representation of IPv6 Addresses", RFC 1924, University of Melbourne, Abril 1996. [RFC-1933] Gilligan, B. and E. Nordmark., "Transition Mechanisms for IPv6 Hosts and Routers, Sun Microsystems", RFC 1933, Sun Microsystems, Inc., Abril 1996. [RFC1970] Narten, T., Nordmark, E., and W. Simpson, "Neighbor Discovery for IP Version 6 (IPv6)", RFC1970, Agosto 1996. [RFC1971] Thompson, S., and T. Narten, "IPv6 Stateless Address Autoconfiguration", RFC1971, Agosto 1996. [RFC-1981] McCann, J., Deering, S., and J. Mogul, "Path MTU Discovery for IP version 6", RFC 1981, Agosto 1996. [RFC-2133] Gilligan, R., Thomson, S., Bound, J., and W. Stevens, "Basic Socket Interface Extensions for IPv6", RFC 2133, Abril 1997. [RFC-2185] Callon R., Haskin D., "Routing Aspects Of IPv6 Transition", RFC 2185, Setembro 1997. Apêndice A Atualmente as RFCs mais usadas na internet são as descritas abaixo: RFC Descrição do documento 768 User Datagram Protocol (UDP) 783 Trivial File Transfer Protocol (TFTP) 791 Internet Protocol (IP) 792 Internet Control Message Protocol (ICMP) 793/1323 Transmission Control Protocol (TCP) 822 Standard for the Format of ARPA Internet Text Messages 826 Address Resolution Protocol (ARP) 854 Virtual Terminal Protocol (Telnet) 877/1356 IP over X.25 Networks 903 Reverse Address Resolution Protocol (RARP) 904 Exterior Gateway Protocol (EGP) Version 2 950 Internet Subnetting Procedures 951 Bootstrap Protocol (BootP) 1001 Protocol Standard for a NetBIOS Service on a TCP/UDP Transport: Concept and Methods 1002 Protocol Standard for a NetBIOS Service on a TCP/UDP Transport: Specifications 1009 Internet Gateway Requirements 1042 IP over IEEE 802 Networks 1058 Routing Information Protocol (RIP) 1063 Maximum Transmission Unit Discovery Option 1075 Distance Vector Multicast Routing Protocol (DVMRP) Detailed 1084 BootP Vendor Extensions 1108 Revised Internet Protocol Security Option (RIPSO) 1112 Internet Group Management Protocol 1155 Structure and Identification of Management Information 1156 Internet Management Information Base 1157 Simple Network Management Protocol (SNMP) 1188 IP over FDDI 1247 Open Shortest Path First (OSPF) Version 2 1256 Router Discovery 1267 Border Gateway Protocol (BGP) Version 3 1519 Classless Inter-Domain Routing (CIDR) 1532 Clarification’s and Extension to BootP for the Bootstrap Protocol 1533 DHCP Options and BootP Vendor Extensions 1542 Clarification's and Extension to BootP for DHCP 1654 BGP Version 4 Apêndice B Algumas RFCs, padrões que serão usadas pela nova versão do protocolo IPv6. Sendo que a principal até o presente momento é a RFC 1885. RFC Descrição do documento 1112 Host Extensions for IP Multicasting 1122 Requirements for Internet Hosts - Communication Layers 1191 Path MTU Discovery 1326 Mutual Encapsulation Considered Dangerous 1519 Classless Inter-Domain Routing and Address Assigment and Aggregation Strategy 1629 Guidelines for OSI NSAP Allocation in the Internet 1752 The Recommendation for the IP Next Generation Protocol 1809 Using the Flow Label Field in IPv6 1825 Security Architecture for the Internet Protocol 1881 IPv6 Address Allocation Management 1883 Internet Protocol, Version 6 (IPv6) Specification 1884 IP Version 6 Addressing Architecture 1885 Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification 1886 DNS Extensions to support IP version 6 1887 An Architecture for IPv6 Unicast Address Allocation 1888 OSI NSAPs and Ipv6 1897 IPv6 Testing Address Allocation 1924 A Compact Representation of IPv6 Addresses 1933 Transition Mechanism for IPv6 Hosts and Routers 1970 Neighbor Discovery for IP Version 6 (IPv6) 1971 IPv6 Stateless Address Autoconfiguration 1972 A Method for the Transmission of IPv6 Packets over Ethernet Networks 1981 Path MTU Discovery for IP version 6 2019 A Method for the Transmission of IPv6 Packets over FDDI Networks 2023 IP Version 6 over PPP 2030 Simple Network Time Protocol (SNTP) Version 4 for IPv4, IPv6 and OSI 2073 An IPv6 Provider-Based Unicast Address Format 2080 RIPng for Ipv6 2133 Basic Socket Interface Extensions for Ipv6 2147 TCP and UDP over IPv6 Jumbograms 2185 Routing Aspects Of IPv6 Transition 2292 Advanced Sockets API for IPv6 [m1]