про рекурсию
В Mikrotik есть механизм, называется check-gateway=ping в /ip route. Многие его используют в дефолтных маршрутах для проверки соединения до оборудования провайдера. В такой реализации Сheck-gateway=ping не видит, что происходит за шлюзом провайдера. А вот рекурсивная маршрутизация мониторит наличие интернета за шлюзом провайдера.
check-gateway=ping

Check-gateway=ping + рекурсия
Проверяется соединение до удаленного сервера, а не оборудование провайдера. В примере, если ping до 8.8.8.8 пропадает, происходит переключение на резервную линию.

Кейс
Есть удаленный сервер в Германии. К нему подключаются пользователи из офиса в Алматы. Иногда возникают проблемы с интернетом, не по нашей вине. Связь с сервером теряется. Решено подключить резервную линию интернета и настроить рекурсивную маршрутизацию в Mikrotik. У нас все IP-адреса белые и статичные. Настраиваем.
Дано:
172.16.1.1 - адрес шлюза основного интернет провайдера172.16.2.1 - адрес шлюза резервного интернет провайдера
8.8.8.8 - адрес удаленного сервера в Германии
В Winbox

Правило 1

Правило 2

Правило 3

Итог

Через консоль
/ip routeadd check-gateway=ping distance=1 gateway=8.8.8.8
add distance=1 dst-address=8.8.8.8/32 gateway=172.16.1.1 scope=10
add distance=2 gateway=172.16.2.1
Готово, при разрыве соединения до сервера 8.8.8.8 маршрутизатор переключится на резервную линию интернета и обратно, если пинг восстановится.