3.2. Parte da rede, também conhecido como prefixo

Os designers definiram alguns tipos de endereços e deixaram muito disto para futuras definições quando novas necessidades surgirem. A RFC 4291 / IP Version 6 Addressing Architecture define o esquema utilizado no endereçamento atual.

Vamos agora dar uma olhada nos diferentes tipos de prefixos (e também em tipos de endereços):

3.2.1. Endereço tipo "link local"

Estes são endereços epeciais que são válidos somente no link de uma interface. Usando este endereço como destino, os pacotes nunca serão encaminhados a um router. Isto é usado para links de comunicação, tais como:

Eles começam com (onde "x" é qualquer caractere hexadecimal, normalmente "0")

fe8x:  <- atualmente é o único em uso
fe9x:
feax:
febx:

Um endereço com este prefixo é encontrado em cada interface com IPv6 habilitado após a auto-configuração stateless (a qual é normalmente sempre o caso).

3.2.2. Endereço tipo "site local"

Estes endereços são similares aos daRFC 1918 / Address Allocation for Private Internets em uso atualmente em IPv4, com a vantagem adicional de que qualquer pessoa que usar este tipo de endereço tem a capacidade de usar até 16 bits para a definição máxima de 65535 subredes. Comparável com o 10.0.0.0/8 do IPv4.

Outra vantagem: como é possível colocar mais de 1 endereço em uma interface com IPv6, voce pode configurar um endereço de "site local" junto com um endereço global.

Ele começa com:

fecx:  <- mais usado, mais comum
fedx:
feex:
fefx:

(onde o "x" é qualquer caractere hexadecimal, geralmente um "0")

Este tipo de endereço não deveria mais ser usado, RFC 3879 / Deprecating Site Local Addresses, mas para um teste em laboratório, estes endereços ainda continuam sendo uma boa escolha (IMHO - em minha humilde opinião).

3.2.3. Endereços locais Unicast IPv6

Por causa da definição original de endereços de site local não serem únicos, pode haver algum problema se duas redes já configuradas forem se conectar em um futuro próximo (overlap de subredes). Este e outros problemas foram os motivos para um novo tipo de endereço definido naRFC 4193 / Unique Local IPv6 Unicast Addresses.

Ele começa com:

fcxx:
fdxx:  <- atualmente o único em uso

Uma parte do prefixo (40 bits) é gerada usando um algoritmo pseudo-randomico e é improvável que dois resultados gerados por este algoritmo sejam iguais.

Exemplo de um prefixo gerado por este algoritmo (veja em: Goebel Consult / createLULA):

fd0f:8b72:ac90::/48

3.2.4. Endereço tipo Global "(Aggregatable) global unicast"

Atualmente, existe um tipo de endereço definido globalmente (o primeiro design, chamado "provider based") que foi jogado fora a alguns anos atrásRFC 1884 / IP Version 6 Addressing Architecture [obsolete], e voce consegue encontrar em algumas versões do kernel do Linux.

Ele começa com (os caracteres "x" são hexadecimais)

2xxx: 
3xxx:

Nota: o prefixo "aggregatable" foi descartado nos atuais drafts. Há ainda alguns outros subtipos definidos. Veja abaixo:

3.2.4.1. Endereço de teste 6bone

Estes foram os primeiros endereços globais que foram definidos e usados. Eles começam com

3ffe:

Exemplo:

3ffe:ffff:100:f102::1

Um endereço de teste especial para o 6bone que nunca seria globalmente único começa com

3ffe:ffff: 

e a maioria deles é mostrado em exemplos antigos. A razão para isso é, se endereços reais são mostrados, seria possível alguém copiar e colar estes endereços de arquivos de configuração antigos, o que inadvertidamente causaria um erro de duplicação de endereço de um endereço global único. Isto poderia causar sérios problemas para o host original (como nunca receber as respostas de requisições feitas).

Como o IPv6 agora já está em produção, este prefixo não é mais delegado e ele foi removido do processo de roteamento (vejaRFC 3701 / 6bone Phaseout para mais detalhes).

3.2.4.2. Endereços 6to4

Estes endereços, feitos para um mecanismo de túnel especial [RFC 3056 / Connection of IPv6 Domains via IPv4 Clouds e RFC 2893 / Transition Mechanisms for IPv6 Hosts and Routers],utilizam um endereço IPv4 já fornecido e a sua possível subnet, e começam com

2002:

Por exemplo, este endereço 192.168.1.1/5 ficaria:

2002:c0a8:0101:5::1

Um pequeno comando em shell poderia ajudar voce a gerar este endereço, baseado em um endereço IPv4 fornecido:

ipv4="1.2.3.4"; sla="5"; printf "2002:%02x%02x:%02x%02x:%04x::1" `echo $ipv4
¬ | tr "." " "` $sla

Veja também tunneling using 6to4 e information about 6to4 relay routers.

3.2.4.3. Designado pelo provedor para roteamento hierárquico

Este endereço é delegado pelo ISP e começa com

2001:

Prefixos de ISP's maiores (ou AS's) são delegados pelos local registries e tem atualmente um tamanho de prefixo /32.

Qualquer outro ISP/empresa pode solicitar um prefixo de tamanho /48, mas isto depende da política de distribuição de endereços dos registros locais de cada país ou região.

3.2.4.4. Endereços reservados para exemplos e documentação

Atualmente, dois blocos de endereço estão reservados para exemplos e documentação. Veja aRFC 3849 / IPv6 Address Prefix Reserved for Documentation:

3fff:ffff::/32
2001:0DB8::/32   EXAMPLENET-WF

Estes endereços devem ser filtrados baseados no endereço de origem e NÃO devem ser roteados em roteadores de borda em direção à internet, se possível.

3.2.5. Endereços Multicast

Endereços Multicast são usados por serviços específicos.

Eles sempre começam com (xx é o valor de escopo)

ffxy:

Existem divisões entre escopo e tipo:

3.2.5.1. Escopo Multicast

O escopo Multicast é um parametro usado para especificar a distancia máxima que um pacote multicast pode "viajar" a partir de sua origem.

Atualmente, os seguintes escopos (ou regiões) estão definidos:

  • ffx1: nó local, os pacotes nunca deixam o nó.

  • ffx2: link-local, os pacotes nunca são encaminhados pelos routers, assim eles nunca deixam o link especificado.

  • ffx5: site-local, os pacotes nunca deixam o site.

  • ffx8: organization-local, os pacotes nunca deixam a organização (não é tão fácil de implementar, mas deve ser coberto pelo protocolo de roteamento).

  • ffxe: escopo global.

  • outros são reservados

3.2.5.2. Tipos Multicast

Já existem muitos tipos definidos/reservados (vejaRFC 4291 / IP Version 6 Addressing Architecture para mais detalhes). Alguns exemplos são:

  • Endereço All Nodes: ID = 1h, endereça todos os host no nó local (ff01:0:0:0:0:0:0:1) ou no link conectado (ff02:0:0:0:0:0:0:1).

  • Endereço All Routers: ID = 2h, endereça tosos os routers no nó local (ff01:0:0:0:0:0:0:2), no link conectado (ff02:0:0:0:0:0:0:2), ou no site local (ff05:0:0:0:0:0:0:2)

3.2.5.3. Endereço multicast solicitado nó link-local

Um endereço de multicast especial que é usado como endereço de destino para a descoberta da vizinhança , uma vez que no IPv6 não há ARP, como existe no IPv4.

Um exemplo deste endereço se parece com

ff02::1:ff00:1234

Os prefixos usados mostram que este é um endereço multicast link-local. O sufixo é gerado a partir do endereço de destino. Neste exemplo, um pacote deveria ser enviado ao endereço "fe80::1234", mas a parte de rede não conhece o MAC atual deste destino. Ele então substitui os 104 bits mais altos com "ff02:0:0:0:0:1:ff00::/104" e deixa os menores 24 bits intocados. Este endereço então é agora usado no link para achar o nó correspondente que tem que enviar uma resposta contendo o endereço MAC usado na camada 2.

3.2.6. Endereços Anycast

Endereços Anycast são endereços especiais e eles são usados para muitas coisas, como o servidor DNS ou DHCP mais próximo, e outras coisas. Estes endereços são obtidos do espaço de endereçamento Unicast (aggregatable global ou site-local). O mecanismo anycast (do ponto de vista do cliente) será tratado pelos protocolos de roteamento dinamico.

Nota: Endereços anycast não podem ser usados como endereços de origem, pois eles se aplicam somente a endereços de destino.

3.2.6.1. Endereços Anycast Subnet-router

Um exemplo simples para um endereço unicast é o anycast subnet-router. Assumindo que um nó tem os seguintes endereços globais IPv6 configurados:

2001:db8:100:f101:210:a4ff:fee3:9566/64  <- Node's address

O endereço unicast subnet-router será criado removendo o sufixo (os 64 bits menos significantes) completamente:

2001:db8:100:f101::/64  <- subnet-router anycast address