LINUX.ORG.RU
ФорумAdmin

Openvpn клиент с двумя аплинками - правильное переключение каналов.

 


0

2

Стоит задача: имеется openvpn сервер, с одним внешним ip, к которому цепляются клиенты. Клиент, в свою очередь, подключен через два провайдера, основной и резервный, на случай падения основного. Вопрос: как наиболее элегантно организовать переключение на запасного провайдера в случае падения основного?

Сразу приходящее на ум решение: пишем пингер, который постоянно пингает openvpn-сервер по внешнему айпишнику (либо какой-нибудь другой, который заведомо онлайн) и при отсутствии пинга, скажем, более минуты просто перещелкивает маршрут на запасного, при этом продолжая пытаться пингать через основного. Как только появился устойчивый пинг - переключились обратно. Но можно ли решить подобную задачу какими-либо иными средствами, желательно встроенными в систему, без привлечения самописных скриптов?

Ответ на: комментарий от tazhate

multihome

Это же опция для сервера, насколько я понимаю. Какой в ней смысл в данном случае, если у сервера используется только один интерфейс?

strangeman ★★★★ ()
Ответ на: комментарий от strangeman

Какой в ней смысл в данном случае, если у сервера используется только один интерфейс?

Где это написано в топике?

tazhate ★★★★★ ()
Ответ на: комментарий от tazhate

Клиент подключен через два провайдера, основной и резервный, на случай падения основного. Вопрос: как наиболее элегантно организовать переключение на запасного провайдера в случае падения основного?

Про сервер вообще ничего не написано. Если это критично - сейчас внесу уточнение.

strangeman ★★★★ ()
Ответ на: комментарий от Deleted

А если держать постоянно работающими одновременно два туннеля?

Собственно, я именно на это ему и намекал :)

tazhate ★★★★★ ()
Ответ на: комментарий от Deleted

На резервном провайдере трафик лимитный (это обычный usb-свисток, нормальные тарифы и 3G до того места, где стоит клиент, еще не дошли), поэтому его использование хотелось бы свести к минимуму, только когда основной канал лежит.

Плюс мне непонятно (тут уже проблема недостатка скиллов, видимо), как это будет выглядеть в плане маршрутизации. Это получается, что будет 2 виртуальных интерфейса? Тогда опять же надо будет рисовать какой-то скрипт, который будет менять дефолтный маршрут в зависимости от состояния туннелей?

strangeman ★★★★ ()
Ответ на: Заюзай OSPF от Chaser_Andrey

О, выглядит интересно, завтра на работе почитаю повнимательнее, спасибо.

strangeman ★★★★ ()
Ответ на: комментарий от strangeman

Плюс мне непонятно (тут уже проблема недостатка скиллов, видимо), как это будет выглядеть в плане маршрутизации. Это получается, что будет 2 виртуальных интерфейса? Тогда опять же надо будет рисовать какой-то скрипт, который будет менять дефолтный маршрут в зависимости от состояния туннелей?

Нет, можно поднимать два дефолтных маршрута с разной метрикой, указав ее через route-metric (меньшая должна быть у дешевого канала) и попросить OpenVPN-клиентов опускать tun-интерфейс при пропадании содинения с сервером добавив параметры up-restart и up-delay. Соответствующие маршруты тогда будут удаляться из таблицы маршрутизации в момент неактивности того или иного канала связи. Тогда получается обойтись без всяких скриптов. Правда у меня такая схема только в режиме p2p используется, т.е. со стороны сервера тоже два демона стартуют. Этакий OSPF вручную :) Но реализуется проще и работает без сбоев уже давно.

VitalkaDrug ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.