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 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.