The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Скрипт автоматического переключения интернет каналов на Linux сервере (linux interface)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: linux, interface,  (найти похожие документы)
From: raver <raver@smtp.ru.> Newsgroups: email Date: Sun, 25 Dec 2005 17:02:14 +0000 (UTC) Subject: Скрипт автоматического переключения интернет каналов на Linux сервере Автоматическое переключение интернет каналов на Linux сервере. Данная статья написана мною потому, что в интернете я не смог найти решения проблемы автоматического переключения интернет каналов, если один из них упадет. В этой статье рассмотрен пример с учетом использования сразу двух каналов для распределения траффика и по отдельности. 1. Для написания скрипта автоматического переключения использовался так называемый shell scripting в Linux. В данном примере используется 2 скрипта - первый проверяет почти все, а второй включается если в один момент упали оба канала и начинает проверять до тех пор пока не поднимутся оба или хотя бы один. Когда это происходит он передает управление 1-ому скрипту, а сам завершается. 2. Условные обозначения: 1) rc.prov1 - это Ваш скрипт, в котором описаны сброс таблиц iptables, iproute2 (в данном случае у меня так) и задание новых правил с учетом того, что весь траффик пойдет через prov1. 2) rc.prov2 - это Ваш скрипт, в котором описаны сброс таблиц iptables, iproute2 (в данном случае у меня так) и задание новых правил с учетом того, что весь траффик пойдет через prov2. 3) rc.routing - это Ваш скрипт, в котором описаны сброс таблиц iptables, iproute2 (в данном случае у меня так) и задание новых правил с учетом того, что весь траффик пойдет через prov1 и prov2. В одной из следующих статей я опишу подробную настройку iptables и iproute2 для распределения траффика, основываясь на source ip/net adresses, destination ip/net adresses, destination ports. 4) Команды ping -I eth0 или ping -I eth1 - используются для того, чтобы в случае падения одного канала (проверка идет посредством пинга шлюза провайдера, а можно пинговать и следующий hop) система не могла пингануть по другому интерфейсу если из вне этот шлюз доступен. 5) Скрипт работает посредством простого алгоритма if .... then.... fi и multilevel if .... then .... elif .... then .... else .... fi и проверяет есть ли определенные флажки (в данном случае обычные пустые файлы идентификаторы, которые создаются в директории /var/lock) 6) Файлы идентификаторы: prov1_up.id, prov2_up.id, prov1_down.id, prov2_down.id, prov1_nowup.id, prov2_nowup.id, prov1_checking.id, prov2_checking.id - они создаются и удаляются скриптом. 7) Механизм захвата информации - упал шлюз или поднялся очень простой : ping -I eth0 -c5 -W2 $GW1 | grep "100% packet loss", где GW1="1.1.1.1" ping -I eth0 -c5 -W2 $GW1 | grep "64 bytes from", где GW1="1.1.1.1" ping -I eth1 -c5 -W2 $GW2 | grep "100% packet loss", где GW2="2.2.2.2" ping -I eth1 -c5 -W2 $GW2 | grep "64 bytes from", где GW2="2.2.2.2" Внимание: Не используйте grep "0% packet loss" - так как grep схватит это и при 100% packet loss. 8) Все скрипты по умолчанию должны лежать в /etc/rc.d , хотя Вы можете поменять путь в скриптах. Вообщем-то все просто - далее ссылка на сам скрипт ;) http://scripts.o5o5.ru/hotchannel.tar

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, Алексей (??), 01:41, 27/12/2005 [ответить] [показать ветку] [····]    [к модератору]
  • +/
    Ну сколько же можно? По-русски слово трафик пишется с одним ф.
     
  • 1.2, jb (??), 11:15, 27/12/2005 [ответить] [показать ветку] [····]    [к модератору]
  • +/
    Как насчет ip route & ip rule ?
     
  • 1.3, Till (?), 11:46, 27/12/2005 [ответить] [показать ветку] [····]    [к модератору]
  • +/
    Можно еще когда пингуешь вместо grep использовать код завершения работы команды ping.
     
  • 1.4, raver (?), 12:02, 27/12/2005 [ответить] [показать ветку] [····]    [к модератору]
  • +/
    Да, можно :)

    iproute и iprule можно настроить, у меня на гейте собственно в iptables ставятся ЬФКЛ на пакеты, а дальше SNAT $ iproute via $GW1 или via $GW2, но когда падает канал, отслеживать приходится по пингу и этот самый мой скрипт и вызывает скрипт сброса таблиц iproute и iptables -> и добавляет правила маршрутизации на 1 из каналов. :) - вот скрипты с маршрутизацией уже Ваши :)

     
  • 1.5, Endlesscat (?), 19:39, 27/12/2005 [ответить] [показать ветку] [····]    [к модератору]
  • +/
    а ссылка почему то не рабочая на сам скрипт ?
     
  • 1.6, Endlesscat (?), 19:41, 27/12/2005 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    странно, уже работает...
    Sorry
     
     
  • 2.12, DrAG0n (?), 17:36, 11/12/2006 [^] [ответить]    [к модератору]  
  • +/
    >странно, уже работает...
    >Sorry


    Снова не работает... А из Харькова - качать не дает :-(((

     
  • 1.7, wolf (??), 07:06, 11/07/2006 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    ссылка не пашет, но я нашел здесь
    ftp.spez.kharkov.ua/pub/bbs/linux/network/hotchannel.zip
        ftp.spezvuz.kharkov.ua/pub/bbs/linux/network/hotchannel.zip
     
  • 1.8, Сергей (??), 11:45, 02/08/2006 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    А как настроить маршрутизацию для трёх случаев: пров1, пров2, пров1+2. Как настроить и менять в зависимости от ситуации SNAT я понимаю. А как быть с iproute2? Надо менять маршрут по умолчанию в главной таблице или как?
     
  • 1.9, Makalu (??), 14:56, 03/11/2006 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    А кто поделится скриптами, ссылки не работают
     
  • 1.10, wolf (??), 13:30, 16/11/2006 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    мне реализация не понравилась, я залез в раздел Документация, нашел там мануал по шеллу и написал свое, если кому интересно могу выложить
     
     
  • 2.11, Spherix (?), 16:21, 04/12/2006 [^] [ответить]    [к модератору]  
  • +/
    давай, выкладывай
     
  • 2.18, bob (??), 10:28, 12/04/2007 [^] [ответить]    [к модератору]  
  • +/
    да интересно, выложи свою реализацию.

    вообще интересует может под freebsd у кого есть написано с ipfw

     
  • 1.13, DrAG0n (?), 17:54, 11/12/2006 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Нашел, где еще скачать можно; http://www.yafi.ru/files/hotchannel.zip
     
  • 1.14, pepto (?), 12:25, 03/02/2007 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    опять все сцылы на фало дохлые!!!!!!!!!! фускинг!
     
  • 1.15, totram (??), 12:53, 14/02/2007 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    А как быть если до шлюза провайдера прямая оптика лежит?
     
  • 1.16, totram (??), 12:56, 14/02/2007 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    И шлюз всегда видно!
     
  • 1.17, raver (??), 19:17, 15/02/2007 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Да, давненько я не заглядывал сюда :)
      Вот ссылка, которая работает:
    http://www.sinichka.net/hotchannel.tar

    В случае если шлюз не пингуется всегда, то следует опираться на следующий ХОП или 2 ХОПА. в скрипте есть пример в случае если 2 хопа одного провайдера не пингуются, тогда переключить.

    По этой ссылке - в архиве лежит mpath2.sh скрипт, с помощью которого и осуществляется раскидывание одновременно на 2 Гейта используя iproute2.

     
  • 1.19, Agressor (ok), 15:07, 16/06/2007 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Как вариант это можно применить, если ppp интерфейсы
    http://wiki.opennet.ru/Linux_ppp-oe_%28ADSL%29_Balance
     
  • 1.20, Vitaly (??), 16:52, 21/09/2007 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Сцылко не работает не одна... но у меня есть... как говориться welcome http://fotokam.org/files/hotchannel.zip
     
  • 1.21, raver (ok), 13:42, 08/10/2007 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Кидаю новую рабочую ссылку:
    http://scripts.o5o5.ru/hotchannel.tar
     
  • 1.22, Subs (?), 14:11, 16/10/2007 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Не работет ссылка, Перезалейте хоть на deposit или ifolder
     
  • 1.23, raver (??), 17:40, 30/10/2007 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Работает только не всегда :)
     
  • 1.24, pavlinux (??), 01:08, 04/11/2007 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    > Внимание: Не используйте grep "0% packet loss" -
    > так как grep схватит это и при 100% packet loss.

    Внимание: учимся пользоваться grep!!! -

    grep ' 0% packet loss' - и схватит только ноль.


     
  • 1.25, raver (??), 17:05, 12/12/2007 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Ага с грепом клево, схватить то схватит только ноль. Но учитывая логику работы скрипта что получается:
    Хост не доступен, он хватает 100% Packet Loss - все правильно, и если хост доступен то хватает 0% Packet Loss - все правильно. Но в том случае если хост должен быть доступен на определенной стадии проверки (те моменты где юзается "64 bytes from"), а он на самом деле недоступен то греп по "0% Packet Loss" схватит и 100% Packet Loss и примет неправильное решение о помещении файла флажка. Во как загнул, ну что-то типа того...
     
     
  • 2.26, konver (ok), 14:47, 14/12/2007 [^] [ответить]    [к модератору]  
  • +/
    ниодна ссылка не работает :(
     
  • 1.27, Андрей (??), 11:33, 09/01/2008 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Народ!!! Дайте, пожалуйста, работающую ссылку на скрипт, или, если есть возможность, пришлите по почте.
    СПАСИБО!!!
     
  • 1.28, Pinger (?), 03:47, 14/01/2008 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Здравствуйте! Очень хочется такой скрипт! Дайте пожалуйста! А под фря, мне кажется, можно адаптировать? И как быть если второй канал(резерв) кабель? Ладно. Дайте скрипт для начала! Очень прошу. Работа второй месяц стоит
     
     
  • 2.29, Dmitry (??), 15:02, 25/01/2008 [^] [ответить]    [к модератору]  
  • +/
    вот эта работает ftp.spez.kharkov.ua/pub/bbs/linux/network/hotchannel.zip
     
  • 1.30, zabudkin (ok), 08:18, 26/03/2008 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    А что, метрику использовать религия не позволяет?
     
     
  • 2.33, wertik (ok), 17:32, 28/04/2008 [^] [ответить]    [к модератору]  
  • +/
    ну у меня к примеру на c метрикой ничего невышло.
    Можете показать пример реализации?
     
  • 1.31, daniil (??), 16:01, 22/04/2008 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    ребят, линк не пашет скиньте сссылку или мне на мыло...отблагодарю пивом)
     
  • 1.32, Solo_vrn (?), 12:09, 23/04/2008 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    ftp://ftp.spez.kharkov.ua/bbs/linux/network/hotchannel.zip
    Только что по ней скачал.
     
  • 1.34, mich (??), 21:55, 06/08/2008 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    ping дает код возврата. Если хотя бы один пакет пропал - то код возврата не "0".Пробуйте.
     
  • 1.35, Наталья (??), 07:18, 22/08/2008 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    А мне ссылку?
    По этой не выходит. =(
     
  • 1.36, avi (?), 15:13, 05/09/2008 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    http://asplinux.net/files/forum/hotchannel.zip
     
  • 1.38, maxie (?), 16:55, 14/09/2012 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Уважаемые ОупенНетовцы, Дайте, плиз, работающую ссылку на скрипт, очень надо!!!
     
  • 1.39, soft87 (?), 19:27, 11/02/2013 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    ftp://ftp.spezvuz.kharkov.ua/bbs/linux/network/hotchannel.zip
     
  • 1.40, burunduk (?), 14:03, 14/03/2014 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    выложил вот сюда про запас
    http://snioo.ru/images/stories/foto2014/hotchannel.zip
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру
    Hosting by Ihor