Gerador de Prefixo IPv6 ULA (RFC 4193)

Gere um prefixo IPv6 ULA /48 (fdxx:xxxx:xxxx::/48) com Global ID aleatório ou pelo algoritmo da RFC 4193, com sub-redes /64 prontas para a sua rede local.

Gerador de prefixo IPv6 ULA

Gere um prefixo ULA (Unique Local Address, endereço local único) para a sua rede interna IPv6: um /48 no formato fdxx:xxxx:xxxx::/48, com os 40 bits de Global ID sorteados. A ferramenta mostra também as primeiras sub-redes /64, uma calculadora de “sub-rede nº N” e o primeiro endereço utilizável, sempre na forma comprimida recomendada pela RFC 5952.

Como gerar o Global ID (40 bits)

Seu prefixo ULA /48

Gerando…

Gerado no seu navegador; nada é enviado nem guardado. Anote o prefixo: depois de escolhido, ele deve ser sempre o mesmo na sua rede.

Como usar

  1. Escolha o modo: aleatório seguro (o mais simples) ou o algoritmo de exemplo da RFC 4193, que combina a hora atual com um endereço MAC.
  2. Clique em Gerar novo prefixo e copie o /48.
  3. Para cada segmento da rede (LAN, Wi-Fi de visitantes, VLAN de servidores, VPN…), use uma sub-rede /64 diferente — digite o número em “Sub-rede nº N”.
  4. Guarde o prefixo. Ele é gerado uma vez e vale para a vida toda da rede; gerar outro significa renumerar tudo.

O que é um endereço ULA

A RFC 4193 (outubro de 2005) reserva o bloco fc00::/7 para endereços IPv6 de uso local: funcionam dentro de um site ou entre sites que você interligar, mas não são roteados na internet. É o equivalente, no IPv6, das faixas privadas 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16 do IPv4.

Um endereço ULA tem esta estrutura:

BitsCampoValor
7Prefixofc00::/7 (bits 1111 110)
1Bit L1 = atribuído localmente
40Global IDpseudoaleatório
16Subnet IDnúmero da sub-rede, à sua escolha
64Interface IDidentifica o aparelho na sub-rede

Prefixo + L = fd. Somando os 40 bits do Global ID, chega-se a 48 bits: o seu /48. Os 16 bits seguintes dão 65.536 sub-redes /64.

Exemplo com o Global ID 12 3456 789a:

Prefixo /48:   fd12:3456:789a::/48
Sub-rede 0:    fd12:3456:789a::/64
Sub-rede 1:    fd12:3456:789a:1::/64
Sub-rede 255:  fd12:3456:789a:ff::/64
Um aparelho:   fd12:3456:789a:1::1

Por que o Global ID tem de ser aleatório

É tentador usar algo fácil de lembrar, como fd00::/48 ou fd00:1234::/48. A RFC proíbe: os Global IDs devem ser gerados por um algoritmo pseudoaleatório e não podem ser sequenciais nem números “conhecidos”. O motivo é prático. Se todo mundo escolher fd00::/48, duas redes que um dia se unirem — uma fusão de empresas, uma VPN entre matriz e filial — vão colidir, exatamente como acontece hoje com 192.168.0.0/24 no IPv4.

Com 40 bits aleatórios há cerca de 1,1 trilhão de prefixos possíveis. A seção 3.2.3 da RFC calcula a chance de colisão ao interligar redes:

Redes interligadasProbabilidade de colisão
21,81 × 10⁻¹²
104,54 × 10⁻¹¹
1004,54 × 10⁻⁹
1.0004,54 × 10⁻⁷
10.0004,54 × 10⁻⁵

“Único”, aqui, significa muito provavelmente único — não há registro central nem garantia.

Os dois modos de geração

A seção 3.2.1 da RFC 4193 exige apenas que o Global ID atribuído localmente seja gerado por um algoritmo pseudoaleatório de boa qualidade (ela remete à RFC 4086, sobre aleatoriedade). A seção 3.2.2 traz um algoritmo de exemplo — não obrigatório — pensado para equipamentos da época, que nem sempre tinham um bom gerador:

  1. Obter a hora atual no formato NTP de 64 bits.
  2. Obter um identificador EUI-64 do sistema; se não houver, criá-lo a partir de um MAC de 48 bits; se nem isso, usar outro identificador único local (como o número de série).
  3. Concatenar a hora e o identificador, formando uma chave.
  4. Calcular o SHA-1 da chave (160 bits).
  5. Usar os 40 bits menos significativos como Global ID.
  6. Juntar fc00::/7, o bit L = 1 e o Global ID para formar o prefixo.

Modo aleatório: a ferramenta pede 40 bits ao gerador criptográfico do navegador (crypto.getRandomValues). Atende à exigência da seção 3.2.1 e é o que recomendamos.

Modo RFC 4193: segue os seis passos acima. A hora vem do relógio do seu aparelho; o MAC informado vira EUI-64 pela regra da RFC 4291 (insere ff:fe no meio e inverte o bit universal/local — 00:1A:2B:3C:4D:5E vira 02:1a:2b:ff:fe:3c:4d:5e). Sem MAC, entram 64 bits aleatórios como identificador. Abra “Como este Global ID foi calculado” para conferir cada etapa. O SHA-1 serve aqui só para misturar os bits; não há requisito de segurança envolvido.

TipoFaixaAlcanceObservação
ULAfd00::/8Sua rede (roteável entre sub-redes e sites seus)Prefixo /48 próprio, com Global ID aleatório
IPv4 privado10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16Sua redeTodos compartilham as mesmas faixas; colisões são comuns
Link-local IPv6fe80::/10Só o enlace (o mesmo segmento)Automático em toda interface IPv6; roteadores não o encaminham
fc00::/8metade de fc00::/7 com L = 0—Reservada para definição futura; não use

Algumas diferenças que confundem quem vem do IPv4:

  • ULA não substitui o endereço global. Um aparelho pode ter, ao mesmo tempo, um endereço ULA (estável, para a rede interna) e um endereço global do provedor (para a internet). No IPv6, o normal é não usar NAT.
  • ULA não é link-local. O fe80:: existe sempre, mas só vale no próprio segmento e exige indicar a interface (fe80::1%eth0). O ULA atravessa roteadores internos.
  • ULA não é “site-local”. Os antigos fec0::/10 foram descontinuados pela RFC 3879, em 2004; o ULA é o substituto.
  • Preferência do sistema. Pela tabela padrão da RFC 6724 (2012), ao acessar um nome que tem endereço IPv4 e ULA, muitos sistemas preferem o IPv4. Não é defeito da sua rede.

Endereços dentro de uma sub-rede /64

O primeiro endereço de cada /64 (com os 64 bits finais zerados, como fd12:3456:789a:1::) é o endereço anycast dos roteadores da sub-rede (RFC 4291). Por isso o primeiro endereço utilizável indicado é o ::1. O IPv6 não tem broadcast, então não há um “último endereço” reservado como no IPv4.

Limitações

  • A ferramenta gera o prefixo; não configura roteador nem verifica se o prefixo já é usado por outra rede (não existe cadastro oficial de ULAs).
  • O modo RFC usa o relógio do seu aparelho com precisão de milissegundos, e não uma hora NTP sincronizada — para o propósito do algoritmo, que é só variar a entrada do SHA-1, não faz diferença.
  • Só gera prefixos /48, o tamanho definido pela RFC 4193.

Perguntas frequentes

Posso usar fd00::/8 inteiro ou escolher meu próprio prefixo?

Tecnicamente funciona, mas contraria a RFC e traz de volta o problema das colisões. Gere um /48 aleatório e use-o sempre.

Qual é a diferença entre fc00::/7, fc00::/8 e fd00::/8?

fc00::/7 é o bloco inteiro dos ULAs. O oitavo bit (L) o divide em duas metades: fd00::/8 (L = 1, atribuição local, a que se usa) e fc00::/8 (L = 0, reservada para uma definição futura que nunca virou padrão).

Endereços ULA acessam a internet?

Não diretamente: provedores não roteiam fc00::/7. Para sair, o aparelho usa o endereço global que recebe do provedor (ou, em casos específicos, tradução de prefixo no roteador).

Preciso informar meu MAC?

Não. O campo é opcional e só existe no modo RFC 4193. No modo aleatório, nada é pedido. Em qualquer caso, o cálculo é feito no seu navegador e nada é enviado.

Gerar de novo muda o prefixo?

Sim, cada clique gera um prefixo diferente — inclusive no modo RFC, porque a hora muda. Escolha um, anote e não troque.

Por que o resultado aparece como fd12:3456:789a::/48, com ::?

É a forma comprimida da RFC 5952: letras minúsculas, sem zeros à esquerda em cada grupo e a maior sequência de grupos zerados substituída por ::. A ferramenta mostra também a forma por extenso.

Veja também