Назад | Перейти на главную страницу

Добавление интерфейса vrf в сетевое пространство имен

Я пытаюсь добавить интерфейс 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;