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