Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: [FAQ] Ограничение скорости для клиентов на Ubuntu-Server (htb.init)  (Прочитано 256877 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Откуда у тебя столько классов уже?! Ажно 19000...

Чтиво по теме на английском языке:
http://www.docum.org/docum.org/faq/cache/31.html

quantum - это наименьшее количество информации в байтах, с которой имеет дело htb для данного класса.
Формула вычисления quantum для класса:
quantum = RATE / R2Q

Требования к quantum:
MTU < quantum < 60000
Квант должен быть больше MTU интерфейса, на котором работает htb, для того, чтобы за один период пересылки класс смог отправить хотя бы один пакет данных.

Ошибка quantum is small соответственно означает, что для данного класса:
RATE / R2Q < MTU
Чтобы это исправить, нужно либо уменьшать R2Q, либо увеличивать RATE (вот кстати мы и пришли к тому, что нельзя бездумно выставлять произвольно маленькое значение RATE :) ).

Соответственно ошибка quantum is big означает, что для данного класса:
RATE / R2Q > 60000
Чтобы это исправить, нужно либо увеличивать R2Q, либо уменьшать RATE.

В http://www.docum.org/docum.org/faq/cache/31.html также сказано, что наличие подобных ошибок не означает, что HTB не работает. Но означает, что ограничения могут быть соблюдены неточно.
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн TrEK

  • Автор темы
  • Активист
  • *
  • Сообщений: 738
  • good day in FolK-King life :)
    • Просмотр профиля
    • smallprogs.ru
Цитировать
Откуда у тебя столько классов уже?! Ажно 19000


Как 19000 ?
У меня всего навсего 1 класс c 7-ью подклассовыми "наследниками".. по подклассу на каждую есть.
1 подкласс: начинаеться с файла eth0-2:2001.180_0 и заканчиваеться eth0-2:2064.180_0 (*.180_0 я же надеюсь являеться комментарием, и не относит айпишки каждого файла даного диапазона к отдельным классам? :idiot2:)
2 подкласс: от eth0-2:3001.181_0 до eth0-2:3064.181_0
3 подкласс: от eth0-2:4001.183_0 до eth0-2:4064.183_0
4 подкласс: от eth0-2:5001.185_0 до eth0-2:5064.185_0
5 подкласс: от eth0-2:6001.186_0 до eth0-2:6064.186_0
6 подкласс: от eth0-2:7001.187_0 до eth0-2:7064.187_0
7 подкласс: от eth0-2:8001.188_0 до eth0-2:8064.188_0


Цитировать
quantum - это наименьшее количество информации в байтах, с которой имеет дело htb для данного класса.
Формула вычисления quantum для класса:
quantum = RATE / R2Q

Тоесть если у меня один класс, и на него выделено 25000кБ (в классе находиться 512 айпишек), тогда квантум = 25000/20, что равно 1250 < MTU (1500), если же R2Q поставить 10, тогда 25000/10 = 2500 , что больше чем значение МТУ, но логи все ровно выдают quantum of class  is small
видно я чего-то перестарался.

Почему тогда про слишком малое значение квантума выдает 19000-ам классам (при r2q>4), а про слишком большой квантум выдает только классу 10002 (при r2q<4) ?
Что-то я в недоумении оказался...
« Последнее редактирование: 26 Августа 2008, 01:57:11 от TrEK »

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Цитировать
Откуда у тебя столько классов уже?! Ажно 19000


Как 19000 ?
У меня всего навсего 1 класс c 7-ью подклассовыми "наследниками".. по подклассу на каждую есть.

1 подкласс: начинаеться с файла eth0-2:2001.180_0 и заканчиваеться eth0-2:2064.180_0 (*.180_0 я же надеюсь являеться комментарием, и не относит айпишки каждого файла даного диапазона к отдельным классам? :idiot2:)
2 подкласс: от eth0-2:3001.181_0 до eth0-2:3064.181_0
3 подкласс: от eth0-2:4001.183_0 до eth0-2:4064.183_0
4 подкласс: от eth0-2:5001.185_0 до eth0-2:5064.185_0
5 подкласс: от eth0-2:6001.186_0 до eth0-2:6064.186_0
6 подкласс: от eth0-2:7001.187_0 до eth0-2:7064.187_0
7 подкласс: от eth0-2:8001.188_0 до eth0-2:8064.188_0
Не путай понятия. Класс - это 1 файл. Понятия подкласса как такового не существует. Тем не менее, можно назвать подклассом класс, у которого есть родитель.
Посему у тебя тут 64*7=448 классов второго уровня, и еще плюс 1 класс первого уровня (с идентификатором 2). Это так у тебя задумано.
Чтобы выяснить как же оно на самом деле после включения htb сделай:
tc class show dev eth0 | wc -l

Тоесть если у меня один класс, и на него выделено 25000кБ (в классе находиться 512 айпишек), тогда квантум = 25000/20, что равно 1250 < MTU (1500), если же R2Q поставить 10, тогда 25000/10 = 2500 , что больше чем значение МТУ, но логи все ровно выдают quantum of class  is small
видно я чего-то перестарался.
Недопонял терминологию. Смотри выше по классам. Тебе надо считать по каждому отдельному файлу, а не только по родительскому классу.
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн TrEK

  • Автор темы
  • Активист
  • *
  • Сообщений: 738
  • good day in FolK-King life :)
    • Просмотр профиля
    • smallprogs.ru
Цитировать
Чтобы выяснить как же оно на самом деле после включения htb сделай:
tc class show dev eth0 | wc -l
root@ubuntu:/home/trek# tc class show dev eth0 | wc -l
452

Цитировать
Недопонял терминологию. Смотри выше по классам. Тебе надо считать по каждому отдельному файлу, а не только по родительскому классу.
Вобщем я думаю r2q можна оставить 20. Так как протестив пару айпишек.. ничего критического не обнаружил. Должно работать как надо.

Вот только я так понял при перезагрузки системы  /etc/init.d/htb не запускаеться самостоятельно?
Не подскажишь как организовать сие дело? Тоетсь где надо указать загрузку скрипта вместе с системой.
Спсибо.

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Вот только я так понял при перезагрузки системы  /etc/init.d/htb не запускаеться самостоятельно?
Не подскажишь как организовать сие дело? Тоетсь где надо указать загрузку скрипта вместе с системой.
Спсибо.
Вообще следовало бы тебя послать с этим вопросом в поиск.
update-rc.d htb defaults
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн TrEK

  • Автор темы
  • Активист
  • *
  • Сообщений: 738
  • good day in FolK-King life :)
    • Просмотр профиля
    • smallprogs.ru
Вот только я так понял при перезагрузки системы  /etc/init.d/htb не запускаеться самостоятельно?
Не подскажишь как организовать сие дело? Тоетсь где надо указать загрузку скрипта вместе с системой.
Спсибо.
Вообще следовало бы тебя послать с этим вопросом в поиск.
update-rc.d htb defaults


Большое спасибо, что не отправили. :coolsmiley:

А за подсказку сенкс.
____________________
на SuSe видимо rc-update add htb default
 
« Последнее редактирование: 15 Сентября 2008, 01:00:16 от TrEK »

Оффлайн tramX

  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
Скажите как при помощи htb ограничить исходящий трафик?

Оффлайн TrEK

  • Автор темы
  • Активист
  • *
  • Сообщений: 738
  • good day in FolK-King life :)
    • Просмотр профиля
    • smallprogs.ru
Скажите как при помощи htb ограничить исходящий трафик?

ну.. скажем вешать кофигурационные файлы не на внутрешний интерфейс.. а на внешний!
Дисциплина htb работает на передачу информации... тоесть если привязка конфига к внутрешнему интерфейсу.. тогда клиенту будет резаться на Даунлоад.. если привязка к внешнему интерфейсу.. - тогда клиенту можна ограничить на Аплоад!

Оффлайн tramX

  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
ну.. скажем вешал. Входящий режет исходящий отказывается.

Оффлайн tramX

  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
Вот что вычитал
Примечание: Если Вы используете трансляцию адреса (NAT), то указание простых правил будет не эффективно. Для ограничения скорости при использовании NAT необходимо создавать правила основанные на маркировке (MARK) в iptables.

Оффлайн TrEK

  • Автор темы
  • Активист
  • *
  • Сообщений: 738
  • good day in FolK-King life :)
    • Просмотр профиля
    • smallprogs.ru
Вот что вычитал
Примечание: Если Вы используете трансляцию адреса (NAT), то указание простых правил будет не эффективно. Для ограничения скорости при использовании NAT необходимо создавать правила основанные на маркировке (MARK) в iptables.

Использую NAT, и дисциплину htb, отлично режет на передачу... с точностью до 10 кбит.
На счет iptables, то не знаю.. мне кажеться что будет сильно загажен тогда конфиг.

Кстати, попробовал резать на Аплоад от клиента.. тоже проблемка появилась.. так как не ограничивает.

Оффлайн tramX

  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
Пример: Маркируем пакеты идущие с 192.168.2.1 на подсеть 89.41.64.0/18 /**/
# iptables -t mangle -A PREROUTING -s 192.168.2.1 -d 89.41.64.0/18 -j MARK --set-mark 101
# iptables -t mangle -A PREROUTING -s 192.168.2.1 -d 89.41.64.0/18 -j RETURN
Почему загажен? просто вместо  RULE=192.168.2.1,89.41.64.0/18 пишем: MARK=101

Оффлайн TrEK

  • Автор темы
  • Активист
  • *
  • Сообщений: 738
  • good day in FolK-King life :)
    • Просмотр профиля
    • smallprogs.ru
Пример: Маркируем пакеты идущие с 192.168.2.1 на подсеть 89.41.64.0/18 /**/
# iptables -t mangle -A PREROUTING -s 192.168.2.1 -d 89.41.64.0/18 -j MARK --set-mark 101
# iptables -t mangle -A PREROUTING -s 192.168.2.1 -d 89.41.64.0/18 -j RETURN
Почему загажен? просто вместо  RULE=192.168.2.1,89.41.64.0/18 пишем: MARK=101

Дык.. RULE=192.168.2.1 мы пишем в файлах каталога HTB, а MARK=101 в iptables. :idiot2:
и как в твоем случае скорость режеться? не понимаю?

Оффлайн tramX

  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
iptables -t mangle -A PREROUTING -s 192.168.2.2 -d 89.41.64.0/18 -j MARK --set-mark 101 мы пишем в iptables, у меня отдельный файл для iptables создан в котором записаны правила которые мне нужны. а файле который отвечает за ограничения скорости для 192.168.2.2 вместо RULE=192.168.2.2 пишем MARK=101 и шейпер обращается к этому правилу в iptables в котором описано какой трафик нужно ограничить.

Оффлайн TrEK

  • Автор темы
  • Активист
  • *
  • Сообщений: 738
  • good day in FolK-King life :)
    • Просмотр профиля
    • smallprogs.ru
iptables -t mangle -A PREROUTING -s 192.168.2.2 -d 89.41.64.0/18 -j MARK --set-mark 101 мы пишем в iptables, у меня отдельный файл для iptables создан в котором записаны правила которые мне нужны. а файле который отвечает за ограничения скорости для 192.168.2.2 вместо RULE=192.168.2.2 пишем MARK=101 и шейпер обращается к этому правилу в iptables в котором описано какой трафик нужно ограничить.

Ну вот... если RULE писать.. заполняютсья только файлы HTB , если MARK - htb и iptables :)
а если куча клиентов.. как будет как раз файл iptables загажен.
Если у меня 200 клиентов.. получаеться что будет 200 строк " -t mangle .....  MARK" в iptables.

 

Страница сгенерирована за 0.029 секунд. Запросов: 22.