[devel] etcnet and bridge(vlan_filtering)

Alexey Shabalin a.shabalin на gmail.com
Ср Окт 24 21:49:04 MSK 2018


День добрый.
С удивлением обнаружил в etcnet поддержку vlan_filtering. Спасибо shrek на .

Прошу посмотреть мои изменения в create-bri
http://git.altlinux.org/people/shaba/packages/etcnet.git

- вместо "printf '%s' 1 > /sys/..."   запускаем
 ip link set $NAME type bridge vlan_filtering 1
- добавлен запуск команд из файла "$MYIFACEDIR/bridge"

Попробую объяснить зачем все это нужно. (еще можно почитать тут -
https://developers.redhat.com/blog/2017/09/14/vlan-filter-support-on-bridge/)
Допустим у нас есть bridge - br0 и, например, 3 интерфейса - eth0,eth1,eth2.
Цель получить:
- на eth0 тэгированные(trunk) vlan'ы 100 и 200
- на eth1 тэгированные(trunk) vlan'ы 200 и 300
- на eth2 не тэгированные(access) vlan 200

В /etc/net/iface/br0/options
TYPE=bri
HOST=''eth0 eth1 eth2"
VLAN_AWARE=yes
в  мы получим мост с фильтрацией vlan.
Если бы нам было достаточно иметь все интерфейсы одинаковыми, то при
добавлении опции
VIDS="100 200 300"
мы получим три одинаковых trunk-интерфейса с vlan'ами 100,200,300
Но у нас задача получить разные по настройкам интерфейсы.

Что бы настроить интерфейсы нужным образом, потребуются такие команды:
bridge vlan add dev eth0 vid 100 master
bridge vlan add dev eth0 vid 200 master

bridge vlan add dev eth1 vid 200 master
bridge vlan add dev eth1 vid 300 master

bridge vlan add dev eth2 vid 200 pvid untagged master

Эти команды нельзя запустить на этапе настройки самих интерфейсов,
только после добавления их в bridge. Поэтому вынести эти настройки в
/etc/net/iface/eth0/foo не получается.

Что бы запустить все эти команды, добавлен новый конфигурационный файл
/etc/net/iface/br0/bridge, в который надо добавить выше указанные
команды, за исключением "bridge". Например:
vlan add dev eth0 vid 100 master

Придумывать какой-то новый формат опций тоже не целесообразно, потому
что bridge имеет и множество других параметров кроме vlan.


--
Alexey Shabalin


Подробная информация о списке рассылки Devel