estudo do protocolo ipv6 e tutorial para implantação - PoP-PI

Propaganda
UNIVERSIDADE FEDERAL DO PIAUÍ
CENTRO DE CIÊNCIAS DA NATUREZA
DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA
BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
RICARDO DE SOUSA BRITTO
ESTUDO DO PROTOCOLO IPV6 E TUTORIAL PARA IMPLANTAÇÃO
DE BACKBONE IPV6 NATIVO
Teresina - PI
2005
RICARDO DE SOUSA BRITTO
ESTUDO DO PROTOCOLO IPV6 E TUTORIAL PARA IMPLANTAÇÃO
DE BACKBONE IPV6 NATIVO
Trabalho
Informática
de
conclusão
da
Sociedade
do
e
disciplina
curso
de
Ciência da Computação da Universidade
Federal do Piauí.
Orientador: Profº Doutor Francisco Vieira de Souza
Teresina - PI
2005
Agradecimentos
Agradeço ao Prof°. Vieira pela amizade e pela
orientação durante os anos que trabalhamos
juntos;
A meus irmãos Hugo Leonardo, Francisco
David e Juliana Britto pelo apoio. A
Kardec,
que
muito
me
auxiliou
Alan
no
desenvolvimento deste trabalho. A todos os
amigos , em especial, Metódio Carlos, Rômulo
Lúcio, Maurício Machado, Antônio de Pádua,
os quais deram sua contribuição para minha
formação.
VI
Dedicatória
Aos meus pais, José Antônio de Siqueira Britto
e Teresa dos Santos Sousa Britto, pelo amor e
dedicação a mim dedicados.
VI
“Sou humano, e tudo q é humano não me é estranho”
Cícero
VI
RESUMO
No início da década de 90, após longos estudos, constatou-se que o IPv4 não
suportaria a demanda crescente por endereços. Este fato é creditado principalmente
a dois fatores: O modelo de endereçamento de 32 bits do IPv4; e o surgimento de
dispositivos móveis, como celulares, que requerem endereço IP.
O IPv6 surgiu como uma solução para a crescente demanda de endereços IP
e também para dar suporte a novas necessidades surgidas no final da última
década, como tráfego multimídia e suporte a multicast.
Nesta monografia se descreve as características do protocolo IPv6 e também
são apresentados os resultados conseguidos com pesquisa realizada no PoPPI(Ponto de Presença da Rede Nacional de Pesquisa no Piauí), que fica hospedado
na FAPEPI (Fundação de Amparo a Pesquisa do Estado do Piauí). Esta pesquisa
resultou em um Tutorial, o qual também faz parte desta monografia.
Palavras-chave: IPv6, Multicast, Trafego Multimídia, Internet.
VI
SUMÁRIO
1 INTRODUÇÃO ......................................................................................................................................1
1.1 OBJETIVOS ......................................................................................................................................2
1.2 METODOLOGIA.................................................................................................................................3
1.3 ORGANIZAÇÃO DO TRABALHO .................................................................................................3
2 O PROTOCOLO IPV6...........................................................................................................................5
2.1 MOTIVAÇÕES PARA CRIAÇÃO DO PROTOCOLO IPV6............................................................5
2.2 CARACTERÍSTICAS DO PROTOCOLO ..................................................................................................6
2.2.1 CABEÇALHO IPV6 ..........................................................................................................................6
2.2.1.1 EXTENSÕES DO CABEÇALHO IPV6 ..............................................................................9
2.2.2 ENDEREÇO IPV6................................................................................................................11
2.2.2.1 ESQUEMA DE ENDEREÇAMENTO................................................................................11
2.3 ROTEAMENTO DE PACOTES IPV6.....................................................................................................15
2.4 APLICAÇÃO DE QUALIDADE DE SERVIÇO COM PROTOCOLO IPV6.........................................................18
2.5 MECANISMOS DE TRANSIÇÃO ..........................................................................................................20
3 IPSEC: SEGURANÇA NO IPV6 .........................................................................................................23
3.1 ARQUITETURA DO IPSEC..................................................................................................................23
3.2 PROTOCOLOS DE SEGURANÇA .........................................................................................................24
4 TESTES E EXPERIÊNCIAS ...............................................................................................................33
4.2 TESTE COM O SISTEMA OPERACIONAL W INDOWS XP .........................................................................34
4.3 TESTE COM O SISTEMA OPERACIONAL KURUMIN LINUX 3 ...................................................................34
4.4 TESTE COM O SISTEMA OPERACIONAL LINUX FEDORA CORE 2 ............................................................34
4.5 ESTRUTURAÇÃO DA REDE ................................................................................................................34
5 CONCLUSÕES E TRABALHOS FUTUROS .....................................................................................37
5.1 CONTRIBUIÇÕES ............................................................................................................................38
5.2 TRABALHOS FUTUROS ...................................................................................................................38
REFERÊNCIAS BIBLIOGRÁFICAS......................................................................................................39
ANEXO I...................................................................................................................................................1
1 TUTORIAL PARA IMPLANTAÇÃO DE INTRANET IPV6 ...................................................................1
1.1 CONFIGURAÇÃO DOS HOSTS ..............................................................................................................2
1.1.1 ATIVANDO SUPORTE IPV6 ..................................................................................................2
VI
1.1.2 CONFIGURAÇÃO PERSISTENTE DE ENDEREÇOS DE REDE .........................................2
1.1.3 ATRIBUINDO ROTA DEFAULT AO HOSt .............................................................................3
1.1.4 ATRIBUINDO SERVIDOR DE DNS .......................................................................................3
1.2 CONFIGURANDO UM ROTEADOR NORMAL ...........................................................................................3
1
INTRODUÇÃO
No início da década de 90, a Internet Architecture Board iniciou estudos sobre
o impacto gerado pelo crescimento da Internet e, conseqüentemente, o aumento no
número de endereços IP requeridos [10].
Constatou-se que o IPv4 (Internet Protocol version 4), com seu modelo de
endereçamento de 32 bits, não suportaria a demanda por endereços, seja pelo
crescimento do número de estações ligadas a Internet ou pelo surgimento de
dispositivos, como celulares, que requerem endereço IP [10], situações que não
foram previstas pelos idealizadores do IPv4.
O IPv6 (Internet Protocol version 6) surgiu como uma solução para a
crescente demanda de endereços IP e também para dar suporte a novas
necessidades surgidas no final da última década, como tráfego multimídia e suporte
a multicast.
Algumas novidades do IPv6 [6]:

Endereço de 128 bits;

Suporte a aplicações multimídia em tempo real;

Suporte a multicast e anycast;

Arquitetura de endereçamentos melhor estruturada;
Introdução
2

Mecanismos de segurança, incluindo encriptação e autenticação;

Mobilidade;

Suporte para datagramas “Jumbo”;

Configuração plug-and-play [14].
Embora pilhas IPv6 nativas não possam interoperar diretamente com pilhas
IPv4, foram introduzidos mecanismos de compatibilidade IPv4 no IPv6 para
assegurar uma transição mais fácil [6].
A FAPEPI (Fundação de Amparo à Pesquisa do Estado do Piauí), detectando
este problema,
propôs, em
forma de Estágio, a implementação do IPv6 no
backbone do PoP-Pi ao aluno em voga.
1.1 OBJETIVOS
O objetivo principal desse trabalho é, através de um estudo detalhado,
mostrar todas as características do protocolo IPv6, utilizando o conhecimento
adquirido para se encontrar uma solução viável para a implementação do backbone
IPv6 nativo no PoP-PI. Esta implementação representa a solução, por um bom
período de tempo, que será utilizada pela FAPEPI para resolver o problema de
tráfego atualmente existente. Deve ser lembrado que a FAPEPI representa o órgão
gerenciador da RNP (Rede Nacional de Pesquisa) no Piauí e é responsável pelas
soluções que permitam às instituições superiores de ensino tais como a UFPI
(Universidade Federal do Piauí), a UESPI (Universidade Estadual do Piauí) e o
CEFET (Centro Federal de Ensino Tecnológico) manterem comunicação via Internet
com o resto do mundo.
Como um segundo objetivo, mas não menos importante, para este Estágio, é
necessário que o conhecimento adquirido neste processo seja disseminado para
estas mesmas unidades de ensino superior para que elas tenham um guia de
procedimento para ser utilizado em suas unidades. Este objetivo será atingido
através da construção de um tutorial, o mais completo e detalhado possível.
Introdução
3
Finalmente, este trabalho está sendo aproveitado como Trabalho de
Conclusão de Curso, como parte integrante do elenco de atividades necessárias
para a formação do aluno.
1.2 METODOLOGIA
A metodologia para o desenvolvimento deste trabalho foi baseada na
seguinte abordagem:
a) Estudo bibliográfico
 Levantamento bibliográfico acerca do protocolo IPv6;
b) Análise de técnicas para instalação de um backbone IPv6
 Foram analisadas duas técnicas de transição do protocolo IPv6 e 3
plataformas diferentes até se chegar a solução ideal para o caso da
FAPEPI.
c) Criação do tutorial

Constituído dos passos necessários para o desenvolvimento do tutorial, a
partir das experiências realizadas no PoP-PI.
1.3 ORGANIZAÇÃO DO TRABALHO
O trabalho está estruturado em 6 (seis) Capítulos e mais um anexo.
No primeiro Capítulo discute-se o que levou ao desenvolvimento do protocolo
IPv6, os objetivos e a metodologia de trabalho.
No Capítulo 2 são descritos os conceitos acerca do Protocolo IPV6,
informações sobre endereçamento, cabeçalho e extensões do protocolo,roteamento
de pacotes IPv6, QoS (Qualidade de Serviço) aplicada com IPv6 e mecanismos de
transição utilizados entre IPv4 e IPv6 . É a parte mais importante do embasamento
teórico, visto que deu suporte para as experiências e testes.
O Capítulo 3 versa sobre IPsec, tecnologia que forneça segurança na camada
IP.
O Capítulo 4 expõe os resultados obtidos nos testes e experiências que foram
feitas no laboratório da FAPEPI.
Introdução
4
No Capítulo 5 são apresentadas as conclusões deste trabalho, as
contribuições e os trabalhos futuros que poderão ser desenvolvidos.
No último Capítulo encontram-se as referências bibliográficas consultadas
nesta pesquisa, as quais podem servir para uma melhor sondagem dos tópicos
abordados e possibilitando uma investigação mais detalhada.
O Anexo é constituído pelo tutorial para implantação de intranets IPv6 nativas,
desenvolvido a partir dos testes e experiências feitas na FAPEPI.
2
O PROTOCOLO IPV6
2.1 MOTIVAÇÕES PARA CRIAÇÃO DO PROTOCOLO IPV6
O crescimento da demanda por endereços IP foi o motivo básico que levou à
definição de uma nova geração de IP. Uma lição que pode ser tirada da experiência
com IPv4 é a de que o endereçamento e o roteamento devem suportar o
crescimento futuro. É importante que tenhamos compreensão do crescimento
passado e como será o crescimento futuro.
A atual base de IPv4 é o que poderia ser chamado de mercado de
computadores. O mercado de computadores foi quem guiou o crescimento da
Internet. Isto inclui a Internet atual e outras incontáveis "internets" que sequer estão
conectadas à grande rede. Seu enfoque é conectar computadores de grandes
empresas, do governo e escolas universitárias. Este mercado ainda está crescendo
a uma taxa exponencial. A faixa de computadores ligados a Internet varia de PCs a
supercomputadores. A maioria encontra-se conectada a redes locais (LANs) e não
são móveis.
A próxima fase de crescimento, provavelmente, não será guiada pelo
mercado de computadores. Enquanto este continuará crescendo a taxas
significantes devido a expansão em outras áreas, como escolas e pequenos
Protocolo IPv6
6
negócios, deverão surgir outros tipos de negócios, em várias áreas, cuja principal
característica é a grande exigência com relação à qualidade do serviço (QoS). Estas
novas exigências não são evidentes na atual fase de desenvolvimento do IPv4.
O desafio enfrentado pela IETF (The Internet Engineering Task Force) no
processo de escolha de um novo protocolo levou em conta um que atenda a
demanda atual e a demanda dos novos mercados que estão surgindo. Estes
mercados vão surgir com ou sem o IETF IPv6. Se o IETF IPv6 for uma solução boa
para estes novos mercados, provavelmente, ele será usado. Senão, estes mercados
desenvolverão outro protocolo, incorrendo no risco de serem criadas soluções
proprietárias. A IETF está tendo a oportunidade de selecionar um protocolo que
deverá ser usado nestes novos mercados. Isto teria resultados positivos, pois seria
possível a criação de uma imensa estrutura para uma rede mundial com um
protocolo aberto. Outra alternativa é um mundo com várias redes separadas com
protocolos controlados pelos fabricantes. A experiência nos mostra que esta não
seria a melhor solução.
2.2 CARACTERÍSTICAS DO PROTOCOLO
O IPv6 ou ainda IPNG (Internet Protocol Next Generation) possui diferenças
relevantes frente ao IPv4, principalmente no que diz respeito ao cabeçalho e ao
modo de representação do endereço, pois os endereços IPv6 possuem 128 bits,
sendo que os endereços IPv4 possuem 32 bits [6].
Também foram acrescentadas novas funções ao protocolo IPv6 como
autenticação e encriptação [1, 2, 3, 4, 8, 12].
2.2.1 CABEÇALHO IPV6
O IPv6 é uma versão aperfeiçoada do IPv4, sendo que o cabeçalho (Header)
IPv6 possui algumas similaridades com o cabeçalho IPv4. NA figura 2.1 observa-se
os o cabeçalho IPv4, na figura 2.2 observa-se o cabeçalho IPv6. Os campos em
vermelho no cabeçalho IPv4 não existem no cabeçalho IPv6.
Protocolo IPv6
7
Figura 2.1
Figura 2.2
O que primeiro se observa ao se comparar os dois cabeçalhos é a diferença
no espaço de endereçamento, que passou de 32 bits para 128 bits. Porém, mesmo
possuindo um maior espaço de endereçamento, também observa-se que o
cabeçalho IPv6 não cresceu tanto em relação ao cabeçalho IPv4. Isto deve-se ao
fato do cabeçalho IPv6 ter sido simplificado. Alguns campos existentes no cabeçalho
IPv4 não estão presentes no cabeçalho IPv6, assim como novos campos foram
acrescentados.
Uma das importantes mudanças é a não existência do campo Options. No
IPv4, o campo Options ser utilizado para adicionar informações sobre vários serviços
adicionais, como informações relacionadas a encriptação [10]. Em função disso, o
tamanho do cabeçalho muda de acordo com cada situação, o que vem a dificultar o
Protocolo IPv6
8
processo de empacotamento com assistência por hardware, pois roteadores que
controlam comunicação de acordo com informações contidas em um cabeçalho IP
não podem julgar o tamanho do cabeçalho olhando apenas para o inicio do pacote.
A parte relacionada a serviços opcionais foi deslocada para o que é chamada de
extensões do cabeçalho (extension header) IPv6. Desta forma, o cabeçalho básico
ficou muito mais simples que o cabeçalho IPv4 e bem mais fácil de ser acelerado.
Outro campo não existente no cabeçalho IPv6 é o Header checksum. Ele
consiste num número utilizado para checar erros nas informações do cabeçalho e
ele é calculado utilizando os números existentes no cabeçalho [10]. Porém, o
problema com este campo está relacionado com outro campo, chamado TTL (Time
to Live). Este campo é alterado a toda vez que o pacote passa por roteador. Desta
forma, o Header checksum deve ser recalculado toda vez que passar por roteador.
Livrando os roteadores desta responsabilidade de recalcular o Header checksum,
poderia - se diminuir o delay gerado na passagem dos pacotes por eles. Como a
camada TCP se responsabiliza pela checagem de vários erros, é redundante a
existência do campo Header Checksum, por isso o mesmo foi removido do IPv6.
No IPv4 existe um campo de 8 bits chamado Service of Type . Este campo é
utilizado para representar a prioridade de um pacote. Este campo é composto pelos
campos TOS (Type of Service) e Precedence. O campo TOS especifica o tipo de
serviço, e contém o custo, Throughput, delay ou segurança do pacote. O campo
Precedence especifica o nível de prioridade do pacote, utilizando oito níveis que vão
de 0 a 7. O protocolo IPv6 possui em seu cabeçalho o campo Trafic Class que provê
a mesma função do campo Precedence.
O campo Flow Label foi estabelecido apenas no IPv6 e possui 20 bits.
Utilizando este campo, o remetente do pacote ou dispositivos intermediários podem
especificar uma série de pacotes, como por exemplo, um fluxo VoIP (Voz sobre IP),
e requisitar serviços especiais deste fluxo. Entretanto, os dispositivos que utilizarem
este campo não devem verificar apenas o endereço do remetente e do destinatários
dos pacotes (fluxo), mas devem verificar o número porta da qual o fluxo provém.
Abaixo, segue uma breve explicação de todos os campos existentes no
cabeçalho IPv6 básico:

Version - Com o tamanho de 4 bits, diz qual a versão do IP utilizado;
Protocolo IPv6

9
Flow Label - Campo de 20 bits. Utilizado para marcar um fluxo de
pacotes;

Payload Length - Inteiro sem sinal (16 bits). Tamanho do payload, isto
é, o resto do pacote que segue o cabeçalho IPv6 em octeto;

Next Header - Campo de 8 bits. Identifica o tipo de cabeçalho que
segue o cabeçalho IPv6. Usa o mesmo valor do protocolo IPv4;

Hop Limit - Inteiro sem sinal (8 bits). Decrementado de 1 a cada nó
que passa o pacote. O pacote é descartado caso o hop limit seja igual
a zero;

Source Address - Campo de 128 bits. O endereço do remetente
original;

Destination Address - Campo também de 128 bits. Contém o
endereço do destino do pacote (possivelmente não será o último
destino caso um cabeçalho opcional de roteamento esteja presente).
2.2.1.1 EXTENSÕES DO CABEÇALHO IPV6
No IPv4, informações acerca de serviços opcionais oferecidos pelo protocolo
são incorporadas ao campo Options. Em função disto, o tamanho do cabeçalho varia
de acordo com a situação.
O IPv6 resolve este problema utilizando extensões do cabeçalho, que são
colocadas após o cabeçalho básico. Desta forma, o cabeçalho básico possui um
tamanho fixo, de 40 bytes, e as extensões são opcionais.
Dispositivos intermediários, como roteadores, necessitam apenas manipular o
cabeçalho básico, sendo que em raras exceções, não necessita manipular as
extensões. Apenas os nós destinos necessitam processar as extensões de
cabeçalho [10]. Esta característica do cabeçalho IPv6 permiti uma maior eficiência
na manipulação dos pacotes feita pelos roteadores, pois os cabeçalhos básicos são
sempre os mesmos.
Protocolo IPv6
10
As extensões são divididas em vários tipos, dependendo da função de cada
uma. Na figura 2.2, pode se observar o campo Next Header. Este campo define se
existe ou não extensão de protocolo. Quando a extensão de protocolo não é
utilizada, o cabeçalho básico contém todas as informações da camada IP. Este
cabeçalho pode ser seguido por um cabeçalho de uma camada de nível mais alto,
como um cabeçalho TCP e o campo Next Header indica quem será o próximo
cabeçalho. Quando alguma extensão é utilizada, o campo Next Header indica qual a
extensão de cabeçalho segue o cabeçalho básico. Cada extensão de cabeçalho
contém o campo Next Header e ele indica o próximo cabeçalho que segue a
extensão. O nó final que recebe o pacote que contém as extensões as processa de
acordo com a ordem de colocação.
Existem seis tipos de extensões de cabeçalho, elas são:

Hop-by-Hop Option – Este cabeçalho, como o nome sugere,
especifica o processo que deve ser feito toda vez que um pacote passa
por um roteador. É possível de especificar vários tipo de processo. Um
exemplo é o uso da opção datagramas Jumbos (Jumbogram Option).
O campo Payload Length no cabeçalho IPv6 básico possui 16 bits,
então ele pode especificar no máximo 65536 octetos. Quando existe a
necessidade de se enviar pacotes maiores que este valor, utiliza-se a
opção de datagramas Jumbos, que permite especificar o tamanho do
pacote no cabeçalho de extensão.

Destination Option – Este cabeçalho é utilizado para especificar um
processo que deve ser executado pelo nó destino.

Routing – É utilizado para se determinar um caminho de roteamento.
Por exemplo, é possível especificar qual provedor de serviço de
Internet a ser utilizado. O nó remetente utiliza o cabeçalho Routing
para listar os endereços dos roteadores nos quais o pacote deve
passar.

Fragment – É usado quando a fonte do pacote IPv6 necessita enviar
um pacote maior que o MTU (Maximum Transminssion Unit) do
caminho, e descreve como o pacote deve ser reconstruindo a partir dos
Protocolo IPv6
11
fragmentos. MTU refere-se ao tamanho do maior pacote enviado
através de um caminho particular. Na Internet as limitações dos
caminhos de banda existentes entre uma fonte e um destino causam
problemas significativos. Tentar enviar um pacote por um caminho
limitado irá causar overflow. No IPv4, cada roteador no caminho do
pacote divide o pacote de acordo com a MTU setada para cada
interface. Porém este processo gera uma carga muito grande no
roteador. No IPv6, apenas a fonte do pacote divide o pacote. Ela
executa um processo chamado MTU Path Discovey, encontra a banda
mais limitada em determinado caminho e ajusta o tamanho dos
pacotes de acordo com a MTU deste caminho, sendo que os pacotes
serão do tamanho exato da limitação imposta pela banda. Porém, se a
fonte dos pacotes não adotar este mecanismo, os pacotes serão
divididos na camada IP e o cabeçalho Fragment será utilizado.

Authentication e ESP (Encapsulation Security Payload) – IPsec é
um mecanismo utilizado na camada IP. Quando IPsec é implementado,
o cabeçalho Authentication é utilizado para autenticar e assegurar a
integridade dos dados, e o ESP é utilizado para especificar
informações relacionadas à encriptação dos dados. IPsec coexiste com
IPv4, porém as informações são colocadas no campo Options do
cabeçalho IPv4 [12].
2.2.2 ENDEREÇO IPV6
2.2.2.1 ESQUEMA DE ENDEREÇAMENTO
Endereços IPv6 possuem tamanhos de 128 bits e são identificadores de
interfaces individuais e blocos de interfaces. Todos os tipos de endereços IPv6 são
associados a interfaces, não a nós. Como cada interface pertence a um único nó,
qualquer dos endereços de unicast das interfaces pode ser usado como um
Protocolo IPv6
12
identificador para o mesmo. Uma mesma interface pode ser associada a múltiplos
endereços IPv6 de qualquer tipo.
O endereço IPv6 é dividido em oito blocos de 16 bits. Cada bloco é convertido
em um número hexadecimal e são separados por “dois pontos” (:) . No IPv6, se
utiliza o conceito de CIDR (Classless Inter Domain Router) [9], sendo que no
endereço, uma barra (/) é utilizada para separar o endereço do tamanho em bits do
prefixo de rede.Os zeros a direita de um grupo podem ser omitidos, o que melhora a
visualização do endereço. Abaixo segue um exemplo:
2001:0DB8::/32
Existem três tipos de endereços IPv6:

Unicast - Endereço que identifica uma única interface. Existem dois tipos de
endereço Unicast: Global IPv6 Address e Link-Local Address.

Anycast - Identifica um bloco de interfaces, de tal forma que um pacote
enviado a um endereço de anycast será entregue a um elemento do bloco.

Multicast - Identifica um grupo de interfaces, tal que um pacote enviado a um
endereço de multicast é entregue a todos elementos do grupo.
Não existe endereço de broadcast no IPv6, esta função foi substituída pelo
endereço de multicast.
O IPv6 suporta endereços com número de bits 4 vezes maior que o endereço
IPv4 (128 - [16 bytes] vs. 32 - [4 bytes]). Isto significa que o IPv6 é 4 bilhões (296) de
vezes maior que o IPv4 (232), ou seja, a quantidade de endereços é de:
340.282.366.920.938.463.463.374.607.431.768.211.456
Esta é uma faixa de endereçamento extremamente grande. Teoricamente,
isto representa aproximadamente 665.570.793.348.866.943.898.599 endereços por
metro quadrado da superfície do nosso planeta (assumindo que a superfície da
Terra seja de 511.263.971.197.990 m2).
Em termos mais práticos, a tarefa de distribuição e roteamento de endereços
requer a criação de hierarquias eficientes para o uso dos endereços. Christian
Protocolo IPv6
13
Huitema fez uma análise [8] na qual avaliou a eficiência de outras arquiteturas de
endereçamento (inclusive o sistema telefônico francês, o sistema telefônico dos
E.U.A, a Internet atual que usa IPv4 e nós IEEE 802). Ele concluiu que o
endereçamento de 128 bits pode acomodar entre 8x1017 a 2x1033 nós, assumindo a
eficiência de blocos semelhantes em outras arquiteturas de endereçamento. Usando
a estimativa mais pessimista, assume que seria possível ter 1.564 endereços para
cada metro quadrado da superfície do planeta Terra. A estimativa otimista permitiria
3.911.873.538.269.506.102 de endereços para cada metro quadrado.
A estrutura do endereço IPv6 é definida pela RFC3587 (Request For
Comments) e pode ser visualizada na figura 2.3.
Figura 2.3
Especificamente, os endereços alocados globalmente possuem o prefixo
“001” (2000::/3).
Endereços de Link – Local são usados para identificar hosts num mesmo
segmento de rede, como prefixo dedicado “FE80::/10”. No endereço de 128 bits, O
Subnet ID, que possui 16 bits, é utilizado para fazer segmentação em redes internas
de organizações. O Interface ID, que possui 64 bits, é usado para identificar
interfaces de redes dos hosts . Quando o Interface ID é criado através do processo
de auto-configuração [14], ele utiliza a regra EUI-64 (Extended Unique Identifier),
que usa o endereço MAC (Media Acces Control). Os outros 48 bits do global IPv6
address são definidos através do mecanismo de alocação hierárquica de endereço
IPv6 [13].
Endereços Anycast não possuem um prefixo específico.Eles são definidos
como um caso especial de endereço Unicast. Especificamente, endereços Anycast
possuem o Interface ID com todos os bits em zero.
Endereços Multicast possuem o prefixo “FF00::/8”. Os primeiros oito bits
possuem o valor 1. Usa-se do 9º ao 12º bit para definir a natureza do endereço
Protocolo IPv6
14
multicast. Se o 12º bit tiver o valor zero, o endereço multicast é alocado
estaticamente por IANA (Internet Assigned Numbers Authority).
A figura 2.4 contém o status da alocação dos prefixos de endereço IPv6:
Figura 2.4
De acordo com esta tabela, existe espaço reservado para endereços NSAP
(Network Service Access Point), endereços IPX (Internetwork Packet Exchange) e
neutral-interconect address. O espaço de endereço restante está reservado para uso
futuro. Pode ser usado para expansão (por exemplo, provedor de endereço
adicional, etc.) ou novos usos (por exemplo, identificadores). Observe que não foram
Protocolo IPv6
15
tratados os endereços anycast. Isso porque eles são alocados fora do espaço de
endereço de unicast.
Inicialmente serão usados apenas 15% do espaço do novo endereçamento,
restando 85% para uso futuro.
2.3 ROTEAMENTO DE PACOTES IPV6
O roteamento no IPv6 é semelhante ao roteamento no IPv4 com CIDR, a não
ser pelo fato dos endereços do IPv6 serem de 128 bits em vez dos 32 bits do IPv4.
Assim, com extensões muito simples, todos os algoritmos de roteamento do IPv4
(OSPF, RIP, IDRP, ISIS, etc.) podem ser usados para rotear pacotes IPv6.
O IPv6 também inclui extensões simples de roteamento que permitem novas
funcionalidades de roteamento poderosas, tais como:

Seleção de provedor (baseado em política, desempenho, custo, etc.) ;

Mobilidade de host (rotas para nova localização) ;

Auto - reendereçamento (rota para novo endereço).
A nova funcionalidade de roteamento é obtida criando-se seqüências de
endereços IPv6 usando as opções de roteamento do mesmo. As opções de
roteamento são usadas pela origem do IPv6 para listar um ou vários nós
intermediários (ou grupos de topologia) que devem ser "visitados" durante o
transporte do pacote. Esta função é muito semelhante às opções do IPv4 Loose
Source e Record Router.
Para tornar o endereçamento seqüencial uma função geral, os hosts IPv6 são
solicitados, em muitos casos, a fazer um roteamento reverso dos pacotes recebidos
(se o pacote IPv6 for autenticado com sucesso usando a autenticação de
cabeçalho), invertendo a seqüência de endereços para devolver o pacote a seu
originador. Esta é a chave que permite aos hosts trabalharem com as novas
características como seleção de provedor ou endereços estendidos.
Protocolo IPv6
16
Abaixo, três exemplos mostram como as sucessões de endereço podem ser
usadas. Nestes exemplos, seqüências de endereços são mostradas por uma lista de
endereços individuais separados por vírgula. Por exemplo:
SRC, I1, I2, I3, DST
O primeiro endereço é o endereço fonte, o último é o endereço destino e os
do meio são endereços intermediários.
Para estes exemplos, vamos assumir que dois hosts, (H1 e H2) desejam
comunicar-se. Ambos estão conectados aos provedores P1 e P2. Um terceiro
provedor PR (wireless), está conectado aos provedores P1 e P2 também. Isto pode
ser visto na figura 2.5
Figura 2.5
O caso mais simples (sem o uso de seqüência de endereços) é quando H1
quer enviar um pacote para H2 contendo os endereços:
H1, H2
Protocolo IPv6
17
Quando H2 for responder, ele inverte os endereços e constrói um pacote que
contém os endereços:
H2, H1
Neste exemplo, poderia ser usado qualquer provedor, e nem H1 nem H2
poderia selecionar por qual provedor os pacotes deveriam ser enviados e recebidos.
No entanto, se H1 decidir usar uma política obrigando que toda comunicação
entre ele e H2 devam ser transportadas via provedor P1, ele construiria um pacote
com a seguinte seqüência de endereços:
H1, P1, H2
Isto garante que quando H2 for responder para H1, ele inverterá a rota e a
resposta também seria transportada via P1. Os endereços de resposta em H2
seriam:
H2, P1, H1
Se H1 tornar-se móvel (um laptop) e mudasse para o provedor PR, poderia
manter (sem quebrar qualquer conexão de transporte) a comunicação com H2,
enviando pacotes que contêm a seqüência de endereço:
H1, PR, P1, H2
Isto garante que, quando H2 responder, ele usará a política de H1. A
seqüência de endereços invertida seria:
H2, P1, PR, H1
A facilidade de seqüenciamento de endereço do IPv6 pode ser usada para
selecionar o provedor, prover mobilidade e reendereçamento. Trata-se de uma
característica simples, mas poderosa.
Protocolo IPv6
18
2.4 APLICAÇÃO DE QUALIDADE DE SERVIÇO COM PROTOCOLO IPV6
A Etiqueta de Fluxo (Flow Label) e os campos de prioridade (Prior) no
cabeçalho IPv6 podem ser usados por um host para identificar quais pacotes pedem
manipulação especial através do roteador. Esta capacidade é importante para dar
suporte a aplicações que requerem algum grau de processamento consistente,
retardo e/ou velocidade. Estas aplicações são comumente descritas como multimídia
ou aplicações em tempo real.
O campo flow label, presente no cabeçalho do IPv6, possui 24 bits e pode ser
utilizado para identificar pacotes que requerem tratamento especial pelos roteadores
IPv6, como qualidade de serviço fora do padrão ou serviços de tempo real.
Esta funcionalidade do IPv6 está sendo pesquisada e pode sofrer mudanças.
Hosts e roteadores que não suportam a funcionalidade de flow label devem preencher
o campo com zeros quando forem a origem do pacote e devem ignorar o campo
quando receberem um pacote.
Um fluxo (flow) é uma sucessão de pacotes enviada de uma origem para um
destino (unicast ou multicast), e onde a origem define que os roteadores
intermediários devem tratar o pacote de maneira especial. A forma de tratamento
especial poderia ser carregada no roteador através de um protocolo de controle, como
um protocolo de reserva de recursos ou por informações contidas dentro dos pacotes
do fluxo, por exemplo, uma opção de hop-by-hop.
Podem haver múltiplos fluxos ativos de uma fonte para um destino, como
também tráfego que não é associado a qualquer fluxo. Um fluxo é identificado
exclusivamente pela combinação de um endereço da fonte e uma etiqueta de fluxo
(flow label) preenchido com valores diferente de zeros. Pacotes que não requerem
tratamento especial, ou seja, que não pertencem a um fluxo, possuem o campo flow
label preenchido com zeros.
O campo flow label é preenchido pelo host que origina o fluxo. Devem ser
escolhidas novas "etiquetas de fluxo" (randomicamente, entre 1 e FFFFFF). O
propósito da alocação randômica é fazer com que qualquer conjunto de valores
Protocolo IPv6
19
atribuídos dentro do campo flow label seja satisfatório para ser usado como uma
chave hash pelo roteador, para verificar o estado associado ao fluxo.
Todos os pacotes que pertencem ao mesmo fluxo devem ser enviados com o
mesmo endereço de origem, o mesmo endereço de destino e o mesmo flow label. Se
algum pacote incluir em seu cabeçalho a opção de hop-by-hop, então todos os
pacotes devem incluir a esta mesma opção em seus cabeçalhos (com exceção do
próximo campo de hop-by-hop do cabeçalho). Se qualquer pacote incluir um
cabeçalho de roteamento, então todos os pacotes devem incluir o mesmo cabeçalho
(com exceção do campo próximo cabeçalho no cabeçalho de roteamento). A inclusão
de roteador e destino é permitida, mas não requerida, para verificar se esta condição
foi satisfeita. Se uma violação for detectada, a origem deverá ser informada através de
um pacote de ICMP (Internet Control Message Protocol) com o parâmetro de
problema preenchido com o código 0, apontando o octeto de mais alta ordem do flow
label (isto é, offset 1 dentro do pacote IPv6) [5].
Os roteadores são livres para "setar" um fluxo para qualquer estado, até
mesmo quando não existir nenhum tipo de informação que explicitamente faça isto via
um protocolo de controle, uma opção de hop-by-hop ou outro meio. Por exemplo, ao
receber um pacote de uma fonte com um flow label desconhecido, um roteador pode
processar seu cabeçalho IPv6 e qualquer cabeçalho de extensão como se o flow label
fosse zero. Este processamento inclui determinar o próximo salto e outras ações como
atualizar a opção de salto, avanço de ponteiro ou decidir como enfileirar os pacotes,
baseado no campo prioridade. O roteador pode decidir, ainda, se vai armazenar estas
informações em cache, usando o endereço de origem e o flow label como chave. Os
pacotes seguintes com o mesmo endereço de origem e o mesmo flow label podem ser
roteados a partir da informações armazenadas no cachê, sem a necessidade de nova
análise do cabeçalho.
O campo Prior, de 4 bits, permite que uma origem especifique a prioridade de
entrega para determinados pacotes em relação a outros pacotes da mesma origem.
Os valores do campo prioridade estão divididos em dois grupos:
Protocolo IPv6

20
0 a 7: são utilizados exclusivamente para definir a prioridade de tráfego
para o qual a origem está provendo controle de congestionamento, ou
seja, tráfego que volta devido ao congestionamento, como TCP.

8 a 15: são utilizados para especificar a prioridade de tráfego que não
possuem resposta de volta. Ex.: pacotes de aplicações em tempo real,
que são enviados a uma taxa constante.
Para o controle do congestionamento do tráfego, os seguintes valores de
prioridade são recomendados:
0 Uncharacterized traffic;
1 "Filler" traffic (Ex.: netnews);
2 Unattended data transfer (Ex.: e-mail);
3 (Reservado)
4 Attended bulk transfer (Ex.: FTP, HTTP, NFS);
5 (Reservado)
6 Interactive traffic (Ex.: telnet, X);
7 Internet control traffic (Ex.: protocolos de roteamento, SNMP).
Para tráfego que não possuem controle de congestionamento, a prioridade
mais baixa (valor 8) deve ser usada para pacotes que serão descartados caso exista
um congestionamento (Ex.: tráfego de vídeo de alta fidelidade), e um valor mais alto
(15) deve ser usado para pacotes que serão descartados com menor facilidade (Ex.:
tráfego de áudio de baixa fidelidade). Não existe nenhuma relação entre os valores
das prioridades do tráfego controlado e aquele não controlado.
2.5 MECANISMOS DE TRANSIÇÃO
O
objetivo
principal
dos
mecanismos
de
transição
é
permitir
a
interoperabilidade entre IPv6 e IPv4. Um segundo objetivo é a distribuição de hosts e
roteadores IPv6 de forma rápida e com alguma interdependência. Um terceiro ponto
Protocolo IPv6
21
está relacionado com a facilidade de transição, ela deve ser simples para os
usuários finais, administradores de sistemas e operadores de rede ,entre outros.
Os mecanismos de transição para o IPv6 são compostos de um grupo de
protocolos implementados em hosts e roteadores, juntamente com algumas
diretrizes operacionais com o objetivo de minimizar os impactos decorrentes da
transição [8].
Algumas das características dos mecanismos de transição são:

Pode-se migrar hosts e roteadores IPv4 para IPv6 sem a necessidade
de migração de toda a rede, ou seja, um de cada vez. Da mesma
forma, pode-se realizar a instalação de novos hosts e roteadores IPv6;

Requisitos mínimos para migração. A única condição prévia para
migração de hosts é que o servidor de DNS deve ser adequado para
IPv6, antes disso. Para a migração de roteadores não existem prérequisitos;

Endereçamento fácil. Quando é realizada a migração de hosts e
roteadores para IPv6, estes elementos podem continuar a utilizar seus
antigos endereços IPv4. Eles não precisam ser configurados com os
endereços novos;

O custo inicial de migração é baixo. Necessita-se de pouco ou nenhum
trabalho de preparação para migração de sistemas IPv4 para IPv6;

Uma estrutura de endereçamento que encapsula os endereços IPv4
dentro do IPv6;

Um modelo onde hosts e roteadores terão as duas pilhas de
protocolos, IPv4 e IPv6, durante a fase de transição;

Uma técnica de encapsulamento onde pacotes IPv6 serão embutidos
dentro de cabeçalhos IPv4, permitindo o transporte dos pacotes por
roteadores que ainda não migraram para IPv6.
Protocolo IPv6
22
Os mecanismos de transição, asseguram que hosts com IPv6 podem
comunicar-se com hosts IPv4 a qualquer momento durante a fase de transição, e
permite que, dentro de um âmbito limitado, o tempo de inter-operação seja
indefinido. Esta característica protege os investimentos realizados em tecnologia
IPv4 e garante que ele não ficará obsoleto. Máquinas que utilizam conexões
limitadas (por exemplo, impressoras) não precisam migrar para IPv6.
Estes mecanismos permitem que os fabricantes de hosts e roteadores
implementem o IPv6 em suas linhas de produtos conforme suas prioridades. Permite
também que usuários finais e administradores de redes implementem IPv6 conforme
suas conveniências.
Atualmente, existem dois mecanismos principais de transição:

O uso de ilhas IPv6, onde as ilhas são interconectadas por túneis IPv4,
sendo que os pacotes IPv6 são encapsulados por pacotes IPv4.

O uso de redes com roteadores dual-stack, onde a interligação entre as
redes IPv6 é feita utilizando o próprio protocolo, e esses roteadores
podem rotear pacotes IPv4.
Dos dois mecanismos encontrados, o que mais se adequou a realidade do
PoP-PI foi o uso de roteadores dual-stack, pois o backbone da RNP já possui
suporte a redes nativas IPv6.
3
IPSEC: SEGURANÇA NO IPV6
IPsec ou IP security, apresenta funções de segurança na camada IP. Por
padrão, IPsec é suportada tanto por IPv4 quanto por IPv6, porém, no IPv6 ele é
definido como um atributo obrigatório [11].
3.1 ARQUITETURA DO IPSEC
A arquitetura do IPsec é definida na RFC2401. IPsec é implementado através
dos seguintes componentes:

Protocolos de segurança AH (Authentication Header) e ESP;

Dois modos de operação: Modo Túnel (Tunnel Mode) e Modo de
Transporte (Transport Mode);

SPD (Security Policy Database) para gerenciar politicas de segurança
(SP) e o selecionador que combine SP com tráfico de dados atuais;

SAD (Security Association Database) para conter associações seguras
(AS), parâmetros necessários para comunicação de conexões IPsec e
implementação do IPsec;

Protocolos
de
troca
de
chaves.
IPsec: Segurança no IPv6
24
A Figura 3.1 apresenta o roadmap para especificações que descrevem o uso
de novos algoritmos de autenticação e criptografia definidas pelo protocolo
ESP (RFC 2406 - Encapsulating Security Payload), e de autenticação
definidas pelo protocolo AH (RFC 2402 - Authentication Header)
Figura 3.1
3.2 PROTOCOLOS DE SEGURANÇA
IPsec define dois tipos de protocolo de segurança: AH e ESP. Ambos são
definidos como extensão do cabeçalho básico IPv6. Ambos ou apenas um dos dois
protocolos são utilizados para implementar Ipsec [11]. A Figura 3.2 apresenta a
posição dos cabeçalhos AH e ESP entre as extensões do cabeçalho IPv6.
Figura 3.2
Protocolo IPv6
25
3.2.1 AUTHENTICATION HEADER (AH)
AH é utilizado para garantir a integridade dos pacotes. Ele utiliza um algoritmo
de autenticação e uma chave combinados por um remetente e um destinatário para
calcular o IVC (Integrity Value Check ) de um pacote IP e adiciona o resultado como
dado de autenticação. O destinatário pode calcular o IVC dos pacotes recebidos
para checar a integridade dos pacotes [2]. O formato do AH é apresentado na Figura
3.3.
Figura 3.3
Os campos do cabeçalho do AH são descritos como:

Next Header: contém o identificador do protocolo do próximo
cabeçalho.

Payload Length: comprimento do payload (conteúdo).

Reserved: 16 bits reservados para extensão do protocolo.

SPI (Security Parameter Index): este índice, em conjunto com o
protocolo AH e o endereço fonte, identifica unicamente uma SA para
um determinado pacote.

Sequence Number: contador que identifica os pacotes pertencentes a
uma determinada AS (usado como mecanismo anti-replay).

Authentication Data: campo de comprimento variável que contém o
ICV (Integrity Check Value) para este pacote, que é calculado seguindo
o algoritmo de autenticação usado, definido pela AS
Protocolo IPv6
26
AH não se limita a utilizar apenas um algoritmo de autenticação, pode-se
utilizar várias opções combinadas antecipadamente entre o emissor e o receptor.
Alguns algoritmos mais utilizados são HMAC-MD5 (Keyed-Hashing for Message
Authentication- Message-Digest Algorithm) e HMAC-SHA1(Keyed-Hashing for
Message Authentication - Secure Hasing Algorithm).
AH não prover encriptação, logo, ele não oferece confidencialidade dos
dados.
O uso do AH previne ataques do tipo:

Replay: a atacante intercepta um pacote válido e autenticado
pertencente a uma conexão, replica-o e o reenvia, "entrando na
conversa". A utilização do campo Sequence Number ajuda na
prevenção a este tipo de ataque, pois permite numerar os pacotes que
trafegam dentro de uma determinada AS.

Spoofing: o atacante assume o papel de uma máquina confiável para
o destino e, dessa forma, ganha privilégios na comunicação. A
utilização de mecanismos de autenticação previne este tipo de ataque.

Connection hijacking: o atacante intercepta um pacote no contexto
de uma conexão e passa a participar da comunicação. A utilização de
mecanismos de autenticação previne este tipo de ataque.
3.2.2 ENCAPSULATING SECURITY PAYLOAD (ESP)
ESP oferece encriptação e autenticação dos dados de um pacote. Ele usa um
algoritmo de encriptação combinado entre o emissor e o receptor dos pacotes para
encriptar o payload (carga) dos pacotes. Além disso,
este cabeçalho ESP
encriptado possui o ICV, calculado com um algoritmo de autenticação combinado
entre o emissor e o receptor. O ICV serve para autenticar os dados do pacote [3]. O
formato do ESP é apresentado na Figura 3.4.
Protocolo IPv6
27
Figura 3.4
Os campos do cabeçalho do ESP são descritos como:

Next Header: contém o identificador do protocolo do próximo
cabeçalho

SPI (Security Parameter Index): este índice, em conjunto com o
protocolo AH e o endereço fonte, identifica unicamente uma AS para
um determinado pacote.

Sequence Number: contador que identifica os pacotes pertencentes a
uma determinada SA (usado como mecanismo anti-relay)

Payload Data e Padding: contém os dados cifrados e os parâmetros
utilizados pelo algoritmo de criptografia usado, definido pela AS.

Authentication Data: campo de comprimento variável que contém o
ICV (Integrity Check Value) para este pacote, calculado seguindo o
algoritmo de autenticação usado, definido pela AS.
Encriptação
e
integridade
dos
dados
podem
ser
implementadas
separadamente, mas não é recomendado implementar encriptação sem integridade
de dados, porque desta forma não se oferecerá garantias de que a encriptação foi
feita pela parte legítima [11].
Precisa-se dizer que ESP não assegura integridade total do pacote assim
como AH faz, ele apenas protege o payload dos pacotes.
ESP pode utilizar várias opções de algoritmos de encriptação como DESCBC, 3DES-CBC e AES-CBC.
Protocolo IPv6
28
O uso do ESP previne ataques do tipo:

Replay: através da utilização do campo Sequence Number, de
maneira análoga ao AH;

Particionamento de pacotes cifrados: que é o que acontece quando
o atacante obtém partes de pacotes cifrados e consegue montar um
pacote que pode ser aceito por um dos membros da conexão. O uso
de autenticação previne este tipo de ataque;

Sniffer: o atacante obtém os pacotes que trafegam na rede. A
utilização da criptografia previne este tipo de ataque.
3.3 MODOS DO IPSEC
Os protocolos AH e ESP possuem dois modos de operação:

Modo túnel: Proporciona proteção ao pacote IP. Para isso, depois da
adição dos campos de ESP ao pacote IP, todo o pacote é tratado como
o módulo de dados de um novo pacote IP. Deste modo, pode ser
usado para enviar dados cifrados através de um túnel, o que permite
enviar dados independentemente da infra-estrutura utilizada.
Um
exemplo de utilização seria o envio de pacotes IP através de canais
virtuais criados numa rede IP pública, como Internet e assim pode ser
dada segurança a um grupo de nodos que não implementam IPSEC.A
Figura 3.5 apresenta o modo túnel;
Figura 3.5

Modo transporte: Proporciona proteção principalmente aos protocolos
da camada superior.
É utilizado na maioria das vezes em
Protocolo IPv6
29
comunicações entre cliente e servidor. Neste modo, a informação do
protocolo da camada de transporte é cifrada, adicionando-lhe um novo
cabeçalho IP não cifrado, pelo que se torna vantajoso em redes
pequenas, onde os servidores e os nós existentes implementam
IPSEC.A Figura 3.6 apresenta o modo transporte.
Figura 3.6
3.4 FUNCIONAMENTO DO IPSEC
O protocolo IPSec opera num gateway ou num host, com os requisitos de
segurança estabelecidos por um banco de dados de política de segurança (SPD Security Policy Database) mantido pelo usuário, pelo administrador da rede ou por
uma aplicação operando dentro de limites pré-definidos. Pode ser utilizado para
proteger uma ou mais conexões entre um par de hosts, entre dois gateways de
segurança ou entre um host e um gateway [11].
Os pacotes IP são selecionados através de três formas de processamento
definidas por seletores. As três formas são: .

Discard: pacote é descartado;

Bypass: pacote despreza os serviços IPSec;

Apply: pacote ou é submetido aos serviços IPSec.
Os seletores utilizam o pacote IP e as informações do cabeçalho da camada
de transporte, comparando-os com as entradas do banco de dados SPD. Com base
nas políticas aplicadas e identificadas pelos seletores, cada pacote é manipulado
seguindo uma das três formas descritas anteriormente .
Como citado anteriormente, a arquitetura básica IPSec é formada pelos
protocolos ESP e AH. O protocolo AH fornece integridade não orientada a conexão,
autenticação da origem dos dados e serviço opcional anti-replay. Já o protocolo ESP
provê confidencialidade (criptografia) e também pode prover as mesmas funções do
Protocolo IPv6
30
protocolo AH já citadas. Ambos são meios para controle de acesso baseado na
distribuição de chaves e no gerenciamento do fluxo de tráfego referentes aos
protocolos de segurança. Podem ser empregados independentemente um do outro,
ou em associação, para que um conjunto de serviços de segurança seja
disponibilizado em redes IPv4 e IPv6.
Há a possibilidade do usuário ou administrador controlar a granularidade dos
serviços IPSec oferecidos. Por exemplo, pode-se criar um único túnel de criptografia
que transporta todos os dados entre dois gateways de segurança, como
apresentado na Figura 3.7, ou podem ser criados túneis separados para cada
conexão TCP entre os pares de hosts que se comunicam através desses gateways.
Figura 3.7
Em termos de desenvolvimento, o conjunto de protocolos IPSec pode ser
implementado de três formas. A primeira refere-se à implementação IPSec na pilha
nativa IP, aplicável tanto em hosts como em gateways. O pré-requisito para isso é o
acesso ao código fonte do protocolo IP. A segunda forma de implementação,
conhecida como Bump-in-the-stack (BITS) é usualmente utilizada em hosts, onde o
IPSec é implementado sob o protocolo IP, entre este e o driver de rede local. Neste
caso, o acesso ao código fonte IP não é necessário. Bump-in-the-wire (BITW) é a
Protocolo IPv6
31
terceira forma de implementação IPSec, na qual é utilizada uma placa processadora
de criptografia tanto em hosts como em gateways.
3.5 ASSOCIAÇÃO DE SEGURANÇA
O conceito de Associação de Segurança - AS, (Security Association - SA) é
um dos conceitos fundamentais do IPSec. Uma associação de segurança é uma
"conexão" que viabiliza o tráfego de serviços seguros. A segurança dos serviços é
garantida pela utilização dos protocolos de segurança (AH, ESP, ou ainda de
ambos). Observa-se que, no caso de se usar AH e ESP em conjunto, mais de uma
AS deve ser definida [11].
Uma associação de segurança é identificada unicamente por três parâmetros:
o SPI (Security Parameter Index), o endereço IP de destino e o identificador do
protocolo (AH ou ESP).
O SPI é um número que identifica uma AS, sendo definido durante a
negociação que antecede o estabelecimento da mesma. Assim, todos os membros
de uma AS devem conhecer o SPI correspondente e usá-lo durante a comunicação.
O endereço IP de destino pode ser unicast, broadcast (no caso do uso de
Ipsec no IPv4) ou ainda multicast. No entanto, para a definição dos mecanismos de
gerenciamento de AS, o IPSec assume um endereço destino unicast, estendendo as
definições para os casos de broadcast e multicast.
O identificador do protocolo é o número 51 para o AH e o número 50 para o
ESP.
Ressalta-se que a negociação para o estabelecimento de uma AS envolve a
definição da chave, os algoritmos de criptografia e autenticação e os parâmetros
usados por estes algoritmos.
Uma AS pode ser estabelecida nos dois modos já apresentados: Transporte e
Túnel.
No Modo Transporte, uma Associação de Segurança é estabelecida entre
dois hosts. No IPv4, o cabeçalho do protocolo de segurança é inserido entre o
cabeçalho IP e os cabeçalhos dos protocolos de mais alto nível, como TCP ou UDP.
Protocolo IPv6
32
Por outro lado, no IPv6, o cabeçalho do protocolo de segurança é inserido após o
cabeçalho básico IPv6 e dos cabeçalhos de extensão end-to-end, e antes dos
protocolos de mais alto nível.
No caso do ESP, uma AS em modo transporte provê serviços de segurança
somente para os protocolos de mais alto nível, não incluindo o cabeçalho IP ou os
cabeçalhos de extensão que precedem o ESP. No entanto, o AH estende a proteção
a estes cabeçalhos. Isto se deve ao fato do ESP cifrar os dados que o sucedem no
pacote, além de autenticar apenas a "porção ESP" do pacote, enquanto que o AH
autentica o pacote todo.
Uma AS em Modo Túnel, é uma AS aplicada a um túnel IP. Quando, pelo
menos um dos membros de uma AS for um gateway de segurança, ou seja, for um
gateway que implementa IPSec, então a AS deverá ser estabelecida em modo túnel.
Em uma AS no modo túnel, o chamado cabeçalho IP externo especifica o
destino no contexto do IPSec, e o cabeçalho IP interno especifica o destino real do
pacote IP. Neste caso, os cabeçalhos dos protocolos de segurança são inseridos
depois do cabeçalho IP externo e antes do cabeçalho IP interno. Assim, de modo
análogo às considerações feitas para o modo transporte, em modo túnel, o AH provê
segurança para o cabeçalho IP externo, e conseqüentemente para os protocolos de
mais alto nível, assim como para o pacote IP "tunelado". Por outro lado, quando o
ESP é usado em modo túnel, apenas a segurança do pacote IP "tunelado" é
assegurada.
4
TESTES E EXPERIÊNCIAS
Com o intuito de se fazer testes com o protocolo IPv6, foi montado na FAPEPI
um ambiente de testes, que consistia em uma intranet baseada no protocolo IPv6.
Primeiramente, configurou-se a intranet, visando posteriormente conectar esta
intranet ao backbone da RNP.
4.1 AMBIENTE DE TESTES
Foram utilizados os seguintes equipamentos:

Três computadores IBM NetVista, com 196 MB de memória RAM,
processador Intel Pentium III de 800 MHz, HD 20 GB , placa ethernet
VIA compatible Fast Ethernet Adaptor;

Um switch IBM 8224, com 24 portas;

Roteador CISCO SYTEMS 3700 series.

Sistema Operacional Linux Fedora Core 2, Versão do kernell 2.6-7.

Software BIND 9.3.2
Testes e Experiências
34
4.2 TESTE COM O SISTEMA OPERACIONAL WINDOWS XP
Inicialmente, visando a facilidade de uso por pessoas leigas, tentou-se utilizar
o sistema operacional Windows XP, pois o mesmo possui interface muito intuitiva.
Porém, constatou-se que o Windows XP e nenhum outro Windows da suporte aos
serviços, mais utilizados em redes, nativamente em IPv6. Basicamente, ele da
suporte ao endereçamento IPv6. Desta forma, a aplicação deste SO não seria
conveniente, pois o objetivo deste trabalho é a implementação de redes IPv6
nativamente.
Além de tudo, o Windows não da suporte a redes IPv6 que utilizam dual-stack
como mecanismo de transição. Após apreciação do help do Windows XP,pode-se
observar que a
Microsoft desenvolveu uma solução proprietária, chamada
TEREDO, a qual utiliza a idéia de ilhas IPv6 conectadas por túneis IPv4.
4.3 TESTE COM O SISTEMA OPERACIONAL KURUMIN LINUX 3
Após a constatação de que o Windows, em nenhuma de suas versões, seria
adequado para uso na experiência, buscou-se o Sistema Operacional Linux, através
da distribuição Kurumin Linux, desenvolvida e muito popular no Brasil. Deve ser
salientado que esta Distribuição possui uma interface bastante amigável, em
comparação às interfaces de outras distribuições Linux. Porém, após testes,
constatou-se que essa distribuição não era robusta o suficiente para ser utilizada no
projeto.
4.4 TESTE COM O SISTEMA OPERACIONAL LINUX FEDORA CORE 2
O Linux Fedora Core 2 se mostrou o SO mais robusto dentre os testados,
sendo que o mesmo já dá suporte nativo a IPv6, também a todos os serviços e ao
mecanismo de transição dual-stack. Por estes motivos, ela foi escolhida para ser
usada no ambiente de testes.
4.5 ESTRUTURAÇÃO DA REDE
Após a escolha da plataforma a ser utilizada, iniciou-se a configuração da
intranet.
Testes e Experiências
35
Inicialmente, instalou-se o Linux Fedora Core 2 nas três maquinas designadas
e aproveitou-se a estrutura do laboratório da FAPEPI para a estruturação da intranet.
Após instalado o SO nas máquinas, partiu-se para a configuração dos
endereços IPv6 em cada máquina e também do gateway da intranet, no caso foi
utilizado uma das máquinas (Angus) como roteador default das outras duas
(Aprediz1 e Aprendiz2). Isto pode ser verificado na Figura 7.1.Na máquina Angus
foram configuradas as rotas necessárias para o funcionamento da intranet, pois os
dois hosts (Aprediz1 e Aprendiz2) foram configurados em subredes diferentes..
Devido ao fato de não se ter encontrado qualquer versão de DHCPv6 que
funcionasse satisfatoriamente, os endereços foram atribuídos estaticamente, foram
atribuídos diretamente em cada host.
Utilizou-se o software BIND 9.3.2 para resolver os nomes no servidor de DNS,
sendo que o mesmo foi instalado também na máquina Angus.
A seguir, a Figura 4.1 mostra a estruturação física da rede:
Internet
Switch Principal
1/31/2005
IBM 8224 – 24 portas
Roteador de borda
1/31/2005
Cisco 3700 series
N° Ip : 200.137.160.129
pi.bb3.rnp.br
Aprendiz1
Nº Ipv6:
Aprendiz2
1/31/2005
Nº Ipv6:
Angus
1/31/2005
Nº Ipv6:
Figura 4.1
1/31/2005
Testes e Experiências
36
A meta inicial, de configurar a intranet, foi alcançada, conseguindo-se utilizar
o ping6 para pigar os hosts. Porém, não conseguiu-se finalizar o trabalho, pois o
roteador de borda (Cisco 3700 Series) não possuía instalado o IOS (Inter Opereting
System) com a versão que dava suporte a interfaces IPv6, fato esse que
impossibilitou a ligação com o backbone da RNP e os testes com o servidor de DNS.
Também ficou imcompleto o tutorial, pois como não pode-se testar o servidor de
DNS, não foi incluído no tutorial a parte que fala da configuração do BIND 9.3.2 .
5
CONCLUSÕES E TRABALHOS FUTUROS
Neste capítulo serão expostas as principais conclusões extraídas com a
realização deste trabalho de pesquisa. Serão apresentadas também as principais
contribuições oferecidas pelo autor, bem como algumas sugestões para trabalhos
futuros.
Durante o trabalho, ficou patente que o IPv6 será muito importante nos
próximos anos. Por enquanto, um backbone experimental com IPv6, o 6bone , está
sendo construído. O Brasil está participando deste projeto através da RNP com
recursos do CNPq,e o Piauí está inserido neste projeto através da FAPEPI, que
hospeda o PoP-PI.
Além de resolver a questão do espaço de endereçamento, o IPv6 também
melhorou o suporte a gerenciamento de endereços, qualidade dos serviços e
segurança quando comparado ao IPv4.
No que se refere diretamente ao quesito segurança, 0 IPSec surgi para suprir
a demanda de segurança a nível de IP, tanto no IPv4 quanto no IPv6, sendo que no
IPv6 ele é um atributo obrigatório.Vários pontos devem ser analisados para uma
implementação correta visando o melhor custo benefício possível à ser alcançado.
Para os casos em que se exige apenas a autenticação, ou ainda, onde a
confidencialidade não deve ser usada, é recomendada a utilização do AH. No
Conclusões
38
entanto, a situação ideal é a utilização de autenticação e confidencialidade, ou seja,
a utilização do AH e ESP em conjunto. Mais especificamente, é recomendado o uso
do ESP "dentro" do AH, permitindo que o destino verifique a autenticidade do
pacote antes de decifrá-lo, ou ainda, verifique autenticidade e decifre o pacote em
paralelo.
O tutorial desenvolvido, embora incompleto, oferece conteúdo suficiente para
a implementação de uma intranet IPv6.
5.1 CONTRIBUIÇÕES
Como contribuições deste trabalho merecem destaque as seguintes:

Um estudo detalhado sobre o protocolo IPv6;

O estudo das tecnologias de transição do protocolo IPv4 para o protocolo
IPv6;

Análise das plataformas existentes que dão suporte ao IPv6;

Criação de um tutorial que serve como guia para configuração de intranets
IPv6.
5.2 TRABALHOS FUTUROS
Sugere-se uma investigação mais detalhada a cerca de softwares de DHCP
que dêem suporte a IPv6 ou até mesmo o desenvolvimento de um software deste
tipo.
Também sugere-se uma complementação do tutorial aqui apresentado, com
tópicos referentes a configuração de DNS, NAT-PT( Network Address Translation
Protocol), Telnet, Web Services e servidor de E-mail (nas suas versões v6).
Vale ressaltar que se iniciou a configuração de um servidor DNS, porém
devida a falta de suporte do roteador de borda da FAPEPI ao protocolo IPv6, não foi
possível o teste do mesmo.
Estudos do NAT-PT foram iniciados, porém não foi possível a configuração
deste serviço pelos mesmos motivos citados acima.
REFERÊNCIAS BIBLIOGRÁFICAS
[1]
ATKINSON R., " IPv6 Security Architecture" Internet Draft, março 1995.
[2]
ATKINSON R., "IP Authentication Header", Internet Draft, março 1995
[3]
ATKINSON R., "IPng Encapsulating Security Payload (ESP)", março 1995.
[4]
BRADNER S., A. Mankin, "The Recommendation for the IP Next
Generation Protocol",RFC 1752, janeiro 1995.
[5]
CONTA A., S. Deering, "ICMP for the Internet Protocol Version 6
(IPv6)",Internet Draft, janeiro 1995.
[6]
DEERING S., R. Hinden, "Internet Protocol, Version 6 (IPv6)
Specifications",RFC 1883, abril 1996.
[7]
GILLIGAN R., E. Nordmark, "Transition Mechanisms for IPv6 Hosts and
Routers",março 1995.
[8]
HINDEN R., "IPng Next Generation Overview", maio 1995.
[9]
HINDEN R., S. Deering, "IP Version 6 Addressing Architecture", RFC1884,
abril 1996.
Referências Bibliográficas
[10]
30
HOSAKA, Toshiyuki. “IPv6 address allocation and policy”. Disponível em <
http://www.ipv6style.jp/en/tech/20041117/index.shtml >. Acessado em:
Janeiro 2005.
[11]
KANDA, Mitsuru. “IPsec: a basis for IPv6 security”, Disponível em <
http://www.ipv6style.jp/en/tech/20040707/index.shtml>. Acessado em:
Março 2005.
[12]
REKHTER Y., T. Li, "An Archicture for IPv6 Unicast Address
Allocation",Internet Draft, março 1995.
[13]
REKHTER Y., P. Lothberg, "An IPv6 Global Unicast Address Format",
Internet Draft, março 1995.
[14]
THOMSON S., "IPv6 Address Autoconfiguration", Internet Draft, fevereiro
1995.
ANEXO I
1
TUTORIAL PARA IMPLANTAÇÃO DE INTRANET IPV6
O tutorial engloba as seguintes fases:

Configuração dos hosts;

Configuração do roteador Linux;
Anexo I
2
Para efeito deste tutorial,é importante salientar que linhas escritas após o
símbolo “ # ” constituem comentários. Outra informação importante é que o usuário
deve estar logado como super-usuário, ou seja, usuário root.
1.1 CONFIGURAÇÃO DOS HOSTS
1.1.1 ATIVANDO SUPORTE IPV6
O Fedora Core 2 já tem suporte ao IPv6 instalado por default.
Basta apenas ativar o suporte, mandando carregar o módulo de suporte IPv6 do
kernel.
Para tal, deve ser aberto o arquivo de configuração do carregador de
módulos do kernel “/etc/modules.conf” com qualquer editor de textos e deve ser
acrescentada a seguinte linha:
alias net-pf-10 ipv6 #Carrega o módulo IPv6
Em seguida deve ser aberto o arquivo “/etc/sysconfig/network” com um editor
de textos qualquer e adicionar a seguinte linha:
NETWORKING_IPV6=yes
Neste ponto, a rede deve ser reiniciada usando o seguinte comando:
service network restart
Se tudo foi feito de forma correta, deverá existir a seguinte entrada:
/proc/net/if_inet6
1.1.2 CONFIGURAÇÃO PERSISTENTE DE ENDEREÇOS DE REDE
Para atribuir um endereço IP a uma interface, deve ser aberto o arquivo
“/etc/sysconfig/network-scripts/ifcfg-<nomeDaInterface>”, onde <nomeDaInterface>
refere-se à interface onde deseja-se adicionar o endereço, por exemplo, eth0.
Anexo I
3
Adicione as seguintes linhas no arquivo:
IPV6INIT=yes #Ativa IPv6 na interface
IPV6ADDR=xxxx:xxxx:xxxx:xxxx/xx #Atribui um endereço IP
No lugar de xxxx:xxxx:xxxx:xxxx/xx deve-se colocar o endereço e, após a
barra, o número de bits referentes ao identificador de rede.
1.1.3 ATRIBUINDO ROTA DEFAULT AO HOST
Deveremos editar ou criar, caso não exista, o arquivo “/etc/sysconfig/networkscripts/route6-< nomeDaInterface >” onde <nomeDaInterface> refere-se a interface
onde deseja-se adicionar o endereço, por exemplo, eth0.
Deve-se adicionar a rota usando a seguinte sintaxe:
xxxx:xxxx:xxxx:xxxx/xx via xxxx:xxxx:xxxx:xxxx
Onde o primeiro endereço refere-se a rede de origem e o segundo endereço
refere-se ao gateway de saída.
Um exemplo de rota seria:
2000::0/32 via 2000::3
1.1.4 ATRIBUINDO SERVIDOR DE DNS
Para atribuir um servidor de DNS, deve-se abrir o arquivo “/etc/resolv.conf”.
Acrescenta-se ou edita-se a linha
nameserver xxxx:xxxx:xxxx:xxxx
onde após nameserver você coloca o endereço do seu servidor de DNS.
1.2 CONFIGURANDO UM ROTEADOR NORMAL
O arquivo “/etc/rc.d/rc.local” deve ser editado para que as configurações de
rota sejam persistentes.
Anexo I
4
Para se adicionar uma rota deve se utilizar o seguinte comando:
/sbin/ip -6 route add <redeipv6>/<prefixo de rede> via <endereçoipv6>
Onde <redeipv6> refere-se à rede de origem, <prefixo de rede> refere-se ao
prefixo de rede de origem e <endereçoipv6> refere-se ao endereço do gateway.
Ex: /sbin/ip -6 route add 2001::0/48 via 2001::3
Para visualizar as rotas adicionadas deve-se utilizar o comando:
/sbin/ip -6 route show dev [interfacederede]
Onde [interfacederede] refere-se à interface de rede da qual deseja-se
visualizar as rotas.
Ex: /sbin/ip -6 route show dev eth0
Para se excluir uma rota, deve-se retirar do arquivo “/etc/rc.d/rc.local” o
comando que adiciona a mesma, ou usar o seguinte comando no terminal de
comando:
/sbin/ip -6 route del <redeipv6>/<prefixo de rede> via <endereçoipv6>
Onde os valores entre os símbolos <> já foram descritos anteriormente.
Download