Re: load balancing scripts

2004-03-22 Пенетрантность Algis St

> Обсуждаемое - не совсем балансировка загрузки. Входящее по линку 
> провайдера 1 соединение не будет использовать
> линк к провайдеру 2 никогда, т.е. загруженность линков не учитывается. В 
> этом смысл приведенных Вами команд "ip route"
> Исходящие соединения будут распределяться между провайдерами только в 
> момент установления соединения,
> после этого удачный маршрут запоминается в кэше и используется также без 
> учета загрузки.
> 
> Дмитрий Федосеев.
> 
По поводу распределения нагрузки все более менее понятно - надо
накладывать патч : http://www.ssi.bg/~ja/nano.txt. Смущает меня только
упор на nat ... Нежели для работы этого патча необходим обязательный nat
локальных сетей ?

Простите Дмитрий, я немного вас не понял, как все-таки быть если я,
например, хочу поднимать eth0, eth1 с помощью ifconfig из
/etc/network/interfaces (с этим мне все понятно), а eth2, eth3
исключительно с помощью 'ip' .. Вопрос куда лучше всего положить скрипты
с 'ip', желательно чтобы они реагировали на /etc/init.d/networking
start|stop ?  if-pre-up.d скрипты выполняются  после каждого старта
ЛЮБОГО интерфеиса или им можно передать какие параметры ? 


Re: load balancing scripts

2004-03-22 Пенетрантность Dmitry Fedoseev

Algis St пишет:


Хочу сделать load balancing на два канала провайдера, почитал linux
advanced routing howto и есть пара вопросов:
1. Куда правильно бы было записать команды 'ip' :

ip route add $P1_NET dev $IF1 src $IP1 table T1
ip route add default via $P1 table T1
ip route add $P2_NET dev $IF2 src $IP2 table T2
ip route add default via $P2 table T2
*
ip route add default scope global nexthop via $P1 dev $IF1 weight 1 \
nexthop via $P2 dev $IF2 weight 1

и т.п. в дебиан ?


Я думаю про /etc/network/if-up.d/ . Может есть другой вариант ?
 

Так делать можно, но не всегда удобно: неясно, какому интерфейсу 
сопоставить последний (default global)
маршрут. Если этот интерфейс не поднимается, то маршрута по умолчанию 
тоже не будет?


Если линки к провайдерам могут "мерцать" (а это неизбежно), то 
/etc/network/interfaces недостаточно:

не отслеживается реальное состояние линков.

Поэтому я делаю в /etc/network/interfaces минимальное конфигурирование, 
gateway - на того провайдера,
которому доверия больше. А по cron проверяю состояние линков (ping'ом) и 
переустанавливаю таблицы
маршрутов в соответствии с актуальным состоянием линков. Можно обойтись 
без cron/ping,

используя вывод "ip monitor", но я пока не готов.


Еще интерестно что делать с /etc/network/interfaces .. Можно ли комбинировать 
'ifconfig' с 'ip'
Например локальную сеть поднять из /etc/network/interfaces, а сети провайдера с 
помошью 'ip' ?
 

Можно. Я использую ip в /etc/network/interfaces для создания туннелей 
(pre-up скрипты).




2. Будет ли ХОРОШО работать балансировка загрузки и  переключение на 
вторую линию в случае сбоя первой на стандартном ядре 2.4.24 ?
 

В стандартном ядре вроде бы переключение при сбоях линков не делается. 
См. выше.


Обсуждаемое - не совсем балансировка загрузки. Входящее по линку 
провайдера 1 соединение не будет использовать
линк к провайдеру 2 никогда, т.е. загруженность линков не учитывается. В 
этом смысл приведенных Вами команд "ip route"
Исходящие соединения будут распределяться между провайдерами только в 
момент установления соединения,
после этого удачный маршрут запоминается в кэше и используется также без 
учета загрузки.


Дмитрий Федосеев.



Re: load balancing scripts

2004-03-21 Пенетрантность Algis St
Не выдержал ... Прочитал howto про эти патчи. (
http://www.ssi.bg/~ja/nano.txt)  Все вроде понятно - надо патчить ядро
... Не понял только один момент, там делается упор на NAT, бо внутренние
сети должны натиться .. Это что, если у меня одна из внутренних сетей с
внешними IP и нат для нее неприемлим, то у меня ето работать не будет ??
Испытывать все это дело у меня нет ... Хотелось бы сделать все это
быстро .. очень быстро ;))

On Sun, 2004-03-21 at 20:44, Algis St wrote:
> Здравствуйте 
>   Хочу сделать load balancing на два канала провайдера, почитал linux
> advanced routing howto и есть пара вопросов:
>   1. Куда правильно бы было записать команды 'ip' :
>   
>   ip route add $P1_NET dev $IF1 src $IP1 table T1
>   ip route add default via $P1 table T1
>   ip route add $P2_NET dev $IF2 src $IP2 table T2
>   ip route add default via $P2 table T2
>   *
>   ip route add default scope global nexthop via $P1 dev $IF1 weight 1 \
>   nexthop via $P2 dev $IF2 weight 1
> 
>   и т.п. в дебиан ?
>  
>   
> Я думаю про /etc/network/if-up.d/ . Может есть другой вариант ?
> Еще интерестно что делать с /etc/network/interfaces .. Можно ли комбинировать 
> 'ifconfig' с 'ip'
> Например локальную сеть поднять из /etc/network/interfaces, а сети провайдера 
> с помошью 'ip' ?
>   
>   2. Будет ли ХОРОШО работать балансировка загрузки и  переключение на 
> вторую линию в случае сбоя первой на стандартном ядре 2.4.24 ?
> Где то видел патчи к стандарному ядру и длинное руководство для балансировки 
> загрузки ... Стоит ли читать все ети руководства или работать со стандартным 
> ядром ? 
> 
> Благодарствую !
>