linux bridge vlan-aware и нетегированный трафик

linux bridge vlan-aware и нетегированный трафик

У меня есть следующий вариант использования. Машина, на которой работают виртуальные машины, которые должны быть размещены в VLAN с идентификатором 166. Трафик должен выходить из физического интерфейса, enp89s0который подключен к основному сетевому нетегированному трафику. Для таких вариантов использования в Linux мост помогает соединять все вместе. Машина использует дистрибутив Linux, поэтому я использую его networdдля настройки сетевых интерфейсов. Вот мои попытки:

br0.netdev

[NetDev]
Name=br0
Kind=bridge
[Bridge]
DefaultPVID=1
STP=no
VLANFiltering=yes

br0.network

[Match]
Name=br0
[Network]
VLAN=enp89s0
VLAN=eth166
[BridgeVLAN]
VLAN=1
[BridgeVLAN]
VLAN=166

Я считал, что локальная сеть по умолчанию имеет VLAN=1.

Проблема в том, что когда я применяю эту конфигурацию, enp89s0интерфейс теряет IP-адреса и становится недоступным.

Поэтому мой вопрос заключается в том, как правильно настроить мост, который будет работать с VLAN и сетью без тегов.

решение1

Когда вы размещаете физический интерфейс на мосту, вы больше не настраиваете на нем параметры, связанные с IP, интерфейс по сути исчезает. В обычном случае это мост, который получает IP-адрес/маску для этого интерфейса. В случае моста с поддержкой vlan вы настраиваете интерфейс vlan поверх этого моста с необходимыми vid и ip/маской.

решение2

Если кому-то интересно, как настроить мост с поддержкой VLAN и IP-адресом "управления" (без тегов). Не обязательно иметь виртуальный интерфейс на мосту. Достаточно иметь VID по умолчанию/родной (= VLAN ID с включенной опцией PVID) с установленным на мосту выходом без тегов, например

bridge vlan add dev br0 vid 100 pvid untagged self

и тот же VID по умолчанию включен для всех интерфейсов, с которых должен быть доступен IP-адрес моста, например

bridge vlan add dev eth0 vid 100 pvid master

Примечание: нет необходимости устанавливать нетегированный выход для VID по умолчанию на eth0.

Связанный контент