O
Dynamic Host Configuration Protocol (DHCP) para IPv6 permite passar parâmetros de configuração de endereços IPv6 para endereços IPv6. Ele oferece a capacidade de alocação automática de endereços de rede reutilizáveis com bastante flexibilidade. De acordo com a RFC 3315, este protocolo é uma contrapartida stateful para "IPv6 Stateless Address Autoconfiguration" (RFC 2462), sendo que podem ser usados separadamente ou simultaneamente.
O DHCPv6 atua na camada de transporte utilizando pacotes UDP para transmitir informações entre o cliente e o servidor. Os clientes escutam na porta 546 enquanto que os servidores e relays escutam na porta 547.
Os termos DHCPv4 e DHCPv6 são utilizados apenas em contextos onde é necessário evitar ambiguidades.
DHCP Unique Identifier (DUID)
Cada cliente e servidor DHCPv6 tem um DUID (Identificador Único DHCP). Os servidores DHCPs usam DUIDs para identificar clientes e selecionar parâmetros de configuração para associação de identidade para endereços não-temporários (IA - Identity Association for Non-Temporary Addresses) com os clientes. Clientes DHCP usam DUIDs para identificar os servidores.
Clientes e servidores devem tratar DUIDs como valores opacos e só devem comparar DUIDs e não devem, sob hipótese nenhuma, interpretar e nem restringir DUIDs.
O DUID pode ser de comprimento variável e não é necessário em todas as mensagens de DHCP. O DUID foi projetado para ser exclusivo e estável em todos os clientes e servidores DHCP. O DUID de um cliente ou servidor não deve mudar ao longo do tempo e, se possível, não deve ser alterado como resultado de uma mudança de hardware de rede em um dispositivo.
Isso é o que está na RFC 3315, a RFC do DHCPv6.
Para exemplificar vamos navegar até a seguinte chave do registro do Windows (7 e 8): HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters e aqui encontraremos o valor:
Dhcpv6DUID REG_BINARY 00 01 00 01 19 29 fa 52 00 ef 8c ea 6e 9b
Pois o Windows cria automaticamente um Túnel Teredo para conexão IPv6, mas que navega em poucos sites.
Vemos que os 6 últimos grupos de 2 dígitos hexadecimais do DUID (00 ef 8c ea 6e 9b) é o endereço MAC padrão IEEE 802 da placa de rede e os 8 primeiros grupos de 2 dígitos é o endereço padrão EUI-64.
Existem dois tipos de endereços de interfaces: endereços de 64 bits (padrão EUI-64) e os já conhecidos endereços MAC de 48 bits (padrão IEEE 802). Os endereços EUI-64 são atribuídos a um adaptador de rede pela IEEE ou derivados dos endereços físicos MAC IEEE 802.
12 x 4 = 48 bits e 16 x 4 = 64 bits. Lembre-se que cada dígito hexadecimal corresponde a 4 bits e são separados em grupos de dois para representar um octeto (1 Byte = 8 bits).
O IID pode ser configurado de 4 maneiras: manualmente, a partir do mecanismo de autoconfiguração stateless do IPv6, a partir de servidores DHCPv6 (stateful), ou formados a partir de uma chave pública (CGA).
O identificador de interface (IID) é utilizado para distinguir as interfaces dentro de um enlace e deve ser único dentro do mesmo prefixo de sub-rede. O mesmo IID pode ser usado em várias interfaces em um único nó, porém, elas devem estar associadas a diferentes sub-redes.
Não confunda DUID com IID, são coisas diferentes, porém, os dois são obtidos através do endereço EUI-64 e do endereço MAC da placa de rede. E ainda temos o IA (IAID ou IA_NA), mencionado acima, o qual é outro tipo de identificação.
Se você está confuso, não se preocupe, todos esses controles estão vindos prontos, habilitados nos softwares dos roteadores e outros equipamentos. Você só terá o trabalho de estudar como funciona essa coisa toda para poder se precaver de todas essas identificações.
O endereço MAC acima não é o endereço verdadeiro, está clonado. Ao clonar o endereço MAC no Windows (7 e 8) altera-se o DUID e perde-se a conectividade não bastando mais reiniciar a máquina, mas tendo também que reiniciar manualmente a placa de rede através do prompt de comando.
No
GNU/Linux, como não vem configurado o tal Túnel Teredo, aliás, não vem túnel nenhum configurado, isso não acontece. Basta alterar o MAC, executar ifdown ethx e depois ifup ethx que retorna a conectividade.