Linux за българи: Форуми

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: chatter в Mar 29, 2006, 13:05



Титла: Два adsl-a по 2048кбит/с
Публикувано от: chatter в Mar 29, 2006, 13:05
Значи имам два ADSL-а по 2048кбит/с закачени на рутер с 3 мрежови карти.Eth0 - ADSL-1 ,eth1 - ADSL-2 ,eth2 - вътрешна мрежа.Операционна система Linux Debian 3.1.Някой ще можели да ми каже как точно трябва да ги балансирам двата адсл-а за да могат да работят както трябва и интернета да върви добре като се запуши единият адсл.Тук прочетох доста неща, но ненамерих точно как е направено балансирането.Знам че единият от начините и който е препоръчителен е с bgp, но незнам как става точно.Някой ако може да помогне ще съм му много благодарен.


Титла: Два adsl-a по 2048кбит/с
Публикувано от: в Mar 29, 2006, 14:27
Здравей
Ето този->http://lartc.org/howto/lartc.rpdb.multiple-links.html вариант съм го пробвал и работи но имах проблем с някой от услугите.Например ICQ се разкачаше през няколко минути.Някой ако е имал подобен проблем и е намерил решение ще съм му много благодарен ако го сподели с нас.
Много би ми било интересно също как може да се реализира с bgp,ще съм благодарен на каквато и да е насока.
Поздрави..


Титла: Два adsl-a по 2048кбит/с
Публикувано от: Uvigii в Mar 29, 2006, 19:43
Цитат (Guest @ Март 29 2006,15:27)
Здравей
Ето този->http://lartc.org/howto/lartc.rpdb.multiple-links.html вариант съм го пробвал и работи но имах проблем с някой от услугите.Например ICQ се разкачаше през няколко минути.Някой ако е имал подобен проблем и е намерил решение ще съм му много благодарен ако го сподели с нас.
Много би ми било интересно също как може да се реализира с bgp,ще съм благодарен на каквато и да е насока.
Поздрави..

Ами след като ще почерпиш ...
защо пък да не кажа как примерно може да стане:
Примерен код
$IPTABLES -t mangle -I FORWARD -p tcp --dport 5190 -j ROUTE --oif $EXTIF1 --continue


Титла: Два adsl-a по 2048кбит/с
Публикувано от: Uvigii в Mar 29, 2006, 19:46
Цитат
Много би ми било интересно също как може да се реализира с bgp,

Е ако подлъжеш ISP да ти пусне BGP - аз ще почерпя ;)


Титла: Два adsl-a по 2048кбит/с
Публикувано от: chatter в Mar 30, 2006, 00:08
Благодаря за барзите отговори, сега ще пробвам и ще видим какво ще стане.По въпроса с BGP-то, май няма нужда от bgp, a от zebra.Мисля че само с нея ще може да се направи баланс между двата адсл-а.
И все пак някой ако го е направил с бгп може да сподели как и да пробваме и ние, тези който не са го правили защото съм сигурен 4е ще бъде доста по стабилно и безпроблемно.


Титла: Два adsl-a по 2048кбит/с
Публикувано от: в Mar 30, 2006, 09:09
Uvigii спецялни благодарности за отговора но нешо не схващам идеята ти,
това правило($IPTABLES -t mangle -I FORWARD -p tcp --dport 5190 -j ROUTE --oif $EXTIF1 --continue) и за двата балансирани интерфейса ли трябва да се използва?


Титла: Два adsl-a по 2048кбит/с
Публикувано от: refract в Mar 30, 2006, 10:06
Цитат
По въпроса с BGP-то, май няма нужда от bgp, a от zebra.Мисля че само с нея ще може да се направи баланс между двата адсл-а.
И все пак някой ако го е направил с бгп може да сподели как и да пробваме и ние, тези който не са го правили защото съм сигурен 4е ще бъде доста по стабилно и безпроблемно.


BGP не е протокол замислен с идеята да се прави loadbalancing с него.  
iproute2 би трябвало да ти е достатъчен.


Титла: Два adsl-a по 2048кбит/с
Публикувано от: Uvigii в Mar 31, 2006, 22:54
Цитат (Guest @ Март 30 2006,10:09)
Uvigii спецялни благодарности за отговора но нешо не схващам идеята ти,
това правило($IPTABLES -t mangle -I FORWARD -p tcp --dport 5190 -j ROUTE --oif $EXTIF1 --continue) и за двата балансирани интерфейса ли трябва да се използва?

Идеята е да прекараш САМО през единия интерфейс.


Титла: Два adsl-a по 2048кбит/с
Публикувано от: chatter в May 10, 2006, 15:07
Значи, направих го по този начин но така като гледам не стана нищо:
eth0 - 192.168.99.1/24 local lan
eth1 - 192.168.1.2/24 adsl1 ,gw 192.168.1.1
eth2 - 192.168.2.2/24 adsl2 ,gw 192.168.2.1

/sbin/ip route add 192.168.1.0/24 dev eth1 src 192.168.1.2 table adsl1
/sbin/ip route add default via 192.168.1.1 table adsl1
/sbin/ip route add 192.168.2.0/24 dev eth2 src 192.168.2.2 table adsl2
/sbin/ip route add default via 192.168.2.1 table adsl2
/sbin/ip route add 192.168.1.0/24 dev eth1 src 192.168.1.2
/sbin/ip route add 192.168.2.0/24 dev eth2 src 192.168.2.2
/sbin/ip route add default via 192.168.1.1
/sbin/ip rule add from 192.168.1.2 table adsl1
/sbin/ip rule add from 192.168.2.2 table adsl2
/sbin/ip route add 192.168.99.0/24 dev eth0 table adsl1
/sbin/ip route add 192.168.2.0/24 dev eth2 table adsl1
/sbin/ip route add 127.0.0.0/8 dev lo table adsl1
/sbin/ip route add 192.168.99.0/24 dev eth0 table adsl2
/sbin/ip route add 192.168.1.0/24 dev eth1 table adsl2
/sbin/ip route add 127.0.0.0/8 dev lo table adsl2
/sbin/ip route add default scope global nexthop via 192.168.1.1 dev eth1 weight 1 \
 nexthop via 192.168.2.1 dev eth2 weight 1

Това нещо съм го правил по пример на http://lartc.org/howto/lartc.rpdb.multiple-links.html , но ми дава следните грешки като го изпълня:


Примерен код

root@router:~# /sbin/ip route add 192.168.1.0/24 dev eth1 src 192.168.1.2 table adsl1
RTNETLINK answers: File exists
root@router:~# /sbin/ip route add default via 192.168.1.1 table adsl1
RTNETLINK answers: File exists
root@router:~# /sbin/ip route add 192.168.2.0/24 dev eth2 src 192.168.2.2 table adsl2
RTNETLINK answers: File exists
root@router:~# /sbin/ip route add default via 192.168.2.1 table adsl2
RTNETLINK answers: File exists
/sbin/ip route add 192.168.1.0/24 dev eth1 src 192.168.1.2
root@router:~# /sbin/ip route add 192.168.1.0/24 dev eth1 src 192.168.1.2
RTNETLINK answers: File exists
root@router:~# /sbin/ip route add 192.168.2.0/24 dev eth2 src 192.168.2.2
RTNETLINK answers: File exists
root@router:~# /sbin/ip route add default via 192.168.1.1
RTNETLINK answers: File exists
root@router:~# /sbin/ip rule add from 192.168.1.2 table adsl1
RTNETLINK answers: Invalid argument
root@router:~# /sbin/ip rule add from 192.168.2.2 table adsl2
RTNETLINK answers: Invalid argument
root@router:~# /sbin/ip route add 192.168.99.0/24 dev eth0 table adsl1
/sbin/ip route add 192.168.2.0/24 dev eth2 table adsl1
RTNETLINK answers: File exists
root@router:~# /sbin/ip route add 192.168.2.0/24 dev eth2 table adsl1
RTNETLINK answers: File exists
root@router:~# /sbin/ip route add 127.0.0.0/8 dev lo table adsl1
RTNETLINK answers: File exists
root@router:~# /sbin/ip route add 192.168.99.0/24 dev eth0 table adsl2
RTNETLINK answers: File exists
root@router:~# /sbin/ip route add 192.168.1.0/24 dev eth1 table adsl2
RTNETLINK answers: File exists
root@router:~# /sbin/ip route add 127.0.0.0/8 dev lo table adsl2
RTNETLINK answers: File exists
root@router:~# /sbin/ip route add default scope global nexthop via 192.168.1.1 dev eth1 weight 1 \
>  nexthop via 192.168.2.1 dev eth2 weight 1
RTNETLINK answers: Invalid argument
root@router:~#

Дано някой има идея защо става така!!! :)


Титла: Два adsl-a по 2048кбит/с
Публикувано от: Uvigii в May 14, 2006, 09:32
опитваш се да поставиш едно правило повече от веднъж


Титла: Два adsl-a по 2048кбит/с
Публикувано от: chatter в May 14, 2006, 14:20
Opravih se az, problema beshe v kernela, sega vsi4ko e dobre ama nemoga da razbera koga shte po4ne da raboti i vtoriq adsl zashtoto v momenta moga da razviq skorost samo do 2048kbit/s a trqbva da moga do 4096kbit/s , neshto nesam mnogo na qsno.pls nqkoi da help oshte malko i ako moje da mi kaje kak trqbva da maskiram posle vatreshnata mreja:
Примерен код
/sbin/iptables -A POSTROUTING -t nat -j SNAT --to-source 192.168.1.2 -s 192.168.99.0/24 -o eth1
/sbin/iptables -A POSTROUTING -t nat -j SNAT --to-source 192.168.2.2 -s 192.168.99.0/24 -o eth2
#

Taka sam go napravil v momenta.
eth0 - local network
eth1 - adsl1
eth2 - adsl2


Титла: Два adsl-a по 2048кбит/с
Публикувано от: to4o1 в May 15, 2006, 16:53
Здравей, chatter бе интересно ми е как става това с двата адсла и реших да го пробвам ама нещо не ставаа.На мен още на първата стъпка ми дава грешка.как се създават тия таблици адсл1 и адсл2 и какво трябва да се пипне в кернела?Мерси предварително.Аз ползвам RH 9 kernel 2.4.20-8


Титла: Два adsl-a по 2048кбит/с
Публикувано от: в May 15, 2006, 21:18
openbsd+pf
http://openbsd.org/faq/pf/pools.html


Титла: Два adsl-a по 2048кбит/с
Публикувано от: chatter в May 16, 2006, 11:26
Ами всчко хубаво ама и ако ползвах опенбсд :)

Цитат
Здравей, chatter бе интересно ми е как става това с двата адсла и реших да го пробвам ама нещо не ставаа.На мен още на първата стъпка ми дава грешка.как се създават тия таблици адсл1 и адсл2 и какво трябва да се пипне в кернела?Мерси предварително.Аз ползвам RH 9 kernel 2.4.20-8


Ами да ти кажа аз ползвам кърнел 2.6.16.15

[/code]
Таблици си правиш в /etc/iproute2/rt_tables
Примерен код
#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep
200 adsl1
201 adsl2

Така изглеждат мойте.

Примерен код
# eth0 - local LAN eth1 - adsl1 eth2 - adsl2
/sbin/ip route add 192.168.1.0/24 dev eth1 src 192.168.1.2 table adsl1
/sbin/ip route add default via 192.168.1.1 table adsl1
/sbin/ip route add 192.168.2.0/24 dev eth2 src 192.168.2.2 table adsl2
/sbin/ip route add default via 192.168.2.1 table adsl2
/sbin/ip route add 192.168.1.0/24 dev eth1 src 192.168.1.2
/sbin/ip route add 192.168.2.0/24 dev eth2 src 192.168.2.2
/sbin/ip route add default via 192.168.1.1
/sbin/ip rule add from 192.168.1.2 table adsl1
/sbin/ip rule add from 192.168.2.2 table adsl2
/sbin/ip route add 192.168.99.0/24 dev eth0 table adsl1
/sbin/ip route add 192.168.2.0/24 dev eth2 table adsl1
/sbin/ip route add 127.0.0.0/8 dev lo table adsl1
/sbin/ip route add 192.168.99.0/24 dev eth0 table adsl2
/sbin/ip route add 192.168.1.0/24 dev eth1 table adsl2
/sbin/ip route add 127.0.0.0/8 dev lo table adsl2
/sbin/ip route add default scope global nexthop via 192.168.1.1 dev eth1 weight 1 \
 nexthop via 192.168.2.1 dev eth2 weight 1


В твоя кърнел незнам кое как е никога не сам ползвал такъв кърнел.


Титла: Два adsl-a по 2048кбит/с
Публикувано от: chatter в May 16, 2006, 11:34
И все пак някой няма да HELP малко за тия адсл-и.Проблема е следния: правя всичко както трябва но нещо не се балансират ползвам само капацитета на парвия адсл.Някой има си идея защо?


Титла: Два adsl-a по 2048кбит/с
Публикувано от: в May 21, 2006, 21:47
Аз за целта ползвам един доста стар, но работещ скрипт:
NetSane
Не балансирам двата доставчика, тъй като единия ми е ADSL, а другия локален доставчик. Правя относително разпределение 20:1 (колкото е съотношението на капацитета на двата ISP) ерго за два канала от един доставичик би трябвало weight коефициента да е 1:1

Успех


Титла: Два adsl-a по 2048кбит/с
Публикувано от: nothing в May 22, 2006, 17:43
chatter не ползвай SNAT, а MASQUERADE, за да ползваш динамичен изходящ адрес.


Титла: Два adsl-a по 2048кбит/с
Публикувано от: Dean79 в May 26, 2006, 00:37
Цитат (nothing @ Май 22 2006,18:43)
chatter не ползвай SNAT, а MASQUERADE, за да ползваш динамичен изходящ адрес.

Това, което казваш е пълна глупост!
Аман от такава помощ!

chatter, погледни какво ти е пратил topper, разгледай скрипта. Мисля, че ще се справиш.





Титла: Два adsl-a по 2048кбит/с
Публикувано от: chatter в May 28, 2006, 01:41
Dean79: Този скрипт Netsane ми помогна достаточно но немога да разбера дали като се запълни единият адсл ще прехвърля на втория?Иначе като спре парвия адсл автоматично прехварля на втория това е супер :)
Другото което немога да разбера е когато единият адсл спре като напишя ip route защо не ми пише "dead" както в реадмето?
Благодаря на всички за оказаната помощ, все още не сам много на ясно с някой неща, но съм се хванал да се уча.


Титла: Два adsl-a по 2048кбит/с
Публикувано от: Dean79 в May 28, 2006, 15:20
Ако изпробваш връзката с теглене на файл - знай, че никога няма да постигнеш връзката на 2-та АДСЛ-а. iproute2 работи с активни TCP връзки. т.е. Ако пуснеш един постоянен пинг например , то той ще излиза само през единия интерфейс. Действието на балансиращия скрипт може да провериш с traceroute. Пусни няколко поредни и ако всичко е наред, трябва да ти показва, че минава и през другия интерфес. Потърси също информация в гугъл. И аз имам доста главоболия с това. Трябва ти необходимата подръжка в ядрото, компилиране... Добре, че има CISCO :)

Ето и малко пояснение:
ip route add default scope global nexthop via 1.0.0.1 dev eth0 weight 1 nexthop via 2.0.0.1 dev eth1 weight 1

Горната команда указва колко от пакетите да минават през единия и колко през другия интерфейс. weight 1- означава през този интерфейс да мине 1 пакет. Следващият ще премине през гейт-а на 2-рия доставчик. така можеш да укажеш например 5 пакета да преминат през единия доставчик и 1 пакет през другия. Това се прави ако единия доставчик ти дава 5 Мбит/с, а другия 1Мбит. Дано си ме разбрал..

Успех





Титла: Два adsl-a по 2048кбит/с
Публикувано от: в May 28, 2006, 18:48
OFFTOPIC почти:
Необяснимо защо не мога да поствам тук, или където и да е било във форума, когато се логвам, но така или иначе за мен това място се е комрометирало.
Освен, че посочих точно скрипта, който без много философии прави нещата, също така обясних и какво може и трябва да се направи с weight коефициента. Помощ за това исках тук преди година за същото нещо, само че нямаше отзиви (като изключим Slogi si RH, сега е вариация Debian, сигурно заради apt-get,next,next,finish). А да, има разлика - CISCO. Дето ръсиш чантата с парите и щракаш шалтера, ама професионално. А ламерите да четат, професионалистите работят с поддържащи фирми. Или профитата са в поддръжащи фирми, дето ADSL-а е "блях, ламерско" само дето не могат да го разделят на две магарета.
Нищо лично към никой
край OFFTOPIC


Титла: Два adsl-a по 2048кбит/с
Публикувано от: в May 28, 2006, 21:03
Цитат (Guest @ Май 28 2006,19:48)
OFFTOPIC почти:
Необяснимо защо не мога да поствам тук, или където и да е било във форума, когато се логвам, но така или иначе за мен това място се е комрометирало.

/offtopic:

@Topper:
Съжелявам, че виждаш така нещата. Причината да не можеш да постваш е, че поради някакъв досаден бъг (който не сме хванали *точно* от къде идва) през определено време потребители попапдат в група Awaiting Authorization при все, че преди са били Members. Странно, досадно, но за жалост - факт.

В момента нямам достъп до админ панела - веднага щом мога ще корегирам грешката.  :ok:


Титла: Два adsl-a по 2048кбит/с
Публикувано от: Agent_SMITH в May 29, 2006, 00:17
Topper: виж дали сега всичко е ОК  ;)


Титла: Два adsl-a по 2048кбит/с
Публикувано от: chatter в May 29, 2006, 02:39
Значи направих го последно със скрипта на Нетсане оба4е като пускам трасове кам различни сайтове само от рутера минава през различните адсли, а от пц-тата зад рутера нещо нестава така...
Примерен код

root@router:~# ip r
192.168.2.0/24 dev eth2  proto kernel  scope link  src 192.168.2.2
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.2
192.168.99.0/24 dev eth0  proto kernel  scope link  src 192.168.99.1
default
        nexthop via 192.168.1.1  dev eth1 weight 1
        nexthop via 192.168.2.1  dev eth2 weight 1
root@router:~#
root@router:~# ip r l t adsl1
192.168.1.0/24 dev eth1  scope link  src 192.168.1.2
default via 192.168.1.1 dev eth1
prohibit default  proto static  metric 1
root@router:~# ip r l t adsl2
192.168.2.0/24 dev eth2  scope link  src 192.168.2.2
default via 192.168.2.1 dev eth2
prohibit default  proto static  metric 1
root@router:~#


Примерен код
root@router:~# ip rule
0:      from all lookup local
32764:  from 192.168.2.2 lookup adsl2
32765:  from 192.168.1.2 lookup adsl1
32766:  from all lookup main
32767:  from all lookup default

Тези трейсове са от рутера:
Примерен код
root@router:~# traceroute dir.bg
traceroute to dir.bg (194.145.63.12), 30 hops max, 38 byte packets
 1  192.168.2.1 (192.168.2.1)  0.933 ms  0.926 ms  1.433 ms
 2  var-bras-2.btc-net.bg (212.39.80.131)  8.440 ms  8.501 ms  8.627 ms
 3  13-80.btc-net.bg (212.39.80.13)  8.464 ms  89.503 ms  8.379 ms
 4  74-91-39-212.btc-net.bg (212.39.91.74)  19.344 ms  18.807 ms  19.652 ms
 5  50-66.btc-net.bg (212.39.66.50)  19.806 ms  18.608 ms  19.652 ms
 6  dir.bg (194.145.63.12)  19.337 ms  19.837 ms  19.227 ms
root@router:~#
root@router:~# traceroute abv.bg
traceroute: Warning: abv.bg has multiple addresses; using 194.153.145.73
traceroute to abv.bg (194.153.145.73), 30 hops max, 38 byte packets
 1  192.168.1.1 (192.168.1.1)  1.512 ms  1.034 ms  1.025 ms
 2  var-bras-2.btc-net.bg (212.39.80.131)  8.092 ms  7.602 ms  8.597 ms
 3  13-80.btc-net.bg (212.39.80.13)  7.760 ms  8.097 ms  7.440 ms
 4  87-91-39-212.btc-net.bg (212.39.91.87)  19.016 ms  18.693 ms  18.721 ms
 5  10-66.btc-net.bg (212.39.66.10)  18.829 ms  18.952 ms  18.965 ms
 6  abv3.abv.bg (194.153.145.73)  18.817 ms  19.152 ms  18.968 ms

Тук всичко работи но на компютър зад роутера небачка...
Интернет съм им пуснал с MASQUERADE ,а не с SNAT...и не съм посочвал интерфейс през който да излизат пакетите с прости думи -o eth1 ili eth2 не сам слагал в правилото.
Примерен код
/sbin/iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.99.0/24 -d ! 192.168.0.0/16

Това е от пц зад рутера:
Примерен код
C:\Documents and Settings\xp-user>tracert dir.bg

Tracing route to dir.bg [194.145.63.12]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  192.168.99.1
  2     1 ms     1 ms     1 ms  [B]192.168.2.1[/B]
  3     9 ms     9 ms    10 ms  var-bras-2.btc-net.bg [212.39.80.131]
  4     8 ms    10 ms     8 ms  13-80.btc-net.bg [212.39.80.13]
  5    19 ms    19 ms    18 ms  74-91-39-212.btc-net.bg [212.39.91.74]
  6    19 ms    19 ms    19 ms  50-66.btc-net.bg [212.39.66.50]
  7    19 ms    19 ms    19 ms  dir.bg [194.145.63.12]

Trace complete.

C:\Documents and Settings\xp-user>tracert abv.bg

Tracing route to abv.bg [194.153.145.67]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  192.168.99.1
  2     1 ms     1 ms    <1 ms  [B]192.168.2.1[/B]
  3     8 ms     7 ms     8 ms  var-bras-2.btc-net.bg [212.39.80.131]
  4     8 ms    11 ms     8 ms  13-80.btc-net.bg [212.39.80.13]
  5    18 ms    18 ms    18 ms  87-91-39-212.btc-net.bg [212.39.91.87]
  6    20 ms    19 ms    20 ms  10-66.btc-net.bg [212.39.66.10]
  7    19 ms    19 ms    19 ms  www.abv.bg [194.153.145.67]

Trace complete.

Нещо немога да си обесня какво и защо става така???Някой ако може да помогне още малко ще съм му благодарен.. :)


Титла: Два adsl-a по 2048кбит/с
Публикувано от: Topper в May 29, 2006, 09:06
Agent_SMITH благодаря ти
chatter - при мен е с маскарад и на двата интерфейса.


Титла: Два adsl-a по 2048кбит/с
Публикувано от: chatter в May 30, 2006, 22:13
Искам да питам още нещо някой ако може да помогне.Значи дали ще може да се направи роутера с два гейтуея и да си разцепя мрежата 192.168.99.0/24 на две и едната половина да минават през единия адсл, а другата да минават през втория адсл...


Титла: Два adsl-a по 2048кбит/с
Публикувано от: Dean79 в Jun 04, 2006, 17:37
Предполагам (не съм пробвал), че ще стане ако си добавиш 2 шлюза и после клиентите ги натваш през различните интерфейси.
Успех


Титла: Два adsl-a по 2048кбит/с
Публикувано от: chatter в Jun 04, 2006, 22:57
аз се оправих със source routing :)