URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 88184
[ Назад ]

Исходное сообщение
"IPsec Failover на FreeBSD с двумя wan-интерфейсами"

Отправлено ailman , 17-Фев-10 14:32 
Здравствуйте!
Уже много инфы и факьюшек перелопатил в инете, но так и не нашел решения. ((
Имеется два шлюза на FreeBSD 8.0, организованные посредством PF. К каждому шлюзу заведено по 2 прова.


              |---------------------|wan1                             wan3|--------------------|      
              |                         o|-----------------------------------|o                        |      
LAN1 -->|FreeBSD 8.0 + PF|=========IPsec=========|FreeBSD 8.0 + PF|<--LAN2
              |                         o|-----------------------------------|o                        |      
              |---------------------|wan2                             wan4|--------------------|      


На данный момент настроен и успешно функционирует IPsec между wan1 и wan3 (с использованием GIF-интерфейса).
После того, как провели еще резервные каналы wan2 и wan4, начальство
потребебовало настроить IPsec-канал между этими двумя фрями так, чтобы при отваливании любого из wan (1 или 3), ISsec устанавливался на оставшихся в живых каналах. А при восстановлении связи на исходных wan, снова возвращался в исходное состояние (через wan1 и wan3). Ну или в хотя бы, в крайнем случае, не переключался обратно, пока не отвалится один из резервных интернет-каналов.
Такая штука реальна для железнячных файрволлов, типа DFL-800 (http://www.dlink.ru/ru/faq/85/575.html), однако... нужно сделать на "халяве".
В какую сторону копать, подскажите пожалуйста. Уже сил нет биться (((


Содержание

Сообщения в этом обсуждении
"IPsec Failover на FreeBSD с двумя wan-интерфейсами"
Отправлено vitek16 , 17-Фев-10 16:51 
>[оверквотинг удален]
>После того, как провели еще резервные каналы wan2 и wan4, начальство
>потребебовало настроить IPsec-канал между этими двумя фрями так, чтобы при отваливании любого
>из wan (1 или 3), ISsec устанавливался на оставшихся в живых
>каналах. А при восстановлении связи на исходных wan, снова возвращался в
>исходное состояние (через wan1 и wan3). Ну или в хотя бы,
>в крайнем случае, не переключался обратно, пока не отвалится один из
>резервных интернет-каналов.
>Такая штука реальна для железнячных файрволлов, типа DFL-800 (http://www.dlink.ru/ru/faq/85/575.html), однако... нужно сделать
>на "халяве".
>В какую сторону копать, подскажите пожалуйста. Уже сил нет биться (((

Я использую для этого скрипт, который пингом проверяет доступность канала и в случае если канал недоступен,то подставляется заранее приготовленный rc.conf в котором прописаны настройки для использования втрого туннеля и выполняется
/sbin/route flush && /etc/rc.d/netif restart && /etc/rc.d/routing restart
Когда основной канал восстанавливается,тот же скрипт подставляет rc.conf который по-умолчанию и снова /sbin/route flush && /etc/rc.d/netif restart && /etc/rc.d/routing restart
Работает как часы уже год примерно.


"IPsec Failover на FreeBSD с двумя wan-интерфейсами"
Отправлено ailman , 18-Фев-10 10:36 
>[оверквотинг удален]
>>на "халяве".
>>В какую сторону копать, подскажите пожалуйста. Уже сил нет биться (((
>
>Я использую для этого скрипт, который пингом проверяет доступность канала и в
>случае если канал недоступен,то подставляется заранее приготовленный rc.conf в котором прописаны
>настройки для использования втрого туннеля и выполняется
>/sbin/route flush && /etc/rc.d/netif restart && /etc/rc.d/routing restart
>Когда основной канал восстанавливается,тот же скрипт подставляет rc.conf который по-умолчанию и снова
>/sbin/route flush && /etc/rc.d/netif restart && /etc/rc.d/routing restart
>Работает как часы уже год примерно.

Спасибо за ответ!
А при этом setkey.conf (или ipsec.conf, в котором прописывается тип ipsec-канала, аля:
flush;
spdflush;
spdadd...)
тоже заменяется, или в нем заранее уже прописаны два туннеля?
Пингуете шлюз провайдера? Ракун перезапускать нужно? Другие демоны?


"IPsec Failover на FreeBSD с двумя wan-интерфейсами"
Отправлено vitek16 , 18-Фев-10 12:32 
>[оверквотинг удален]
>>Работает как часы уже год примерно.
>
>Спасибо за ответ!
>А при этом setkey.conf (или ipsec.conf, в котором прописывается тип ipsec-канала, аля:
>
>flush;
>spdflush;
>spdadd...)
>тоже заменяется, или в нем заранее уже прописаны два туннеля?
>Пингуете шлюз провайдера? Ракун перезапускать нужно? Другие демоны?

нет,пингую абсолютно левые адреса типа ya.ru через заданный интерфейс.
В ipsec.conf уже заранее прописаны оба туннеля.Ракун перезапускать не нужно,только то что указано выше
Если надо могу прислать свой скрипт на мыло,чтоб понятней было что куда


"IPsec Failover на FreeBSD с двумя wan-интерфейсами"
Отправлено ailman , 18-Фев-10 12:37 
>нет,пингую абсолютно левые адреса типа ya.ru через заданный интерфейс.
>В ipsec.conf уже заранее прописаны оба туннеля.Ракун перезапускать не нужно,только то что
>указано выше
>Если надо могу прислать свой скрипт на мыло,чтоб понятней было что куда
>

У меня есть скрипт, но он пингует только шлюзы провайдеров. А если пингую левые адреса, то он не переключается обратно на основной канал при его восстановлении, а только если резервный тоже умрет.
Я был бы очень вам благодарен, если пришлете скрипт. :)


"IPsec Failover на FreeBSD с двумя wan-интерфейсами"
Отправлено vitek16 , 18-Фев-10 12:40 
>>нет,пингую абсолютно левые адреса типа ya.ru через заданный интерфейс.
>>В ipsec.conf уже заранее прописаны оба туннеля.Ракун перезапускать не нужно,только то что
>>указано выше
>>Если надо могу прислать свой скрипт на мыло,чтоб понятней было что куда
>>
>
>У меня есть скрипт, но он пингует только шлюзы провайдеров. А если
>пингую левые адреса, то он не переключается обратно на основной канал
>при его восстановлении, а только если резервный тоже умрет.
>Я был бы очень вам благодарен, если пришлете скрипт. :)

Куда прислать? Мыло дайте чтоли)))
Попоробую там описать еще как все у меня сделано


"IPsec Failover на FreeBSD с двумя wan-интерфейсами"
Отправлено ailman , 18-Фев-10 12:49 
>[оверквотинг удален]
>>>Если надо могу прислать свой скрипт на мыло,чтоб понятней было что куда
>>>
>>
>>У меня есть скрипт, но он пингует только шлюзы провайдеров. А если
>>пингую левые адреса, то он не переключается обратно на основной канал
>>при его восстановлении, а только если резервный тоже умрет.
>>Я был бы очень вам благодарен, если пришлете скрипт. :)
>
>Куда прислать? Мыло дайте чтоли)))
>Попоробую там описать еще как все у меня сделано

на ail-man@yandex.ru :)


"IPsec Failover на FreeBSD с двумя wan-интерфейсами"
Отправлено sa , 19-Фев-10 08:11 
а может все-таки обратиться в сторону динамической маршрутизации и заюзать оба туннеля сразу?


"IPsec Failover на FreeBSD с двумя wan-интерфейсами"
Отправлено vitek16 , 19-Фев-10 09:24 
>а может все-таки обратиться в сторону динамической маршрутизации и заюзать оба туннеля
>сразу?

Это слишком муторно,регистрация AS и т.д


"IPsec Failover на FreeBSD с двумя wan-интерфейсами"
Отправлено sa , 19-Фев-10 14:12 
совсем не муторно, внутри ipsec пустить по gre туннелю, полезный трафик и анонсы динамики инкапсулировать в gre, в результате все переключается автоматом.

"IPsec Failover на FreeBSD с двумя wan-интерфейсами"
Отправлено rr , 19-Фев-10 14:18 
>совсем не муторно, внутри ipsec пустить по gre туннелю, полезный трафик и
>анонсы динамики инкапсулировать в gre, в результате все переключается автоматом.

OSPF или BGP посоветовали?


"IPsec Failover на FreeBSD с двумя wan-интерфейсами"
Отправлено vitek16 , 19-Фев-10 09:25 
>а может все-таки обратиться в сторону динамической маршрутизации и заюзать оба туннеля
>сразу?

К тому же нет таких промышленных масштабов для применения динамической маршрутизации.


"IPsec Failover на FreeBSD с двумя wan-интерфейсами"
Отправлено McLeod095 , 02-Мрт-10 21:51 
>>а может все-таки обратиться в сторону динамической маршрутизации и заюзать оба туннеля
>>сразу?
>
>К тому же нет таких промышленных масштабов для применения динамической маршрутизации.

Мое мнение если маршрутов больше 5 то стоит настроить динамическую маршрутизацию.
А вообще у меня вопрос.
У меня есть с одной стороны два провайдера, а с другой один.
В итоге у меня вроде все работает, но граничные шлюзы на которых ipsec не пингуют друг друга. Да и те машины которые за ними не могут пинговать граничные шлюзы, но при этом вроде gre внутри ходит и внутри него ospf.
в чем проблема пока не могу понять.
Может выложите свои конфиги.


"IPsec Failover на FreeBSD с двумя wan-интерфейсами"
Отправлено vardancheg , 10-Окт-11 11:40 
>[оверквотинг удален]
>>>указано выше
>>>Если надо могу прислать свой скрипт на мыло,чтоб понятней было что куда
>>>
>>
>>У меня есть скрипт, но он пингует только шлюзы провайдеров. А если
>>пингую левые адреса, то он не переключается обратно на основной канал
>>при его восстановлении, а только если резервный тоже умрет.
>>Я был бы очень вам благодарен, если пришлете скрипт. :)
> Куда прислать? Мыло дайте чтоли)))
> Попоробую там описать еще как все у меня сделано

Ребяата мне нужна такое решение поставит на PFSense 2.0 если не трудно не поделитес  со мной вашим репением??? мыло vrdo81@mail.ru или vberberyan@bta.am


"IPsec Failover на FreeBSD с двумя wan-интерфейсами"
Отправлено Chumaty , 23-Авг-12 14:06 
>[оверквотинг удален]
>>>>
>>>
>>>У меня есть скрипт, но он пингует только шлюзы провайдеров. А если
>>>пингую левые адреса, то он не переключается обратно на основной канал
>>>при его восстановлении, а только если резервный тоже умрет.
>>>Я был бы очень вам благодарен, если пришлете скрипт. :)
>> Куда прислать? Мыло дайте чтоли)))
>> Попоробую там описать еще как все у меня сделано
> Ребяата мне нужна такое решение поставит на PFSense 2.0 если не трудно
> не поделитес  со мной вашим репением??? мыло vrdo81@mail.ru или vberberyan@bta.am

товарищи и мне пожалуйста chumakov.aleksey[at]gmail.com


"IPsec Failover на FreeBSD с двумя wan-интерфейсами"
Отправлено Angryjoe , 30-Янв-14 11:41 
>[оверквотинг удален]
>>>>
>>>>У меня есть скрипт, но он пингует только шлюзы провайдеров. А если
>>>>пингую левые адреса, то он не переключается обратно на основной канал
>>>>при его восстановлении, а только если резервный тоже умрет.
>>>>Я был бы очень вам благодарен, если пришлете скрипт. :)
>>> Куда прислать? Мыло дайте чтоли)))
>>> Попоробую там описать еще как все у меня сделано
>> Ребяата мне нужна такое решение поставит на PFSense 2.0 если не трудно
>> не поделитес  со мной вашим репением??? мыло vrdo81@mail.ru или vberberyan@bta.am
> товарищи и мне пожалуйста chumakov.aleksey[at]gmail.com

Если вас не затруднит, пришлите скрипт на angryjoe@rambler.ru


"IPsec Failover на FreeBSD с двумя wan-интерфейсами"
Отправлено vitek16 , 30-Янв-14 13:00 
>[оверквотинг удален]
>>>>>У меня есть скрипт, но он пингует только шлюзы провайдеров. А если
>>>>>пингую левые адреса, то он не переключается обратно на основной канал
>>>>>при его восстановлении, а только если резервный тоже умрет.
>>>>>Я был бы очень вам благодарен, если пришлете скрипт. :)
>>>> Куда прислать? Мыло дайте чтоли)))
>>>> Попоробую там описать еще как все у меня сделано
>>> Ребяата мне нужна такое решение поставит на PFSense 2.0 если не трудно
>>> не поделитес  со мной вашим репением??? мыло vrdo81@mail.ru или vberberyan@bta.am
>> товарищи и мне пожалуйста chumakov.aleksey[at]gmail.com
> Если вас не затруднит, пришлите скрипт на angryjoe@rambler.ru

К сожалению прошло уже много времени, и у меня не сохранился этот скрипт. В принципе там нет ничего сложного. Смысл в том, что при не доступности одного из пингуемых хостов, устанавливается флаг в /tmp, роуты переключаются,дергаются gif-интерфесы. При следующем запуске,проверяется есть ли флаг. Если флаг есть,то скрипт заканчивает свою работу. Если связь с ранее отвалившемся пингуемым хостом восстанавливается, то снова дергаются роуты и интерфейсы, после чего флаг удаляется. Как-то так.

Я там уже просто не работаю,а в нынешнем месте работы сетевая архитектура другая,поэтому данное решение не используется и скрипта у меня не осталось. Вы можете написать на почту человеку, который изначально задавал тут этот вопрос, может у него что-либо осталось.
Его почта: ail-man@yandex.ru


"IPsec Failover на FreeBSD с двумя wan-интерфейсами"
Отправлено vitek16 , 30-Янв-14 13:32 
>[оверквотинг удален]
> при не доступности одного из пингуемых хостов, устанавливается флаг в /tmp,
> роуты переключаются,дергаются gif-интерфесы. При следующем запуске,проверяется есть
> ли флаг. Если флаг есть,то скрипт заканчивает свою работу. Если связь
> с ранее отвалившемся пингуемым хостом восстанавливается, то снова дергаются роуты и
> интерфейсы, после чего флаг удаляется. Как-то так.
> Я там уже просто не работаю,а в нынешнем месте работы сетевая архитектура
> другая,поэтому данное решение не используется и скрипта у меня не осталось.
> Вы можете написать на почту человеку, который изначально задавал тут этот
> вопрос, может у него что-либо осталось.
> Его почта: ail-man@yandex.ru

Запросил текст скрипта на старой работе. Пользуйтесь...


#!/bin/sh
#
GW1=<ip next-hop on first iface, e.q "default_gateway">
GW2=<ip next-hop on second iface, e.q "default_gateway">
/sbin/ping -q -c 8 -S <src_ip_on_first_iface> <target_check#1> > /dev/null 2>&1
if [ $? != 0 ]; then
    /sbin/ping -q -c 8 -S <src_ip_on_second_iface> <target_check#1> > /dev/null 2>&1
   if [ $? = 0 ]; then
      if [ ! -f /tmp/gw.changed ]; then
echo "TZ down, Gars up"
         /bin/cp /usr/local/admins/rc.conf_secondary /etc/rc.conf && /sbin/route flush \
         && /etc/rc.d/netif restart && /etc/rc.d/routing restart \
         && /usr/bin/touch /tmp/gw.changed \
         && /usr/local/etc/rc.d/racoon restart \
         sleep 10
      fi
   fi
else
   if [ -f /tmp/gw.changed ]; then
echo "Gars connnect down & TZ up now"
       /bin/cp /usr/local/admins/rc.conf_primory /etc/rc.conf && /sbin/route flush \
       && /etc/rc.d/netif restart && /etc/rc.d/routing restart && /bin/rm /tmp/gw.changed \
        && /usr/local/etc/rc.d/racoon restart \
       sleep 10
   fi
fi