Динамическое деление канала, Stargazer, Squid (способ "честного" распределения трафика)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

fufnf
Сообщения: 10

Динамическое деление канала, Stargazer, Squid

Сообщение fufnf »

По этой теме:ALTQ только под Юникс. Скрипты типа CBQ и NTB не знаю, как могут помочь, если мне нужно шейпить только иностранный трафик. Ну да ладно.

Возникла идея как это сделать. Итак, условия задачи:
Есть анлимитный канал на инет со скоростями: Украина - 1 Мбит, мир - 128 Кбит
Есть сервер под SuSE 10, который является шлюзом для всей сети.
Необходимо динамически распределять пропускную способность "мира" между юзерами по "справедливому" принципу (т.к. сеть достаточно небольшая, то шейпить канал на 1 Мбит Украины необходимости нет)
Как я представляю себе решение. Воспользоваться ограничением скорости по юзеру, которая предусмотрена в SQUIDе.
Через SQUID проводить только иностранный трафик. Украина пущай идет напрямую.
Все пользователи, которые хотят юзать инет должны авторизироваться в Старгайзере.
Написать программку на С, которая бы, например, каждую минуту собирала иностранный трафик по каждому пользователю, которые в онлайне и считала бы кто сколько скачал за последнюю минуту. На основании этих данных она по справедливости разделяла бы 128 Кбит между всеми юзерами (кто больше качает - тот больше имеет скорость). После этого, она бы переписывала squid.conf в том месте, где настройка скорости. После этого выполняла бы команду squid -k reconfigure.

В программе предусмотреть минимальную скорость 20 Кбит для юзера.
Если подключается новый юзер, то Старгайзер выполняет скрипт OnConnect, в котором есть строчка "proga_on_C login ip", в следствии чего запускается наша прога, выделяет новому юзеру нормальную скорость и перераспределяет существующие. Соответствующие действия выполняются и после скрипта OnDisconnect.

Ну вот, вроде, и все. Скажите пожалуйста, реальна ли эта идея и предложите свою по возможности. Спасибо.
Спасибо сказали: