Openvpn p2p + ospf



  • приветствую,
    имеется сеть с 3-мя pfsense роутерами ver 2.3.2 amd64 между которыми подняты  vpn (openvpn p2p psk). Для дальнейшего расширения настроена динамическая маршрутизация на ospf протоколе( установлен соответствующий пакет). Метрика каждого vpn соединения - 10. Все сети в одной area.

    Проблема при падении соединения vpn и последующем востановлении пакеты продолжают ходить по длинному маршруту, а не по короткому (ждать можно до бесконечности) . В таблице маршрутизации присутствует короткий маршрут ospf и длинный маршрут kernel. Насколько я понимаю zebra не переписывает маршруты.



  • Доброе
    Скрины настроек OSPF.



  • настройки на других маршрутизаторах аналогичны.






  • Может объявить короткий маршрут дефолтным (Redistribute default route) ? Или метрику короткого понизить ?
    Т.е. объяснить пф , что короткий маршрут имеет приоритет.



  • А после востановления каналов, что показывает OSPF статистика.
    Может просто не происходит обратной линковки?



  • @werter:

    Может объявить короткий маршрут дефолтным (Redistribute default route) ? Или метрику короткого понизить ?
    Т.е. объяснить пф , что короткий маршрут имеет приоритет.

    Redistribute default route - используется для того чтобы зарулить весь трафик офиса в цо.
    С метрикой и так получается 10<10+10. Днем приложу скины.



  • @PbIXTOP:

    А после востановления каналов, что показывает OSPF статистика.
    Может просто не происходит обратной линковки?

    Линковка происходит и в статусе это видно. И ospf правильный маршрут показывает, но заменить маршрут который в ядре не может.



  • @Romka812:

    Проблема при падении соединения vpn и последующем востановлении пакеты продолжают ходить по длинному маршруту, а не по короткому (ждать можно до бесконечности) . В таблице маршрутизации присутствует короткий маршрут ospf и длинный маршрут kernel. Насколько я понимаю zebra не переписывает маршруты.

    Проблема тут в следующем. При изменении состояния интерфейса запускается "rc.start_packages: Restarting/Starting all packages". Всё бы было хорошо, но рестарт сервисов quagga и zebra сделан через "kill -9", то есть сервис просто убивается принудительно, в результате все добавленные ospf роуты превращаются в статику, а статика всегда имеет приоритет и zebra удалить их уже не может.

    Есть два способа решения проблемы.

    Первый (быстрый). В файле /usr/local/pkg/quagga_ospfd.inc убираем "-9" в строчках с kill и killall (нужно будет потом сохранить конфигурацию, для обновления скрипта запуска). После этого рестарт будет нормальный. Но при этом на какое-то время будут пропадать все маршруты ospf.

    Второй (правильный). Делаем по первому способу (для нормального рестарта). Затем ставим пакет "System_Patches" и через него применяем патч http://files.pfsense.org/jimp/patches/skip_restart_for_routing_packages-2.3.1.patch (другие версии этого патча есть там же http://files.pfsense.org/jimp/patches/). Для применения конкретно этого патча нужно установить "Path Strip Count" в 2. После этого при изменении состояния интерфейса zebra перезапускаться не будет.

    https://forum.pfsense.org/index.php?topic=80262.0
    https://redmine.pfsense.org/issues/4868




  • Сталкивался с похожей проблемой. При пропадании L2TP линка в один из филиалов pfSense 2.2.6 перезапускал сервера  Open VPN, к которым коннектятся другие филиалы.