Я думаю, что SDN - это способ, и вы можете проверить сеть openstack . Я не рассматривал подробно о настройке ограничений для пользователей. Возможно, вы можете создать виртуальные сетевые карты для каждого пользователя, а затем установить ограничение на количество виртуальных сетевых адаптеров.
Среда фильтрации моста Linux имеет доступные механизмы, в которых код моста уровня 2 может выполнять восходящий вызов к iptables
(, а также к arptables
илиip6tables
)и осуществлять фильтрацию из мостовых кадров уровня 2 ()через уровень 3(iptables
с пакетами ), а затем обратно на уровень 2. Это выходит далеко за рамки использования цепочки BROUTING
, которая дает только логический выбор: оставаться на уровне 2 или продолжать работу на уровне 3 (, выполняя фрейм dnat
/ broute
на локальный ).
Это нарушение уровня позволяет, например, использовать средство conntrack
и иметь брандмауэр с отслеживанием состояния, доступный на уровне 2.
Это также вызывало проблемы, когда люди не ожидали, что это произойдет, и возникали проблемы, которые было трудно отладить, или снижало производительность, когда (большую часть времени )не требовалось. Таким образом, начиная с ядра 3.18, код сетевого фильтра br _был отделен от кода моста и разделен на модули и больше не загружается автоматически.
Чтобы теперь использовать эту функцию с iptables, один долженmodprobe br_netfilter
и сохранить для параметра sysconf net.bridge.bridge-nf-call-iptables
значение 1
(, эквивалентноеecho 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
). Теперь это позволяет использовать всю замечательную сложность связи OP:ebtables/iptables на мосту на базе Linux -. Обратите внимание, что этот модуль также может быть автоматически загружен, когда iptables использует совпадение physdev
), и это может незначительно изменить все поведение брандмауэра, если не соблюдать осторожность при использовании как ebtables
, так и iptables
.
Примечание:nftables
(иiptables-nft
)также затронуты.Текущее состояние считается немного запутанным (из-за дополнительной сложности нарушений слоев ), и была проведена некоторая реорганизация, чтобы обеспечить прямую поддержку conntrack в пути моста без использования br_netfilter
больше :начиная с ядра 5.3 Linux предоставляет модуль ядра nf_conntrack_bridge
, позволяющий nftables обрабатывать отслеживание соединений непосредственно на уровне моста, не достигая ни ip (, ни ip6 и inet)семейства:поддержка отслеживания соединения для моста .