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 netns
para que mais tarde eu possa executar, digamos, zebra no PE netns
e 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.c
linha 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