¿Cómo puedo 'sumergir mis dedos de los pies' en el direccionamiento dinámico de red IPv6?

14

¿Hay alguna manera en IPv6 para permitir el direccionamiento dinámico y la configuración de un subconjunto de hosts en una red identificada por direcciones mac específicas?

He estado trabajando lentamente en la configuración de IPv6. Todos mis enrutadores tienen direcciones y rutas estáticas y algunos servidores críticos tienen direcciones estáticas. Ahora quiero comenzar a probar algunos clientes, pero no quiero simplemente habilitarlo para toda una red a la vez. Me gustaría poder habilitarlo solo para algunos hosts.

En el mundo IPv4, configuraría un servidor DHCP con 0 direcciones libres en el alcance, y solo configuraría las reservas. En el mundo de IPv6, esto no parece ser una opción, ya que no puedo configurar una puerta de enlace predeterminada a través de DHCPv6, que aparentemente solo se puede aprender a través de anuncios de enrutador.

¿Cómo se aborda esto? ¿Simplemente no es posible habilitar selectivamente IPv6 en una red?

Mis enrutadores están basados ​​en Linux y el servidor DHCPv6 se ejecutaría en Linux si es importante, y estoy buscando habilitar clientes de todo tipo (Windows / Linux / OSX).

Zoredache
fuente
¿Por qué no puedes hacer reservas DHCPv6? Incluso mi enrutador doméstico puede hacer esto.
Michael Hampton
@MichaelHampton, Sí, DHCPv6 debería poder entregar una dirección al cliente, pero ¿cómo hago para que el cliente tenga una ruta predeterminada?
Zoredache
En el servidor DHCP, puede crear algunas reglas de iptables que bloqueen DHCPv6 de algunas direcciones MAC y permita las que desee que tengan habilitado IPv6.
Atle
@ Zoredache: la ruta predeterminada siempre se comunica mediante mensajes de anuncio de enrutador (RA). DHCPv6 no intercambia información de enrutamiento.
Sander Steffann

Respuestas:

7

No veo por qué no puede hacerlo sustancialmente de la misma manera con IPv6 que con IPv4 (aunque recomendaré la implementación por subredes en lugar de por hosts únicos; le ahorrará mucho tiempo y dolores de cabeza más adelante).

Así es como funciona IPv6 aquí (muy simplificado; vea RFC 4861 para los detalles sangrientos):

El enrutador predeterminado envía un anuncio de enrutador periódicamente o cuando recibe una solicitud de enrutador de un nuevo host. El RA contiene la dirección del enrutador, por supuesto, y varios indicadores. Aquí nos interesan la bandera M (administrada) y la bandera O (otra). Estos indicadores especifican que el host debe obtener el resto de su información de configuración de un servidor DHCPv6:

  • Cuando se establece el indicador M, DHCPv6 proporciona toda la información de configuración (excepto las direcciones del enrutador).
  • Cuando se establece el indicador O, el host configura su propia dirección IPv6 con SLAAC; DHCPv6 proporciona toda otra información de configuración (excepto las direcciones del enrutador).

En ese punto, es solo cuestión de usar, por ejemplo, fixed-address6en su dhcpd.confconfiguración para establecer reservas; su configuración de DHCPv6 será sustancialmente similar a la configuración de DHCP para IPv4.

También he omitido el caso en el que una subred puede tener dos o más enrutadores que manejan la ruta "predeterminada"; en este caso, busque la preferencia de enrutador IPv6 para configurar este aspecto.

Michael Hampton
fuente
Ok, esto suena bien. El desafío es que actualmente estoy experimentando con el uso de DnsMasq para anuncios de ruta. Lo que parece carecer de las características necesarias para habilitar esto. Supongo que tendré que cambiar a usar radvd.
Zoredache
1
@Zoredache dnsmasq es bastante mínimo a este respecto, y no creo que tenga todas las características necesarias. Estoy usando radvd yo mismo. Si necesita algo minimalista, por ejemplo, para un sistema integrado, considere 6relayd . Este es un anuncio combinado de enrutador / servidor y retransmisor DHCPv6 que se escribió originalmente para OpenWrt.
Michael Hampton
1

Puede configurar un servidor DHCPv6 (como WIDE o ISC) para la configuración con estado o radvd para la configuración automática sin estado. IPv6 especifica el rango FC00 :: / 7 para direcciones locales únicas (similar a los rangos de direcciones privadas en IPv4).

Mark Bidewell
fuente
Y no se supone que use fc00 :: o fd00 :: como veo que hacen algunas personas. Debes elegir un aleatorio / 48 dentro de ese rango.
Michael Hampton