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.
Seu prefixo ULA /48
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
- 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.
- Clique em Gerar novo prefixo e copie o
/48. - Para cada segmento da rede (LAN, Wi-Fi de visitantes, VLAN de servidores, VPN…), use uma sub-rede
/64diferente — digite o número em “Sub-rede nº N”. - 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:
| Bits | Campo | Valor |
|---|---|---|
| 7 | Prefixo | fc00::/7 (bits 1111 110) |
| 1 | Bit L | 1 = atribuído localmente |
| 40 | Global ID | pseudoaleatório |
| 16 | Subnet ID | número da sub-rede, à sua escolha |
| 64 | Interface ID | identifica 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::1Por 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 interligadas | Probabilidade de colisão |
|---|---|
| 2 | 1,81 × 10⁻¹² |
| 10 | 4,54 × 10⁻¹¹ |
| 100 | 4,54 × 10⁻⁹ |
| 1.000 | 4,54 × 10⁻⁷ |
| 10.000 | 4,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:
- Obter a hora atual no formato NTP de 64 bits.
- 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).
- Concatenar a hora e o identificador, formando uma chave.
- Calcular o SHA-1 da chave (160 bits).
- Usar os 40 bits menos significativos como Global ID.
- 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.
ULA, IPv4 privado, link-local e fc00::/8
| Tipo | Faixa | Alcance | Observação |
|---|---|---|---|
| ULA | fd00::/8 | Sua rede (roteável entre sub-redes e sites seus) | Prefixo /48 próprio, com Global ID aleatório |
| IPv4 privado | 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 | Sua rede | Todos compartilham as mesmas faixas; colisões são comuns |
| Link-local IPv6 | fe80::/10 | Só o enlace (o mesmo segmento) | Automático em toda interface IPv6; roteadores não o encaminham |
fc00::/8 | metade 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::/10foram 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.