IPv6: direcciones para no quedarnos cortos nunca más
IPv4 tiene unos 4.300 millones de direcciones. Parecían muchísimas en los 80, pero con un móvil, un portátil, una tele y media docena de cacharros inteligentes por persona, hace años que se acabaron. Todo lo que hemos visto (la NAT, el CGNAT de los operadores…) son parches para estirarlas.
IPv6 es la solución de verdad. Y aunque mucha gente la ignora porque “con IPv4 me funciona”, ya va cerca de la mitad del tráfico de internet. Tarde o temprano te la vas a encontrar, y mejor que no te pille por sorpresa, sobre todo por el lado de la seguridad.
Cómo es una dirección IPv6
Sección titulada «Cómo es una dirección IPv6»Una dirección IPv6 tiene 128 bits (IPv4 tenía 32), escritos en hexadecimal, en 8 grupos de 16 bits separados por :
2001:0db8:0000:0000:0000:ff00:0042:8329Así es muy larga, y por eso hay dos reglas para acortarla:
- Los ceros a la izquierda de cada grupo se pueden quitar →
0db8→db8,0042→42,0000→0. - Una sola vez por dirección, un bloque seguido de grupos a cero se sustituye por
::.
2001:0db8:0000:0000:0000:ff00:0042:83292001:db8:0:0:0:ff00:42:8329 ← regla 12001:db8::ff00:42:8329 ← regla 2El :: solo puede aparecer una vez: si hubiera dos, no habría forma de saber cuántos ceros esconde cada uno.
¿Cuántas direcciones son 128 bits? Unas 340 sextillones (un 34 seguido de 37 ceros). No es que no se vayan a acabar: es que no tiene sentido ni planteárselo.
Prefijo e interfaz: la /64
Sección titulada «Prefijo e interfaz: la /64»La idea de red y host de IPv4 se mantiene, pero aquí se habla de prefijo, y la norma es muy clara:
2001:db8:1234:0010 : 0a1b:2cff:fe3d:4e5f└─── prefijo /64 ──┘ └─ identificador de interfaz ─┘ (la red) (el equipo)- Cada red (cada VLAN, cada LAN) es una /64. Siempre. Sí, son 18 trillones de direcciones para una sola red. Es así a propósito, porque la autoconfiguración (SLAAC, ahora la vemos) necesita esos 64 bits para el equipo.
- El operador no te da una IP: te da un prefijo, normalmente una /56 (256 redes /64) o una /48 (65.536 redes /64). Se reparte con DHCPv6-PD (Prefix Delegation) y tu router lo divide entre tus redes.
Con una /56 puedes darle una /64 a cada VLAN y te sobran más de 250. Adiós a calcular subredes con calculadora.
Tipos de direcciones
Sección titulada «Tipos de direcciones»| Tipo | Rango | Para qué |
|---|---|---|
| Global unicast | 2000::/3 (empiezan por 2 o 3) |
Las “públicas”. Únicas en internet y enrutables |
| Link-local | fe80::/10 |
Solo valen dentro del mismo enlace. Todo equipo tiene una, aunque no haya router |
| ULA (Unique Local) | fc00::/7 (en la práctica, fd00::/8) |
El equivalente a las IPs privadas: para uso interno, no salen a internet |
| Loopback | ::1 |
“Yo mismo”, como el 127.0.0.1 |
| Multicast | ff00::/8 |
Envío a un grupo de equipos |
| Documentación | 2001:db8::/32 |
Para ejemplos, como el 192.0.2.0/24 de IPv4 |
Fíjate en una cosa: en IPv6 no existe el broadcast. Lo que antes se hacía con broadcast ahora se hace con multicast, mucho más fino.
Y un detalle que confunde al principio: un equipo con IPv6 suele tener varias direcciones a la vez: su link-local, una o varias globales y, a veces, una ULA. Es lo normal.
Cómo consigue un equipo su dirección
Sección titulada «Cómo consigue un equipo su dirección»SLAAC: autoconfiguración sin servidor
Sección titulada «SLAAC: autoconfiguración sin servidor»El método más habitual es SLAAC (Stateless Address Autoconfiguration), y no necesita un servidor DHCP:
- El router anuncia periódicamente su prefijo en la red con mensajes RA (Router Advertisement): “esta red es la
2001:db8:1234:10::/64y la puerta de enlace soy yo”. - Cada equipo coge ese prefijo y se genera él mismo los 64 bits de interfaz.
- Comprueba que nadie más la está usando y se la pone.
Para no ser rastreables, los equipos modernos usan direcciones temporales aleatorias (privacy extensions) para salir a internet, y las van cambiando cada cierto tiempo. Por eso no es raro ver la IPv6 de tu portátil cambiar a lo largo del día.
Los servidores DNS también se pueden anunciar en el propio RA (la opción RDNSS).
También existe DHCPv6, el equivalente al DHCP de IPv4, para cuando quieres controlar qué dirección recibe cada equipo. Pero ojo: Android no soporta DHCPv6 para asignar direcciones, solo SLAAC. Si en una red montas solo DHCPv6, los móviles Android se quedarán sin IPv6.
NDP en vez de ARP
Sección titulada «NDP en vez de ARP»En IPv6 no hay ARP. Para descubrir las MAC de los vecinos y encontrar al router se usa NDP (Neighbor Discovery Protocol), que funciona sobre ICMPv6. Esto tiene una consecuencia muy importante, que vemos ahora en los errores.
La gran diferencia: no hay NAT
Sección titulada «La gran diferencia: no hay NAT»Con IPv6 hay direcciones de sobra, así que cada equipo de tu red tiene su propia dirección pública. No hace falta NAT.
Eso tiene una parte muy buena y una que asusta:
- Lo bueno → se acaban el doble NAT, el CGNAT y abrir puertos con redirecciones raras. Si quieres que se llegue a un servidor, lo permites en el firewall y listo, porque el servidor ya tiene su dirección pública.
- Lo que asusta → como vimos en NAT y PAT, la NAT no es un firewall, pero sí bloqueaba de rebote lo que entraba sin permiso. Sin NAT, lo único que separa tus equipos de internet es el firewall del router.
Los routers domésticos decentes vienen con IPv6 configurado como “bloquear todo lo que entra, permitir lo que sale”, igual que la NAT de toda la vida. Pero vale la pena comprobarlo, sobre todo en routers propios y en firewalls tipo pfSense u OPNsense.
Convivencia: dual stack
Sección titulada «Convivencia: dual stack»La transición no es de golpe. Lo normal hoy es el dual stack: los equipos tienen IPv4 e IPv6 a la vez, y usan la que pueden.
- Si un nombre tiene registro AAAA (IPv6) y tu red tiene IPv6, el equipo intenta primero por IPv6.
- Si falla o va lento, se pasa a IPv4 en cuestión de milisegundos (el mecanismo se llama Happy Eyeballs).
Algunas redes móviles van al revés: solo IPv6, y traducen hacia las webs que solo tienen IPv4 con mecanismos como NAT64/DNS64 o 464XLAT. Tú ni te enteras.
Comprobar si tienes IPv6
Sección titulada «Comprobar si tienes IPv6»ip -6 addr # Linux: tus direcciones IPv6ip -6 route # Linux: rutas IPv6 (busca "default via fe80::...")ipconfig # Windows: busca "Dirección IPv6"ping -6 google.com # ¿llegas a internet por IPv6?curl -6 https://ifconfig.co # tu IPv6 públicaTambién puedes entrar desde el navegador a cualquier web de “test IPv6”, que te dice si tu conexión lo soporta y si lo usa bien.
En la práctica
Sección titulada «En la práctica»- Tu operador puede darte IPv6 o no → muchos lo dan ya, otros no. Starlink, por ejemplo, va con CGNAT en IPv4 pero da un prefijo IPv6 público (lo vimos en Conexiones a internet).
- El prefijo puede cambiar → en muchas conexiones domésticas el prefijo delegado es dinámico. Si tus reglas de firewall usan direcciones globales concretas, se rompen cuando cambia. Para lo interno, usa ULA o nombres.
- Docker no activa IPv6 por defecto → hay que configurarlo a mano en el demonio y en cada red. Si no lo haces, tus contenedores siguen solo en IPv4 aunque el host tenga IPv6.
- Un servicio escuchando en
::→ escucha en todas las direcciones IPv6 del equipo, incluida la global. Si el firewall del host no lo filtra, ese servicio está en internet.
Errores típicos
Sección titulada «Errores típicos»- Bloquear todo ICMPv6 → sin ICMPv6 no funciona NDP, y sin NDP no funciona IPv6: los equipos no encuentran al router ni a sus vecinos. Se puede filtrar, pero hay que permitir los tipos necesarios.
- Firewall solo para IPv4 → tienes reglas muy curradas en IPv4 y en IPv6 está todo abierto. Cada regla de entrada se piensa para los dos protocolos.
- Pensar que “detrás del router” estás protegido como con NAT → en IPv6 depende solo del firewall. Compruébalo.
- Subredes más pequeñas que /64 → SLAAC deja de funcionar. Una red, una /64.
- Solo DHCPv6, sin SLAAC → los Android se quedan sin IPv6.
- Desactivar IPv6 “porque no lo uso” → en algunos sistemas (Windows, por ejemplo) hay componentes que lo usan internamente, y desactivarlo puede dar fallos raros. Si no lo quieres en la red, mejor no anunciarlo desde el router que desactivarlo en cada equipo.
Resumen
Sección titulada «Resumen»- IPv6 → 128 bits en hexadecimal, 8 grupos. Se acorta quitando ceros a la izquierda y usando
::una sola vez. - Cada red es una /64. El operador te delega un prefijo (/56 o /48) para repartir entre tus redes.
- Tipos clave → global (
2000::/3), link-local (fe80::), ULA (fd00::) y loopback (::1). No hay broadcast. - SLAAC → el equipo se configura solo con los anuncios del router (RA). DHCPv6 existe, pero Android no lo usa para direcciones.
- No hay NAT → cada equipo es alcanzable, así que el firewall lo es todo. No bloquees ICMPv6 entero.
- Dual stack → IPv4 e IPv6 conviven y el equipo usa la mejor disponible.
Con esta página terminas el bloque de Redes. Si has llegado hasta aquí leyéndolas en orden, ya tienes la base para casi todo lo que viene en las guías de infraestructura.
Relacionado: Direcciones IP y subredes, NAT y PAT, Conexiones a internet, Índice de Redes