Linux - отключить маршрутизацию, но разрешить мост
У меня есть сервер Linux, на котором работает гипервизор KVM. У меня есть несколько мостов на этом сервере (которые находятся на разных VLANS).
Есть ли "простой" способ убедиться, что переход через мост (т. Е. Маршрутизация между мостами) не разрешен, но все же разрешает мост через мост?
Я знаю, что могу решить эту проблему, просто не назначая какие-либо IP-адреса мостам или интерфейсам на Linux, но я бы предпочел также иметь отказоустойчивый, чтобы убедиться, что это не разрешено. Возможно, некоторые правила iptables удерживают трафик внутри моста?
Спасибо
2 ответа
По https://vincent.bernat.im/en/blog/2017-linux-bridge-isolation
Начиная с Linux 3.9 вы можете включить фильтрацию VLAN на мосту. Это быстрый и простой способ избежать трафика для входа в IP-маршрутизацию и перескок мостов.
# echo 1 > /sys/class/net/br0/bridge/vlan_filtering
# bridge vlan del dev br0 vid 1 self
В статье перечислено несколько других опций, которые используют tc-фильтры, ebtables, пространства имен или реализуют фильтры протоколов для каждого отдельного типа протокола (обычно ARP, IP, IPv6).
Я не верю, что IPTables здесь сильно помогут, так как предназначены для манипулирования трафиком третьего уровня.
Используя мост, вы создаете широковещательный домен уровня 2, который используется всеми VLAN на родительском интерфейсе (ах) моста.
Open vSwitch можно настроить для изоляции VLAN. Имейте в виду, что если вам нужно, чтобы ваши гости KVM имели кадры Ethernet 1518 байт, вам потребуется сетевая карта для хоста KVM, которая может обрабатывать размеры кадров Ethernet больше 1522 байтов, чтобы можно было использовать тег VLAN.
Примечание. Уровни, на которые я ссылаюсь выше, являются уровнями модели OSI.