Я пытаюсь добавить интерфейс VRF в пространство имен сети в Linux. я получаю
RTNETLINK answers: invalid argument.
Я использую версию ядра 4.15.0 с сайта kernel.org.
Ниже приведен точный список команд, которые я выполняю, и связанный с ними вывод.
$IP link add vrf-red type vrf table 10
$IP netns add foo
$IP link set vrf-red netns foo
RTNETLINK answers: Invalid argument
Это не поддерживается? Если да, то в чем причина?
Пример использования: я пытаюсь настроить два устройства PE в одном компьютере с Linux, поэтому у меня есть отдельный netns для каждого устройства PE. Теперь я хочу добавить устройство VRF в PE. netns
так что позже я могу запустить, скажем, зебра в PE netns
и он будет использовать VRF, доступный в этом пространстве имен.
Что-то мне не хватает?
Хотя вы не можете переместить интерфейс VRF в сетевое пространство имен, вы можете создать в пространстве имен:
ip netns add foo
ip -n foo link add vrf-red type vrf table 10
Да, действительно невозможно добавить интерфейс VRF к netns
Ниже приведен соответствующий код - (из источников ядра, которые я использую - 4.15.0 в drivers/net/vrf.c
линия 1257
)
/* don't allow vrf devices to change network namespaces. */
dev->features |= NETIF_F_NETNS_LOCAL;