¿Cómo configurar radvd, dhcpd6, enrutamiento y / 64 subred según el prefijo delegado del servidor DHCPv6-PD?

10

Mi ISP acaba de iniciar el servicio de doble pila IPv4 / IPv6. Para conectarse a Internet IPv4 / IPv6, casi todos los usuarios suelen usar un CPE arrendado por el ISP. Pero quiero usar mi enrutador Linux en lugar de dicho CPE, porque mi enrutador tiene muchas funciones (muchas reglas de iptables y 3 interfaces Ethernet, proxy inverso http, caché http, memcached, servidor smtp / pop y proxy DNS). Quiero dejar que sea un enrutador de doble pila IPv4 / IPv6.

Mi enrutador

  • CentOS6.0 i686
  • eth0 para WAN
  • eth1,2 para LAN
  • ISC dhcp (versión 4.1.1) instalado por "# yum install dhcp" del repositorio de actualizaciones de CentOS
  • radvd (versión 1.6) instalado por "# yum install radvd" del repositorio CentOS-base
  • [EDITAR] La razón por la que uso el cliente ISC es que mi enrutador tiene que enviar una opción 16 de DHCPv6 (clase de proveedor) en sus mensajes de solicitud y solicitud, a fin de obtener la opción de información específica del proveedor que incluye información específica del ISP ( Número de teléfono SIP, dirección del servidor de firmware). Sé cómo configurar la opción 16 en ISC dhclient, pero no lo sé en WIDE-dhcpv6. Y no puedo encontrar configuraciones como "id-assoc" en ISC dhclient.

Mi meta

  • El prefijo / 48 se delega al cliente DHCPv6-PD (Delegación de prefijo DHCPv6) (dhclient) en eth0.
  • Se establece una ruta predeterminada de IPv6 hacia ISP. Tengo que considerar la dirección local de enlace del servidor DHCPv6 del ISP como una ruta predeterminada.
  • Se asignan una subred / 64 y una dirección global (que se encuentran en el prefijo delegado) a cada LAN I / F (eth1 / eth2).
  • radvd en eth1 y eth2 anuncia RA basado en la subred / 64 asignada.
  • dhcpd6 en eth1 y eth2 anuncia información de red adicional (servidores de nombres, lista de búsqueda de dominios y direcciones de servidores sip) recibida del servidor DHCPv6 del ISP.

Mi configuracion actual

/ etc / sysconfig / network

NETWORKING=yes
HOSTNAME=xxx.yyy.zzz

# Enable IPv6 routing and stop accept_ra/autoconf.
IPV6FORWARDING=yes

/ etc / sysconfig / network-scripts / ifcfg-eth0

DEVICE="eth0"
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none

# Enable DHCPv6-PD client.
DHCPV6C=yes
DHCPV6C_OPTIONS="-P -cf /etc/dhcp/dhclient6.conf"

# Disable make_resolv_conf function in /sbin/dhclient-script.
PEERDNS=no

/etc/dhcp/dhclient6.conf

script "/sbin/dhclient-script";
interface "eth0" {
        send dhcp6.reconf-accept;
        also request dhcp6.vendor-opts, dhcp6.sip-servers-names, dhcp6.sip-servers-addresses, dhcp6.sntp-servers;
}

Resultado

Después de "# reinicio de la red de servicio", el cliente DHCPv6-PD parece finalizar correctamente.

lease6 {
  interface "eth0";
  ia-pd xx:xx:xx:xx {
    starts 1312464004;
    renew 7200;
    rebind 10800;
    iaprefix 24xx:xxxx:xxxx::/48 {
      starts 1312464004;
      preferred-life 12600;
      max-life 14400;
    }
  }
  option dhcp6.client-id xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;
  option dhcp6.server-id xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;
  option dhcp6.reconf-accept ;
  option dhcp6.sip-servers-addresses 24xx:xxxx:xxxx:xxxx::1;
  option dhcp6.name-servers 24xx:xxxx:xxxx:xxxx::3,24xx:xxxx:xxxx:b::3;
  option dhcp6.domain-search "xxx.jp.", "yyy.jp.";
  option dhcp6.sntp-servers 24xx:xxxx:xxxx:xxxx::a,24xx:xxxx:xxxx:b::b;
}

Pregunta

El cliente DHCPv6-PD se delega / 48 prefijo con éxito. Pero después de eso,

  • ¿Cómo establecer una ruta predeterminada de IPv6 en la tabla de enrutamiento del enrutador?
  • ¿Cómo asignar una dirección IPv6 global y / 64 subred a cada LAN I / F (eth1 y eth2) en función del prefijo delegado?
  • ¿Cómo activar radvd para anunciar RA en cada LAN I / F (eth1 y eth2)?
  • ¿Cómo activar el servidor DHCPv6 (dhcpd6) en cada LAN I / F para anunciar información adicional de la red (servidores de nombres, lista de búsqueda de dominios y direcciones de servidores sip) recibidas del servidor DHCPv6 del ISP?

Mi conjetura

De acuerdo con "$ man dhclient" y "$ man dhclient-script", parece que dhclient-script se usa para configurar dichos ajustes, y ofrece algunos ganchos. Pero ahora, no hace nada para el cliente DHCPv6-PD.

Sí, es posible que tenga que escribir algunos scripts adecuados para mi entorno DHCPv6-PD, aunque no estoy familiarizado con las configuraciones de red IPv6. ¿Alguien me dejó saber la configuración anterior en dhclient-script? [EDITAR] Quiero saber la práctica dhclient-script.

Y me preocupa, se debe tomar alguna consideración especial. Por ejemplo, debido a que cada dirección IPv6 tiene una vida útil preferida / válida, cuando asigno una dirección IPv6 global a una interfaz LAN basada en el prefijo delegado, tengo que asignar no solo una dirección IPv6 sino también su vida útil que debe derivarse de la delegada vida útil preferida / válida del prefijo?

Además, ¿pueden tener que reconfigurar el servidor radvd y el servidor DHCPv6 en las interfaces LAN cuando ocurre la reconfiguración de DHCPv6? ¿Qué gancho se debe usar?

[EDITAR] Cuando ocurre la reconfiguración de DHCPv6, ¿cómo anunciar información nueva y obsoleta? ¿Radvd anuncia automáticamente que el prefijo anterior es obsoleto? ¿El servidor DHCPv6 anuncia automáticamente que los servidores de nombres anteriores son obsoletos?

takaomag
fuente

Respuestas:

4

No sé la respuesta a su pregunta, pero solo quiero advertirle sobre el uso de la dirección del servidor DHCP como enrutador predeterminado. Si eso funciona es por casualidad ... En IPv6, la ruta predeterminada se comunica por RA y no por DHCP.

Deberá habilitar el reenvío, aceptar RA y enviar RS. Un problema aquí es que el núcleo incluido en Centos6 no le permite hacer eso. Cuando el reenvío está habilitado, la aceptación de RA y el envío de RS están deshabilitados. Sin embargo, debería haber un núcleo CentosPlus con los parches relevantes. Vea el hilo / mensaje de la lista de correo en http://lists.centos.org/pipermail/centos/2011-April/thread.html#109756

Las configuraciones relevantes de sysctl.conf son:

net.ipv6.conf.all.forwarding=1
net.ipv6.conf.eth0.accept_ra=2
net.ipv6.conf.eth0.accept_ra_defrtr=1
net.ipv6.conf.eth0.router_solicitations=1
Sander Steffann
fuente
2
En realidad, desea que accept_ra sea 2 (aceptar incluso si el enrutamiento está habilitado). De lo contrario, el núcleo lo ignora en un enrutador.
Kyle Butt el
2
  • Una ruta predeterminada de IPv6 debe configurarse mediante lo que tenga su conexión de Internet predeterminada (aguas arriba), antes de usar DHCPv6 PD para obtener las subredes adicionales. No has mencionado cómo te estás conectando realmente, así que no puedo ayudarte allí.
  • Uso el cliente WIDE DHCPv6, en lugar de ISC, por lo que no sé cómo hacerlo específicamente, pero espero que ISC tenga algo equivalente a esta opción de configuración WIDE:

    id-assoc pd {
        prefix-interface eth0 {
            sla-id 1;
            sla-len 4;
        };
    };
    

    Básicamente, le dice al cliente DHCP cómo asignar subredes a las interfaces internas; la configuración anterior dice "Me delegan 4 bits de prefijo ( sla-len 4), tomo la primera subred disponible ( sla-id 1) y la asigno a eth0( prefix-interface eth0).

  • Configure radvd con interfaceestrofas apropiadas (hay buenos ejemplos en la radvd.confpágina del manual para trabajar), y simplemente funcionará.
  • No puedo ayudarte allí; aparte de las pruebas, no uso el servicio DHCPv6 (obtengo toda mi información de DHCP de mi servidor DHCP).
womble
fuente
Gracias por tu respuesta. 1. Cómo conectarse en sentido ascendente es simplemente conectar un cable Ethernet a un FTTH GE-PON. En este momento, no hay forma de especificar la ruta IPv6 predeterminada a través de DHCPv6, tengo que considerar la dirección local de enlace del servidor DHCPv6 como una ruta predeterminada.
takaomag
2. Aunque no lo mencioné, la razón por la que uso ISC dhclient es que mi enrutador tiene que enviar una opción 16 de DHCPv6 (clase de proveedor) en sus mensajes de solicitud y solicitud, para obtener la opción de información específica del proveedor que incluye algunos Información específica del ISP (número de teléfono SIP, dirección del servidor de firmware). Sé cómo configurar la opción 16 en ISC dhclient, pero no lo sé en WIDE-dhcpv6. Y no puedo encontrar configuraciones como "id-assoc" en ISC dhclient.
takaomag
2
3,4. Es posible que pueda escribir algunos scripts pobres para construir radvd.conf y dhcpd6.conf en función de la información (Prefijo, etc.) del servidor DHCPv6. Pero cuando ocurre la reconfiguración de DHCPv6, ¿cómo anunciar información nueva y obsoleta? ¿Radvd anuncia automáticamente que el prefijo anterior es obsoleto? ¿El servidor DHCPv6 anuncia automáticamente que los servidores de nombres anteriores son obsoletos?
takaomag
De todos modos, quiero saber la práctica dhclient-script.
takaomag
No agregue toda esta información en los comentarios sobre una respuesta; agréguelo a su pregunta .
womble
-1

Wombie ha dado la misma respuesta que usaría para configurar radv y enrutamiento. Inet6 está diseñado para autoconfigurarse sin la necesidad de un servidor DHCP.

No uso DHCPv6, ya que puede ser manejado por radvd y zeroconf. radvd se puede configurar para suministrar servidores de nombres y puede anunciar servidores desde /etc/resolv.conf. Las nuevas versiones de radvd también han implementado la distribución de listas de búsqueda.

Configuré avahi-daemon para distribuir servicios de nombres y servidores a los clientes. Necesitará que los clientes puedan hacer el descubrimiento del servicio. No he hecho muchas pruebas de descubrimiento de servicios, ya que ejecuto una red de doble pila en todos los ámbitos.

BillThor
fuente
Incluso si uso el servidor DHCPv6 o radvd, tengo que escribir algunos scripts para construir dhcpd6.conf o radvd.conf dinámicamente en función de la información (Prefijo, etc.) del servidor DHCPv6. Pero cuando ocurre la reconfiguración de DHCPv6, ¿cómo anunciar información nueva y obsoleta a los hosts del lado LAN? Si construyo dhcpd6.conf o radvd.conf dinámicamente solo en base a nueva información del servidor DHCPv6, ¿radvd anuncia automáticamente que el prefijo anterior es obsoleto? ¿El servidor DHCPv6 anuncia automáticamente que los servidores de nombres anteriores son obsoletos?
takaomag
radvd puede usar el prefijo :: / 64 para obtener automáticamente sus direcciones de la interfaz. No necesita reescribir la configuración. Los servidores DNS y la lista de búsqueda deben ser datos estáticos. La configuración automática de IPv6 está diseñada para manejar las direcciones de migración. No sé qué tan bien su ISP apoya la transición. No he mirado en DHCPv6.
BillThor