Что не так с маршрутами или почему linux игнорирует основной шлюз?
Здравствуйте, Господа!
Интересует такой вопрос.
Имеется два шлюза на pfsense 2.0.3 (старая версия)
Назовём их gw1 и gw2.
На gw1 висят vpn ipsec через vpn провайдера (услуга vpn l2), на gw2 висят vpn через реальник. Эти vpn с каждого из шлюзов приходят в микротик (например). Если станет недоступным один провайдер, подрубается второй.
Тоннели поднимаются, всё начинает работать и пинговаться, кроме некоторые важных мест.
Например, сервер 88.5 и сервер 88.55.
Я начинаю разбираться что случилось. Захожу на них и делаю трассировку и вижу, что у них ответ на мой пинг идёт не через тот шлюз, хотя в качестве шлюза по умолчанию стоит адрес cisco 2801, которая педалит все маршруты.
На ней добавлены маршруты как надо. Собственно раз другие серваки могут ответить мне значит вариант с неверным маршрутом на циске отбрасываю.
Остаётся вариант с таблицей маршрутизации серверов 88.5 и 88.55
Смотрю таблицу в ней всё в порядке. Смотрю route -C - кэш таблицы, там пусто.
потом делаю ip route flash table all и ребутаюсь. О чудо всё стало пинговаться и телнетиться.
Собственно вопрос, что за дичь. Возможно, в линуксе есть какие-то особенности, о которых я не знаю в плане таблиц маршрутизации? Почему и где он хранит или кэширует маршруты. И почему он их сам не обновляет.
Хочу добавить, что я пробовал сначала просто ребутить сервак и ничего. Но как только прописал ip route flash + ребутнул, то всё стало как надо.