Мдаа.... идею понял))))Но все же, я бы сделал по другому:
Без PBR.
1.)Описать все 4 тунеля(прямые, и крест-накрест).
2.)Далее создать статические маршруты для 2-х тунелей с привязкой по IP SLA что бы, было так:
fa0/0 (ISP1) ----(tunel1)---- fa 0/0 (ISP3)
Роeтер 1 Роутер 2
fa0/1 (ISP2) ----(tunel2)---- fa0/1 (ISP4)
Если один из провайдеров/интерфейсов падает - маршрут должен изыматься SLA tracking-ом из таблицы маршрутизации. Иначе работать не станет.
3.) написать аксесс листы на внешних интерфейсах (направление out) маршрутизаторов, блокирующих ESP/IKE сессии с адреса соседнего интерфейса. Т.е. что бы роутер не мог маршрутизировать тунельный трафик с одного интерфейса через другой.
При этом получим:
1. При работоспособности всех провайдеров/интерфейсов - будем иметь 2 рабочих тунеля.
2. При падении любых 1-2 провайдеров - всегда будем иметь 1 рабочий тунель.
Далее поднимаем протокол маршрутизации...
И главное - все просто, CPU не грузится PBR-ом. Меньше трафика хавают hellow пакеты.
В вашем же варианте - скорее всего дело в следующем
1. IKE сессии действительно подпадают под local policy
2. ESP сессии, в которые инкапсулируется проходящий трафик - подпадают под global policy.
При этом, что интересно - маршрутизация происходит до процесса инкапсуляции в ESP.
Т.е. ваши роутмапы - мертвому припарка...
Как правильно решить данную задачку - даже и не соображу... но надо ли оно? Есть ведь вышеуказанный вариант. Разница только в 2 активных туннелях вместо 4-х.
А по недоступности - стало быть ваш роутмап ответный трафик рутера заворачивает...