LINUX.ORG.RU
ФорумAdmin

OVS flows для определенного VLAN

 , ,


0

1

Есть гипервизор, на нем ovs мост, ответная часть интерфейсов vm подключена в мост, и накинут vlan tag, все работает, вот только беда, vm с одним и тем же тегом имеют L2 доступ друг к другу, хотелось бы это избежать. Пришел к идеи использовать ovs flows, и вроде как оно работает, но сложность в том, что правила афектят все vlan в мосту, при использовании опции dl_vlan= в правилах, правила не работают, так как, как я понял, они подразумевают фильтрацию трафика с тегом, а в данном случае это нативный трафик, который только на выходе с ovs обладает тегом. Вызов ovs-appctl ofproto/trace ovs-br "dl_vlan=800, ip, nw_src=10.2.0.0, in_port=10", где dl_vlan - тег для фильтрации, in_port - id интерфейса vm с tag=800 на скрине - https://imgur.com/a/syeYGTW

Собственно вопрос, как убрать доступность вм в одном теге для других вм, соединения за мостом рубит коммутатор с ip acl, нужно разобраться с vm на одном гипере. Возможно для этого можно использовать какой-то другой функционал ovs. Знаю, что можно фильтровать соединения в linux bridge через iptables, но переезд на него не самый желательный итог.

Если что, хост на debian12, виртуалки в libvirt



Последнее исправление: Bermut (всего исправлений: 1)

Такое ощущение, что в таком контексте vlan просто не нужны, а нужна изоляция портов, чтобы трафик шел только от виртуалки на аплин и обратно.

https://serverfault.com/questions/388544/is-it-possible-to-enable-port-isolation-on-linux-bridges

Или все таки выдавать на каждый vlan свою подсеть, собирая на роутере в кучу гейтвеев.

anonymous
()
Ответ на: комментарий от anonymous

Это про linux мост, у меня же ovs, и, как написанно в заглавном сообщении

Знаю, что можно фильтровать соединения в linux bridge через iptables, но переезд на него не самый желательный итог.

Bermut
() автор топика
Последнее исправление: Bermut (всего исправлений: 1)
Ответ на: комментарий от George

Сейчас так и живу, разные vlan, и на стороне debian маршрутизатор с этими vlan в linux мосте, но хочу отказаться от этого в веду сложности конструкции, и эпизодических сетевых петель при поломке keepalived, и в целом перевести всю маршрутизацию c отдельных vm-маршрутизаторов на коммутаторы.

Bermut
() автор топика
Последнее исправление: Bermut (всего исправлений: 1)
Ответ на: комментарий от Bermut

и в целом перевести всю маршрутизацию c отдельных vm-маршрутизаторов на коммутаторы.

Коммутаторы - это устройства уровня L2 модели OSI, а маршрутизаторы - уровня L3.

Коммутаторы не поддерживают функцию маршрутизации.

kostik87 ★★★★★
()
Ответ на: комментарий от BOOBLIK

Ну так это уже не просто коммутаторы, а по сути роутеры, но у них нет поддержки динамической маршрутизации, поэтому называют коммутаторами.

А статическая маршрутизация и прочие функции маршрутизатора, в том числе и назначение ip адресов на интерфейсы, вланы есть.

Но чистый коммутатор не поддерживает даже статическую маршрутизацию.

kostik87 ★★★★★
()
Ответ на: комментарий от Bermut

Это про linux мост, у меня же ovs, и, как написанно в заглавном сообщении

Это про теорию. То, что ты хочешь, называется изоляция портов и эта функция в ovs отсутствует.

Знаю, что можно фильтровать соединения в linux bridge через iptables, но переезд на него не самый желательный итог.

Будь внимательнее, iptables не касается linux bridge. То, что тебе нужно, делает ebtables или ebtables-nft

В твоей постановки задачи разумнее всего использовать linux-bridge, где есть, то, что тебе нужно, а не использовать кошерный прекрасный ovs, в котором по несчастью нет необходимого.

Я использую ovs ровно потому, что мне, наоборот, нужны множественные vlan, хотя с некоторых пор это и в libux-bridge вроде не проблема.

anonymous
()

Пока пришел к решению закидывать скриптами каждый раз правила фильтрации по mac, например ovs-ofctl add-flow ovs-br «cookie=»$cookie"1, table=0, priority=1001, in_port=$int, dl_dst=cc:4e:24:c3:31:10, action=normal", но да, при взаимодействии с вм, миграции на другой хост, каких либо еще действий, надо руками добавлять правило, но лучше пока не придумал.

Bermut
() автор топика
Ответ на: комментарий от Bermut

Ну так в целом это и есть максимум возможного.

Если бы прям так необходим был ovs, например, из за dpdk или желания использовать в одном бридже пачку вланов или организации единого межсерверного бриджа, то это был бы вполне разумный компромисс.

anonymous
()