неа. Все так же
я собрал схему и разобрался почему, проблема в route rule, но неиспользовать их тоже нельзя ;)
Итак, когда пропадает ISP1 : у нас в main - активный через ISP2, в rt-ISP2 - ничего не меняется, в rt-ISP1 - активный через ISP2 (!!!) c nexthop 2.2.2.2.
Таким образом, при route rule запрещающим делать route lookup c src-ip=1.1.1.1/30 нигде кроме rt-ISP1 - рекурсия повторно не сложится.
Выход:
1. иметь копию SPEC-маршрута в соответствующей таблице (8.8.8.8 в rt-ISP1 и 8.8.4.4 в rt-ISP2);
2. добавить правило в route rule, проводящее route lookup в main для SPEC-маршрутов, до ограничивающих route rules для внешних IP.
—
Я использую воторой вариант, и того отличие от представленного мной конфига будет следующим:
/ip route rule
add dst-address=10.10.10.0/24 table=main
add dst-address=8.8.8.8/32 table=main
add dst-address=8.8.4.4/32 table=main
add action=lookup-only-in-table dst-address=0.0.0.0/0 src-address=1.1.1.2/32 table=rt-ISP-1
add action=lookup-only-in-table dst-address=0.0.0.0/0 src-address=2.2.2.2/32 table=rt-ISP-2
Есть еще одна побочка - SPEC хосты будут доступны только через провайдеров, для проверки которых они используются, так что не используйте 8.8.8.8 и 8.8.4.4, если они указаны у Вас как DNS-серверы.
Спасибо, что протестировали мой вариант и указали на ошибку.