OpenVPN Client failover 2xWAN



  • Весь трафик заворачивается в шлюз OpenVPN
    IP  OpenVPN сервера идет через WAN_Failover
    Настроена WAN группа(WAN_Failover) из двух шлюзов(Tier 1 и Tier 2) и в принципе она работает для трафика выходящего из LAN, но не работает для OpenVPN клиента настроенном на pfSense. Т.е. трафик к OpenVPN серверу идет только через первый шлюз из группы. Пробовал привязать OpenVPN к разным интерфейсам включая WAN_Failover, но  безрезультатно. Как я понял Failover для локального трафика не работает, есть ли вариант сделать OpenVPN отказоустойчивым?
    Switch default gateway включено.



  • Подскажите, пожалуйста, в настройках OpenVPN клиента параметр Interface, за что отвечает?



  • @Scodezan:

    Подскажите, пожалуйста, в настройках OpenVPN клиента параметр Interface, за что отвечает?

    За интерфейс на котором будет висеть процесс OpenVPN и соответственно использовать этот интерфейс для отправки пакетов.
    Я пробовал вешать OpenVPN на разные интерфейсы, положительных результатов это не дало.
    Tier 1(77.231.11.1) - физический шлюз и маршрут WAN
    Tier 2(192.168.1.1) - только шлюз указывающий на другой роутер в LAN
    Методом проб и ошибок выявил такую проблему, если два канала online, тогда трафик от OpenVPN идет как и положено через Tier 1(77.231.11.1), но если принудительно отключить Tier 1(77.231.11.1), тогда вижу, что шлюз по умолчанию становится Tier 2(192.168.1.1) и трафик начинает идти через него, при этом OpenVPN пересоединяется и тут же без остановки начинает сыпать ошибки: write UDPv4: No buffer space available (code=55)
    Это указывает на петлю в маршрутизации, начинаю смотреть таблицу маршрутизации и вижу, что IP адрес OpenVPN сервера становится маршрутом по умолчанию и естественно трафик попадает в петлю. При этом на странице Gateways маршрут не изменился и указывает на Tier 1(77.231.11.1)
    Снова включаю интерфейс Tier 1(77.231.11.1) и через какое-то время OpenVPN начинает работать через него и маршрут по умолчанию снова становится на Tier 1(77.231.11.1)
    Вопрос, откуда и каким образом маршрутом по умолчанию становится адрес OpenVPN сервера? В настройках OpenVPN клиента указаний на маршрут по умолчанию нет, с сервера такой команды так же не поступает, для полной убедительности в конфиге OpenVPN клиента сделал no-pull и route-nopull
    Спасибо!



  • А если попробовать привязать клиента к LAN?



  • @pigbrother:

    А если попробовать привязать клиента к LAN?

    Пробовал и к LAN и WAN_Failover и к Localhost и к Any
    При WAN_Failover при пропадании Tier 1 OpenVPN привязывается на LAN



  • @kostyun:

    Switch default gateway включено.

    Если Вам необходим просто FailOver (без балансинга), то отдельно создавать группу WAN_Failover не нужно.
    Достаточно исп. галку на Enable default gateway switching.
    Попробуйте удалить Вашу группу WAN_Failover, сделать Reset states и проверить.

    Весь трафик заворачивается в шлюз OpenVPN

    Что в кач-ве сервера на том конце ? Нет ли в настройках OpenVPN-сервера директивы, к-ая приказывает клиенту заворачивать весь трафик
    в туннель ?

    P.s. Покажите скрин System: General Setup и правил fw (LAN, WAN1, WAN2)
    P.p.s. Попробуйте в настройках OpenVPN-клиента выставить Verbosity level на 5\6 и смотрите логи.



  • @werter:

    @kostyun:

    Switch default gateway включено.

    Если Вам необходим просто FailOver (без балансинга), то отдельно создавать группу WAN_Failover не нужно.
    Достаточно исп. галку на Enable default gateway switching.
    Попробуйте удалить Вашу группу WAN_Failover, сделать Reset states и проверить.

    Удалил группу Failover и правила ссылающиеся на нее. Ситуация ровным счетом не изменилась

    Весь трафик заворачивается в шлюз OpenVPN

    Что в кач-ве сервера на том конце ? Нет ли в настройках OpenVPN-сервера директивы, к-ая приказывает клиенту заворачивать весь трафик
    в туннель ?

    P.s. Покажите скрин System: General Setup и правил fw (LAN, WAN1, WAN2)
    P.p.s. Попробуйте в настройках OpenVPN-клиента выставить Verbosity level на 5\6 и смотрите логи.

    Нет, никаких push на сервере нет. Да и у клиента указывал
    route-noexec
    route-nopull
    verb 5 и 6 ничего толкового не показывают, откуда шлюзом по умолчанию становится OpenVPN клиент так и не ясно. Подозреваю, что это делает Gateway monitor.
    Отключил default gateway switch и если шлюзы переключаться вручную то никаких write UDPv4: No buffer space available не сыпит из этого делаю предположение, что Gateway monitor некорректно решает кого назначить шлюзом по умолчанию.



  • Как вариант можно попытаться попробовать поднять два постоянных OpenVPN соединения — каждый через свой GW. И прописать им различные веса в маршрутах удаленного офиса. Тогда должно срабатывать мягче переключение. Возможно необходимо будет использовать правила без keep-state для OpenVPN интерфейсов, чтоб не было разрывов сессий при переключении (Может увеличить нагрузку на маршрутизаторы).
    Но для этого желательно иметь на удаленной стороне хотя бы два белых IP или два раздельных канала — поскольку иначе думка сразу не срабатывает как маршрутизировать с одной машины два коннекта на один IP через разные GW.

    P.S. по поводу удаленного конца с одним IP адресом — можно сделать и двунаправленное подключение OpenVPN.

    PF1 - OpenVPN Client => WAN1 => Remote OpenVPN Server
    PF1 - OpenVPN Server <= WAN2 <= Remote OpenVPN Cient



  • 2 kostyun

    Отключил default gateway switch

    Внимательнее прочитайте еще раз то, что написано в моем предыдущем посте.

    Не надо откл. default gateway switch! Там должна стоять галка.

    Если Вам необходим просто FailOver (без балансинга), то отдельно создавать группу WAN_Failover не нужно.
    Попробуйте удалить Вашу группу WAN_Failover, сделать Reset states и проверить.



  • Если Вам необходим просто FailOver (без балансинга), то отдельно создавать группу WAN_Failover не нужно.

    ~~То есть если я когда-то создал, скажем, группу multiwan для load balancing\failover со шлюзами tier1\tier1, потом от load balancing отказался  (2-й провайдер стал слишком медленным на фоне 1-го) и шлюзы в группе стали tier1\tier2 то я могу в правиле Default allow LAN to any заменить multiwan на default (*) и получить работающий Failover оставив включенным default gateway switch? ~~

    почитал описание:

    If the default gateway goes down, switch the default gateway to another available one. This is not enabled by default, as it's unnecessary in most all scenarios, which instead use gateway groups.

    Да, судя по всему, failover теперь можно включить одним кликом мыши.



  • @werter:

    2 kostyun

    Отключил default gateway switch

    Внимательнее прочитайте еще раз то, что написано в моем предыдущем посте.

    Не надо откл. default gateway switch! Там должна стоять галка.

    Если Вам необходим просто FailOver (без балансинга), то отдельно создавать группу WAN_Failover не нужно.
    Попробуйте удалить Вашу группу WAN_Failover, сделать Reset states и проверить.

    Отключил потому что с включенным не работает и OpenVPN начинает слать ошибки UDPv4: No buffer space available  практически вешая всю систему.
    WAN_Failover удалял, поведение точно такое же как и с ним.
    Как только основной шлюз падает, система переключается на резервный, OpenVPN коннектится и примерно через минуту шлюзом по умолчанию становится внутренний адрес OpenVN сервера и происходит "петля". Подозреваю, что Gateway monitor и ставит шлюзом по умолчанию OpenVPN.
    Других вариантов кроме как ручного переключения шлюзов не придумал.



  • @kostyun:

    @werter:

    2 kostyun

    Отключил default gateway switch

    Внимательнее прочитайте еще раз то, что написано в моем предыдущем посте.

    Не надо откл. default gateway switch! Там должна стоять галка.

    Если Вам необходим просто FailOver (без балансинга), то отдельно создавать группу WAN_Failover не нужно.
    Попробуйте удалить Вашу группу WAN_Failover, сделать Reset states и проверить.

    Отключил потому что с включенным не работает и OpenVPN начинает слать ошибки UDPv4: No buffer space available  практически вешая всю систему.
    WAN_Failover удалял, поведение точно такое же как и с ним.
    Как только основной шлюз падает, система переключается на резервный, OpenVPN коннектится и примерно через минуту шлюзом по умолчанию становится внутренний адрес OpenVN сервера и происходит "петля". Подозреваю, что Gateway monitor и ставит шлюзом по умолчанию OpenVPN.
    Других вариантов кроме как ручного переключения шлюзов не придумал.

    А вы отдельно руками OpenVPN случаем не создавали ли ?
    Покажите скрин System: General Setup



  • @werter:

    @kostyun:

    @werter:

    2 kostyun

    Отключил default gateway switch

    Внимательнее прочитайте еще раз то, что написано в моем предыдущем посте.

    Не надо откл. default gateway switch! Там должна стоять галка.

    Если Вам необходим просто FailOver (без балансинга), то отдельно создавать группу WAN_Failover не нужно.
    Попробуйте удалить Вашу группу WAN_Failover, сделать Reset states и проверить.

    Отключил потому что с включенным не работает и OpenVPN начинает слать ошибки UDPv4: No buffer space available  практически вешая всю систему.
    WAN_Failover удалял, поведение точно такое же как и с ним.
    Как только основной шлюз падает, система переключается на резервный, OpenVPN коннектится и примерно через минуту шлюзом по умолчанию становится внутренний адрес OpenVN сервера и происходит "петля". Подозреваю, что Gateway monitor и ставит шлюзом по умолчанию OpenVPN.
    Других вариантов кроме как ручного переключения шлюзов не придумал.

    А вы отдельно руками OpenVPN случаем не создавали ли ?
    Покажите скрин System: General Setup

    Что Вы подразумеваете под: А вы отдельно руками OpenVPN случаем не создавали ли ?
    Скрин во вложении.
    Описание шлюзов:
    WAN - основной WAN
    Keenetic - резервный WAN
    OVPN_VPS2 - OpenVPN клиент, с которым возникают проблемы при автоматическом переключении на шлюз Keenetic




  • Зачем Вы мониторите 8.8.4.4 через OpenVPN?? Получается так, что у Вас он исп-ся как WAN

    Покажите скрин System: Gateways.



  • @werter:

    Зачем Вы мониторите 8.8.4.4 через OpenVPN?? Получается так, что у Вас он исп-ся как WAN

    Покажите скрин System: Gateways.

    8.8.4.4  я не мониторю, а использую для маршрутизации DNS через заданные шлюза. Сейчас это уже не актуально, сделал none
    Скрин шлюзов во вложении




  • Шлюз OpenVPN со скрина должен автоматически добавляться OpenVPN демоном, исходя из его настроек. В данном случае шлюз создан вручную. Это не есть хорошо, хотябы потому что вес интерфейса равен 1. Попробуйте изменить на 5.



  • @Scodezan:

    Шлюз OpenVPN со скрина должен автоматически добавляться OpenVPN демоном, исходя из его настроек. В данном случае шлюз создан вручную. Это не есть хорошо, хотябы потому что вес интерфейса равен 1. Попробуйте изменить на 5.

    Шлюз OpenVPN был создан автоматически, я в этом участие не принимал. Шлюз OpenVPN удалил. При перезапуске OpenVPN он создался повторно, изменил вес на 5.
    Результат тот же write UDPv4: No buffer space available (code=55)

    Поиграл с весами для основного сделал 1 для резервного 2, для OpenVPN 5 - не помогло :(
    При переключении на резервный WAN после подключения OpenVPN упорно ставится шлюзом интерфейс OpenVPN


Log in to reply