> ip? Надо использовать net namespaces, и делать два виртуальных роутера. Во-во. Хатю vrf.
>>eth0.vlan99<>br0.vlan{99,199,299}.
> Не очень понятно: вы подняли на интерфейсе только один vlan, и удивляетесь
> почему остальные на нем не видны? Что включено в бридж?
vconfig add eth0 99
brctl addbr br0
brctl addif br0 vlan99
vconfig add br0 99; vconfig add br0 199; vconfig add br0 299
Признаю, задача несколько "сферична", т.к. в большинстве случаев достаточно
"vconfig add vlan99 99". Могу привести ещё случай.
Попытаемся использовать бридж как "верёвку" для пропуска vlan'ов (нарвался в l2-топологии для виртуализации):
eth0.vlan[2,3,4]<>tap1<>br0<>tap2<>eth0.vlan[2,3,4]>>{BRIDGE VLAN 2,3,4}
Слева vlan'ы "втыкаются" в туннели к клиентам, для простоты опустил.
Справа я сбриджевал на второй виртуалке "протянутые" через br0 vlan'ы с первой. Дал ip, смаршрутизировал и т.д. Казалось бы, в чём подвох? А вот в чём: клиенты слева без проблем ходят в интернет, НО!!! - не видят друг друга, т.к. не ходит arp.
И вот здесь приходит осознание, что наш br0 совсем даже не "верёвка", а больше похож на "тупой" свитч, не особо разбирающийся в vlan (ладно, хоть теги не режет).
Конкретнее: клиент с vlan2 отправляет arp-who-has, тот разбегается по бродкасту. Клиент с vlan4 отвечает "это я", ответ бежит через br0 в vlan4 и через мега-бридж справа отправляется в vlan2 (пока всё нормально). Но вот теперь пакет пытается пройти обратно черз br0, а то его дропает! Почему? А он его уже видел, и т.к. vlan tag линуховой реализации бриджа довольно-таки пох. - устраняет "петлю" как умеет...