
У меня есть следующий вариант использования. Машина, на которой работают виртуальные машины, которые должны быть размещены в 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.