CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES
JOÃO PAULO DE OLIVEIRA BRITTO
RONEY EIDI INOUE
Um Estudo sobre as Técnicas de Transição e Atribuição de
Endereçamento IPv6.
LINS/SP
2º SEMESTRE/2012
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES
JOÃO PAULO DE OLIVEIRA BRITTO
RONEY EIDI INOUE
Um Estudo sobre as Técnicas de Transição e Atribuição de
Endereçamento IPv6.
Trabalho
de
Conclusão
de
Curso
apresentado à Faculdade de Tecnologia de
Lins para obtenção do Título de Tecnólogo
em Redes de Computadores.
Orientador: Prof. Me. Júlio Fernando Lieira.
LINS/SP
2º SEMESTRE/2012
JOÃO PAULO DE OLIVEIRA BRITTO
RONEY EIDI INOUE
Um Estudo sobre as Técnicas de Transição e Atribuição de
Endereçamento IPv6.
Trabalho de Conclusão de Curso
apresentado à Faculdade de Tecnologia
de Lins, como parte dos requisitos
necessários para a obtenção do título
de Tecnólogo(a) em Tecnólogo em Redes sob
orientação do Prof. Me.Júlio Fernando Lieira.
Data de aprovação: ___/___/___
____________________________
Orientador Prof. Me. Júlio Fernando Lieira
______________________________
Orientador Prof. Me. Naylor Garcia Bachiega
______________________________
Orientador Prof. Me. Adriano de Souza Marques
Aos meus pais Eidi e Cláudia, a minha irmã Natália
a minha namorada Kelly e aos meus amigos e parentes
pelo apoio e incentivo que sempre me deram.
Aos meus pais, aos meus irmãos,
aos meus amigos e parentes
pelo apoio e incentivo.
AGRADECIMENTOS
Agradeço primeiramente a Deus, que me deu saúde e forças para realização
desta obra.
Agradeço aos meus pais de uma forma grandiosa, Eidi e Claudia, que sempre
me apoiaram nos estudos, em minha vida e na conclusão desse trabalho.
Agradeço minha irmã, Natália, que sempre esteve presente, e sempre me
ajudou em tudo que eu precisei nesse trabalho.
Agradeço a minha namorada Kelly, que sempre me apoiou e incentivou para
a realização desse trabalho.
Agradeço aos colegas de classe por todos os momentos que passamos
juntos no decorrer do curso e por todo companheirismo e amizade que
demonstraram sempre.
Agradeço aos professores por todo o conhecimento que me foi passado e por
toda a ajuda e compreensão em todos os momentos do curso.
Agradeço ao meu amigo e companheiro de TCC, João Paulo, por sempre
estar disposto a ajudar em tudo que fosse necessário nesse trabalho.
Agradeço também ao Professor Me. Rogério Pinto Alexandre que me ajudou
muito quando precisei dele.
Ao orientador Professor Me. Júlio Fernando Lieira, pela sua paciência,
inteligência, e por sempre estar disposto a ajudar em tudo nesse trabalho.
E a todos aqueles que de alguma forma contribuíram ou torceram pela
concretização deste trabalho.
Roney Eidi Inoue
AGRADECIMENTOS
Agradeço primeiramente a Deus, que me deu saúde e forças para realização
desta obra.
Agradeço aos meus pais, meus irmãos e meus amigos pelo apoio e incentivo.
Agradeço ao Roney que estava sempre correndo atrás para resolver
problemas que apareciam no desenvolvimento da obra.
Agradeço aos professores em especial ao Júlio e o Naylor que sempre
tiveram atenção e paciência nas orientações.
João Paulo de Oliveira Britto
RESUMO
O protocolo IPv4 surgiu nos anos 70 com a finalidade de interligar as
universidades americanas. Cada vezes mais equipamentos são conectados, e com
isso começa a surgir os primeiros sinais da internet. A popularização da internet
aumentou de um modo imenso para a época em que o protocolo IP foi criado, com
isso a quantidade de endereços IPv4 foi se tornando insuficiente. A partir do
esgotamento de endereços IPv4 foi necessário criar o protocolo IPv6 que possui
mais de 340 undecilhões de endereços IPs . Esse trabalho tem como objetivo
apontar as diferenças entre as duas versões do protocolo, demonstra uma forma de
transição do protocolo IPv4 para o IPv6, para que não haja um grande impacto nas
redes atuais. O estudo de caso apresenta um servidor de DNS e DHCP
implementados em um sistema operacional Linux, que utiliza o mecanismo de pilha
dupla e duas máquinas clientes, uma Linux e outra Windows para os devidos testes
de funcionalidade do protocolo IPv6.
Palavras-chave: IPv4. IPv6. DNS. DHCP. Ubuntu. Windows.
ABSTRACT
The IPv4 protocol emerged in the 70s with the purpose of connecting
American universities. Each times more devices are connected, and this begins to
emerge the first signs of the internet. The popularization of the Internet has increased
a lot so for the time when the IP protocol was created, thus the amount of IPv4
addresses was becoming insufficient. From the depletion of IPv4 addresses was
necessary to create the IPv6 protocol which has more than 340 undecilhões of IP
addresses. This paper aims to point out the differences between the two versions of
the protocol, demonstrates a way to transition from IPv4 protocol to IPv6, so that
there is a big impact in today's networks. The case study presents a DNS server and
DHCP implemented on a Linux operating system, which uses the mechanism of dual
stack and two client machines, one Linux and one Windows to the appropriate
functionality testing of the IPv6 protocol.
Keywords: IPv4. IPv6. DNS. DHCP. Ubuntu. Windows.
LISTA DE ILUSTRAÇÕES
Figura 1.1 - (a) Estrutura do sistema de telefonia. (b) Sistema distribuído de
comutação proposto por Baran. ................................................................................ 19
Figura 1.2 - Crescimento da ARPANET. (a) Dezembro de 1969. (b) Julho de 1970.
(c) Março de1971. (d) Abril de 1972. (e) Setembro de 1972 ..................................... 21
Figura 1.3 - Exemplo de Topologia Barramento ........................................................ 24
Figura 1.4 - Exemplo de Topologia Anel ................................................................... 25
Figura 1.5 - Exemplo de Topologia Estrela ............................................................... 26
Figura - 1.6 Comparativo da camada OSI e TCP/IP ................................................. 30
Figura 1.7 - Como a camada de aplicação funciona ................................................. 30
Figura 1.8 - Protocolos e redes no modelo TCP/IP inicial ......................................... 31
Figura 2.1 - Cabeçalho IPV4 ..................................................................................... 35
Figura 2.2 - Formatos de endereços IP ..................................................................... 39
Figura 2.3 - Endereços IP Especiais ......................................................................... 40
Figura 3.1 – Comparação do Protocolo IPV4 x IPV6 ................................................ 43
Figura 3.2 - Primeiro passo para transformar um endereço MAC no padrão EUI-64 49
Figura 3.3 - Segundo passo para transformar um endereço MAC no padrão EUI-64
.................................................................................................................................. 50
Figura 4.1 – Configuração da Rede. ......................................................................... 59
Figura 4.2 – Reiniciando a Rede. .............................................................................. 59
Figura 4.3 – Estrutura do DNS Bind. ......................................................................... 60
Figura 4.4 – Instalação do Bind9. .............................................................................. 61
Figura 4.5 – Configuração do Bind9. ......................................................................... 61
Figura 4.7 – Ferramenta nslookup. ........................................................................... 63
Figura 4.8 – Instalação do Teredo. ............................................................................ 63
Figura 4.9 – Ping no Servidor DNS Versão 4. ........................................................... 64
Figura 4.10 – Ping no Servidor DNS Versão 6. ......................................................... 64
Figura 4.11 – Ping voltado para internet. .................................................................. 65
Figura 4.12 – IPv6 de Link Local. .............................................................................. 66
Figura 4.13 – Testando a conectividade via IPv6 de link-local, Windows para Linux.
.................................................................................................................................. 67
Figura 4.14 – Testando a conectividade via IPv6 de link-local, Linux para Windows.
.................................................................................................................................. 67
Figura 4.15 – Cenário da atribuição de IPv6 através do radvd para cliente Linux..... 69
Figura 4.16 – Cenário da atribuição de IPv6 através do radvd para cliente Windows.
.................................................................................................................................. 69
Figura 4.17 – Atribuição de IPv6 através do radvd para cliente Windows. ................ 70
Figura 4.18 – Atribuição de IPv6 através do DHCPv6 para cliente Windows. ........... 72
Figura 4.19 – Instalação do isc-dhcp-server.............................................................. 73
Figura 4.20 – Configuração do dhcp IPv4. ................................................................ 73
Figura 4.21 – Configuração do dhcp IPv6. ................................................................ 74
Figura 4.22 – Alteração do isc-dhcp6-server. ............................................................ 75
Figura 4.23 – Alteração do isc-dhcp6-server 2. ......................................................... 75
Figura 4.24 – Reinicialização do isc-dhcp6-server. ................................................... 76
Figura 4.25 – Reinicialização do isc-dhcp-server. ..................................................... 76
Figura 4.26 – Cliente dhcp. ....................................................................................... 77
Figura 4.27 – Ping cliente servidor. ........................................................................... 77
Figura 4.28 – Configurações do Cliente Linux........................................................... 78
Figura 4.29 – Configurações do Cliente Windows. .................................................... 79
Figura 4.30 – Configurações do Cliente Ubuntu para obter endereço via DHCPv6. . 79
Figura 4.31 – Configurações IPv6 no Linux Ubuntu obtidas via DHCP. .................... 80
Figura 4.32 – Ping do cliente Windows para cliente Linux. ....................................... 80
Figura 4.33 – Ping do cliente Linux para cliente Windows. ....................................... 81
Figura 4.34 – Cenário para teste de roteamento entre duas redes IPv6. .................. 81
Figura 4.35 – Comando traceroute6 cliente Linux para cliente Windows. ................. 83
LISTA DE ABREVIATURAS E SIGLAS
ARPA - Advanced Research Projetcts
ARPANET - Advanced Research and Projects Agency
ATM - Asynchronous Transfer Mode
BBN - Bolt, Beranek and Newman
DF - Don’t Fragment
DNS - Domain Name System
FDDI - Fiber Distributed Data Interface
FTP - File Transfer Protocol
HTTP - Hypertext Transfer Protocol
IBM - International Business Machines
ICANN - Internet Corporation for Assigned Names and Numbers
ICMP - Internet Control Message Protocol
IEEE - Institute of Electrical and Electronic Engineers
IETF - Internet Engineering Task Force
IGMP - Internet Group Management Protocol
IMP - Interface Message Processor
IP - Internet Protocol
IPV4 - Internet Protocol version 4
IPV6 - Internet Protocol version 6
ISO - International Organization for Standardization
LAN - Local Architecture Network
MAC - Media Access Control
NCP - Network Control Protocol
OSI - Open Systems Interconnection
PPP - Point-to-Point Protocol
RARP - Reverse Address Resolution Protocol
SCSI - Small Computer System Interface
SIP - Session Initiation Protocol
SMTP - Simple Mail Transfer Protocol
SRI - Stanford Research Institute
TCP/IP - Transmission Control Protocol/Internet Protocol
UCLA - University of California, Los Angeles
UCSB - University OF California, Santa Barbara
UDP - User Datagram Protocol
WWW - WORLD WIDE WEB
SUMÁRIO
INTRODUÇÃO .......................................................................................................... 17
1 ARPANET .............................................................................................................. 19
1.1 REDES E SUAS TOPOLOGIAS ..................................................................... 21
1.1.1 Topologia de Redes ................................................................................. 23
1.1.2 Topologia Barramento ............................................................................. 23
1.1.3 Topologia Anel ......................................................................................... 24
1.1.4 Topologia Estrela ..................................................................................... 25
1.2 MODELO DE REFERÊNCIA OSI ................................................................... 26
1.2.1 Camada Fisica ......................................................................................... 26
1.2.2 Camada Enlace........................................................................................ 26
1.2.3 Camada de Rede ..................................................................................... 27
1.2.4 Camada de Transporte ............................................................................ 27
1.2.5 Camada de Sesão ................................................................................... 27
1.2.6 Camada de Apresentacão........................................................................ 27
1.2.7 Camada de Aplicação .............................................................................. 28
1.3 MODELO DE REFERÊNCIA TCP/IP .............................................................. 28
1.3.1 Camada de Aplicação do TCP/IP ............................................................ 30
1.3.2 Camada de Transporte ............................................................................ 31
1.3.3 Camada de Internet (Inter-rede) .............................................................. 32
1.3.4 Camada de Interface com a rede ............................................................. 33
2 ESTRUTURA DO PROTOCOLO IPV4 .................................................................. 34
2.1 O DATAGRAMA IP ......................................................................................... 34
2.1.1 Campo IHL ............................................................................................... 35
2.1.2 Campo Type of Service ............................................................................ 35
2.1.3 CampoTotal Length .................................................................................. 36
2.1.4 Campo Identification, DF,MF e Fragment Offset ..................................... 36
2.1.5 Campo Time to Live ................................................................................. 37
2.1.6 Campo Header Checksum ....................................................................... 37
2.1.7 Os campos source address e destination address ................................... 37
2.1.8 Campo options ......................................................................................... 38
2.2 ENDEREÇO IPv4 ........................................................................................... 38
2.2.1 Classes do protocolo IPV4 ....................................................................... 38
3 PROTOCOLO IPV6 ................................................................................................ 41
3.1 OBJETIVOS PROPOSTOS PELO PROTOCOLO IPV6 ................................. 41
3.2 CARACTERÍSTICAS DO IPV6 ....................................................................... 42
3.3 ESTRUTURA DO CABEÇALHO IPV6 ............................................................ 43
3.3.1Diferenças entre os cabeçalhos IPV4 e IPV6 ........................................... 44
3.3.2 Cabeçalhos de Extensão ........................................................................ 44
3.4 SERVIÇOS BÁSICOS EM REDES IPV6 ........................................................ 46
3.4.1 ICMPv6 ................................................................................................... 46
3.4.2 DHCPv6 .................................................................................................. 46
3.4.3 DNS ........................................................................................................ 47
3.5 CLASSIFICAÇÃO DOS ENDEREÇOS IPV6 ................................................. 47
3.5.1 Categoria de Endereços IPV6 Unicast ..................................................... 47
3.6 IDENTIFICADOR DE INTERFACE ................................................................. 49
3.7 ENDEREÇOS IPV6 ESPECIAIS ..................................................................... 50
3.8 TÉCNICAS DE TRANSIÇÃO .......................................................................... 51
3.8.1 Classificação das técnicas de transição................................................... 52
3.8.2 Pilha Dupla............................................................................................... 52
3.8.3 Técnicas de Tunelamento ........................................................................ 53
3.8.3.1 Tunnel Brokers ................................................................................. 53
3.8.3.2 Usar túnel IPv6 pode tornar o acesso lento ...................................... 53
3.8.4 Túneis 6to4, ISATAP e Teredo ................................................................ 54
3.8.4.1Túneis 6to4 ........................................................................................ 54
3.8.4.2 IPv6 Rapid Deployment – 6rd ........................................................... 54
3.8.4.3 NAT 444............................................................................................ 55
3.8.4.4 ISATAP – Intra-Site Automatic Tunnel Addressing Protocol ............. 55
3.8.4.5 Teredo .............................................................................................. 55
3.8.4.6 Nat64/Dns64 ..................................................................................... 56
4 IMPLEMENTAÇÃO DE UM AMBIENTE DE REDE IPv6........................................ 58
4.1 ATRIBUINDO ENDEREÇO IP AO SERVIDOR ............................................... 58
4.2 INSTALAÇÃO E CONFIGURAÇÃO BIND DNS .............................................. 60
4.3 INSTALAÇÃO DO TUNEL MIREDO TEREDO ............................................... 63
4.4 ENDEREÇOS IPV6 ......................................................................................... 65
4.4.1 Atribuindo IPv6 Manualmente .................................................................. 68
4.4.2 Configuração de endereços Stateless através do radvd .......................... 68
4.4.3 Configuração de endereços Statefull através do DHCPv6 ...................... 71
4.4.4 Instalção e Configuração do Servido DHCP ............................................ 72
4.5 ROTEAMENTO ENTRE DUAS REDES IPV6 ................................................. 65
CONCLUSÃO............................................................................................................ 84
REFERÊNCIAS BIBLIOGRÁFICAS .......................................................................... 85
17
INTRODUÇÃO
Uma rede de computadores é formada por um ou mais equipamentos
interligados, e pode ser composta não apenas por computadores, mas por vários
tipos de equipamentos como impressoras, celulares, videogames, geladeiras e
outros dispositivos. Para que ocorra comunicação entre esses equipamentos, existe
um determinado conjunto de regras a serem seguidas, em uma dessas regras se
inclui o protocolo IP, que foi criado para que as máquinas se comuniquem utilizando
uma forma comum de comunicação. Segundo TANENBAUM (2003, p. 337): “[...] Na
Internet, cada host e cada roteador têm um endereço de protocolo de internet (IP)
que codifica seu número de rede e seu número de host. A combinação é exclusiva.
Em princípio, duas máquinas na Internet nunca têm o mesmo endereço IP [...]”.
O Protocolo IP foi criado no início da década de 70, ele foi desenvolvido junto
com uma das primeiras redes a ser criada, a extinta Agência de Pesquisa em
Projetos Avançados (ARPANET) que era patrocinada pelo Departamento de Defesa
dos Estados Unidos, sua conexão era feita por linhas telefônicas dedicadas. Através
do aperfeiçoamento dos protocolos da ARPANET surgiu o protocolo de Controle de
Transmissão/Protocolo de Internet (TCP/IP), que trouxe uma maior vantagem em
relação ao antigo protocolo. O protocolo IP possuía uma quantidade de
endereçamentos mais que suficiente para época, atualmente há aproximadamente
4,3 bilhões de endereços sendo utilizados, e como é previsto um crescimento
contínuo no uso da internet, futuramente não haverá endereços suficientes. Para
solucionar esse problema foi desenvolvido o IPV6 que é substituto do IPV4.
Em seu projeto o IPV4 não inclui mobilidade, segurança e nem qualidade de
serviço, é um protocolo não orientado a conexão (não há garantia que os dados
serão entregues ao destinatário). O protocolo IPV6 substituto do IPV4 basicamente
possui as mesmas funções mais com algumas diferenças, seu espaçamento de
endereços é estendido, atribuindo assim faixas gigantescas de endereços IPs, ele
possui maior segurança em relação o IPV4.
Esse trabalho visa apresentar as mudanças de versões de IP e mostrar que
haverá um impacto em todas as áreas, com o objetivo de mostrar as mudanças de
uma versão para outra, descrevendo as características e diferenças do IPV4 em
18
relação ao IPV6 de um modo que a transição tenha o menor impacto nas redes
atuais, minimizando possíveis problemas que possa surgir com essa transição.
O trabalho está estruturado em quatro capítulos. A seguir uma breve descrição
de cada um.
O primeiro capítulo descreve alguns conceitos de redes de computadores, com
foco nas camadas da arquitetura TCP/IP.
No segundo capítulo fala sobre a estrutura do protocolo IPv4.
No terceiro capítulo o principal foco do trabalho, que é falando sobre o novo
protocolo IPv6, sua estrutura, cabeçalho e formas de transições.
No quarto e último capítulo a parte da implementação, usando máquinas
virtuais com diferentes sistemas operacionais e mostrando na prática como funciona
o novo protocolo IPv6.
19
1 ARPANET
Segundo Tanenbaum (2003) os primeiros resquícios da Advanced Research
and Projects Agency (APARNET) surgem na década de 50, no auge da guerra fria, o
departamento de defesa americano queria uma rede de controle e comando que
fosse capaz de sobreviver a uma guerra nuclear. Naquela época toda a
comunicação militar passava por rede telefônica pública e assim se tornando
vulnerável, pois se alguma central interurbana fosse destruída comprometeria toda a
região servida por aquela central (Figura 1.1 (a)). Uma solução proposta na época é
mostrada na Figura 1.1 (b), onde podemos notar caminhos alternativos entre dois
pontos quaisquer da rede.
Figura 1.1 - (a) Estrutura do sistema de telefonia. (b) Sistema distribuído de
comutação proposto por Baran.
Fonte: TANENBAUM, 2003, p.55
Segundo Tanenbaum (2003) em 1957 diante da disputa entre marinha, exército
e a força área o então presidente dos Estados Unidos naquela época Eisenhower
decide criar uma única organização de pesquisa de defesa, chamada Advanced
20
Research Projetcts (ARPA). No início possuía apenas um escritório e um pequeno
orçamento se comparado com os padrões do pentágono.
Segundo Tanenbaum (2003) muitos anos se passaram e o departamento de
defesa dos Estados Unidos não tinha ainda um sistema melhor de comando e
controle e a ARPANET não possuía um foco específico. No ano de 1967 quando seu
diretor, na época Larry Roberts, focou ARPANET apenas para redes e junto com um
grupo de especialistas para decidir o que fazer para que essa rede funcionasse, um
deles Wesley Clark tem a ideia de criar uma sub-rede comutada por pacotes,
deixando
cada
host
com
seu
roteador.
minicomputadores conhecidos como
A
sub-rede
era
composta
por
Interface Message Processors (IMPs),
conectados por linha de comunicação de 56Kbps. Cada IMP era conectado pelo
menos a dois outros IMPs, isso era feito para garantir a confiabilidade da sub-rede,
caso algum IMP ou uma linha de comunicação fosse destruída a mensagem
automaticamente passaria por outro caminho.
Segundo Tanenbaum (2003) logo depois da ARPANET abrir uma concorrência
em que 12 empresas apresentam propostas para construção da sub-rede, no final
de 1968 a Bolt, Beranek and Newman (BBN) uma empresa de consultoria de
Cambridge, Massachusetts, assinou o contrato para montar a sub-rede e
desenvolver seus softwares. A BBN utilizou nos IMPs microcomputadores
HoneyWell DDP-316 modificados, com memória principal de 12kb palavras de
16bits, não possuía unidade de disco, o software era dividido em duas partes subrede e host.
Segundo Tanenbaum (2003) havia um problema, não havia software para os
hosts, para solucionar o problema Roberts reuniu os pesquisadores, que em sua
maioria era formada por universitários, que descobriram que teriam de entender o
projeto que iriam realizar, pois não havia nenhum especialista no projeto.
Segundo Tanenbaum (2003) no ano de 1969 uma rede experimental passa a
ser utilizada e era conectada a quatro locais diferentes a Universidade da Califórnia
em Los Angeles (UCLA), Universidade da Califórnia em Santa Barbara (UCSB),
Stanford Research Institute (SRI) e Universityof Utah, todos tinham hosts diferentes
e incompatíveis, isso tornava o desafio ainda maior para os pesquisadores. A rede
cresceu rapidamente e logo se estendeu por todo território norte-americano.
Segundo Cerf e Kahn (apud TANENBAUM, 2003, p.57) em algumas
experiências feitas foi constado que o Network Control Protocol (NCP) da ARPANET
21
não era adequado para execução em várias redes, diante desse problema os
pesquisadores desenvolveram os protocolos Transmission Control Protocol e
Internet Protocol (TCP/IP). Segundo TANENBAUM (2003) TCP/IP foi criado
especificamente para manipular a comunicação sobre inter-redes e se tornou
importante no momento em que cada vez mais redes eram conectadas à ARPANET.
Figura 1.2 - Crescimento da ARPANET. (a) Dezembro de 1969. (b) Julho de 1970.
(c) Março de1971. (d) Abril de 1972. (e) Setembro de 1972
Fonte: TANENBAUM, 2003, p.55
Com o passar dos anos a APARNET foi se aperfeiçoando, e cada ano que se
passava havia um crescimento considerável, com isso houve um aperfeiçoamento
dos seus recursos, de seus protocolos e se desenvolveram novas topologias para as
ligações das redes internas.
1.1 REDES E SUAS TOPOLOGIAS
Cada vez mais os seres humanos se tornam dependes dos computadores.
Segundo Tanenbaum (2003) muitas empresas possuem páginas de internet
vinculadas a outras páginas, que contém informações sobre produtos, preços,
vendas, suporte técnico, seja um grande banco, ou uma simples loja ou até mesmo
22
um usuário doméstico com suas páginas pessoais. Atualmente, grande parte dos
brasileiros possui pelo menos um computador interligado a rede mundial de
computadores, internet, e a tendência é que cada vez mais aumente a quantidade
desses usuários. Devido à informatização de grande parte dos serviços prestados é
comum ouvir “o sistema está fora do ar”, inviabilizando muitos serviços e gerando
certa impotência aos usuários. Nem sempre esses problemas estão relacionados à
rede em geral. Para poder entender o que acontece em uma rede a melhor forma é
entendê-la. Tanenbaum (2003).
Segundo Tanenbaum (2003) uma rede não é composta apenas por
computadores, mas sim por diversos tipos de equipamentos, exemplo disso é a
conexão de dispositivos como geladeiras, televisores, celulares, vídeo games e
outros equipamentos interligados a uma rede. A idéia fundamental é que todas as
casas tenham pelo menos um desses dispositivos conectados a rede e que haja
cada vez mais dispositivos conectados entre si.
Segundo Torres (1998) para haver comunicação em uma rede é necessário
dois ou mais equipamentos independentes interligados entre si, através de cabo
(meio físico) ou sem fio (ondas eletromagnéticas), esses equipamentos são capazes
de se comunicar utilizando uma linguagem própria, um determinado conjunto de
regras a serem seguidas, regras essas conhecidas como protocolos, que foram
criados para que as máquinas se comuniquem utilizando uma forma comum de
comunicação, fazendo com que a rede funcione corretamente utilizando uma
linguagem universal. Existem conjuntos de protocolos conhecidos como modelos de
referência. Destes, dois se destacam: o Open Systems Interconnection (OSI) que é
um modelo utilizado para entender como os protocolos de rede funcionam; e o
TCP/IP que atualmente é utilizado na comunicação via Internet e também na
comunicação entre os computadores da rede de uma empresa.
Segundo Torres (1998) no modelo de referência TCP/IP cada máquina
necessita de uma identificação única, identificação conhecida como endereço IP.
Não é possível duas máquinas se conectarem na internet ou em uma mesma rede
utilizando o mesmo endereço IP, também há necessidade do endereço físico da
placa de rede, o Media Access Control (MAC), que é uma identificação única da
placa de rede dos equipamentos. Segundo Tanenbaum (2003) o protocolo IP possui
um cabeçalho com endereço de destino e endereço de origem. Quando há uma
solicitação de envio de dados, esses dados são divididos em pacotes e enviados
23
pela rede, dependendo do tipo de protocolo há uma confirmação que os dados
foram recebidos corretamente, ele envia uma mensagem pela rede confirmando a
entrega ou informando a falta de algum pacote, solicitando novamente o pacote que
não foi entregue. Por outro lado, existem os protocolos não confiáveis, onde não há
essa confirmação e as mensagens são enviadas em ordem, mas podem chegar ao
destino fora de ordem ou, caso alguma se perca pelo caminho, a mensagem
chegará faltando uma parte.
1.1.1 Topologia de Redes
Segundo Torres (1998) existem vários tipos de topologia de redes, cada
topologia tem sua aceitação, isso depende muito da necessidade. As redes são
dividas em dois tipos: cliente/servidor e ponto a ponto, e a topologia é definida
conforme a necessidade da rede Atualmente a topologia estrela é muito utilizada nas
redes locais.
As topologias de uma rede que definem a estrutura de uma rede. Existe a
topologia física, que é um esboço efetivo dos fios ou meios físicos, e uma outra parte
que é a topologia lógica, que determina como os meios físicos são acessados pelos
hosts para envio de dados.
A topologia lógica de uma rede é um formato de como os hosts se comunicam
através dos meios. Os mais comuns de topologias lógicas são broadcast e
passagem de token.
A topologia broadcast é quando cada host envia seus dados a todos os outros
hosts conectados ao meio físico da rede, não existe uma ordem. A ordem é primeiro
a chegar, primeiro que pode ser usado.
A topologia passagem de token, tem o controle de acesso à rede, quando um
host recebe o token significa que esse host pode enviar dados na rede. Se o host
não tiver dados para ser enviado, ele passa o token para o próximo host, assim o
processo sendo repetido.
24
1.1.2 Topologia Barramento
Segundo Torres (1998) nessa topologia há apenas um cabo interligando todas
as máquinas, o cabo utilizado é coaxial com um terminador de 50 ohms em cada
ponta. Essa topologia tem limite de 185 metros de cabo, com o coaxial fino, caso
haja a necessidade de ampliação, pode ser utilizado um repetidor que amplia o sinal.
Nesse tipo de topologia pode ser feita apenas uma transação por vez, devido o
compartilhamento do mesmo cabo. Caso haja mais de uma transação ocorrerão
colisões de pacotes paralisando assim a rede por um período de tempo.
Segundo Torres (1998) há um grave problema de segurança com essa
topologia, quando um pacote é transmitido pela rede para outra máquina, todas as
outras máquinas recebem esse pacote, mas apenas a máquina destino o abrirá,
devido a um campo de identificação que contém o número do nó de destino. Esse
número já vem gravado de fábrica na placa de rede, esse número é único, não
existem duas máquinas com o mesmo número.
Essa topologia é ideal para se utilizar com poucas máquinas, em casa ou em
um pequeno escritório.
Figura 1.3 - Exemplo de Topologia Barramento
Fonte: TOPOLOGIA, 2012.
1.1.3 Topologia Anel
25
Segundo Torres (1998) a topologia anel é conectada apenas por um cabo, as
máquinas formam um laço fechado. O padrão Token Ring segue o padrão do
Institute of Electricaland Electronics Engineers (IEEE 802.5) da International
Business Machines (IBM) é o mais conhecido da topologia anel. Nesta, os pacotes
circulam no anel, pegando os dados e os distribuindo aos seus destinos, como na
Topologia Barramento apenas uma transação pode ser feita por vez.
Figura 1.4 - Exemplo de Topologia Anel
Fonte: CINEL, 2012.
1.1.4 Topologia Estrela
Segundo Torres (1998) atualmente é a topologia mais utilizada, todas as
máquinas são conectadas a um aparelho concentrador, Hub ou Switch. Todas as
máquinas são ligadas independentemente através de um cabo até o aparelho
concentrador, se esse aparelho for um Hub todos os pacotes serão enviados a todos
da rede, assim como acontece na topologia barramento, portanto continuará
havendo colisões e falta de segurança.
Segundo Torres (1998) no caso do Switch a rede estará logicamente e
fisicamente em estrela, o switch tem a capacidade de analisar o cabeçalho de
endereçamento dos pacotes e enviar diretamente ao seu destino, fazendo com que
a rede se torne mais rápida e segura, eliminando problemas de colisões de pacotes
e segurança. Esse tipo de topologia possibilita a transmissão simultânea de dados.
26
Figura 1.5 - Exemplo de Topologia Estrela
Fonte: REDES,2012.
1.2
MODELO DE REFERÊNCIA OSI
Segundo Day e Zimmermann (apud TANENBAUM 2003, p.45) o modelo de
referência Open Systems Interconnection (OSI) da International Standards
Organization (ISO) foi desenvolvido para padronizar os protocolos utilizados nas
camadas de rede. O modelo de referência OSI possui 7 camadas, esse modelo
raramente é utilizado, suas camadas são de extrema importância para estudos.
1.2.1 Camada Física
Segundo Tanenbaum (2003) é a camada que controla a transmissão de bits
por um canal de comunicação que deve garantir que o bit chegue do outro lado da
mesma forma que saiu, através de meio físico de transmissão.
1.2.2 Camada de Enlace
Segundo Tanenbaum (2003) Tem função de garantir que os dados transmitidos
de um computador cheguem ao outro com integridade. Essa camada tem a função
de criar e reconhecer os limites de um quadro, contornando qualquer problema que
possa provocar dano, perda ou até mesmo duplicação de quadros. Deve também
implementar funções de controle de fluxo e evitar que um transmissor mais rápido
envie uma quantidade de dados excessiva a um receptor lento.
27
1.2.3 Camada de Rede
Segundo Tanenbaum (2003) é a camada de comunicação da sub-rede que é
responsável pelas formas de estabelecimento de conexão, manutenção e
desconexão de chamadas na rede, tendo função de roteamento e a possibilidade de
controle de endereçamento, controle de congestionamento e controle de fluxo. A
camada de rede é responsável por qualquer problema que possa ocorrer na rede.
1.2.4 Camada de Transporte
Segundo Tanenbaum (2003) essa camada tem como função aceitar dados da
camada acima e dividi-los em unidades menores caso necessário, é a primeira
camada fim-a-fim no modelo OSI, ou seja, o protocolo da camada de transporte é
conhecido e trocado entre os hosts de origem e de destino, fazendo com que fique
totalmente transparente para a sub-rede de comunicação. Uma função básica dessa
camada é aceitar dados da camada de sessão, dividi-los em unidades menores, se
necessário, passar essas unidades para a camada de rede e garantir que todas as
unidades cheguem corretamente ao seu destino. Essa camada também oferece à
camada superior serviços de entrega de dados com poucos erros, em sequência,
sem duplicação ou perda de informação.
1.2.5 Camada de Sessão
Segundo Tanenbaum (2003) é a camada que permite que dois usuários em
máquinas diferentes estabeleçam uma sessão entre si, que permite a troca de
dados, muito parecida com a camada de transporte, mas também oferece outros
tipos de serviços úteis em algumas aplicações. Essa camada possui um
gerenciamento de símbolos que impede que duas partes tentem executar a mesma
operação ao mesmo tempo e a sincronização realizando a verificação periódica de
transmissões, se ocorrer uma falha ela continuará a partir do ponto que estavam
quando ocorreu a falha.
28
1.2.6 Camada de Apresentação
Segundo Tanenbaum (2003) a camada de apresentação é responsável pela
sintaxe dos dados transferidos entre duas entidades da camada. Ela também é
responsável por outros aspectos de representação da informação. Exemplo, pode-se
usar compressão de dados para reduzir o número de bits que serão transmitidos e
também criptografia para garantir segurança e privacidade da informação.
1.2.7
A Camada de Aplicação
Segundo Tanenbaum (2003) a camada de aplicação provê a interface entre os
processos de comunicação de rede e as aplicações finais dos usuários. Essa
camada tem uma variedade de protocolos que são necessários para o
funcionamento correto, por exemplo, acesso à transferência de arquivos,
gerenciamento da transferência, troca de mensagens e documentos, possíveis
consultas a banco de dados, etc. A camada de aplicação possui uma série de
protocolos necessários para os usuários. Um protocolo de aplicação muito utilizado
é o Hyper Text Transfer Protocol (HTTP), que é base para o World Wide Web
(WWW). Quando um navegador solicita uma página da web, ele envia o nome da
página desejada ao servidor, utilizando o protocolo HTTP. O servidor, ao receber o
pedido, transmite a página solicitada pelo navegador. Há outros protocolos de
aplicação que são usados para transferências de arquivos, correio eletrônico e
transmissão de notícias pela rede.
Há um modelo de referência muito semelhante ao modelo OSI, mas com
algumas diferenças, esse modelo é conhecido como TCP/IP é um dos modelos mais
utilizados nas redes atuais.
1.3
MODELO DE REFERÊNCIA TCP/IP
Modelo de referência TCP/IP surgiu na década de 70 e foi utilizado na extinta
ARPANET. Segundo Tanenbaum (2003) esse modelo mudou as redes de
computadores geograficamente distribuídas da época, atualmente é um dos
modelos mais utilizados nas redes de computadores e é utilizado na principal delas,
29
a internet. O TCP/IP se trata de um conjunto de protocolos, por isso leva esse nome
de TCP e IP que é o nome dos dois mais importantes protocolos. É um protocolo
baseado no paradigma de chaveamento de pacotes (packet switching).
Segundo Tanenbaum (2003) o TCP/IP pode ser utilizado sobre qualquer
estrutura de rede simples como uma ligação ponto a ponto, ou até mesmo uma rede
de pacotes complexa. Podendo ser empregadas em redes como Ethernet, TokenRing, FDDI, PPP, ATM, X.25, Frame-Relay, barramentos SCSI, enlaces de satélite,
ligações telefônicas discadas e muitos outros tipos de meio de comunicação com
protocolo TCP/IP.
Esse modelo é semelhante ao modelo OSI, entretanto, diferentemente do
modelo OSI, o modelo TCP/IP possui apenas 4 camadas e em sua arquitetura é
realizada a divisão de funções do sistema de comunicação em estrutura de
camadas. Suas camadas são camada de Aplicação, Transporte, Inter-Rede,
Interface de Rede.
As camadas se comunicam umas com as outras. A camada de aplicação tem a
função de se comunicar com os programas, para cada tipo de programa existe um
protocolo específico. Os protocolos principais presentes na camada de aplicação
são: protocolo para envio de e-mail, Simple Mail Transfer Protocol (SMTP); protocolo
de transferência de arquivo, File Transfer Protocol (FTP); para navegação na web,
protocolo de transferência de hipertexto Hypertext Transfer Protocol (HTTP).
Depois de processar o pedido do programa, a camada de aplicação se
comunica com a camada de transporte que é responsável em dividir os dados em
segmentos, se necessário. Os protocolos desta camada são o TCP e o User
Datagrama Protocol (UDP). Esta camada também é responsável por colocar os
segmentos em ordem e verificar se estão intactos.
A camada inferior, a Inter-Rede, é responsável em adicionar informações de
endereçamento, como o endereço IP de origem e destino. É nesta camada que está
presente o protocolo IP. Depois de adicionado os endereços, o pacote é enviado
para a camada de Interface de Rede. Essa camada envia ou recebe os dados da
interface de rede física. A seguir será mostrado a função detalhada de cada camada
do modelo TCP/IP.
30
Figura - 1.6 Comparativo da camada OSI e TCP/IP
Fonte: CLUBE DO HARDWARE, 2007
1.3.1 Camada de Aplicação do TCP/IP
Segundo Tanenbaum (2003) a camada de aplicação contém todos os protocolos
de nível mais alto, entre eles os protocolos de TELNET - protocolo de terminal virtual, o
FTP - protocolo de transferência de arquivos e o SMTP - protocolo de correio eletrônico
o HTTP entre outros. Cada protocolo tem uma função específica de acordo com o
programa que está sendo executado. Esta camada faz a comunicação entre os
programas e o protocolo de transporte.
Figura 1.7 - Como a camada de aplicação funciona
Fonte: CLUBE DO HARDWARE, 2007
Quando há uma solicitação de e-mail que está armazenado em um servidor, é feito
um pedido para o sistema de comunicação TCP/IP que é atendida pelo protocolo SMTP
31
da camada de aplicação, a qual se comunica com a camada de transporte através de
uma porta, cada protocolo utiliza uma porta padrão, o HTTP utiliza a porta 80 o FTP a
porta 20, no caso do SMTP a porta 25. O uso do número da porta permite ao protocolo
responsável pelo transporte saber que tipo de conteúdo tem no pacote de dados,
identificando, assim, a aplicação (programa) que deve receber os dados.
1.3.2 CAMADA DE TRANSPORTE
Segundo Tanenbaum (2003) a camada de transporte é responsável por
transformar os dados vindos da camada de aplicação em unidades menores e passá-los
para camada inferior. Também é responsável por remontar estes fragmentos na
máquina destino. Nessa camada dois protocolos fim a fim foram definidos, o TCP e o
UDP. O TCP é um protocolo mais confiável que permite a entrega de mensagens sem
erros, pois ele possui controle de fluxo, controle de erro, ele fragmenta o fluxo de bytes
de entrada em mensagem discreta e passa cada uma delas para a camada inferior, a
camada inter-rede.
Uma das funções do TCP também é controlar o fluxo e impedir que um transmissor
muito rápido sobrecarregue um receptor mais lento, enviando uma quantidade de
mensagens maior do que ele possa manipular. Na recepção de dados o TCP é
responsável em colocar os pacotes em ordem e verificar se está faltando algum pacote
ou se houve algum problema com os dados dentro dos pacotes. Caso haja algum
problema uma nova solicitação é feita e o transmissor reenviará o pacote que está
faltando.
Figura 1.8 - Protocolos e redes no modelo TCP/IP inicial
Fonte: TANENBAUM, 2003, p.49
32
Segundo Tanenbaum (2003) o protocolo UDP é um protocolo não orientado a
conexão, não confiável ele apenas realiza multiplexação para que várias atividades
possam acessar o sistema de forma coerente. Diferente do TCP ele apenas envia os
dados, não conferindo se houve alguma perda de pacote e também não os reordena
caso cheguem fora de ordem no destino. A vantagem do UDP é que por não fazer
verificações ele se torna um protocolo mais rápido que o TCP. A aplicação que solicita a
transmissão fica responsável em verificar se os dados foram entregues de forma correta.
O protocolo UDP não é um protocolo confiável, mas pela sua rapidez é ideal para
execução de música, vídeo e conferências on-line.
Quando o TCP ou UDP recebem os dados da camada da aplicação esses dados
são adicionados ao cabeçalho. Na recepção o cabeçalho é removido e enviado a
aplicação destino apropriada. O cabeçalho contém varias informações de controle,
número de porta de origem e destino, e um número de sequência para confirmação de
recebimento e o mecanismo de reordenamento utilizado apenas pelo TCP e uma soma
de verificação chamada Checksum ou CRC que é um calculo para verificar se os dados
foram entregues intactos. O cabeçalho UDP tem 8 bytes, o do TCP entre 20 e 24 bytes
Tanenbaum (2003).
1.3.3 Camada de Internet (Inter-rede)
Segundo Tanenbaum (2003) essa camada tem como função permitir que as
máquinas injetem pacotes em qualquer rede e garanta que os dados possam
trafegar independentemente até o destino, podendo chegar em ordem diferente
daquela ordem que foi enviada. É função das camadas superiores reorganizá-las.
A camada de internet tem a função de adicionar o cabeçalho aos pacotes de
dados que foram recebidos da camada superior, e adicionar um endereço IP de
origem e de destino. Todo roteador possui uma tabela que contém as redes
conhecidas, quando uma solicitação é feita na internet o roteador verifica primeiro se
o computador destino está na mesma rede ou em alguma rede que ele conheça a
rota. Caso ele não conheça ele envia o pacote para o gateway padrão (outro
roteador) esse processo se repete até que o pacote chegue ao destino.
33
A camada de Internet tem a função de entregar pacotes IP onde for necessário,
para que cada máquina seja identificada.
A camada Internet contém os protocolos IP e Internet Control Message
Protocol (ICMP) e Internet Group Management Protocol (IGMP). Os protocolos
Address Resolution Protocol (ARP) e Reverse Address Resolution Protocol (RARP)
são pertencentes na verdade aos dois níveis, Internet e Interface de Rede, pois
realizam funções com informações de ambas as camadas.
1.3.4 Camada de interface com a Rede
Segundo Tanenbaum (2003) na camada de interface com a rede se encontra
um grande vácuo, não há uma especificação exata do que se ocorre nessa camada,
sabe se que o host se conecta a rede utilizando algum protocolo para que seja
possível o envio de pacotes. Ela trata questões necessárias para que um pacote IP
possa estabelecer um link com os meios físicos da rede e definir os procedimentos
para que se possa estabelecer uma interface com o hardware de rede para acessar
o meio de transmissão
A camada de Interface com a rede inclui funções de mapeamento de
endereços IP para endereços físicos de hardware e encapsulamento de pacotes IP
em quadros. Dependendo do tipo de hardware a camada de interface com a rede
defini a conexão com os meios físicos.
Para um melhor entendimento da arquitetura TCP/IP, nos próximos capítulos
será detalhada a estrutura do datagrama IP nas duas versões do protocolo IP (IPv4
e IPv6) e suas particularidades.
34
2 ESTRUTURA DO PROTOCOLO IPV4
Existem duas versões do protocolo IP: o IPV4 usado atualmente, que
utilizamos na grande maioria das situações, e o IPV6 que é a versão atualizada, que
prevê um número incrivelmente maior de endereços e deve começar a se
popularizar quando os endereços IPV4 começarem a se esgotar.
Segundo Florentino (2012) no IPV4, os endereços IPs são compostos por 4
blocos de 8 bits (32 bits no total), que são representados através de números de 0 a
255, como por exemplo os IPs "200.156.23.43" ou "64.245.32.11".
As faixas de endereços começadas com "10", com "192.168" ou com de
"172.16" até "172.31" são reservadas para uso em redes locais e por isso não são
usados na internet. Os roteadores que compõem a grande rede são configurados
para ignorar estes pacotes, de forma que as inúmeras redes locais que utilizam
endereços na faixa "192.168.0.x" (por exemplo) podem conviver pacificamente.
2.1. O DATAGRAMA IP
Para um bom entendimento do protocolo IP, será mostrado a função de cada
parte do datagrama IP. Segundo Tanenbaum (2003) um datagrama IP é formado por
duas partes, uma parte de cabeçalho e uma parte de texto. O cabeçalho possui uma
parte fixa de 20 bytes e outra opcional de tamanho variável, que é transmitido em
ordem big endian, da esquerda para a direita, com o bit de mais alta ordem do
campo Version aparecendo primeiro.
35
Figura 2.1 - Cabeçalho IPV4
Fonte: TANEMBAUM, 2003, p. 335
2.1.1 Campo IHL
Segundo Tanenbaum (2003) como o tamanho do cabeçalho não é fixo, o
campo no cabeçalho, IHL, tem a função de informar seu tamanho em palavras de 32
bits. O valor mínimo é 5, já o valor máximo desse campo é 15, 4 bits, o que limita o
cabeçalho a 60 bytes e o campo Options a 40 bytes. Para algumas opções, como a
que registra a rota percorrida pelo pacote, 40 bytes é muito pouco, o que torna a
opção pouco viável.
2.1.2 Campo Type of Service
Segundo Tanenbaum (2003) é um dos poucos campos que sofreu uma
pequena modificação ao longo dos anos. Ele é destinado a distinguir entre diferentes
classes de serviço, ele possibilita variar combinações de confiabilidade e velocidade.
Se tratando de uma transferência de voz digitalizada, a entrega mais rápida vence a
entrega segura. Mas se tratando de transferência de arquivos, uma transmissão sem
erros é mais importante do que uma transmissão rápida.
36
Segundo Tanenbaum (2003) o campo de 6 bits continha (da esquerda para a
direita) um campo precedente de três bits e três flags, D, T e R. O campo precedente
tinha uma prioridade que variava de 0 que é o normal a 7 que era o pacote de
controle de rede. Esses três bits de flags permitiam que o host especificasse o que
era mais importante no conjunto: baixo delay (retardo) na entrega; maior Throughput
(desempenho); ou maior confiabilidade.
Segundo Tanenbaum (2003), na teoria esses campos permitem que os
roteadores optem entre um enlace de satélite com alto throughput, mas com grande
retardo ou uma linha dedicada com baixo throughput e baixo retardo. Atualmente os
roteadores ignoram completamente o campo Type of Service.
2.1.3 Campo Total Length
Segundo Tanenbaum (2003) esse campo inclui tudo o que há no datagrama,
cabeçalho e dados, com o tamanho máximo e de 65.535 bytes. Atualmente, esse
limite superior é tolerável nas redes que transmitem em megabits, mas com as
futuras redes de gigabits será necessário um datagrama maior.
2.1.4 Campos Identification, DF, MF e Fragment Offset
Uma vez que os datagramas IP podem ter que passar por várias redes até
atingir seu destino, e que estas redes podem diferir no tamanho do pacote
suportado, pode ser necessário que o datagrama IP seja fragmentado em unidades
menores.
Segundo Tanenbaum (2003) o campo Identification é necessário para permitir
que o host de destino identifique a qual datagrama pertence um fragmento recém
chegado. Todos os fragmentos de um datagrama possuem o mesmo valor de
Identification. Em seguida, há um bit não utilizado e dois campos de 1 bit. Don’t
Fragment (DF) que significa não fragmentar. Ele ordena aos roteadores a não
fragmentarem o datagrama, pois a máquina de destino é incapaz de juntar os
fragmentos novamente. Quando o datagrama é marcado com o bit DF, o transmissor
sabe que ele chegará apenas como um único fragmento, mesmo que isso possa
significar que o datagrama deva evitar uma rede de pacotes pequenos que esteja no
melhor caminho, e seguir por uma rota menos adequada devido ao seu tamanho.
37
More Fragments (MF) que significa mais fragmentos, todos os fragmentos,
exceto o último, têm esse conjunto de bits, necessário para saber quando chegaram
todos os fragmentos de um datagrama.
Segundo Tanenbaum (2003), o campo FRAGMENT OFFSET é o campo que
informa a que ponto do datagrama atual o fragmento pertence. Todos os fragmentos
de um datagrama, exceto o último, que devem ser múltiplos de 8 bytes, a unidade
elementar de fragmento. Como o campo possui 13 bits, um datagrama pode ser
fragmentado no máximo em 8192 fragmentos. Assim, o tamanho máximo de um
datagrama é igual a 65.536 bytes (8192 vezes 8 bytes).
2.1.5 Campo Time to Live
Segundo Tanenbaum (2003) é um contador que limita a vida útil dos pacotes.
O pacote é enviado pelo host destino com um valor (que no máximo pode ser 255) e
deve ser decrementado a cada hop, ou seja, a cada roteador por onde passar e,
chegando no zero, o pacote é descartado. Este recurso evita que os datagramas
fiquem vagando indefinidamente. Quando tiver montado um datagrama completo, a
camada de rede precisara saber o que fazer com ele, nessa parte o campo Protocol
informa a que protocolo de transporte o datagrama deve ser entregue. Os protocolos
TCP e UDP são umas das possibilidades.
2.1.6 Campo Header Checksum
Segundo Tanenbaum (2003) o campo header checksum faz apenas uma
conferência no cabeçalho. Esta verificação é útil para a detecção de erros gerados
por palavras de memória incorretas em um roteador.
2.1.7 Os campos source address e destination address
Segundo Tanenbaum (2003) estes campos indicam o endereço IP origem (do
host que enviou o pacote) e o endereço IP do destino (host que deverá receber o
pacote),
respectivamente.
Nas
próximas
seções
serão
abordados
detalhadamente os conceitos relacionados com endereçamento IP.
mais
38
2.1.8 Campo options
Segundo Tanenbaum (2003) esse campo possibilita que versões posteriores
do protocolo incluam informações inexistentes no projeto original, e evita a alocação
de bits de cabeçalho para informações raramente necessárias. Há opções de
tamanhos variáveis. Cada uma começa com um código de um byte que identifica a
opção. Estas opções são seguidas por um campo de tamanho de opção de 1 byte e
depois por um ou mais bytes de dados. Segundo Tanenbaum (2003) O campo
Options é preenchido até alcançar um múltiplo de quatro bytes. Originalmente, havia
cinco opções definidas, mas com o tempo foram acrescentadas mais algumas.
2.2 ENDEREÇO IPv4
Segundo Tanenbaum (2003) para um computador estar conectado a internet,
há a necessidade de um endereço IP, o qual codifica seu número de rede e seu
número de host. Esta combinação é exclusiva, ou seja, duas máquinas conectadas a
internet nunca podem ter o mesmo endereço IP. Todos os endereços IPV4 (IP
versão 4), possuem 32 bits e são usados nos campos Source address e Destination
address dos pacotes IP.
É importante saber que um endereço IP não se refere realmente a um host,
quando na verdade, ele se refere a uma interface de rede, pois se um host estiver
conectado a duas redes, ou um host tiver duas placas de redes, ele precisará ter
dois endereços IP. Na prática, a maioria dos hosts está conectado em uma única
rede, utilizando apenas um endereço IP.
2.2.1 Classes do protocolo IPV4
Segundo Tanenbaum (2003) geralmente os endereços de rede, que são
números de 32 bits na versão 4 do protocolo IP, são escritos de forma decimal com
pontos. Cada um dos 4 bytes é escrito em forma decimal, de 0 a 255. Por exemplo,
o endereço hexadecimal de 32 bits C0290614 é escrito como 192.41.6.20, o
endereço IP mais baixo é 0.0.0.0 e o mais alto é 255.255.255.255. Os valores 0 e -1
(todos os dígitos 1) têm significados especiais, O valor 0 significa esta rede ou esta
39
máquina (host), o valor -1 é usado como um endereço de difusão que significa todos
os hosts na rede indicada.
Os protocolos IP foram divididos em cinco categorias, conforme figura 2.2.
Essa divisão chegou a ser chamada endereçamento de classe completo, atualmente
essa referência não é mais utilizada.
Figura 2.2 - Formatos de endereços IP
Fonte:TANENBAUM, 2003, p. 337
Segundo Tanenbaum (2003) as classes A, B, C e D permitem até 128 redes
com 16 milhões de hosts cada uma (classe A), 16.384 redes com até 65.536 hosts
cada (classe B), 2 milhões de redes com até 256 hosts cada (classe C), embora
algumas dessas redes sejam especiais. Além disso, é admitida a multidifusão, na
qual um datagrama é direcionado a vários hosts. Neste caso, são utilizados os
endereços da classe D.
Segundo Tanenbaum (2003) os endereços que começam com 1111 são
reservados para uso futuro. Há uma empresa responsável em atribuir os números de
redes para que não haja conflitos, essa empresa é a Internet Corporation for
Assigned Namesand Numbers (ICANN).
40
Figura 2.3 - Endereços IP Especiais
Fonte:TANENBAUM, 2003, p. 338
Segundo Tanenbaum (2003) o endereço IP 0.0.0.0 é utilizado pelos hosts
quando eles estão sendo inicializados. Todos os endereços IP que têm 0 como seu
número de rede refere-se à rede atual, estes endereços permitem às máquinas
referenciar suas próprias redes sem saber seu número, elas precisam conhecer sua
classe para saber quantos zeros devem ser incluídos.
O endereço que consiste apenas em dígitos 1 permite a difusão na rede local,
geralmente uma LAN. Os endereços com um número de rede apropriado e que
tiverem apenas valores 1 no campo de host permitem que as máquinas enviem
pacotes de difusão para LANs distantes, em qualquer parte da Internet. Esse
recurso geralmente é desativado pelos administradores de rede. Já os endereços
com o formato 127.xx.yy.zz são reservados para teste de loopback e significa que os
pacotes enviados para este endereço não são transmitidos, mais sim processados
localmente e tratados como pacotes de entrada.
A quantidade de endereços IPV4 já se tornou escassa. Para solucionar esse
problema foram desenvolvidos vários projetos e em um desses projetos surgiu o
protocolo de Internet Versão 6 (IPV6) com endereços IP suficientes para atenderem
todas as necessidade dos usuários. Essa nova versão será detalhada no próximo
capítulo.
41
3 PROTOCOLO IPV6
Segundo Florentino (2012) o endereço IPV6 é representado por 8 blocos de
16 bits cada um, separados pelo caractere dois pontos (:). Cada grupo de 16 bits,
chamado deca-hexateno ou duocteto, possui 4 símbolos hexadecimais que podem
variar de 0000 a FFFF. O endereço IPV6 possui uma escrita bem longa, o que
dificulta na sua representação. Para facilitar sua representação, regras foram criadas
para ser mais fácil de assimilar:
Zeros à esquerda em cada duocteto podem ser omitidos. Assim,
2001:0DB8:00AD:000F:0000:0000:0000:0001
pode
ser
representado
por:
2001:DB8:AD:F:0:0:0:1;
Blocos vazios contínuos podem ser representados pelos caracteres “::”
(quatro pontos) uma única vez dentro do endereço (o valor que vem antes do
primeiro sinal de dois pontos representa os primeiros bits, e o que vem após o
segundo sinal de dois pontos representa os últimos bits do endereço). Assim,
2001:0DB8:00AD:000F:0000:0000:0000:0001
pode
ser
representado
por:
2001:DB8:AD:F::1.
3.1 OBJETIVOS PROPOSTOS PELO PROTOCOLO IPV6
 Segundo Pinto (2011) o protocolo IPv6 foi proposto com os seguintes
objetivos:
 Suportar bilhões de hosts - expansão do espaço de endereçamento e uma
hierarquia mais versátil;
 Reduzir a tabela de roteamento;
 O protocolo é expansível, só é preciso mexer no cabeçalho de extensão;
 Cabeçalho do protocolo simplificado, diminuiu o tempo de processamento na
análise dos cabeçalhos, por parte de roteadores e hosts;
 Mais segurança (autenticação e privacidade) em relação ao IPV4;
 Foi criado um novo campo que tem suporte a mecanismos de controle de
qualidade de serviço, tem maior sensibilidade ao tipo de serviço, como, por
exemplo, serviços de tempo real (UDP);
 Multicasting permitido, através da especificação de escopos de sessões de
multicasting;
42
 Roteamento mais eficaz, inclusive nos que tem hosts móveis;
 Máquinas com wireless podem mudar de lugar, mas sem mudança em seus
endereços IP;
 Máquinas se auto-configuram (número IP, DNS, etc.) ao serem ligadas na
rede, essa operação se chama 'plug and play';
 Coexistência das duas versões do protocolo por tempo indeterminado, pois
não se pode determinar uma data específica para que todas as máquinas no
mundo troquem seus softwares.
3.2 CARACTERÍSTICAS DO IPV6
Segundo Florentino (2012) o IPv6 alargou o endereçamento de IP de 32 bits
para 128 bits. O IPv6 sustenta as principais características que fizeram do IPv4 um
sucesso mundial. Assim como o IPv4, o IPv6 é um protocolo sem conexão - cada
datagrama contém um endereço de destino e é roteado de forma independente. O
IPv6 também possui um número máximo de roteadores por onde pode passar (Hop
Limit). Com objetivo de simplificar a principal função do IP, rotear pacotes, sete
campos no IPv6 foram suprimidos: IHL, identification, flags, fragment offset, header
checksum, options e Padding. Quatro foram trocados de nome e em alguns casos,
alterados: Total length, protocol type, time to live (TTL), type of service. Os três
foram mantidos : Version, Source Address, Destination Address. E um inventado:
Flow Label. Na Figura 3.1 apresentada a seguir são mostradas as diferenças entre
os cabeçalhos IPv4 e IPv6.
43
Figura 3.1 – Comparação do Protocolo IPV4 x IPV6
Fonte: JÚNIOR, 2006, p.20
As características que definem o protocolo IPV6 são: ampliação da
capacidade de endereçamento e encaminhamento, capacidade de qualidade de
serviço, competência de providenciar autenticação e privacidade, simplificação dos
cabeçalhos.
3.3 ESTRUTURA DO CABEÇALHO IPV6
Segundo Florentino (2012) o cabeçalho IPV6 sofreu algumas mudanças em
sua estrutura para que se tornasse um pouco mais simples, houve uma redução no
número de campos, que foi reduzido para apenas oito e o tamanho foi fixado de 40
Bytes. Outra mudança considerável é que ele se tornou mais flexível e eficiente, com
a adição de cabeçalhos de extensão que não precisam ser processados por
roteadores intermediários. Essas alterações permitiram que mesmo com um espaço
44
de endereçamento quatro vezes maior se comparando com o IPv4, o tamanho total
do cabeçalho IPv6 fosse apenas duas vezes.
Para que o protocolo IPV6 se tornasse mais leve foram removidos seis campos
existentes no cabeçalho IPv4, como resultado tanto da inutilização de suas funções
quanto de sua reimplantação com o uso de cabeçalhos de extensão.
3.3.1 Diferenças entre os cabeçalhos IPV4 e IPV6
Existem muitas diferenças de um protocolo IPv4 para o IPv6, a seguir uma
comparação entre as 2 versões de protocolos destacando sua principais diferenças.
3.3.2 Cabeçalhos de Extensão
Segundo Florentino (2012) o IPV6 tem o cabeçalho de extensão, estes
cabeçalhos ficam entre o cabeçalho base e o cabeçalho da camada acima, não há
nenhuma quantidade nem tamanho fixo para eles. Caso tenham muitos cabeçalhos
de extensão no mesmo pacote, eles serão adicionados em série formando uma
“cadeia de cabeçalhos”.
As especificações do IPV6 definem seis cabeçalhos de extensão: Hop-by-Hop
Options, Destination Options, Routing, Fragmentation, Authentication Header e
Encapsulating Security Payload.
Com a utilização dos cabeçalhos de extensão do IPV6 tende a aumentar a
velocidade de processamento nos roteadores, o único cabeçalho de extensão
processado em cada roteador é o Hop-by-Hop; os outros são tratados apenas pelo
nó identificado no campo Endereço de Destino do cabeçalho base. Novos
cabeçalhos de extensão podem ser definidos e usados sem a necessidade de
alteração do cabeçalho base
É bom destacar, que para evitar os nós existentes ao longo do caminho do
pacote precise percorrer toda a cadeia de cabeçalhos de extensão para conhecer
quais informações deverão tratar. Esses cabeçalhos são enviados determinando
uma ordem. Geralmente, os cabeçalhos importantes para todos os nós envolvidos
no roteamento devem ser colocados em primeiro lugar, os outros importantes
apenas para o destinatário final são colocados no final da cadeia.
45
Segundo Florentino (2012) a vantagem dessa sequência é que o nó pode
parar de processar os cabeçalhos assim que encontrar algum cabeçalho de
extensão dedicado ao destino final, tendo certeza de que não há mais cabeçalhos
importantes a seguir. Assim, é possível melhorar significativamente o processamento
dos pacotes porque, em muitos casos, apenas o processamento do cabeçalho base
será suficiente para encaminhar o pacote. Deste modo, a sequência a ser seguida é:
 Hop-by-Hop Options
 Routing
 Fragmentation
 Authentication Header
 Encapsulating Security Payload
 Destination Options
Também vale lembrar que, se um pacote for enviado para um endereço
multicast (entrega de informação para múltiplos destinatários simultaneamente,
antigo broadcast), os cabeçalhos de extensão serão encaminhados por todos os nós
do grupo.
Em relação à flexibilidade oferecida pelos cabeçalhos de extensão, merece
destaque o desenvolvimento do cabeçalho Mobility, utilizado pelos nós que possuem
suporte à mobilidade IPV6.
Conheça mais sobre o processamento do cabeçalho:

Hop-by-Hop – Carrega informações que devem ser processadas por todos
os nós ao longo do caminho do pacote.
 Destination Options – Carrega informações que devem ser processadas
pelo nó de destino do pacote.
 Routing – Desenvolvido inicialmente para listar um ou mais nós
intermediários que deveriam ser visitados até o pacote chegar ao destino.
Atualmente utilizado como parte do mecanismo de suporte à mobilidade do
IPV6.
 Fragmentation – Carrega informações sobre os fragmentos dos pacotes
IPV6.
 Authentications Header – Utilizado pelo IPSec para prover autenticação e
garantia de integridade aos pacotes IPV6.
46
 Encapsulating Security Payload – Também utilizado pelo IPSec, garante a
integridade e a confidencialidade dos pacotes.
3.4 SERVIÇOS BÁSICOS EM REDES IPV6
Segundo Florentino (2012) o IPv6 tem muitos novos recursos em relação ao
protocolo anterior, uma delas é a possibilidade de atribuir endereços IP ao host
automaticamente através do Stateless Address, que nele tem um suporte mais
elaborado para QoS, do gerenciamento de grupos multicast e do recurso de
mobilidade IPv6.
3.4.1 ICMPv6
Segundo Florentino (2012) Para o IPv6 suportar esses novos recursos, o
protocolo ICMPv6 tem um papel capital, além de continuar a exercer as mesmas
funções que tinha no seu antecessor, o ICMPv4. O protocolo ICMPv6 também
exerce as funções antes desempenhadas pelos protocolos ARP, RARP e IGMP.
Para que se possa ter exata noção de sua importância, se deixarmos o firewall das
estações de trabalho bloquearem toda e qualquer mensagem ICMPv6, a rede
simplesmente irá parar de funcionar, pois são mensagens deste tipo as
responsáveis pela descoberta de vizinhança, atribuição de endereços Stateless e
pela descoberta de roteadores e gateways em redes IPV6.
3.4.2 DHCPv6
Segundo Florentino (2012) diferentemente do serviço DHCP no protocolo
anterior, no DHCPv6 existem mais de 30 opções disponíveis no campo options para
oferecer as mais variadas informações a uma máquina na rede, como nome,
domínio, servidor DNS, servidor WINS, endereço de Proxy, configurações de VoIP
entre outros.
Pode-se também combinar a utilização de um servidor DHCPv6 (atribuição
StateFull) com a autoconfiguração descrita anteriormente (configuração Stateless)
sendo usado o servidor DHCP para prover aquilo que a configuração Stateless não
pode oferecer.
47
3.4.3 DNS
Segundo Florentino (2012) diferentemente do DHCP, onde existe serviços
diferentes para trabalhar com IPv4 e IPv6, um servidor DNS pode conter registros de
nomes tanto do tipo A (IPv4) quanto do tipo AAAA (IPv6). Nem é necessário que o
servidor esteja em pilha dupla com endereços das duas famílias. É possível fazer
pesquisas IPv6 que são processadas apenas através de um endereço IPv4 e viceversa.
3.5 CLASSIFICAÇÃO DOS ENDEREÇOS IPV6
Segundo Florentino (2012) os endereços IPv6 podem ser classificados em:
 Unicast – Este tipo de endereço identifica um host de forma única e exclusiva
(um-para-um). Já que os números de endereços possíveis são imensos,
este endereço viabiliza que todos os hosts do mundo possam ter
conectividade fim-a-fim, lembrando que não é necessário trabalhar com
endereços públicos e privados, como acontece no IPv4;
 Multicast – Identificam um conjunto de hosts que recebem o mesmo fluxo de
pacotes (um-para-muitos). É usado para transmissão de áudio e vídeo e em
alguns protocolos de roteamento;
 Anycast – é um endereço compartilhado por mais de um host com o intuito de
alcançar o host mais próximo (um-para-um-de-muitos). Usados nos serviços
UDP, principalmente DNS, quando por exemplo, temos diversos servidores
publicados em diferentes localidades com o mesmo número IP.
De acordo com Florentino (2012) no IPv6 não existe endereço de broadcast
responsável por direcionar um pacote para todos os nós de um mesmo domínio,
como no IPv4. No IPv6, essa função é desempenhada por tipos específicos de
endereços multicast.
3.5.1 Categorias de Endereços IPv6 Unicast
De acordo com IPV6.BR (2012) as principais categorias de endereços
unicast:
 Global Unicast (2000::/3) – paralelo aos endereços públicos IPv4, o
endereço global unicast é globalmente roteável e acessível na Internet IPv6..
A estrutura do protocolo foi desenvolvida para utilizar os 64 bits mais a
48
esquerda para identificação da rede e os 64 bits mais a direita para
identificação da interface. Assim, exceto em alguns casos específicos, todas
as sub-redes em IPv6 tem o mesmo tamanho de prefixo, 64 bits (/64), o que
possibilita 264 = 18.446.744.073.709.551.616 dispositivos por sub-rede.
Atualmente, está reservada para atribuição de endereços a faixa 2000::/3
(001),
que
corresponde
aos
endereços
de
2000::
a
3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff. Isto representa 13% do total de endereços
possíveis com IPv6, o que nos permite criar:
2(64−3) = 2.305.843.009.213.693.952 (2,3×1018) sub-redes (/64) diferentes ou
2(48−3) = 35.184.372.088.832 (3,5×1013) redes /48
 Link Local (FE80::/64) – Pode ser utilizado apenas em enlace específico
onde a interface está conectada, o endereço link local é atribuído
automaticamente utilizando o prefixo FE80::/64. Os 64 bits reservados para a
identificação da interface são configurados utilizando o formato IEEE EUI-64
descrito no capítulo 3.6. Destacando que os roteadores não devem
encaminhar para outros enlaces, pacotes que possuam como origem ou
destino um endereço link-local;
 Unique Local Address - ULA (FC00::/7 ou FD00::/7) – Endereço com
probabilidade de ser globalmente único, usado apenas para comunicações
locais, comumente dentro de um mesmo enlace ou conjunto de enlaces. Um
endereço ULA não deve ser roteável na Internet global. Um endereço ULA,
criado utilizando um ID global alocado pseudo-randomicamente, é composto
das seguintes partes:
 Prefixo: FC00::/7;
 Flag Local (L): se o valor for 1 (FD) o prefixo é atribuído localmente. Se o
valor for 0 (FC), o prefixo deve ser atribuído por uma organização central
(ainda a definir);
 Identificador global: identificador de 40 bits usado para criar um prefixo
globalmente único;
 Identificador da Interface: identificador da interface de 64 bits.
49
De acordo com IPV6.BR (2012) a estrutura de um endereço ULA é
FDUU:UUUU:UUUU:: onde U são os bits do identificador único, gerado
aleatoriamente por um algoritmo específico. Permite que qualquer enlace possua um
prefixo /48 privado e único globalmente. Deste modo, caso duas redes, de empresas
distintas, por exemplo, sejam interconectadas, provavelmente não haverá conflito de
endereços ou necessidade de renumerar a interface que o esteja usando. Além
disso, o endereço ULA é independente de provedor, podendo ser utilizado na
comunicação dentro do enlace mesmo que não haja uma conexão com a Internet.
3.6
Identificadores de Interface
De acordo com IPV6.BR (2012) os identificadores de interface (IID), que são
usados para distinguir as interfaces dentro de um enlace, devem ser únicos dentro
do mesmo prefixo de sub-rede. O mesmo IID pode ser usado em múltiplas interfaces
em um único nó, porém, elas devem estar associadas a diferentes sub-redes.
Geralmente utiliza-se um IID de 64 bits, que pode ser obtido de diversas
formas. Ele pode ser configurado manualmente, a partir do mecanismo de
autoconfiguração stateless do IPv6, a partir de servidores DHCPv6 (statefull), ou
formados a partir de uma chave pública (CGA).
Recomenda-se que o IID seja construído baseado no endereço MAC da
interface, no formato EUI-64.
Um IID no formato EUI-64 baseado em um MAC de 48 bits, que é o utilizado
pelo padrão Ethernet IEEE 802, é criado da seguinte forma, supondo que o
endereço MAC da interface de rede seja 08:00:27:CD:24:63, então:
Primeiro, adiciona-se os dígitos hexadecimais FF-FE entre o terceiro e quarto
Byte do endereço MAC (transformando no padrão EUI-64), o qual fica
08:00:27:FF:FE:CD:24:63, como mostrado na figura 1:
48 bits - MAC ADRESS
08
08
00
00
27
27
CD
FF
FE
24
63
3
CD
24
63
3
64 bits - EUI-64
Figura 3.2 - Primeiro passo para transformar um endereço MAC no padrão EUI-64
Fonte: Elaborado pelos autores,2012
50

Segundo, faz-se o complemento de 1 no sétimo bit do primeiro byte (chamado
de bit U/L – Universal/Local) do endereço MAC, isto é, se for 1, será alterado para
0; se for 0, será alterado para 1(Figura 2):
48 bits - MAC ADRESS
08
08
00
00
27
27
CD
FF
FE
24
63
3
CD
24
0000 1000
0000 1010
0A
00
27
FF
FE
CD
24
63
3
63
3
64 bits - EUI-64
Figura 3.3 - Segundo passo para transformar um endereço MAC no padrão EUI-64
Fonte: Elaborado pelos autores,2012
Portanto, o identificador da interface no padrão EUI-64 para esta interface
será: 0A:00:27:FF:FE:CD:24:63. Assim, um endereço link local atribuído a essa
interface seria FE80::0A00:27FF:FECD:2463.
3.7
ENDEREÇOS IPV6 ESPECIAIS
 Segundo IPV6.BR existem alguns endereços IPv6 especiais utilizados para
fins específicos.
 Endereço Não-Especificado (Unspecified): é representado pelo endereço
0:0:0:0:0:0:0:0 ou ::0 (equivalente ao endereço IPv4 unspecified 0.0.0.0). Ele
nunca deve ser atribuído a nenhum nó, indicando apenas a ausência de um
endereço. O endereço unspecified não deve ser utilizado como endereço de
destino de pacotes IPv6;
 Endereço
Loopback:
é
representado
pelo
endereço
unicast
0:0:0:0:0:0:0:1/128 ou ::1/128 (equivalente ao endereço IPv4 loopback
127.0.0.1). Este endereço é utilizado para referenciar a própria máquina,
utilizado geralmente para testes internos. O endereço não deve ser utilizado a
nenhuma interface física, nem usado como endereço de origem em pacotes
IPv6 enviados para outros nós. Um pacote IPv6 com um endereço loopback
como destino não pode ser enviado por um roteador IPv6, e caso um pacote
51
recebido em uma interface possua um endereço loopback como destino, este
deve ser descartado;
 Endereços IPv4-mapeado: representado por 0:0:0:0:0:FFFF:wxyz ou
::FFFF:wxyz, é usado para mapear um endereço IPv4 em um endereço IPv6
de 128-bit.
Algumas faixas de endereços também são reservadas para usos
específicos:
 2002::/16: prefixo utilizado no mecanismo de transição 6to4;
 2001:0000::/32: prefixo utilizado no mecanismo de transição TEREDO;
 2001:db8::/32: prefixo utilizado para documentação, ou seja, para representar
endereços IPv6 em textos e documentações, significando que são exemplos.
 Alguns endereços utilizados no início do desenvolvimento do IPv6 tornaramse incomuns e não devem mais ser utilizados:
 FEC0::/10: prefixo utilizado pelos endereços do tipo site local, equivalente aos
endereços privados do IPv4. Sua utilização foi substituída pelos endereços
ULA;
 ::wxyz: utilizado para representar o endereço IPv4-compatível. Sua função é
a mesma do endereço IPv4-mapeado, tornando-se obsoleto por desuso;
 3FFE::/16: prefixo utilizado para representar os endereços da rede de teste
6Bone. Criada para ajudar na implantação do IPv6, está rede foi desativada
em 6 de junho de 2006.
3.8 TÉCNICAS DE TRANSIÇÃO
Segundo IPV6.BR (2012) o IPv4 e o IPv6 não são inteiramente compatíveis
entre si. O IPv6 não foi criado para ser uma extensão do IPv4, e sim um substituto
que resolve o problema do esgotamento de endereços. Embora não interoperem,
ambos os protocolos podem funcionar simultaneamente nos mesmos equipamentos
e com base nisto a transição foi pensada para ser feita de forma gradual.
No início do projeto do IPv6, quando o protocolo estivesse pronto, sua
implantação começaria a ser feita gradativamente na Internet, de forma que
funcionasse simultaneamente ao IPv4. A isso chamamos de pilha dupla, ou dual
stack. Quando o IPv6 estivesse implantado em todos os dispositivos, o IPv4 deixaria
de ser realmente útil e poderia ser abandonado paulatinamente.
52
No período de implantação do IPv6 haveria necessidade de técnicas
auxiliares de transição, inicialmente para interconectar ilhas IPv6 em uma Internet
majoritariamente IPv4 e, depois de algum tempo, para fazer o contrário.
3.8.1 Classificação das técnicas de transição
Segundo Florentino (2012) desde 1983 a estrutura da Internet é baseada no
IPv4. O período de transição e de coexistência dos dois protocolos exigiu o
desenvolvimento de técnicas auxiliares. O problema principal a ser resolvido pelas
técnicas de transição passou a ser a implantação do IPv6 em um ambiente em que o
IPv4 não está mais disponível, mas ainda é necessário para os novos usuários da
Internet. Foram, e continuam sendo, desenvolvidos então diversos tipos de túneis
IPv4 sobre IPv6 para, aliados a técnicas de tradução, solucionar esse grande
problema.
As técnicas de transição são classificadas segundo sua funcionalidade, em:
 Pilha dupla: consiste na convivência do IPv4 e do IPv6 nos mesmos
equipamentos, de forma nativa, ao mesmo tempo. Essa técnica é a técnica
padrão escolhida para a transição para IPv6 na Internet e deve ser usada
sempre que possível;
 Túneis: Permitem que diferentes redes IPv4 comuniquem-se através de uma
rede IPv6, ou vice-versa;
 Tradução: Permitem que equipamentos usando IPv6 comuniquem-se com
outros que usam IPv4, por meio da conversão dos pacotes;
3.8.2 Pilha Dupla
Segundo Florentino (2012) com a pilha dupla se tem: dois planos de
endereçamento, duas gerências, duas tabelas de roteamento distintas e duas
resoluções de problemas (pois o fato de uma pilha estar funcionando corretamente
não implica em que a outra também esteja).
Mas para manter a pilha dupla podem ocorrer problemas, como por exemplo:
aumento de complexidade da rede, e também pode aumentar muito o custo para
53
manter a rede no ar, motivo pelo qual os processos de transição se arrastou até
hoje.
3.8.3 Técnicas de Tunelamento
Segundo IPV6.BR (2012) o protocolo IPv4 e IPv6 não são diretamente
compatíveis entre si. O IPv6 não foi projetado para ser uma extensão, ou
complemento, do IPv4, mas sim, um substituto que resolve o problema do
esgotamento de endereços. Embora não interoperem, ambos os protocolos podem
funcionar simultaneamente nos mesmos equipamentos e com base nisto a transição
foi pensada para ser feita de forma gradual. Por isso foram criados alguns métodos
de transição para ambos os protocolos funcionarem simultaneamente.
3.8.3.1 Tunnel Brokers
Segundo Florentino (2012) foram definidos na RFC 3053, os Tunnel Brokers
são serviços oferecidos por provedores na Internet que levam conectividade IPv6
aos usuários finais que possuem acesso à Internet IPv4 construindo túneis até
eles. Sendo assim qualquer usuário cadastrado poderá acessar um conteúdo
IPv6 através de um Tunnel Broker, só precisa estar instalado em sua máquina um
cliente que lhe permita ser autenticado, e que consiga enviar e receber dados
através do túnel.
Foram criados três grandes serviços de Tunnel Broker com presença em todo
mundo espalhados pela Internet. São eles:

SixXS – HTTP://www.sixxs.net

Hurricame Eletric (HE) – HTTP://www.he.net

Freenet6 – HTTP://gogo6/freenet6
3.8.3.2 Usar túnel IPv6 pode tornar o acesso lento
Segundo Florentino (2012) acessar a Internet através de um Tunnel Broker é
igual estar conectado através de uma VPN, é bom sempre fechar o túnel com o
54
provedor que tiver um ponto de presença mais próximo à localidade onde o
usuário se encontra.
Dos serviços de Tunnel Broker citados, apenas o SixXS possui um ponto de
presença na America Latina, que fica no Brasil, em Uberlândia, na CTBC. É
recomendado que os túneis sejam feitos a partir desse ponto.
O grande problema para as empresas para utilizar o Tunnel Broker é garantir
um serviço com nível muito satisfatório, conhecido como SLA (Service Level
Agreement). Como o tráfego é direcionado até o provedor que fornece o trânsito,
o correto para as empresas é buscar alguma operadora que forneça trânsito IPv6
nativo, sem precisar de túneis. Raras operadoras fazem isso no Brasil.
O Tunnel Broker é indicado mais para usuários interassados em fazer testes e
aprender com o novo protocolo da Internet, mas não é voltado para fins
comerciais.
3.8.4 Túneis 6to4, ISATAP e Teredo
Segundo Florentino (2012) são conhecidos como Túneis Automáticos ou
Túneis Dinâmicos, os túneis permitem que um roteador ou host da rede local
consigam ter conectividade IPv6 em diferentes cenários.
3.8.4.1 Túneis 6to4
Segundo Florentino (2012) esses túneis são usados quando uma determinada
empresa não tem trânsito IPv6 nativo. Fornece um endereço global no formato
2002:wwxx:yyzz::/48, onde wwxx:yyzz corresponde ao endereço IPv4 público do
cliente convertido para hexadecimal.
Usando 6to4 qualquer computador com um IPv4 válido poderia funcionar
como uma extremidade de um conjunto de túneis automáticos e prover todo um
bloco IPv6 /48 para ser distribuído e usado na rede.
3.8.4.2 IPv6 Rapid Deployment – 6rd
Segundo Florentino (2012) na estrutura proposta pela técnica do 6to4, um
provedor francês de nome Free sugeriu a utilização de endereços IPv6 válidos
55
mapeados a endereços IPv4 também válidos como técnica de transição. Essa
técnica ficou conhecida como IPv6 de implementação rápida.
Como o provedor possui a gerência dos equipamentos de rede na casa do
usuário final (CPE), o provedor conseguiu fazer com que estes equipamentos
suportassem IPv4 e IPv6 ao mesmo tempo. Como os clientes já possuíam um
IPv4 válido, o acesso a Internet IPv4 continuaria a ser realizado da mesma forma
e, para acessar a Internet IPv6, o roteamento aproveitaria os bits mapeados da
rede IPv4.
3.8.4.3 NAT 444
Segundo Florentino (2012) quando um provedor de acesso não tem mais
endereços IPv4 válidos para entregar aos seus clientes, uma opção seria realizar
mais de um nível de NAT para levar conectividade aos clientes.
Supondo que um cliente recebe um endereço da rede 10.0.0.0, que será
traduzido para um endereço 172.16.0.0 dentro de um agregador da rede
operadora (chamado de LSN – (Large Scale NAT) que depois seria traduzido para
um endereço IPv4 público, como uma rede 200.10.10.0, por exemplo.
Se um cliente tiver várias máquinas com as quais compartilha acesso, este
necessitaria de mais um NAT interno, tendo que usar, por exemplo, a rede
192.168.10.0 e mapeando estes IPs para o seu endereço 10.x.x.x recebido.
3.8.4.4 ISATAP – Intra-Site Automatic Tunnel Addressing Protocol
Segundo Florentino (2012) Isatap é uma técnica de tunelamento que conecta
hosts a roteadores. É recomendada para organizações que possuem trânsito
IPv6, mas que têm lugares de sua infraestrutura interna que não suportam o novo
protocolo. É ideal para construção de túneis internos.
3.8.4.5 Teredo
Segundo Florentino (2012) o teredo é uma técnica de tradução criada pela
Microsoft que tolera que máquinas atrás de traduções NAT tenham conectividade
IPV6. Para isso ocorrer, pacotes IPv6 são encapsulados em pacotes UDP.
56
Há muitas críticas ao uso deste protocolo nos quesitos de segurança e
desempenho. Quando acessado uma página disponível em IPv6, um navegador que
use um túnel do tipo Teredo pode ter uma conectividade muito fraca, pois levará os
pacotes até o servidor Teredo mais próximo. Por isso, algumas empresas, como o
Google, só autorizam o acesso IPv6 para quem participa de uma whitelist e tenha
uma conectividade IPv6 nativa, pois muitos usuários Windows têm túneis Teredo
ativos e nem sonham ter isso em seu sistema operacional.
Para fazer a ativação Teredo nas plataformas Windows Vista 7 podemos
utilizar o comando netsh:
- ‘netsh interface ipv6 install’
- ‘netsh interface ipv6 set teredo cliente’
Existe uma versão também para o Linux, é necessário usar o comando
- ‘sudo apt-get install miredo’
3.8.4.6 Nat64/Dns64
Segundo Florentino (2012) uma maneira para o uso das técnicas de
tunelamento é a tradução conhecida como NAT64/DNS4. Quando uma máquina que
possui somente IPv6 tenta acessar uma rede IPv4 por uma pesquisa DNS em um
registro AAAA, o DNS 64 responde a solicitação mascarando o prefixo IPv4 com
qualquer outro prefixo. O host IPv6 envia o pacote para o host IPv4, que depois é
traduzido pelo NAT64 ( tradução do tipo de pacote).
O único problema nesta tradução é a incompatibilidade de alguns aplicativos
com esse tipo de NAT. Para serviços como email e navegação HTTP não há
grandes dificuldades, mas para soluções que envolvam balanceamento de carga ou
algo parecido, eles podem ocorrer.
Segundo Florentino (2012) cada técnica de transição se aplica em um caso
específico. Que são esses:

Pilha Dupla – Melhor solução em todos os casos. Só use uma
técnica de transição quando não há nenhuma operadora que lhe traga IPv6
nativo.

Tunnel Broker – Indicado para profissionais de TI que queiram ter
contato com IPv6 mas que ainda não possuem conectividade nativa. Não é
indicado para oferecer serviços aos usuários finais devido à alta latência.
57

Teredo – Para usuários finais que queiram ter acesso a IPv6 via túnel
automaticamente, sem a necessidade de configuração adicional, também
sujeito a problemas de desempenho.

6to4 – Indicado para empresas que não têm ainda IPv6 nativo nem
blocos IPv6 próprios, mas querem acessar a Internet em pilha IPv6 para
adquirir experiência com o novo protocolo.

6rd – Para operadoras que possuem gerência dos CPEs dos clientes
e querem oferecer conectividade IPv6 rapidamente aos usuários finais.

MPLS 6PE – Recomendado para empresas que já utilizam os
serviços de operadoras via rede MPLS e têm interesse em obter
conectividade IPv6 por meio desta rede proprietária, ou desejam adquirir
conectividade IPv6 de uma operadora por meio desta tecnologia.

ISATAP – Para empresas que já têm conectividade IPv6 na borda da
sua rede, mas que possuem partes de sua infraestrutura apenas em IPv4 e
desejam fazer túneis internos entre ilhas IPv6 através de IPv4.

NAT 444 – Solução adotada pelas operadoras como um paliativo
para retardar a adoção da pilha dupla em IPv6. (FLORENTINO, 2012,
p.121,122)
58
4 IMPLEMENTAÇÃO DE UM AMBIENTE DE REDE IPv6
A tendência é que todas a redes que utilizem o protocolo IPv4 utilizem o
protocolo IPv6, com o tempo essa mudança será inevitável. Para simular essa
transição foi utilizado um software conhecido como máquina virtual o Virtual Box. O
software foi utilizado para criar três máquinas virtuais onde foram instalados os
sistemas operacionais Ubuntu Server, Ubuntu Desktop e Windows Seven. No
Ubuntu Server foi instalado e configurado o DNS Bind9 para resoluções de nome, o
isc-dhcp-server para distribuição de endereços IPs, tanto na versão 4 como na
versão 6, e o radvd cuja função é anunciar o prefixo de rede IPv6 para as máquinas
de rede local, função esta designada ao roteador de uma rede IPv6. Os servidores
DNS e DHCP utilizam o mecanismo de pilha dupla para que as máquinas possam se
comunicar em IPv4 e IPv6 ao mesmo tempo, tanto no sistema operacional Ubuntu
Desktop, como no Windows Seven.
4.1 ATRIBUINDO ENDEREÇO IP AO SERVIDOR.
O Virtual Box permiti simular diferentes tipos de placa de rede para as
máquinas virtuais. Assim, as configuração utilizadas no Ubuntu Sever foram 3 placas
de redes, uma em modo de rede interna uma em modo host only e a outra em modo
NAT.
Na
Figura
4.1
foi
utilizado
o
comando
up
echo
0
>
/proc/sys/net/ipv6/conf/all/autoconf que foi utilizado para desabilitar a
auto-configuração ipv6 na interface, evitando que seja atribuído um outro IPv6 para
a interface e mostra as configurações da interface de rede que foi feita editando o
arquivo /etc/network/interfaces através do comando:
# nano /etc/network/interfaces.
59
Figura 4.1 – Configuração da Rede.
Fonte: Elaborado pelos autores, 2012
A Figura 4.1 mostra que foi atribuída a rede eth0 dois IPs estáticos, o primeiro
IPv4 e o segundo IPV6, já a rede eth1 está configurada para receber IP automático,
voltada direto para INTERNET.
Figura 4.2 – Reiniciando a Rede.
Fonte: Elaborado pelos autores, 2012
60
Após feitas as configurações a interface de rede deve ser reiniciada para que
as alterações feitas possam tem validade.
A Figura 4.2 mostra a rede sendo reiniciada para que as novas configurações
entrem em vigor. O comando utilizado foi: /etc/init.d/networking restart
4.2 Instalação e configuração Bind DNS
Considerando que um endereço IPv6 envolve a manipulação de símbolos
hexadecimais, sua utilização por administradores de rede se torna mais difícil.
Assim, o papel de um servidor DNS na rede se torna ainda mais imprescindível. A
Figura 4.3 mostra o cenário onde foi feira a configuração de um servidor DNS para o
domínio master.com.br.
Ubuntu
Domain master.com.br
Switch
Servidor
Linux/Ubuntu
Windows
Domain master.com.br
@
IN
Server IN
A
A
192.168.100.11
192.168.100.11
;; IPV6
@
IN
server
AAAA
IN
fd00:a:b:c::1
AAAA fd00:a:b:c::1
Figura 4.3 – Estrutura do DNS Bind.
Fonte: Elaborado pelos autores, 2012
A Figura 4.3 mostra a as configurações do domínio DNS que pode conter
registros de nomes tanto do tipo A (IPv4) quanto do tipo AAAA (IPv6) e seus
respectivos clientes.
A instalação do Bind9 e feita através do comando:
# apt-get install bind9
61
Figura 4.4 – Instalação do Bind9.
Fonte: Elaborado pelos autores, 2012
A Figura 4.5 mostra as configurações do DNS no Bind9 para resoluções de
nomes tanto em IPV4 quanto em IPV6. Foi criado um domínio DNS com o nome de
master.com.br.
Tais
configurações
devem
ser
feitas
no
arquivo
/etc/bind/master.com.br. É possível notar que as configurações para
resolução de um nome para um endereço IPv6 utilizam o registro AAAA.
Figura 4.5 – Configuração do Bind9.
Fonte: Elaborado pelos autores, 2012
62
A Figura 4.6 mostra as configurações do DNS reverso, as quais mapeiam um
IP ao seu respectivo nome. Estas configurações devem ser colocadas no arquivo
/etc/bind/master.rev.com.br.
Figura 4.6 – Configuração do DNS reverso.
Fonte: Elaborado pelos autores, 2012
As configuração do IPv6 do servidor DNS no Linux Ubuntu é feito no mesmo
arquivo de configuração do IPv4 do servidor DNS, editando o arquivo
/etc/resolv.conf. através do comando:
# vi /etc/resolv.conf
nameserver
fd00:a:b:c::1
Na Figura 4.7 é mostrada a utilização da ferramenta nslookup para
verificação de que o sistema aceitou a configuração IPv6 do servidor DNS.
63
Figura 4.7 – Ferramenta nslookup.
Fonte: Elaborado pelos autores, 2012
4.3 Instalação do Tunel Miredo Teredo
A Figura 4.8 mostra a instalação do Teredo, que é uma técnica de tradução
criada pela Microsoft que tolera que máquinas atrás de traduções NAT tenham
conectividade IPV6. O Teredo permite que diferentes redes IPv4 comuniquem-se
através de uma rede IPv6, ou vice-versa. Em uma rede que utiliza os dois protocolos
é obrigatório a necessidade de utilizar algum tipo de túnel.
A Figura 4.6 mostra a instalação do Teredo através do comando:
# apt-get install miredo.
Figura 4.8 – Instalação do Teredo.
Fonte: Elaborado pelos autores, 2012
A configuração do Teredo é feita de forma automática.
Após a configuração das redes, a instalação e configuração do Bind9, na
instalação do Teredo são realizados alguns testes para verificar se a rede está
64
funcionando corretamente. Esse teste é feito através do comado ping para
protocolos em IPv4 e ping6 para protocolos IPv6, no sistema operacional Linux.
As Figuras 4.9 e 4.10 mostram o comando ping em IPV4 e o comando ping6
para IPv6, respectivamente, sendo executados no próprio servidor.
Figura 4.9 – Ping no Servidor DNS Versão 4.
Fonte: Elaborado pelos autores, 2012
Figura 4.10 – Ping no Servidor DNS Versão 6.
Fonte: Elaborado pelos autores, 2012
A Figura 4.11 mostra o ping em IPV4 e o ping6 em IPV6 em site que já tem
suporte para o protocolo IPv6 via o túnel Teredo.
65
Ping IPv4
Ping IPv6
Figura 4.11 – Ping voltado para internet.
Fonte: Elaborado pelos autores, 2012
4.4 Endereços IPV6
Segundo Hinden (2006) um host deve ter a capacidade de reconhecer os
seguintes endereços IPv6 como identificando a si mesmo.

O seu endereço de loopback (::1/128);

O seu endereço de link-local para cada interface (prefixo FE80::/64);

Os endereços unicast e anycast atribuídos manualmente ou automaticamente
a cada uma de suas interfaces;

Os endereços multicast All-Nodes de escopo interface local (FF01::1) e
escopo link-local (FF02::1);

O endereço multicast Solicited-Node para cada um de seus endereços
unicast e multicast;

Endereços multicast de todos os outros grupos que o host participa.
66
Um host já possui o endereço IPv6 de loopback (::1/128) e também o
endereço de link-local prefixo FE80::/64. Para comunicação com outro host no
mesmo enlace, o endereço link-local já é suficiente. Por exemplo, considere o
cenário mostrado na Figura 4.12.
switch
Linux Ubuntu
Windows 7
MAC address: 08:00:27:cd:24:63
IPv6 link-local:
fe80::a00:27ff:fecd:2463/64
MAC address: 08:00:27:00:90:bf
IPv6 link-local:
fe80::f16e:9556:cc61:ef12%30/64
Figura 4.12 – IPv6 de Link Local.
Fonte: Elaborado pelos autores, 2012
A Figura 4.12 mostra dois hosts, um com Linux Ubuntu e outro com o sistema
operacional Microsoft Windows Seven, ambos interconectados por um switch. Note
também o endereço físico (MAC Address) e endereço IPv6 de link-local de cada
host. Como pode ser visto, o Linux segue o procedimento descrito na seção 3.6Identificadores de Interfaces, para gerar o endereço IPv6 de link-local a partir do
endereço MAC da interface, entretanto, o Windows 7, por padrão, gera um endereço
IPv6 sem relação alguma com o endereço MAC da interface. É possível desabilitar
este comportamento através do seguinte comando:
netsh
interface
ipv6
set
global
randomize-
identifiers=disabled
Para testar a conectividade entre os dois hosts via seu IPv6 de link-local, no
Microsoft Windows 7 utiliza-se a ferramenta ping, a qual envia pacotes ICMPv6 do
tipo echo request para o host destino e o mesmo responde com pacotes ICMPv6
echo reply. A figura 4.13 mostra o ping disparado do host Windows 7 para o host
Linux.
67
Figura 4.13 – Testando a conectividade via IPv6 de link-local, Windows para Linux.
Fonte: Elaborado pelos autores, 2012
Do mesmo modo é possível testar a conectividade via endereço IPv6 de linklocal do Linux/Ubuntu para o Windows através do comando ping6, conforme
mostrado na figura 4.14.
# ping6 -c 2 -I eth0 fe80::f16e:9556:cc61:ef12
PING fe80::f16e:9556:cc61:ef12(fe80::f16e:9556:cc61:ef12)
from fe80::a00:27ff:fecd:2463 eth0: 56 data bytes
64 bytes from fe80::f16e:9556:cc61:ef12: icmp_seq=1 ttl=128
time=0.321 ms
64 bytes from fe80::f16e:9556:cc61:ef12: icmp_seq=2 ttl=128
time=1.27 ms
--- fe80::f16e:9556:cc61:ef12 ping statistics --2 packets transmitted, 2 received, 0% packet loss, time
1000ms
rtt min/avg/max/mdev = 0.321/0.796/1.272/0.476 ms
Figura 4.14 – Testando a conectividade via IPv6 de link-local, Linux para Windows.
Fonte: Elaborado pelos autores, 2012
Como mostrado, uma rede composta por hosts habilitados para o protocolo
IPv6 já conseguem se comunicar via o IPv6 de link-local que é automaticamente préconfigurado em cada interface. Porém, em uma rede conectada a outra rede, ou que
tenha acesso à Internet, ainda são necessários outros itens de configuração de rede,
tais como o endereço do roteador padrão, endereço do servidor DNS, dentre outros.
Desse modo, existem outros métodos de configuração IPv6, os quais serão
demonstrados nas próximas seções.
68
4.4.1 Atribuindo IPv6 Manualmente
Atribuição de IP manual pode ser feita de duas formas no sistema operacional
Linux , a primeira através do comando:
# ifconfig eth1 inet6 add fd00:a:b:c::100/64
Nesse tipo de atribuição há uma desvantagem, pois toda vez que a máquina
reiniciar o endereço IP será perdido.
A segunda forma de atribuição de IP manual é editando a interface de rede,
através do comando:
# nano /etc/network/interfaces
iface eth0 inet6 static
address fd00:a:b:c::100
netmask 64
up echo 0 > /proc/sys/net/ipv6/conf/all/autoconf
O comando up echo 0 > /proc/sys/net/ipv6/conf/all/autoconf
foi usado para desabilitar a auto-configuração ipv6 na interface, evitando que seja
atribuído um outro IPv6 para a interface.
4.4.2 Configuração de endereços Stateless através do radvd
A configuração Stateless no ubuntu é feita através do radvd. Na verdade esse
endereço deveria ser atribuído através do roteador de saída da rede (gateway
padrão), porém, na ausência de um roteador podemos usar o radvd no Linux para
desempenhar essa função. Essa configuração pega os primeiros 64 bits do
protocolo IPv6 definido na configuração do radvd como prefixo da rede, e acrescenta
o identificador da interface criado a partir do endereço Mac da placa de rede do
cliente, conforme explicado na seção 3.6, tornando-se assim um endereço IPv6
único.
69
A Figura 4.15 mostra o cenário para os testes de atribuição de endereço IPv6
do Servidor Linux Ubuntu para um Cliente Ubuntu Desktop, através do radvd. Como
pode ser notado o endereço IPv6 do Ubuntu Desktop foi criado automaticamente a
partir do prefixo (fd00:a:b:c/64) anunciado pelo radvd.
switch
Linux Ubuntu
Ubuntu
Desktop
radvd
MAC address: 08:00:27:16:67:f8
IPv6 : fd00:a:b:c:a00:27ff:fe16:67f8/64
prefix fd00:a:b:c::/64
Figura 4.15 – Cenário da atribuição de IPv6 através do radvd para cliente Linux.
Fonte: Elaborado pelos autores, 2012
Da mesma forma, a Figura 4.16 mostra o cenário de testes de atribuição de
endereço IPv6 do Servidor Linux Ubuntu para um Cliente Windows, através do
radvd.
switch
Servidor Ubuntu
Windows 7
radvd
MAC address: 08:00:27:f2:d4:7f
IPv6: fd00:a:b:c:a00:27ff:fef2:d47f/64
prefix fd00:a:b:c::/64
Figura 4.16 – Cenário da atribuição de IPv6 através do radvd para cliente Windows.
Fonte: Elaborado pelos autores, 2012
Nesse caso o IPv6 do Windows foi atribuído de forma correta, pois o comando
netsh interface ipv6 set global randomizeidentifiers=disabled
foi executado para desabilitar o comportamento citado na seção 4.4.
70
Figura 4.17 – Atribuição de IPv6 através do radvd para cliente Windows.
Fonte: Elaborado pelos autores, 2012
A Figura 4.17 mostra os detalhes da configuração automática da interface do
Windows após receber o anúncio do prefixo de rede do radvd executando no
servidor Ubuntu.
A instalação do radvd no servidor Ubuntu é feita através do comando:
# apt-get install radvd
A configuração do radvd é feita no arquivo /etc/radvd.conf e colocandose as seguintes diretivas:
interface eth0 {
AdvSendAdvert on;
AdvManagedFlag on;
AdvOtherConfigFlag on;
prefix fd00:a:b:c::/64{
AdvRouterAddr on;
};
};
71
Basicamente, a diretiva AdvSendAdvert=on habilita
o servidor Ubuntu a
enviar o Router Advertisement (RA) via interface eth0, ou seja, anunciar o prefixo da
rede. As diretivas AdvManagedFlag e AdvOtherConfigFlag, quando configuradas
para on, permitem que os hosts possam utilizar as configurações de autoconfiguração stateless em conjunto com outros meios de configuração stateful (um
servidor DHCPv6, por exemplo). O prefixo da rede a ser anunciado será
fd00:a:b:c::/64, entretanto, a diretiva AdvRouterAddr=on faz com o que o IPv6 da
interface que seja anunciado, ao invés do prefixo.
Para iniciar o serviço do radvd deve-se executar o seguinte comando:
# /etc/init.d/radvd start
Starting radvd:
* IPv6 forwarding seems to be disabled.
* See /usr/share/doc/radvd/README.Ubuntu
* radvd will *not* be started.
É possível notar que houve um erro durante a inicialização do serviço. Isso se
deve ao fato de que é preciso habilitar o forwarding de IPv6 para funcionar o radvd.
Para tanto, deve-se executar o seguinte comando:
# echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
Iniciando novamente o radvd o erro não mais acontecerá.
# /etc/init.d/radvd start
Starting radvd: radvd.
4.4.3 Configuração de endereços Statefull através do DHCPv6
Assim como no IPv4, no IPv6 também é possível configurar as máquinas da
rede automaticamente através de um servidor DHCP (Dinamic Host Configuration
Protocol). Entretanto, em IPv6 o servidor DHCPv6 não é mais responsável por
repassar o endereço IP do gateway default. No IPv6 esta função é de
responsabilidade do roteador da rede.
72
A Figura 4.18 mostra o cenário em que será testado a funcionalidade do
serviço de atribuição de endereço IPv6 via servidor DHCPv6. Note que o servidor
DHCPv6 será configurado no servidor Ubuntu. Neste cenário também está sendo
considerado uma estação com Linux Ubuntu Desktop 12.10 que, juntamente com a
estação Windows 7, obterão seu endereço IPv6 via DHCPv6.
Ubuntu Desktop
IPv6 fd00:a:b:c::101
switch
Servidor Ubuntu DHCPv6
Windows 7
option domain-name “master.com.br”
option domain-name-server ns.master.com.br
IPv6 fd00:a:b:c::100
subnet6 fd00:a:b:c::/64 {
range6 fd00:a:b:c::100 range6 fd00:a:b:c::120;
}
Figura 4.18 – Atribuição de IPv6 através do DHCPv6 para cliente Windows.
Fonte: Elaborado pelos autores, 2012
Para a instalação do dhcpv6 foi utilizado o isc-dhcp-server, que é uma
coleção de software que implementa vários aspectos do DHCP, e tem por
característica responder a todas solicitações dos clientes que sigam as normas do
protocolo, o isc-dhcp-server tem suporte para as 2 versões de protocolo IP, tanto
IPv4 como IPv6.
4.4.4 Instalação e Configuração do Servidor DHCP
A Figura 4.19 mostra a instalação do isc-dhcp-server através do comando
apt-get install
isc-dhcp-server.
73
Figura 4.19 – Instalação do isc-dhcp-server.
Fonte: Elaborado pelos autores, 2012
Após a instalação será configurado o dhcpd para protocolo IPv4 através do
comando:
# nano /etc/dhcp/dhcpd.conf
Figura 4.20 – Configuração do dhcp IPv4.
Fonte: Elaborado pelos autores, 2012
Na figura 4.20 se encontram as configurações do DHCP versão 4, IP do
Domínio e a faixa de endereços que os clientes recebem que vai do 192.168.100.13
a 192.168.100.15.
As configuração do dhcpd para protocolo IPv6 através são colocadas um
outro arquivo que pode ser editado por meio do comando:
# nano /etc/dhcp/dhcpd6.conf
74
Figura 4.21 – Configuração do dhcp IPv6.
Fonte: Elaborado pelos autores, 2012
Na Figura 4.21 se encontram as configurações do DHCP versão 6, IP do
domínio e a faixa de endereços que os clientes recebem que vai do fd00:a:b:c::100 a
fd00:a:b:c::120.
Para utilizar o protocolo IPv6 é necessário fazer algumas alterações no script
de inicialização do isc-dhcp-server, o qual está preparado para iniciar o serviço
somente para IPv4. Portanto, primeiramente deve-se copiá-lo com o nome
/etc/init.d/isc-dhcp6-server. Este arquivo deve então ser editado para que
se possa ser feitas as alterações. As Figuras 4.22 e 4.23 mostram em destaque as
alterações que devem ser feitas.
75
Figura 4.22 – Alteração do isc-dhcp6-server.
Fonte: Elaborado pelos autores, 2012
Figura 4.23 – Alteração do isc-dhcp6-server 2.
Fonte: Elaborado pelos autores, 2012
76
Depois de feitas as alterações devem ser reiniciados os servidores isc-dhcp6server (para o DHCPv6) e o isc-dhcp-server (para o servidor DHCPv4), como
mostram as figura 4.24 e 4.25, respectivamente.
Figura 4.24 – Reinicialização do isc-dhcp6-server.
Fonte: Elaborado pelos autores, 2012
Figura 4.25 – Reinicialização do isc-dhcp-server.
Fonte: Elaborado pelos autores, 2012
Após feita as configurações do servidor DNS e do servidor DHCP, é iniciado
o sistema operacional do cliente Windows. A Figura 4.26 mostra as configurações de
IPv4 e IPv6 adquirido via DHCP pelo cliente Windows.
77
Figura 4.26 – Cliente dhcp.
Fonte: Elaborado pelos autores, 2012
A Figura 4.27 mostra os testes de conectividade IPv4 e IPv6 entre o cliente
Windows e o servidor DNS, feitos com os comandos ping e ping6.
Ping IPv6
Ping IPv4
Figura 4.27 – Ping cliente servidor.
Fonte: Elaborado pelos autores, 2012
78
A Figura 4.28 demonstra os IPs atribuídos para o cliente Ubuntu, sendo o
primeiro em IPv4 (192.168.100.14) adquirido por DHCPv4 e o segundo IPv6
(fd00:a:b:c:a00:27ff:fe16:67f8/64) adquirido automaticamente via anúncio do servidor
radvd como apresentado na seção 4.4.2. O IPv6 fe80::a00: 27ff:fe16:67f8/64 é
configurado por padrão como descrito na seção 3.6.
Figura 4.28 – Configurações do Cliente Linux.
Fonte: Elaborado pelos autores, 2012
A Figura 4.29 demonstra os IPs atribuídos para o cliente Windows com o
primeiro
IPv4
adquirido
fd00:a:b:c:a00:27ff:fef2:d47f
por
DHCPv4
adquirido
(192.168.100.13),
automaticamente via
o
IPv6
radvd, o IPv6
fd00:a:b:c::120 adquirido por DHCPV6 e o IPV6 fe80::a00:27ff:fef2:d47f é
configurado por padrão. Também é possível observar o IPv6 fe80::a00:27ff:fe41:a06
do roteador padrão adquirido automaticamente via radvd e o IPv4 192.168.100.1 do
roteador padrão adquirido via DHCPv4.
79
Figura 4.29 – Configurações do Cliente Windows.
Fonte: Elaborado pelos autores, 2012
Figura 4.30 – Configurações do Cliente Ubuntu para obter endereço via DHCPv6.
Fonte: Elaborado pelos autores, 2012
A Figura 4.30 mostra as configurações no Linux Ubuntu Desktop, feitas para
obter endereço IPv6 automaticamente via DHPCv6.
80
Na Figura 4.31 é possível ver as configurações de endereço IPv6 e DNS
obtidas via DHCP no cliente Linux.
Figura 4.31 – Configurações IPv6 no Linux Ubuntu obtidas via DHCP.
Fonte: Elaborado pelos autores, 2012
Para os testes de conectividade foi executado o comando ping do cliente
Windows para o cliente Linux para verificar se existe comunicação entre as
máquinas. Como é demonstrado na Figura 4.32, o endereço IPv6 do ping é o
mesmo que foi adquirido via radvd na imagem 4.28.
Figura 4.32 – Ping do cliente Windows para cliente Linux.
Fonte: Elaborado pelos autores, 2012
81
A Figura 4.33 mostra a execução do comando ping6 do cliente Linux para o
cliente Windows. Nota se que o endereço IPV6 do ping é o mesmo que foi
adquirido via DHCPv6 na imagem 4.29.
Figura 4.33 – Ping do cliente Linux para cliente Windows.
Fonte: Elaborado pelos autores, 2012
4.5 Roteamento entre duas redes IPv6
O Linux Ubuntu Server foi configurado para atuar como roteador entre duas
redes IPv6. O cenário é mostrado na Figura 4.34. O Ubuntu Server possui duas
interfaces de rede executando o radvd para anunciar o prefixo de cada rede. A
interface eth0 utiliza o IPv6 fd00:a:b:c::1/64 e a eth1 o IPv6 fd00:c:d:e::1/64.
switch
switch
Ubuntu Server
radvd
eth0
rede: fd00:c:d:e::/64
rede: fd00:a:b:c::/64
Windows 7
eth1
MAC address: 08:00:27:cd:24:63
IPv6 link-local: fe80::a00:27ff:fecd:2463/64
IPv6 eth0: fd00:a:b:c::1/64
IPv6 eth1: fd00:d:e:f::1/64
Ubuntu Desktop
MAC address: 08:00:27:00:90:bf
MAC address: 08:00:27:c5:b1:9d
IPv6 link-local: fe80::a00:27ff:fec5:b19d/64
IPv6 automático: fd00:a:b:c:f16e:9556:cc61:ef12
IPv6 automático: fd00:d:e:f:a00:27ff:fec5:b19d
IPv6 link-local: fe80::f16e:9556:cc61:ef12%30/64
Figura 4.34 – Cenário para teste de roteamento entre duas redes IPv6.
Fonte: Elaborado pelos autores, 2012
82
A configuração das interfaces de rede do Ubuntu Server é feita editando o
arquivo /etc/network/interfaces, conforme a seguir:
# nano /etc/network/interfaces
# Interface de loop back
auto lo
iface lo inet loopback
# Interface eth0
auto eth0
iface eth0 inet6 static
address fd00:a:b:c::1
netmask 64
up echo 0 > /proc/sys/net/ipv6/conf/all/autoconf
#Interface eth1
auto eth1
iface eth1 inet6 static
address fd00:d:e:f::1
netmask 64
A configuração do radvd é feita editando o arquivo /etc/radvd.conf
conforme segue:
# nano /etc/radvd.conf
interface eth0 {
AdvSendAdvert on;
AdvManagedFlag on;
AdvOtherConfigFlag on;
prefix fd00:a:b:c::/64{
AdvRouterAddr on;
};
};
83
interface eth1 {
AdvSendAdvert on;
AdvManagedFlag on;
AdvOtherConfigFlag on;
prefix fd00:d:e:f::/64{
};
};
A Figura 4.35 mostra a execução do comando traceroute6 do cliente
Ubuntu Desktop para cliente Windows. Como pode ser visto, as máquinas estão em
redes IPv6 diferentes e o tráfego teve que passar pelo Ubuntu Server, o qual está
funcionando como roteador entre as duas redes.
Figura 4.35 – Comando traceroute6 cliente Linux para cliente Windows.
Fonte: Elaborado pelos autores, 2012
84
CONCLUSÃO
O protocolo IPv6 veio para evitar que em um futuro haja a falta de endereços
IPs, pois possui ampla capacidade de endereçamentos, quatro vezes maior que seu
antecessor o IPv4.
Deve-se tratar com muita atenção essa atualizada versão de protocolo, pois
as reservas de endereços IPv4 se esgotaram e, por se tratar de algo novo, alguns
problemas de implantação do IPv6 surgirão devido a inúmeros fatores, tais como:
mão de obra especializada no assunto; compras e atualização de equipamentos de
infraestrutura; sendo necessário que as redes estejam todas compatíveis entre si.
Para isso é imprescindível que se conheça todas as técnicas necessárias de
transição para IPv6.
Os mecanismos de transição ocorrem desde o primeiro momento da
implantação,
no
qual
redes
IPv6
encontram-se
em
uma
infraestrutura
predominantemente IPv4. A tendência é que aos poucos as redes em IPv6 sejam
implantadas e o quadro se inverta, e futuramente toda Internet utilizará o novo
protocolo, com apenas poucas redes ainda utilizando o IPv4.
Os provedores de serviço devem tomar ciência e começar a migrar para o
IPv6, já que a escassez de endereços IP afeta diretamente o crescimento de seus
negócios. A implementação do protocolo IPv6 não será uma despesa e sim um
investimento necessário para manter sua rede operacional funcionado corretamente.
Apesar de não ter sido possível a implementação do NAT64 voltando o IPV6
direto para a Internet, o estudo apresentou que existe uma nova possibilidade de
endereçamento, que permite uma migração bem segura e estruturada.
Nesse trabalho, desenvolveu-se uma pesquisa sobre um assunto novo que
esta começando a ser implantado e tem a possibilidade de permitir aos que
possuírem domínio no assunto, destaque no mercado de consultoria para migração.
Sendo assim, espera-se que este trabalho possa servir de incentivo a
discussões sobre a adoção do Protocolo IPv6, sendo também útil à quem deseja
obter informações a respeito da transição, principalmente no que diz respeito às
diferentes formas de atribuição de endereçamento IPv6.
85
REFERÊNCIAS BIBLIOGRÁFICAS
CINEL.
Site
Cinel.
2012.
Disponível
<http://www.cinelformacao.com/tda/files/ud5/ud5cap1p2.htm>
Acesso
em:
em:
09/09/2012.
CLUBE DO HARDWARE, Como o protocolo TCP/IP funciona. 2007. Disponível
em:
<http://www.clubedohardware.com.br/printpage/Como-o-Protocolo-TCP-IP-
Funciona-Parte-1/1351> Acesso em 15/04/2012
DHCPv6.
Implementação
IPv6.
2012.
Disponível
em:
<http://www.buntschu.ch/blog/?p=344> Acesso em 11/09/12.
FLORENTINO, Adilson Aparecido. IPv6 na prática. 1ª. Edição. Editora Linux New
Media do Brasil, 2012.
HINDEN, R.; DEERING, S. IP Version 6 Addressing Architecture- RFC 4291.
IETF Draft Standard, 2006.
IPV6.BR. Site IPv6. 2012. Disponível em: <http://ipv6.br> Acesso em 10/09/2012.
JÚNIOR, Wilson Miranda. IPv6, a nova geração de comunicação. 2006. Tese
(Pós-Graduação de Administração em Redes Linux) – Faculdade de Ciência de
Computação, Universidade Federal de Lavras, Minas Gerais.
KHANNA, S.Understanding Ipv6 EUI-64 Bit Address. 2012. Cisco Support
Community. Disponível em <https://supportforums.cisco.com/docs/DOC-24485>
Acesso em 25/11/2012.
86
LIMA, Cássio; Torres, Gabriel. Como o Protocolo TCP/IP Funciona. Clube do
Hardware.
São
Paulo,
25
mai.
2011.
Disponível
em:
<http://www.clubedohardware.com.br/artigos/Como-o-Protocolo-TCP-IP-FuncionaParte-1/1351/1> Acesso em: 05/03/2012.
MOREIRAS, Antônio M. Entenda o esgotamento do IPv4. Ipv6.br. São Paulo, 11
mai. 2011. Disponível em: <http://www.ipv6.br/IPV6/ArtigoEsgotamentoIPv4> Acesso
em: 07/032011.
MORIMOTO,
Carlos
E.
IPv4.
2005.
Disponível
em:
<
http://www.hardware.com.br/termos/ipv4> Acesso em 06/05/2012
MRUGALSKI, Tomasz. Dibbler - a portable DHCPv6. 2012. Disponível em:
<http://klub.com.pl/dhcpv6/doc/dibbler-user.pdf> Acesso em 10/10/2012
PEREIRA, Pedro Augusto de O. O IPv6. Ricardo Martins. São Paulo, 11 mai. 2011.
Disponível em: < http://ricardomartins.com.br/2009/04/10/o-ipv6/ > Acesso em:
05/03/2012
PINTO,
Clécio
Oliveira.
IPv6.
2011
Disponível
em:
<http://www.slideshare.net/cleciooliveira/artigo-ipv6> Acesso em 09/09/2012.
REDES.
Site
Redes.
2012
Disponível
em:
<http://www.fazerfacil.com.br/rede/topologia.htm> Acesso em 12/09/2012.
SILVA, Vanderson Oliveira. Instalando um servidor DHCP no ubuntu Server.
2011. Disponível em: <http://vandersonsilva.wordpress.com/2011/10/20/instalandoum-servidor-dhcp-no-ubuntu-server/> Acesso em: 20/10/2012.
TANENBAUM, AndrewS. Redes de Computadores. 4. ed. Rio de Janeiro:
Campus,2003.
87
TOPOLOGIA.
Site
Topologia.
2012.
Disponível
em:
<http://paginas.fe.up.pt/~goii2000/M3/redes2.htm> Acesso em 05/09/2012.
TORRES, Gabriel. Topologia de redes. Clube do Hardware. São Paulo, 01/06/1998
Disponível:
<http://www.clubedohardware.com.br/printpage/Redes-Locais-
Topologias-e-Perifericos/310> Acesso em: 07/08/2012.