LINUX.ORG.RU
Форум — Admin  

Умная балансировка каналов


0

0
Всем доброго времени суток. Столкнулся с задачей и настолько слабо пока представляю себе реализацию (да собственно может это и невозможно) что даже нагуглить толком не смог.

Знатоки, внимение, вопрос. Имеются два канала, один медленный и дешевый ( ну практически бесплатный ) ну а другой полная его противоложность.

Собственно нужно сделать какую-то умную балансировку между ними. Например, закачавя большой файл из внешней сети использовать дешевый канал.

И еще возможноли вытягивать скажем стрничку по кускам, то есть html отдельно картинки отдельно??

Подскажите направление.... (тооолька на ф стену ;) )

Заранее спасибо

anonymous
Ну... задачка, прямо скажу, нетривиальная...

Одно решение: поднять сквид, найти ему два cache peer - на один из них слать только запросы на страницы, на второй - gif,png,jpg,... Разрулить маршрутизацию на них через разные каналы.

Второе: поднять три сквида на одной машине :) Схема такая же, как и в первом случае, но те два сквида висят на других портах (31288 и 31289, например), запускаются от различных пользователей (squid1, squid2). В iptables маркируем через -m owner; в ip route разруливаем согласно меток.

Третий путь... гм... чисто на iptables (-m layer7, -m string) маркировать, ip route разруливать... для шифрованных каналов не будет работать... впрочем, можно весь неопознанный трафик гнать на медленный канал по дефолту.

Slavaz ★★★★★
()
вроде, кто-то через squid предлагал делать. Чтобы на основании content-lenght перепосылать запрос по другому каналу если ответ слишком большой. Возможно, можно к nginx написать модуль. Простых способов не существует. Тем более не любой запрос можно отправить два раза. Ну и на то что IP сменится у клиента не каждый сайт поймёт и попросит, например, авторизоваться.
true_admin ★★★★★
()
Ответ на: комментарий от Slavaz
Спасибо, задача действительно нетривиальная :) я попробую всю эту схему прокрутить сейчас в голове и сделать какие-нибудь "наброски". Думаю есть много подводных камней и просто решения я не ждал... но попытаемся :)
anonymous
()
Ответ на: комментарий от anonymous
Найдёшь приемлемое решение - не поленись, опиши как и закинь на какую-нить Wiki. Ибо "установка линукс для новичка" пруд пруди, а вот что посложнее - днём с огнём...
Slavaz ★★★★★
()
Искуственный интеллект нуждается в обучении. Я бы /* для начала */ пользовался "глупой балансировкой". Думаю, это не так уж и плохо. Например, поставить by default быстрый канал, а большие файлы скачивал бы вручную, отдельно, скажем, wget'ом. Wget направлял бы на медленный канал (почитав маны по iptables и/или iproute2 и, возможно, добавив проксю или юзера по необходимости).

Или другой вариант - всё, кроме мозиллы - на медленный канал.

Конечно, такие приёмы не решают задачу "html отдельно, jpeg отдельно", но её уже решили выше, и, пожалуй, решили хорошо.

alexsaa ★
()
покупай content switch engine от циско или жунипера )))
под линукс это можно разве-что layer7 расширением для netfilter.
chocholl ★★
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.