Автоматическое зеркалирование портов в OVS без дублированных пакетов
Вот в чем дело: мне нужно настроить зеркалирование портов в Proxmox и OVS, чтобы отслеживать весь трафик от виртуальных машин и отправлять их в IDS. Эта конфигурация не должна генерировать дублирующиеся пакеты и, в идеале, быть динамической. Это означает, что нам нужно отслеживать любые новые виртуальные машины, которые подключаются к мосту OVS, без вмешательства человека.
В аппаратном переключателе все просто; Вы можете выполнить команду, которая, например, отражает только входящий трафик портов 1-23 и отправляет скопированные кадры на порт 24. Вам необходимо отразить только одно направление (только входной или выходной), поскольку в противном случае входящий пакет порта Χ, который предназначен для порта Υ будет скопирован два раза. Кроме того, не следует отслеживать некоторые порты, которые соединяют коммутаторы, а зеркалировать только граничные порты.
Но как насчет зеркалирования портов в OVS? Каждый порт выделяется динамически для каждой новой виртуальной машины, которая загружается, поэтому мы не можем предоставить одну команду, которая контролирует все порты, а также новые. Конечно, есть select_all
опция в ovs-vsctl, но эта конфигурация будет генерировать дублированные пакеты, так как все порты будут контролироваться как в направлении входа, так и в направлении выхода.
Приложение SDN (может работать на Ryu), которое запускается каждый раз, когда новый порт подключается к мосту OVS, и выдает команду зеркалирования портов, может решить эту проблему. Но я понятия не имею, как это написать.
Любые идеи?