Adicionando interface VRF a um namespace de rede

Adicionando interface VRF a um namespace de rede

Estou tentando adicionar uma interface VRF a um namespace de rede no Linux. estou obtendo

RTNETLINK answers: invalid argument.

A versão do kernel que estou usando é 4.15.0 de kernel.org

Abaixo está a lista exata de comandos que estou executando e a saída associada

$IP link add vrf-red type vrf table 10
$IP netns add foo
$IP link set vrf-red netns foo
RTNETLINK answers: Invalid argument

Isso não é suportado? Em caso afirmativo, qual é a justificativa?

Caso de uso: estou tentando configurar dois dispositivos PE na mesma caixa Linux, então tenho redes separadas para cada dispositivo PE. Agora quero adicionar um dispositivo VRF ao PE netnspara que mais tarde eu possa executar, digamos, zebra no PE netnse usar o VRF que está disponível neste namespace.

Há algo que estou perdendo?

Responder1

Sim, de fato não é possível adicionar uma interface VRF a umnetns

Abaixo está o código relevante - (das fontes do kernel que estou usando - 4.15.0 em drivers/net/vrf.clinha 1257)

/* don't allow vrf devices to change network namespaces. */
dev->features |= NETIF_F_NETNS_LOCAL;

Responder2

Embora não seja possível mover a interface VRF para um namespace de rede, você pode criar no namespace:

ip netns add foo
ip -n foo link add vrf-red type vrf table 10

informação relacionada