Pregunta Anunciar una ruta de subred con radvd


Hemos creado una pequeña red de pruebas IPv6. La configuración se ve así:

    ::/0
+----------+
| Firewall | Router to the public net
+----------+
     |           2001:...::/106
     |       +----------+
     +-------|  SIT GW  | sit Tunnel gatway to the some test users
     |       +----------+
     |
+----------+
| Test Sys |  Testsystem
+----------+

La idea es anunciar la ruta predeterminada desde el firewall y la ruta para las subredes SIT desde la puerta de enlace de sit. Las configuraciones para radvd son:

# Firewall
interface eth0
{
   AdvSendAdvert on;
   route ::/0 
   {
   };
};


# SIT Gatway
interface eth0
{
   AdvSendAdvert on;
   route 2001:...::/106
   {
   };
};

Hemos capturado los adv. Los paquetes con tcpdump y los paquetes se ven bien. Vemos una ruta predeterminada desde el fw, y la ruta de la subred desde la entrada de SIT.

Pero si nos fijamos en el sistema de prueba, hay dos rutas predeterminadas sobre ambas puertas de enlace. No hay ruta de subred. El enrutamiento no funciona, por supuesto. Aquí las rutas que obtenemos:

2001:.....::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
default via fe80::baac:6fff:fe8e:XXXX dev eth0  proto kernel  metric 1024  expires 0sec mtu 1500 advmss 1440 hoplimit 64
default via fe80::e415:aeff:fe12:XXXX dev eth0  proto kernel  metric 1024  expires 0sec mtu 1500 advmss 1440 hoplimit 64

¿Alguna idea?


6
2017-10-11 12:50


origen


Ahora, ¿qué hace la red? De Verdad ¿parece? No creo que estés tratando de usar algún tipo de misterioso cable de 3 vías. ¿Y qué pasa con el /106? - Michael Hampton♦
@MichaelHampton, por supuesto, hay un cambio entre los sistemas. Y la / 106 es una subred pequeña utilizada para los puntos finales de sesión. Por supuesto, esta red no podría utilizarse para autoconfigurar. - Thomas Berger
Probablemente debería establecer direcciones estáticas en los puntos finales del túnel. Realmente no puedo pensar en ninguna buena razón para usar radvd allí. - Michael Hampton♦
@MichaelHampton usamos la dirección estática allí. El problema está dentro de la enrutamiento no la asignación de direcciones. - Thomas Berger
radvd  anuncia rutas No los configura en primer lugar. Publica tu tabla de enrutamiento. - Michael Hampton♦


Respuestas:


He encontrado el problema.

Por defecto, el kernel de Linux solo acepta rutas predeterminadas a través de las opciones de publicidad del enrutador en icmpv6.

Para arreglar esto, el parámetro correcto del kernel debe ser configurado:

net.ipv6.conf.all.accept_ra_rt_info_max_plen = 128

De los documentos del núcleo:

accept_ra_rt_info_max_plen - INTEGER           Longitud máxima de prefijo de información de ruta en RA.

    Route Information w/ prefix larger than or equal to this
    variable shall be ignored.

    Functional default: 0 if accept_ra_rtr_pref is enabled.
                        -1 if accept_ra_rtr_pref is disabled.

6
2017-10-12 14:41