коммутатор Linux DSA с настройкой моста с поддержкой VLAN

коммутатор Linux DSA с настройкой моста с поддержкой VLAN

Я работаю над вариантом использования, в котором SoC с одним портом ethnet (eth1) подключается к чипу коммутатора SJA1105. Как упоминалось в документах ядра Linux, механизм DSA будет использовать eth1 в качестве порта управления и будет иметь ограничение на открытие сокета напрямую на этом интерфейсе. Для случая Vlan-unware я использую эталонную конфигурацию из документа, как показано ниже:

ip link set eth1 up
ip link set swp1 up
ip link set swp2 up

ip link add name br0 type bridge

ip link set dev swp1 master br0
ip link set dev swp2 master br0

ip addr add 172.20.1.129/24 dev br0

ip link set dev br0 up

работает отлично. Я могу использовать br0 как замену eth1 для доступа к хостам за swpN. Но когда дело доходит до случая Vlan-aware, это не работает. Я все еще использую конфигурацию, измененную из ссылки:

ip link set eth1 up

ip link set swp1 up
ip link set swp2 up

ip link add name br0 type bridge

ip link set dev br0 type bridge vlan_filtering 1

ip link set dev swp1 master br0
ip link set dev swp2 master br0

bridge vlan add dev swp1 vid 100 pvid untagged
bridge vlan add dev swp2 vid 100 pvid untagged
bridge vlan add dev br0 vid 100 pvid untagged self

ip addr add 172.20.1.129/24 dev br0

ip link set dev br0 up

Хосты за swpN по-прежнему могут пинговать друг друга, но не могут пинговать br0, и наоборот. tcpdump не захватывает пакеты на br0, но обнаруживает пакеты на eth1.

есть ли какие-то ошибки в моей конфигурации? или есть ли другие способы достижения цели, чтобы демон процессора мог взаимодействовать с хостами за swpN с Vlan, помеченным в такой настройке?

Буду очень признателен, если будут какие-либо комментарии, заранее спасибо!

решение1

Вам нужно создать интерфейс VLAN для вашего собственного br0 VLAN (отмеченного как PVID) и назначить IP-адрес этому интерфейсу вместо самого моста. Похоже, в этом и заключается отличие от "обычных" мостов.

ip link add link br0 name br0.100 type vlan id 100
ip addr add 172.20.1.129/24 dev br0.100

Я не нашел никакой документации, описывающей это поведение, однако это решение работает и имеет смысл.

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