0% acharam este documento útil (0 voto)
41 visualizações12 páginas

IPV6-Livro Torres

O documento aborda o funcionamento do protocolo IPv6, incluindo a estrutura dos endereços, tipos de endereços (unicast, multicast, anycast) e a diferença em relação ao IPv4. Destaca a capacidade de endereçamento do IPv6, que permite 340 undecilhão de endereços, e a possibilidade de jumbogramas com tamanhos de até 4 GiB. Além disso, menciona a configuração automática de endereços IP a partir de endereços MAC e a adição de cabeçalhos extras nos datagramas IPv6.

Enviado por

RAMILLY AGUIAR
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
41 visualizações12 páginas

IPV6-Livro Torres

O documento aborda o funcionamento do protocolo IPv6, incluindo a estrutura dos endereços, tipos de endereços (unicast, multicast, anycast) e a diferença em relação ao IPv4. Destaca a capacidade de endereçamento do IPv6, que permite 340 undecilhão de endereços, e a possibilidade de jumbogramas com tamanhos de até 4 GiB. Além disso, menciona a configuração automática de endereços IP a partir de endereços MAC e a adição de cabeçalhos extras nos datagramas IPv6.

Enviado por

RAMILLY AGUIAR
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

decodificar corretamente as informações presentes no cabeçalho IP do datagrama,

isto é, quando há algum problema no cabeçalho do datagrama.

Através dessa mensagem de controle, uma máquina pode pedir o horário do relógio
de outra máquina que esteja conectada na rede. A máquina transmissora envia um
comando de solicitação de horário (mensagem ICMP tipo 13, Dh) à máquina da qual
ele quer saber o horário, incluindo no datagrama a hora do envio do datagrama. A
máquina receptora responde ao comando de solicitação de horário (mensagem ICMP
tipo 14, Eh) incluindo o horário que o datagrama chegou até ela e o horário em que
o datagrama de resposta foi enviado.

O horário é contado em milissegundos a partir da meia-noite, horário universal


(GMT, Greenwich Mean Time, horário de Greenwich).

Um dos usos desse comando poderia ser o de sincronizar o relógio de duas máquinas.
O problema é que há um atraso provocado pela rede, que impede que essa sincronia
fique 100% perfeita. Outro uso desse comando é para medir o tempo de resposta da
rede, isto é, o tempo que um datagrama demora a atingir um determinado destino.

O IGMP funciona para adicionar ou remover máquinas a um mesmo endereço mul-


ticast, isto é, um endereço para o qual, quando um datagrama é enviado, todas as
máquinas pertencentes ao grupo em questão recebem uma cópia do datagrama. O
roteador da rede de tempos em tempos envia uma mensagem IGMP ao grupo para
ver se as máquinas estão ativas ou não.

Vai chegar um momento em que esgotaremos o número de endereços IP públicos


disponíveis para distribuição para novas empresas por parte dos órgãos competen-
tes (ARIN, LACNIC etc.). Para resolver este problema, um sistema de endereçamento
de 128 bits foi criado, chamado IPv6 ou IPng (IP next generation). Com 128 bits é
possível endereçarmos [Link].[Link].[Link].456 dis-
positivos diferentes. Um nerd qualquer calculou que com esse número dá para ter-
mos 1.564 endereços IP por metro quadrado da superfície do planeta Terra!

Apesar de ter sido padronizado nos anos 1990, este endereçamento ainda é rara-
mente usado. Apesar de sua adoção ter aumentado drasticamente nos últimos cinco
anos (ver gráfico em [Link] no momento da
publicação deste livro (2014) apenas 3% dos computadores que acessam o Google
usam esse tipo de endereçamento (para dados atualizados, ver o link publicado). Na
prática, portanto, é mais provável que você lide somente com endereços IPv4.

Endereços IPv6 são escritos em grupos de 16 bits separados por dois pontos. Cada
número de 16 bits é representado por quatro algarismos hexadecimais. Exemplo
de endereço IPv6: [Link]. Algumas simplifi-
cações são possíveis na representação do endereço para diminuir o seu compri-
mento. A primeira é a remoção dos zeros à esquerda de cada grupo. Com isso este
endereço pode ser representado como [Link]. A segunda
simplificação possível é a substituição de dois ou mais grupos de zeros que este-
jam em sequência por “::”. Com isto este endereço poderia ser representado como
[Link]. Esta substituição, no entanto, só pode ser feita uma
única vez, e você não poderia neste exemplo remover o zero do segundo grupo
(2031::140F::AC0:975B:10C não é uma representação válida).

Em redes operando com o IPv4 e o IPv6 ao mesmo tempo, endereços IPv4 podem ser fa-
cilmente convertidos em IPv6 usando a notação [Link].b.c.d, onde a.b.c.d é o endereço
IPv4. Por exemplo, o endereço [Link] seria representado como ::ffff:[Link].
Os algarismos em decimal do endereço IPv4 podem ser convertidos em hexadecimal.
Neste exemplo, teríamos [Link] ou [Link] (192 = c0h; 0 = 00h; 2 =
02h; 128 = 80h).

O sistema de máscara do IPv6 funciona usando o esquema CIDR de maneira similar


ao que ocorre no IPv4. O número a ser usado é o número de bits usados para iden-
tificar a rede. Desta forma, o endereço [Link]/48 representa a rede que come-
ça no endereço [Link] e termina no endereço
[Link].
Por padrão os primeiros 64 bits (ou seja, a primeira metade do endereço) são usados
para identificar a rede, e os últimos 64 bits (ou seja, a segunda metade do endereço)
são usados para identificar a máquina. Logo o CIDR padrão do endereçamento IPv6 é
/64. A porção que identifica a máquina é também chamada IID (Interface IDentifier).

CÓDIGO OUI
DEFINIDO PELO IEEE
(INDICA QUEM É O FABRICANTE) DEFINIDO PELO FABRICANTE

BIT 41 BIT 40
ENDERECO MAC
DA PLACA DE REDE 1 BYTE 1 BYTE 1 BYTE 1 BYTE 1 BYTE 1 BYTE

UNIVERSAL / LOCAL (U/L) = 1

1 BYTE 1 1 BYTE 1 BYTE FF FE 1 BYTE 1 BYTE 1 BYTE

Interessante notar que por padrão a parte que identifica a máquina é criada a par-
tir do endereço MAC da placa de rede, ou seja, endereços IPv6 podem ser criados
automaticamente usando-se o endereço MAC da placa de rede. O endereço MAC, no
entanto, é um endereço de 48 bits. Para convertê-lo em um endereço de 64 bits é
adicionado no meio do endereço MAC (entre os três primeiros bytes e os três últimos
bytes) o valor “FFFE”. Além disso, o bit “Universal/Local” (U/L, que é o bit 41 do en-
dereço MAC, mas que passa a ser o bit 57 no IID) é configurado em “um”. Veja esta
estrutura na Figura 17.28.

Assim, uma máquina com um endereço MAC 0080AD0ACDDC possui como IID o va-
lor [Link] ou [Link].

Isso permite a cada máquina configurar o seu próprio endereço IP sem a necessidade
de um servidor DHCP.

Uma diferença importante entre o endereçamento IPv4 e o IPv6 é que em redes IPv4
geralmente cada nó (máquina) possui somente um endereço IP, enquanto que em
redes IPv6 nós geralmente usam mais de um endereço IP (pelo menos um endereço
unicast e um endereço multicast).
Existem três tipos básicos de endereços IPv6:

Unicast: usado para identificar uma única interface (porta de rede). Quando fala-
mos “endereço IPv6” normalmente é a este tipo de endereço que estamos nos referin-
do. Por padrão a parte mais baixa do endereço (64 bits menos significativos) é gerada
a partir do endereço MAC da placa de rede (ver Figura 17.28). Pode ser subdividido em:

Unicast global: são endereços IPv6 públicos, isto é, válidos na Internet.


Começam com o prefixo 2000::/3.

Endereço local único (ULA, Unique Local Address): são endereços IPv6
privados, isto é, endereços IP “mágicos” que são válidos somente na rede
local (funcionam da mesma forma que os endereços [Link], [Link] e
[Link] de redes IPv4). Começam com o prefixo FC00::/7. A faixa FC00::/8
não está definida e, na prática, a faixa FD00::/8 é usada.

Endereço local de link (endereço automático): são configurados automati-


camente pela máquina sem a necessidade de um roteador ou servidor DHCP,
usando o endereço MAC para formar parte do endereço IP (ver Figura 17.28).
Começam com o prefixo FE80::/10.

Endereço IPv4 mapeado em IPv6: são endereços IPv4 convertidos em IPv6


conforme explicado anteriormente, usado em redes mistas.

Endereço de Realimentação (loopback): é um endereço usado para acessar


a própria máquina, tal qual ocorre com endereços IP na faixa [Link] no IPv4.
No IPv6 o endereço de loopback é o [Link] ou simplesmente ::1.

Endereço não especificado: assim como no IPv4, no IPv6 não é possível


usar o endereço zero ([Link] ou ::).

Anycast: usado para identificar um grupo de interfaces (portas de rede) que tipi-
camente pertencem a nós (máquinas) diferentes. O pacote é entregue somente à in-
terface mais próxima que possuir o endereço anycast de destino. Quem é a máquina
mais próxima é definida pelo protocolo de roteamento.

Multicast: usado para identificar um grupo de interfaces (portas de rede) que


tipicamente pertencem a nós (máquinas) diferentes. O pacote é entregue a todas as
máquinas do grupo. Endereços multicast possuem o prefixo FF00::/8.
É importante notar que o IPv6 não usa o conceito de endereço de broadcast, onde
um pacote é entregue a todas as máquinas da rede. Em vez disso, cada porta de
rede precisa ter um endereço multicast configurado e pacotes direcionados àquele
endereço serão capturados por todas as máquinas que tiverem o mesmo endereço
multicast configurado.

De uma maneira geral, o IPv6 funciona de maneira similar ao IPv4, com o formato
do datagrama sendo alterado para comportar os endereços de 128 bits. No entanto
algumas novas funções foram introduzidas. Vamos primeiro estudar o formato do
datagrama IPv6.

Uma das principais diferenças do datagrama IPv6 para o IPv4 está no tamanho
máximo da área de dados. No IPv4 o datagrama pode ter até 65.535 bytes e como
o cabeçalho IPv4 normalmente tem 20 bytes, temos uma área de dados de até
65.515 bytes. Mas vimos também que na prática datagramas utilizam uma área
de dados menor, tipicamente de 556 bytes, considerando um cabeçalho típico
de 20 bytes.

No IPv6, datagramas podem seguir dois formatos. No formato padrão a área de da-
dos pode ter até 65.535 bytes, fazendo com que o datagrama tenha até 65.575 bytes
(40 bytes do cabeçalho mais 65.535 bytes de dados). Um segundo formato pode ser
usado, onde um campo de 32 bits é usado para configurar o tamanho da área de
dados do datagrama e, com isso, é possível que a área de dados do datagrama trans-
porte até 4 GiB de dados ([Link] bytes). Datagramas IPv6 que transportam
mais do que 65.535 bytes de dados são chamados jumbogramas. Jumbogramas são
habilitados através de um cabeçalho extra.

Para usar jumbogramas, os quadros da rede precisam ser capazes de transportar


mais do que 65.575 bytes de dados (ou seja, o MTU da rede precisa ser maior do
que este valor), do contrário o uso desse tipo de datagrama não faz sentido. Redes
Ethernet e Wi-Fi, portanto, não suportam o uso de jumbogramas.
Outra diferença do datagrama IPv6 para o datagrama IPv4 é a possibilidade de se
expandir o cabeçalho adicionando-se cabeçalhos extras, localizados dentro da área
de dados do datagrama. Esta estrutura foi usada para permitir que o cabeçalho IPv6
fosse o menor possível e, ao mesmo tempo, pudesse ser expandido caso mais infor-
mações de controle precisassem ser transferidas.

Na Figura 17.29 você pode ver a estrutura do datagrama IPv6.

0 31

VERSÃO (4 BITS) CLASSE DO TRÁFEGO (1 BYTE) RÓTULO DO FLUXO (20 BITS)

TAMANHO DOS DADOS (2 BYTES) PRÓXIMO CABEÇALHO (1 BYTE) LIMITE DE SALTOS (1 BYTE)

ENDEREÇO IP DE ORIGEM (16 BYTES)

ENDEREÇO IP DE ORIGEM (CONT.)

ENDEREÇO IP DE ORIGEM (CONT.)

ENDEREÇO IP DE ORIGEM (CONT.)

ENDEREÇO IP DE DESTINO (16 BYTES)

ENDEREÇO IP DE DESTINO (CONT.)

ENDEREÇO IP DE DESTINO (CONT.)

ENDEREÇO IP DE DESTINO (CONT.)

Os campos existentes são os seguintes:

Versão: versão do protocolo IP sendo usado; neste caso será preenchido com o
valor seis.

Classe do tráfego: é o equivalente ao campo “Tipo de serviço” do IPv4, usando o


formato apresentado na Figura 17.18. Ver tópico Tipo de Serviço apresentado ante-
riormente para mais informações.

Rótulo do fluxo: originalmente criado para dar qualidade de serviço especial a


aplicações de tempo real, porém este campo atualmente não é usado.
Tamanho dos dados: especifica o tamanho da área de dados que está sendo
usada. Se colocado em zero indica um jumbograma (e é por isso que a área de dados
pode ter até 65.535 bytes e não 65.536, que seria 216: o valor zero é reservado para
indicar um jumbograma). Para usar jumbogramas, um cabeçalho extra precisa ser
adicionado para informar o tamanho da área de dados (mostraremos como no tópico
Cabeçalhos Extras). Note que o campo equivalente no IPv4 mede o tamanho total do
datagrama, e não somente o tamanho da área de dados como ocorre no IPv6.

Próximo cabeçalho: estudaremos o funcionamento deste campo no próximo tó-


pico, Cabeçalhos Extras.

Saltos: funciona de maneira idêntica ao campo “Tempo de vida” (TTL) do IPv4,


cujo funcionamento já explicamos. Seu nome foi alterado apenas para refletir a ma-
neira correta como este campo funciona, já que ele na verdade não conta um tempo
mas sim o número de saltos (nós de rede) por onde o datagrama passa.

Endereço IP: o endereço IPv6 da origem e do destino.

Dados: os dados a serem transportados, naturalmente. Como vimos, no modo pa-


drão esta área pode transportar até 65.535 bytes, enquanto que no modo jumbogra-
ma esta área pode transportar até 4 GiB ([Link] bytes) de dados. Como nor-
malmente datagramas IPv6 têm 1.280 bytes e como o cabeçalho do datagrama IPv6
tem 40 bytes, a área de dados de um datagrama IPv6 típico transporta 1.240 bytes.

O datagrama IPv6 permite que mais cabeçalhos sejam adicionados ao datagrama,


caso necessário. Estes cabeçalhos extras são armazenados dentro da área de dados
do datagrama. O campo “Próximo cabeçalho” indica, através de um código numéri-
co, qual é o tipo do próximo cabeçalho extra, conforme a Tabela 17.11.
Cada cabeçalho extra terá seu próprio campo “Próximo cabeçalho”, permitindo assim
a adição de vários cabeçalhos extras dentro de um datagrama IPv6, como mostramos
na Figura 17.30. O último campo “Próximo cabeçalho” (que será o campo “Próximo
cabeçalho” principal caso não exista nenhum cabeçalho extra dentro do datagrama)
indica o código do protocolo sendo encapsulado dentro da área de dados, conforme a
Tabela 17.7. Ou seja, esse campo também é equivalente ao campo “Protocolo” do IPv4.

PRÓXIMO PRÓXIMO
CABEÇALHO CABEÇALHO PROTOCOLO
DADOS
CABEÇALHO CABEÇALHO EXTRA 1 CABEÇALHO EXTRA 2

ÁREA DE DADOS

PRÓXIMO CABEÇALHO
(1 BYTE)

TAMANHO
(1 BYTE)

TIPO DAS OPÇÕES 1


(1 BYTE)

TAMANHO DAS OPÇÕES 1


(1 BYTE)

OPÇÕES 1
(VARIÁVEL)

TIPO DAS OPÇÕES 2


(1 BYTE)

TAMANHO DAS OPÇÕES 2


(1 BYTE)

OPÇÕES 2
(VARIÁVEL)

TIPO DAS OPÇÕES 3


(1 BYTE)

TAMANHO DAS OPÇÕES 3


(1 BYTE)

OPÇÕES 3
(VARIÁVEL)
Essa estrutura foi usada para permitir que o cabeçalho IPv6 fosse o menor possível
e, ao mesmo tempo, pudesse ser expandido caso mais informações de controle pre-
cisassem ser transferidas.

Os cabeçalhos extras seguem um formato padrão, visto na Figura 17.31. Como você
pode observar, várias opções podem ser informadas em um mesmo cabeçalho.

Os campos existentes são os seguintes:

Próximo cabeçalho: indica o código do próximo cabeçalho, conforme a Tabela


17.11, ou do protocolo sendo encapsulado na área de dados, conforme a Tabela 17.7,
caso este seja o último cabeçalho.

Tamanho: indica o tamanho, em bytes, do cabeçalho extra. Isto deve ser informa-
do, pois o cabeçalho extra não possui tamanho fixo.

Tipo das opções: informa, através de um código (que vai depender do tipo de
cabeçalho extra), o que significa a opção.

Tamanho das opções: o campo “Opções” é variável e por isso deve-se informar
aqui o tamanho das opções, em bytes.

Opções: dados das opções sendo transportadas.

Vamos dar um exemplo real. As opções do tipo salto a salto são opções que serão
lidas por todos os nós da rede (roteadores, por exemplo) presentes no caminho entre
o transmissor e o receptor. Um exemplo de uma opção deste tipo é a configuração
do jumbograma, pois precisamos de um cabeçalho extra para informar o tamanho da
área de dados. O cabeçalho extra configurando o tamanho de um jumbograma pode
ser visto na Figura 17.32. O campo “Próximo cabeçalho” do cabeçalho principal seria
configurado com o valor zero, indicando a presença de um cabeçalho extra do tipo
“salto a salto”. Este cabeçalho extra seria configurado da seguinte forma:

Próximo cabeçalho: código do próximo cabeçalho extra ou do protocolo sendo


encapsulado na área de dados, caso não existam mais cabeçalhos extras.

Tamanho do cabeçalho: configurado com o tamanho, em bytes, do cabeçalho.


Neste caso, usaríamos o valor oito (indicando oito bytes).

Tipo das opções: informa o tipo do cabeçalho. Neste caso será usado o valor 194
(C2h), que indica que o tipo é “tamanho do jumbograma”.
Tamanho das opções: informa quantos bytes a opção possui. Neste caso, quatro by-
tes (32 bits), pois é o tamanho necessário para se configurar o tamanho do jumbograma.

Opções: será enviado o tamanho da área de dados do jumbograma, em bytes.

TAMANHO DAS OPÇÕES


PRÓXIMO CABEÇALHO TAMANHO DO CABEÇALHO TIPO (VALOR 194) TAMANHO DOS DADOS
(VALOR 4)
(1 BYTE) (VALOR 8) (1 BYTE) (1 BYTE) (4 BYTES)
(1 BYTE)

Teríamos de escrever um livro somente sobre IPv6 para podermos descrever em


detalhes todas as opções disponíveis para os cabeçalhos extras, por isso não aborda-
remos todas as opções possíveis. Dessas, uma bastante importante e que vale à pena
uma explicação mais aprofundada é o cabeçalho de fragmentação.

O cabeçalho do datagrama IPv4 possui três campos sempre presentes para contro-
lar a fragmentação de datagramas (“Identificação”, “Deslocamento do fragmento”
e “Flags”). No IPv6 um cabeçalho extra para controlar a fragmentação é adicionado
somente quando realmente há de fato uma fragmentação, adicionando tais campos.
Os campos presentes no IPv6 são exatamente os mesmos do IPv4, com a diferença
de que o campo de identificação foi aumentado de 16 para 32 bits (ver Figura 17.33)
e a inexistência do flag DF (Don’t Fragment, não fragmentar).

RESERVADO DESLOCAMENTO DO RESERVADO MAIS FRAGMENTOS IDENTIFICAÇÃO


PRÓXIMO CABEÇALHO
(1 BYTE) FRAGMENTO (2 BITS) (1 BIT) (4 BYTES)
(1 BYTE)
(13 BITS)

Importante notar que uma das principais diferenças do IPv6 para o IPv4 refere-se à
fragmentação de datagramas. No IPv4 a fragmentação pode ser feita por qualquer rote-
ador no meio do caminho, enquanto que no IPv6 somente a máquina transmissora pode
efetuar a fragmentação e, com isso, ela precisa saber de antemão o tamanho do menor
MTU no caminho até o receptor. Redes IPv6 requerem uma área de dados no quadro da
rede (MTU) de pelo menos 1.280 bytes, enquanto que em redes IPv4 o tamanho mínimo
do MTU é de 576 bytes. Se em uma rede IPv6 um roteador não conseguir encaminhar um
datagrama por ser maior do que o MTU da rede que precisa ser atravessada, ele envia
uma mensagem ICMPv6 à máquina transmissora chamada “Pacote muito grande”.
A explicação detalhada sobre o funcionamento da fragmentação de datagramas
(excetuando-se as diferenças expostas) já foi vista anteriormente no tópico Frag-
mentação de Datagramas.

O NDP (Neighbor Discovery Protocol, protocolo de descoberta de vizinho), presente


somente no IPv6, é responsável por descobrir os endereços IP das máquinas e rotea-
dores presentes na rede. Ele é o equivalente ao protocolo ARP, que não existe em redes
IPv6, mas também possui recursos que no IPv4 eram efetuados pelo protocolo ICMP.

Este protocolo chama qualquer nó presente na mesma rede de “vizinho”, e daí o


seu nome.

As principais funções do NDP são:

Descoberta de roteadores: localiza roteadores presentes na rede.

Descoberta do prefixo: descobre o endereço da rede.

Descoberta de parâmetros: descobre os parâmetros da rede.

Autoconfiguração de endereços: como havíamos visto, máquinas em redes IPv6


permitem a autoconfiguração de endereços IP sem a necessidade de um servidor
DHCP. O serviço DHCPv6 pode ser opcionalmente usado caso o administrador da rede
queira ter um maior nível de controle sobre como os endereços IP da rede são gerados.

Resolução de endereços: descobre o endereço MAC de uma placa de rede saben-


do-se somente o endereço IP (papel antes desempenhado pelo protocolo ARP).

Determinar o próximo salto: algoritmo para determinar para onde o pacote deve
ser enviado (por exemplo, para a máquina de destino diretamente, se ela estiver na
mesma rede, ou para o roteador da rede).

Detectar nós não acessíveis: determina que um nó (máquina ou roteador) não


está mais acessível. No caso de roteadores, pode-se tentar usar outros roteadores.

Detecção de endereço duplicado: verifica se um endereço usado por uma má-


quina já está sendo usado por outra máquina.

Você também pode gostar