DHCPv6 vs SLAAC: Cómo los dispositivos obtienen direcciones IPv6
Entiende las dos formas en que los dispositivos obtienen direcciones IPv6: SLAAC usa anuncios de router, DHCPv6 usa un servidor. Aprende cuándo usar cada uno.
Cuando un dispositivo se une a una red IPv6, necesita una dirección. A diferencia de IPv4 donde DHCP es el enfoque estándar, IPv6 ofrece dos mecanismos: SLAAC (Autoconfiguración de dirección sin estado) y DHCPv6. Entender cuándo usar cada uno es esencial para ingenieros de redes.
TL;DR - Resumen rápido
Puntos clave:
- SLAAC es sin estado y automático vía Router Advertisements — no se necesita servidor
- DHCPv6 proporciona control centralizado y rastreo de direcciones como DHCPv4
- Los flags M y O en Router Advertisements controlan qué método usar
Ir a: SLAAC para configuración automática, DHCPv6 para gestión centralizada, o Cuál usar cuándo para guía de implementación.
SLAAC: Autoconfiguración de dirección sin estado#
SLAAC permite que los dispositivos se configuren solos sin mantener estado en la red. El router envía periódicamente mensajes de anuncio de router (RA) que contienen el prefijo de red, y los dispositivos generan sus propias direcciones.
Cómo funcionan los anuncios de router#
Los routers hacen multicast de mensajes RA a ff02::1 (multicast de todos los nodos) cada 200 segundos por defecto. Los dispositivos también pueden solicitar un RA inmediatamente enviando una solicitud de router (RS) a ff02::2 (multicast de todos los routers).
Un RA contiene:
- Prefijo de red (ej.,
2001:db8::/64) - Dirección de puerta de enlace predeterminada
- Tiempo de vida del prefijo (válido y preferido)
- Flags M y O (explicados abajo)
El dispositivo combina el prefijo anunciado con un ID de interfaz de 64 bits autogenerado para crear su dirección.
Generación de ID de interfaz#
Existen dos métodos comunes:
EUI-64 (Identificador único extendido modificado)
Deriva el ID de interfaz de la dirección MAC. Para MAC 00:11:22:33:44:55:
- Inserta
ff:feen el medio:00:11:22:ff:fe:33:44:55 - Voltea el 7º bit:
02:11:22:ff:fe:33:44:55 - Resultado:
2001:db8::211:22ff:fe33:4455
Esto es determinístico pero revela identidad de hardware, creando preocupaciones de privacidad.
Extensiones de privacidad (RFC 4941) Genera IDs de interfaz aleatorios. Los sistemas operativos modernos crean direcciones temporales que cambian periódicamente (diariamente en la mayoría de los sistemas). El dispositivo mantiene tanto una dirección estable (para conexiones entrantes) como direcciones temporales (para conexiones salientes).
# Linux: Ver tipos de dirección
ip -6 addr show eth0
# Verás scope global para direcciones estables
# y scope global temporary para direcciones de privacidadQué proporciona SLAAC#
SLAAC maneja:
- Asignación de dirección IPv6
- Puerta de enlace predeterminada
- Longitud de prefijo
Lo que no proporciona por defecto:
- Servidores DNS
- Lista de búsqueda de dominio
- Servidores NTP
Opción RDNSS (Servidor DNS recursivo) RFC 8106 permite que los routers anuncien servidores DNS en mensajes RA. La mayoría de los sistemas modernos soportan esto, eliminando la necesidad de DHCPv6 en redes simples.
DHCPv6: Configuración administrada#
DHCPv6 funciona de manera similar a DHCPv4: los clientes solicitan configuración de un servidor. Opera en dos modos.
DHCPv6 con estado#
El servidor asigna direcciones y rastrea qué cliente tiene qué dirección. Los clientes realizan un intercambio de cuatro mensajes:
- Solicit: El cliente solicita configuración
- Advertise: El servidor ofrece una dirección
- Request: El cliente acepta la oferta
- Reply: El servidor confirma la asignación
Las direcciones se arriendan con tiempos de vida preferidos y válidos, requiriendo renovación.
DHCPv6 sin estado#
Los dispositivos usan SLAAC para direcciones pero consultan DHCPv6 para opciones adicionales como servidores DNS, nombre de dominio o servidores NTP. El servidor no rastrea direcciones, de ahí «sin estado».
Flags M y O#
Los anuncios de router contienen dos flags críticos:
Flag M (Configuración de dirección administrada) Cuando está en 1, los dispositivos deben usar DHCPv6 para obtener direcciones. Las direcciones SLAAC aún pueden generarse dependiendo del flag A en la información del prefijo.
Flag O (Otra configuración) Cuando está en 1, los dispositivos deben usar DHCPv6 para obtener opciones adicionales (DNS, NTP, etc.) pero no direcciones.
Combinaciones de flags:
M=0, O=0: Solo SLAAC (usa RDNSS para DNS)M=0, O=1: SLAAC + DHCPv6 sin estadoM=1, O=0: DHCPv6 para direcciones (configuración rara)M=1, O=1: DHCPv6 para direcciones y opciones
Comparación SLAAC vs DHCPv6#
| Característica | SLAAC | DHCPv6 |
|---|---|---|
| Asignación de dirección | Automática (prefijo + ID de interfaz) | Asignada por servidor |
| Estado en servidor | Ninguno | Con estado rastrea enlaces |
| Configuración DNS | RDNSS en RA (RFC 8106) | Opción 23 (servidores DNS) |
| Rastreo de direcciones | No posible | Visibilidad completa |
| Complejidad de cliente | Mínima | Requiere cliente DHCPv6 |
| Modo de fallo | Continúa funcionando | Punto único de fallo |
| Delegación de prefijo | No soportado | Soportado (DHCPv6-PD) |
Configuraciones comunes#
Solo SLAAC (con RDNSS)#
Mejor para redes simples donde no se requiere rastreo de direcciones. Ejemplo radvd.conf en Linux:
interface eth0 {
AdvSendAdvert on;
prefix 2001:db8:1::/64 {
AdvOnLink on;
AdvAutonomous on;
};
RDNSS 2001:4860:4860::8888 2001:4860:4860::8844 {
AdvRDNSSLifetime 300;
};
};Esta configuración proporciona todo lo que la mayoría de los clientes necesitan sin DHCPv6.
SLAAC + DHCPv6 sin estado#
Usa cuando RDNSS no está soportado o cuando se necesitan opciones adicionales. Establece flag O en radvd:
interface eth0 {
AdvSendAdvert on;
AdvOtherConfigFlag on; # O=1
prefix 2001:db8:1::/64 {
AdvOnLink on;
AdvAutonomous on;
};
};El servidor DHCPv6 proporciona DNS y otras opciones pero no asigna direcciones.
Solo DHCPv6 (Administrado)#
Las empresas a menudo prefieren esto para responsabilidad y control de acceso. Establece flag M:
interface eth0 {
AdvSendAdvert on;
AdvManagedFlag on; # M=1
AdvOtherConfigFlag on; # O=1
prefix 2001:db8:1::/64 {
AdvOnLink on;
AdvAutonomous off; # No usar SLAAC
};
};Nota: Algunos clientes aún generarán direcciones link-local y pueden crear direcciones SLAAC a pesar de AdvAutonomous off. Las políticas de seguridad de red no deben depender únicamente de deshabilitar SLAAC.
Cuál usar cuándo#
Usa SLAAC cuando:
- Redes pequeñas a medianas
- Los dispositivos son confiables
- No se requiere rastreo de direcciones
- Se prioriza la simplicidad
- Todos los clientes soportan RDNSS
Usa DHCPv6 cuando:
- Necesitas gestión de direcciones centralizada
- El cumplimiento requiere registro de direcciones
- Requieres delegación de prefijo (ISP a router de cliente)
- Necesitas proporcionar opciones complejas más allá de DNS
- Redes Windows (históricamente mejor soporte DHCPv6)
Enfoque híbrido (SLAAC + DHCPv6 sin estado):
- Buen compromiso para muchas redes
- Resiliente (SLAAC funciona si DHCPv6 falla)
- Proporciona flexibilidad para opciones adicionales
Solución de problemas de asignación de direcciones#
El dispositivo solo tiene link-local (fe80::/10)
No se recibieron anuncios de router. Verifica:
# Linux: Captura RAs
tcpdump -i eth0 'icmp6 && ip6[40] == 134'
# Verifica que el router esté enviando RAs
radvdumpEl dispositivo tiene dirección SLAAC pero sin DNS El router no está enviando RDNSS, o el cliente no lo soporta. Verifica contenido de RA:
radvdump | grep RDNSSSi falta, añade RDNSS a la configuración del router o habilita DHCPv6 sin estado.
DHCPv6 no funciona Verifica que el flag M u O esté establecido en RAs:
radvdump | grep -E "M flag|O flag"Verifica que el servidor DHCPv6 esté ejecutándose y accesible en puerto UDP 547:
# Lado del servidor
ss -ulnp | grep 547
# Lado del cliente
tcpdump -i eth0 port 547Múltiples direcciones en interfaz Esto es normal. Podrías ver:
- Dirección link-local (siempre presente)
- Dirección estable SLAAC (EUI-64)
- Direcciones temporales SLAAC (extensiones de privacidad)
- Dirección DHCPv6 (si usas DHCPv6 con estado)
Todas son válidas; el SO selecciona la dirección de origen apropiada basándose en RFC 6724.
Artículos relacionados#
- Cómo habilitar IPv6 - Guía paso a paso para configurar IPv6 en sistemas operativos y routers comunes
- Extensiones de privacidad IPv6 - Protege tu privacidad con direcciones IPv6 temporales
La mayoría de las redes modernas funcionan bien con SLAAC + RDNSS para simplicidad, o SLAAC + DHCPv6 sin estado para compatibilidad más amplia. Reserva DHCPv6 completamente administrado para entornos con requisitos específicos de cumplimiento o registro. Elijas lo que elijas, documenta tu decisión y configúralo consistentemente a través de tu red.
Preguntas frecuentes#
¿Puedo usar SLAAC y DHCPv6 al mismo tiempo?
Sí. Esto se llama enfoque híbrido. Los dispositivos pueden obtener sus direcciones vía SLAAC y configuración adicional (como servidores DNS) vía DHCPv6 sin estado. Muchas redes usan esta combinación para obtener los beneficios de ambos métodos.
¿Qué método es más seguro?
Ni SLAAC ni DHCPv6 es inherentemente más seguro. Ambos pueden ser vulnerables a anuncios de router maliciosos o servidores DHCPv6 maliciosos. La seguridad proviene de una segmentación de red adecuada, RA Guard, DHCPv6 Shield y reglas de firewall, no de la elección del método de asignación de direcciones.
¿SLAAC funciona sin router?
No. SLAAC requiere anuncios de router para proporcionar el prefijo de red. Sin un router enviando RAs, los dispositivos no configurarán direcciones IPv6 globales vía SLAAC. Solo tendrán direcciones link-local (fe80::/10).
¿Por qué algunos sistemas operativos prefieren SLAAC sobre DHCPv6?
SLAAC es más simple, sin estado y está integrado en la especificación IPv6 desde el principio. Requiere menos infraestructura y configuración. Algunos vendedores de SO (notablemente Apple) priorizaron el soporte SLAAC porque se alinea con la filosofía de diseño IPv6 de autoconfiguración.