Agregar una interfaz vrf a un espacio de nombres de red

Agregar una interfaz vrf a un espacio de nombres de red

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 netnspara luego poder ejecutar, por ejemplo, zebra en el PE netnsy 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.clí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

información relacionada