Ivanovo Linux Users Group -  
Форум Помощь Поиск Вход
Предыдущая Следующая Вверх Тема Администрирование / Работа с сетью / Хитрое ограничение скорости (cbq, htb) (19427 хитов)
- Написал(а) bartmdv Дата 16.06.06 12:10
Здравствуйте.

Встала такая вот задачка:

Есть канал 10Мбит.
Мне из него надо выделить 5Мбит на определенные подсетки, но выделить так,
чтобы у каждого пользователя из этой подсетки, было еще и "свое" ограничение скорости.
Т.е. если мы возьмем пару десятков пользователей с ограничением 256Кбит, и еще десяток с ограничением 128Кбит,
то общая их скорость не должна превышать 5Мбит.
При свободном канале (скажем 10 пользователей со "своим" ограничением в 128Кбит) скорость должна быть ограничена этим "своим" ограничением.

Надеюсь объяснил понятно. Если есть вопросы - я попробую описать более подробно в деталях.

В инете не смог найти примеров решения данной задачи средствами cbq/htb.
Как это можно реализовать?
Parent Написал(а) LOE (Site/forum admin) Дата 16.06.06 17:39 Отредактировано 16.06.06 17:44
Насколько я понял, поможет htb
Подробнее с примером по ссылке: http://www.opennet.ru/base/net/adsl_bandwidth.txt.html

Так-же, минус тебе за неумение пользоваться поиском ;-)
Ссылка на похожую статью давно лежит в топике:  http://lug.ivanovo.ru/f/topic_show.pl?tid=326

Как уже говорил, cbq.init и htb.init годятся для простых ситуаций и как способ получить "болванку" правил.
Для более сложных случаев необходимо делать настройки непосредственно командами tc и iptables
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent Написал(а) LOE (Site/forum admin) Дата 16.06.06 18:02
Кстати, когда решишь поставленную задачу, было бы неплохо, если сделаешь короткий HOWTO
С описанием как самой задачи, так и пути её решения.
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - Написал(а) Demon Дата 07.12.06 20:23
Чтобы не начинать новую ветку задам вопрос тут.
Не сильно надеюсь на ответ, т.к. задача явно не часто возникает... а может ко мне в голову не пришла какая-нибудь очевидная, но важная деталь.. потому я и не знаю как решить задачу.
Итак, задача:
Есть сервер на linux (Slackware если это важно), на нём стоит, скажем, ejabberd. Нужно зашейпить трафик на определённые порты (5222 и 5223), но таким образом, чтобы ограничить не общую пропускную способность на эти порты, а пропускную способность от/к каждого конкретного IP (т.е. не общую, а индивидуальную).

Есть идеи?
Вы интересуетесь вопросом домашних сетей в Иваново? Посетите http://homenet.iv.ru
Parent - Написал(а) slam Дата 11.12.06 07:33 Отредактировано 11.12.06 07:39
А нельзя сделать как написано выше (http://www.opennet.ru/base/net/adsl_bandwidth.txt.html) но в скрипте, где задаются правила iptables указать помимо --sport и -d xxx.xxx.xxx.xxx (iptables -t mangle -A MYSHAPER-OUT -p tcp --sport 5222 -d xxx.xxx.xxx.xxx -j MARK --set-mark 22) Сразу предупреждаю я могу ошибатся :-)
Parent Написал(а) slam Дата 11.12.06 07:38
У нас на одном сервере используется такой шейпинг (на определенный IP) только там FreeBSD и ipfw стоят - его помогал ставить vnv.
Parent Написал(а) Demon Дата 12.12.06 06:28
Мне предлагается создать отдельные правила на все гипотетические IP? Уточню... там четыре подсети (10/8,172/8, 192.168/16.. ещё и реальные IP). Предлагается прописать в iptables все их комбинации? :-) Если использовать общее правило, то шейпер снова будет общим.

Собственно именно эту задачу решил средствами ejabberd.. Просто уже полтора года шейпер в нём не работал, а сейчас пофиксили. Потому актуальность вопроса сильно упала :-)
Вы интересуетесь вопросом домашних сетей в Иваново? Посетите http://homenet.iv.ru
Предыдущая Следующая Вверх Тема Администрирование / Работа с сетью / Хитрое ограничение скорости (cbq, htb) (19427 хитов)

Powered by mwForum 2.12.0 © 1999-2007 Markus Wichitill

Page created in 0.080s with 11 database queries.