Я использую openvswitch для зеркалирования трафика, входящего или исходящего из интерфейса виртуальной машины. Трафик зеркалируется на выходной порт и может перехватывать пакеты на выходном порту.
Использовал следующую команду для создания зеркала
ovs-vsctl добавить порт br-int vxlan0
-- установить тип интерфейса vxlan0 = vxlan
опции: local_ip= опции: remote_ip=
параметры: ключ = 25 параметр: dst_port = 4789
--id=@p получить порт vxlan0 -- --id=@p1 получить порт tap2
-- --id=@m создать зеркало name=mirr0 select_dst_port=@p1
select_src_port=@p1 output-port=@p -- установить мост br-int зеркала=@m
Зеркалирование работает нормально, пока виртуальная машина не будет перезагружена. Но после перезагрузки виртуальной машины зеркалирование не работает. Зеркалирование работает только тогда, когда src-интерфейс еще раз добавлен в зеркало.
Основная причина в том, что OVS удаляет src-интерфейс зеркала во время перезагрузки и не добавляет его обратно.
sudo ovs-vsctl список зеркал mirr0
select_dst_port: [8d5554bb-e6c0-447c-922c-9fc0227b00b8] select_src_port: [8d5554bb-e6c0-447c-922c-9fc0227b00b8]
После перезагрузки
sudo ovs-vsctl список зеркал mirr0
select_dst_port: [] select_src_port: []
Есть ли способ заставить зеркало OVS работать постоянно после перезагрузки.
Версия Ubuntu
Описание: Ubuntu 18.04.5 LTS Выпуск: 18.04 Кодовое имя: бионический