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

Использование встроенного коммутатора SR-IOV I350 для виртуальной сети KVM - требуется ли внешний коммутатор?

Я подключаю несколько виртуальных машин KVM к виртуальной сети, которая направлена ​​в физическую сеть 1 Гбит. Маршрутизатор использует netfilter / iptables для фильтрации трафика между реальной и виртуальной сетями. Для коммутатора виртуальной сети я использую SR-IOV с сквозной пропускной способностью PCI. По сравнению с использованием моста Linux эта настройка обеспечивает более высокую пропускную способность (ограниченную полосой пропускания PCIe) с меньшими накладными расходами ЦП (см. Стр. 22-23 из Презентация Тошиаки Макиты на LinuxCon Japan, 2014.

Я назначил по одной VF одного и того же порта сетевой карты Intel I350 каждой виртуальной машине и хосту KVM. (Каждый порт I350 имеет максимум 7 VF, поэтому 6 виртуальных машин + хост - это максимальный размер этой виртуальной сети). Эта настройка работает должным образом, за исключением досадной причуды: встроенный коммутатор I350 работает только тогда, когда я подключаю связанный физический порт I350 с помощью физического соединительного кабеля к физическому внешнему коммутатору (у которого все остальные порты пусты). При включенном внешнем переключателе виртуальная сеть работает нормально; но когда внешний коммутатор отключается, статус канала PF изменяется на «NO-CARRIER», и виртуальная сеть больше не передает пакеты.

Кто-нибудь знает, как заставить работать встроенный переключатель I350? без активная ссылка на физический порт?

Хост виртуальной машины работает под управлением Debian 10 (Buster), если это важно.

Спасибо за свет, который вы пролили!

Дополнительные примечания:

Обновления:

Хотя я не уверен, будет ли это работать на сетевом адаптере I350, я думаю, что ответ находится на странице руководства ip-link:

vf NUM specify a Virtual Function device to be configured. The associated PF device
must be specified using the dev parameter.
[--cut--]
    state auto|enable|disable - set the virtual link state as seen by
    the specified VF. Setting to auto means a reflection of the PF link state,
    enable lets the VF to communicate with other VFs on this host even
    if the PF link state is down, disable causes the HW to drop any packets
    sent by the VF.

Настройка VF state к enable должен активировать все VF независимо от состояния канала и разрешать переключение между ними даже без кабеля.