Смотрим текущее состояние
brctl show
Избегайте конфликта ip адресов на бриджах и интерфейсах, посмотреть их можно с помощью команды
ip -4 a
Суть в том, чтобы в одном бридже было не больше одного интерфейса (неважно vlan или обычный ethernet)
/etc/sysconfig/network-scripts/ifcfg-br2 (пример конфига bridge)
DEVICE=br2
TYPE=Bridge
BOOTPROTO=static
ONBOOT=yes
IPADDR=169.255.255.100
NETMASK=255.255.255.255
NM_CONTROLLED=no
ARP=no
/etc/sysconfig/network-scripts/ifcfg-eth5 (пример интерфейса в нём)
DEVICE=eth5
BOOTPROTO=static
BRIDGE=br2
IPADDR=169.255.255.39
NETMASK=255.255.255.255
ARP=no
TYPE=Ethernet
ONBOOT=yes
В настройках интерфейса имя бриджа, в котором он должен находиться указывается с помощью строки BRIDGE=br2
При большом числе бриджей/интерфейсов, вы, скорее всего, будете копировать файл конфига - не забудьте менять DEVICE= в копиях.
Применение настроек:
service network restart
Иногда этого не достаточно, в таком случае либо руками достаньте все интерфейсы из бриджей:
brctl delif <имя бриджа> <имя интерфейса>
и повторите рестарт сети (или чтобы не заморачиваться полностью перезагрузите сервер.
При изменении настроек уже имеющихся и давно настроенных интерфейсов поменяйте значение NETMASK на 255.255.255.255 и добавьте строчку
ARP=no
Также, если вланов очень много, можно воспользоваться скриптом /usr/local/Reductor/bin/setup_network_many_vlan_util.sh. Использование:
tags="vlan1 vlan2 vlan3 .. vlanN" /usr/local/Reductor/bin/setup_network_many_vlan_util.sh <номер начального бриджа> <название интрефейса, на котором нужно создать влан-интерфейсы>
Пример использования:
tags="100 200 300" /usr/local/Reductor/bin/setup_network_many_vlan_util.sh 0 eth0
Будут созданы влан-интерфейсы для принятия зеркала eth0.100, eth0.200, eth0.300, созданы бриджи br0, br1, br2 и соответственно по порядку каждый интерфейс будет принадлежать отдельному бриджу.
После этих манипуляций нужно будет рестартануть сеть
service network restart