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

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

      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, это не срабатывает. Я все еще использую конфигурацию, измененную из ссылки:

      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 для вашей собственной VLAN br0 (помеченной как 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

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

Другие вопросы по тегам