Агрегация каналов или отказоустойчивость коннекта [SOLVED]

День добрый!

Решаю следующую задачу: есть шлюз с двумя провайдерами. Хотелось бы распараллелить соединения по ним, обеспечив отказоустойчивость соединения (т.е. перекидывая нагрузку на другое соединение). Посмотрел на технологию bonding, но чувствую мне она не светит: оба провайдера обеспечивают соединение по vpn-у (один pppoe, а другой pptp).
Есть ли какие-нибудь еще методы, позволяющие управлять нагрузкой на соединения? И (что не менее важно) обеспечивать соединение, даже при отключении одного из провайдеров?

Заранее свасибо.

можно

можно воспользоваться
ip route add default table main scope global equalize nexthop via $GW1 nexthop via $GW2
И скриптом (искать на форуме, я уже приводил), проверяющим падучесть канала и меняющий соответственно маршрутизацию.

но этот способ имеет один большой и толстый баг...
он начинает перекидывать уже установленные соединения между провайдерами, метода лечения я пока не нашел, да и такие вещи как ICQ, Online игры тоже постоянно глючат... Этот способ идеален для Торрентов и других пиринговых сетей.

Хорошо, тогда

Хорошо, тогда как лучше решить следующую ситуацию:
есть соединения с двумя провайдерами. Оба VPN. Когда падает сеть на одном, то (меняя маршруты + маршрут по умолчанию) переключаться на другого, при этом пытаясь восстановить связь с первым?
Скорее всего тут две задачи - маршруты и восстановление коннекта. С восстановлением коннекта мне может помочь netplug/ifplug?

Сам VPN

Сам VPN теоретически должен переконективаться автоматически, т.о. нужно только проверять жив/мертв и соответственно менять маршруты

Ничего лучше,

Ничего лучше, чем пинг ближайшего маршрутизатора основного провайдера с переключением маршрута по умолчанию и возвратом назад при восстановлении, не придумано пока что.
_______________________
From Siberia with Love!

Хорошо, но

Хорошо, но пинговать-то периодически cron'ом тогда что ли?

Да. Алгоритм

Да. Алгоритм примерно такой. Проводится проверка пингом пограничного маршрутизатора провайдера, выходящего в мир. Если он доступен, то производится пинг до первого маршрутизатора провайдера, иначе происходит переключение на резервный канал. Если первый маршрутизатор провайдера доступен, то идет переключение на первый канал (независимо от того, каким был маршрут по умолчанию), иначе переключение на резервный. Все это загоняется в скрипт, который исполняется каждую минуту по крону.
_______________________
From Siberia with Love!

Если честно, то

Если честно, то раньше так и было ) Просто хотелось сделать решение более красивым что ли. Ведь по идее есть же технологии организации кластеров сетевых интерфейсов... Хотя не уверен, что это работает для VPN-ов

Это понятно.

Это понятно. Сам убил много времени на изучение кластерных решений :). Но ничего путного не извлек.
_______________________
From Siberia with Love!

Ладно. Все

Ладно. Все новое - хорошо забытое старое )
Спасибо за советы!

Я где-то тут уже

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

http://www.gentoo.ru/node/551

http://www.gentoo.ru/node/5516#comment-30385
Вот там есть мой скрипт, написаный давно еще. Оно кривое, но рабочее =)

Вот мой

Вот мой вариант:
http://www.gentoo.ru/node/10892#comment-74231
Отличается тем, что работает с 3-мя каналами, установка PPP соединения возложено на аппаратный маршрутизатор (ADSL модем), пинается DNS сервер прова. Скрипт запускается в фоне, отрабатывает примерно раз в 15 секунд. Провалы в интернете, связанные с отваливанием модемов от линии, практически не замечаются.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".