IPv6 Expandir ↔ Comprimir
Converter entre notação IPv6 expandida e comprimida
O IPv6 Expandir/Comprimir converte endereços IPv6 entre sua notação hexadecimal completa de 8 grupos e a forma comprimida abreviada ::. Digite um endereço como 2001:db8::1 para ver sua forma expandida 2001:0db8:0000:0000:0000:0000:0000:0001, ou cole um endereço completo para obter a representação comprimida mais curta e válida de acordo com RFC 5952.
Entendendo Notação de Endereço IPv6
Endereços IPv6 possuem 128 bits de comprimento, o que significa escrever completamente requer 32 dígitos hexadecimais. Para tornar isso gerenciável, os dígitos são divididos em oito grupos de quatro, separados por dois-pontos: 2001:0db8:0000:0000:0000:0000:0000:0001. Mas mesmo com o agrupamento, digitar e ler 39 caracteres para cada endereço fica cansativo rapidamente, especialmente quando a maioria daqueles caracteres são zeros. É por isso que RFC 2373 introduziu regras de compressão, e RFC 5952 mais tarde padronizou a forma curta canônica.
Compressão funciona de duas formas. Primeiro, você pode descartar zeros iniciais dentro de cada grupo: 0db8 se torna db8 e 0000 se torna 0. Segundo, você pode substituir a sequência de grupos de zero mais longa consecutiva com ::. Então 2001:0db8:0000:0000:0000:0000:0000:0001 comprime para 2001:db8::1 -- muito mais legível com sete caracteres. O problema é que você pode usar :: apenas uma vez por endereço, porque se o usasse duas vezes, você não saberia quantos grupos de zero cada :: representa.
Essas duas formas são completamente equivalentes -- representam o mesmo número de 128 bits e funcionam identicamente em cada contexto de rede. A escolha entre elas é sobre legibilidade e requisitos de sistema. Arquivos de configuração e regras de firewall tipicamente usam a forma comprimida por brevidade. Armazenamento de banco de dados, sistemas SNMP e algumas ferramentas de análise de log preferem a forma expandida porque sua largura fixa de 39 caracteres simplifica análise. Esta ferramenta permite converter instantaneamente entre as duas, e sempre produz a forma canônica correta de acordo com RFC 5952 para que seus endereços sejam consistentes através de toda sua documentação e configuração.
Como Expandir ou Comprimir um Endereço IPv6
- Digite um endereço IPv6 em formato comprimido ou expandido
- Selecione Expandir para produzir notação de 8 grupos completa com zeros iniciais, ou Comprimir para produzir a representação mais curta válida
- Veja o resultado convertido junto com ambas as formas exibidas lado a lado para comparação
Exemplos de Expansão e Compressão IPv6
| Forma Comprimida | Forma Expandida |
|---|---|
::1 | 0000:0000:0000:0000:0000:0000:0000:0001 |
:: | 0000:0000:0000:0000:0000:0000:0000:0000 |
2001:db8::1 | 2001:0db8:0000:0000:0000:0000:0000:0001 |
2001:db8::ff00:42:8329 | 2001:0db8:0000:0000:0000:ff00:0042:8329 |
fe80::1 | fe80:0000:0000:0000:0000:0000:0000:0001 |
::ffff:c0a8:101 | 0000:0000:0000:0000:0000:ffff:c0a8:0101 |
2001:db8:85a3::8a2e:370:7334 | 2001:0db8:85a3:0000:0000:8a2e:0370:7334 |
ff02::1 | ff02:0000:0000:0000:0000:0000:0000:0001 |
Compressão com Múltiplas Sequências de Zero
Quando um endereço contém múltiplas sequências de grupos de zero consecutivos, apenas a sequência mais longa é substituída com ::. Se as sequências tiverem comprimento igual, o mais à esquerda é comprimido de acordo com RFC 5952:
| Forma Expandida | Compressão Correta | Incorreta |
|---|---|---|
2001:0db8:0000:0000:0001:0000:0000:0001 | 2001:db8::1:0:0:1 | 2001:db8:0:0:1::1 |
2001:0000:0000:0001:0000:0000:0000:0001 | 2001:0:0:1::1 | 2001::1:0:0:0:1 |
0000:0000:0000:0001:0000:0000:0000:0001 | ::1:0:0:0:1 | 0:0:0:1::1 |
Quando Usar IPv6 Expandir/Comprimir
- Padronização de arquivo de configuração -- garantir todos os endereços IPv6 em regras de firewall, registros DNS e configurações de roteador usem o mesmo estilo de notação
- Comparação e deduplicação de endereço -- expandir dois endereços para forma completa para determinar se
2001:db8::1e2001:0db8:0000:0000:0000:0000:0000:0001são o mesmo endereço (eles são) - Preparação de arquivo de zona BIND -- alguns sistemas DNS requerem notação expandida ou específica para registros AAAA e delegação de zona reversa
- Aprendendo estrutura IPv6 -- expandir endereços comprimidos para ver exatamente quais grupos são zero e entender o layout completo de endereço de 128 bits
- Auditoria de política ACL e segurança -- normalizar endereços para forma canônica antes de comparar políticas de segurança entre dispositivos que podem armazenar endereços diferentemente
- Normalização de banco de dados -- converter todos os endereços para o mesmo formato antes de inserir em um banco de dados para habilitar buscas confiáveis e deduplicação
Como Funciona a Compressão de Endereço IPv6
Algoritmo de Expansão
- Se
::está presente, conte os grupos existentes em cada lado - Calcule grupos faltantes:
8 - (grupos_esquerda + grupos_direita) - Substitua
::com o número calculado de grupos0000 - Preencha cada grupo para exatamente 4 dígitos hexadecimais com zeros iniciais
Exemplo: expandindo 2001:db8::ff00:42:8329
Esquerda de :: → 2001:db8 (2 grupos)
Direita de :: → ff00:42:8329 (3 grupos)
Faltando → 8 - 2 - 3 = 3 (três grupos 0000)
Resultado → 2001:0db8:0000:0000:0000:ff00:0042:8329
Algoritmo de Compressão
- Preencha todos os grupos para 4 dígitos hexadecimais e divida em 8 grupos
- Encontre a sequência consecutiva mais longa de grupos de zero
- Substitua aquela sequência com
::(esquerda vence se empatada) - Remova zeros iniciais de cada grupo restante
- Resultado é a forma comprimida canônica de acordo com RFC 5952
Regras de Formato Canônico RFC 5952
- Dígitos hexadecimais devem ser minúsculos (
2001:db8, não2001:DB8) - Zeros iniciais devem ser suprimidos (
db8, não0db8) - A sequência mais longa de grupos
0consecutivos deve ser comprimida ::não deve ser usado para um único grupo0(use0ao invés)
Conselho Prático para Notação IPv6
Consistência é a coisa mais importante ao escolher um estilo de notação. Escolha um formato -- usualmente comprimido para configurações voltadas para humanos e expandido para dados analisados por máquina -- e use-o consistentemente por toda sua documentação, regras de firewall e modelos de configuração. Misturar 2001:db8::1 em um lugar e 2001:0db8:0000:0000:0000:0000:0000:0001 em outro torna mais difícil buscar, grep e comparar endereços entre arquivos.
Ao troubleshooting, a forma expandida é sua amiga. Se você está comparando dois endereços e parecem diferentes em forma comprimida, expanda ambos para notação completa e compare grupo por grupo. Isto imediatamente revela se os endereços diferem ou são apenas escritos em diferentes estilos de compressão. Também torna mais fácil identificar qual parte do endereço é o prefixo de rede e qual é o identificador de interface, especialmente para comprimentos de prefixo não-padrão como /48 ou /56.
Uma gotcha sutil: algumas ferramentas mais antigas e sistemas não lidam com :: corretamente, particularmente quando aparece no início ou fim do endereço. Se você encontrar um sistema que falha com ::1 ou fe80::, tente a forma expandida ao invés. Isto é cada vez mais raro já que suporte a IPv6 amadureceu, mas você ainda pode encontrá-lo em sistemas incorporados, plataformas de monitoramento legadas ou scripts customizados que usam análise de string ingênua ao invés de bibliotecas de endereço apropriadas.
Perguntas Frequentes
2001:db8::1 e 2001:0db8:0000:0000:0000:0000:0000:0001 são o mesmo endereço?
Sim, eles representam exatamente o mesmo endereço de 128 bits. A forma expandida mostra todos os 32 dígitos hexadecimais explicitamente, enquanto a forma comprimida usa :: para omitir grupos de zero consecutivos e descarta zeros iniciais desnecessários. Converter ambos para a mesma notação confirma equivalência.
Por que alguns sistemas requerem a forma expandida?
Dispositivos de rede mais antigos, certas implementações SNMP e algumas ferramentas de análise de log esperam um formato de endereço de largura fixa de 39 caracteres. A forma expandida com dois-pontos é sempre exatamente 39 caracteres (xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx), que simplifica análise em sistemas que usam formatos de campo de largura fixa.
Compressão muda o valor do endereço?
Não. Compressão é puramente uma mudança de notação. O valor binário de 128 bits subjacente permanece idêntico. Expandir e então comprimir um endereço sempre retorna o valor original, e ambas as formas são intercambiáveis em qualquer contexto que aceite endereços IPv6.
Por que RFC 5952 requer dígitos hexadecimais minúsculos?
RFC 5952 padroniza a representação canônica para garantir consistência. Enquanto ambos 2001:DB8::1 e 2001:db8::1 são válidos, ter uma forma canônica única previne entradas duplicadas em bancos de dados, simplifica comparações de string e torna operações de grep/busca confiáveis. Minúsculas foram escolhidas como a forma canônica.
Posso usar esta ferramenta com endereços IPv6 mapeados para IPv4?
Sim. Um endereço como ::ffff:192.168.1.1 pode ser expandido para mostrar a notação completa. A notação mista com endereço IPv4 incorporado também é suportada, embora a forma expandida exiba a porção IPv4 como dois grupos hexadecimais (ex: ::ffff:c0a8:0101).
Ferramentas Relacionadas
- Validador IPv6 - Validar endereços IPv6 (formatos completo e comprimido)
- Conversor IPv6 ↔ BigInt - Converter endereços IPv6 para/de inteiros de 128 bits
- Conversor IPv6 ↔ Binário - Converter endereços IPv6 para/de notação binária de 128 bits
- Conversor IPv4-Mapeado IPv6 - Converter entre endereços IPv4 e IPv6 mapeado para IPv4 (::ffff:)
- Validador IPv4 - Validar endereços IPv4 em formato quad-pontilhado estrito