Автор Тема: Решение за two isp с load balancing  (Прочетена 7716 пъти)

Sairos

  • Напреднали
  • *****
  • Публикации: 77
  • Distribution: GNU Linux
  • Window Manager: Console
    • Профил
Разполагам с два Интернет доставчика търся някакво решение за load balancing с идеята че ако нета на идният доставчик падне другият да се включи сам и да продължи.
Къде ли не гледах нищо свястно не открих.
Някакви идеи ?
Активен

kiko_99319

  • Напреднали
  • *****
  • Публикации: 41
  • Distribution: openSuse 11.4
  • Window Manager: Gnome 2.32
    • Профил
Re: Решение за two isp с load balancing
« Отговор #1 -: Oct 10, 2011, 12:04 »
При pfSense става доста елементарно и работи(поне при версия 1,2,3 съм го пробвал), другия вариант е с някакво скриптче.

П.П. На това му се казва fail over.
Активен

Sairos

  • Напреднали
  • *****
  • Публикации: 77
  • Distribution: GNU Linux
  • Window Manager: Console
    • Профил
Re: Решение за two isp с load balancing
« Отговор #2 -: Oct 10, 2011, 12:15 »
Забравих да уточня че търся вариант който да работи без инсталация на друга операционна система.
Благодаря за съвета.
Активен

laskov

  • Напреднали
  • *****
  • Публикации: 3166
    • Профил
Re: Решение за two isp с load balancing
« Отговор #3 -: Oct 10, 2011, 12:47 »
Нещо от далечната 2008-ма:
http://www.linux-bg.org/forum/index.php?topic=33205.msg163194#msg163194
но това е превключване, а не load balancing, както е озаглавена темата ти. Може да пуснеш едно търсене на iproute2 във форума.
Активен

Не си мислете, че понеже Вие мислите правилно, всички мислят като Вас! Затова, когато има избори, идете и гласувайте, за да не сте изненадани после от резултата, и за да не твърди всяка партия, че тя е спечелила, а Б.Б. (С.С., ...) е загубил, а трети да управлява.  Наздраве!  [_]3

Ipolit

  • Напреднали
  • *****
  • Публикации: 418
    • Профил
    • WWW
Re: Решение за two isp с load balancing
« Отговор #4 -: Oct 10, 2011, 13:40 »
Eто ти едно бързо, но при него се ползва само единия доставчик. Аз имам 4 линии, 2 са в BGP и там само си се превключва. Но едната е с това скриптче

Код
GeSHi (Bash):
  1. #!/bin/bash
  2. ECGW="xxx.xxx.xxx.xxx" - единия гейтуей
  3. BGP="yyy.yyy.yyy.yyy" - другия гейтуей
  4. PINGADR="xxx.xxx.xxx.xxx" - тука си пингя първия гейтуей
  5. mail="xxxx@gmail.com"
  6. default=$(ip ro ls|awk '/default/ {print $3}')
  7.  
  8.  
  9. ping -c 2 $PINGADR -I eth1
  10. if [ $? -ne 0 ]&&[ ${default} == ${ECGW} ]; then
  11. ip ro del
  12. ip ro add default via $BGP
  13. echo "GW via BGP" |mail -s "EvroCom Down. Changing Routing table via BGP" ${mail}
  14.  
  15. else
  16. ping -c 2 $PINGADR -I eth1
  17. if [ $? -ne 0 ]&&[ ${default} == ${BGP} ]; then
  18. echo "still no internet on EC"
  19.  
  20. elif  [ ${default} == ${BGP} ]; then
  21. ip ro del
  22. ip ro add default via $ECGW
  23. echo "GW changed via EvroCom"|mail -s "EvroCom is UP" ${mail}
  24.  
  25. elif [ ${default} == ${ECGW} ]; then
  26. echo "nqma problem"
  27. fi
  28. fi
  29.  
Малко е омототано, ама работи.
И това в кронтаб на всяка минута да се изпълнява
« Последна редакция: Oct 10, 2011, 16:10 от VladSun »
Активен

Face Your FreeBSD at http://ipolit.hit.bg

Sairos

  • Напреднали
  • *****
  • Публикации: 77
  • Distribution: GNU Linux
  • Window Manager: Console
    • Профил
Re: Решение за two isp с load balancing
« Отговор #5 -: Oct 10, 2011, 15:41 »
Благодаря Ви много !
Активен

tolostoi

  • Напреднали
  • *****
  • Публикации: 1337
  • Distribution: Ubuntu
  • Window Manager: Unity
  • левел: авераж :)
    • Профил
Re: Решение за two isp с load balancing
« Отговор #6 -: Oct 10, 2011, 15:49 »
В "бележника" съм си копирал, нещо, което е по-разширено, ако искаш го прегледай http://stardust.linuxolution.org/smf/index.php/topic,47.0.html
Активен


... в Столичен инспекторат една година след миграцията, продължават да работят под Linux. Което, май прави "експеримента" успешен
by entusiast

Ipolit

  • Напреднали
  • *****
  • Публикации: 418
    • Профил
    • WWW
Re: Решение за two isp с load balancing
« Отговор #7 -: Oct 10, 2011, 16:18 »
tolostoi, за да пуснеш BGP, трябва да имаш автономна система, договор с 2 доставчика за тая услуга и още хиляди формалности. тъй че това не е опция за питащия. още  повече, че от това има смисъл ако хостваш нещо и искаш винаги ти да си достъпен на едно и също IP
по  принцип се  прави с iproute2 + пач за loadbalancing.
 но за обикновено превключване тия скриптчета вършат работа.
Активен

Face Your FreeBSD at http://ipolit.hit.bg

tolostoi

  • Напреднали
  • *****
  • Публикации: 1337
  • Distribution: Ubuntu
  • Window Manager: Unity
  • левел: авераж :)
    • Профил
Re: Решение за two isp с load balancing
« Отговор #8 -: Oct 10, 2011, 22:08 »
Съгласен, имах предвид да го прегледа за идеи, не съм бил точен по-горе. Пък и следващият който попадне на темата може да бъде щастлив, ако търси нещо подобно. Да кажа, че горното е просто преписано от един блог ( в който има и други интересни статии) не съм го ползвал/пробвал.
Активен


... в Столичен инспекторат една година след миграцията, продължават да работят под Linux. Което, май прави "експеримента" успешен
by entusiast

Astor

  • Напреднали
  • *****
  • Публикации: 332
    • Профил
Re: Решение за two isp с load balancing
« Отговор #9 -: Oct 10, 2011, 22:57 »
Здравейте,
как стои въпроса за load balancing чрез 2 routing tables и 2 gw, например описан тук:http://mundonix.wordpress.com/2010/01/20/how-to-load-balancing-failover-with-dual-multi-wan-adsl-cable-connections-on-linux/
При отпадане на единият isp при положение не е отпаднал порта (съответно маршрута в routing table) дали всеки втори пакет би се губил (за това че минава все още през отпадналия доставчик)?
Т.е. може ли да се мине без гимнастиките със ping скриптовете?
Активен

Няма начин, да няма начин!

shadowx

  • Напреднали
  • *****
  • Публикации: 99
  • Distribution: Slackware
  • Window Manager: Gnome
    • Профил
Re: Решение за two isp с load balancing
« Отговор #10 -: Oct 13, 2011, 16:42 »
Разгледай товa
http://lartc.org/howto/lartc.rpdb.multiple-links.html
Активен

There he goes. One of God's own prototypes. A high-powered mutant of some kind never even considered for mass production. Too weird to live, and too rare to die.

Sairos

  • Напреднали
  • *****
  • Публикации: 77
  • Distribution: GNU Linux
  • Window Manager: Console
    • Профил
Re: Решение за two isp с load balancing
« Отговор #11 -: Oct 13, 2011, 18:24 »
Благодаря на всички за помощта !!!

След като разгледах всички скриптовете и тествах някой от тях, се спрях на един който беше преработен.

Самият скрипт изпълнява проверка дали първият Ви зададен : "gateway" е  : "up" и ако е така оставете на него, ако e : "down" Ви прехвърля на вторият зададен : "gateway" от вас.
След завръщането на първият Ви : "gateway" се връщате на него автоматично.
 
Код
GeSHi (Bash):
  1. #!/bin/sh
  2.  
  3. GW_eth1=x.x.x.x  #Адреса на първият gateway
  4. GW_eth2=x.x.x.x  #Адреса на вторият  gateway
  5.  
  6. ip ro del default via  $GW_eth2 dev eth2  #При стартиране премахваме втория gateway от таблицата
  7.  
  8. # Prevklyu4va default gateway avtomati4no
  9.  if ping -c 3 $GW_eth1 -I eth1 1> /dev/null 2> /dev/null; then # "-I eth1" заменете eth1 с интерфейса на вашият първи gateway
  10.    echo "GW_eth1 raboti ..."
  11.     if ! /sbin/route -n | grep $GW_eth1 1> /dev/null 2> /dev/null; then
  12.       ip ro del default via  $GW_eth2 dev eth2
  13.       ip ro add default via $GW_eth1 dev eth1
  14.       cp /etc/resolv.conf.eth1 /etc/resolv.conf
  15.       echo "Default gw changed to GW_eth1"
  16.     fi
  17.  
  18.  else
  19.    echo "GW_eth1 ne raboti ..."
  20.     if /sbin/route -n | grep $GW_eth1 1> /dev/null &2> /dev/null; then
  21.       ip ro del default via  $GW_eth1 dev eth1
  22.       ip ro add default via $GW_eth2 dev eth2
  23.       cp /etc/resolv.conf.eth2 /etc/resolv.conf
  24.       echo "Default gw changed to GW_eth2"
  25.     fi
  26.  fi

1. Променете по скрипта : "gateway" адресите и съответно имената на вашите интерфейси.
2. Необходимо е да бъдат направени два файла  resolv.conf.eth1 и resolv.conf.eth2 като ползвате за образец файла resolv.conf и в тях постави DNS-ите на съответния доставчик, файловете трябва да бъдат в : "/etc/" .
3. Скрипта се изпълнява през : "crontab" на колкото време желаете.
4. Това е забавлявайте се :)

Отново благодаря на всички за помощта !!!
« Последна редакция: Oct 13, 2011, 18:28 от Sairos »
Активен

Acho

  • Напреднали
  • *****
  • Публикации: 5290
  • Distribution: Slackware, MikroTik - сървърно
  • Window Manager: console only
    • Профил
    • WWW
Re: Решение за two isp с load balancing
« Отговор #12 -: Oct 13, 2011, 20:03 »
И аз си имам на едно място работещ подобен скрипт. Досега обаче никой не го каза, а всеки пингва gateway-а, и така проверява аджеба има ли интернет или няма. Ами ако си има нормален пинг до GW,  а нататъка по рутингите не минава нищо, какво правим ? Защото не само между GW и нас може да има проблем. Така че проверката с пинг до GW е малко несигурна. Всеки админ сам ще си реши какво ще пингва, дали GW или някакъв друг IP адрес/хост, за който е сигурен, че винаги (или почти винаги) е UP. Успехи.
Активен

CPU - Intel Quad-Core Q8400, 2.66 GHz; Fan - Intel Box; MB - Intel G41M-T2; RAM - DDR2-800, Kingston HyperX, 2X2048 MB; VC - onboard, Intel G41 Express Chipset; HDD - Toshiba, 500 GB, SATAII; SB - Realtek HD Audio; DVD-RW - TSSTcorp DVD-RW; LAN - Realtek PCI-E GBE Controller; PSU - Fortron 350 Watt.

Sairos

  • Напреднали
  • *****
  • Публикации: 77
  • Distribution: GNU Linux
  • Window Manager: Console
    • Профил
Re: Решение за two isp с load balancing
« Отговор #13 -: Oct 13, 2011, 20:21 »
И аз си имам на едно място работещ подобен скрипт. Досега обаче никой не го каза, а всеки пингва gateway-а, и така проверява аджеба има ли интернет или няма. Ами ако си има нормален пинг до GW,  а нататъка по рутингите не минава нищо, какво правим ? Защото не само между GW и нас може да има проблем. Така че проверката с пинг до GW е малко несигурна. Всеки админ сам ще си реши какво ще пингва, дали GW или някакъв друг IP адрес/хост, за който е сигурен, че винаги (или почти винаги) е UP. Успехи.

Да така е много си прав, за това аз съм го направил по този начин :

Код
GeSHi (Bash):
  1. if ping -c 3  8.8.8.8 -I eth1 1> /dev/null 2> /dev/null; then

Опита ми е показал че този адреса на гугалци е достатъчно сигурен, но както ти казваш всеки сам да си прецени какво да пингва.

вместо

Код
GeSHi (Bash):
  1. if ping -c 3 $GW_eth1 -I eth1 1> /dev/null 2> /dev/null; then


Активен

Astor

  • Напреднали
  • *****
  • Публикации: 332
    • Профил
Re: Решение за two isp с load balancing
« Отговор #14 -: Oct 13, 2011, 23:28 »
@Shadowx:
Точно това ми беше въпроса (failover+loadbalancing), според мен ако използвам това:
Цитат
ip route add default scope global nexthop via $P1 dev $IF1 weight 1 \
       nexthop via $P2 dev $IF2 weight 1
при отпадане на единия от двата доставчика ($P1,$P2 - gw) мрежите които са се рутирали през отпадналия, няма ли да са НЕдостъпни, въпреки че все още могат да се достъпят през другия доставчик?

А относно проблемът какво да се ping-ва, ако има работещ resolving един пинг до google.bg например, би ти давал гаранция че имаш свързаност
Цитат
linux@pc:~$ host google.bg
google.bg has address 74.125.39.147
google.bg has address 74.125.39.105
google.bg has address 74.125.39.104
google.bg has address 74.125.39.99
google.bg has address 74.125.39.106
google.bg has address 74.125.39.103
все един ще отговори :)

Активен

Няма начин, да няма начин!

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Load balancing
Начини за увеличаване на бързодействието
KNK 2 4335 Последна публикация Feb 18, 2003, 13:30
от KNK
Load balancing или нещо такова
Настройки на софтуер
Geek 1 3409 Последна публикация Aug 29, 2004, 12:48
от JohnDoe
Load balancing
Настройка на програми
faint 12 5014 Последна публикация May 16, 2006, 01:25
от Hapkoc
Load balancing
Начини за увеличаване на бързодействието
EazySnatch 4 5657 Последна публикация Jul 11, 2008, 16:57
от savago
Irc drop при load balancing
Настройка на програми
bombe 5 4168 Последна публикация Jul 05, 2008, 11:33
от bombe