xtavras 29.04.2013 14:47
Есть вопрос! — [РЕШЕНО] Автоматический роутинг для нескольких 3G модемов.
Есть машину с несколькими 3G модемами, все модемы работают. Цель - при выходе из строя одного из модемов (нет сети, физически сломан и т.д), трафик автоматически шел через оставшиеся.В принципе это почти работает. Есть три модема (ppp1, ppp2, ppp3) с 3мя гейтвеями (10.64.64.1,10.64.64.2,10.64.64.3). С помощью iproute2 можно их объединить в общий default scope.
1 |
ip route add default scope global nexthop via 10.64.64.1 dev ppp1 weight 1 nexthop via 10.64.64.2 dev ppp2 weight 1 nexthop via 10.64.64.3 dev ppp3 weight 1
|
Таким образом, если ppp1 выйдет из строя, все пойдет через ppp2, и это даже работает несколько секунду: ppp1 помечается как "dead" и трафик идет через ppp2 (это хорошо видно в ifconfig'e) но потом интерфейс ppp1 отваливается (логично, если нет сети) и весь рутинг удаляется. Вопрос можно ли это как то побороть?
UPD: Решил проблему с помощью ip-down скрипта вот таким образом, если кому интересно (утилита ifdata входит в пакет moreitils)
ananas 30.04.2013 09:00 #
+ 0 -
bonding, не?
bonding как таковой для ppp невозможен, есть аналогичный multilink ppp, но для него нужна поддержка у второй стороны, в данном случае провайдера, а они ее не предоставляют.
Спасибо, интересно, но в моем случае не совсем подходит, мне нужно что-то на низком уровне.
есть if-up/down скрипты
по идее для всей сети при смене состояния можно написать скрипт изменения роутинга для _доступных_ на момент вызова модемов
и да. объединение в bonding - хорошая идея)
по идее для всей сети при смене состояния можно написать скрипт изменения роутинга для _доступных_ на момент вызова модемов
и да. объединение в bonding - хорошая идея)
Сходу ip-down скрипты не заработали, и я не совсем уверен что они будут работать, если подключение само прервется, а не я сам завершу его с помошью ip-down? Еще интересное наблюдение, если я вытаскиваю антенну, то ppp0 никуда не пропадает, а вот если добавил в default scope то вылетает через 10 секунд, я так подозреваю это делает iproute после того как помечает его "dead"...