Estoy intentando agregar una interfaz VRF a un espacio de nombres de red en Linux. estoy obteniendo
RTNETLINK answers: invalid argument.
La versión del kernel que estoy usando es 4.15.0 de kernel.org
A continuación se muestra la lista exacta de comandos que estoy ejecutando y los resultados asociados.
$IP link add vrf-red type vrf table 10
$IP netns add foo
$IP link set vrf-red netns foo
RTNETLINK answers: Invalid argument
¿Esto no es compatible? Si es así, ¿cuál es el motivo?
Caso de uso: estoy intentando configurar dos dispositivos PE en la misma caja de Linux, por lo que tengo redes separadas para cada uno de los dispositivos PE. Ahora quiero agregar un dispositivo VRF al PE netns
para luego poder ejecutar, por ejemplo, zebra en el PE netns
y usaría el VRF que está disponible en este espacio de nombres.
¿Hay algo que este olvidando?
Respuesta1
Sí, de hecho no es posible agregar una interfaz VRF a unnetns
A continuación se muestra el código relevante (de las fuentes del kernel que estoy usando, 4.15.0 en drivers/net/vrf.c
línea 1257
)
/* don't allow vrf devices to change network namespaces. */
dev->features |= NETIF_F_NETNS_LOCAL;
Respuesta2
Si bien no puede mover la interfaz VRF a un espacio de nombres de red, puede crear en el espacio de nombres:
ip netns add foo
ip -n foo link add vrf-red type vrf table 10