Cómo configurar automáticamente la ruta IPv6

Cómo configurar automáticamente la ruta IPv6

Configuré un enrutador simple que debería proporcionar conectividad IPv6 a las máquinas que están en la LAN detrás de él. El enrutador tiene 2 interfaces de red (eth0, eth1), las máquinas tienen 1 (eth0).

En eth0 del enrutador se accede solo a la red local, en eth1 se accede a Internet. Configuré todos los parámetros del kernel, eso funciona bien.

La IP del enrutador es fd00::1, instalé dhcpd en el enrutador y configuré el rango fd00::100 - fd00::fffe.

Cuando inicio una máquina en esta red, se le asigna una IP desde dhcpd, por ejemplo fd00::fffa, pero no puede acceder a Internet por razones obvias: le falta la ruta.

Cuando agrego una ruta manualmente, sudo route -6 add 2000::/3 gw fd00::1la máquina comienza a tener acceso a Internet hasta que la reinicio.

Puedo agregar esta ruta manualmente al script de inicio de cada máquina, pero prefiero configurarla automáticamente para que cuando inicie una máquina en esta red tenga acceso a Internet IPv6 sin necesidad de nada más.

Según algunas sugerencias, también instalé radvd en el enrutador e inserté esta opción:

route 2000::/3 {};

Lo más probable es que esté mal, pero no pude encontrar ninguna documentación ni ejemplos. No funciona. Usar radvd en lugar de dhcpd para asignar direcciones IPv6 no funciona en absoluto, si desactivo las máquinas dhcpd, configuro automáticamente algunas direcciones IPv6 aleatorias y ni siquiera se ven, ni pueden hacer ping al enrutador.

¿Cómo configuro mi LAN para configurar automáticamente IPv6 para todas las máquinas?

Nota: No necesito ni quiero que cada máquina tenga IPv6 público, NAT está bien.

Respuesta1

Inmediatamente detecto dos problemas con su configuración. Las direcciones RFC 4193 no se pueden enrutar globalmente. Eso significa que esas direcciones no podrán comunicarse con el mundo exterior.

Seguro que puedes usar NAT, pero se sabe que NAT causa numerosos problemas. NAT es una solución alternativa destinada a abordar temporalmente la escasez de direcciones IP. IPv6 resuelve ese problema. Todos los demás problemas que la gente ha intentado resolver utilizando NAT tienen una mejor solución que no involucra NAT.

Además, su prefijo claramente no se generó de acuerdo con las especificaciones del RFC 4193. Cita relevante:

Los ID globales asignados localmente DEBEN generarse con un algoritmo pseudoaleatorio

Si estos dos problemas en la configuración de la red impiden que los clientes se comuniquen externamente, sólo lo descubrirá probándolo. Existe software que intenta detectar una configuración de IPv6 subóptima y evitar por completo el uso de IPv6 si se detecta alguna. Es bastante plausible que algún software cliente se niegue a utilizar la conexión IPv6 en su configuración.

Dicho esto, no es imposible lograr que los clientes se comuniquen externamente utilizando direcciones RFC 4193. Aquí hay un radvd.confarchivo que he usado brevemente en el pasado. Con esta configuración, algunos clientes intentaron comunicarse externamente utilizando sus direcciones RFC 4193 asignadas.

interface wlan0 { 
        AdvSendAdvert on;
        MinRtrAdvInterval 3; 
        MaxRtrAdvInterval 10;
        prefix fdbd:5df9:dca3::/64 { 
                AdvOnLink on;
                AdvAutonomous on; 
                AdvRouterAddr on; 
        };
};

Sin embargo, esta configuración no funciona con todos los clientes. Lo probé nuevamente con un cliente con Android. El teléfono configuró una dirección IPv6, pero no intentó utilizar IPv6 para comunicación externa.

Luego cambié el prefijo a 2001:db8:dca3::/64, momento en el que el teléfono comenzó a enviar paquetes IPv6 a la puerta de enlace. Entonces, Android es un ejemplo de una plataforma que se niega a utilizar direcciones RFC 4193 de esta manera.

información relacionada