IPv6 Expandir ↔ Comprimir
Convierte entre notacion IPv6 expandida y comprimida
La herramienta IPv6 Expandir/Comprimir convierte direcciones IPv6 entre su notación hexadecimal completa de 8 grupos y la forma comprimida abreviada con ::. Ingresa una dirección como 2001:db8::1 para ver su forma expandida 2001:0db8:0000:0000:0000:0000:0000:0001, o pega una dirección de longitud completa para obtener la representación comprimida más corta válida según RFC 5952.
Entendiendo la notación de direcciones IPv6
Las direcciones IPv6 tienen 128 bits de longitud, lo que significa que escribirlas completas requiere 32 dígitos hexadecimales. Para hacerlo manejable, los dígitos se dividen en ocho grupos de cuatro, separados por dos puntos: 2001:0db8:0000:0000:0000:0000:0000:0001. Pero incluso con la agrupación, escribir y leer 39 caracteres para cada dirección se vuelve tedioso rápidamente, especialmente cuando la mayoría de esos caracteres son ceros. Es por eso que el RFC 2373 introdujo reglas de compresión, y el RFC 5952 posteriormente estandarizó la forma corta canónica.
La compresión funciona de dos maneras. Primero, puedes eliminar los ceros a la izquierda dentro de cada grupo: 0db8 se convierte en db8, y 0000 se convierte en 0. Segundo, puedes reemplazar la secuencia más larga de grupos consecutivos de todos ceros con ::. Así, 2001:0db8:0000:0000:0000:0000:0000:0001 se comprime a 2001:db8::1 -- una forma mucho más legible de siete caracteres. La restricción es que solo puedes usar :: una vez por dirección, porque si lo usaras dos veces, no sabrías cuántos grupos de ceros representa cada ::.
Estas dos formas son completamente equivalentes -- representan el mismo número de 128 bits y funcionan de manera idéntica en cada contexto de red. La elección entre ellas es sobre legibilidad y requisitos del sistema. Los archivos de configuración y las reglas de firewall típicamente usan la forma comprimida por brevedad. El almacenamiento en bases de datos, los sistemas SNMP y algunas herramientas de análisis de logs prefieren la forma expandida porque su ancho fijo de 39 caracteres simplifica el análisis. Esta herramienta te permite convertir instantáneamente entre las dos, y siempre produce la forma canónica correcta según RFC 5952 para que tus direcciones sean consistentes en toda tu documentación y configuraciones.
Cómo expandir o comprimir una dirección IPv6
- Ingresa una dirección IPv6 en formato comprimido o expandido
- Selecciona Expandir para producir la notación completa de 8 grupos con ceros a la izquierda, o Comprimir para producir la representación válida más corta
- Visualiza el resultado convertido junto con ambas formas mostradas lado a lado para comparación
Ejemplos de expansión y compresión de 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 |
Compresión con múltiples secuencias de ceros
Cuando una dirección contiene múltiples secuencias de grupos de ceros consecutivos, solo la secuencia más larga se reemplaza con ::. Si las secuencias tienen la misma longitud, se comprime la más a la izquierda según RFC 5952:
| Forma expandida | Compresión correcta | Incorrecta |
|---|---|---|
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 |
Cuándo usar IPv6 Expandir/Comprimir
- Estandarización de archivos de configuración -- asegurar que todas las direcciones IPv6 en reglas de firewall, registros DNS y configuraciones de routers usen el mismo estilo de notación
- Comparación y deduplicación de direcciones -- expandir dos direcciones a su forma completa para determinar si
2001:db8::1y2001:0db8:0000:0000:0000:0000:0000:0001son la misma dirección (lo son) - Preparación de archivos de zona BIND -- algunos sistemas DNS requieren notación expandida o específica para registros AAAA y delegación de zonas inversas
- Aprendizaje de la estructura IPv6 -- expandir direcciones comprimidas para ver exactamente qué grupos son cero y entender el diseño completo de la dirección de 128 bits
- Auditoría de ACL y políticas -- normalizar direcciones a una forma canónica antes de comparar políticas de seguridad entre dispositivos que pueden almacenar direcciones de manera diferente
- Normalización de bases de datos -- convertir todas las direcciones al mismo formato antes de insertarlas en una base de datos para permitir búsquedas y deduplicación confiables
Cómo funciona la compresión de direcciones IPv6
Algoritmo de expansión
- Si
::está presente, cuenta los grupos existentes a cada lado - Calcula los grupos faltantes:
8 - (grupos_izquierda + grupos_derecha) - Reemplaza
::con la cantidad calculada de grupos0000 - Rellena cada grupo a exactamente 4 dígitos hexadecimales con ceros a la izquierda
Ejemplo: expandiendo 2001:db8::ff00:42:8329
Izquierda de :: → 2001:db8 (2 grupos)
Derecha de :: → ff00:42:8329 (3 grupos)
Faltantes → 8 - 2 - 3 = 3 (tres grupos 0000)
Resultado → 2001:0db8:0000:0000:0000:ff00:0042:8329
Algoritmo de compresión
- Rellena todos los grupos a 4 dígitos hexadecimales y divide en 8 grupos
- Encuentra la secuencia consecutiva más larga de grupos de todos ceros
- Reemplaza esa secuencia con
::(la más a la izquierda gana si hay empate) - Elimina los ceros a la izquierda de cada grupo restante
- El resultado es la forma comprimida canónica según RFC 5952
Reglas de formato canónico RFC 5952
- Los dígitos hexadecimales deben ser en minúsculas (
2001:db8, no2001:DB8) - Los ceros a la izquierda deben suprimirse (
db8, no0db8) - La secuencia más larga de grupos
0consecutivos debe comprimirse ::no debe usarse para un solo grupo0(usa0en su lugar)
Consejos prácticos para la notación IPv6
La consistencia es lo más importante al elegir un estilo de notación. Elige una forma -- generalmente comprimida para configuraciones de cara al usuario y expandida para datos procesados por máquinas -- y mantenla a lo largo de tu documentación, reglas de firewall y plantillas de configuración. Mezclar 2001:db8::1 en un lugar y 2001:0db8:0000:0000:0000:0000:0000:0001 en otro dificulta buscar, hacer grep y comparar direcciones entre archivos.
Al resolver problemas, la forma expandida es tu aliada. Si estás comparando dos direcciones y se ven diferentes en forma comprimida, expande ambas a notación completa y compara grupo por grupo. Esto revela inmediatamente si las direcciones difieren o simplemente están escritas en diferentes estilos de compresión. También facilita la identificación de qué parte de la dirección es el prefijo de red y cuál es el identificador de interfaz, especialmente para longitudes de prefijo no estándar como /48 o /56.
Un detalle sutil: algunas herramientas y sistemas más antiguos no manejan :: correctamente, particularmente cuando aparece al principio o al final de la dirección. Si encuentras un sistema que tiene problemas con ::1 o fe80::, prueba con la forma expandida en su lugar. Esto es cada vez más raro a medida que el soporte de IPv6 ha madurado, pero aún puedes encontrarlo en sistemas embebidos, plataformas de monitoreo legacy o scripts personalizados que usan análisis de cadenas ingenuo en lugar de bibliotecas de direcciones apropiadas.
Preguntas frecuentes
¿Son 2001:db8::1 y 2001:0db8:0000:0000:0000:0000:0000:0001 la misma dirección?
Sí, representan exactamente la misma dirección de 128 bits. La forma expandida muestra los 32 dígitos hexadecimales explícitamente, mientras que la forma comprimida usa :: para omitir grupos de ceros consecutivos y elimina ceros a la izquierda innecesarios. Convertir ambas a la misma notación confirma la equivalencia.
¿Por qué algunos sistemas requieren la forma expandida?
Los dispositivos de red más antiguos, ciertas implementaciones SNMP y algunas herramientas de análisis de logs esperan un formato de dirección fijo de 39 caracteres. La forma expandida con dos puntos siempre tiene exactamente 39 caracteres (xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx), lo que simplifica el análisis en sistemas que usan formatos de campo de ancho fijo.
¿La compresión cambia el valor de la dirección?
No. La compresión es puramente un cambio de notación. El valor binario subyacente de 128 bits permanece idéntico. Expandir y luego comprimir una dirección siempre devuelve el valor original, y ambas formas son intercambiables en cualquier contexto que acepte direcciones IPv6.
¿Por qué el RFC 5952 requiere dígitos hexadecimales en minúsculas?
El RFC 5952 estandariza la representación canónica para asegurar la consistencia. Aunque tanto 2001:DB8::1 como 2001:db8::1 son válidas, tener una única forma canónica previene entradas duplicadas en bases de datos, simplifica las comparaciones de cadenas y hace que las operaciones de grep/búsqueda sean confiables. Las minúsculas fueron elegidas como la forma canónica.
¿Puedo usar esta herramienta con direcciones IPv4-mapped IPv6?
Sí. Una dirección como ::ffff:192.168.1.1 puede expandirse para mostrar la notación completa. La notación mixta con una dirección IPv4 embebida también es soportada, aunque la forma expandida mostrará la porción IPv4 como dos grupos hexadecimales (por ejemplo, ::ffff:c0a8:0101).
Herramientas relacionadas
- Validador de IPv6 - Valida direcciones IPv6 (formatos completo y comprimido)
- Convertidor IPv6 ↔ BigInt - Convierte direcciones IPv6 a/desde enteros de 128 bits
- Convertidor IPv6 ↔ Binario - Convierte direcciones IPv6 a/desde notación binaria
- Convertidor de IPv4-Mapped IPv6 - Convierte entre IPv4 y IPv4-mapped IPv6 (::ffff:)
- Validador de IPv4 - Valida direcciones IPv4 en formato estricto de cuatro octetos con puntos