CENTRO ESTADUAL DE ENSINO TECNOLOGICO “PAULA SOUZA”
FACULDADE DE TECNOLOGIA DE LINS
CURSO SUPERIOR DE TECNOLOGIA EM REDES DE
COMPUTADORES
CLÁUDIA QUINTO FELIX
UMA ABORDAGEM SOBRE O PROBLEMA DA FALTA DE
ALOCAÇÃO DE ENDEREÇOS NA INTERNET.
LINS/SP
1º SEMESTRE/2011
CENTRO ESTADUAL DE ENSINO TECNOLOGICO “PAULA SOUZA”
FACULDADE DE TECNOLOGIA DE LINS
CURSO SUPERIOR DE TECNOLOGIA EM REDES DE
COMPUTADORES
CLÁUDIA QUINTO FELIX
UMA ABORDAGEM SOBRE O PROBLEMA DA FALTA DE
ALOCAÇÃO DE ENDEREÇOS NA INTERNET.
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia de Lins para obtenção
do
Título
de
Tecnólogo(a)
em
Redes
Computadores.
Orientador: Prof. Dr. Renato Correia de Barros
LINS/SP
1º SEMESTRE/2011
de
Dedico este trabalho aos meus pilares: meus pais,
Ivone Quinto e Benedito Felix, e ao meu amor,
Philippe Gimenes Garcia. Vocês são a razão da
minha vida e sem vocês eu não estaria aqui.
AGRADECIMENTOS
Nesta oportunidade venho agradecer a todos que de maneira direta ou
indireta contribuíram para que eu tivesse forças para superar todos os obstáculos
que encontrei nesses anos de faculdade.
Mais uma vez agradecer meus pais Ivone e Benedito; e o Philippe que me
apoiaram e fizeram tudo que foi possível para que eu tivesse tempo e tranqüilidade
para me dedicar aos estudos. Mãe se um dia eu me tornar metade da mulher que
você é, eu já estarei realizada. Pai, obrigada por insistir nos meus estudos. Philippe,
obrigada por me amar e me ensinar que as dificuldades nunca são grandes demais.
Amo muito vocês.
Todos meus familiares que acreditaram e confiaram em mim. Meus amigos de
faculdade, Lígia, José Renato, Priscilla, André, e todos os outros que sempre
estavam lá quando eu precisei, nas horas boas e ruins, de risadas e dores de
cabeça. Aos “meninos inteligentes da sala” vocês têm uma grande parte na minha
conquista. E minha querida amiga Kellyn que esteve comigo em momentos difíceis.
Agradeço ao meu orientador Renato, ao Paulinho meu antigo orientador que
foi quem me inspirou a idéia e aos professores Júlio e Naylor que me ajudaram
muito nas minhas horas de desespero total.
Agradeço também a Deus que olha por mim e me guia.
Enfim agradeço a todos.
RESUMO
Este trabalho tem como objetivo geral analisar o Internet Protocol (IP) em suas
versões 4 e 6, sendo que nele é feita uma abordagem sobre o início da Internet e a
utilização do Transmission Control Protocol/Internet Protocol (TCP/IP), a expansão
inesperada, os problemas com o IPv4 decorrentes desse fato, as soluções adotadas
de maneira temporária e permanente com a implementação do IPv6. Decorrente da
expansão inesperada da Internet notou-se que o espaço de endereçamento IPv4
que contava com 32 bits seria insuficiente para atender a demanda por endereços
IP. Porém como este fato foi notado poucos anos após o uso da Internet ter se
tornado global, algumas soluções foram elaboradas para evitar que o problema
iminente da possível escassez de endereços prejudicasse a rede mundial de
computadores, são elas: Classeless Inter-Domain Routing (CIDR), Network Address
Translation (NAT), Dynamic Host Configuration Protocol (DHCP), Variable Lenght
Subnet Masks (VLSM), as sub-redes, o uso de endereços privados e também a
solução final, o IP Next Generation (IPng) ou IPv6 que oferece 128 bits de espaço
para alocação de endereços na Internet. O uso dessas tecnologias adiou a
necessidade de se implementar de imediato o IPv6, pois foi uma maneira de
economizar endereços. Porém com a distribuição dos últimos cinco blocos para as
organizações regionais que ocorreu em fevereiro de 2011, o IPv6 já está sendo
implementado. O presente trabalho foi realizado através de pesquisas bibliográficas
e elaboração de um estudo de caso onde foi exemplificada a configuração de uma
rede virtual com endereços IPv6, sendo que estes são IPv4 que foram convertidos.
Já que durante a fase de transição que tem duração prevista de aproximadamente
10 anos eles poderão ser utilizados de maneira embutida no IPv6 para que haja
compatibilidade. Em suma a pesquisa realizada mostra todos os aspectos relevantes
a tecnologias já utilizadas e também mostra um ponto de partida para estudos
futuros sobre a nova tecnologia da Internet.
Palavras chaves: IPv4, IPv6, sub-redes.
ABSTRACT
This paper aims at analyzing the Internet Protocol (IP) versions 4 and 6, which
generates an approach is made on the beginning of the Internet and use the
Transmission Control Protocol / Internet Protocol (TCP / IP), the unexpected
expansion the problems with IPv4 due to this fact, the solutions adopted in a
temporary and permanent implementation of IPv6. Unexpected due to the expansion
of the Internet noted that the IPv4 address space that had 32-bit would be insufficient
to meet demand for IP addresses. But as this fact was noted a few years after the
use of the Internet have become global, some solutions are designed to prevent the
impending problem of scarcity of addresses can undermine the global computer
network, they are: Classeless Inter-Domain Routing (CIDR ), Network Address
Translation (NAT), Dynamic Host Configuration Protocol (DHCP), Variable Length
Subnet Masks (VLSM), sub-networks, the use of private addresses and also the final
solution, the IP Next Generation (IPng) or IPv6 which provides 128 bits of space for
allocating Internet addresses. The use of these technologies has delayed the need to
immediately implement IPv6, because it was a way to save addresses. But with the
distribution of the last five blocks to regional organizations that occurred in February
2011, IPv6 is already being implemented. This work was done through literature
searches and preparation of a case study which was exemplified configuration of a
virtual network with IPv6 addresses, and these are IPv4 that have been converted.
Since during the transition phase that is expected to last about 10 years they can be
used in an IPv6 built in for compatibility. In short, the survey shows all relevant
aspects of the technologies already in use and also shows a starting point for future
studies on the new Internet technology.
Keywords: IPv4, IPv6 subnets.
LISTA DE ILUSTRAÇÕES
Figura 3.1: Posicionamento e operação do NAT...............................................
40
Figura 4.1: Cabeçalho principal com campos obrigatórios do IPv6...................
50
Figura 4.2: Cabeçalho do IPv4........................................................................... 53
Figura 4.3: Formato do endereço Ethernet de 48 bits.......................................
62
Figura 5.1: Comando para instalar o IPv6 no Windows XP...............................
66
Figura 5.2: Instalação do IPv6 a partir da interface gráfica................................ 67
Figura 5.3: Atribuição de um endereço IPv6 no Windows XP...........................
68
Figura 5.4: Comando ipconfig............................................................................
68
Figura 5.5: Atribuição de um endereço IPv6 no Ubuntu....................................
69
Figura 5.6: Ping a partir do Windows XP...........................................................
70
Figura 5.7: Ping a partir do Ubuntu....................................................................
71
Figura 5.8: Inserindo IPv4 no conversor online.................................................. 72
Figura 5.9: IPv6 convertido................................................................................
72
Figura 5.10: IPv6 condensado...........................................................................
73
Figura 5.11: IPv6 alternativo..............................................................................
73
LISTA DE TABELAS
Tabela 2.1: Distribuição de classes..................................................................
26
Tabela 2.2: Notação Hexadecimal e decimal com ponto..................................
27
Tabela 3.1: Máscaras padrão............................................................................
31
Tabela 3.2: Divisão da rede 229.45.32.0 em 16 sub-redes...............................
33
Tabela 3.3: Endereços Privados........................................................................
37
Tabela 4.1: Cabeçalhos de extensão................................................................. 54
Tabela 4.2: Divisão Proposta dos endereços IPv6 em tipos.............................. 59
LISTA DE QUADROS
Quadro 2.1: Formato de endereços IP............................................................... 25
Quadro 4.1: Formato do cabeçalho de hop-by-hop para jumbogramas............
55
Quadro 4.2: Cabeçalho de extensão para roteamento......................................
56
Quadro 4.3: Codificação do endereço IPv4 em um endereço IPv6...................
60
Quadro 4.4: Divisão do endereço Unicast.........................................................
61
LISTA DE ABREVIATURAS E SIGLAS
ADSL – Asymmetric Digital Subscriber Line.
APIPA – Automathic Private IP Address.
ARP – Address Resolution Protocol.
ARPANET – Advanced Research Projects Agency NETwork.
BOOTP – BOOTstrap Protocol.
BSD – Berkeley Software Distribution.
CERN – Conseil Européen pour la Recherche Nucléaire.
CIDR – Classeless Inter-Domain Routing.
CLNP – Connection-Less Network Protocol.
CSNET – Computer Science NETwork.
DARPA – Defense Advanced Research Projects Agency.
DCA – Defenses Communication Agency.
DHCP – Dynamic Host Configuration Protocol.
DNS – Domain Name System.
IANA – Internet Assigned Numbers Authority.
ICANN – Internet Corporation for Assigned Names and Numbers.
ICCB – Internet Control and Configuration Board.
IEEE – Institute of Electrical and Electronics Engineers.
IETF – Internet Engineering Task Force.
IP – Internet Protocol.
IPv4 – Internet Protocol version 4.
IPv6 – Internet Protocol version 6.
ISP – Internet Service Provider.
LACNIC – Latin American and Caribbean Internet Addresses Registry.
LAN – Local Area Network.
MILNET – Military Net.
NAT – Network Address Translation.
Nic.br – Núcleo de Informação e Coordenação do Ponto BR.
NSF – National Science Foundation.
NSFNET – National Science Foudation NETwork.
OSPF –Open Shortest Path First.
RARP – Reverse Address Resolution Protocol.
RFC – Request For Comments.
RIP – Routing Information Protocol.
RIR – Regional Internet Registry.
TCP/IP – Transmission Control Protocol/Internet Protocol.
UDP – User Datagram Protocol.
URSS –União das Repúblicas Socialistas Soviéticas.
VLSM –Variable Lenght Subnet Masks.
WWW – World Wide Web.
SUMÁRIO
INTRODUÇÃO .......................................................................................................... 15
1 INÍCIO DA INTERNET E SUA POPULARIZAÇÃO ................................................ 18
2 ENDEREÇAMENTO IP (INTERNET PROTOCOL) ................................................ 24
2.1 SURGIMENTO DO PROBLEMA RELATIVO AO ESGOTAMENTO DOS
ENDEREÇOS IPv4 ................................................................................................... 28
3 SOLUÇÕES PARA O ESGOTAMENTO DO IPv4 .................................................. 30
3.1 SUB-REDES ....................................................................................................... 31
3.2 CIDR (CLASSELESS INTER-DOMAIN ROUTING) ............................................ 33
3.3 VLSM (VARIABLE LENGTH SUBNET MASKS) ................................................. 34
3.4 ENDEREÇOS PRIVADOS .................................................................................. 37
3.5 NAT (NETWORK ADDRESS TRANSLATION) ................................................... 37
3.6 DHCP (DYNAMIC HOSTS CONFIGURATION PROTOCOL) ............................. 43
4 IPv6 ........................................................................................................................ 46
4.1 RECURSOS DO IPv6.......................................................................................... 48
4.2 O CABEÇALHO PRINCIPAL DO IPv6 ................................................................ 49
4.3 CABEÇALHOS DE EXTENSÃO ......................................................................... 54
4.4 TRÊS TIPOS DE ENDEREÇOS BÁSICOS DO IPv6 .......................................... 57
4.5 PROPOSTA DE ATRIBUIÇÃO DE ESPAÇO DE ENDEREÇOS IPv6 ................ 58
4.6 TRANSIÇÃO E ENDEREÇOS IPv4 EMBUTIDOS .............................................. 59
4.7 ENDEREÇOS NÃO ESPECIFICADOS E DE LOOPBACK ................................. 60
4.8 ESTRUTURA DO ENDEREÇO UNICAST .......................................................... 61
4.9 IDENTIFICADORES DE INTERFACE................................................................. 61
4.10 ENDEREÇOS LOCAIS...................................................................................... 63
4.11 AUTOCONFIGURAÇÃO E REMUNERAÇÃO................................................... 63
5 FUNCIONAMENTO E CONFIGURAÇÃO DO IPv6 ................................................ 65
5.1 INSTALAÇÃO E CONFIGURAÇÃO O PROTOCOLO IPv6 ................................ 65
5.1.1 Windows XP ..................................................................................................... 66
5.1.2 Ubuntu .............................................................................................................. 69
5.2 REALIZAÇÃO DE TESTE DE COMUNICAÇÃO ................................................. 70
5.2.1 Ping a partir do Windows XP ............................................................................ 70
5.2.2 Ping a partir do Ubuntu..................................................................................... 71
5.3 CONVERSÃO DE ENDEREÇOS IPv4 EM IPv6 ................................................. 71
CONCLUSÃO............................................................................................................ 74
REFERÊNCIAS BIBLIOGRÁFICAS .......................................................................... 76
15
INTRODUÇÃO
Devido ao rápido crescimento da Internet e o endereçamento com classe, os
endereços Internet Protocol version 4 (IPv4) disponíveis estão se esgotando
rapidamente. (FOROUZAN , 2008)
Segundo Tanenbaum (2003), antes de entrar na discussão sobre o
esgotamento de endereços IP, é necessário lembrar alguns aspectos do
funcionamento de uma rede. A definição de rede é simples - um conjunto de
computadores e outros equipamentos interligados, que são capazes de se
comunicar utilizando para isso um conjunto de regras, chamadas de protocolos. O
(IP) é um protocolo específico projetado para ligar diferentes redes, tornando
possível a comunicação entre elas. A Internet foi definida pelo Federal Networking
Council norte-americano em 1995, como sendo o conjunto de redes de
computadores interligadas pelo Transmission Control Protocol e o Internet Protocol
(TCP/IP), que permite o acesso a informações e todo tipo de transferência de
dados), onde cada computador possui um numero identificador único chamado
endereço IP.
Quando a Internet surgiu era apenas uma rede acadêmica com cerca de 100
computadores interligados, e como não foi projetada para o uso comercial, segundo
Farrel (2005), o Internet Engineering Task Force (IETF), uma comunidade
internacional e aberta que se preocupava com a evolução da arquitetura da Internet
e seu perfeito funcionamento, começou a prever que o crescimento acelerado por
volta de 1993 aparentemente poderia fazer com que seu espaço de endereçamento
se esgotasse e 2 ou 3 anos, já aí previa-se um possível colapso.
Contudo, segundo o autor, as previsões iniciais de esgotamento não
ocorreram tão rápido quanto era calculado, pois foram desenvolvidas uma série de
16
tecnologias, que serviram para amenizar o problema como soluções temporárias,
para o problema trazido pelo crescimento acelerado de hosts na Internet. No
entanto, França (2005) afirma que essas soluções não são totalmente eficazes e
tampouco suficientes. A grande rede mundial ainda continua se expandindo, e a
adoção dessas soluções de emergência não tem acompanhado o seu ritmo. Em
verdade, elas até atrapalham o desenvolvimento de novas tecnologias. Porém
segundo Rodrigues (2010) essas tecnologias utilizadas em conjunto reduziram a
demanda de novos endereços IP, de forma que o esgotamento previsto na década
de 1990 ainda não ocorreu. Porém nos dias atuais encontra-se uma situação crítica,
pois o IANA previa o esgotamento para 2010, e o LACNIC previa que ocorresse em
algum momento entre 2012 e 2014. Mas, de acordo com Marsan (2011) os últimos
blocos IPv4 foram distribuídos para as Regional Internet Registry (RIR) em fevereiro
de 2011.
Este trabalho tem como objetivo principal esclarecer a questão do
esgotamento dos endereços IP da versão 4, onde será feita uma explanação sobre o
mesmo, os motivos que levaram a sua escassez e esgotamento iminente de
espaços para alocação dos endereços na Internet, suas soluções temporárias até
chegar ao IPv6 como solução definitiva.
Dentre os objetivos específicos estão: conhecer o IPv4, sua importância e
função na Internet desde o início; entender os motivos que levaram a escassez e o
esgotamento de seus endereços; discutir as soluções paliativas adotadas para
amenizar o problema causado pela escassez de endereços IPv4 válidos; analisar a
solução final, o IPv6, compreender seu funcionamento, suas características,
melhorias, implementação e configuração.
No que se refere à metodologia, a composição deste trabalho é feita a partir
de revisões bibliográficas de diversos autores, tais como: Tanenbaum, Comer,
Farrel, Vasconcelos; Vasconcelos, Scrimger et al, entre outros e estudos
especializados no assunto, para que se tenha nele uma base para estudos futuros.
É importante analisar esta questão, pois caso ocorresse o esgotamento dos
endereços IPv4 e não houvesse uma solução adequada, aconteceria um colapso na
Internet. Este tema está sendo alvo de muitos estudos e já está sendo
implementado, portanto é necessário conhecê-lo. O resultado dessa pesquisa é
mostrado a partir de uma implementação foi realizada a configuração do IPv6 em
uma rede virtual e seu funcionamento será exemplificado através de um teste de
17
conexão simples.
No primeiro capítulo é abordada a história da Internet desde o seu início como
um projeto de segurança em meados da Guerra Fria. É feita uma explanação de seu
desenvolvimento em meios acadêmicos e militares analisando também a sua
abertura para o mundo que resultou em uma expansão e crescimento inesperados.
No segundo capítulo é feita uma análise do protocolo IP, em sua versão 4, ou
IPv4, responsável por endereçar cada máquina na rede desde o início da Internet,
onde
são
mostradas
suas
principais
características
sobre
funcionamento,
distribuição, espaço e utilização.
O terceiro capítulo aborda o surgimento do problema da escassez e iminente
falta de espaço para alocação de endereços IPv4 causado pela grande demanda.
O quarto capítulo faz uma análise sobre o IP version 6 ou IPv6, ressaltando
sua características, melhorias em relação ao IPv4 e compatibilidade entre os dois
protocolos.
Já o quinto capítulo é realizada a implementação de uma rede virtual com
endereços IPv6, relatando a configuração em sistemas operacionais já disponíveis e
seu funcionamento.
Conclui-se este trabalho com a retomada dos fatos que levaram a sua
realização e se os objetivos foram alcançados. E para finalizá-lo, é feito um
levantamento de possíveis continuações relacionadas a este trabalho, para que o
novo protocolo de endereçamento da Internet seja mais conhecido e disseminado.
18
1 INÍCIO DA INTERNET E SUA POPULARIZAÇÃO
Este capítulo abordará a história da Internet, começando do seu surgimento
em meados da Guerra Fria, passando por seus estudos em Universidades, sua
popularização e expansão.
A história da Internet começou no final da década de 1950, no auge da
Guerra Fria, quando as duas maiores potências do mundo na época, Estados
Unidos e União das Repúblicas Socialistas Soviéticas (URSS), buscavam avanços
tecnológicos. Surgiu aí, um projeto de uma agência norte-americana de pesquisa, o
Defense Advanced Research Projects Agency (DARPA), com o principal objetivo de
interligar os computadores de seus departamentos de pesquisa, a fim de que esta
interligação sobrevivesse mesmo no caso de acontecer uma guerra nuclear.
(COMER, 2006)
De acordo com Comer (2006) o DARPA, criou a Advanced Research Projects
Agency NETwork (ARPANET), que foi a rede que deu origem à Internet, que era
responsável
por
interligar
quatro
instituições:
Universidade
da
Califórnia,
Universidade de Los Angeles e Santa Bárbara, o Instituto de Pesquisa de Stanford e
a Universidade de Utah, e teve início em 1969 nos Estados Unidos. A qual usava
interconexões de linha alugada ponto-a-ponto convencional, mas então a DARPA
financiou a exploração da comutação de pacotes na ARPANET.
O temor do ataque inimigo nunca aconteceu, mas o que o Departamento de
Defesa dos Estados Unidos não sabia era que tinha acabado de dar o pontapé
inicial para o maior fenômeno do século. Ficou sendo o único meio de comunicação
que em apenas quatro anos conseguiria atingir cerca de 50 milhões de pessoas.
Comer (2006) ainda afirma que da tecnologia DARPA, nasceu o TCP/IP um conjunto
19
de padrões de rede que especifica os detalhes de como os computadores se
comunicam, além de um conjunto de convenções para interconexões de redes e
encaminhamento de tráfego.
O TCP/IP é a tecnologia básica da Internet, que conecta mais de 650 milhões
de computadores em praticamente todos os lugares povoados do mundo. O que
torna o TCP/IP tão fantástico é que foi adotado mundialmente e com isso o aumento
da Internet em níveis globais foi enorme. O TCP/IP teve seu início na década de 70,
porém a arquitetura e os protocolos só tomaram a forma que tem hoje por volta de
1977-79. (COMER, 2006)
Segundo o autor, em 1979, foi criado um comitê denominado Internet Control
and Configuration Board (ICCB), que de uma maneira informal coordenava e guiava
o projeto dos protocolos e de arquitetura da Internet. Este comitê se reunia
regularmente até 1983, quando foi reorganizado.
Comer (2006, p.4) explica que “a Internet de forma global começou por volta
de 1980, quando a DARPA começou a converter máquinas conectadas às suas
redes de pesquisa aos protocolos TCP/IP”.
Em seu funcionamento pleno a ARPANET rapidamente começou a crescer e
se tornou o backbone, ou seja, o centro da nova Internet e foi usada para diversas
das primeiras experiências feitas com o TCP/IP.
A transição para a tecnologia da Internet se tornou completa em 1983,
quando a secretaria de Defesa dos Estados Unidos determinou que todos os
computadores que fossem conectados em redes de longa distância utilizassem o
TCP/IP, ao mesmo tempo a Defenses Communication Agency (DCA) decidiu dividir
a ARPANET em duas redes separadas, uma para continuar a pesquisa e uma para
comunicação militar. A parte que ficou para continuar a pesquisa manteve seu
nome, já a parte para comunicação militar que era um pouco maior ficou conhecida
como MILNET (Military Net), ou seja, a rede militar. (COMER, 2006)
Segundo Comer (2006), para encorajar pesquisadores universitários a adotar
e usar os novos protocolos, a DARPA disponibilizou à eles uma implementação com
um baixo custo. Nessa época a maior parte dos departamentos de computação
estava executando uma versão do sistema operacional UNIX disponível no Berkeley
Software Distribution (BSD) da Universidade da Califórnia, que normalmente era
chamado de Berkeley UNIX o BSD UNIX. A DARPA financiou 90% dos
departamentos de ciência da computação das universidades. E seu novo protocolo
20
chegou numa época particularmente significativa, pois muitos desses departamentos
estavam acabando de adquirir o segundo ou terceiro computador de seus
laboratórios e fazendo a sua conexão em redes locais. Os departamentos
precisavam de protocolos de comunicação capazes de fornecer serviços como
transferência de arquivos.
O autor ainda afirma que além de um conjunto de programas utilitários, o
Berkeley UNIX fornecia uma nova abstração no sistema operacional conhecida
como socket, o que permitia que programas e aplicativos acessassem protocolos de
comunicação. Uma generalização do mecanismo UNIX para dispositivos de entrada
e saída, a interface socket tem opções para vários tipos de protocolos de rede, além
do TCP/IP. A introdução da abstração de socket foi importante, pois permitiu que os
programadores usassem o protocolo TCP/IP com pouco esforço. A interface socket
tornou-se o padrão de fato sendo usado na maioria dos sistemas operacionais.
A National Science Foundation (NSF) percebeu que a comunicação de redes
logo seria uma parte crucial da pesquisa científica, então assumiu um papel ativo na
expansão da Internet TCP/IP no sentido de alcançar o máximo de cientistas
possível. No final da década de 1970, a NSF patrocinou um projeto conhecido como
Computer Science NETwork (CSNET), que tinha como objetivo conectar todos os
cientistas de computação. A partir de 1985, a NSF iniciou um programa para
estabelecer redes de acesso em torno de seus seis centros de supercomputação, e
em 1986 expandiu os esforços de rede financiando uma nova rede de backbone,
conhecida como backbone National Science Foudation NETwork (NSFNET). A NSF
também forneceu muito dinheiro para redes regionais, cada uma conectando as
principais instituições de pesquisa científica em determinadas áreas. (COMER,
2006)
Segundo o autor, após sete anos de seu início, a Internet cresceu e começou
a se espalhar por diversas redes individuais, localizadas por todos os Estados
Unidos e Europa. Eram cerca de 20 mil computadores em universidades, governos e
laboratórios de pesquisa. A Internet continuou crescendo, tanto em tamanho como
também em número de usuários, e seu crescimento foi mais rápido do que o
previsto. No final de 1987, era estimado que o crescimento tivesse atingido 15% por
mês. Em 2005, a Internet atingiu quase 300 milhões de computadores em 209
países. Porém a adoção antecipada do TCP/IP e o crescimento da Internet não
foram limitados a projetos financiados pelo governo. As principais corporações
21
fabricantes de computadores se conectaram a Internet, assim como muitas outras
grandes
corporações,
que
incluíam
companhias
de
petróleo,
indústrias
automobilísticas, empresas eletrônicas, companhias farmacêuticas e operadoras de
telecomunicações. Empresas médias e pequenas iniciaram sua conexão no final dos
anos 90. Além disso, muitas empresas usaram protocolos TCP/IP em suas Intranets
corporativas mesmo que escolhessem não fazer parte da Internet global. (COMER,
2006)
Na década de 1990, a ARPANET já era tecnologicamente obsoleta sendo
retirada de operação. Desde que a Internet foi liberada do ambiente militar, a sua
administração foi confiada pelo governo dos Estados Unidos à NFS, mas o controle
da NFS sobre a Net durou pouco. Com a tecnologia de redes de computadores no
domínio publico, e as telecomunicações plenamente desreguladas, a NFS tratou
logo de encaminhar a privatização da Internet. O Departamento de Defesa dos
Estados Unidos decidira anteriormente comercializar a tecnologia da Internet,
financiando fabricantes de computadores dos Estados Unidos para incluir o TCP/IP
em seus protocolos na década de 1980. Na década de 1990, a maioria dos
computadores dos Estados Unidos tinha capacidade de entrar em rede, o que
lançou os alicerces para a difusão da interconexão de redes. Em 1995 a NFSNET foi
extinta, abrindo o caminho para as operações privadas da Internet. (CASTELLS,
2003)
Segundo Castells (2003) no início da década de 1990, muitos provedores de
serviço de Internet montaram suas próprias redes e estabeleceram suas próprias
portas de comunicação em bases comerciais. A partir de então a Internet cresceu
rapidamente como uma rede global de redes de computadores. O que tornou isso
possível foi o projeto original da ARPANET, baseado numa arquitetura de múltiplas
camadas, descentralizada, e protocolos de comunicação abertos. Nessas condições
a NET pôde se expandir pela adição de novos nós e reconfiguração infinita da rede
para acomodar as necessidades de comunicação.
O que permitiu a explosão da Internet em nível mundial foi o desenvolvimento
da world wide web (www). Uma aplicação de compartilhamento de informação
desenvolvida em 1990, por um programador inglês, Tim Berners-Lee, que trabalhava
no Conseil Européen pour la Recherche Nucléaire (CERN), o Laboratório Europeu
para a física de partículas com base em Genebra. Embora seu próprio criador não
tivesse consciência disso, seu trabalho continuaria uma longa tradição de idéias e
22
projetos técnicos que, meio século antes, buscava a possibilidade de associar fontes
de informação através da computação interativa.
Berners-Lee transformou os sonhos passados em realidade quando em 1980
escreveu o programa Enquire, tendo a vantagem de que a Internet já existia. Este
software permitia obter e acrescentar informação de e para qualquer computador
conectado através da Internet. Tendo como colaborador o programador Robert
Calliau, construiu um programa navegador/editor em dezembro de 1990, e chamou
esse sistema de hipertexto de www, a rede mundial. O software do navegador da
web foi lançado na Net pelo CERN em agosto de 1991. Houve diversas tentativas de
desenvolver mais navegadores, e pouco tempo depois surgiu o Viola, produzido pela
Universidade da Califórnia em Berkeley. (CASTELLS, 2003)
O autor ainda afirma que em outubro de 1994, a Mosaic Communications
tornou disponível na NET o primeiro navegador comercial, o Netscape Navigator.
Depois do sucesso do Navigator, a Microsoft descobriu a Internet, e lançou em 1995
junto com o Windows 95, seu navegador o Internet Explorer. Além disso, em 1995, a
Sun Microsystems projetou o Java, uma linguagem de programação que permite
segundo Castells que miniaplicativos, os applets, “viajassem” entre os computadores
pela Internet, possibilitando que os usuários rodassem com segurança programas
baixados da Internet.
A Sun disponibilizou o Java gratuitamente na Internet, fazendo com que fosse
expandida a esfera de aplicações da web, e então a Netscape introduziu a
linguagem no Navigator. E em 1998, a Netscape reagindo à concorrência da
Microsoft disponibilizou o código-fonte do Navigator na Net. (CASTELLS, 2003)
Castells (2003) segue afirmando que todos os desenvolvimentos tecnológicos
decisivos que levaram à Internet tiveram lugar em torno de instituições
governamentais, importantes universidades e centros de pesquisa. A Internet não
teve início no mundo dos negócios, pois era uma tecnologia cara e arriscada demais
para ser assumida por organizações voltadas ao lucro. Em seu início as companhias
privadas que visavam o lucro não deram muita importância à Internet.
Porém o impacto das redes autônomas foi também decisivo no crescimento e
expansão global da Internet. Depois que a NSF abriu o acesso da NSFNET à redes
estrangeiras, de 1990 a 1995, quando a Internet foi privatizada, a proporção de
redes fora dos Estados Unidos ligadas à Internet dobrou, passando de 20 a 40% de
todas as redes conectadas. (CASTELLS, 2003)
23
Essa evolução e expansão fez com que ela se transformasse na Internet
conhecida nos dias atuais, utilizando-se de protocolos que tratam de seu
funcionamento e desempenho. Um destes é o protocolo IP que especifica os
endereços das máquinas na rede, este que será abordado no capítulo seguinte.
24
2 ENDEREÇAMENTO IP (INTERNET PROTOCOL)
Este capítulo irá abordar o Internet Protocol, também chamado de IP, que foi
desenvolvido para endereçar toda máquina ligada a uma rede.
Na Internet todos os computadores conectados se comunicam graças ao
protocolo TCP/IP, que é o uso em conjunto de dois protocolos que garantem a
estabilidade da comunicação e a localização dos endereços. Cada computador
ligado a um a rede tem seu código identificador, o endereço IP. (CASTELLS, 2003)
Segundo Farrel (2005) o IP passou por diversas revisões antes de se
estabilizar na versão 4. O IP é um protocolo para a entrega universal de dados em
todos os tipos de redes, nele os dados são empacotados em datagramas a serem
entregues.
Na Internet cada computador tem um endereço IP que o codifica, para
identificar a qual rede pertence e seu numero de host. A combinação é exclusiva:
dois computadores em uma rede, em princípio não podem ter o mesmo endereço IP.
O endereço IP não se refere realmente a um host e sim a uma interface de rede;
então, caso um host pertença a duas redes ele deverá possuir dois endereços IP,
porém na prática os hosts estão em uma única rede, portanto tem só um endereço
IP. (TANENBAUM, 2003)
Segundo o autor, durante décadas os endereços IP foram divididos em cinco
categorias conforme é mostrado no quadro 2.1, essa divisão era chamada de
alocamento de classes completo.
As redes de classe A podem ter até 16 milhões de endereços e seu uso foi
permitido apenas a grandes empresas. Algumas receberam estes endereços, tais
como, por exemplo: o serviço de correios dos Estados Unidos, que recebeu a rede
25
56, e que usa, portanto os endereços entre 56.0.0.0 e 56.255.255.255, a Ford
recebeu a rede 19 e assim também aconteceu com outras grandes empresas. Na
classe A, existe uma faixa de endereços que vai de 10.0.0.0 a 10.255.255.255 que
são usados para rede internas, que são invisíveis para a Internet. Cada endereço de
rede da classe A possui 8 bits de prefixo de rede com o bit mais significativo definido
para 0 e um número de rede de 7 bits, seguido por um número de host de 24 bits.
Mais recentemente as redes de Classe A passaram a ser chamadas de /8,
pronuncia-se barra 8, porque apresentam prefixo de rede 8 bits. (VASCONCELOS;
VASCONCELOS, 2007)
Quadro 2.1: Formato de endereços IP.
Fonte: Tanenbaum, 2003, p. 337.
As redes da classe B podem ter até 65.534 máquinas, utilizando os
endereços entre 128.x.x.x e 191.x.x.x. Elas são usadas por redes de médio porte,
tais como universidades, corporações e empresas. Na classe B, a faixa de
endereços entre 172.16.0.0 e 172.31.255.255 é de uso bem flexível, que pode ser
usada para sub-redes. Já a faixa de 169.254.0.0 e 169.254.255.255, denominada
Automathic Private IP Address (APIPA), que era usada em redes quando não se
tinha acesso à Internet, todos os computadores automaticamente recebiam este
endereço, a não ser aqueles que foram programados manualmente.
Cada endereço de rede da classe B possui 16 bits de prefixo de rede com os
dois bits mais significativos definidos para 10 e um número de rede de 14 bits,
seguido por um número de host de 16 bits. As redes de Classe B passaram a ser
chamadas de /16, pois apresentam prefixos de rede com 16 bits. Os endereços de
classe B tem se esgotado rapidamente. (VASCONCELOS; VASCONCELOS, 2007)
Nos endereços de classe C, as redes podem ter até 254 computadores. Ela
possui uma faixa de endereços IP reservados que vai de 192.168.0.1 a
26
223.255.254.255. Cada endereço de rede da classe C possui 24 bits de prefixo de
rede com os três bits mais significativos definidos para 110 e um número de rede de
21 bits, seguido por um número de host de 8 bits, por isso passaram a ser
chamadas de /24. (VASCONCELOS; VASCONCELOS, 2007)
A classe D é utilizada em redes Multicast, ou seja, o endereçamento e feito a
um grupo de hosts, onde um único pacote é enviado para múltiplos destinos.
(VASCONCELOS; VASCONCELOS, 2007)
A classe E, não é utilizada, pois foi reservada para realizar experiências.
(VASCONCELOS; VASCONCELOS, 2007)
Tabela 2.1 - Distribuição de classes.
Fonte: Vasconcelos; Vasconcelos, 2007, p.201.
Segundo o autor, alguns endereços são reservados e então não podem ser
utilizados para endereçar computadores na rede.
O endereço 0.0.0.0/8 significa “este computador”. Este é um endereço
reservado usado pelo protocolo de start up de um computador para obter o endereço
IP do próprio host. Como o próprio protocolo IP é utilizado para este fim e este
protocolo exige um endereço fonte, então o endereço 0.0.0.0/8 é utilizado.
(SCRIMGER et al, 2002)
O endereço com prefixo 127/8 é reservado para testes de aplicações TCP/IP
no próprio computador. É utilizado no caso de dois programas que querem se
comunicar via rede, então eles podem ser testados desta forma. Sendo assim toda
mensagem enviada para um endereço com prefixo 127, por exemplo, o endereço
27
127.0.0.1 será roteada para o outro programa tentando receber do mesmo
endereço. (SCRIMGER et al, 2002)
O autor ressalta que o endereço que começa com um prefixo de rede e é
seguido de zeros serve para designar o prefixo atribuído à rede sendo assim não
pode ser utilizado para identificar os computadores da rede. O endereço que tiver o
prefixo de rede seguido de 1 serve para enviar um pacote para todos os hosts de
uma rede, ou seja, é utilizado para broadcast.
Em uma rede privada, isto é, uma rede não acessível via Internet como, por
exemplo, uma rede doméstica que se conecta ao ambiente externo usando um
roteador, os endereços podem ser escolhidos dentro da faixa de endereços
reservados
para
redes
internas especificados na
tabela 2.1,
10.0.0.0
a
10.255.255.255, 172.16.0.0 a 172.31.255.255, 192.168.0.0 a 192.168.255.255. Tais
endereços não podem ser usados externamente para uso na Internet, pois não são
válidos.
O autor ainda afirma que em geral os endereços IP, que são números de 32
bits, são escritos em números decimais separados por pontos, para facilitar a
compreensão humana. Nesse formato, cada bit é escrito em notação decimal que
vai de 0 à 255.
Tabela 2.2 - Notação Hexadecimal e decimal com ponto.
Fonte: Farrel, 2005, p. 27.
Os endereços IP são atribuídos por meio das entidades registradoras
nacionais, cada uma delas responsável por um subconjunto de todos os endereços
disponíveis pela agência supervisora, a Internet Corporation for Assigned Names
and Numbers (ICANN). Essa é uma função crítica para a operação correta da
Internet, porque não podem existir duas máquinas, com o mesmo número IP, dentro
da mesma rede. Caso seja configurado um novo equipamento com o mesmo
28
número IP de uma máquina já existente, será gerado um conflito de Número IP e um
dos equipamentos, muito provavelmente o novo equipamento que está sendo
configurado, não conseguirá se comunicar com a rede. (RODRIGUES, 2010)
2.1 SURGIMENTO DO PROBLEMA RELATIVO AO ESGOTAMENTO DOS
ENDEREÇOS IPv4
Por volta de 1990, a Internet Engineering Task Force (IETF) começou a se
preocupar com o fato de o espaço de endereçamento do IPv4 ser muito pequeno
contando com apenas 32 bits, com aproximadamente 232 endereços disponíveis, o
que totaliza 4.294.967.296 endereços, mas o modo como esses endereços foram
divididos em classes levou a um desperdício significativo, dado que grandes
intervalos de endereços são atribuídos e usados apenas parcialmente. Além disso,
228 desses endereços são reservados para multicast, ou seja, os pertencentes a
classe D e outros 227 não são usados que são os que compõem a Classe E.
(FARREL, 2005)
De acordo com o autor, essa situação de falta de espaço para alocação de
endereços IP piorou com o sucesso da Internet e com o crescimento do uso de
computadores pessoais em escritórios e casas. Além disso, à medida que os
roteadores foram se tornando mais sofisticados e as redes mais complexas, a
quantidade de endereços IP atribuídos para identificar interfaces, em vez de nós,
estava crescendo no quadrado da taxa de novos roteadores. Então no início da
década de 1990, começaram os rumores sobre conectar tudo em redes, esses
sonhos ainda não são completamente realidade, mas os telefones móveis tornaramse onipresentes. Com o crescimento da popularidade dos celulares, as funções que
eles poderiam oferecer foram estendidas e tornou-se comum para os dispositivos
oferecerem acesso ao correio eletrônico ou à web. Isso representou um crescimento
enorme na demanda por endereços IP, e diversos gráficos na época faziam
previsões que os endereços IP se esgotassem em algum momento entre 2005 e
2011. E embora a taxa de crescimento tivesse diminuído, a quantidade de
endereços em uso continuava a crescer uniformemente, e já se previa que o IPv4
por fim precisaria ser substituído ou então suplementado para que seu espaço de
29
endereçamento seja aumentado. (FARREL, 2005)
Somente uma quantidade limitada das classes foi disponibilizada, por
exemplo, os primeiros componentes com valores entre 1 e 126 são reservados para
os endereços Classe A. Na prática menos de 50 endereços Classe A foram
atribuídos, basicamente para os criadores da Internet, como as forças armadas e
empresas de telecomunicação americanas. (TANENBAUM, 2003)
Segundo o autor, para garantir na Internet que cada host tenha um endereço
IP que seja único, existem órgãos regulamentadores responsáveis por designar
endereços IP para todas as empresas, organizações públicas e educacionais, que
irão se conectar a Internet. Esse órgão cede um endereço IP contendo a porção de
rede, cabendo ao administrador da rede fazer o projeto de endereçamento do
número de hosts desejados, utilizando-se do endereço fornecido.
O autor ainda afirma que muitas empresas constroem suas Intranets,
definindo internamente os endereços IP para seus hosts. É importante lembrar que
no momento em que se conectar a Intranet à Internet, será necessário solicitar ao
órgão competente um endereço IP que possa ser utilizado na Internet, o que
certamente implicará em alterar todos os endereços IP previamente definidos.
De acordo com o alerta feito em julho de 2001, pelo Internet Assigned
Numbers Authority (IANA), instituição responsável pelo sistema geral de registro de
domínios no mundo, poderia haver um “apagão” de endereços IP no mundo. Nesse
mesmo ano, o IANA realizou um estudo que estimava que já haviam sido
consumidos cerca de 68% dos endereços disponíveis no mundo. Com a explosão da
Internet e com o surgimento constante de mais e mais serviços e aplicações, os
atuais endereços IPv4 se tornaram um recurso escasso. Já se estimava que, em
2010 eles já estariam esgotados. (FARREL, 2005)
30
3 SOLUÇÕES PARA O ESGOTAMENTO DO IPV4
Este capítulo irá abordar as soluções utilizadas de maneira a adiar o
esgotamento dos endereços IP.
...o IP vem sendo amplamente utilizado há décadas. Ele tem funcionado
muito bem, o que é demonstrado pelo crescimento exponencial da Internet.
Infelizmente, o IP esta se tornando uma vítima de sua própria popularidade,
pois esta ficando sem endereços. Esse enorme desastre causou muita
discussão e controvérsia na comunidade da Internet sobre o que fazer em
relação a ele. (Tanenbaum, 2003, p.340)
O autor ainda ressalta que com a evolução e expansão da Internet ao longo
dos anos, surgiu o problema da escassez de endereços IP, sendo assim algumas
soluções tecnológicas paliativas foram também adotadas. Tais tecnologias foram
responsáveis por permitir redução da demanda por novos endereços, e a
racionalização na forma como eles eram distribuídos, fazendo com que seu
esgotamento fosse adiado.
Entre as tecnologias que foram adotadas de maneira a adiar o possível
esgotamento dos endereços IPv4, podem-se citar as mais relevantes, tais como: as
sub-redes, que são um segmento físico de rede local; o Classless Inter Domain
Routing (CIDR) uma tecnologia que permite o roteamento sem o uso de classes; o
Variable Lenght Subnet Mask (VLSM) que é a segmentação lógica de sub-redes; os
endereços privados, que são faixas de endereços que não são válidos na Internet,
podendo ser utilizados somente em redes internas; o Network Address Translation
(NAT) uma tecnologia usada de modo a permitir que redes que utilizam endereços
privados possam se conectar à Internet, bastando ter apenas um endereço válido e
o Dynamic Host Configuration Protocol (DHCP) um protocolo que permite a alocação
dinâmica de endereços IP nas redes. (RFC Request for Comments, 2011)
31
3.1 SUB-REDES
Os endereços IP das classes A, B e C são distribuídos pela entidade
responsável, o Latin American and Caribbean Internet Addresses Registry
(LACNIC), sendo que esta distribuição é feita somente em blocos que tem o
tamanho fixo de acordo com a classe. Por exemplo, uma empresa precisa de 80
endereços IP públicos, com a divisão de classes, no mínimo teria que adquirir um
bloco de classe C que fornecia 254 endereços. (TORRES, 2009)
O autor ainda afirma que para resolver este problema, se tornou possível a
divisão de uma faixa de endereços grande em faixas de endereços menores. Isto é
possível desde que se defina uma máscara de rede ou através de um sistema
chamado CIDR.
Segundo Torres (2009) no sistema de sub-redes, a máscara da rede é que
informa que divisão será feita no endereçamento, ou seja, quais bits do endereço
irão identificar a máquina e quais irão identificar a rede. Os endereços IP são
números de 32 bits divididos em quatro blocos de oito bits (8 bits é o mesmo que um
byte), separados por pontos entre eles. Nos endereços de classe A o primeiro byte
identifica a rede, enquanto os outros 3 bytes identificam os hosts. Já os de classe B
os dois primeiros bytes identificam a rede e os outros dois bytes identificam os hosts.
E por fim na classe C, os três primeiros bytes identificam a rede e o byte restante
identifica os hosts da rede.
De acordo com as afirmações do autor, cada classe possui uma máscara
padrão, estas que também são valores de 32 bits que utilizam o mesmo formato dos
endereços IP. Na máscara padrão cada bit que indica a rede é sinalizado com o bit 1
e cada bit que indica os hosts é sinalizado com o bit 0, ou seja, 255 corresponde a
11111111, oito bits 1, e 0 corresponde a 00000000, oito bits zero.
Tabela 3.1 - Máscaras padrão.
Fonte: Torres, 2009.
32
Em um endereço de classe B, por exemplo, 185.22.33.44, por padrão sua
máscara seria 255.255.0.0, com os dois primeiros bytes indicando a rede e os dois
últimos indicando a máquina, porém com o uso das sub-redes pode-se utilizar uma
máscara 255.255.255.0 que o transformará em um endereço de classe C, ou seja,
os três primeiros bytes passariam a identificar a rede e somente o último identificaria
as máquinas. (TORRES, 2009)
... esta divisão pode ir muito mais além. Já que você pode manipular cada
bit da máscara de rede individualmente para ter a divisão desejada, a única
coisa especial que você terá que fazer será converter o número de binário
para decimal, já que tanto a máscara de rede quanto o endereço IP são
expressos em números decimais. (Torres, 2009, p. 232)
Na prática, esse tipo de divisão significa que cada sub-rede será gerenciada
por um administrador local. Dessa forma, segundo Torres (2009) o “dono” da classe
original não irá precisar se preocupar com as sub-redes que se formaram, pois essa
tarefa é simplesmente passada adiante. O que facilita o gerenciamento das subredes criadas, já que estas possuem tamanhos menores que os das redes originais.
Segundo o autor a fórmula abaixo é uma maneira de se calcular sub-redes.
Com a sua utilização pode-se calcular o número de bits necessários para gerar o
número desejado de sub-redes.
2n-2 = núm. de sub-redes
Para utilizá-la é necessário que se substitua o n por valores sucessivos até
que se supere o valor de sub-redes necessárias, pois o autor ressalta que é
necessário um valor de no mínimo duas sub-redes sobressalentes, já que a primeira
e a ultima não poderão ser utilizadas por serem respectivamente o endereço de rede
e broadcast da rede original, portanto não podem ser utilizadas para endereçar
nenhum computador da rede.
A tabela 3.2 mostra a divisão da rede 229.45.32.0 em 16 sub-redes, onde
cada sub-rede contém 16 endereços IP, sendo que a primeira e a última sub-rede
não são utilizadas, pois são respectivamente o endereço da rede e broadcast da
rede original, ficando assim com 14 sub-redes válidas. Já em cada sub-rede válida,
o primeiro e o último IP, também não são utilizados, pois são reservados para
endereçar as sub-redes e broadcast das mesmas.
É importante destacar que quando se utiliza a tecnologia de sub-redes, todas
as sub-redes criadas resultantes da divisão de uma rede original utilizam a mesma
máscara de sub-rede.
33
Tabela 3.2: Divisão da rede 229.45.32.0 em 16 sub-redes.
Fonte: Comer, 2006.
3.2 CIDR (CLASSELESS INTER-DOMAIN ROUTING)
O sistema CIDR, descrito nas RFC 1517, 1518, 1519 e 1520 foi criado, pois,
em meados de 1992 quando o crescimento exorbitante da Internet foi acontecendo,
tornou-se claro que muitos problemas surgiriam. Dentre eles, é importante ressaltar:
o esgotamento dos endereços de rede de classe B; o rápido crescimento em
tamanho das tabelas roteamento globais da Internet e esgotamento dos endereços
de 32 bits IPv4 (FERNANDEZ, 2011).
Segundo Comer (2006) o CIDR possui duas características muito importantes
que beneficiam o sistema de roteamento global da Internet: elimina os conceitos
tradicionais de divisão de endereços de redes de classe A, B e C, possibilitando uma
34
alocação eficiente dos endereços IPv4 e suporta agrupamento de rotas, fazendo
com que em uma única entrada na tabela possa representar o espaço de endereços
que seria ocupado por até milhares de rotas de classe tradicionais.
O autor ainda afirma que o impacto do CIDR em relação à redução da
demanda de endereços IP, pode ser entendido desde que se tenha conhecimento
de três fatos. O primeiro fato é que, o esquema classfull não dividia os endereços de
rede em classes com tamanhos iguais. O segundo fato é que os prefixos de classe
C são suficientes apenas para pequenas redes, o que não favorece a subdivisão,
portanto, a demanda por endereços de classe C foi bem menor do que a de classe
B. E o terceiro fato é que os estudos que foram realizados mostraram que, com a
velocidade que estavam atribuindo os endereços, os pertencentes à classe B
rapidamente se esgotariam.
De acordo com Fernandez (2011) o CIDR é uma maneira de eliminar o
conceito de classes, fazendo sua substituição pelo conceito geral de prefixo de rede.
Como CIDR, os roteadores passam a utilizar o prefixo de rede, ao invés dos três
primeiros bits do endereço IP para determinar o ponto de divisão entre o número de
rede e o de host. Sendo assim, o CIDR pode suportar qualquer tamanho de redes,
sem precisar usar os tamanhos padrões que anteriormente eram de 8 bits, 16 bits e
24 bits e que utilizavam os modelos de classes.
Neste modelo, cada pedaço da informação de roteamento passa a possuir um
bit de máscara ou tamanho de prefixo, sendo que o tamanho do prefixo é uma
maneira de especificar o número bits mais significativos relativos à rede de cada
entrada na tabela de roteamento. Pode-se usar como exemplo uma rede com 20 bits
de número de rede e 12 bits de hosts, que será associada a um tamanho de prefixo
20 bits ou pode ser usada a notação CIDR /20. (COMER, 2006)
3.3 VLSM (VARIABLE LENGHT SUBNET MASKS)
Segundo Fernandez (2011) uma rede IP que possui mais de uma máscara de
sub-rede, pode ser considerada uma rede com máscara de tamanho variável, ou
Variable Lenght Subnet Masks (VLSM), já que os prefixos de rede que são
estendidos possuem tamanhos diferentes.
35
Ao utilizar o protocolo Routing Information Protocol (RIP), as máscaras de
sub-rede devem ser uniformes em todo o prefixo de rede. O RIP permite somente
uma máscara de sub-rede por rede, pelo fato de não fornecer informações da
máscara como parte das mensagens de atualização das tabelas de roteamento.
Como faltam estas informações, o RIP assume algumas simples considerações
sobre a máscara que deverá ser aplicada a qualquer rota já existente.
(FERNANDEZ, 2011)
Caso um roteador possua uma sub-rede de mesmo número de rede
associada à interface local, ele irá assumir que a sub-rede recente foi definida
usando a mesma máscara que a interface local. Sobre isso Fernandez (2011, p.6)
afirma que: “... se o roteador não possui uma sub-rede com o mesmo número de
rede da nova rede, ele assume que esta nova rede não possui sub-rede e aplica a
máscara natural de classes”.
Um exemplo, considerando um roteador onde é definido para a porta 1, o IP
130.24.13.1/24, e para porta 2, o endereço 200.14.13.2/24, o roteador recebe de um
vizinho a rede 130.24.36.0. Ele então irá aplicar a máscara /24 já que a porta 1 está
configurada como uma sub-rede da rede 130.24.0.0. No entanto, caso ele receba
uma informação da rede 131.25.0.0 de um roteador vizinho, ele então assumirá a
máscara padrão /16, já que não tem informações de máscaras disponíveis.
(FERNANDEZ, 2011)
O autor ainda ressalta que em relação à inclusão de bits dos números de subredes na tabela de roteamento, pode-se citar como exemplo, se um roteador teve o
endereço IP 130.24.13.1/24 associado a sua porta 1, e na porta 2 o endereço
200.14.13.2/24, e tomar conhecimento da rede 130.24.36.0, como a porta 1 está
configurada com uma sub-rede da rede 130.24.0.0; então o roteador assumirá que a
rede 130.24.36 tem a mesma máscara de sub-rede /24. Quando o roteador for
alertar sobre a nova rota, ele alertará a porta 1 o endereço 130.24.36.0, mas a porta
2 ele apenas alertará sobre o endereço 130.24.0.0.
Sendo assim, o protocolo RIP é limitado a uma única máscara de sub-rede
para cada número de rede. Entretanto, existem muitas vantagens em se associar
mais máscaras de sub-redes para um determinado endereço de rede IP, tais como:
a utilização de múltiplas máscaras permite o uso mais eficiente de endereços IP
associados a organizações e a agregação de diversas rotas, o que é muito
importante, pois reduz a quantidade de informação de roteamento no nível de
36
backbone dentro do domínio de roteamento de uma organização. (FERNANDEZ,
2011)
De acordo com Fernandez (2011) o VLSM permite também uma divisão
recursiva de endereços de uma organização para que a quantidade de informação
no nível mais alto seja reduzida. De maneira conceitual, uma rede é divida em subredes, e algumas dessas sub-redes são divididas em outras sub-redes, e algumas
dessas sub-sub-redes são dividas em sub2-sub-redes. Esta divisão permite que
informações detalhadas de roteamento da estrutura de uma sub-rede se mantenham
invisíveis para os roteadores em outros grupos de sub-redes.
Para a implementação do VLSM, três pré-requisitos devem ser alcançados,
tais como: os protocolos de roteamento necessitam ter suporte para as informações
de prefixos de rede estendidos com identificação fácil; todos os roteadores devem
implementar algoritmos de direcionamento baseado na maior coincidência, tais
como longest match e para que ocorra um agrupamento de rotas, os endereços
devem ser associados de forma topológica e lógica.
Segundo Fernandez alguns protocolos de roteamento, como por exemplo, o
Open Shortest Path First (OSPF), possibilitam a implementação do VLSM, já que
eles fornecem um tamanho do prefixo de rede estendido, ou o valor da máscara
junto com as informações de rota, permitindo assim que cada sub-rede seja alertada
com seu correspondente tamanho do prefixo ou máscara.
Fernandez (2011) ainda afirma que caso os protocolos de roteamento
utilizados não tenham as informações de prefixo de rede, existem duas alternativas
que garantem seu funcionamento, são elas: o roteador deve assumir um prefixo que
já foi aplicado localmente, ou então fazer uma busca em tabelas de prefixos
estáticas que contenham as informações de máscara necessárias.
Porém, essas alternativas estão sujeitas a falhas, já que a primeira alternativa
não garante que o prefixo correto será aplicado, e a segunda relacionada as tabelas
estáticas, não garante que haja sucesso, pois as mesmas estão sujeitas a erros
humanos e por isso se tornam difíceis de serem mantidas.
O autor segue afirmando que um protocolo roteamento que também pode ser
utilizado no VLSM é o RIP-2, pois este é um protocolo que apresenta algumas
melhorias em relação ao seu antecessor, o RIP. Uma dessas melhorias está
relacionada ao suporte a informações de prefixo de rede estendidos.
37
3.4 ENDEREÇOS PRIVADOS
Os endereços IP privados ou endereços não roteáveis, foram descritos na
RFC 1918, são endereços designados pela IANA para uso em organizações sem
conectividade com a Internet, ou uso em intranets. (RFC Request for Comments,
2011)
As classes A, B e C têm faixas de endereços que foram reservadas pela IANA
para endereços privados, mostrados na tabela a seguir:
Tabela 3.3 - Endereços Privados
Fonte: Vasconcelos; Vasconcelos, 2007.
Qualquer organização pode usar quaisquer endereços deste intervalo sem ter
que se reportar a qualquer organização. Entretanto, como estes endereços não são
únicos globalmente, eles não podem servir de referência a hosts de outra
organização. (RFC Request for Comments, 2011)
3.5 NAT (NETWORK ADDRESS TRANSLATION)
De acordo com Tanenbaum (2003) os endereços IP são escassos. Um
Internet Service Provider (ISP), ou seja, uma empresa que fornece acesso à Internet
poderia ter um endereço /16, que fornece 65.534 números de hosts. Caso tenha um
número de clientes maior do que isto, haveria um problema. Para clientes individuais
que possuem conexões discadas, uma forma de contornar este problema foi atribuir
o endereço IP dinamicamente ao computador quando for feita a conexão e logon,
38
pegando o endereço IP de volta quando a sessão terminar. Com isso, um único
endereço /16 poderá se revesar em até 65.534 usuários ativos, o que é muito
interessante para um ISP com várias centenas de milhares de clientes. Quando a
sessão é encerrada, o endereço IP é designado novamente para outro usuário.
Embora essa estratégia funcione bem no caso de um ISP com um número
moderado de usuários domésticos, ela não suporta um ISP que atendem
principalmente a clientes de negócios.
O problema é que os clientes de negócios necessitam de conexão contínua
durante o horário comercial. Tanto as pequenas empresas, quanto as grandes
corporações tem vários computadores conectados por uma Local Area Network
(LAN). Alguns computadores são terminais de funcionários e outros podem ser
servidores da Web. Geralmente existe um roteador na LAN que está conectado ao
ISP por uma linha dedicada tendo como finalidade fornecer conexão contínua. Essa
organização serve para que cada computador tenha seu próprio endereço IP
durante o dia inteiro. Na verdade, o número total de computadores pertencentes aos
clientes comerciais combinados não pode ultrapassar o numero de endereços IP
que o ISP tem. No caso de um endereço /16, o número total de computadores fica
limitado a 65.534. Para um ISP com dezenas de milhares de clientes comerciais,
esse limite será ultrapassado rapidamente. (TANENBAUM, 2003)
Segundo Tanenbaum (2003) esta demanda por endereços IP foi aumentando,
pois muitos usuários assinaram os serviços de Asymmetric Digital Subscriber Line
(ADSL) ou Internet via cabo. Nesse tipo de serviço o usuário recebia um endereço IP
permanente e não existe nenhuma tarifa por conexão, pois a tarifa é cobrada
mensalmente, de forma que muitos usuários de ADSL e cabo simplesmente ficam
conectados de modo permanente. Esse desenvolvimento foi um dos causadores do
aumento da demanda por endereços IP. Atribuir endereços IP no momento da
utilização como ocorre no caso dos usuários de discagem, não resolve, já que o
número de endereços IP em uso no momento pode ser muitas vezes maior que o
número de clientes do ISP.
Além disso, alguns usuários de ADSL e cabo têm dois ou mais computadores
em suas casas, e por muitas vezes todos eles necessitam estar online
simultaneamente, e para tanto utilizam o mesmo endereço IP fornecido pelo ISP. A
solução para este caso é conectar todos os terminais por meio de uma LAN e inserir
um roteador na mesma. De acordo com Tanenbaum (2003) para o ISP, agora os
39
usuários de uma família passam a ser equivalentes a uma pequena empresa com
alguns computadores.
Tanenbaum (2003, p. 343), afirma que “o problema de esgotar os endereços
IP não e um problema teórico que pode ocorrer em algum momento no futuro
distante. Ele esta acontecendo aqui mesmo e agora mesmo”.
A solução de longo prazo é a migração total da Internet para o IPv6, que tem
endereços de 128 bits. Porém essa transição ocorre de maneira lenta e sua
conclusão ira se prolongar por muitos anos. Como conseqüência, algumas pessoas
consideraram necessário fazer uma rápida correção a curto prazo, essa correção
veio com o Network Address Translation (NAT), descrito na RFC 3022.
Conforme afirma Tanenbaum (2003) a idéia básica do NAT é atribuir um único
endereço válido para cada empresa, ou no máximo um número pequeno deles, para
ser utilizado na Internet. Sendo assim, dentro das empresas, todo computador terá
seu endereço IP exclusivo, usado no roteamento do tráfego interno. Porém, estes
endereços não são válidos na Internet, e quando um pacote sair da empresa e for
para o ISP, ocorrerá uma conversão de endereço. Para tornar esse esquema
possível, são usados os endereços IP privados. As empresas podem utilizá-los
internamente como desejarem. A única regra para isso é que nenhum pacote
contendo esses endereços apareça na Internet.
Os endereços privados de Classe A, permitem a utilização de 16.777.216
endereços e é a escolha habitual da maioria das empresas, mesmo que elas não
necessitem de tantos endereços. (TANENBAUM, 2003)
A operação do NAT é mostrada na figura 3.1. O autor segue afirmando que
dentro das instalações da empresa, toda máquina tem um endereço exclusivo da
forma 10.x.y.z. Porém, quando um pacote deixa as instalações da empresa, ele
passa pelo NAT que o converte no endereço IP válido da empresa, o 198.60.42.12
nesse exemplo. Com freqüência, o NAT é combinado em um único dispositivo com
um firewall, que oferece segurança, utilizando-se de um controle cuidadoso do que
entra e sai da empresa.
40
Figura 3.1: Posicionamento e operação do NAT.
Fonte: Tanenbaum, 2003, p. 344.
O autor afirma ainda que a resposta é devolvida ao IP 192.60.42.12, que deve
responder ao IP reservado que fez a requisição e aí surge um problema com o NAT.
Caso houvesse um campo sobressalente no cabeçalho IP, este poderia ser usado
para controlar qual foi o transmissor real, mas no dito cabeçalho só resta um bit
ainda não utilizado. Uma nova opção poderia ter sido criada para armazenar o
endereço de origem verdadeiro, mas isso exigiria mudar o endereço IP de todas as
máquinas na Internet para manipular a nova opção. Essa não foi uma alternativa
promissora para uma correção rápida.
Tanenbaum (2003) ainda afirma que o que aconteceu foi que os projetistas do
NAT observaram que a maioria dos pacotes IP transporta uma carga útil TCP ou
UDP. Essas portas TCP e UDP fornecem o campo necessário para fazer o NAT
funcionar. Quando um processo deseja estabelecer uma conexão TCP com um
processo remoto, ele associa uma porta TCP que não está sendo utilizada em sua
própria máquina. Essa porta é chamada de porta de origem que informa ao código
do TCP para onde devem ser enviados os pacotes que chegarem pertencentes a
essa conexão. Este processo fornece também uma porta de destino que informa
para quem deve ser entregue os pacotes no lado remoto. As portas de 0 a 1023 são
reservadas para serviços conhecidos. Por exemplo, a porta 80 é usada por
servidores da web de forma que clientes remotos possam localizá-los. Cada
mensagem TCP que é enviada contém uma porta de origem e uma porta de destino,
e são essas portas que identificam os processos que utilizam a conexão em ambas
as extremidades.
41
O campo Source Port pode resolver o problema de mapeamento, pois sempre
que um pacote de saída entra na caixa NAT, o endereço de origem 10.x.y.z é
substituído por um endereço IP válido. Além disso, o campo Source Port do TCP é
substituído por um índice para a tabela de conversão de 65.536 entradas da caixa
NAT, essa entrada de tabela contém a porta de origem e o endereço IP original. Por
fim, tanto o total de verificação do cabeçalho IP quanto do cabeçalho TCP são
recalculados e inseridos no pacote. E necessário substituir o campo Source Port,
porque as conexões das máquinas 10.0.0.1 e 10.0.0.2 podem, por exemplo, não
usar a porta 5000, e assim o campo Source Port sozinho se torna insuficiente para
identificar o processo transmissor. (TANENABAUM, 2003)
Tanenbaum (2003) relata que quando um pacote chega até a caixa NAT
vindo do ISP, o campo Source Port do cabeçalho de TCP é extraído e usado como
índice para a tabela de mapeamento da caixa NAT. A partir da entrada localizada, o
endereço IP interno e o campo Source Port do TCP original são extraídos e
inseridos no pacote. Em seguida, são recalculados os totais de verificação do IP e
do TCP e inseridos no pacote. O pacote então é repassado ao roteador da empresa
para entrega normal, utilizando o endereço 10.x.y.z.
O NAT também pode ser usado para atenuar a falta de endereços IP para
usuários de ADSL e cabo. Quando o ISP atribui um endereço a cada usuário, ele
pode utilizar endereços 10.x.y.z, e quando os pacotes dessas máquinas forem sair
do ISP e entrar na Internet, o NAT fará a conversão de seus endereços para o
endereço válido do ISP. Para a resposta dos pacotes o mapeamento inverso será
feito. Utilizando o NAT, o ISP e seus usuários individuais de ADSL/cabo parecem ser
apenas uma grande empresa. (TANENBAUM, 2003)
O autor afirma ainda que embora esse tipo de esquema resolva o problema,
muitas pessoas na comunidade IP o abominam. O NAT tem como objeção o fato de
violar o modelo arquitetônico do IP que estabelece que todo endereço IP é um
identificador único no mundo. A Internet toda é baseada neste conceito, porém com
o NAT, milhares de máquinas podem usar o mesmo endereço IP nas redes internas.
Conforme Tanenbaum (2003) ressalta, outra objeção é que o NAT na Internet
muda as características de rede sem conexão para uma espécie de rede orientada a
conexão. O NAT deve manter o mapeamento para cada conexão que passa por ele,
e manter o estado da conexão é uma propriedade de redes orientadas a conexão, e
não de redes sem conexão. Caso a caixa NAT sofra uma pane e então se perca a
42
tabela de mapeamento, todas as conexões TCP serão destruídas. Na ausência do
NAT, panes nos roteadores não terão nenhum efeito sobre o TCP. O processo
transmissor simplesmente entrará em timeout, ou seja, esgotaria o tempo limite
dentro de alguns segundos e retransmitira todos os pacotes não confirmados. Com a
utilização do NAT, a Internet se torna tão vulnerável quanto uma rede comutada por
circuitos.
Também há a violação da regra mais fundamental da distribuição de
protocolos em camadas: uma camada não pode fazer nenhuma suposição sobre o
que a outra inseriu no campo de carga útil. É esse princípio básico que mantém a
independência entre as camadas. Caso seja feita uma atualização do TCP para
TCP-2, e o layout de cabeçalho seja diferente, por exemplo, tendo as portas com 32
bits, o NAT não funcionará. A idéia de protocolos em camadas assegura que as
mudanças em uma camada não exijam mudanças nas outras. O NAT acaba com
essa independência. (TANENBAUM, 2003)
O autor ainda afirma que os processos na Internet não são obrigados a usar o
TCP ou o UDP. Se um usuário em uma máquina decidir empregar algum novo
protocolo de transporte para se comunicar com outro usuário, por exemplo, no caso
de uma aplicação de multimídia, a introdução de uma caixa NAT fará esta aplicação
falhar, porque a caixa NAT não conseguirá localizar corretamente o campo Source
Port do TCP. Esta é mais uma das objeções.
Outra objeção, é que algumas aplicações inserem endereços IP no corpo do
texto, o receptor então extrai esses endereços e os utiliza. Porém o autor afirma que
o NAT não sabe nada sobre esses endereços, ela não irá substituí-los; o que faz
que qualquer tentativa de utilizá-los no lado remoto falhe. O File Transfer Protocol
(FTP) padrão funciona deste modo e poderá falhar caso o NAT seja utilizado, a
menos que se adotem algumas precauções. Semelhante a isso, o protocolo de
telefonia da Internet tem essa propriedade e pode falhar na presença da NAT.
(TANENBAUM, 2003)
Tanenbaum (2003) ressalta que talvez seja possível corrigir o NAT para que
ele funcione com o protocolo de telefonia da Internet, porém corrigir o código na
caixa NAT toda vez que surgir uma nova aplicação torna-se inviável. A última
objeção é o fato do campo Source Port do TCP possui 16 bits, o que possibilita que
no máximo 65.536 máquinas possam ser mapeadas em um endereço IP. Porém, na
realidade o número é um pouco menor, já que as primeiras 4096 portas são
43
reservadas para usos especiais. No entanto, se vários endereços IP estiverem
disponíveis, cada um deles poderá manipular até 61.440 máquinas.
Esses e outros problemas com o NAT são discutidos na RFC 2993.
...os opositores do NAT afirmam que, solucionar o problema de insuficiência
de endereços IP com uma correção temporária e detestável, significa
reduzir a pressão para implementar a verdadeira solução, ou seja, a
transição para o IPv6, e isso é ruim. (Tanenbaum, 2003, p. 345)
3.6 DHCP (DYNAMIC HOSTS CONFIGURATION PROTOCOL)
O protocolo Reverse Address Resolution Protocol (RARP) foi inicialmente
desenvolvido para permitir que computadores obtenham endereços IP. Porém com o
aumento do número das máquinas nas redes e a crescente necessidade de maiores
informações de configuração para a comunicação em uma rede, o RARP se tornou
ineficiente, então foi criado um protocolo chamado BOOTstrap Protocol (BOOTP),
que permitia a atribuição dinâmica de endereços IP. (COMER, 2006)
A computação móvel limitou o uso do BOOTP, então foi criado o Dynamic
Host Configuration Protocol (DHCP), uma versão estendida do BOOTP. O DHCP foi
designado para resolver esse problema e também para simplificar a administração
das redes TCP/IP. O DHCP é especificado pelas RFCs 1533, 1534, 1541 e 1542.
(BUGALLO et al, 2011)
Segundo Comer (2006) o DHCP utiliza os protocolos User Datagram Protocol
(UDP) e o IP, portanto ele pode ser implementado por um programa aplicativo. Ele
segue o modelo cliente-servidor, que exige apenas uma única troca de pacotes na
qual um computador envia um pacote requisitando informações de BOOTstrap e um
servidor responde com um único pacote que especifica itens necessários na partida,
incluindo o IP do computador, o endereço de um roteador e o nome de um servidor.
O DHCP inclui também um campo chamado de opções na resposta, o que permite
que os fornecedores enviem informações adicionais usadas apenas para seus
computadores. Porém, na especificação, recomenda-se usar o campo opções para
incluir informações de finalidade geral, tais como máscara de sub-rede.
Criado para substituir o BOOTP na tarefa de automatizar o fornecimento de
endereços IP em uma rede, o DHCP é um serviço que permite facilidades para
44
redes que utilizam a computação móvel ou que possuem uma faixa de endereços IP
limitada. (BUGALLO et al, 2011)
De acordo com Bugallo et all (2011) dois fatores foram responsáveis para que
esse novo protocolo de configuração fosse criado. O primeiro fator é que o BOOTP
resolveu parte do problema de subutilização do quadro quando do envio de um
endereço IP. Já no DHCP, uma única mensagem enviada para o equipamento
fornece todas as informações de inicialização necessárias. E o segundo fator
importante é que pode ser considerado o principal, é a alocação rápida e dinâmica
de um endereço IP para um equipamento conectado à rede.
Os autores ainda afirmam que um servidor DHCP faz com que o
endereçamento a máquinas seja um processo mais dinâmico do que estático.
Geralmente, um novo usuário da rede solicita ao gerenciador um endereço IP válido,
então esse gerenciador executa uma entrada nas tabelas Hosts ou no banco de
dados do Domain Name System (DNS). O uso deste endereço pode ser apenas
esporádico ou até temporário, no entanto enquanto este endereço está atrelado à
máquina nenhuma outra máquina o receberá. Caso o usuário móvel se locomova
com sua máquina e utilize outra rede, isto será um problema, pois o endereço antigo
poderá não ser compatível com a nova rede. Então, solicitar ao gerenciador de rede
local um endereço para usar apenas temporariamente, não faz sentido.
Bugallo et al (2011) segue afirmando que cada servidor DHCP, já que pode
existir mais de um, responde a solicitação do usuário com um endereço IP e
informações de configuração. O cliente recolhe as respostas e seleciona um
endereço válido depois envia a confirmação para o servidor. Todos os servidores
DHCP recebem a confirmação do usuário (cliente), então o servidor DHCP que
forneceu o endereço selecionado irá enviar uma mensagem de reconhecimento,
enquanto os demais servidores irão cancelar suas ofertas anteriores. Somente após
o receber a mensagem de reconhecimento do servidor DHCP, o cliente poderá
participar da rede TCP/IP.
De acordo com Bugallo et al (2011) o servidor DHCP reserva endereços para
seus clientes, que pode ter um tempo determinado de modo que, caso não sejam
utilizados retornem de forma automática ao grupo de endereços disponíveis. Se o
tempo da reserva expirar, mas a máquina ainda estiver usando o endereço, o
servidor DHCP poderá renová-lo, a fim de que o cliente possa continuar com o
mesmo endereço.
45
O DHCP pode atribuir endereço para um equipamento de rede de três formas:
a configuração manual, a configuração automática e a configuração dinâmica.
Na configuração manual é possível que um endereço IP seja atrelado a uma
determinada máquina na rede. Bugallo et al (2011, p.04) afirmam que: “para isso, é
necessária a associação de um endereço existente no banco do servidor DHCP ao
endereço MAC do adaptador de rede da máquina”. Fazendo esta configuração, o
DHCP irá trabalhar de maneira semelhante ao BOOTP. Esse endereço atrelado ao
equipamento não pode ser utilizado por outro, a não ser que os equipamentos
utilizem a mesma placa de rede.
Na configuração automática o servidor DHCP é configurado para atribuir um
endereço IP para um equipamento sem que se estabeleça um tempo determinado,
então ao se conectar pela primeira vez na rede, um endereço permanente lhe é
atribuído. A diferença entre a configuração automática e manual, é que na primeira
não é necessário especificar o equipamento que utilizará determinado endereço, já
que ele é atribuído de forma automática.
Já na configuração dinâmica, está a característica principal do DHCP que o
diferencia do BOOTP. Desta forma o endereço IP é alocado de maneira temporária
a um equipamento e periodicamente, tem-se a necessidade de atualizar a alocação.
Utilizando esta configuração, é possível que o mesmo endereço IP seja usado por
diferentes equipamentos, em momentos diferentes. Para isso, basta que o primeiro a
alocar o endereço, deixe de utilizá-lo. Então, quando o outro equipamento solicitar
ao servidor DHCP um endereço IP poderá ser fornecido o mesmo o endereço
deixado pelo primeiro. (BUGALLO et al, 2011)
O protocolo DHCP possui muita utilidade, inclusive por ser suportado por
uma série de plataformas, fazendo com que na mesma rede existam
computadores com diferentes sistemas operacionais. Sabendo-se usar o
DHCP, é possível poupar muito trabalho na configuração de redes. (Alecrim,
2005, p.1)
46
4 IPV6
Este capítulo irá abordar o Internet Protocol version 6 (IPv6), suas
características, vantagens e melhorias em relação ao IPv4.
No início de fevereiro de 2011, os últimos blocos de endereços IPv4
disponíveis foram distribuídos para os administradores regionais (RIRs) pelo IANA.
Conforme havia sido anunciado, quando os blocos IPv4 disponíveis chegassem a
cinco, cada um deles seria alocado para um dos cinco RIRs do planeta. Então a
disponibilidade de blocos IPv4 passará a depender da demanda por endereços em
cada região do planeta. A estimativa, é que no fim de 2011 os RIRs já não tenham
mais endereços disponíveis para oferecer para novos clientes. (MARSAN, 2011)
Tanenbaum (2003, p. 357) relata que “embora o CIDR e o NAT ainda tenham
alguns anos pela frente, todo mundo percebe que o IP em sua forma atual (IPv4)
está com os dias contados”. Além de problemas técnicos, há outra questão em
paralelo, pois no início, a Internet era usada somente por universidades, indústrias
de alta tecnologia e órgãos governamentais dos Estados Unidos, principalmente
pelo Departamento de Defesa, mas com a rápida expansão da Internet a partir da
década de 1990, seu uso se estendeu a um grupo diferente de pessoas com
diferentes necessidades. São milhares de pessoas que usam computadores
portáteis sem fios conectados a Internet para estabelecer contato com suas
empresas. Também ocorre a expansão das indústrias de informática, comunicação e
entretenimento, que mostram que não está longe a época em que os telefones e
televisores se tornem nós da Internet, resultando no uso de áudio e vídeo por
demanda em bilhões de máquinas. Sendo assim ficou claro que o IP necessitaria
evoluir para que se tornasse mais flexível.
47
O autor ainda afirma que na década de 1990, com a previsão de que esses
problemas surgiriam então a IETF começou a desenvolver uma nova versão do IP,
que impediria que os endereços se esgotassem e resolveria uma série de
problemas, além de se tornar mais flexível e eficiente.
A nova versão é o IPv6, que segundo o autor tem como objetivos principais:
aceitar bilhões de hosts, mesmo que a alocação de espaço de endereços seja
ineficiente; reduzir o tamanho das tabelas de roteamento; simplificar o protocolo, de
modo a permitir que os roteadores processem os pacotes com mais rapidez;
oferecer mais segurança, em relação à autenticação e privacidade, do que a versão
atual do IP (IPv4); dar mais importância ao tipo de serviço utilizado, principalmente
no caso de dados em tempo real; permitir multidifusão, possibilitando a
especificação de escopos; permitir que um host troque de lugar sem precisar mudar
o endereço; permitir a evolução futura do protocolo e também permitir que os
protocolos novos e antigos coexistam durante anos, ou seja, se tornem compatíveis,
fazendo com que a transição seja gradual, ao invés de bruscamente substituir e
fazer com que os que já possuem endereços IPv4 tenham que substituí-los de
imediato.
De acordo com Tanenbaum (2003) para chegar a um protocolo que
atendesse a todos esses requisitos, a IETF convocou os interessados a
apresentarem suas propostas na RFC 1550, sendo que foram recebidas vinte e uma
respostas, porém nem todas foram consideradas como propostas completas. Em
dezembro de 1992, havia sete propostas muito interessantes que estavam sendo
estudadas. Estas propostas variavam desde pequenos ajustes no IP, até sua
eliminação pura e simples e a criação de um protocolo totalmente diferente.
O autor ainda afirma que, uma dessas propostas visava executar o TCP sobre
o Connection-Less Network Protocol (CLNP) que, por oferecer endereços de 160
bits, se tornaria capaz de oferecer um espaço de endereços infinito e unificaria os
dois principais protocolos da camada de rede. Porém, para muitos, isso seria o
mesmo que admitir que o modelo OSI ainda tivesse suas vantagens, uma afirmação
politicamente incorreta nos círculos da Internet. A padronização do protocolo CLNP
tinha características que o tornavam muito parecido com o IP; então, não se pode
afirmar que sejam muito diferentes. No entanto, o protocolo que foi escolhido
apresenta muito mais diferenças em relação ao IP do que o CLNP. Um dos fatores
contra o CLNP é a baixa qualidade em relação aos tipos de serviços oferecidos, algo
48
de extrema importância para uma eficiente transmissão multimídia.
...as três melhores propostas foram publicadas na IEEE Network (Deering,
1993; Francis, 1993; e Katz e Ford, 1993). Depois de muita discussão,
revisão e disputa, foi selecionada uma versão combinada modificada das
propostas de Deering e Francis, agora chamada SIPP (Simple Internet
Protocol Plus), a qual foi atribuída a designação IPv6. (Tanenbaum, 2003,
p.357)
Os objetivos propostos eram muito bem atendidos pelo IPv6, preservando o
que é bom nos recursos do IP, descartando ou reduzindo a importância das
características ruins e criando outras quando se tornasse necessário.
O autor ainda afirma que de maneira genérica, o IPv6 não é compatível com o
IPv4, no entanto é compatível com todos os outros protocolos auxiliares da Internet,
apesar de certas vezes necessitarem de algumas pequenas modificações
principalmente quando trata-se de endereços mais longos.
4.1 RECURSOS DO IPv6
O IPv6 possui alguns recursos que são tidos como vantagens em relação ao
seu antecessor, o IPv4.
O primeiro recurso e o mais conhecido, trata-se do fato de o IPv6 ter
endereços mais longos que o IPv4. Ele possui 16 bytes de espaço para
endereçamento,
o
que
equivale
a
128
bits,
ou
2128
resultando
em
340.282.366.920.938.463.463.374.607.431.768.211.456 endereços, cerca de 79
trilhões de vezes mais que o IPv4, o que resolve o problema de falta de endereços
IP, já que oferece um número ilimitado de endereços na Internet. (TANENBAUM,
2003)
Em segundo lugar, está um aperfeiçoamento de extrema importância que é a
simplificação do cabeçalho. No IPv6 o cabeçalho passa a conter apenas 7 campos,
contra os 13 campos presentes no IPv4. Tal mudança permite que os roteadores
processem os pacotes com mais rapidez melhorando os aspectos de desempenho,
velocidade e retardo.
Na terceira mudança, foi implantado um melhor suporte para as opções
oferecidas.
49
Essa mudança era fundamental para o novo cabeçalho, pois os campos que
até então eram obrigatórios agora são opcionais. Além disso, é diferente a
forma como as opções são representadas, o que torna mais simples para os
roteadores ignorar as opções a que eles não se propõem. Esse recurso
diminui o tempo de processamento de pacotes. (Tanenbaum, 2003, p. 357)
Segundo Tanenbaum (2003) um quarto aspecto em que o IPv6 apresenta
grandes avanços é a segurança. A IETF resolveu que precisava fazer algo para
melhorar a segurança, já que havia inúmeras reportagens nos jornais com garotos
precoces que, utilizando seus computadores conseguiam obter acesso a segredos
de instituições financeiras e militares pela Internet. Então a autenticação e a
privacidade se tornaram recursos muito importantes neste novo IP. No entanto, tais
características foram integradas também ao IPv4, sendo assim, em relação à
segurança não existem diferenças tão grandes.
O autor afirma que, para finalizar uma maior atenção foi dada no que diz
respeito á qualidade de serviço, devido ao crescimento da multimídia na Internet.
4.2 O CABEÇALHO PRINCIPAL DO IPv6
Segundo, Tanenbaum (2003) no cabeçalho principal, o campo Version tem
sempre o valor 6 quando se utiliza o IPv6, e 4 no IPv4. E durante o período de
transição do IPv4 para o IPv6, que durará cerca de uma década, os roteadores
serão capazes de examinar esse campo para identificar o tipo de pacote que eles
tem. Este teste desperdiça algumas instruções no caminho crítico, com isso, muitas
implementações provavelmente tentarão evitá-lo usando algum campo no cabeçalho
de enlace de dados que diferencie os pacotes IPv4 dos pacotes IPv6. Desta
maneira, os pacotes serão passados diretamente para o tratador da camada de rede
corretamente. Porém, esta estratégia viola completamente o principio de projeto, que
se fundamenta no fato de que cada camada deve ser independente não devendo se
importar em saber o significado dos bits que estão sendo passados a ela pela
camada superior. Muitas são as discussões entre os pesquisadores, pois alguns de
acordo com Tanenbaum (2003) desejam "fazer o que é certo" e outros querem
"tornar o processo mais rápido", e elas devem se estender por um longo tempo e
isso gerará sempre muita polêmica.
50
Figura 4.1: Cabeçalho principal com campos obrigatórios do IPv6.
Fonte: Tanenbaum, 2003, p. 359.
O segundo campo, o Traffic class é usado para fazer distinção entre pacotes
com diferentes requisitos de entrega em tempo real. Havia um campo destinado a
esse propósito no IP desde o início, mas ele só foi implementado esporadicamente
por roteadores. Agora estão sendo realizadas experiências para definir a melhor
maneira de usá-lo para transmissão de multimídia. (TANENBAUM, 2003)
No campo Flow label estão sendo feitas experiências, porém ele será usado
para permitir que origem e destino configurem conforme coloca Tanenbaum (2003),
uma pseudoconexão com propriedades e necessidades específicas. Por exemplo,
um fluxo de pacotes entre um processo de um host origem e um processo de um
host destino específico pode ter muitas restrições em termos de retardo e então
poderão precisar de uma largura de banda reservada. O fluxo pode ser préconfigurado e ter um identificador atrelado a ele. Caso um pacote com o campo Flow
label com valor diferente de zero aparecer, todos os roteadores poderão verificar em
suas tabelas internas qual tipo de tratamento especial ele vai exigir. De maneira
prática, os fluxos são uma tentativa de se obter a flexibilidade de uma sub-rede de
datagramas juntamente com as garantias de uma sub-rede de circuitos virtuais.
51
De acordo com Comer (2006) os fluxos são designados pelo endereço de
origem, endereço de destino e número de fluxo. Sendo assim, muitos fluxos podem
estar ativos ao mesmo tempo entre um determinado par de endereços IP. Por esse
motivo, quando dois fluxos são enviados por hosts diferentes e possuem o mesmo
número de fluxo passam pelo mesmo roteador, este terá a capacidade de distinguílos usando os endereços de origem e de destino. Para que estes roteadores
analisem os números de fluxo com mais facilidade, eles são escolhidos ao acaso,
em vez de serem atribuídos de forma seqüencial a partir de 1.
No campo Payload length determina-se o número de bytes que seguem o
cabeçalho de 40 bytes da Figura 4.1. O nome desse campo, que no IPv4 era Total
length, foi modificado pelo fato de ter havido uma pequena mudança de significado,
pois os 40 bytes do cabeçalho passaram a não ser mais contados como parte do
tamanho, como acontecia ate então.
Tanenbaum (2003, p. 359), afirma que “o campo Next header revela um
segredo”. O cabeçalho pode ser simplificado, já que existe a possibilidade de se ter
outros cabeçalhos de extensão, os quais são opcionais. Neste campo é informado
quais dos seis cabeçalhos de extensão seguem esse cabeçalho, caso haja algum.
Se esse cabeçalho for o último cabeçalho do IP, o campo Next header mostrará para
qual tratador de protocolo de transporte o pacote deverá ser enviado.
O autor ainda afirma, que o campo Hop limit é responsável por impedir que os
pacotes tenham duração eterna, pois na verdade, ele é igual ao campo Time to live
do IPv4, ou seja, é um campo que é decrementado em -1 a cada salto, ou hop.
Teoricamente, no IPv4 era utilizado um tempo em segundos, porém nenhum
roteador o utilizava assim. Por isso, mudou-se o nome para que fosse de acordo o
modo como é usado, ou seja, em saltos.
Depois, vêm os campos Source address e Destination address. Na proposta
original, utilizava endereços de 8 bytes, no entanto, durante sua revisão, muitos
perceberam que, com endereços de 8 bytes, o IPv6 se esgotaria em apenas
algumas décadas, enquanto que com endereços de 16 bytes isso nunca
aconteceria. Outros afirmavam que 16 bytes seria um exagero, já outros alegavam
que endereços de 20 bytes seriam compatíveis com o protocolo de datagramas do
modelo OSI. Ainda havia outro grupo que queria endereços de tamanho variável.
Depois de muitas discussões acerca do tamanho, chegou-se a uma conclusão de
que a melhor opção era utilizar endereços de 16 bytes. (TANENBAUM, 2003)
52
O autor segue afirmando que foi criada uma nova notação para representar
os endereços de 16 bytes, passaram a ser escritos com oito grupos de quatro dígitos
hexadecimais, separados por sinais de dois-pontos entre os grupos, como no
exemplo a seguir: 8000:0000:0000:0000:0123:4567:89AB:CDEF
Tendo em vista que vários endereços conterão muitos zeros, Tanenbaum
(2003) diz que foram autorizadas três otimizações para sua escrita: a primeira diz
que os zeros à esquerda dentro de um grupo poderão ser omitidos, por exemplo:
0123 poderá ser notado como 123; a segunda seria que um ou mais grupos de 16
bits zero poderiam ser substituídos por um par de sinais de dois-pontos. O endereço
anterior então pode ser escrito assim: 8000::123:4567:89AB:CDEF e na última, os
endereços IPv4 podem ser notados empregando-se um par de sinais de dois-pontos
e um número decimal tradicional, como neste exemplo: ::192.31.20.46.
O autor ressalta ainda que talvez não seja necessário ser tão explícito em
relação a isso, mas existem muitos endereços de 16 bytes. Especificamente,
existem 2128 endereços desse tipo, o que significa cerca de 3x1038. Por exemplo,
se for colocado um computador em cada parte do território da Terra, o IPv6
permitiria 7x1023 endereços IP por metro quadrado.
De acordo com Tanenbaum (2003) na prática, o espaço de endereços IPv6
não será utilizado com eficiência, exatamente como acontece com o espaço de
endereços dos números telefônicos nos Estados Unidos, por exemplo, o código de
área da cidade de Manhattan, está próximo da saturação, enquanto o de Wyoming,
está quase vazio. Na RFC 3194, foi calculado que, usando a alocação dos números
de telefones como um guia, mesmo considerando a hipótese mais pessimista,
mesmo assim ainda haverá mais de 1000 endereços IP por metro quadrado de toda
a superfície da Terra, isto inclui também os rios e mares. Sendo assim, parece
impossível que eles se tornem escassos em um futuro próximo.
É interessante fazer uma comparação entre o cabeçalho do IPv4, ilustrado na
figura 4.2, e o cabeçalho do IPv6 mostrado na figura 4.1, para ver o que se manteve
e o que foi descartado no IPv6.
Fazendo esta comparação pode-se observar que o campo Internet Header
Length (IHL) foi eliminado, já que o cabeçalho do IPv6 possui tamanho fixo. O
campo Protocol também foi retirado já que o campo Next header identifica o que
vem depois do último cabeçalho IP, por exemplo, um segmento UDP ou TCP.
Também foram excluídos todos os campos relacionados à fragmentação, já que o
53
IPv6 tem um tratamento diferente para a fragmentação.
Nele todos os hosts e roteadores que forem compatíveis com o IPv6 podem
determinar de dinamicamente o tamanho do datagrama que será utilizado. Deste
modo diminui-se a probabilidade de ocorrer fragmentação de pacotes. O valor
mínimo passou de 576 para 1280, permitindo o uso de 1024 bytes de dados e
muitos cabeçalhos. Caso um host envie um pacote IPv6 muito grande o qual o
roteador não possa encaminhar, ao invés de fragmentá-lo ele irá enviar uma
mensagem de erro, esta que irá instruir o host de origem a fragmentar os novos
pacotes enviados a esse destino com um tamanho adequado. É muito mais eficiente
obrigar o host a enviar pacotes com o tamanho exato do que solicitar aos roteadores
a fragmentação automática. (TANENBAUM, 2003)
Figura 4.2: Cabeçalho do IPv4.
Fonte: Tanenbaum, 2003, p.355.
O autor ainda afirma que o campo Checksum também foi excluído, pois o
cálculo realizado por ele reduzia o desempenho de maneira significativa. Como
atualmente são usadas redes confiáveis, e as camadas de enlace de dados e de
transporte já possuem seus totais de verificação próprios, não se faz necessário um
novo total de verificação, se for considerada a queda de desempenho provocada por
ele. Sendo feita a remoção desses recursos, o protocolo da camada de rede ficou
54
muito mais simples e prático. O que mostra que os objetivos do IPv6 foram
alcançados.
4.3 CABEÇALHOS DE EXTENSÃO
Eventualmente, alguns dos campos ausentes do IPv4 ainda serão
necessários, sendo assim, no IPv6 foi introduzido um conceito de um cabeçalho de
extensão que é opcional. Esse cabeçalho pode ser criado tendo como finalidade
oferecer informações extras, desde que estas sejam codificadas de maneira
eficiente. Atualmente, existem seis tipos de cabeçalhos de extensão já definidos,
conforme tabela 4.1. Eles são todos opcionais, porém, se houver mais de um, eles
tem que aparecer logo depois do cabeçalho fixo e, preferencialmente, na mesma
ordem listada a seguir.
Tabela 4.1 - Cabeçalhos de extensão.
Fonte: Tanenbaum, 2003, p. 361.
Tanenbaum (2003) relata que alguns desses cabeçalhos têm um formato fixo,
mas outros contêm um número variável de campos de comprimento variável. Nesses
casos, cada item é codificado como uma tupla, ou seja, um conjunto de objetos em
uma tabela, tais como: Type, Lenght, Value.
O autor ainda afirma que o campo Type contém 1 byte que serve para
identificar a opção. Os valores deste campo são escolhidos de tal forma que os dois
primeiros bits indicam aos roteadores que não sabem como processar a opção o
que eles devem fazer. As possibilidades oferecidas são: ignorar a opção; descartar o
55
pacote; descartar o pacote e enviar de volta um pacote ICMP e também descartar o
pacote sem que sejam enviados pacotes ICMP para endereços de multidifusão, esta
última opção impede que os pacotes de multidifusão defeituosos ocasionem muitos
de relatórios de erros ICMP. O campo Length também contém apenas 1 byte, porém
ele serve para identificar o tamanho do valor, que pode variar entre 0 a 255 bytes.
Este campo armazena todas as informações obrigatórias, com tamanho máximo de
255 bytes. Já o cabeçalho hop-by-hop é usado para armazenar as informações que
todos os roteadores ao longo do caminho devem examinar. Até então, uma opção foi
definida: a compatibilidade com datagramas além de 64 K. Quando este cabeçalho é
usado, o campo Payload length do cabeçalho fixo é definido como zero, conforme
quadro 4.1.
Quadro 4.1 - Formato do cabeçalho de hop-by-hop para jumbogramas.
Fonte: Tanenbaum, 2003, p. 361.
Tanenbaum (2003) ainda afirma que do mesmo modo que todos os outros
cabeçalhos de extensão, este cabeçalho começa com 1 byte, que tem a função de
identificar o tipo do próximo cabeçalho. Depois desse primeiro byte, vem um byte
identificador do tamanho do cabeçalho hop-by-hop, que exclui os primeiros 8 bytes,
que são obrigatórios. Todas as extensões começam dessa maneira. Os 2 bytes a
seguir são indicadores de que essa opção define o tamanho do datagrama, usando
o código 194 e que o tamanho é um numero de 4 bytes. Os últimos 4 bytes
identificam o tamanho do datagrama. Ele não permite datagramas menores que
65.536 bytes; datagramas maiores serão eliminados no primeiro roteador, e isso
resultará no envio de uma mensagem de erro do ICMP. Os datagramas que utilizam
essa extensão de cabeçalho são chamados jumbogramas, ou seja, datagramas
grandes. O uso de jumbogramas é de extrema importância quando se trata de
aplicações em supercomputadores, já que estes fazem transferências de gigabytes
56
de dados pela Internet com grande eficiência.
De acordo com Tanenbaum (2003) o cabeçalho que contém as opções de
destino é usado em campos que só o host de destino deve interpretar. Em sua
versão inicial, as únicas opções definidas são opções nulas para preencher esse
cabeçalho até que se forme um múltiplo de oito bytes, sendo assim, ele inicialmente
não será utilizado. No entanto, este campo foi incluído com a finalidade de garantir
que o novo software de roteamento e de host poderão tratá-lo, no caso de alguém
imaginar uma opção de destino algum dia.
O autor ainda afirma que o cabeçalho de roteamento faz uma lista com um ou
mais roteadores por onde o pacote deverá passar até que chegue ao seu destino.
Ele é muito similar ao roteamento de origem livre do IPv4, em relação ao fato de que
todos os endereços listados terão que ser visitados em uma certa ordem, porém,
nada impede que outros roteadores não listados também possam ser visitados. O
formato do cabeçalho de roteamento é mostrado no quadro 4.2 a seguir.
Quadro 4.2 - Cabeçalho de extensão para roteamento.
Fonte: Tanenbaum, 2003, p. 362.
Neste cabeçalho os 4 primeiros bytes do contém quatro campos de 1 byte
cada, são eles: o campo Next header e o Header extension length que já foram
descritos, e também o campo Routing type e o Segments left. O campo Routing type
indica o formato do restante do cabeçalho. O tipo 0 informa que uma palavra
reservada de 32 bits segue a primeira palavra, e é acompanhada por algum número
de endereços IPv6. Porém outros tipos poderão ser criados no futuro, caso se torne
necessário. E por último, há o campo Segments left que controla quantos endereços
da lista ainda não foram visitados. Toda vez que um endereço é visitado ele é
decrementado, quando a contagem chegar a 0, o pacote ficará sem nenhuma
orientação sobre qual rota seguir, porém geralmente isto ocorre quando o pacote
57
está muito próximo do destino, então a melhor rota se torna evidente.
(TANENBAUM, 2003)
Segundo Tanenbaum (2003), o cabeçalho de fragmento lida com a
fragmentação da mesma maneira que o IPv4. Este cabeçalho contém o identificador
do datagrama, o número do fragmento e um bit que informará se vão haver outros
fragmentos em seguida. Ao contrário do IPv4, no IPv6, apenas o host de origem
poderá fragmentar os pacotes, já os roteadores que haverão pelo caminho não
podem fazê-lo. Apesar de isso romper com o funcionamento utilizado no passado,
esse recurso veio para simplificar o trabalho dos roteadores e tornar o roteamento
mais rápido. O fato de ser enviada uma mensagem de erro ICMP, permite que o
host de origem use este cabeçalho para fragmentar o pacote em pedaços menores e
tentar outra vez.
O autor segue afirmando que o cabeçalho de autenticação fornece um
mecanismo que faz com que o receptor tenha certeza de quem enviou o pacote. A
carga útil de segurança criptografada torna possível criptografar o conteúdo de um
pacote, de modo que apenas o seu destinatário tenha acesso a seu conteúdo.
4.4 TRÊS TIPOS DE ENDEREÇOS BÁSICOS DO IPv6
Segundo Comer (2006), no IPv6 assim como no IPv4 um endereço é
associado a uma conexões de rede específica, e não a um determinado computador
específico. As atribuições de endereços também são semelhantes ao IPv4, um
roteador IPv6 tem dois ou mais endereços, e um host IPv6 em uma conexão de rede
precisa somente de um endereço. O IPv6 também detém e estende a hierarquia de
endereços do IPv4 em que uma rede física recebe um prefixo. No entanto, para
tornar mais fáceis a atribuição e modificação, o IPv6 permite que sejam atribuídos
vários prefixos a determinada rede e que um certo computador possa ter vários
endereços simultâneos a determinadas interfaces.
O autor relata que o IPv6 além de permitir vários endereços simultâneos por
conexão de rede, também expande, e pode unificar se for o caso endereços
especiais do IPv4. Geralmente os endereços de destino dos datagramas podem ser
classificados em três categorias, são elas: uniscast, anycast e broadcast.
58
O endereço unicast especifica um único computador, que pode ser um host
ou roteador, nele o datagrama deverá ser roteado até o seu destino pelo caminho
mais curto.
No endereço anycast o destino é um grupo de computadores, que podem
estar situados em locais diferentes e que compartilhem um único endereço. Então o
datagrama será roteado e entregue a um membro do grupo, provavelmente o
membro mais próximo. Anteriormente este tipo de endereço era conhecido como
cluster.
Já no endereço multicast, o destino também será um grupo de computadores
que podem também estar em vários locais. Nele o datagrama é enviado, porém uma
cópia será entregue a cada membro deste grupo, utilizando multicast, unicast e
também broadcast de hardware caso seja possível.
4.5 PROPOSTA DE ATRIBUIÇÃO DE ESPAÇO DE ENDEREÇOS IPv6
De acordo com Comer (2006), a maneira como os endereços foram
particionados gerou muita discussão, por dois motivos, são eles: o gerenciamento da
atribuição de endereços e o mapeamento de endereços a uma rota. Em relação à
gerência é abordado o problema prático de se criar uma hierarquia de autoridade, já
que o IPv6 permite uma hierarquia de multinível, ao contrário da Internet atual que
utiliza uma hierarquia com dois níveis de prefixo de rede, atribuídos por um ISP e o
sufixo de host, que é atribuído por uma organização. A segunda questão trata da
eficiência computacional, pois Independente da hierarquia da autoridade que atribui
os endereços, os roteadores precisam examinar cada datagrama e escolher um
caminho até o destino. Então, para se manter baixo o custo de roteadores de alta
velocidade, é necessário manter o tempo de processamento exigido para escolher
um caminho baixo.
O autor ainda afirma que os projetistas do IPv6 propuseram que a atribuição
de blocos de endereços fosse feita de uma maneira semelhante ao esquema que já
era utilizado no IPv4. Mesmo que os oito primeiros bits dos endereços sejam
suficientes para identificar seu tipo, o espaço de endereços não utiliza seções
particionadas com o mesmo tamanho. Esta atribuição é mostrada na tabela 4.2.
59
Tabela 4.2: Divisão Proposta dos endereços IPv6 em tipos.
Fonte: Comer, 2006, p. 379.
Analisando a tabela pode-se observar que apenas 15% do espaço de
endereços foi atribuído até o momento. O IETF irá usar as partes restantes conforme
for crescendo a demanda. E apesar da atribuição, estes endereços foram escolhidos
para que o processamento se torne mais eficiente.
4.6 TRANSIÇÃO E ENDEREÇOS IPv4 EMBUTIDOS
De acordo com Comer (2006) durante o processo de transição entre os dois
protocolos, os projetistas pretender utilizar uma pequena parcela dos endereços
reservados, notados por 0000 0000 conforme visto no quadro 4.3, para que os
endereços IPv4 sejam codificados. Por exemplo, qualquer endereço que se inicie
com 80 bits zero seguidos por 16 bits 1 ou 16 bits 0 contém um endereço IPv4 nos
32 bits de baixa ordem. O valor desse campo de 16 bits indica se o nó também
contém um endereço IPv6 unicast convencional.
60
Quadro 4.3 - Codificação do endereço IPv4 em um endereço IPv6.
Fonte: Comer, 2006, p. 379.
Este tipo de codificação torna-se necessário, segundo afirma o autor, pelo
tempo que a mudança de protocolo estiver em transição. Sua necessidade tem dois
motivos, o primeiro deles é o fato de que um computador possa escolher se vai
atualizar do IPv4 para o IPv6 antes de receber um IPv6 válido, e o segundo trata da
comunicação entre um computador que use o IPv6 e um que ainda use o IPv4.
Comer (2006) afirma que essa codificação não soluciona o problema de
tornar as duas versões interoperáveis, pois além de codificar é necessário que se
traduza. Para utilizar o tradutor, um computador com IPv6 gera um datagrama que
contém a codificação IPv6 do endereço destino IPv4, então o tradutor utilizará o IPv4
para se comunicar com o destino. E quando receber a resposta do destino irá
traduzir para o IPv6 enviando a resposta de sua solicitação.
Os projetistas dessa tradução de endereços planejaram de maneira
cuidadosa de modo que se permita que os protocolos TCP, UDP em máquinas IPv4
se comuniquem com seus correspondentes nas máquinas com IPv6. Para evitar a
divergência do checksum, a codificação foi escolhida de maneira que o checksum do
complemento a 1 de 16 bits para um endereço IPv4 e a do IPv6 sejam idênticas.
Além de escolher detalhes técnicos de um novo Internet Protocol, o trabalho
do IETF no IPv6 focalizou a descoberta de um modo de passar do protocolo
atual para um novo protocolo. Em particular, a proposta atual para o IPv6
permite que alguém codifique um endereço IPv4 dentro de um endereço
IPv6, de modo que a tradução de endereço não mude o checksum do
pseudocabeçalho.(Comer, 2006, p.380)
4.7 ENDEREÇOS NÃO-ESPECIFICADO E DE LOOPBACK
Segundo Comer (2006), no IPv6 tanto quanto no IPv4 alguns endereços
receberam significados especiais e portanto não podem ser utilizados para
61
endereçar nenhum host, são eles: o endereço não-especificado e o endereço de
loopback.
O endereço não-especificado segundo o autor é composto por todos os bits
zero, ou seja, 0:0:0:0:0:0:0:0. Ele só pode ser usado como endereço de origem
durante a inicialização por um computador que ainda não descobriu seu próprio
endereço.
Já o endereço de loopback, assim como no IPv4 funciona para testar
softwares. É notado da seguinte maneira: 0:0:0:0:0:0:0:1.
4.8 ESTRUTURA DO ENDEREÇO UNICAST
Segundo Comer (2006) no IPv6, a versão mais recente da estrutura de
endereçamento Unicast se assemelha ao esquema utilizado no endereçamento de
sub-redes, onde cada endereço é dividido em três partes conceituais, como é
mostrado no quadro 4.4.
O autor afirma que a primeira parte corresponde a um prefixo de rede usado
para rotear o datagrama, a segunda é um ID da sub-rede usado para distinguir
várias redes físicas em determinado site, já a terceira parte é um ID de interface que
identifica uma conexão em particular com a sub-rede.
Quadro 4.4: Divisão do endereço Unicast.
Fonte: Comer, 2006, p. 380.
4.9 IDENTIFICADORES DE INTERFACE
De acordo com Comer (2006) na divisão do endereço Unicast, os 64 bits de
62
baixa ordem identificam uma interface de rede específica. No IPv4 não era assim,
porém o IPv6 teve seu sufixo escolhido para ser grande de modo que possa
acomodar uma codificação direta do endereço de hardware e da interface. Esta
codificação tem duas conseqüências, a primeira é que o IPv6 não utiliza o protocolo
Address Resolution Protocol (ARP) para fazer a tradução de endereços IP em
endereços de hardware, pois utiliza um protocolo de descoberta do vizinho, ou
Neighbor Discovery Protocol disponível com uma versão do ICMP, o ICMPv6 que
permite que um nó determine quais computadores são seus vizinhos conectados de
maneira direta. A segunda conseqüência, é que para garantir a interoperabilidade
entre eles, todos os computadores devem usar a mesma codificação para o
endereço de hardware. Como conseqüência os padrões IPv6 especificam
exatamente como codificar várias formas de endereços de hardware. O endereço do
hardware é colocado diretamente no endereço IPv6 nos casos mais simples, alguns
formatos usam transformações mais complexas.
O autor ainda relata que existem duas codificações de exemplo que auxiliam
a esclarecer o conceito. Como por exemplo, o formato de endereço globalmente
exclusivo de 64 bits conhecido como EUI-64 que foi definido pelo Institute of
Electrical and Electronics Engineers (IEEE). Neste caso uma única mudança se faz
necessária quando se codifica endereços EUI-64 em endereços IPv6, esta que
consiste em inverter o bit 6 no octeto de alta ordem, que indica se o endereço é
conhecido como sendo exclusivo globalmente.
Porém em relação aos endereços Ethernet convencionais de 48 bits uma
mudança mais complexa se torna necessária. Os bits do endereço original não são
contíguos na forma codificada, ao invés disso são inseridos no meio 16 bits com o
valor hexadecimal FFFE16.
Figura 4.3 - Formato do endereço Ethernet de 48 bits.
Fonte: Comer, 2006, p. 381.
63
O restante dos bits o que inclui o bit de grupo, que é rotulado como g, a ID da
empresa que fabricou esta interface, que é rotulada como c e a extensão do
fabricante são copiados. A figura 4.3 mostra o endereço Ethernet de 48 bits
convencional e também a sua forma codificada.
4.10 ENDEREÇOS LOCAIS
Segundo Comer (2006) além de endereços de unicast globais o IPv6 inclui
prefixos para endereços de unicast que possuem um escopo local. Este padrão os
define como endereços locais ao enlace, ou link-local address este que são restritos
a uma única rede, e outras formas de endereços restritos também foram propostos.
Os roteadores têm que seguir as regras de escopo, um roteador nunca deve
encaminhar um datagrama que contenha endereços de escopo local fora do espaço
especificado, ou seja, que estão fora da rede local.
O autor ainda afirma que os endereços locais de enlace oferecem
comunicação por uma única rede física sem correr risco de o datagrama ser
encaminhado pela Internet. Um exemplo, caso ao se realizar a descoberta de
vizinho, um nó IPv6 usa um endereço local ao enlace. Estas regras de escopo
servem para especificar que somente computadores da mesma rede física do
emissor vão receber mensagens de descoberta de vizinho. De maneira semelhante,
um computador conectado a uma rede isolada, ou seja, uma rede sem roteadores
conectados a ela pode usar endereços de locais ao enlace para que se
comuniquem.
4.11 AUTOCONFIGURAÇÃO E REMUNERAÇÃO
De acordo com Comer (2006) o IPv6 foi elaborado com suporte a
autoconfiguração sem o uso de um servidor, chamado também de autoconfiguração
sem estado ou stateless autoconfiguration, permitindo que os computadores se
64
comuniquem sem a necessidade de um administrador para especificar e atribuir os
endereços. Duas facilidades tornam esta autoconfiguração possível e eficiente:
endereçamento local ao enlace e identificadores de interface embutidos. Para que a
autoconfiguração se inicie, é necessário que um computador gere um endereço local
ao enlace combinado com o prefixo local ao enlace, 1111 1110 10, com 54 bits zero
e seu identificador de interface de 64 bits.
Segundo o autor ao verificar que o endereço local ao enlace é exclusivo, o
computador o utiliza para enviar uma solicitação de roteador, ou router solicitation,
que requisita informações adicionais de um roteador. Se houver um roteador na reda
rede, este responde enviando um anúncio de roteador, ou router advertisement que
irá informar ao host sobre os prefixos que podem ser usados em endereços globais.
E quando recebe este anúncio, o computador transforma o emissor seu roteador
default. Por fim, uma flag no anúncio indica se o computador deve usar a
autoconfiguração ou se deverá utilizar o DHCP, que é uma configuração gerenciada
convencional. (COMER, 2006)
De acordo com autor, de modo a facilitar a remuneração da rede, o IPv6
permite que os roteadores limitem um tempo para o computador reter o prefixo. Para
isso, o anúncio especifica dois valores de tempo para cada prefixo, um é relacionado
ao tempo de vida válido e o outro ao tempo de vida preferido. É extremamente
importante que um host escute os anúncios de outros roteadores, ou seja, os
roteadores adicionais. Quando o tempo de vida preferido de um prefixo expira, ele
continua válido, porém mesmo no caso de ter uma comunicação em andamento o
host precisa parar de usar este prefixo.
Segundo Comer (2006) por trás da remuneração está uma idéia simples, o
anuncio de um novo prefixo, ou seja, um prefixo adicional, depois a espera e então a
desativação do prefixo antigo, porém, na prática essas transições são difíceis. As
conexões de transporte de longa duração são terminadas quando há uma mudança,
um servidor que se vincular a um endereço existente não vai receber contato em seu
novo endereço e isso significa que o roteamento deve ser modificado. No decorrer
desta transição, cada interface terá vários endereços, e os tempos de vida dos
endereços necessitam ser coordenados com o DNS para que se evite que sejam
utilizadas cópias em cache contendo os registros de recursos para endereços
antigos. Isto faz com que a remuneração não seja direta no sentido prático.
65
5. FUNCIONAMENTO E CONFIGURAÇÃO DO IPV6
Neste capítulo foi realizada a configuração de duas máquinas virtuais
conectadas em rede implementando o endereçamento IPv6.
Para tanto utilizou-se o software VirtualBox, que foi desenvolvido pela Sun
Microsystems. Este software funciona como um mecanismo para virtualização,
permitindo a instalação de sistemas operacionais e seus respectivos softwares
dentro de outro instalado na máquina física. A virtualização torna as máquinas
independentes, porém elas compartilham o mesmo hardware. Sua escolha foi feita a
partir de pesquisas sendo que o fato de possuir uma distribuição Open Source e
licença pública, fez com que se tornasse a melhor opção.
Duas máquinas virtuais foram criadas a partir da VirtualBox: uma utilizando
uma distribuição Linux, o Ubuntu que também é Open Source, se tornando mais
acessível; já na outra máquina foi instalado o Windows XP, da Microsoft que é um
software proprietário, porém em razão um projeto chamado Programa MSDNAA
(MSDN Academic Alliance) que é uma parceria do Centro Paula Souza com a
Microsoft, os alunos da instituição podem obter acesso aos softwares.
5.1 INSTALAÇÃO E CONFIGURAÇÃO DO PROTOCOLO IPV6
O protocolo IPv6 já vem instalado por padrão em alguns sistemas
operacionais, caso o contrário, existe a possibilidade de instalá-lo. A seguir serão
feitas as configurações necessárias nas máquinas virtuais criadas, sendo que são
66
exemplificadas as duas condições: a instalação e configuração, no caso de o IPv6
não estar instalado por padrão, o que é caso do Windows XP; e a configuração em
uma máquina onde este protocolo já vem instalado por padrão, no caso o Ubuntu.
5.1.1 Windows XP
No sistema operacional Windows XP, o suporte ao IPv6 não vem instalado
por padrão, o que torna necessária a instalação do mesmo.
Existem duas maneiras de realizar a instalação do protocolo IPv6 no Windows
XP são elas: instalação via interface gráfica ou instalação por meio de comandos
inseridos no prompt.
Para iniciar a configuração da máquina utilizando o prompt de comandos, é
necessário inserir a linha de comando para instalação do IPv6: IPv6 install, que está
exemplificado na figura 5.1.
Caso haja necessidade de remoção do protocolo IPv6 a partir do prompt de
comandos, utiliza-se o comando IPv6 uninstall.
Figura 5.1: Comando para instalar o IPv6 no WindowsXP.
Fonte: Elaborado pela autora.
No Windows XP também existe a possibilidade de instalação do protocolo
IPv6 via interface gráfica, para tanto é necessário acessar as Propriedades de rede,
como será exemplificado na figura 5.2. Neste caso, são mostradas as opções para a
67
instalação e também para desinstalar o protocolo.
Figura 5.2: Instalação do IPv6 a partir da interface gráfica.
Fonte: Elaborado pela autora.
Como pode-se observar na figura 5.2, a opção “propriedades” não está
disponível como acontece na configuração do IPv4, portanto a atribuição de
endereços IPv6 nesse sistema operacional não é acessível via interface gráfica,
podendo somente ser feita através do prompt de comandos.
Para efetuar a atribuição do endereço IPv6 nesta máquina, utiliza-se o
seguinte comando: netsh ipv6 add address “rede” fe80:0:0:0:0:c0a8:3866,
exemplificado na figura 5.3. Para removê-lo utiliza-se o comando: netsh ipv6 delete
address “rede” fe80:0:0:0:0:c0a8:3866. O endereço atribuído também pode ser
notado da seguinte maneira fe80::c0e8:3866 de acordo com as otimizações
propostas, a seguir os endereços serão notados sempre dessa maneira.
Este comando utilizado nas distribuições Windows, serve para especificar o
tipo do protocolo utilizado e para qual interface de rede o endereço será atribuído, o
nome da interface deve ser notado entre aspas.
68
Figura 5.3: Atribuição de um endereço IPv6 no Windows XP.
Fonte: Elaborado pela autora.
O ipconfig é um comando específico das distribuições Windows, ele mostra
todas as configurações dos adaptadores de rede.
Na figura 5.4 são mostradas essas configurações, pode-se observar um
índice numérico mostrado como porcentagem no final de todos os endereços IPv6.
Este índice é específico das distribuições Windows, e é utilizado na realização do
teste de comunicação ping, como será exemplificado no item 5.2.1.
.
Figura 5.4: Comando ipconfig
Fonte: Elaborado pela autora.
69
5.1.2 Ubuntu
Na distribuição Ubuntu do Linux, o protocolo IPv6 já vem instalado por
padrão, portanto não é necessária a instalação do mesmo. Neste sistema
operacional existe a possibilidade de fazer a configuração via interface gráfica,
porém é mais confiável que as configurações sejam feitas por linhas de comando via
terminal.
Para atribuir um endereço IPv6 via terminal, é necessário utilizar a seguinte
linha de comando: ifconfig eth3 inet6 add fe80:0:0:0:0:c0a8:3865, o endereço
especificado também pode ser notado da seguinte forma fe80::c0a8:3865.
Na figura 5.5 é exemplificada a atribuição do endereço, e também foi utilizado
outro comando o ifconfig que mostra os detalhes de configuração do adaptador de
rede, onde pode-se verificar o endereço IPv6 que foi atribuído.
Figura 5.5: Atribuição de um endereço IPv6 no Ubuntu.
Fonte: Elaborado pela autora.
70
Caso haja a necessidade de se remover o endereço IPv6 atribuído
anteriormente, utiliza-se a seguinte linha de comando: ifconfig eth3 del
fe80::0:0:0:0:c0a8:3865.
5.2 REALIZAÇÃO DE TESTE DE COMUNICAÇÃO
Foram realizadas as devidas configurações nos sistemas operacionais
utilizados pelas duas máquinas pertencentes à rede. Agora devem ser realizados os
testes para verificar se existe a comunicação entre os hosts da rede, o que indica se
as configurações feitas estão corretas. Para a realização dos testes será utilizado
um recurso presente nestes sistemas operacionais, o ping.
5.2.1 Ping a partir do Windows XP
O Windows XP tem uma peculiaridade em relação ao ping direcionado a um
endereço IPv6: é necessário inserir o índice mostrado através do ipconfig na figura
5.4 ao final do endereço destino.
Neste caso, o comando utilizado seria o seguinte: ping fe80::c0a8:3865%5
Figura 5.6: Ping partindo do WindowsXP.
Fonte: Elaborado pela autora.
71
5.2.2 Ping partindo do Ubuntu
No sistema operacional Ubuntu o comando para realização do teste de
comunicação é o ping6, seguido do parâmetro –I, o nome da interface que enviará o
pacote, endereço destino e o parâmetro -c 4
que define o número de pacotes
enviados, por exemplo: ping6 –I eth3 fe80::c0a8:3866 –c 4.
Figura 5. 7 Ping a partir do Ubuntu.
Fonte: Elaborado pela autora.
O resultado apresentado na figura 5.7 mostra que a comunicação entre as
máquinas está ocorrendo, o que significa que a configuração da rede foi realizada de
maneira correta.
5.3 CONVERSÃO DE ENDEREÇOS IPv4 EM IPv6
Durante aproximadamente 10 anos, segundo Comer (2006) o protocolo IP
estará em fase de transição, para que haja compatibilidade entre as versões 4 e 6.
Na busca por endereços IPv6 para serem utilizados na configuração da rede virtual
foi
encontrado
um
site
que
disponibiliza
um
conversor
de
endereços,
72
SubnetOnline.com. Este conversor funciona da seguinte maneira: insere-se um
endereço IPv4 no campo designado, no caso o 192.168.56.101 como mostra a
figura 5.8. Este conversor é muito interessante para obter possibilidades de
endereços IPv6 a serem utilizados em testes como este.
Figura 5.8: Inserindo IPv4 no conversor SubnetOnline.
Fonte: Elaborado pela autora.
Depois é só clicar no botão IPv6 para que seja mostrado o endereço já
convertido, como será mostrado na figura 5.9.
Figura 5.9: IPv6 convertido.
Fonte: Elaborado pela autora.
73
Existe também a possibilidade de utilizar IPv6 condensado que é o endereço
notado de acordo com as otimizações, conforme é mostrado na figura 5.10.
Figura 5.10: IPv6 condensado.
Fonte: Elaborado pela autora.
E também o IPv6 alternativo, que é o IPv4 embutido no IPv6, conforme é
mostrado na figura 5.11.
Figura 5.11: IPv6 alternativo.
Fonte: Elaborado pela autora
.
74
CONCLUSÃO
Este
trabalho
foi
elaborado
partindo
da
necessidade
iminente
da
implementação da nova versão do IP, o IPv6. Com base nas pesquisas realizadas
chegou-se a algumas considerações a serem relatadas.
Quando o Internet Protocol foi implantado não se tinha uma previsão de como
seria a expansão da Internet. E como esta aconteceu de maneira inesperada, o
espaço para alocação de endereços IP que conta com 32 bits, resultando em
4.294.967.296 endereços se tornou insuficiente já em meados de 1992/93.
Com o surgimento dessa demanda extraordinária por endereços IP válidos e
a questão da provável falta dos mesmos, surgiu à necessidade de providências para
impedir um possível colapso na Internet. Partindo dessa necessidade muitas idéias
foram propostas, e algumas delas foram adotadas como soluções paliativas. Essas
soluções foram utilizadas durante os quase 20 anos, decorridos desde o surgimento
desse problema de modo a estabilizar o crescimento da demanda por novos
endereços IPv4.
Nesta mesma época foi elaborado e desenvolvido o IPv6, porém como as
tecnologias usadas como soluções temporárias funcionaram de maneira adequada,
não houve a necessidade de se adotar seu uso imediatamente. No entanto o IPv6 já
está sendo implementado pois os últimos blocos IPv4 disponíveis já foram
distribuídos as entidades regionais responsáveis.
O IPv6 se mostrou uma solução definitiva para o endereço IP, tendo em vista
que apresenta o total de 340.282.366.920.938.463.463.374.607.431.768.211.456
endereços, cerca de 79 trilhões de trilhões de vezes o espaço disponível no IPv4,
fazendo com que fique praticamente impossível que o espaço para alocação se
75
esgote. Além de trazer diversas melhorias no funcionamento do protocolo, em
relação a flexibilidade, eficácia, segurança entre outras.
Na realização da configuração do IPv6 nas máquinas virtuais foram
encontradas algumas dificuldades, pois não existem muitas informações sobre quais
endereços podem ser utilizados livremente. Partindo dessa dificuldade, foram
realizadas pesquisas até encontrar o site SubnetOnline.com, que faz a conversão de
endereços IPv4 em IPv6 e então oferece endereços a serem utilizados em testes em
redes internas.
Como trabalhos futuros poderão ser realizados a configuração dos demais
serviços que o novo protocolo permite, tais como melhor segurança, desempenho e
também sobre como melhora o QoS das redes.
76
REFERÊNCIAS BIBLIOGRÁFICAS
ALECRIM,
E.
Protocolo
DHCP,
23
mar
http://www.infowester.com. Acesso em: 20 mar 2011.
BATISTI, J. Classes de endereços, 01 set
http://www.juliobattisti.com.br. Acesso em: 14 out 2010.
2005.
2009.
Disponível
em
Disponível
em
BUGALLO et al. Introdução ao DHCP, 12 nov 1999. Disponível
http://www.rnp.br/newsgen/9911/dhcp.html. Acesso em: 25 jan 2011.
em
CASTELL,
M.
A
galáxia
da
Internet
(2003).
http://books.google.com.br/books - Acesso em: 17 set 2010.
em
Disponível
COMER, D. E. Interligação de redes com TCP/IP. Rio de Janeiro: Elsevier, 2006.
FARREL, A. A internet e seus protocolos – Uma Análise comparativa. Tradução
Daniel Vieira. Rio de Janeiro: Elsevier, 2005.
FERNANDEZ, F. L. Roteamento IP, 27 Jun 2003. Disponível
http://www.gta.ufrj.br/grad/99_1/fernando/roteamento. Acesso em: 20 jan 2011.
em
FOROUZAN, B. A. Comunicação de dados e redes de computadores. São Paulo:
McGraw-Hill Brasil, 2008.
FRANÇA, P. 6IX Linux: Divulgando e Intensificando a utilização do novo
protocolo da Internet (IPv6), Recife, 18 nov 2005. Disponível em
http://dsc.upe.br/~tcc/20052.html. Acesso em: 28 fev 2011.
77
MARSAN, C. D. No more IPv4 addresses, 01 fev 2011. Disponível em
http://www.networkworld.com/news/2011/020111-IPv4. Acesso em: 02 fev 2011.
RFC Request for Comentes – Disponível em http://www.normes-internet.com.
Acesso em: 16 out 2010.
RODRIGUES, A. A exaustão de endereços IPv4 na Internet e a solução IPv6, 29
abr
2009.
Disponível
em:
http://www.IPv6.br/IPV6/ArtigoExaustaoEnderecosIPv4SolucaoIPv6. Acesso em: 31
set 2010.
RUSCHEL, A. G. Do cabeamento ao servidor. Rio de Janeiro: Brasport, 2007.
SCRIMGER, R. et al. TCP/IP A Bíblia (2002).
http://books.google.com.br/books. Acesso em: 26 out 2010.
Disponível
em
TANENBAUM, A. S. Redes de computadores. Rio de Janeiro: Elsevier, 2003.
TORRES, G. Redes de computadores. Rio de Janeiro: Novaterra Editora e
Distribuidora Ltda., 2009.
VASCONCELOS, L.; VASCONCELOS, M. Manual Prático de Redes. Laércio
Vasconcelos Computação, 2007.
Download

centro estadual de ensino tecnologico “paula souza”