Трафик не доходит до второго виртуального роутера при assimetric routing, проблема в linux bridge?
Есть два физических сервера (1 и 2), имеющих общую локальную сеть, они выступают хостами виртуализации с KVM+QEMU. На каждом из этих серверов работают виртуальные роутеры ( Микротик - М1 и М2), с двумя интерфейсами, один в локальную сеть, второй в интернет к провайдеру, через bridge-utils подключены tap интерфейсы. На М1 шлюз по умолчанию для локальной сети. На каждом из роутеров поднято по туннелю до удаленного офиса.
Если на М1, падает туннель до удаленного роутера, маршруты перестраиваются и трафик идет через М1 к М2 и в туннель к удаленному офису, на удаленном офисе все тоже самое, проблем с маршрутизацией нет.
Но из удаленного офиса недоступны виртуальные машины на сервере 2, так как трафик идет к ним напрямую через М2, а возвращается через М1. На сервере 1 при этом все виртуальные машины доступны. при tcpdump -i tap2 - интерфейс М1 на хосте виртуализации icmp reply к нему не приходят, хотя tcpdump -i br1 - бридж на том же сервере, показывает что icmp reply доходят до сервера. Сами виртуальные машины трафик получают и отправляют ответ, который теряется на сервере 1.
С виртуальных машин на сервере 2 пинг доходит до удаленного офиса, но tcp syn не приходят.
На мой взгляд, проблема кроется где-то в bridge-utils. В виртуальных лабах проблема не воспроизводится, попробывать ovs нету пока возможности. Между роутерами поднят vrrp, так что решить все маршрутизацией не получается.