Перейти до

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


Рекомендованные сообщения

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

 

Возникла идея как это сделать. Итак, условия задачи:

Есть анлимитный канал на инет со скоростями: Украина - 1 Мбит, мир - 128 Кбит

Есть сервер под SuSE 10, который является шлюзом для всей сети.

Необходимо динамически распределять пропускную способность "мира" между юзерами по "справедливому" принципу (т.к. сеть достаточно небольшая, то шейпить канал на 1 Мбит Украины необходимости нет)

Как я представляю себе решение. Воспользоваться ограничением скорости по юзеру, которая предусмотрена в SQUIDе.

Через SQUID проводить только иностранный трафик. Украина пущай идет напрямую.

Все пользователи, которые хотят юзать инет должны авторизироваться в Старгайзере.

Написать программку на С, которая бы, например, каждую минуту собирала иностранный трафик по каждому пользователю, которые в онлайне и считала бы кто сколько скачал за последнюю минуту. На основании этих данных она по справедливости разделяла бы 128 Кбит между всеми юзерами (кто больше качает - тот больше имеет скорость). После этого, она бы переписывала squid.conf в том месте, где настройка скорости. После этого выполняла бы команду squid -k reconfigure.

 

В программе предусмотреть минимальную скорость 20 Кбит для юзера.

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

 

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

Ссылка на сообщение
Поделиться на других сайтах
...... реальна ли эта идея и предложите свою по возможности.....

Ох и накрутил.... ну а вообще это же *nix, ее гибкость позволит даже такой выкрутас реализовать

Ссылка на сообщение
Поделиться на других сайтах
Имхо, нужно будет просматривать логи другого сборщика трафика или сквида.

А так вполне решимая задача )

 

А чем Stargazer не подходит? Считает неточно? Если погрешность меньше 5%, то можно принебречь (тем более, что оплата у нас за безлимитный канал).

 

Еще читал где-то, что есть баг в сквиде, что SQUID после реконфигурации забывает про параметры из delay_pool и юзеры качают на полных скоростях? Можете подтвердить или опровергнуть?

Ссылка на сообщение
Поделиться на других сайтах
Имхо, нужно будет просматривать логи другого сборщика трафика или сквида.

А так вполне решимая задача )

 

А чем Stargazer не подходит? Считает неточно? Если погрешность меньше 5%, то можно принебречь (тем более, что оплата у нас за безлимитный канал).

 

Еще читал где-то, что есть баг в сквиде, что SQUID после реконфигурации забывает про параметры из delay_pool и юзеры качают на полных скоростях? Можете подтвердить или опровергнуть?

Да подобная фича проявляется в сквиде!

Ссылка на сообщение
Поделиться на других сайтах
2fufnf: старгейзер может писать статистику каждые 10 минут.

Тебе нужно каждую минуту.

Опытным путем выяснил, что 5 минут, а не 10. http://local.com.ua/forum/index.php?showtopic=3489

 

Впринципе, можно и 5 минут поставить, заодно меньше будет SQUID дергаться.

Ссылка на сообщение
Поделиться на других сайтах
  • 3 weeks later...

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

 

2 fufnf: Имею ту же самую проблему что и у тебя(более-менее жирная Украина +128к мира - надо раздать поровну динамически). Я пока использую cbq.init в статическом режиме (с деревьями, родителями, заемом полосы и пр. что-то не получается у меня). Если что то придумаешь или найдешь решение - маякни. А вообще я удивлен, почему никто почти не решает такую задачу. Или те кто решает, молчат потихоньку? :-)

В общем, надо скооперироваться.

Ссылка на сообщение
Поделиться на других сайтах

2 fufnf: Имею ту же самую проблему что и у тебя(более-менее жирная Украина +128к мира - надо раздать поровну динамически). Я пока использую cbq.init в статическом режиме (с деревьями, родителями, заемом полосы и пр. что-то не получается у меня). Если что то придумаешь или найдешь решение - маякни. А вообще я удивлен, почему никто почти не решает такую задачу. Или те кто решает, молчат потихоньку? :-)

В общем, надо скооперироваться.

У меня вышло с htb.init. Просто маркируешь нужный трафик в iptables, после чего строишь классы на основе фильтров с MARK=<метка данного типа трафика>.

 

Хотя и от сабжевой идеи я не отказываюсь (кроме глюка со СКВИДом при переконфигурировании). Но, конечно, это самопал по сравнению с существующими CBQ, HTB, SRR и иже с ними...

Ссылка на сообщение
Поделиться на других сайтах

Люди занимаются, вот только времени на это стало катастрофически не хватать... Тут обычной работой завалили - разгребаюсь :)

Ссылка на сообщение
Поделиться на других сайтах

Вопрос такой - старгазер(у меня СГ1) успевает разделять по направлениям украинский и мировой трафик? Сам не реализовывал - боюсь экспериментировать на живой системе...Машина - Селерон 266.

И еще вопрос - можно ли файерволом iptables разделять трафик (те же Украина и мир)?

Если оба пункта да, то на мой взгляд достаточно просто можно решить проблему динамического шейпинга отдельно мира и украины.

Поделитесь опытом, кто сталкивался. Пожалуйста.

Ссылка на сообщение
Поделиться на других сайтах

у меня в сети такая проблема уже давно стоит, я пока ее организационно сдерживаю.

 

Попробую поделиться мыслью на вашу проблему: вот думаю что принудительно пользователям скорость прижимать приведет к частичному простою канала (на мой взгляд 10-30%), и посему нада подходить к проблеме со стороны iptables-->MARK, где оценивать трафик за последние 10-30 секунда, и кто больше скачал – тому меньше приоритет.

Ссылка на сообщение
Поделиться на других сайтах
Еще читал где-то, что есть баг в сквиде, что SQUID после реконфигурации забывает про параметры из delay_pool и юзеры качают на полных скоростях? Можете подтвердить или опровергнуть?

в squid-2.5.STABLE12 - исправлено, обновите скуид

Ссылка на сообщение
Поделиться на других сайтах

да в том-то и дело, что просто урезать скорость на клиента - не проблема! а вот чтобы ему отдавалась чуть ли не вся полоса, когда канал свободен - пока не получается....

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...