[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: load balancing scripts



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" Исходящие соединения будут распределяться между провайдерами только в момент установления соединения, после этого удачный маршрут запоминается в кэше и используется также без учета загрузки.

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



Reply to: